| | |
| | | storageLocal |
| | | } from "../utils"; |
| | | import { |
| | | type LoginResult, |
| | | type RefreshTokenResult, |
| | | getLogin, |
| | | refreshTokenApi, |
| | | // refreshTokenApi, |
| | | getChangeLogoInExRule |
| | | } from "@/api/user"; |
| | | import type { LoginData, RoleData, RoleItem } from "@/api/types"; |
| | | import { useMultiTagsStoreHook } from "./multiTags"; |
| | | import { |
| | | type DataInfo, |
| | |
| | | import { exRole } from "@/api/register/index"; |
| | | import { cusExtendInfo } from "@/api/mine"; |
| | | import type { nowRoleType } from "@/store/types"; |
| | | import { cloneDeep } from "@pureadmin/utils"; |
| | | import { message } from "@/utils/message"; |
| | | |
| | | export const useUserStore = defineStore("pure-user", { |
| | | state: (): userType => ({ |
| | |
| | | enterpriseInfo: |
| | | storageLocal().getItem<CusExtendDto>("enterpriseInfo") ?? {}, |
| | | nowRole: storageLocal().getItem<nowRoleType>("nowRole") ?? {}, |
| | | rolesList: storageLocal().getItem<DataInfo<number>>("rolesList") ?? [], |
| | | rolesList: storageLocal().getItem<RoleItem[]>("rolesList") ?? [], |
| | | // 页面级别权限 |
| | | roles: storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? [] |
| | | roles: storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? [], |
| | | isManager: |
| | | storageLocal().getItem<DataInfo<number>>(userKey)?.isManager ?? false |
| | | }), |
| | | actions: { |
| | | /** 存储头像 */ |
| | |
| | | this.nickname = nickname; |
| | | }, |
| | | /** 存储用户角色 */ |
| | | SET_EXROLES(exRoles: Array<string>) { |
| | | SET_EXROLES(exRoles: RoleItem[]) { |
| | | this.exRoles = exRoles; |
| | | }, |
| | | /** 存储角色 */ |
| | |
| | | this.nowRole = nowRole; |
| | | }, |
| | | /** 存储角色列表 */ |
| | | SET_EXROLES_LIST(rolesList: Array<string>) { |
| | | SET_EXROLES_LIST(rolesList: RoleItem[]) { |
| | | this.rolesList = rolesList; |
| | | }, |
| | | /** 存储按钮级别权限 */ |
| | |
| | | SET_ENTERPRISEINFO(enterpriseInfo: CusExtendDto) { |
| | | this.enterpriseInfo = enterpriseInfo; |
| | | }, |
| | | SET_ISMANAGER(isManager: boolean) { |
| | | this.isManager = isManager; |
| | | }, |
| | | /** 登入 */ |
| | | async loginByUsername(obj) { |
| | | return new Promise<LoginResult>((resolve, reject) => { |
| | | return new Promise<LoginData>((resolve, reject) => { |
| | | getLogin(obj) |
| | | .then(data => { |
| | | if (data?.code == 200) { |
| | | data.result.roles = [obj.exRuleCode]; |
| | | setToken(data.result); |
| | | this.getNowRole(obj.exRuleCode); |
| | | if (data.result.theLastLogo) { |
| | | const resObj = cloneDeep(data.result); |
| | | resObj.roles = [obj.exRuleCode]; |
| | | setToken(resObj); |
| | | this.getNowRole(obj.exRuleCode); |
| | | } |
| | | } |
| | | resolve(data); |
| | | }) |
| | |
| | | }, |
| | | /** 获取角色列表 */ |
| | | async getRoleList() { |
| | | return new Promise<LoginResult>((resolve, reject) => { |
| | | return new Promise<RoleData>((resolve, reject) => { |
| | | exRole() |
| | | .then(data => { |
| | | if (data?.code == 200) { |
| | |
| | | }, |
| | | /** 获取当前角色 */ |
| | | async getNowRole(code) { |
| | | return new Promise<LoginResult>((resolve, reject) => { |
| | | return new Promise(resolve => { |
| | | const data = this.rolesList.find(item => { |
| | | return item.code == code; |
| | | }); |
| | | setNowRole(data); |
| | | resolve(data); |
| | | if (data?.code) { |
| | | setNowRole(data); |
| | | resolve(data); |
| | | } |
| | | }); |
| | | }, |
| | | /** 切换角色 */ |
| | | async changeLogoInExRule(obj) { |
| | | return new Promise<LoginResult>((resolve, reject) => { |
| | | return new Promise<LoginData>((resolve, reject) => { |
| | | getChangeLogoInExRule(obj) |
| | | .then(async data => { |
| | | if (data?.code == 200) { |
| | | data.result.roles = [obj.ruleCode]; |
| | | setToken(data.result); |
| | | const resObj = cloneDeep(data.result); |
| | | resObj.roles = [obj.ruleCode]; |
| | | setToken(resObj); |
| | | this.getNowRole(obj.ruleCode); |
| | | await this.getCusExtendInfo(); |
| | | resolve(data); |
| | | } else { |
| | | message(data?.message, { type: "warning" }); |
| | | } |
| | | }) |
| | | .catch(error => { |
| | |
| | | .then(data => { |
| | | setEnterpriseInfo(data.result); |
| | | if (data?.code == 200) { |
| | | data.result.username = data.result?.enterpriseName; |
| | | resolve(data); |
| | | const resData = cloneDeep(data); |
| | | resData.result.username = data.result?.enterpriseName; |
| | | resolve(resData); |
| | | } |
| | | }) |
| | | .catch(error => { |
| | |
| | | router.push("/index"); |
| | | }, |
| | | /** 刷新`token` */ |
| | | async handRefreshToken(data) { |
| | | return new Promise<RefreshTokenResult>((resolve, reject) => { |
| | | refreshTokenApi(data) |
| | | .then(data => { |
| | | if (data) { |
| | | setToken(data.data); |
| | | resolve(data); |
| | | } |
| | | }) |
| | | .catch(error => { |
| | | reject(error); |
| | | }); |
| | | }); |
| | | async handRefreshToken() { |
| | | // return new Promise<RefreshTokenResult>((resolve, reject) => { |
| | | // refreshTokenApi(data) |
| | | // .then(data => { |
| | | // if (data) { |
| | | // setToken(data.data); |
| | | // resolve(data); |
| | | // } |
| | | // }) |
| | | // .catch(error => { |
| | | // reject(error); |
| | | // }); |
| | | // }); |
| | | } |
| | | } |
| | | }); |