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({ ...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, }, )