From 115769e9ad3ddc64e21ad7285450c4c563c745ed Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期三, 20 八月 2025 17:20:29 +0800
Subject: [PATCH] 用户管理页面

---
 src/store/modules/user.ts |   81 ++++++++++++++++++++++++----------------
 1 files changed, 48 insertions(+), 33 deletions(-)

diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index fabcc62..0f59a5f 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -8,12 +8,11 @@
   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,
@@ -29,6 +28,8 @@
 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 => ({
@@ -51,9 +52,11 @@
     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: {
     /** 瀛樺偍澶村儚 */
@@ -69,7 +72,7 @@
       this.nickname = nickname;
     },
     /** 瀛樺偍鐢ㄦ埛瑙掕壊 */
-    SET_EXROLES(exRoles: Array<string>) {
+    SET_EXROLES(exRoles: RoleItem[]) {
       this.exRoles = exRoles;
     },
     /** 瀛樺偍瑙掕壊 */
@@ -81,7 +84,7 @@
       this.nowRole = nowRole;
     },
     /** 瀛樺偍瑙掕壊鍒楄〃 */
-    SET_EXROLES_LIST(rolesList: Array<string>) {
+    SET_EXROLES_LIST(rolesList: RoleItem[]) {
       this.rolesList = rolesList;
     },
     /** 瀛樺偍鎸夐挳绾у埆鏉冮檺 */
@@ -100,15 +103,21 @@
     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);
           })
@@ -119,7 +128,7 @@
     },
     /** 鑾峰彇瑙掕壊鍒楄〃 */
     async getRoleList() {
-      return new Promise<LoginResult>((resolve, reject) => {
+      return new Promise<RoleData>((resolve, reject) => {
         exRole()
           .then(data => {
             if (data?.code == 200) {
@@ -137,25 +146,30 @@
     },
     /** 鑾峰彇褰撳墠瑙掕壊 */
     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 => {
@@ -169,8 +183,9 @@
           .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 => {
@@ -190,19 +205,19 @@
       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);
+      //     });
+      // });
     }
   }
 });

--
Gitblit v1.9.1