emis-app/store/modules/user.js

100 lines
2.0 KiB
JavaScript
Raw Normal View History

import { USERKEY } from "../actionKey"
import {
setSessionXToken,
getSessionXToken,
setSessionUserInfo,
getSessionUserInfo
} from "@/session"
2024-04-25 07:54:13 +00:00
import * as apiService from "@/common/api"
import { goto } from "@/common/untool"
2024-12-29 09:35:07 +00:00
import { createSocketMessage, currentSocketTask } from "@/common/messageNotice/socket"
2025-06-29 01:25:27 +00:00
import XdLbsUniSdk from "@/common/lbs/XdLbsUniSdk.js"
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
2024-04-25 07:54:13 +00:00
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)
2024-12-29 09:35:07 +00:00
// 关闭socket
currentSocketTask.instance?.close?.({ noReConnect: true })
2025-07-03 02:02:30 +00:00
// XdLbsUniSdk.getInstance("1000003").close();
},
async [USERKEY.GETUSERINFO]({
dispatch,
commit,
state,
rootState
}, options) {
if(!state.token) {
2024-05-10 03:15:31 +00:00
console.log('缺少token')
setTimeout(()=> {
goto("login/login", 2)
}, 200)
return
}
2024-04-25 07:54:13 +00:00
const resInfo = await apiService.getInfoByApp()
const info = {
...resInfo.user,
roles: resInfo.user,
permissions: resInfo.permissions
}
2024-05-23 08:37:07 +00:00
let resQr = await apiService.getStaffQRCodePng()
info.qrCodeImgUrl = resQr?.data?.fileUrl
2024-12-29 07:16:57 +00:00
// 链接socket
createSocketMessage({ userInfo: info })
2025-06-29 01:25:27 +00:00
// lbs serice
2025-07-03 02:02:30 +00:00
// XdLbsUniSdk.getInstance("1000003").init(info.empCode)
2025-06-29 01:25:27 +00:00
commit(USERKEY.GETUSERINFO, info)
},
}
}