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 |  110 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 90 insertions(+), 20 deletions(-)

diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 2be8954..fabcc62 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -11,17 +11,24 @@
   type LoginResult,
   type RefreshTokenResult,
   getLogin,
-  refreshTokenApi
+  refreshTokenApi,
+  getChangeLogoInExRule
 } from "@/api/user";
 import { useMultiTagsStoreHook } from "./multiTags";
 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 => ({
@@ -31,7 +38,7 @@
     username: storageLocal().getItem<DataInfo<number>>(userKey)?.username ?? "",
     // 鏄电О
     nickname: storageLocal().getItem<DataInfo<number>>(userKey)?.nickname ?? "",
-    // 椤甸潰绾у埆鏉冮檺
+    // 褰撳墠瑙掕壊鍒楄〃
     exRoles: storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? [],
     // 鎸夐挳绾у埆鏉冮檺
     permissions:
@@ -42,7 +49,11 @@
     loginDay: 1,
     // 浼佷笟璧勬枡
     enterpriseInfo:
-      storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {}
+      storageLocal().getItem<CusExtendDto>("enterpriseInfo") ?? {},
+    nowRole: storageLocal().getItem<nowRoleType>("nowRole") ?? {},
+    rolesList: storageLocal().getItem<DataInfo<number>>("rolesList") ?? [],
+    // 椤甸潰绾у埆鏉冮檺
+    roles: storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? []
   }),
   actions: {
     /** 瀛樺偍澶村儚 */
@@ -57,9 +68,21 @@
     SET_NICKNAME(nickname: string) {
       this.nickname = nickname;
     },
-    /** 瀛樺偍瑙掕壊 */
-    SET_ROLES(exRoles: Array<string>) {
+    /** 瀛樺偍鐢ㄦ埛瑙掕壊 */
+    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>) {
@@ -74,15 +97,19 @@
       this.loginDay = Number(value);
     },
     // 璁剧疆浼佷笟璧勬枡
-    SET_ENTERPRISEINFO(value: object) {
-      this.loginDay = Number(value);
+    SET_ENTERPRISEINFO(enterpriseInfo: CusExtendDto) {
+      this.enterpriseInfo = enterpriseInfo;
     },
     /** 鐧诲叆 */
-    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) {
+              data.result.roles = [obj.exRuleCode];
+              setToken(data.result);
+              this.getNowRole(obj.exRuleCode);
+            }
             resolve(data);
           })
           .catch(error => {
@@ -90,13 +117,59 @@
           });
       });
     },
-    async getCusExtendInfo() {
+    /** 鑾峰彇瑙掕壊鍒楄〃 */
+    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 => {
-            data.result.username = data.result.enterpriseName;
+            setEnterpriseInfo(data.result);
             if (data?.code == 200) {
-              setEnterpriseInfo(data.result);
+              data.result.username = data.result?.enterpriseName;
               resolve(data);
             }
           })
@@ -108,16 +181,13 @@
     /** 鍓嶇鐧诲嚭锛堜笉璋冪敤鎺ュ彛锛� */
     logOut() {
       this.username = "";
+      this.exRoles = [];
+      this.roles = [];
       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) {

--
Gitblit v1.9.1