2026-01-04 11:09:06 +08:00
|
|
|
import {
|
|
|
|
|
defineStore
|
|
|
|
|
} from 'pinia';
|
|
|
|
|
import {
|
2026-01-22 11:01:19 +08:00
|
|
|
getLogout,
|
2026-01-04 11:09:06 +08:00
|
|
|
getCurrentUser
|
|
|
|
|
} from '@/api/common'
|
|
|
|
|
import store from '../index'
|
|
|
|
|
import permission from '@/libs/permission'
|
|
|
|
|
|
|
|
|
|
export const useUserStore = defineStore({
|
2026-01-20 18:07:35 +08:00
|
|
|
id: 'user',
|
2026-01-04 11:09:06 +08:00
|
|
|
state: () => ({
|
|
|
|
|
token: "",
|
2026-01-25 20:22:58 +08:00
|
|
|
refreshToken: "",
|
2026-01-04 11:09:06 +08:00
|
|
|
userInfo: {},
|
|
|
|
|
menuList: [],
|
2026-01-20 18:07:35 +08:00
|
|
|
tenantId: '',
|
2026-01-22 11:01:19 +08:00
|
|
|
current: 0,
|
2026-01-04 11:09:06 +08:00
|
|
|
}),
|
|
|
|
|
getters: {
|
|
|
|
|
getToken() {
|
|
|
|
|
return this.token
|
|
|
|
|
},
|
2026-01-20 18:07:35 +08:00
|
|
|
getCurrent() {
|
|
|
|
|
return this.current
|
|
|
|
|
},
|
2026-01-04 11:09:06 +08:00
|
|
|
},
|
|
|
|
|
actions: {
|
2026-01-20 18:07:35 +08:00
|
|
|
setCurrent(current) {
|
|
|
|
|
this.current = current
|
|
|
|
|
uni.setStorageSync('current', current)
|
|
|
|
|
},
|
2026-01-19 17:34:15 +08:00
|
|
|
setTenantId(tenantId) {
|
|
|
|
|
this.tenantId = tenantId
|
|
|
|
|
uni.setStorageSync('tenantId', tenantId)
|
|
|
|
|
},
|
2026-01-04 11:09:06 +08:00
|
|
|
setToken(token) {
|
|
|
|
|
this.token = token
|
|
|
|
|
uni.setStorageSync('token', token)
|
|
|
|
|
},
|
2026-01-25 20:22:58 +08:00
|
|
|
setRefreshToken(refreshToken) {
|
|
|
|
|
this.refreshToken = refreshToken
|
|
|
|
|
uni.setStorageSync('refreshToken', refreshToken)
|
|
|
|
|
},
|
2026-01-04 11:09:06 +08:00
|
|
|
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) => {
|
2026-01-22 11:01:19 +08:00
|
|
|
getLogout().then(() => {
|
2026-01-04 11:09:06 +08:00
|
|
|
this.setToken('')
|
2026-01-19 17:34:15 +08:00
|
|
|
this.setTenantId('')
|
2026-01-04 11:09:06 +08:00
|
|
|
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);
|
|
|
|
|
}
|