99 lines
2.0 KiB
JavaScript
99 lines
2.0 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 { goLogin } from "@/common/componentEventHandle"
|
|
|
|
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, provider) {
|
|
const { token, info } = provider
|
|
state.token = token;
|
|
state.info = info
|
|
},
|
|
},
|
|
getters: {
|
|
// packInfo(state) {
|
|
// return state.user
|
|
// }
|
|
},
|
|
actions: {
|
|
async [USERKEY.UPDATETOKEN]({
|
|
dispatch,
|
|
commit,
|
|
state,
|
|
rootState
|
|
}, options) {
|
|
let { token } = options
|
|
setSessionXToken(token)
|
|
commit(USERKEY.LOGIN, token)
|
|
},
|
|
async [USERKEY.LOGIN]({
|
|
dispatch,
|
|
commit,
|
|
state,
|
|
rootState
|
|
}, options) {
|
|
let token = state.token
|
|
const resLgn = await apiService.loginByApp(options)
|
|
token = resLgn.token
|
|
dispatch(USERKEY.UPDATETOKEN, { token })
|
|
},
|
|
async [USERKEY.LOGOUT]({
|
|
dispatch,
|
|
commit,
|
|
state,
|
|
rootState
|
|
}, options) {
|
|
let info = { logout: true }
|
|
let token = ''
|
|
setSessionUserInfo(info)
|
|
setSessionXToken(token)
|
|
|
|
commit(USERKEY.LOGOUT, { info, token })
|
|
},
|
|
async [USERKEY.GETUSERINFO]({
|
|
dispatch,
|
|
commit,
|
|
state,
|
|
rootState
|
|
}, options) {
|
|
if(!state.token) {
|
|
console.log('缺少token')
|
|
setTimeout(()=> {
|
|
goLogin()
|
|
}, 200)
|
|
return
|
|
}
|
|
|
|
const resInfo = await apiService.getInfoByApp()
|
|
const { userId, nickName } = resInfo.user
|
|
const kefuRes = await apiService.getOnlineKefuH5Url({ userId, nickName })
|
|
const info = {
|
|
...resInfo.user,
|
|
roles: resInfo.user,
|
|
permissions: resInfo.permissions,
|
|
kefuH5Url: kefuRes.data,
|
|
}
|
|
|
|
commit(USERKEY.GETUSERINFO, info)
|
|
},
|
|
|
|
}
|
|
} |