夜鹰 преди 7 месеца
родител
ревизия
ffea711100

+ 13 - 103
Web/src/api-services/models/add-user-input.ts

@@ -11,7 +11,6 @@
  * https://github.com/swagger-api/swagger-codegen.git
  * Do not edit the class manually.
  */
-
 import { AccountTypeEnum } from './account-type-enum';
 import { CardTypeEnum } from './card-type-enum';
 import { CultureLevelEnum } from './culture-level-enum';
@@ -19,421 +18,332 @@ import { GenderEnum } from './gender-enum';
 import { StatusEnum } from './status-enum';
 import { SysOrg } from './sys-org';
 import { SysUserExtOrg } from './sys-user-ext-org';
- /**
+/**
  * 增加用户输入参数
- *
  * @export
  * @interface AddUserInput
  */
 export interface AddUserInput {
-
     /**
      * 雪花Id
-     *
      * @type {number}
      * @memberof AddUserInput
      */
     id?: number;
-
     /**
      * 创建时间
-     *
      * @type {Date}
      * @memberof AddUserInput
      */
     createTime?: Date;
-
     /**
      * 更新时间
-     *
      * @type {Date}
      * @memberof AddUserInput
      */
     updateTime?: Date | null;
-
     /**
      * 创建者Id
-     *
      * @type {number}
      * @memberof AddUserInput
      */
     createUserId?: number | null;
-
     /**
      * 创建者姓名
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     createUserName?: string | null;
-
     /**
      * 修改者Id
-     *
      * @type {number}
      * @memberof AddUserInput
      */
     updateUserId?: number | null;
-
     /**
      * 修改者姓名
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     updateUserName?: string | null;
-
     /**
      * 机构Id
-     *
      * @type {number}
      * @memberof AddUserInput
      */
     orgId?: number;
-
     /**
      * 租户Id
-     *
      * @type {number}
      * @memberof AddUserInput
      */
     tenantId?: number | null;
-
     /**
      * 昵称
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     nickName?: string | null;
-
     /**
      * 头像
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     avatar?: string | null;
-
     /**
+     * 
      * @type {GenderEnum}
      * @memberof AddUserInput
      */
     sex?: GenderEnum;
-
     /**
      * 年龄
-     *
      * @type {number}
      * @memberof AddUserInput
      */
     age?: number;
-
     /**
      * 出生日期
-     *
      * @type {Date}
      * @memberof AddUserInput
      */
     birthday?: Date | null;
-
     /**
      * 民族
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     nation?: string | null;
-
     /**
      * 手机号码
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     phone?: string | null;
-
     /**
+     * 
      * @type {CardTypeEnum}
      * @memberof AddUserInput
      */
     cardType?: CardTypeEnum;
-
     /**
      * 身份证号
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     idCardNum?: string | null;
-
     /**
      * 邮箱
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     email?: string | null;
-
     /**
      * 地址
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     address?: string | null;
-
     /**
+     * 
      * @type {CultureLevelEnum}
      * @memberof AddUserInput
      */
     cultureLevel?: CultureLevelEnum;
-
     /**
      * 政治面貌
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     politicalOutlook?: string | null;
-
     /**
      * 毕业院校
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     college?: string | null;
-
     /**
      * 办公电话
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     officePhone?: string | null;
-
     /**
      * 紧急联系人
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     emergencyContact?: string | null;
-
     /**
      * 紧急联系人电话
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     emergencyPhone?: string | null;
-
     /**
      * 紧急联系人地址
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     emergencyAddress?: string | null;
-
     /**
      * 个人简介
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     introduction?: string | null;
-
     /**
      * 排序
-     *
      * @type {number}
      * @memberof AddUserInput
      */
     orderNo?: number;
-
     /**
+     * 
      * @type {StatusEnum}
      * @memberof AddUserInput
      */
     status?: StatusEnum;
-
     /**
      * 备注
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     remark?: string | null;
-
     /**
+     * 
      * @type {AccountTypeEnum}
      * @memberof AddUserInput
      */
     accountType?: AccountTypeEnum;
-
     /**
+     * 
      * @type {SysOrg}
      * @memberof AddUserInput
      */
     sysOrg?: SysOrg;
-
     /**
      * 直属主管Id
-     *
      * @type {number}
      * @memberof AddUserInput
      */
     managerUserId?: number | null;
-
     /**
      * 职位Id
-     *
      * @type {number}
      * @memberof AddUserInput
      */
     posId?: number;
-
     /**
      * 工号
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     jobNum?: string | null;
-
     /**
      * 职级
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     posLevel?: string | null;
-
     /**
      * 职称
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     posTitle?: string | null;
-
     /**
      * 擅长领域
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     expertise?: string | null;
-
     /**
      * 办公区域
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     officeZone?: string | null;
-
     /**
      * 办公室
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     office?: string | null;
-
     /**
      * 入职日期
-     *
      * @type {Date}
      * @memberof AddUserInput
      */
     joinDate?: Date | null;
-
     /**
      * 最新登录Ip
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     lastLoginIp?: string | null;
-
     /**
      * 最新登录地点
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     lastLoginAddress?: string | null;
-
     /**
      * 最新登录时间
-     *
      * @type {Date}
      * @memberof AddUserInput
      */
     lastLoginTime?: Date | null;
-
     /**
      * 最新登录设备
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     lastLoginDevice?: string | null;
-
     /**
      * 电子签名
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     signature?: string | null;
-
     /**
      * 语言代码(如 zh-CN)
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     langCode?: string | null;
-
+    /**
+     * 个性化首页地址
+     * @type {string}
+     * @memberof AddUserInput
+     */
+    homepage?: string | null;
     /**
      * 账号
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     account: string;
-
     /**
      * 真实姓名
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     realName: string;
-
     /**
      * 域用户
-     *
      * @type {string}
      * @memberof AddUserInput
      */
     domainAccount?: string | null;
-
     /**
      * 角色集合
-     *
      * @type {Array<number>}
      * @memberof AddUserInput
      */
     roleIdList?: Array<number> | null;
-
     /**
      * 扩展机构集合
-     *
      * @type {Array<SysUserExtOrg>}
      * @memberof AddUserInput
      */

+ 7 - 7
Web/src/api-services/models/login-output.ts

@@ -11,28 +11,28 @@
  * https://github.com/swagger-api/swagger-codegen.git
  * Do not edit the class manually.
  */
-
- /**
+/**
  * 用户登录结果
- *
  * @export
  * @interface LoginOutput
  */
 export interface LoginOutput {
-
     /**
      * 令牌Token
-     *
      * @type {string}
      * @memberof LoginOutput
      */
     accessToken?: string | null;
-
     /**
      * 刷新Token
-     *
      * @type {string}
      * @memberof LoginOutput
      */
     refreshToken?: string | null;
+    /**
+     * 个性化首页
+     * @type {string}
+     * @memberof LoginOutput
+     */
+    homepage?: string | null;
 }

+ 13 - 97
Web/src/api-services/models/sys-user.ts

@@ -11,406 +11,322 @@
  * https://github.com/swagger-api/swagger-codegen.git
  * Do not edit the class manually.
  */
-
 import { AccountTypeEnum } from './account-type-enum';
 import { CardTypeEnum } from './card-type-enum';
 import { CultureLevelEnum } from './culture-level-enum';
 import { GenderEnum } from './gender-enum';
 import { StatusEnum } from './status-enum';
 import { SysOrg } from './sys-org';
- /**
+/**
  * 系统用户表
- *
  * @export
  * @interface SysUser
  */
 export interface SysUser {
-
     /**
      * 雪花Id
-     *
      * @type {number}
      * @memberof SysUser
      */
     id?: number;
-
     /**
      * 创建时间
-     *
      * @type {Date}
      * @memberof SysUser
      */
     createTime?: Date;
-
     /**
      * 更新时间
-     *
      * @type {Date}
      * @memberof SysUser
      */
     updateTime?: Date | null;
-
     /**
      * 创建者Id
-     *
      * @type {number}
      * @memberof SysUser
      */
     createUserId?: number | null;
-
     /**
      * 创建者姓名
-     *
      * @type {string}
      * @memberof SysUser
      */
     createUserName?: string | null;
-
     /**
      * 修改者Id
-     *
      * @type {number}
      * @memberof SysUser
      */
     updateUserId?: number | null;
-
     /**
      * 修改者姓名
-     *
      * @type {string}
      * @memberof SysUser
      */
     updateUserName?: string | null;
-
     /**
      * 机构Id
-     *
      * @type {number}
      * @memberof SysUser
      */
     orgId?: number;
-
     /**
      * 租户Id
-     *
      * @type {number}
      * @memberof SysUser
      */
     tenantId?: number | null;
-
     /**
      * 账号
-     *
      * @type {string}
      * @memberof SysUser
      */
     account: string;
-
     /**
      * 真实姓名
-     *
      * @type {string}
      * @memberof SysUser
      */
     realName?: string | null;
-
     /**
      * 昵称
-     *
      * @type {string}
      * @memberof SysUser
      */
     nickName?: string | null;
-
     /**
      * 头像
-     *
      * @type {string}
      * @memberof SysUser
      */
     avatar?: string | null;
-
     /**
+     * 
      * @type {GenderEnum}
      * @memberof SysUser
      */
     sex?: GenderEnum;
-
     /**
      * 年龄
-     *
      * @type {number}
      * @memberof SysUser
      */
     age?: number;
-
     /**
      * 出生日期
-     *
      * @type {Date}
      * @memberof SysUser
      */
     birthday?: Date | null;
-
     /**
      * 民族
-     *
      * @type {string}
      * @memberof SysUser
      */
     nation?: string | null;
-
     /**
      * 手机号码
-     *
      * @type {string}
      * @memberof SysUser
      */
     phone?: string | null;
-
     /**
+     * 
      * @type {CardTypeEnum}
      * @memberof SysUser
      */
     cardType?: CardTypeEnum;
-
     /**
      * 身份证号
-     *
      * @type {string}
      * @memberof SysUser
      */
     idCardNum?: string | null;
-
     /**
      * 邮箱
-     *
      * @type {string}
      * @memberof SysUser
      */
     email?: string | null;
-
     /**
      * 地址
-     *
      * @type {string}
      * @memberof SysUser
      */
     address?: string | null;
-
     /**
+     * 
      * @type {CultureLevelEnum}
      * @memberof SysUser
      */
     cultureLevel?: CultureLevelEnum;
-
     /**
      * 政治面貌
-     *
      * @type {string}
      * @memberof SysUser
      */
     politicalOutlook?: string | null;
-
     /**
      * 毕业院校
-     *
      * @type {string}
      * @memberof SysUser
      */
     college?: string | null;
-
     /**
      * 办公电话
-     *
      * @type {string}
      * @memberof SysUser
      */
     officePhone?: string | null;
-
     /**
      * 紧急联系人
-     *
      * @type {string}
      * @memberof SysUser
      */
     emergencyContact?: string | null;
-
     /**
      * 紧急联系人电话
-     *
      * @type {string}
      * @memberof SysUser
      */
     emergencyPhone?: string | null;
-
     /**
      * 紧急联系人地址
-     *
      * @type {string}
      * @memberof SysUser
      */
     emergencyAddress?: string | null;
-
     /**
      * 个人简介
-     *
      * @type {string}
      * @memberof SysUser
      */
     introduction?: string | null;
-
     /**
      * 排序
-     *
      * @type {number}
      * @memberof SysUser
      */
     orderNo?: number;
-
     /**
+     * 
      * @type {StatusEnum}
      * @memberof SysUser
      */
     status?: StatusEnum;
-
     /**
      * 备注
-     *
      * @type {string}
      * @memberof SysUser
      */
     remark?: string | null;
-
     /**
+     * 
      * @type {AccountTypeEnum}
      * @memberof SysUser
      */
     accountType?: AccountTypeEnum;
-
     /**
+     * 
      * @type {SysOrg}
      * @memberof SysUser
      */
     sysOrg?: SysOrg;
-
     /**
      * 直属主管Id
-     *
      * @type {number}
      * @memberof SysUser
      */
     managerUserId?: number | null;
-
     /**
      * 职位Id
-     *
      * @type {number}
      * @memberof SysUser
      */
     posId?: number;
-
     /**
      * 工号
-     *
      * @type {string}
      * @memberof SysUser
      */
     jobNum?: string | null;
-
     /**
      * 职级
-     *
      * @type {string}
      * @memberof SysUser
      */
     posLevel?: string | null;
-
     /**
      * 职称
-     *
      * @type {string}
      * @memberof SysUser
      */
     posTitle?: string | null;
-
     /**
      * 擅长领域
-     *
      * @type {string}
      * @memberof SysUser
      */
     expertise?: string | null;
-
     /**
      * 办公区域
-     *
      * @type {string}
      * @memberof SysUser
      */
     officeZone?: string | null;
-
     /**
      * 办公室
-     *
      * @type {string}
      * @memberof SysUser
      */
     office?: string | null;
-
     /**
      * 入职日期
-     *
      * @type {Date}
      * @memberof SysUser
      */
     joinDate?: Date | null;
-
     /**
      * 最新登录Ip
-     *
      * @type {string}
      * @memberof SysUser
      */
     lastLoginIp?: string | null;
-
     /**
      * 最新登录地点
-     *
      * @type {string}
      * @memberof SysUser
      */
     lastLoginAddress?: string | null;
-
     /**
      * 最新登录时间
-     *
      * @type {Date}
      * @memberof SysUser
      */
     lastLoginTime?: Date | null;
-
     /**
      * 最新登录设备
-     *
      * @type {string}
      * @memberof SysUser
      */
     lastLoginDevice?: string | null;
-
     /**
      * 电子签名
-     *
      * @type {string}
      * @memberof SysUser
      */
     signature?: string | null;
-
     /**
      * 语言代码(如 zh-CN)
-     *
      * @type {string}
      * @memberof SysUser
      */
     langCode?: string | null;
+    /**
+     * 个性化首页地址
+     * @type {string}
+     * @memberof SysUser
+     */
+    homepage?: string | null;
 }

+ 14 - 104
Web/src/api-services/models/update-user-input.ts

@@ -11,7 +11,6 @@
  * https://github.com/swagger-api/swagger-codegen.git
  * Do not edit the class manually.
  */
-
 import { AccountTypeEnum } from './account-type-enum';
 import { CardTypeEnum } from './card-type-enum';
 import { CultureLevelEnum } from './culture-level-enum';
@@ -19,421 +18,332 @@ import { GenderEnum } from './gender-enum';
 import { StatusEnum } from './status-enum';
 import { SysOrg } from './sys-org';
 import { SysUserExtOrg } from './sys-user-ext-org';
- /**
+/**
  * 更新用户输入参数
- *
  * @export
  * @interface UpdateUserInput
  */
 export interface UpdateUserInput {
-
     /**
      * 雪花Id
-     *
      * @type {number}
      * @memberof UpdateUserInput
      */
-    id: number;
-
+    id?: number;
     /**
      * 创建时间
-     *
      * @type {Date}
      * @memberof UpdateUserInput
      */
     createTime?: Date;
-
     /**
      * 更新时间
-     *
      * @type {Date}
      * @memberof UpdateUserInput
      */
     updateTime?: Date | null;
-
     /**
      * 创建者Id
-     *
      * @type {number}
      * @memberof UpdateUserInput
      */
     createUserId?: number | null;
-
     /**
      * 创建者姓名
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     createUserName?: string | null;
-
     /**
      * 修改者Id
-     *
      * @type {number}
      * @memberof UpdateUserInput
      */
     updateUserId?: number | null;
-
     /**
      * 修改者姓名
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     updateUserName?: string | null;
-
     /**
      * 机构Id
-     *
      * @type {number}
      * @memberof UpdateUserInput
      */
     orgId?: number;
-
     /**
      * 租户Id
-     *
      * @type {number}
      * @memberof UpdateUserInput
      */
     tenantId?: number | null;
-
     /**
      * 昵称
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     nickName?: string | null;
-
     /**
      * 头像
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     avatar?: string | null;
-
     /**
+     * 
      * @type {GenderEnum}
      * @memberof UpdateUserInput
      */
     sex?: GenderEnum;
-
     /**
      * 年龄
-     *
      * @type {number}
      * @memberof UpdateUserInput
      */
     age?: number;
-
     /**
      * 出生日期
-     *
      * @type {Date}
      * @memberof UpdateUserInput
      */
     birthday?: Date | null;
-
     /**
      * 民族
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     nation?: string | null;
-
     /**
      * 手机号码
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     phone?: string | null;
-
     /**
+     * 
      * @type {CardTypeEnum}
      * @memberof UpdateUserInput
      */
     cardType?: CardTypeEnum;
-
     /**
      * 身份证号
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     idCardNum?: string | null;
-
     /**
      * 邮箱
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     email?: string | null;
-
     /**
      * 地址
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     address?: string | null;
-
     /**
+     * 
      * @type {CultureLevelEnum}
      * @memberof UpdateUserInput
      */
     cultureLevel?: CultureLevelEnum;
-
     /**
      * 政治面貌
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     politicalOutlook?: string | null;
-
     /**
      * 毕业院校
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     college?: string | null;
-
     /**
      * 办公电话
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     officePhone?: string | null;
-
     /**
      * 紧急联系人
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     emergencyContact?: string | null;
-
     /**
      * 紧急联系人电话
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     emergencyPhone?: string | null;
-
     /**
      * 紧急联系人地址
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     emergencyAddress?: string | null;
-
     /**
      * 个人简介
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     introduction?: string | null;
-
     /**
      * 排序
-     *
      * @type {number}
      * @memberof UpdateUserInput
      */
     orderNo?: number;
-
     /**
+     * 
      * @type {StatusEnum}
      * @memberof UpdateUserInput
      */
     status?: StatusEnum;
-
     /**
      * 备注
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     remark?: string | null;
-
     /**
+     * 
      * @type {AccountTypeEnum}
      * @memberof UpdateUserInput
      */
     accountType?: AccountTypeEnum;
-
     /**
+     * 
      * @type {SysOrg}
      * @memberof UpdateUserInput
      */
     sysOrg?: SysOrg;
-
     /**
      * 直属主管Id
-     *
      * @type {number}
      * @memberof UpdateUserInput
      */
     managerUserId?: number | null;
-
     /**
      * 职位Id
-     *
      * @type {number}
      * @memberof UpdateUserInput
      */
     posId?: number;
-
     /**
      * 工号
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     jobNum?: string | null;
-
     /**
      * 职级
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     posLevel?: string | null;
-
     /**
      * 职称
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     posTitle?: string | null;
-
     /**
      * 擅长领域
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     expertise?: string | null;
-
     /**
      * 办公区域
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     officeZone?: string | null;
-
     /**
      * 办公室
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     office?: string | null;
-
     /**
      * 入职日期
-     *
      * @type {Date}
      * @memberof UpdateUserInput
      */
     joinDate?: Date | null;
-
     /**
      * 最新登录Ip
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     lastLoginIp?: string | null;
-
     /**
      * 最新登录地点
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     lastLoginAddress?: string | null;
-
     /**
      * 最新登录时间
-     *
      * @type {Date}
      * @memberof UpdateUserInput
      */
     lastLoginTime?: Date | null;
-
     /**
      * 最新登录设备
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     lastLoginDevice?: string | null;
-
     /**
      * 电子签名
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     signature?: string | null;
-
     /**
      * 语言代码(如 zh-CN)
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     langCode?: string | null;
-
+    /**
+     * 个性化首页地址
+     * @type {string}
+     * @memberof UpdateUserInput
+     */
+    homepage?: string | null;
     /**
      * 账号
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     account: string;
-
     /**
      * 真实姓名
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     realName: string;
-
     /**
      * 域用户
-     *
      * @type {string}
      * @memberof UpdateUserInput
      */
     domainAccount?: string | null;
-
     /**
      * 角色集合
-     *
      * @type {Array<number>}
      * @memberof UpdateUserInput
      */
     roleIdList?: Array<number> | null;
-
     /**
      * 扩展机构集合
-     *
      * @type {Array<SysUserExtOrg>}
      * @memberof UpdateUserInput
      */

+ 13 - 105
Web/src/api-services/models/user-output.ts

@@ -11,436 +11,344 @@
  * https://github.com/swagger-api/swagger-codegen.git
  * Do not edit the class manually.
  */
-
 import { AccountTypeEnum } from './account-type-enum';
 import { CardTypeEnum } from './card-type-enum';
 import { CultureLevelEnum } from './culture-level-enum';
 import { GenderEnum } from './gender-enum';
 import { StatusEnum } from './status-enum';
 import { SysOrg } from './sys-org';
- /**
+/**
  * 
- *
  * @export
  * @interface UserOutput
  */
 export interface UserOutput {
-
     /**
      * 雪花Id
-     *
      * @type {number}
      * @memberof UserOutput
      */
     id?: number;
-
     /**
      * 创建时间
-     *
      * @type {Date}
      * @memberof UserOutput
      */
     createTime?: Date;
-
     /**
      * 更新时间
-     *
      * @type {Date}
      * @memberof UserOutput
      */
     updateTime?: Date | null;
-
     /**
      * 创建者Id
-     *
      * @type {number}
      * @memberof UserOutput
      */
     createUserId?: number | null;
-
     /**
      * 创建者姓名
-     *
      * @type {string}
      * @memberof UserOutput
      */
     createUserName?: string | null;
-
     /**
      * 修改者Id
-     *
      * @type {number}
      * @memberof UserOutput
      */
     updateUserId?: number | null;
-
     /**
      * 修改者姓名
-     *
      * @type {string}
      * @memberof UserOutput
      */
     updateUserName?: string | null;
-
     /**
      * 机构Id
-     *
      * @type {number}
      * @memberof UserOutput
      */
     orgId?: number;
-
     /**
      * 租户Id
-     *
      * @type {number}
      * @memberof UserOutput
      */
     tenantId?: number | null;
-
     /**
      * 账号
-     *
      * @type {string}
      * @memberof UserOutput
      */
     account: string;
-
     /**
      * 真实姓名
-     *
      * @type {string}
      * @memberof UserOutput
      */
     realName?: string | null;
-
     /**
      * 昵称
-     *
      * @type {string}
      * @memberof UserOutput
      */
     nickName?: string | null;
-
     /**
      * 头像
-     *
      * @type {string}
      * @memberof UserOutput
      */
     avatar?: string | null;
-
     /**
+     * 
      * @type {GenderEnum}
      * @memberof UserOutput
      */
     sex?: GenderEnum;
-
     /**
      * 年龄
-     *
      * @type {number}
      * @memberof UserOutput
      */
     age?: number;
-
     /**
      * 出生日期
-     *
      * @type {Date}
      * @memberof UserOutput
      */
     birthday?: Date | null;
-
     /**
      * 民族
-     *
      * @type {string}
      * @memberof UserOutput
      */
     nation?: string | null;
-
     /**
      * 手机号码
-     *
      * @type {string}
      * @memberof UserOutput
      */
     phone?: string | null;
-
     /**
+     * 
      * @type {CardTypeEnum}
      * @memberof UserOutput
      */
     cardType?: CardTypeEnum;
-
     /**
      * 身份证号
-     *
      * @type {string}
      * @memberof UserOutput
      */
     idCardNum?: string | null;
-
     /**
      * 邮箱
-     *
      * @type {string}
      * @memberof UserOutput
      */
     email?: string | null;
-
     /**
      * 地址
-     *
      * @type {string}
      * @memberof UserOutput
      */
     address?: string | null;
-
     /**
+     * 
      * @type {CultureLevelEnum}
      * @memberof UserOutput
      */
     cultureLevel?: CultureLevelEnum;
-
     /**
      * 政治面貌
-     *
      * @type {string}
      * @memberof UserOutput
      */
     politicalOutlook?: string | null;
-
     /**
      * 毕业院校
-     *
      * @type {string}
      * @memberof UserOutput
      */
     college?: string | null;
-
     /**
      * 办公电话
-     *
      * @type {string}
      * @memberof UserOutput
      */
     officePhone?: string | null;
-
     /**
      * 紧急联系人
-     *
      * @type {string}
      * @memberof UserOutput
      */
     emergencyContact?: string | null;
-
     /**
      * 紧急联系人电话
-     *
      * @type {string}
      * @memberof UserOutput
      */
     emergencyPhone?: string | null;
-
     /**
      * 紧急联系人地址
-     *
      * @type {string}
      * @memberof UserOutput
      */
     emergencyAddress?: string | null;
-
     /**
      * 个人简介
-     *
      * @type {string}
      * @memberof UserOutput
      */
     introduction?: string | null;
-
     /**
      * 排序
-     *
      * @type {number}
      * @memberof UserOutput
      */
     orderNo?: number;
-
     /**
+     * 
      * @type {StatusEnum}
      * @memberof UserOutput
      */
     status?: StatusEnum;
-
     /**
      * 备注
-     *
      * @type {string}
      * @memberof UserOutput
      */
     remark?: string | null;
-
     /**
+     * 
      * @type {AccountTypeEnum}
      * @memberof UserOutput
      */
     accountType?: AccountTypeEnum;
-
     /**
+     * 
      * @type {SysOrg}
      * @memberof UserOutput
      */
     sysOrg?: SysOrg;
-
     /**
      * 直属主管Id
-     *
      * @type {number}
      * @memberof UserOutput
      */
     managerUserId?: number | null;
-
     /**
      * 职位Id
-     *
      * @type {number}
      * @memberof UserOutput
      */
     posId?: number;
-
     /**
      * 工号
-     *
      * @type {string}
      * @memberof UserOutput
      */
     jobNum?: string | null;
-
     /**
      * 职级
-     *
      * @type {string}
      * @memberof UserOutput
      */
     posLevel?: string | null;
-
     /**
      * 职称
-     *
      * @type {string}
      * @memberof UserOutput
      */
     posTitle?: string | null;
-
     /**
      * 擅长领域
-     *
      * @type {string}
      * @memberof UserOutput
      */
     expertise?: string | null;
-
     /**
      * 办公区域
-     *
      * @type {string}
      * @memberof UserOutput
      */
     officeZone?: string | null;
-
     /**
      * 办公室
-     *
      * @type {string}
      * @memberof UserOutput
      */
     office?: string | null;
-
     /**
      * 入职日期
-     *
      * @type {Date}
      * @memberof UserOutput
      */
     joinDate?: Date | null;
-
     /**
      * 最新登录Ip
-     *
      * @type {string}
      * @memberof UserOutput
      */
     lastLoginIp?: string | null;
-
     /**
      * 最新登录地点
-     *
      * @type {string}
      * @memberof UserOutput
      */
     lastLoginAddress?: string | null;
-
     /**
      * 最新登录时间
-     *
      * @type {Date}
      * @memberof UserOutput
      */
     lastLoginTime?: Date | null;
-
     /**
      * 最新登录设备
-     *
      * @type {string}
      * @memberof UserOutput
      */
     lastLoginDevice?: string | null;
-
     /**
      * 电子签名
-     *
      * @type {string}
      * @memberof UserOutput
      */
     signature?: string | null;
-
     /**
      * 语言代码(如 zh-CN)
-     *
      * @type {string}
      * @memberof UserOutput
      */
     langCode?: string | null;
-
+    /**
+     * 个性化首页地址
+     * @type {string}
+     * @memberof UserOutput
+     */
+    homepage?: string | null;
     /**
      * 机构名称
-     *
      * @type {string}
      * @memberof UserOutput
      */
     orgName?: string | null;
-
     /**
      * 职位名称
-     *
      * @type {string}
      * @memberof UserOutput
      */
     posName?: string | null;
-
     /**
      * 角色名称
-     *
      * @type {string}
      * @memberof UserOutput
      */
     roleName?: string | null;
-
     /**
      * 域用户
-     *
      * @type {string}
      * @memberof UserOutput
      */

+ 2 - 0
Web/src/router/backEnd.ts

@@ -51,6 +51,8 @@ export async function initBackEndControlRoutes() {
 	useRequestOldRoutes().setRequestOldRoutes(res as string[]);
 	// 处理路由(component),替换 dynamicRoutes(/@/router/route)第一个顶级 children 的路由
 	dynamicRoutes[0].children = await backEndComponent(res);
+	// 检查用户自定义首页设置
+	dynamicRoutes[0].redirect = Session.get('homepage') || dynamicRoutes[0].redirect;
 	// 添加动态路由
 	await setAddRoute();
 	// 设置路由到 pinia routesList 中(已处理成多级嵌套路由)及缓存多级嵌套数组处理后的一维数组

+ 17 - 17
Web/src/views/login/component/account.vue

@@ -1,8 +1,8 @@
 <template>
-	<el-tooltip :visible="state.capsLockVisible" effect="light" :content="$t('message.account.placeholder5')" placement="top">
+	<el-tooltip :visible="state.capsLockVisible" effect="light" content="大写锁定已打开" placement="top">
 		<el-form ref="ruleFormRef" :model="state.ruleForm" size="large" :rules="state.rules" class="login-content-form">
 			<el-form-item class="login-animation1" prop="account">
-				<el-input ref="accountRef" text :placeholder="$t('message.account.placeholder1')" v-model="state.ruleForm.account" clearable autocomplete="off" @keyup.enter.native="handleSignIn">
+				<el-input ref="accountRef" text placeholder="请输入账号" v-model="state.ruleForm.account" clearable autocomplete="off" @keyup.enter.native="handleSignIn">
 					<template #prefix>
 						<el-icon>
 							<ele-User />
@@ -11,7 +11,7 @@
 				</el-input>
 			</el-form-item>
 			<el-form-item class="login-animation2" prop="password">
-				<el-input ref="passwordRef" :type="state.isShowPassword ? 'text' : 'password'" :placeholder="$t('message.account.placeholder2')" v-model="state.ruleForm.password" autocomplete="off" @keyup.enter.native="handleSignIn">
+				<el-input ref="passwordRef" :type="state.isShowPassword ? 'text' : 'password'" placeholder="请输入密码" v-model="state.ruleForm.password" autocomplete="off" @keyup.enter.native="handleSignIn">
 					<template #prefix>
 						<el-icon>
 							<ele-Unlock />
@@ -24,7 +24,7 @@
 				</el-input>
 			</el-form-item>
 			<el-form-item class="login-animation2" prop="tenantId" clearable v-if="!props.tenantInfo.id && !state.hideTenantForLogin">
-				<el-select v-model="state.ruleForm.tenantId" :placeholder="$t('message.account.placeholder3')" style="width: 100%" filterable>
+				<el-select v-model="state.ruleForm.tenantId" placeholder="请选择租户" style="width: 100%" filterable>
 					<template #prefix>
 						<i class="iconfont icon-shuxingtu el-input__icon"></i>
 					</template>
@@ -37,7 +37,7 @@
 						ref="codeRef"
 						text
 						maxlength="4"
-						:placeholder="$t('message.account.placeholder4')"
+						placeholder="请输入验证码"
 						v-model="state.ruleForm.code"
 						clearable
 						autocomplete="off"
@@ -59,10 +59,10 @@
 			</el-form-item>
 			<el-form-item class="login-animation4">
 				<el-button type="primary" class="login-content-submit" round v-waves @click="handleSignIn" :loading="state.loading.signIn">
-					<span>{{ $t('message.account.btnText') }}</span>
+					<span>登 录</span>
 				</el-button>
 			</el-form-item>
-			<div class="font12 mt30 login-animation4 login-msg">{{ $t('message.mobile.msgText') }}</div>
+			<div class="font12 mt30 login-animation4 login-msg">* 温馨提示:建议使用谷歌、Microsoft Edge,版本 79.0.1072.62 及以上浏览器,360浏览器请使用极速模式</div>
 			<!-- <el-button type="primary" round v-waves @click="weixinSignIn" :loading="state.loading.signIn"></el-button> -->
 		</el-form>
 	</el-tooltip>
@@ -72,8 +72,8 @@
 				ref="dragRef"
 				:imgsrc="state.rotateVerifyImg"
 				v-model:isPassing="state.isPassRotate"
-				:text="$t('message.account.placeholder6')"
-				:successText="$t('message.account.placeholder7')"
+				text="请按住滑块拖动"
+				successText="验证通过"
 				handlerIcon="fa fa-angle-double-right"
 				successIcon="fa fa-hand-peace-o"
 				@passcallback="passRotateVerify"
@@ -86,7 +86,6 @@
 import { reactive, computed, ref, onMounted, defineAsyncComponent, onUnmounted, watch } from 'vue';
 import { useRoute, useRouter } from 'vue-router';
 import { ElMessage, InputInstance } from 'element-plus';
-import { useI18n } from 'vue-i18n';
 import { initBackEndControlRoutes } from '/@/router/backEnd';
 import { Local, Session } from '/@/utils/storage';
 import { formatAxis } from '/@/utils/formatTime';
@@ -112,7 +111,6 @@ const DragVerifyImgRotate = defineAsyncComponent(() => import('/@/components/dra
 const storesThemeConfig = useThemeConfig();
 const { themeConfig } = storeToRefs(storesThemeConfig);
 
-const { t } = useI18n();
 const route = useRoute();
 const router = useRouter();
 
@@ -132,9 +130,9 @@ const state = reactive({
 		codeId: 0,
 	},
 	rules: {
-		account: [{ required: true, message: t('message.account.placeholder1'), trigger: 'blur' }],
-		password: [{ required: true, message: t('message.account.placeholder2'), trigger: 'blur' }],
-		// code: [{ required: true, message: t('message.account.placeholder4'), trigger: 'blur' }],
+		account: [{ required: true, message: '请输入账号', trigger: 'blur' }],
+		password: [{ required: true, message: '请输入密码', trigger: 'blur' }],
+		// code: [{ required: true, message: '请输入验证码', trigger: 'blur' }],
 	},
 	loading: {
 		signIn: false,
@@ -239,9 +237,11 @@ const onSignIn = async () => {
 			}
 			if (res.data.result?.accessToken == undefined) {
 				getCaptcha(); // 重新获取验证码
-				ElMessage.error(t('message.account.placeholder8'));
+				ElMessage.error('登录失败,请检查账号!');
 				return;
 			}
+			// 记录用户自定义首页设置
+			Session.set('homepage', res.data.result?.homepage);
 			await saveTokenAndInitRoutes(res.data.result?.accessToken);
 		} finally {
 			state.loading.signIn = false;
@@ -264,7 +264,7 @@ const saveTokenAndInitRoutes = async (accessToken: string | any) => {
 // 登录成功后的跳转
 const signInSuccess = (isNoPower: boolean | undefined) => {
 	if (isNoPower) {
-		ElMessage.warning(t('message.account.placeholder9'));
+		ElMessage.warning('抱歉,您没有登录权限');
 		clearTokens(); // 清空Token缓存
 	} else {
 		// 初始化登录成功时间问候语
@@ -280,7 +280,7 @@ const signInSuccess = (isNoPower: boolean | undefined) => {
 		}
 
 		// 登录成功提示
-		const signInText = t('message.signInText');
+		const signInText = '欢迎回来!';
 		ElMessage.success(`${currentTimeInfo},${signInText}`);
 		// 添加 loading,防止第一次进入界面时出现短暂空白
 		NextLoading.start();

+ 6 - 6
Web/src/views/login/component/mobile.vue

@@ -1,7 +1,7 @@
 <template>
 	<el-form size="large" class="login-content-form">
 		<el-form-item class="login-animation1" v-if="!props.tenantInfo.id && !themeConfig.hideTenantForLogin">
-			<el-select v-model="state.ruleForm.tenantId" :placeholder="$t('message.mobile.placeholder1')" clearable style="width: 100%" filterable>
+			<el-select v-model="state.ruleForm.tenantId" placeholder="请选择租户" clearable style="width: 100%" filterable>
 				<template #prefix>
 					<i class="iconfont icon-shuxingtu el-input__icon"></i>
 				</template>
@@ -9,7 +9,7 @@
 			</el-select>
 		</el-form-item>
 		<el-form-item class="login-animation1">
-			<el-input text :placeholder="$t('message.mobile.placeholder2')" v-model="state.ruleForm.phone" clearable autocomplete="off">
+			<el-input text placeholder="请输入手机号" v-model="state.ruleForm.phone" clearable autocomplete="off">
 				<template #prefix>
 					<i class="iconfont icon-dianhua el-input__icon"></i>
 				</template>
@@ -17,7 +17,7 @@
 		</el-form-item>
 		<el-form-item class="login-animation2">
 			<el-col :span="15">
-				<el-input text maxlength="6" :placeholder="$t('message.mobile.placeholder3')" v-model="state.ruleForm.code" clearable autocomplete="off">
+				<el-input text maxlength="6" placeholder="请输入验证码" v-model="state.ruleForm.code" clearable autocomplete="off">
 					<template #prefix>
 						<el-icon class="el-input__icon"><ele-Position /></el-icon>
 					</template>
@@ -32,10 +32,10 @@
 		</el-form-item>
 		<el-form-item class="login-animation3">
 			<el-button round type="primary" v-waves class="login-content-submit" @click="onSignIn">
-				<span>{{ $t('message.mobile.btnText') }}</span>
+				<span>登 录</span>
 			</el-button>
 		</el-form-item>
-		<div class="font12 mt30 login-animation4 login-msg">{{ $t('message.mobile.msgText') }}</div>
+		<div class="font12 mt30 login-animation4 login-msg">* 温馨提示:建议使用谷歌、Microsoft Edge,版本 79.0.1072.62 及以上浏览器,360浏览器请使用极速模式</div>
 	</el-form>
 </template>
 
@@ -76,7 +76,7 @@ const getSmsCode = async () => {
 		return;
 	}
 
-	await getAPI(SysSmsApi).apiSysSmsSendSmsPhoneNumberPost(state.ruleForm.phone);
+	await getAPI(SysSmsApi).apiSysSmsSendSmsPhoneNumberTemplateIdPost(state.ruleForm.phone, '0');
 
 	// 倒计时期间禁止点击
 	state.disabled = true;

+ 4 - 2
Web/src/views/system/onlineUser/signalR.ts

@@ -13,8 +13,10 @@ const connection = new SignalR.HubConnectionBuilder()
 	})
 	.build();
 
-connection.keepAliveIntervalInMilliseconds = 15 * 1000; // 心跳检测15s
-connection.serverTimeoutInMilliseconds = 30 * 60 * 1000; // 超时时间30m
+// 心跳检测:若15s内没有向服务器发送任何消息,则ping一下服务器端
+connection.keepAliveIntervalInMilliseconds = 15 * 1000;
+// 超时时间:若30s内没有收到服务器端发过来的信息,则认为服务器端异常
+connection.serverTimeoutInMilliseconds = 30 * 1000;
 
 // 启动连接
 connection.start().then(() => {

+ 5 - 0
Web/src/views/system/user/component/editUser.vue

@@ -53,6 +53,11 @@
 									</el-select>
 								</el-form-item>
 							</el-col>
+							<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+								<el-form-item label="个性化首页" prop="homepage">
+									<el-input v-model="state.ruleForm.homepage" placeholder="个性化首页" clearable />
+								</el-form-item>
+							</el-col>
 							<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb5">
 								<el-form-item label="排序">
 									<el-input-number v-model="state.ruleForm.orderNo" placeholder="排序" class="w100" />

+ 8 - 0
Web/src/views/system/user/component/userCenter.vue

@@ -96,6 +96,11 @@
 											</el-select>
 										</el-form-item>
 									</el-col>
+									<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+										<el-form-item label="个性化首页" prop="homepage">
+											<el-input v-model="state.ruleFormBase.homepage" placeholder="个性化首页" clearable />
+										</el-form-item>
+									</el-col>
 									<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
 										<el-form-item label="地址">
 											<el-input v-model="state.ruleFormBase.address" placeholder="地址" clearable type="textarea" />
@@ -285,6 +290,9 @@ const submitUserBase = () => {
 			type: 'warning',
 		}).then(async () => {
 			await getAPI(SysUserApi).apiSysUserBaseInfoPost(state.ruleFormBase);
+			const accessToken = Local.get(accessTokenKey);
+			await getAPI(SysAuthApi).apiSysAuthRefreshTokenGet(`${accessToken}`);
+			window.location.reload();
 		});
 	});
 };