mirror of
https://gitee.com/myxzgzs/boyue_jnpf.git
synced 2025-08-08 15:22:43 +08:00
102 lines
2.4 KiB
JavaScript
102 lines
2.4 KiB
JavaScript
import {
|
|
defineStore
|
|
} from 'pinia';
|
|
import {
|
|
logout,
|
|
getCurrentUser
|
|
} from '@/api/common.js'
|
|
import store from '../index'
|
|
import permission from '@/libs/permission'
|
|
|
|
export const useUserStore = defineStore({
|
|
id: ' user',
|
|
state: () => ({
|
|
token: "",
|
|
userInfo: {},
|
|
menuList: [],
|
|
}),
|
|
getters: {
|
|
getToken() {
|
|
return this.token
|
|
},
|
|
},
|
|
actions: {
|
|
setToken(token) {
|
|
this.token = token
|
|
uni.setStorageSync('token', token)
|
|
},
|
|
setCid(cid) {
|
|
this.cid = cid
|
|
uni.setStorageSync('cid', cid)
|
|
},
|
|
setUserInfo(userInfo) {
|
|
this.userInfo = userInfo
|
|
uni.setStorageSync('userInfo', userInfo)
|
|
},
|
|
setMenuList(menuList) {
|
|
this.menuList = menuList
|
|
uni.setStorageSync('menuList', menuList)
|
|
},
|
|
getCurrentUser() {
|
|
return new Promise((resolve, reject) => {
|
|
getCurrentUser().then(res => {
|
|
const userInfo = res.data.userInfo || {}
|
|
const permissionList = res.data.permissionList || []
|
|
const sysConfigInfo = res.data.sysConfigInfo || {}
|
|
const sysVersion = sysConfigInfo.sysVersion || ''
|
|
const copyright = sysConfigInfo.copyright || ''
|
|
uni.setStorageSync('sysVersion', sysVersion)
|
|
uni.setStorageSync('permissionList', permissionList)
|
|
permission && permission.updatePermissionList()
|
|
uni.setStorageSync('sysConfigInfo', sysConfigInfo)
|
|
uni.setStorageSync('copyright', copyright)
|
|
this.setUserInfo(userInfo)
|
|
this.setMenuList(res.data.menuList)
|
|
let menuList = res.data.menuList
|
|
if (!menuList.length && !userInfo.workflowEnabled) {
|
|
uni.showToast({
|
|
title: '您的权限不足,请联系管理员',
|
|
icon: 'none'
|
|
})
|
|
uni.removeStorageSync('token')
|
|
reject()
|
|
setTimeout(() => {
|
|
uni.reLaunch({
|
|
url: '/pages/login/index'
|
|
})
|
|
}, 500)
|
|
return
|
|
}
|
|
resolve(userInfo)
|
|
}).catch(error => {
|
|
reject(error)
|
|
})
|
|
})
|
|
},
|
|
logout() {
|
|
return new Promise((resolve, reject) => {
|
|
logout().then(() => {
|
|
this.setToken('')
|
|
this.setCid('')
|
|
this.setUserInfo({})
|
|
this.resetToken()
|
|
resolve()
|
|
}).catch(error => {
|
|
reject(error)
|
|
})
|
|
})
|
|
},
|
|
resetToken() {
|
|
uni.removeStorageSync('token')
|
|
uni.removeStorageSync('cid')
|
|
uni.removeStorageSync('userInfo')
|
|
uni.removeStorageSync('permissionList')
|
|
uni.removeStorageSync('sysVersion')
|
|
uni.removeStorageSync('dynamicModelExtra')
|
|
}
|
|
},
|
|
});
|
|
|
|
export function useUserStoreWithOut() {
|
|
return useUserStore(store);
|
|
} |