From 78921416615f450f4cc29ec4f740fbf1b47d8b00 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期二, 19 八月 2025 17:18:28 +0800
Subject: [PATCH] 注册登录更改

---
 src/store/modules/user.ts |   98 +++++++++++++++++++++++++++++-------------------
 1 files changed, 59 insertions(+), 39 deletions(-)

diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index 152e9ec..8dc7ec3 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,9 +50,11 @@
     loginDay: 1,
     // 浼佷笟璧勬枡
     enterpriseInfo:
-      storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {},
-    nowRole: storageLocal().getItem<DataInfo<number>>("nowRole") ?? {},
-    rolesList: storageLocal().getItem<DataInfo<number>>("rolesList") ?? []
+      storageLocal().getItem<CusExtendDto>("enterpriseInfo") ?? {},
+    nowRole: storageLocal().getItem<nowRoleType>("nowRole") ?? {},
+    rolesList: storageLocal().getItem<RoleItem[]>("rolesList") ?? [],
+    // 椤甸潰绾у埆鏉冮檺
+    roles: storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? []
   }),
   actions: {
     /** 瀛樺偍澶村儚 */
@@ -64,15 +70,19 @@
       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: object) {
+    SET_NOW_ROLE(nowRole: nowRoleType) {
       this.nowRole = nowRole;
     },
     /** 瀛樺偍瑙掕壊鍒楄〃 */
-    SET_ROLES_LIST(rolesList: Array<string>) {
+    SET_EXROLES_LIST(rolesList: RoleItem[]) {
       this.rolesList = rolesList;
     },
     /** 瀛樺偍鎸夐挳绾у埆鏉冮檺 */
@@ -88,17 +98,21 @@
       this.loginDay = Number(value);
     },
     // 璁剧疆浼佷笟璧勬枡
-    SET_ENTERPRISEINFO(value: object) {
-      this.loginDay = Number(value);
+    SET_ENTERPRISEINFO(enterpriseInfo: CusExtendDto) {
+      this.enterpriseInfo = enterpriseInfo;
     },
     /** 鐧诲叆 */
     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);
           })
@@ -109,7 +123,7 @@
     },
     /** 鑾峰彇瑙掕壊鍒楄〃 */
     async getRoleList() {
-      return new Promise<LoginResult>((resolve, reject) => {
+      return new Promise<RoleData>((resolve, reject) => {
         exRole()
           .then(data => {
             if (data?.code == 200) {
@@ -127,7 +141,7 @@
     },
     /** 鑾峰彇褰撳墠瑙掕壊 */
     async getNowRole(code) {
-      return new Promise<LoginResult>((resolve, reject) => {
+      return new Promise(resolve => {
         const data = this.rolesList.find(item => {
           return item.code == code;
         });
@@ -137,15 +151,19 @@
     },
     /** 鍒囨崲瑙掕壊 */
     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);
@@ -153,13 +171,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 => {
@@ -171,6 +190,7 @@
     logOut() {
       this.username = "";
       this.exRoles = [];
+      this.roles = [];
       this.permissions = [];
       removeToken();
       useMultiTagsStoreHook().handleTags("equal", [...routerArrays]);
@@ -178,19 +198,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