From 697c405ac874da346e74df40266763370355154d Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期六, 08 三月 2025 15:40:25 +0800
Subject: [PATCH] ASN单

---
 src/store/modules/user.ts |  123 +++++++++++++++++++++++++---------------
 1 files changed, 77 insertions(+), 46 deletions(-)

diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
index c68d796..d5c91f3 100644
--- a/src/store/modules/user.ts
+++ b/src/store/modules/user.ts
@@ -1,28 +1,32 @@
-import type { UserInfo } from '/#/store';
-import type { ErrorMessageMode } from '/#/axios';
+/*
+ * @Description: file content
+ * @Author: Ben Lin
+ * @version:
+ * @Date: 2024-06-18 15:09:47
+ * @LastEditors: Ben Lin
+ * @LastEditTime: 2024-10-07 17:01:32
+ */
+import type { UserInfo } from '#/store';
+import type { ErrorMessageMode } from '#/axios';
 import { defineStore } from 'pinia';
-import { store } from '/@/store';
-import { RoleEnum } from '/@/enums/roleEnum';
-import { PageEnum } from '/@/enums/pageEnum';
-import { ROLES_KEY, TOKEN_KEY, USER_INFO_KEY } from '/@/enums/cacheEnum';
-import { getAuthCache, setAuthCache } from '/@/utils/auth';
-import { GetUserInfoModel, LoginParams } from '/@/api/sys/model/userModel';
-import { doLogout, getTgUserInfo, getUserInfo, loginApi } from '/@/api/sys/user';
-import { useI18n } from '/@/hooks/web/useI18n';
-import { useMessage } from '/@/hooks/web/useMessage';
-import { router } from '/@/router';
-import { usePermissionStore } from '/@/store/modules/permission';
-import { RouteRecordRaw } from 'vue-router';
-import { PAGE_NOT_FOUND_ROUTE } from '/@/router/routes/basic';
-import { isArray, isEmpty } from '/@/utils/is';
-import { AccountInfo } from '/@/api/tigerapi/model/systemModel';
-
+import { store } from '@/store';
+import { RoleEnum } from '@/enums/roleEnum';
+import { PageEnum } from '@/enums/pageEnum';
+import { ROLES_KEY, TOKEN_KEY, USER_INFO_KEY } from '@/enums/cacheEnum';
+import { getAuthCache, setAuthCache } from '@/utils/auth';
+import { GetUserInfoModel } from '@/api/sys/model/userModel';
+import { doLogout, getTgUserInfo, loginApi } from '@/api/sys/user';
+import { useI18n } from '@/hooks/web/useI18n';
+import { useMessage } from '@/hooks/web/useMessage';
+import { router } from '@/router';
+import { isArray } from '@/utils/is';
 import { h } from 'vue';
+import { AccountInfo } from '/@/api/tigerapi/model/systemModel';
 import { getMenuAuthList } from '/@/api/sys/menu';
 import { iV_USER_MENU } from '/@/api/tigerapi/model/vModel';
-import { useGlobSetting } from '/@/hooks/setting';
+import { getSysParam } from '/@/api/tigerapi/system';
+import { ApiAction } from '/@/api/model/baseModel';
 
-const globSetting = useGlobSetting();
 interface UserState {
   userInfo: Nullable<UserInfo>;
   token?: string;
@@ -122,19 +126,22 @@
         this.setSessionTimeout(false);
       } else {
         // const permissionStore = usePermissionStore();
+
+        // // 鍔ㄦ�佽矾鐢卞姞杞斤紙棣栨锛�
         // if (!permissionStore.isDynamicAddedRoute) {
         //   const routes = await permissionStore.buildRoutesAction();
-        //   routes.forEach((route) => {
+        //   [...routes, PAGE_NOT_FOUND_ROUTE].forEach((route) => {
         //     router.addRoute(route as unknown as RouteRecordRaw);
         //   });
-        //   router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw);
+        //   // 璁板綍鍔ㄦ�佽矾鐢卞姞杞藉畬鎴�
         //   permissionStore.setDynamicAddedRoute(true);
         // }
+
         goHome && (await router.replace(userInfo?.homePath || PageEnum.BASE_HOME));
       }
       return userInfo;
     },
-    async getUserInfoAction(changepwd: boolean): Promise<UserInfo | null> {
+    async getUserInfoAction(changepwd?: boolean): Promise<UserInfo | null> {
       if (!this.getToken) return null;
       const data = await getTgUserInfo();
       const vUserMenu = await getMenuAuthList(data.USER_ID);
@@ -143,11 +150,24 @@
         changepwd: changepwd,
         username: data.USER_NAME,
         realName: data.USER_NAME,
-        orgCode: globSetting.useOrg == 'true' ? data.ORG_CODE : '',
-        prodCode: globSetting.useOrg == 'false' ? data.ORG_CODE : '',
+        orgCode: data.ORG_CODE, //globSetting.useOrg == 'Y' ? data.ORG_CODE : '',
+        prodCode: data.FTY_CODE, //globSetting.useOrg == 'N' ? data.ORG_CODE : '',
         avatar: '',
         roles: vUserMenu.Data.Items as unknown as iV_USER_MENU[],
+        byOrg: false,
+        byProd: false,
+        byWh: false,
       };
+      /* 浠庣郴缁熷弬鏁拌幏鍙栧惎鐢ㄥ摢绉嶆潈闄� */
+      var action = await getSysParam({ group: 'ByAuthActive' });
+      if (action.IsSuccessed) {
+        userInfo.byOrg =
+          action.Data.filter((x) => x.PARAM_CODE == 'ByOrgActive')[0].PARAM_VALUE == 'Y';
+        userInfo.byProd =
+          action.Data.filter((x) => x.PARAM_CODE == 'ByProdActive')[0].PARAM_VALUE == 'Y';
+        userInfo.byWh =
+          action.Data.filter((x) => x.PARAM_CODE == 'ByWhActive')[0].PARAM_VALUE == 'Y';
+      }
       const { roles = [] } = userInfo;
       if (isArray(roles)) {
         const roleList = roles.map((item) => item.value) as RoleEnum[];
@@ -159,7 +179,34 @@
       this.setUserInfo(userInfo);
       return userInfo;
     },
-    async getTgUserInfoAction(changepwd: boolean, orgCode?: string): Promise<UserInfo | null> {
+    /**
+     * @description: logout
+     */
+    async logout(goLogin = false) {
+      if (this.getToken) {
+        try {
+          await doLogout({ Data: this.getToken } as unknown as ApiAction<string>);
+        } catch {
+          console.log('娉ㄩ攢Token澶辫触');
+        }
+      }
+      this.setToken(undefined);
+      this.setSessionTimeout(false);
+      this.setUserInfo(null);
+      if (goLogin) {
+        // 鐩存帴鍥炵櫥闄嗛〉
+        router.replace(PageEnum.BASE_LOGIN);
+      } else {
+        // 鍥炵櫥闄嗛〉甯︿笂褰撳墠璺敱鍦板潃
+        router.replace({
+          path: PageEnum.BASE_LOGIN,
+          query: {
+            redirect: encodeURIComponent(router.currentRoute.value.fullPath),
+          },
+        });
+      }
+    },
+    async getTgUserInfoAction(changepwd?: boolean, orgCode?: string): Promise<UserInfo | null> {
       if (!this.getToken) return null;
       const data = await getTgUserInfo();
       const vUserMenu = await getMenuAuthList(data.USER_ID);
@@ -168,32 +215,15 @@
         username: data.USER_NAME,
         changepwd: changepwd,
         realName: data.USER_NAME,
-        orgCode: globSetting.useOrg == 'true' ? data.ORG_CODE : '',
-        prodCode: globSetting.useOrg == 'false' ? data.FTY_CODE : '',
+        orgCode: data.ORG_CODE, //globSetting.useOrg == 'Y' ? data.ORG_CODE : '',
+        prodCode: data.FTY_CODE, //globSetting.useOrg == 'N' ? data.FTY_CODE : '',
         avatar: '',
         roles: vUserMenu.Data.Items as unknown as iV_USER_MENU[],
-      };
+      } as unknown as UserInfo;
       this.setUserInfo(userInfo);
       //console.log(data[0].LOGINNAME);
       return userInfo;
     },
-    /**
-     * @description: logout
-     */
-    async logout(goLogin = false) {
-      if (this.getToken) {
-        try {
-          await doLogout({ Data: this.getToken });
-        } catch {
-          console.log('娉ㄩ攢Token澶辫触');
-        }
-      }
-      this.setToken(undefined);
-      this.setSessionTimeout(false);
-      this.setUserInfo(null);
-      goLogin && router.push(PageEnum.BASE_LOGIN);
-    },
-
     /**
      * @description: Confirm before logging out
      */
@@ -205,6 +235,7 @@
         title: () => h('span', t('sys.app.logoutTip')),
         content: () => h('span', t('sys.app.logoutMessage')),
         onOk: async () => {
+          // 涓诲姩鐧诲嚭锛屼笉甯edirect鍦板潃
           await this.logout(true);
         },
       });

--
Gitblit v1.9.3