Files
jnpf_app/store/modules/user.js
2026-01-19 17:34:15 +08:00

95 lines
2.3 KiB
JavaScript

import {
defineStore
} from 'pinia';
import {
logout,
getCurrentUser
} from '@/api/common'
import store from '../index'
import permission from '@/libs/permission'
export const useUserStore = defineStore({
id: ' user',
state: () => ({
token: "",
userInfo: {},
menuList: [],
tenantId: ''
}),
getters: {
getToken() {
return this.token
},
},
actions: {
setTenantId(tenantId) {
console.log(tenantId,'tenantId---')
this.tenantId = tenantId
uni.setStorageSync('tenantId', tenantId)
},
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)
uni.setStorageSync('systemCode', userInfo.systemCode)
this.setUserInfo(userInfo)
this.setMenuList(res.data.menuList)
resolve(userInfo)
}).catch(error => {
reject(error)
})
})
},
logout() {
return new Promise((resolve, reject) => {
logout().then(() => {
this.setToken('')
this.setTenantId('')
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);
}