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 |  114 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 68 insertions(+), 46 deletions(-)

diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 145823a..0f59a5f 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -8,15 +8,16 @@
   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,
+  type ResponseEnterprise,
+  type CusExtendDto,
   setToken,
   setRoleListInfo,
   setNowRole,
@@ -26,6 +27,9 @@
 } from "@/utils/auth";
 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 => ({
@@ -35,7 +39,7 @@
     username: storageLocal().getItem<DataInfo<number>>(userKey)?.username ?? "",
     // 鏄电О
     nickname: storageLocal().getItem<DataInfo<number>>(userKey)?.nickname ?? "",
-    // 椤甸潰绾у埆鏉冮檺
+    // 褰撳墠瑙掕壊鍒楄〃
     exRoles: storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? [],
     // 鎸夐挳绾у埆鏉冮檺
     permissions:
@@ -46,10 +50,13 @@
     loginDay: 1,
     // 浼佷笟璧勬枡
     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
+      storageLocal().getItem<CusExtendDto>("enterpriseInfo") ?? {},
+    nowRole: storageLocal().getItem<nowRoleType>("nowRole") ?? {},
+    rolesList: storageLocal().getItem<RoleItem[]>("rolesList") ?? [],
+    // 椤甸潰绾у埆鏉冮檺
+    roles: storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? [],
+    isManager:
+      storageLocal().getItem<DataInfo<number>>(userKey)?.isManager ?? false
   }),
   actions: {
     /** 瀛樺偍澶村儚 */
@@ -65,20 +72,20 @@
       this.nickname = nickname;
     },
     /** 瀛樺偍鐢ㄦ埛瑙掕壊 */
-    SET_ROLES(exRoles: Array<string>) {
+    SET_EXROLES(exRoles: RoleItem[]) {
       this.exRoles = exRoles;
     },
+    /** 瀛樺偍瑙掕壊 */
+    SET_ROLES(roles: Array<string>) {
+      this.roles = roles;
+    },
     /** 瀛樺偍瑙掕壊褰撳墠瑙掕壊 */
-    SET_NOW_ROLE(nowRole: object) {
+    SET_NOW_ROLE(nowRole: nowRoleType) {
       this.nowRole = nowRole;
     },
     /** 瀛樺偍瑙掕壊鍒楄〃 */
-    SET_ROLES_LIST(rolesList: Array<string>) {
+    SET_EXROLES_LIST(rolesList: RoleItem[]) {
       this.rolesList = rolesList;
-    },
-    /** 褰撳墠瑙掕壊鏄惁瀹℃牳 */
-    SET_IS_FLSH(isFlsh: boolean | string) {
-      this.isFlsh = isFlsh;
     },
     /** 瀛樺偍鎸夐挳绾у埆鏉冮檺 */
     SET_PERMS(permissions: Array<string>) {
@@ -93,17 +100,24 @@
       this.loginDay = Number(value);
     },
     // 璁剧疆浼佷笟璧勬枡
-    SET_ENTERPRISEINFO(value: object) {
-      this.loginDay = Number(value);
+    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) {
-              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);
           })
@@ -114,7 +128,7 @@
     },
     /** 鑾峰彇瑙掕壊鍒楄〃 */
     async getRoleList() {
-      return new Promise<LoginResult>((resolve, reject) => {
+      return new Promise<RoleData>((resolve, reject) => {
         exRole()
           .then(data => {
             if (data?.code == 200) {
@@ -132,25 +146,31 @@
     },
     /** 鑾峰彇褰撳墠瑙掕壊 */
     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(data => {
+          .then(async data => {
             if (data?.code == 200) {
-              setToken(data.result);
+              const resObj = cloneDeep(data.result);
+              resObj.roles = [obj.ruleCode];
+              setToken(resObj);
               this.getNowRole(obj.ruleCode);
-              this.getCusExtendInfo();
+              await this.getCusExtendInfo();
+              resolve(data);
+            } else {
+              message(data?.message, { type: "warning" });
             }
-            resolve(data);
           })
           .catch(error => {
             reject(error);
@@ -158,13 +178,14 @@
       });
     },
     async getCusExtendInfo() {
-      return new Promise<LoginResult>((resolve, reject) => {
+      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);
-              resolve(data);
+              const resData = cloneDeep(data);
+              resData.result.username = data.result?.enterpriseName;
+              resolve(resData);
             }
           })
           .catch(error => {
@@ -176,6 +197,7 @@
     logOut() {
       this.username = "";
       this.exRoles = [];
+      this.roles = [];
       this.permissions = [];
       removeToken();
       useMultiTagsStoreHook().handleTags("equal", [...routerArrays]);
@@ -183,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