94 lines
1.8 KiB
JavaScript
94 lines
1.8 KiB
JavaScript
import { USERKEY } from "../actionKey"
|
|
import {
|
|
setSessionXToken,
|
|
getSessionXToken,
|
|
setSessionUserInfo,
|
|
getSessionUserInfo
|
|
} from "@/session"
|
|
import * as apiService from "@/common/api"
|
|
import { goto } from "@/common/untool"
|
|
import { createSocketMessage, currentSocketTask } from "@/common/messageNotice/socket"
|
|
|
|
export default {
|
|
state: {
|
|
info: getSessionUserInfo(),
|
|
token: getSessionXToken(),
|
|
},
|
|
mutations: {
|
|
[USERKEY.LOGIN](state, provider) {
|
|
const {
|
|
token,
|
|
info
|
|
} = provider
|
|
state.token = provider
|
|
},
|
|
[USERKEY.GETUSERINFO](state, provider) {
|
|
state.info = provider
|
|
},
|
|
[USERKEY.LOGOUT](state) {
|
|
state.token = '';
|
|
state.info = {}
|
|
},
|
|
},
|
|
getters: {
|
|
// packInfo(state) {
|
|
// return state.user
|
|
// }
|
|
},
|
|
actions: {
|
|
async [USERKEY.LOGIN]({
|
|
dispatch,
|
|
commit,
|
|
state,
|
|
rootState
|
|
}, options) {
|
|
let token = state.token
|
|
const resLgn = await apiService.loginByApp(options)
|
|
token = resLgn.token
|
|
setSessionXToken(token)
|
|
|
|
commit(USERKEY.LOGIN, token)
|
|
},
|
|
async [USERKEY.LOGOUT]({
|
|
dispatch,
|
|
commit,
|
|
state,
|
|
rootState
|
|
}, options) {
|
|
setSessionUserInfo({})
|
|
setSessionXToken('')
|
|
commit(USERKEY.LOGOUT)
|
|
// 关闭socket
|
|
currentSocketTask.instance?.close?.({ noReConnect: true })
|
|
},
|
|
async [USERKEY.GETUSERINFO]({
|
|
dispatch,
|
|
commit,
|
|
state,
|
|
rootState
|
|
}, options) {
|
|
if(!state.token) {
|
|
console.log('缺少token')
|
|
setTimeout(()=> {
|
|
goto("login/login", 2)
|
|
}, 200)
|
|
return
|
|
}
|
|
|
|
const resInfo = await apiService.getInfoByApp()
|
|
const info = {
|
|
...resInfo.user,
|
|
roles: resInfo.user,
|
|
permissions: resInfo.permissions
|
|
}
|
|
|
|
let resQr = await apiService.getStaffQRCodePng()
|
|
info.qrCodeImgUrl = resQr?.data?.fileUrl
|
|
|
|
// 链接socket
|
|
createSocketMessage({ userInfo: info })
|
|
commit(USERKEY.GETUSERINFO, info)
|
|
},
|
|
|
|
}
|
|
} |