1
import Vue from 'vue'
2
3
4
5
6
7
8
9
import { login , logout , phoneLogin , thirdLogin } from "@/api/login"
import {
ACCESS_TOKEN ,
USER_NAME ,
USER_INFO ,
USER_AUTH ,
SYS_BUTTON_AUTH ,
UI_CACHE_DB_DICT_DATA ,
谭毅彬
authored
about a year ago
10
UI_CACHE_TRANSLATE_DATA ,
谭毅彬
authored
about a year ago
11
UI_CACHE_TRANSLATE_DICT_DATA ,
12
13
14
15
TENANT_ID ,
CACHE_INCLUDED_ROUTES
} from "@/store/mutation-types"
import { welcome } from "@/utils/util"
谭毅彬
authored
about a year ago
16
import { queryPermissionsByUser , getTranslateItemsFromCache , translateDistItems } from '@/api/api'
17
import { getAction } from '@/api/manage'
18
19
20
21
22
23
const user = {
state : {
token : '' ,
username : '' ,
realname : '' ,
24
tenantid : '' ,
25
26
27
28
29
30
31
32
33
34
35
36
welcome : '' ,
avatar : '' ,
permissionList : [],
info : {},
// 系统安全模式
sysSafeMode : null ,
},
mutations : {
SET_TOKEN : ( state , token ) => {
state . token = token
},
37
SET_NAME : ( state , { username , realname , welcome }) => {
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
state . username = username
state . realname = realname
state . welcome = welcome
},
SET_AVATAR : ( state , avatar ) => {
state . avatar = avatar
},
SET_PERMISSIONLIST : ( state , permissionList ) => {
state . permissionList = permissionList
},
SET_INFO : ( state , info ) => {
state . info = info
},
SET_TENANT : ( state , id ) => {
state . tenantid = id
},
SET_SYS_SAFE_MODE : ( state , sysSafeMode ) => {
if ( typeof sysSafeMode === 'boolean' ) {
state . sysSafeMode = sysSafeMode
} else {
state . sysSafeMode = false
}
},
},
actions : {
// CAS验证登录
65
ValidateLogin ({ commit }, userInfo ) {
66
return new Promise (( resolve , reject ) => {
67
68
69
getAction ( "/sys/cas/client/validateLogin" , userInfo ). then ( response => {
console . log ( "----cas 登录--------" , response );
if ( response . success ) {
70
71
72
73
74
75
76
const result = response . result
const userInfo = result . userInfo
Vue . ls . set ( ACCESS_TOKEN , result . token , 7 * 24 * 60 * 60 * 1000 )
Vue . ls . set ( USER_NAME , userInfo . username , 7 * 24 * 60 * 60 * 1000 )
Vue . ls . set ( USER_INFO , userInfo , 7 * 24 * 60 * 60 * 1000 )
commit ( 'SET_TOKEN' , result . token )
commit ( 'SET_INFO' , userInfo )
77
commit ( 'SET_NAME' , { username : userInfo . username , realname : userInfo . realname , welcome : welcome ()})
78
79
commit ( 'SET_AVATAR' , userInfo . avatar )
resolve ( response )
80
} else {
81
82
83
84
85
86
87
88
resolve ( response )
}
}). catch ( error => {
reject ( error )
})
})
},
// 登录
89
Login ({ commit }, userInfo ) {
90
91
return new Promise (( resolve , reject ) => {
login ( userInfo ). then ( response => {
92
if ( response . code == '200' ) {
93
94
const result = response . result
const userInfo = result . userInfo
谭毅彬
authored
about a year ago
95
const sysTranslateDictItems = result . sysTranslateDictItems
96
97
98
Vue . ls . set ( ACCESS_TOKEN , result . token , 7 * 24 * 60 * 60 * 1000 )
Vue . ls . set ( USER_NAME , userInfo . username , 7 * 24 * 60 * 60 * 1000 )
Vue . ls . set ( USER_INFO , userInfo , 7 * 24 * 60 * 60 * 1000 )
谭毅彬
authored
about a year ago
99
100
101
102
Vue . ls . set ( UI_CACHE_TRANSLATE_DICT_DATA , sysTranslateDictItems , 7 * 24 * 60 * 60 * 1000 )
// 翻译数据字典
const allDictItems = translateDistItems ( result . sysAllDictItems );
Vue . ls . set ( UI_CACHE_DB_DICT_DATA , allDictItems , 7 * 24 * 60 * 60 * 1000 )
103
104
commit ( 'SET_TOKEN' , result . token )
commit ( 'SET_INFO' , userInfo )
105
commit ( 'SET_NAME' , { username : userInfo . username , realname : userInfo . realname , welcome : welcome ()})
106
107
commit ( 'SET_AVATAR' , userInfo . avatar )
resolve ( response )
108
} else {
109
110
111
112
113
114
115
116
reject ( response )
}
}). catch ( error => {
reject ( error )
})
})
},
//手机号登录
117
PhoneLogin ({ commit }, userInfo ) {
118
return new Promise (( resolve , reject ) => {
119
120
121
122
phoneLogin ( userInfo ). then ( response => {
if ( response . code == '200' ) {
const result = response . result
const userInfo = result . userInfo
谭毅彬
authored
about a year ago
123
const sysTranslateDictItems = result . sysTranslateDictItems
124
125
126
Vue . ls . set ( ACCESS_TOKEN , result . token , 7 * 24 * 60 * 60 * 1000 )
Vue . ls . set ( USER_NAME , userInfo . username , 7 * 24 * 60 * 60 * 1000 )
Vue . ls . set ( USER_INFO , userInfo , 7 * 24 * 60 * 60 * 1000 )
谭毅彬
authored
about a year ago
127
128
129
130
Vue . ls . set ( UI_CACHE_TRANSLATE_DICT_DATA , sysTranslateDictItems , 7 * 24 * 60 * 60 * 1000 )
// 翻译数据字典
const allDictItems = translateDistItems ( result . sysAllDictItems );
Vue . ls . set ( UI_CACHE_DB_DICT_DATA , allDictItems , 7 * 24 * 60 * 60 * 1000 )
131
132
133
134
135
136
137
138
139
140
141
commit ( 'SET_TOKEN' , result . token )
commit ( 'SET_INFO' , userInfo )
commit ( 'SET_NAME' , { username : userInfo . username , realname : userInfo . realname , welcome : welcome ()})
commit ( 'SET_AVATAR' , userInfo . avatar )
resolve ( response )
} else {
reject ( response )
}
}). catch ( error => {
reject ( error )
})
142
143
144
})
},
// 获取用户信息
145
GetPermissionList ({ commit }) {
146
147
148
149
150
return new Promise (( resolve , reject ) => {
queryPermissionsByUser (). then ( response => {
const menuData = response . result . menu ;
const authData = response . result . auth ;
const allAuthData = response . result . allAuth ;
谭毅彬
authored
about a year ago
151
152
// 设置国际化缓存
Vue . ls . set ( UI_CACHE_TRANSLATE_DATA , response . result . sysTranslateItems , 7 * 24 * 60 * 60 * 1000 )
153
154
sessionStorage . setItem ( USER_AUTH , JSON . stringify ( authData ));
sessionStorage . setItem ( SYS_BUTTON_AUTH , JSON . stringify ( allAuthData ));
155
if ( menuData && menuData . length > 0 ) {
谭毅彬
authored
about a year ago
156
157
158
159
160
161
162
163
164
// 获取缓存语种
let language = Vue . ls . get ( "language" );
menuData . forEach (( item ) => {
let temp = getTranslateItemsFromCache ( 'sys_permission' , item [ "id" ], language , '' )
if ( temp != null ) {
item [ "meta" ]. title = temp ;
}
if ( item [ "children" ]) {
let hasChildrenMenu = item [ "children" ]. filter (( i ) => {
谭毅彬
authored
about a year ago
165
166
167
168
169
170
171
172
173
174
175
176
if ( i [ "children" ]) {
let hasChildrenMenu = i [ "children" ]. filter (( i ) => {
let childrenTemp = getTranslateItemsFromCache ( 'sys_permission' , i [ "id" ], language , '' )
if ( childrenTemp != null ) {
i [ "meta" ]. title = childrenTemp ;
}
return ! i . hidden || i . hidden == false
})
if ( hasChildrenMenu == null || hasChildrenMenu . length == 0 ) {
i [ "hidden" ] = true
}
}
谭毅彬
authored
about a year ago
177
178
179
let childrenTemp = getTranslateItemsFromCache ( 'sys_permission' , i [ "id" ], language , '' )
if ( childrenTemp != null ) {
i [ "meta" ]. title = childrenTemp ;
谭毅彬
authored
about a year ago
180
181
182
183
184
185
186
187
}
return ! i . hidden || i . hidden == false
})
if ( hasChildrenMenu == null || hasChildrenMenu . length == 0 ) {
item [ "hidden" ] = true
}
}
})
188
189
190
191
192
193
194
195
196
197
198
199
200
201
commit ( 'SET_PERMISSIONLIST' , menuData )
// 设置系统安全模式
commit ( 'SET_SYS_SAFE_MODE' , response . result . sysSafeMode )
} else {
reject ( 'getPermissionList: permissions must be a non-null array !' )
}
resolve ( response )
}). catch ( error => {
reject ( error )
})
})
},
// 登出
202
Logout ({ commit , state }) {
203
204
205
206
207
208
209
210
return new Promise (( resolve ) => {
let logoutToken = state . token ;
commit ( 'SET_TOKEN' , '' )
commit ( 'SET_PERMISSIONLIST' , [])
Vue . ls . remove ( ACCESS_TOKEN )
Vue . ls . remove ( USER_INFO )
Vue . ls . remove ( USER_NAME )
Vue . ls . remove ( UI_CACHE_DB_DICT_DATA )
谭毅彬
authored
about a year ago
211
Vue . ls . remove ( UI_CACHE_TRANSLATE_DICT_DATA )
谭毅彬
authored
about a year ago
212
Vue . ls . remove ( UI_CACHE_TRANSLATE_DATA )
213
214
215
216
217
Vue . ls . remove ( CACHE_INCLUDED_ROUTES )
Vue . ls . remove ( TENANT_ID )
//console.log('logoutToken: '+ logoutToken)
logout ( logoutToken ). then (() => {
if ( process . env . VUE_APP_SSO == 'true' ) {
218
let sevice = 'http://' + window . location . host + '/wms/'
219
220
221
222
223
224
225
226
227
228
let serviceUrl = encodeURIComponent ( sevice )
window . location . href = process . env . VUE_APP_CAS_BASE_URL + '/logout?service=' + serviceUrl
}
resolve ()
}). catch (() => {
resolve ()
})
})
},
// 第三方登录
229
ThirdLogin ({ commit }, param ) {
230
return new Promise (( resolve , reject ) => {
231
232
thirdLogin ( param . token , param . thirdType ). then ( response => {
if ( response . code == '200' ) {
233
234
235
236
237
238
239
const result = response . result
const userInfo = result . userInfo
Vue . ls . set ( ACCESS_TOKEN , result . token , 7 * 24 * 60 * 60 * 1000 )
Vue . ls . set ( USER_NAME , userInfo . username , 7 * 24 * 60 * 60 * 1000 )
Vue . ls . set ( USER_INFO , userInfo , 7 * 24 * 60 * 60 * 1000 )
commit ( 'SET_TOKEN' , result . token )
commit ( 'SET_INFO' , userInfo )
240
commit ( 'SET_NAME' , { username : userInfo . username , realname : userInfo . realname , welcome : welcome ()})
241
242
commit ( 'SET_AVATAR' , userInfo . avatar )
resolve ( response )
243
} else {
244
245
246
247
248
249
250
reject ( response )
}
}). catch ( error => {
reject ( error )
})
})
},
251
saveTenant ({ commit }, id ) {
252
253
254
255
256
257
258
259
260
Vue . ls . set ( TENANT_ID , id , 7 * 24 * 60 * 60 * 1000 )
commit ( 'SET_TENANT' , id )
}
}
}
export default user