jeecgBootUniapp/src/store/user.ts
yangzhq68909 09ce6fbb11 1
2025-05-09 09:42:19 +08:00

58 lines
1.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { defineStore } from 'pinia'
import { ref } from 'vue'
import { queryDepByOrgCodeApi } from '@/api/system/department'
const initState = {
token: '',
userid: '',
username: '',
realname: '',
avatar: '',
tenantId: 0,
phone: '',
email: '',
// sex: 1,
post: '',
orgCode: '',
workNo: '',
// 本地存储时间
localStorageTime: 0,
}
export const useUserStore = defineStore(
'user',
() => {
const userInfo = ref<IUserInfo>({ ...initState })
const setUserInfo = (val : IUserInfo) => {
userInfo.value = val
if (val.orgCode) {
queryDepByOrgCodeApi(val.orgCode).then((res : any) => {
userInfo.value.department = res.result; // 假设 API 返回 { result: "部门名称" }
})
}
}
const clearUserInfo = () => {
userInfo.value = { ...initState }
}
const editUserInfo = (options) => {
userInfo.value = { ...userInfo.value, ...options }
}
// 一般没有reset需求不需要的可以删除
const reset = () => {
userInfo.value = { ...initState }
}
const isLogined = computed(() => !!userInfo.value.token)
return {
userInfo,
setUserInfo,
clearUserInfo,
isLogined,
editUserInfo,
reset,
}
},
{
// 如果需要持久化就写 true, 不需要持久化就写 false或者去掉这个配置项
persist: true,
},
)