From fa482274a588e97784c10099e45d030664aa4ceb Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期四, 26 九月 2024 10:42:02 +0800
Subject: [PATCH] 登录界面添加新用户注册功能

---
 src/store/modules/user/index.ts |   41 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/src/store/modules/user/index.ts b/src/store/modules/user/index.ts
index c77c21a..22143e5 100644
--- a/src/store/modules/user/index.ts
+++ b/src/store/modules/user/index.ts
@@ -5,10 +5,12 @@
   getUserInfo,
   LoginData,
 } from '@/api/user';
-import { setToken, clearToken,setUserInfo } from '@/utils/auth';
+import { setToken, clearToken, setUserInfo, setUserResources, clearUserResources } from "@/utils/auth";
 import { removeRouteListener } from '@/utils/route-listener';
 import { UserState } from './types';
 import useAppStore from '../app';
+import router from "@/router";
+
 
 const useUserStore = defineStore('user', {
   state: (): UserState => ({
@@ -28,6 +30,8 @@
     accountId: undefined,
     certification: undefined,
     role: '',
+    resources:undefined,
+    hrefUrl:undefined
   }),
 
   getters: {
@@ -50,6 +54,7 @@
 
     // Reset user's information
     resetInfo() {
+      clearUserResources()
       this.$reset();
     },
 
@@ -61,16 +66,36 @@
     },
 
     // Login
-    async login(loginForm: LoginData) {
+    async login(loginForm: LoginData):string {
       try {
         const res = await userLogin(loginForm);
+
         setToken(res.data.access_token);
+       
         const userInfo = {
           avatar: res.data.avatar,
-          name: res.data.nickname,
+          name: res.data.loginName,
           email: res.data.email,
+          role: res.data.roles[0].roleKey,
         };
-        setUserInfo(JSON.stringify(userInfo));
+        this.name=res.data.userName
+     
+        if(res.data?.roles.length>0)
+          //閬嶅巻roles
+          for (const r of res.data.roles) {
+            if (!(this.resources)) {
+              this.resources = [];
+            }
+            this.resources = this.resources.concat(r.resources);
+          }
+            setUserInfo(JSON.stringify(userInfo));
+            setUserResources(JSON.stringify(this.resources))
+        for (const r of this.resources) {
+          if (r.menuType == 0) {
+            
+            return r.component
+          }
+        }
       } catch (err) {
         clearToken();
         throw err;
@@ -88,9 +113,17 @@
       try {
         await userLogout();
       } finally {
+        router.push({
+          name: "login",
+        });
         this.logoutCallBack();
       }
     },
+
+
+    getHreFurl(url: string) {
+      this.hrefUrl=url
+    },
   },
 });
 

--
Gitblit v1.8.0