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" 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 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 }) // XdLbsUniSdk.getInstance("1000003").close(); }, 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 }) // lbs serice // XdLbsUniSdk.getInstance("1000003").init(info.empCode) commit(USERKEY.GETUSERINFO, info) }, } }