From b94b71d44d62802bb8093f64a202d0176fdade50 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期二, 05 八月 2025 17:00:46 +0800
Subject: [PATCH] '一些更改'

---
 src/store/modules/user.ts |  125 ++++++++++++++++++++++++++++++++++++++---
 1 files changed, 114 insertions(+), 11 deletions(-)

diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 09b6642..fabcc62 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -8,13 +8,27 @@
   storageLocal
 } from "../utils";
 import {
-  type UserResult,
+  type LoginResult,
   type RefreshTokenResult,
   getLogin,
-  refreshTokenApi
+  refreshTokenApi,
+  getChangeLogoInExRule
 } from "@/api/user";
 import { useMultiTagsStoreHook } from "./multiTags";
-import { type DataInfo, setToken, removeToken, userKey } from "@/utils/auth";
+import {
+  type DataInfo,
+  type ResponseEnterprise,
+  type CusExtendDto,
+  setToken,
+  setRoleListInfo,
+  setNowRole,
+  removeToken,
+  userKey,
+  setEnterpriseInfo
+} from "@/utils/auth";
+import { exRole } from "@/api/register/index";
+import { cusExtendInfo } from "@/api/mine";
+import type { nowRoleType } from "@/store/types";
 
 export const useUserStore = defineStore("pure-user", {
   state: (): userType => ({
@@ -24,15 +38,22 @@
     username: storageLocal().getItem<DataInfo<number>>(userKey)?.username ?? "",
     // 鏄电О
     nickname: storageLocal().getItem<DataInfo<number>>(userKey)?.nickname ?? "",
-    // 椤甸潰绾у埆鏉冮檺
-    roles: storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? [],
+    // 褰撳墠瑙掕壊鍒楄〃
+    exRoles: storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? [],
     // 鎸夐挳绾у埆鏉冮檺
     permissions:
       storageLocal().getItem<DataInfo<number>>(userKey)?.permissions ?? [],
     // 鏄惁鍕鹃�変簡鐧诲綍椤电殑鍏嶇櫥褰�
     isRemembered: false,
     // 鐧诲綍椤电殑鍏嶇櫥褰曞瓨鍌ㄥ嚑澶╋紝榛樿7澶�
-    loginDay: 7
+    loginDay: 1,
+    // 浼佷笟璧勬枡
+    enterpriseInfo:
+      storageLocal().getItem<CusExtendDto>("enterpriseInfo") ?? {},
+    nowRole: storageLocal().getItem<nowRoleType>("nowRole") ?? {},
+    rolesList: storageLocal().getItem<DataInfo<number>>("rolesList") ?? [],
+    // 椤甸潰绾у埆鏉冮檺
+    roles: storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? []
   }),
   actions: {
     /** 瀛樺偍澶村儚 */
@@ -47,9 +68,21 @@
     SET_NICKNAME(nickname: string) {
       this.nickname = nickname;
     },
+    /** 瀛樺偍鐢ㄦ埛瑙掕壊 */
+    SET_EXROLES(exRoles: Array<string>) {
+      this.exRoles = exRoles;
+    },
     /** 瀛樺偍瑙掕壊 */
     SET_ROLES(roles: Array<string>) {
       this.roles = roles;
+    },
+    /** 瀛樺偍瑙掕壊褰撳墠瑙掕壊 */
+    SET_NOW_ROLE(nowRole: nowRoleType) {
+      this.nowRole = nowRole;
+    },
+    /** 瀛樺偍瑙掕壊鍒楄〃 */
+    SET_EXROLES_LIST(rolesList: Array<string>) {
+      this.rolesList = rolesList;
     },
     /** 瀛樺偍鎸夐挳绾у埆鏉冮檺 */
     SET_PERMS(permissions: Array<string>) {
@@ -63,13 +96,82 @@
     SET_LOGINDAY(value: number) {
       this.loginDay = Number(value);
     },
+    // 璁剧疆浼佷笟璧勬枡
+    SET_ENTERPRISEINFO(enterpriseInfo: CusExtendDto) {
+      this.enterpriseInfo = enterpriseInfo;
+    },
     /** 鐧诲叆 */
-    async loginByUsername(data) {
-      return new Promise<UserResult>((resolve, reject) => {
-        getLogin(data)
+    async loginByUsername(obj) {
+      return new Promise<LoginResult>((resolve, reject) => {
+        getLogin(obj)
           .then(data => {
-            if (data?.success) setToken(data.data);
+            if (data?.code == 200) {
+              data.result.roles = [obj.exRuleCode];
+              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(async data => {
+            if (data?.code == 200) {
+              data.result.roles = [obj.ruleCode];
+              setToken(data.result);
+              this.getNowRole(obj.ruleCode);
+              await this.getCusExtendInfo();
+              resolve(data);
+            }
+          })
+          .catch(error => {
+            reject(error);
+          });
+      });
+    },
+    async getCusExtendInfo() {
+      return new Promise<ResponseEnterprise>((resolve, reject) => {
+        cusExtendInfo()
+          .then(data => {
+            setEnterpriseInfo(data.result);
+            if (data?.code == 200) {
+              data.result.username = data.result?.enterpriseName;
+              resolve(data);
+            }
           })
           .catch(error => {
             reject(error);
@@ -79,12 +181,13 @@
     /** 鍓嶇鐧诲嚭锛堜笉璋冪敤鎺ュ彛锛� */
     logOut() {
       this.username = "";
+      this.exRoles = [];
       this.roles = [];
       this.permissions = [];
       removeToken();
       useMultiTagsStoreHook().handleTags("equal", [...routerArrays]);
       resetRouter();
-      router.push("/login");
+      router.push("/index");
     },
     /** 鍒锋柊`token` */
     async handRefreshToken(data) {

--
Gitblit v1.9.1