| | |
| | | type LoginResult, |
| | | type RefreshTokenResult, |
| | | getLogin, |
| | | refreshTokenApi |
| | | refreshTokenApi, |
| | | getChangeLogoInExRule |
| | | } from "@/api/user"; |
| | | import { useMultiTagsStoreHook } from "./multiTags"; |
| | | import { |
| | | type DataInfo, |
| | | setToken, |
| | | setRoleListInfo, |
| | | setNowRole, |
| | | removeToken, |
| | | userKey, |
| | | setEnterpriseInfo |
| | | } from "@/utils/auth"; |
| | | import { exRole } from "@/api/register/index"; |
| | | import { cusExtendInfo } from "@/api/mine"; |
| | | |
| | | export const useUserStore = defineStore("pure-user", { |
| | |
| | | loginDay: 1, |
| | | // 企业资料 |
| | | enterpriseInfo: |
| | | storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {} |
| | | storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {}, |
| | | nowRole: storageLocal().getItem<DataInfo<number>>("nowRole") ?? {}, |
| | | rolesList: storageLocal().getItem<DataInfo<number>>("rolesList") ?? [], |
| | | isFlsh: storageLocal().getItem<DataInfo<number>>("isFlsh") ?? false |
| | | }), |
| | | actions: { |
| | | /** 存储头像 */ |
| | |
| | | SET_NICKNAME(nickname: string) { |
| | | this.nickname = nickname; |
| | | }, |
| | | /** 存储角色 */ |
| | | /** 存储用户角色 */ |
| | | SET_ROLES(exRoles: Array<string>) { |
| | | this.exRoles = exRoles; |
| | | }, |
| | | /** 存储角色当前角色 */ |
| | | SET_NOW_ROLE(nowRole: object) { |
| | | this.nowRole = nowRole; |
| | | }, |
| | | /** 存储角色列表 */ |
| | | SET_ROLES_LIST(rolesList: Array<string>) { |
| | | this.rolesList = rolesList; |
| | | }, |
| | | /** 当前角色是否审核 */ |
| | | SET_IS_FLSH(isFlsh: boolean | string) { |
| | | this.isFlsh = isFlsh; |
| | | }, |
| | | /** 存储按钮级别权限 */ |
| | | SET_PERMS(permissions: Array<string>) { |
| | |
| | | this.loginDay = Number(value); |
| | | }, |
| | | /** 登入 */ |
| | | async loginByUsername(data) { |
| | | async loginByUsername(obj) { |
| | | return new Promise<LoginResult>((resolve, reject) => { |
| | | getLogin(data) |
| | | getLogin(obj) |
| | | .then(data => { |
| | | if (data?.code == 200) setToken(data.result); |
| | | if (data?.code == 200) { |
| | | setToken(data.result); |
| | | this.getNowRole(obj.exRuleCode); |
| | | } |
| | | resolve(data); |
| | | }) |
| | | .catch(error => { |
| | | reject(error); |
| | | }); |
| | | }); |
| | | }, |
| | | /** 获取角色列表 */ |
| | | async getRoleList() { |
| | | return new Promise<LoginResult>((resolve, reject) => { |
| | | exRole() |
| | | .then(data => { |
| | | if (data?.code == 200) { |
| | | setRoleListInfo(data.result); |
| | | if (this.nowRole.code) { |
| | | this.getNowRole(this.nowRole.code); |
| | | } |
| | | } |
| | | resolve(data); |
| | | }) |
| | | .catch(error => { |
| | | reject(error); |
| | | }); |
| | | }); |
| | | }, |
| | | /** 获取当前角色 */ |
| | | async getNowRole(code) { |
| | | return new Promise<LoginResult>((resolve, reject) => { |
| | | const data = this.rolesList.find(item => { |
| | | return item.code == code; |
| | | }); |
| | | setNowRole(data); |
| | | resolve(data); |
| | | }); |
| | | }, |
| | | /** 切换角色 */ |
| | | async changeLogoInExRule(obj) { |
| | | return new Promise<LoginResult>((resolve, reject) => { |
| | | getChangeLogoInExRule(obj) |
| | | .then(data => { |
| | | if (data?.code == 200) { |
| | | setToken(data.result); |
| | | this.getNowRole(obj.ruleCode); |
| | | this.getCusExtendInfo(); |
| | | } |
| | | resolve(data); |
| | | }) |
| | | .catch(error => { |
| | |
| | | /** 前端登出(不调用接口) */ |
| | | logOut() { |
| | | this.username = ""; |
| | | this.exRoles = []; |
| | | this.permissions = []; |
| | | removeToken(); |
| | | useMultiTagsStoreHook().handleTags("equal", [...routerArrays]); |
| | | resetRouter(); |
| | | if (this.exRoles && this.exRoles.length == 1) { |
| | | router.push({ name: "Login", query: this.exRoles[0] }); |
| | | } else { |
| | | router.push({ name: "Login" }); |
| | | } |
| | | removeToken(); |
| | | this.exRoles = []; |
| | | router.push("/index"); |
| | | }, |
| | | /** 刷新`token` */ |
| | | async handRefreshToken(data) { |