zhaomin лет назад: 3
Родитель
Сommit
a9cde1f4fd

+ 1 - 0
CallCenterWeb.UI/RMYY/package.json

@@ -22,6 +22,7 @@
22 22
     "@fullcalendar/vue": "^5.11.2",
23 23
     "axios": "0.18.0",
24 24
     "default-passive-events": "^2.0.0",
25
+    "dingtalk-jsapi": "^3.0.12",
25 26
     "downloadjs": "^1.4.7",
26 27
     "echarts": "^4.9.0",
27 28
     "element-ui": "^2.15.6",

+ 11 - 0
CallCenterWeb.UI/RMYY/src/api/login.js

@@ -12,6 +12,17 @@ export function login(usercode, password) {
12 12
   })
13 13
 }
14 14
 
15
+// 钉钉登录
16
+export function Dinglogin(code) {
17
+  return request({
18
+    url: 'Home/Dinglogin',
19
+    method: 'post',
20
+    data: {
21
+      code
22
+    }
23
+  })
24
+}
25
+
15 26
 // 获取当前用户信息(// 用户管理使用的接口控制器由UserAccount改为HyUserAccount 20190527 by fanlongfei)
16 27
 export function getInfo() {
17 28
   return request({

+ 106 - 90
CallCenterWeb.UI/RMYY/src/store/modules/user.js

@@ -1,87 +1,103 @@
1
-import md5 from "js-md5";
2
-import { encrypt, decrypt } from "@/utils/jsencrypt";
1
+import md5 from 'js-md5'
2
+import { encrypt, decrypt } from '@/utils/jsencrypt'
3 3
 
4
-import { login, getInfo, getMenus } from "@/api/login";
5
-import { getToken, setToken, removeToken } from "@/utils/auth";
6
-import { Message } from "element-ui";
4
+import { login, Dinglogin, getInfo, getMenus } from '@/api/login'
5
+import { getToken, setToken, removeToken } from '@/utils/auth'
6
+import { Message } from 'element-ui'
7 7
 
8
-const publicKey = "";
9
-const privateKey = "";
8
+const publicKey = ''
9
+const privateKey = ''
10 10
 
11 11
 const user = {
12 12
   state: {
13 13
     token: getToken(),
14
-    name: "", // 用户名
15
-    usercode: "", // 用户编号
16
-    userRole: "", // 用户的角色权限
17
-    userid: "", // 用户的 id
18
-    extension: "", // 分机号
19
-    avatar: "", // 用户头像
14
+    name: '', // 用户名
15
+    usercode: '', // 用户编号
16
+    userRole: '', // 用户的角色权限
17
+    userid: '', // 用户的 id
18
+    extension: '', // 分机号
19
+    avatar: '', // 用户头像
20 20
     seatflag: 1, // 坐席标志
21 21
     menus: [], // 菜单数据
22
-    mobile: "", // 手机
23
-    teamName: "", // 部门名称
24
-    teamId: ""
22
+    mobile: '', // 手机
23
+    teamName: '', // 部门名称
24
+    teamId: ''
25 25
   },
26 26
 
27 27
   mutations: {
28 28
     SET_TOKEN: (state, token) => {
29
-      state.token = token;
29
+      state.token = token
30 30
     },
31 31
     SET_NAME: (state, name) => {
32
-      state.name = name; // 用户名
32
+      state.name = name // 用户名
33 33
     },
34 34
     SET_CODE: (state, usercode) => {
35
-      state.usercode = usercode; // 用户编号
35
+      state.usercode = usercode // 用户编号
36 36
     },
37 37
     SET_ROLE: (state, userRole) => {
38
-      state.userRole = userRole; // 用户的角色权限
38
+      state.userRole = userRole // 用户的角色权限
39 39
     },
40 40
     SET_UID: (state, userid) => {
41
-      state.userid = userid; // 用户的 id
41
+      state.userid = userid // 用户的 id
42 42
     },
43 43
     SET_EXT: (state, extension) => {
44
-      state.extension = extension; // 分机号
44
+      state.extension = extension // 分机号
45 45
     },
46 46
     SET_AVATAR: (state, avatar) => {
47
-      state.avatar = avatar; // 用户头像
47
+      state.avatar = avatar // 用户头像
48 48
     },
49 49
     SET_SEATFLAG: (state, seatflag) => {
50
-      state.seatflag = seatflag; // 坐席标志
50
+      state.seatflag = seatflag // 坐席标志
51 51
     },
52 52
     SET_MENUS: (state, menus) => {
53
-      state.menus = menus; // 菜单数据
53
+      state.menus = menus // 菜单数据
54 54
     },
55 55
     SET_MOBILE: (state, mobile) => {
56
-      state.mobile = mobile; // 手机
56
+      state.mobile = mobile // 手机
57 57
     },
58 58
     SET_TEAMNAME: (state, teamName) => {
59
-      state.teamName = teamName; // 部门名称
59
+      state.teamName = teamName // 部门名称
60 60
     },
61 61
     SET_TEAMID: (state, teamId) => {
62
-      state.teamId = teamId; // 部门id
62
+      state.teamId = teamId // 部门id
63 63
     }
64 64
   },
65 65
 
66 66
   actions: {
67 67
     // 登录
68 68
     Login({ commit }, userInfo) {
69
-      const username = userInfo.username.trim();
70
-      const password = md5(userInfo.password);
71
-      const passwordEncrypt = encrypt(password);
69
+      const username = userInfo.username.trim()
70
+      const password = md5(userInfo.password)
71
+      const passwordEncrypt = encrypt(password)
72 72
       // const passwordDecryptt = decrypt(passwordEncrypt);
73
-      window.localStorage.setItem("ext", userInfo.extension);
73
+      window.localStorage.setItem('ext', userInfo.extension)
74 74
       return new Promise((resolve, reject) => {
75 75
         login(username, passwordEncrypt)
76 76
           .then(response => {
77
-            setToken(response.data);
78
-            commit("SET_TOKEN", response.data);
79
-            resolve();
77
+            setToken(response.data)
78
+            commit('SET_TOKEN', response.data)
79
+            resolve()
80 80
           })
81 81
           .catch(error => {
82
-            reject(error);
83
-          });
84
-      });
82
+            reject(error)
83
+          })
84
+      })
85
+    },
86
+    Dinglogin({ commit }, userInfo) {
87
+      const code = userInfo.code.trim()
88
+      // const passwordDecryptt = decrypt(passwordEncrypt);
89
+      window.localStorage.setItem('ext', userInfo.extension)
90
+      return new Promise((resolve, reject) => {
91
+        Dinglogin(code)
92
+          .then(response => {
93
+            setToken(response.data)
94
+            commit('SET_TOKEN', response.data)
95
+            resolve()
96
+          })
97
+          .catch(error => {
98
+            reject(error)
99
+          })
100
+      })
85 101
     },
86 102
 
87 103
     // 获取用户信息
@@ -89,58 +105,58 @@ const user = {
89 105
       return new Promise((resolve, reject) => {
90 106
         getInfo()
91 107
           .then(response => {
92
-            console.log(response);
93
-            const data = response.data;
108
+            console.log(response)
109
+            const data = response.data
94 110
             // 用户信息
95
-            commit("SET_SEATFLAG", 1); // 坐席标志  data.User.F_SeatFlag
96
-            commit("SET_NAME", data.User.F_UserName); // 用户名
97
-            commit("SET_UID", data.User.F_UserId); // 用户的 id
98
-            commit("SET_CODE", data.User.F_UserCode); // 用户编号
99
-            commit("SET_MOBILE", data.User.F_Telephone); // 手机
100
-            commit("SET_EXT", window.localStorage.getItem("ext")); // 分机号
101
-            window.localStorage.setItem("deptCode", data.Dept.F_DeptCode);
111
+            commit('SET_SEATFLAG', 1) // 坐席标志  data.User.F_SeatFlag
112
+            commit('SET_NAME', data.User.F_UserName) // 用户名
113
+            commit('SET_UID', data.User.F_UserId) // 用户的 id
114
+            commit('SET_CODE', data.User.F_UserCode) // 用户编号
115
+            commit('SET_MOBILE', data.User.F_Telephone) // 手机
116
+            commit('SET_EXT', window.localStorage.getItem('ext')) // 分机号
117
+            window.localStorage.setItem('deptCode', data.Dept.F_DeptCode)
102 118
             window.localStorage.setItem(
103
-              "deptCode",
119
+              'deptCode',
104 120
               data.Dept && data.Dept.F_DeptCode
105
-            );
121
+            )
106 122
             window.localStorage.setItem(
107
-              "storageUsercode",
123
+              'storageUsercode',
108 124
               data.User.F_UserCode
109
-            );
125
+            )
110 126
             window.localStorage.setItem(
111
-              "storageUserphone",
127
+              'storageUserphone',
112 128
               data.User.F_Telephone
113
-            );
114
-            window.localStorage.setItem("storageUsertx", data.User.F_See);
115
-            window.localStorage.setItem("storageUserid", data.User.F_UserId);
129
+            )
130
+            window.localStorage.setItem('storageUsertx', data.User.F_See)
131
+            window.localStorage.setItem('storageUserid', data.User.F_UserId)
116 132
             window.localStorage.setItem(
117
-              "storageUsername",
133
+              'storageUsername',
118 134
               data.User.F_UserName
119
-            );
120
-            window.localStorage.setItem("storageUserpwd", data.User.F_Password);
135
+            )
136
+            window.localStorage.setItem('storageUserpwd', data.User.F_Password)
121 137
             if (data.User.F_ZXZCode) {
122
-              window.localStorage.setItem("groupCode", data.User.F_ZXZCode); // 用户的坐席组code
138
+              window.localStorage.setItem('groupCode', data.User.F_ZXZCode) // 用户的坐席组code
123 139
             } else {
124
-              window.localStorage.setItem("groupCode", "364"); // 用户的坐席组code
140
+              window.localStorage.setItem('groupCode', '364') // 用户的坐席组code
125 141
             }
126 142
             // commit('SET_AVATAR', data.F_HeadImg) // 用户头像
127 143
             // 角色信息
128
-            commit("SET_ROLE", data.Role.F_RoleName); // 用户的角色权限
129
-            window.localStorage.setItem("roleName", data.Role.F_RoleName); // 用户的坐席组code
130
-            window.localStorage.setItem("roleCode", data.Role.F_RoleCode); // 用户的坐席组code
144
+            commit('SET_ROLE', data.Role.F_RoleName) // 用户的角色权限
145
+            window.localStorage.setItem('roleName', data.Role.F_RoleName) // 用户的坐席组code
146
+            window.localStorage.setItem('roleCode', data.Role.F_RoleCode) // 用户的坐席组code
131 147
             // 部门信息
132
-            commit("SET_TEAMNAME", data.Dept && data.Dept.F_DeptName); // 部门名称
133
-            commit("SET_TEAMID", data.Dept && data.Dept.F_DeptId); // 部门id
148
+            commit('SET_TEAMNAME', data.Dept && data.Dept.F_DeptName) // 部门名称
149
+            commit('SET_TEAMID', data.Dept && data.Dept.F_DeptId) // 部门id
134 150
             window.localStorage.setItem(
135
-              "deptId",
151
+              'deptId',
136 152
               data.Dept && data.Dept.F_DeptId
137
-            ); // 用户的坐席组code
138
-            resolve(response);
153
+            ) // 用户的坐席组code
154
+            resolve(response)
139 155
           })
140 156
           .catch(error => {
141
-            reject(error);
142
-          });
143
-      });
157
+            reject(error)
158
+          })
159
+      })
144 160
     },
145 161
 
146 162
     // 获取菜单信息
@@ -148,40 +164,40 @@ const user = {
148 164
       return new Promise((resolve, reject) => {
149 165
         getMenus()
150 166
           .then(response => {
151
-            const menusdata = response.data;
167
+            const menusdata = response.data
152 168
             if (menusdata && menusdata.length > 0) {
153 169
               // 验证返回的menusdata是否是一个非空数组
154
-              commit("SET_MENUS", menusdata); // 菜单数据
170
+              commit('SET_MENUS', menusdata) // 菜单数据
155 171
             } else {
156
-              removeToken();
157
-              Message.error("获取菜单权限失败,请联系管理员分配菜单权限!");
158
-              reject("getMneus: 菜单、按钮获取出错!");
172
+              removeToken()
173
+              Message.error('获取菜单权限失败,请联系管理员分配菜单权限!')
174
+              reject('getMneus: 菜单、按钮获取出错!')
159 175
             }
160
-            resolve(response);
176
+            resolve(response)
161 177
           })
162 178
           .catch(error => {
163
-            reject(error);
164
-          });
165
-      });
179
+            reject(error)
180
+          })
181
+      })
166 182
     },
167 183
 
168 184
     // 前端 登出
169 185
     FedLogOut({ commit }) {
170 186
       return new Promise(resolve => {
171
-        commit("SET_TOKEN", "");
172
-        commit("SET_EXT", "");
173
-        removeToken();
174
-        window.localStorage.removeItem("ext"); // 分机号
175
-        window.sessionStorage.removeItem("telIsLogin"); // 签入状态
176
-        resolve();
177
-      });
187
+        commit('SET_TOKEN', '')
188
+        commit('SET_EXT', '')
189
+        removeToken()
190
+        window.localStorage.removeItem('ext') // 分机号
191
+        window.sessionStorage.removeItem('telIsLogin') // 签入状态
192
+        resolve()
193
+      })
178 194
     },
179 195
 
180 196
     // 修改用户头像
181 197
     SetAvatar({ commit }, msg) {
182
-      commit("SET_AVATAR", msg); // 用户头像
198
+      commit('SET_AVATAR', msg) // 用户头像
183 199
     }
184 200
   }
185
-};
201
+}
186 202
 
187
-export default user;
203
+export default user

+ 17 - 0
CallCenterWeb.UI/RMYY/src/views/login/index.vue

@@ -92,6 +92,7 @@
92 92
 </template>
93 93
 
94 94
 <script>
95
+import { getCode } from '@/utils/dd'
95 96
 import SvgIcon from '@/components/common/SvgIcon' // svg组件
96 97
 
97 98
 import { validUsername, validPassword, validExtension } from '@/utils/validate'
@@ -157,9 +158,25 @@ export default {
157 158
     }
158 159
   },
159 160
   created() {
161
+    this.init()
160 162
     this.toggle()
161 163
   },
162 164
   methods: {
165
+    init() {
166
+      getCode(code => {
167
+        if (code !== 'fail') {
168
+          this.$store.dispatch('Dinglogin', { code: code }).then((res) => {
169
+            if (res.state.toLowerCase() == 'success') {
170
+              this.$message.success('登录成功')
171
+              this.loading = false
172
+              this.$router.push({
173
+                path: '/Dashboard'
174
+              })
175
+            }
176
+          })
177
+        }
178
+      })
179
+    },
163 180
     showPwd() {
164 181
       if (this.pwdType === 'password') {
165 182
         this.pwdType = ''