瀏覽代碼

Merge branch 'master' of http://182.92.126.35:3000/hrx/mky-vent-base

lxh 8 月之前
父節點
當前提交
cf658b0a8a

+ 7 - 1
src/api/sys/model/userModel.ts

@@ -6,6 +6,12 @@ export interface LoginParams {
   password: string;
 }
 
+export interface AutoLoginParams {
+  /** 工号 */
+  workNo: string;
+  username: string;
+}
+
 export interface ThirdLoginParams {
   token: string;
   thirdType: string;
@@ -23,7 +29,7 @@ export interface LoginResultModel {
   userId: string | number;
   token: string;
   role: RoleInfo;
-  userInfo?: any
+  userInfo?: any;
 }
 
 /**

+ 17 - 1
src/api/sys/user.ts

@@ -1,5 +1,5 @@
 import { defHttp } from '/@/utils/http/axios';
-import { LoginParams, LoginResultModel, GetUserInfoModel } from './model/userModel';
+import { LoginParams, LoginResultModel, GetUserInfoModel, AutoLoginParams } from './model/userModel';
 
 import { ErrorMessageMode } from '/#/axios';
 import { useMessage } from '/@/hooks/web/useMessage';
@@ -14,6 +14,7 @@ enum Api {
   Login = '/sys/login',
   phoneLogin = '/sys/phoneLogin',
   Logout = '/sys/logout',
+  autoLogin = '/sys/autoLogin',
   GetUserInfo = '/sys/user/getUserInfo',
   // 获取系统权限
   // 1、查询用户拥有的按钮/表单访问权限
@@ -61,6 +62,21 @@ export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal')
 }
 
 /**
+ * @description: user auto login api
+ */
+export function autoLoginApi(params: AutoLoginParams, mode: ErrorMessageMode = 'modal') {
+  return defHttp.post<LoginResultModel>(
+    {
+      url: Api.autoLogin,
+      params,
+    },
+    {
+      errorMessageMode: mode,
+    }
+  );
+}
+
+/**
  * @description: user phoneLogin api
  */
 export function phoneLoginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') {

+ 1 - 1
src/router/guard/permissionGuard.ts

@@ -117,7 +117,7 @@ export function createPermissionGuard(router: Router) {
       // query中要求自动登录的执行自动登录
       if (to.query[AUTO_LOGIN_URL_QUERY.key] === AUTO_LOGIN_URL_QUERY.val) {
         const userStore = useUserStoreWithOut();
-        await userStore.autoLogin({
+        await userStore.mockLogin({
           goHome: false,
         });
         return next({

+ 2 - 2
src/store/constant.ts

@@ -1,2 +1,2 @@
-export const AUTO_LOGIN_USERNAME = 'autoAdmin';
-export const AUTO_LOGIN_PASSWORD = 'autoAdmin123';
+export const MOCK_LOGIN_UESRNAME = 'autoAdmin';
+export const MOCK_LOGIN_PASSWORD = 'autoAdmin123';

+ 11 - 10
src/store/modules/user.ts

@@ -19,7 +19,7 @@ import { JDragConfigEnum } from '/@/enums/jeecgEnum';
 import { RoleEnum } from '/@/enums/roleEnum';
 import { useSso } from '/@/hooks/web/useSso';
 import { getActions } from '/@/qiankun/state';
-import { AUTO_LOGIN_PASSWORD, AUTO_LOGIN_USERNAME } from '../constant';
+import { MOCK_LOGIN_PASSWORD, MOCK_LOGIN_UESRNAME } from '../constant';
 
 interface UserState {
   userInfo: Nullable<UserInfo>;
@@ -90,9 +90,9 @@ export const useUserStore = defineStore({
       return getAuthCache<string>(PWD_KEY);
     },
     // 目前用户角色列表为空数组,所以使用既定的用户名判断
-    getIsAutoLogin() {
-      console.log(this.getUserInfo.username === AUTO_LOGIN_USERNAME);
-      return this.getUserInfo.username === AUTO_LOGIN_USERNAME;
+    getIsMockLogin() {
+      console.log(this.getUserInfo.username === MOCK_LOGIN_UESRNAME);
+      return this.getUserInfo.username === MOCK_LOGIN_UESRNAME;
     },
   },
   actions: {
@@ -371,7 +371,8 @@ export const useUserStore = defineStore({
         },
       });
     },
-    async autoLogin(
+    /** 模拟用户登录行为,使用既定的账号,账号权限将受限 */
+    async mockLogin(
       params: Partial<LoginParams> & {
         goHome?: boolean;
         mode?: ErrorMessageMode;
@@ -379,8 +380,8 @@ export const useUserStore = defineStore({
     ) {
       try {
         const loginParams = {
-          username: AUTO_LOGIN_USERNAME,
-          password: AUTO_LOGIN_PASSWORD,
+          username: MOCK_LOGIN_UESRNAME,
+          password: MOCK_LOGIN_PASSWORD,
           checkKey: new Date().getTime(),
           ...params,
         };
@@ -397,15 +398,15 @@ export const useUserStore = defineStore({
       return atob(password);
       // return AES.decrypt(password, PWD_KEY).toString();
     },
-    /** 续登录,即登出后自动登录并刷新当前页面,不需要用户重复登录自动登录账户 */
-    async continuallyLogin(
+    /** 续登录,即登出后再次模拟登录并刷新当前页面,不需要用户重复登录"自动"登录账户 */
+    async redoMockLogin(
       params: Partial<LoginParams> & {
         goHome?: boolean;
         mode?: ErrorMessageMode;
       } = {}
     ) {
       await this.logout();
-      await this.autoLogin({
+      await this.mockLogin({
         goHome: false,
         ...params,
       });

+ 3 - 3
src/utils/http/axios/checkStatus.ts

@@ -6,7 +6,7 @@ import { useI18n } from '/@/hooks/web/useI18n';
 import { useUserStoreWithOut } from '/@/store/modules/user';
 import projectSetting from '/@/settings/projectSetting';
 import { SessionTimeoutProcessingEnum } from '/@/enums/appEnum';
-import { AUTO_LOGIN_USERNAME } from '/@/store/constant';
+import { MOCK_LOGIN_UESRNAME } from '/@/store/constant';
 
 const { createMessage, createErrorModal } = useMessage();
 const error = createMessage.error!;
@@ -31,9 +31,9 @@ export function checkStatus(status: number, msg: string, errorMessageMode: Error
         userStore.setSessionTimeout(true);
       } else {
         // 经由自动登录的账号需要在登录信息过期之后重新登录
-        const continuallyLogin = userStore.getIsAutoLogin;
+        const continuallyLogin = userStore.getIsMockLogin;
         if (continuallyLogin) {
-          userStore.continuallyLogin();
+          userStore.redoMockLogin();
         } else {
           userStore.logout(true);
         }