mirror of
				https://github.com/nsnail/NetAdmin.git
				synced 2025-10-31 19:35:26 +08:00 
			
		
		
		
	style: 💄 代码整理 (#88)
This commit is contained in:
		| @@ -15,17 +15,21 @@ XML注释文件不存在 | ||||
| 唯一编码不能为空 | ||||
| 图标代码不能为空 | ||||
| 图标名称不能为空 | ||||
| 婚姻状况不正确 | ||||
| 字典名称不能为空 | ||||
| 字典目录不存在 | ||||
| 字典目录编号不能为空 | ||||
| 字典编码不能为空 | ||||
| 学历不正确 | ||||
| 密码不能为空 | ||||
| 已处理完毕 | ||||
| 开始事务 | ||||
| 性别不正确 | ||||
| 手机号码不正确 | ||||
| 手机号码不能为空 | ||||
| 接口编码不存在 | ||||
| 支付宝账号 | ||||
| 政治面貌不正确 | ||||
| 数据库同步开始 | ||||
| 数据库服务器时钟偏移 | ||||
| 数据库结构同步完成 | ||||
| @@ -47,6 +51,7 @@ XML注释文件不存在 | ||||
| 未获取到待执行任务 | ||||
| 模块名称不能为空 | ||||
| 模块说明不能为空 | ||||
| 民族不正确 | ||||
| 消息主题不能为空 | ||||
| 消息内容不能为空 | ||||
| 父节点不存在 | ||||
| @@ -61,16 +66,21 @@ XML注释文件不存在 | ||||
| 目标设备不能为空 | ||||
| 短信验证请求不能为空 | ||||
| 站内信不存在 | ||||
| 站内信状态不正确 | ||||
| 站内信类型不正确 | ||||
| 签名缺失 | ||||
| 网络地址不正确 | ||||
| 菜单名称不能为空 | ||||
| 菜单标题不能为空 | ||||
| 菜单类型不正确 | ||||
| 菜单编号不能为空 | ||||
| 角色不存在 | ||||
| 角色名称不能为空 | ||||
| 角色数据范围不正确 | ||||
| 角色编号不能为空 | ||||
| 角色编号列表不能为空 | ||||
| 设备类型不能为空 | ||||
| 证件类型不正确 | ||||
| 该角色下存在用户 | ||||
| 该部门下存在子部门 | ||||
| 该部门下存在用户 | ||||
| @@ -90,4 +100,6 @@ XML注释文件不存在 | ||||
| 验证数据不能为空 | ||||
| 验证码不正确 | ||||
| 验证码不能为空 | ||||
| 验证码目标设备类型不正确 | ||||
| 验证码类型不正确 | ||||
| 验证码类型不能为空 | ||||
| @@ -10,7 +10,7 @@ public interface IService | ||||
|     /// <summary> | ||||
|     ///     服务编号 | ||||
|     /// </summary> | ||||
|     Guid ServiceId { get; set; } | ||||
|     Guid ServiceId { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     上下文用户令牌 | ||||
|   | ||||
| @@ -34,7 +34,7 @@ public abstract class ServiceBase : IScoped, IService | ||||
|     } | ||||
|  | ||||
|     /// <inheritdoc /> | ||||
|     public Guid ServiceId { get; set; } | ||||
|     public Guid ServiceId { get; init; } | ||||
|  | ||||
|     /// <inheritdoc /> | ||||
|     public ContextUserToken UserToken { get; set; } | ||||
|   | ||||
| @@ -52,7 +52,7 @@ public abstract class DistributedCache<TService> : CacheBase<IDistributedCache, | ||||
|     /// <summary> | ||||
|     ///     获取缓存键 | ||||
|     /// </summary> | ||||
|     protected virtual string GetCacheKey(string id = "0", [CallerMemberName] string memberName = null) | ||||
|     protected string GetCacheKey(string id = "0", [CallerMemberName] string memberName = null) | ||||
|     { | ||||
|         return $"{GetType().FullName}.{memberName}.{id}"; | ||||
|     } | ||||
|   | ||||
| @@ -13,5 +13,5 @@ public interface IFieldCreatedUser | ||||
|     /// <summary> | ||||
|     ///     创建者用户名 | ||||
|     /// </summary> | ||||
|     string CreatedUserName { get; set; } | ||||
|     string CreatedUserName { get; init; } | ||||
| } | ||||
| @@ -26,7 +26,7 @@ public abstract record ImmutableEntity<T> : LiteImmutableEntity<T>, IFieldCreate | ||||
|     /// <inheritdoc cref="IFieldCreatedUser.CreatedUserName" /> | ||||
|     [JsonIgnore] | ||||
|     [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31, CanUpdate = false, Position = -1)] | ||||
|     public virtual string CreatedUserName { get; set; } | ||||
|     public virtual string CreatedUserName { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="IFieldPrimary{T}.Id" /> | ||||
|     [Column(IsIdentity = false, IsPrimary = true, Position = 1)] | ||||
|   | ||||
| @@ -25,7 +25,7 @@ public abstract record VersionEntity<T> : LiteVersionEntity<T>, IFieldModifiedUs | ||||
|     /// <inheritdoc /> | ||||
|     [JsonIgnore] | ||||
|     [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31, CanUpdate = false, Position = -1)] | ||||
|     public string CreatedUserName { get; set; } | ||||
|     public string CreatedUserName { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="IFieldPrimary{T}.Id" /> | ||||
|     [Column(IsIdentity = false, IsPrimary = true, Position = 1)] | ||||
|   | ||||
| @@ -21,7 +21,7 @@ public record Sys_Config : VersionEntity, IFieldEnabled | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Column] | ||||
|     public virtual bool UserRegisterConfirm { get; set; } | ||||
|     public virtual bool UserRegisterConfirm { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     用户注册默认部门 | ||||
|   | ||||
| @@ -15,21 +15,21 @@ public record Sys_JobRecord : LiteImmutableEntity | ||||
|     /// </summary> | ||||
|     [Column] | ||||
|     [JsonIgnore] | ||||
|     public virtual long Duration { get; init; } | ||||
|     public long Duration { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     请求方法 | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Column] | ||||
|     public virtual HttpMethods HttpMethod { get; init; } | ||||
|     public HttpMethods HttpMethod { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     HTTP 状态码 | ||||
|     /// </summary> | ||||
|     [Column] | ||||
|     [JsonIgnore] | ||||
|     public virtual HttpStatusCode HttpStatusCode { get; init; } | ||||
|     public HttpStatusCode HttpStatusCode { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     作业编号 | ||||
| @@ -43,40 +43,40 @@ public record Sys_JobRecord : LiteImmutableEntity | ||||
|     /// </summary> | ||||
|     [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] | ||||
|     [JsonIgnore] | ||||
|     public virtual string RequestBody { get; init; } | ||||
|     public string RequestBody { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     请求头 | ||||
|     /// </summary> | ||||
|     [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] | ||||
|     [JsonIgnore] | ||||
|     public virtual string RequestHeader { get; init; } | ||||
|     public string RequestHeader { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     请求的网络地址 | ||||
|     /// </summary> | ||||
|     [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_127)] | ||||
|     [JsonIgnore] | ||||
|     public virtual string RequestUrl { get; init; } | ||||
|     public string RequestUrl { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     响应体 | ||||
|     /// </summary> | ||||
|     [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] | ||||
|     [JsonIgnore] | ||||
|     public virtual string ResponseBody { get; init; } | ||||
|     public string ResponseBody { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     响应头 | ||||
|     /// </summary> | ||||
|     [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)] | ||||
|     [JsonIgnore] | ||||
|     public virtual string ResponseHeader { get; init; } | ||||
|     public string ResponseHeader { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     执行时间编号 | ||||
|     /// </summary> | ||||
|     [Column] | ||||
|     [JsonIgnore] | ||||
|     public long TimeId { get; set; } | ||||
|     public long TimeId { get; init; } | ||||
| } | ||||
| @@ -23,21 +23,21 @@ public record Sys_SiteMsg : VersionEntity, IRegister, IFieldSummary | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Navigate(nameof(CreatedUserId))] | ||||
|     public virtual Sys_User Creator { get; init; } | ||||
|     public Sys_User Creator { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     消息-部门映射 | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Navigate(ManyToMany = typeof(Sys_SiteMsgDept))] | ||||
|     public virtual ICollection<Sys_Dept> Depts { get; init; } | ||||
|     public ICollection<Sys_Dept> Depts { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     消息-标记映射 | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Navigate(nameof(Sys_SiteMsgFlag.SiteMsgId))] | ||||
|     public ICollection<Sys_SiteMsgFlag> Flags { get; set; } | ||||
|     public ICollection<Sys_SiteMsgFlag> Flags { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     消息类型 | ||||
| @@ -50,7 +50,7 @@ public record Sys_SiteMsg : VersionEntity, IRegister, IFieldSummary | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Navigate(ManyToMany = typeof(Sys_SiteMsgRole))] | ||||
|     public virtual ICollection<Sys_Role> Roles { get; init; } | ||||
|     public ICollection<Sys_Role> Roles { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     消息摘要 | ||||
| @@ -71,7 +71,7 @@ public record Sys_SiteMsg : VersionEntity, IRegister, IFieldSummary | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Navigate(ManyToMany = typeof(Sys_SiteMsgUser))] | ||||
|     public virtual ICollection<Sys_User> Users { get; init; } | ||||
|     public ICollection<Sys_User> Users { get; init; } | ||||
|  | ||||
|     /// <inheritdoc /> | ||||
|     public void Register(TypeAdapterConfig config) | ||||
|   | ||||
| @@ -20,7 +20,7 @@ public record Sys_SiteMsgDept : ImmutableEntity | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Column] | ||||
|     public virtual long DeptId { get; init; } | ||||
|     public long DeptId { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     关联的站内信 | ||||
| @@ -33,5 +33,5 @@ public record Sys_SiteMsgDept : ImmutableEntity | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Column] | ||||
|     public virtual long SiteMsgId { get; init; } | ||||
|     public long SiteMsgId { get; init; } | ||||
| } | ||||
| @@ -14,17 +14,17 @@ public record Sys_SiteMsgFlag : MutableEntity | ||||
|     ///     站内信编号 | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     public virtual long SiteMsgId { get; set; } | ||||
|     public virtual long SiteMsgId { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     用户编号 | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     public virtual long UserId { get; init; } | ||||
|     public long UserId { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     用户站内信状态 | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     public virtual UserSiteMsgStatues UserSiteMsgStatus { get; set; } | ||||
|     public virtual UserSiteMsgStatues UserSiteMsgStatus { get; init; } | ||||
| } | ||||
| @@ -20,7 +20,7 @@ public record Sys_SiteMsgRole : ImmutableEntity | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Column] | ||||
|     public virtual long RoleId { get; init; } | ||||
|     public long RoleId { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     关联的站内信 | ||||
| @@ -33,5 +33,5 @@ public record Sys_SiteMsgRole : ImmutableEntity | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Column] | ||||
|     public virtual long SiteMsgId { get; init; } | ||||
|     public long SiteMsgId { get; init; } | ||||
| } | ||||
| @@ -20,7 +20,7 @@ public record Sys_SiteMsgUser : ImmutableEntity | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Column] | ||||
|     public virtual long SiteMsgId { get; init; } | ||||
|     public long SiteMsgId { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     关联的用户 | ||||
| @@ -33,5 +33,5 @@ public record Sys_SiteMsgUser : ImmutableEntity | ||||
|     /// </summary> | ||||
|     [JsonIgnore] | ||||
|     [Column] | ||||
|     public virtual long UserId { get; init; } | ||||
|     public long UserId { get; init; } | ||||
| } | ||||
| @@ -10,27 +10,27 @@ public record DynamicFilterInfo : DataAbstraction | ||||
|     /// <summary> | ||||
|     ///     字段名 | ||||
|     /// </summary> | ||||
|     public string Field { get; set; } | ||||
|     public string Field { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     子过滤条件 | ||||
|     /// </summary> | ||||
|     public List<DynamicFilterInfo> Filters { get; set; } | ||||
|     public List<DynamicFilterInfo> Filters { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     子过滤条件逻辑关系 | ||||
|     /// </summary> | ||||
|     public DynamicFilterLogics Logic { get; set; } | ||||
|     public DynamicFilterLogics Logic { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     操作符 | ||||
|     /// </summary> | ||||
|     public DynamicFilterOperators Operator { get; set; } | ||||
|     public DynamicFilterOperators Operator { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     值 | ||||
|     /// </summary> | ||||
|     public object Value { get; set; } | ||||
|     public object Value { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     隐式转换为 FreeSql 的 DynamicFilterInfo 对象 | ||||
|   | ||||
| @@ -25,7 +25,7 @@ public record QueryReq<T> : DataAbstraction | ||||
|     /// <summary> | ||||
|     ///     查询关键字 | ||||
|     /// </summary> | ||||
|     public string Keywords { get; set; } | ||||
|     public string Keywords { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     排序方式 | ||||
|   | ||||
| @@ -19,5 +19,5 @@ public record RestfulInfo<T> : DataAbstraction | ||||
|     /// <summary> | ||||
|     ///     消息 | ||||
|     /// </summary> | ||||
|     public virtual object Msg { get; init; } | ||||
|     public object Msg { get; init; } | ||||
| } | ||||
| @@ -14,7 +14,7 @@ public record CreateConfigReq : Sys_Config | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_Config.UserRegisterConfirm" /> | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     public override bool UserRegisterConfirm { get; set; } | ||||
|     public override bool UserRegisterConfirm { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_Config.UserRegisterDeptId" /> | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|   | ||||
| @@ -20,7 +20,7 @@ public sealed record QueryConfigRsp : Sys_Config | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_Config.UserRegisterConfirm" /> | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     public override bool UserRegisterConfirm { get; set; } | ||||
|     public override bool UserRegisterConfirm { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_Config.UserRegisterDept" /> | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] | ||||
|   | ||||
| @@ -3,4 +3,4 @@ namespace NetAdmin.Domain.Dto.Sys.JobRecord; | ||||
| /// <summary> | ||||
| ///     请求:更新计划作业执行记录 | ||||
| /// </summary> | ||||
| public sealed record UpdateJobRecordReq : CreateJobRecordReq { } | ||||
| public sealed record UpdateJobRecordReq : CreateJobRecordReq; | ||||
| @@ -66,6 +66,7 @@ public sealed record MetaInfo : DataAbstraction | ||||
|     /// <summary> | ||||
|     ///     类型 | ||||
|     /// </summary> | ||||
|     [EnumDataType(typeof(MenuTypes))] | ||||
|     [EnumDataType(typeof(MenuTypes), ErrorMessageResourceType = typeof(Ln) | ||||
|                 , ErrorMessageResourceName = nameof(Ln.菜单类型不正确))] | ||||
|     public MenuTypes Type { get; init; } | ||||
| } | ||||
| @@ -37,7 +37,7 @@ public sealed record QueryRequestLogRsp : Sys_RequestLog, IRegister | ||||
|  | ||||
|     /// <inheritdoc cref="IFieldCreatedUser.CreatedUserName" /> | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] | ||||
|     public override string CreatedUserName { get; set; } | ||||
|     public override string CreatedUserName { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_RequestLog.Duration" /> | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
| @@ -102,6 +102,6 @@ public sealed record QueryRequestLogRsp : Sys_RequestLog, IRegister | ||||
|     /// <inheritdoc /> | ||||
|     public void Register(TypeAdapterConfig config) | ||||
|     { | ||||
|         _ = config.ForType<Sys_RequestLog, QueryRequestLogRsp>().Map(dest => dest.ApiSummary, src => src.Api.Summary); | ||||
|         _ = config.ForType<Sys_RequestLog, QueryRequestLogRsp>().Map(d => d.ApiSummary, s => s.Api.Summary); | ||||
|     } | ||||
| } | ||||
| @@ -16,7 +16,8 @@ public record CreateRoleReq : Sys_Role | ||||
|     public IReadOnlyCollection<string> ApiIds { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_Role.DataScope" /> | ||||
|     [EnumDataType(typeof(DataScopes))] | ||||
|     [EnumDataType(typeof(DataScopes), ErrorMessageResourceType = typeof(Ln) | ||||
|                 , ErrorMessageResourceName = nameof(Ln.角色数据范围不正确))] | ||||
|     public override DataScopes DataScope { get; init; } = DataScopes.All; | ||||
|  | ||||
|     /// <summary> | ||||
|   | ||||
| @@ -22,7 +22,8 @@ public record CreateSiteMsgReq : Sys_SiteMsg | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_SiteMsg.MsgType" /> | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     [EnumDataType(typeof(SiteMsgTypes))] | ||||
|     [EnumDataType(typeof(SiteMsgTypes), ErrorMessageResourceType = typeof(Ln) | ||||
|                 , ErrorMessageResourceName = nameof(Ln.站内信类型不正确))] | ||||
|     public override SiteMsgTypes MsgType { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|   | ||||
| @@ -40,7 +40,7 @@ public sealed record QuerySiteMsgRsp : Sys_SiteMsg | ||||
|     /// <summary> | ||||
|     ///     我的标记 | ||||
|     /// </summary> | ||||
|     public QuerySiteMsgFlagRsp MyFlags { get; set; } | ||||
|     public QuerySiteMsgFlagRsp MyFlags { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_SiteMsg.Roles" /> | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] | ||||
|   | ||||
| @@ -10,10 +10,11 @@ public record CreateSiteMsgFlagReq : Sys_SiteMsgFlag | ||||
| { | ||||
|     /// <inheritdoc cref="Sys_SiteMsgFlag.SiteMsgId" /> | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     public override long SiteMsgId { get; set; } | ||||
|     public override long SiteMsgId { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_SiteMsgFlag.UserSiteMsgStatus" /> | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     [EnumDataType(typeof(UserSiteMsgStatues))] | ||||
|     public override UserSiteMsgStatues UserSiteMsgStatus { get; set; } | ||||
|     [EnumDataType(typeof(UserSiteMsgStatues), ErrorMessageResourceType = typeof(Ln) | ||||
|                 , ErrorMessageResourceName = nameof(Ln.站内信状态不正确))] | ||||
|     public override UserSiteMsgStatues UserSiteMsgStatus { get; init; } | ||||
| } | ||||
| @@ -15,5 +15,5 @@ public sealed record QuerySiteMsgFlagRsp : Sys_SiteMsgFlag | ||||
|  | ||||
|     /// <inheritdoc /> | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     public override UserSiteMsgStatues UserSiteMsgStatus { get; set; } | ||||
|     public override UserSiteMsgStatues UserSiteMsgStatus { get; init; } | ||||
| } | ||||
| @@ -13,5 +13,5 @@ public record GetModulesRsp : DataAbstraction | ||||
|     /// <summary> | ||||
|     ///     模块版本 | ||||
|     /// </summary> | ||||
|     public string Version { get; set; } | ||||
|     public string Version { get; init; } | ||||
| } | ||||
| @@ -33,5 +33,5 @@ public record RegisterUserReq : Sys_User | ||||
|     ///     短信验证请求 | ||||
|     /// </summary> | ||||
|     [Required(ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.短信验证请求不能为空))] | ||||
|     public VerifySmsCodeReq VerifySmsCodeReq { get; set; } | ||||
|     public VerifySmsCodeReq VerifySmsCodeReq { get; init; } | ||||
| } | ||||
| @@ -19,7 +19,8 @@ public record CreateUserProfileReq : Sys_UserProfile | ||||
|     public override string CertificateNumber { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_UserProfile.CertificateType" /> | ||||
|     [EnumDataType(typeof(CertificateTypes))] | ||||
|     [EnumDataType(typeof(CertificateTypes), ErrorMessageResourceType = typeof(Ln) | ||||
|                 , ErrorMessageResourceName = nameof(Ln.证件类型不正确))] | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     public override CertificateTypes? CertificateType { get; init; } | ||||
|  | ||||
| @@ -40,7 +41,8 @@ public record CreateUserProfileReq : Sys_UserProfile | ||||
|     public override string CompanyTelephone { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_UserProfile.Education" /> | ||||
|     [EnumDataType(typeof(Educations))] | ||||
|     [EnumDataType(typeof(Educations), ErrorMessageResourceType = typeof(Ln) | ||||
|                 , ErrorMessageResourceName = nameof(Ln.学历不正确))] | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     public override Educations? Education { get; init; } | ||||
|  | ||||
| @@ -82,12 +84,13 @@ public record CreateUserProfileReq : Sys_UserProfile | ||||
|     public override string HomeTelephone { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_UserProfile.MarriageStatus" /> | ||||
|     [EnumDataType(typeof(MarriageStatues))] | ||||
|     [EnumDataType(typeof(MarriageStatues), ErrorMessageResourceType = typeof(Ln) | ||||
|                 , ErrorMessageResourceName = nameof(Ln.婚姻状况不正确))] | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     public override MarriageStatues? MarriageStatus { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_UserProfile.Nation" /> | ||||
|     [EnumDataType(typeof(Nations))] | ||||
|     [EnumDataType(typeof(Nations), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.民族不正确))] | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     public override Nations? Nation { get; init; } | ||||
|  | ||||
| @@ -96,7 +99,8 @@ public record CreateUserProfileReq : Sys_UserProfile | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_UserProfile.PoliticalStatus" /> | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     [EnumDataType(typeof(PoliticalStatues))] | ||||
|     [EnumDataType(typeof(PoliticalStatues), ErrorMessageResourceType = typeof(Ln) | ||||
|                 , ErrorMessageResourceName = nameof(Ln.政治面貌不正确))] | ||||
|     public override PoliticalStatues? PoliticalStatus { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_UserProfile.Profession" /> | ||||
| @@ -108,7 +112,7 @@ public record CreateUserProfileReq : Sys_UserProfile | ||||
|     public override string RealName { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_UserProfile.Sex" /> | ||||
|     [EnumDataType(typeof(Sexes))] | ||||
|     [EnumDataType(typeof(Sexes), ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.性别不正确))] | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     public override Sexes? Sex { get; init; } | ||||
| } | ||||
| @@ -18,7 +18,8 @@ public sealed record SendVerifyCodeReq : Sys_VerifyCode, IValidatableObject | ||||
|     /// <inheritdoc cref="Sys_VerifyCode.DeviceType" /> | ||||
|     [Required(ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.设备类型不能为空))] | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     [EnumDataType(typeof(VerifyCodeDeviceTypes))] | ||||
|     [EnumDataType(typeof(VerifyCodeDeviceTypes), ErrorMessageResourceType = typeof(Ln) | ||||
|                 , ErrorMessageResourceName = nameof(Ln.验证码目标设备类型不正确))] | ||||
|     public override VerifyCodeDeviceTypes DeviceType { get; init; } | ||||
|  | ||||
|     /// <inheritdoc cref="Sys_VerifyCode.Status" /> | ||||
| @@ -27,7 +28,8 @@ public sealed record SendVerifyCodeReq : Sys_VerifyCode, IValidatableObject | ||||
|     /// <inheritdoc cref="Sys_VerifyCode.Type" /> | ||||
|     [Required(ErrorMessageResourceType = typeof(Ln), ErrorMessageResourceName = nameof(Ln.验证码类型不能为空))] | ||||
|     [JsonIgnore(Condition = JsonIgnoreCondition.Never)] | ||||
|     [EnumDataType(typeof(VerifyCodeTypes))] | ||||
|     [EnumDataType(typeof(VerifyCodeTypes), ErrorMessageResourceType = typeof(Ln) | ||||
|                 , ErrorMessageResourceName = nameof(Ln.验证码类型不正确))] | ||||
|     public override VerifyCodeTypes Type { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|   | ||||
| @@ -54,7 +54,7 @@ public abstract class WorkBase<TLogger> | ||||
|     ///     通用工作流 | ||||
|     /// </summary> | ||||
|     /// <exception cref="NetAdminGetLockerException">加锁失败异常</exception> | ||||
|     protected virtual async ValueTask WorkflowAsync(bool singleInstance, CancellationToken cancelToken) | ||||
|     protected async ValueTask WorkflowAsync(bool singleInstance, CancellationToken cancelToken) | ||||
|     { | ||||
|         if (singleInstance) { | ||||
|             // 加锁 | ||||
|   | ||||
| @@ -13,10 +13,10 @@ public sealed record InstanceNode | ||||
|     /// <summary> | ||||
|     ///     数据库 | ||||
|     /// </summary> | ||||
|     public int Database { get; set; } | ||||
|     public int Database { get; init; } | ||||
|  | ||||
|     /// <summary> | ||||
|     ///     实例名称 | ||||
|     /// </summary> | ||||
|     public string Name { get; set; } | ||||
|     public string Name { get; init; } | ||||
| } | ||||
| @@ -30,5 +30,5 @@ public abstract class NetAdminException : Exception | ||||
|     /// <summary> | ||||
|     ///     错误码 | ||||
|     /// </summary> | ||||
|     public ErrorCodes Code { get; set; } | ||||
|     public ErrorCodes Code { get; init; } | ||||
| } | ||||
| @@ -1,10 +1,13 @@ | ||||
| { | ||||
|     "tabWidth": 4, | ||||
|     "useTabs": false, | ||||
|     "attributeGroups": ["^v-", "$DEFAULT"], | ||||
|     "attributeSort": "ASC", | ||||
|     "bracketSameLine": true, | ||||
|     "endOfLine": "auto", | ||||
|     "plugins": ["prettier-plugin-organize-attributes"], | ||||
|     "printWidth": 150, | ||||
|     "semi": false, | ||||
|     "singleQuote": true, | ||||
|     "tabWidth": 4, | ||||
|     "trailingComma": "all", | ||||
|     "bracketSameLine": true, | ||||
|     "printWidth": 150, | ||||
|     "endOfLine": "auto" | ||||
|     "useTabs": false | ||||
| } | ||||
| @@ -99,7 +99,7 @@ | ||||
|         <noscript> | ||||
|             <strong>We're sorry but NetAdmin doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> | ||||
|         </noscript> | ||||
|         <div id="app" class="aminui"> | ||||
|         <div class="aminui" id="app"> | ||||
|             <div class="app-loading"> | ||||
|                 <div class="app-loading__logo"> | ||||
|                     <img alt="" src="/src/assets/img/logo.png" /> | ||||
|   | ||||
| @@ -36,6 +36,7 @@ | ||||
|     "devDependencies": { | ||||
|         "@vitejs/plugin-vue": "^5.0.3", | ||||
|         "prettier": "^3.2.4", | ||||
|         "prettier-plugin-organize-attributes": "^1.0.0", | ||||
|         "sass": "^1.70.0", | ||||
|         "terser": "^5.27.0", | ||||
|         "vite": "^5.0.12" | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <svg t="1700643247048" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5913" width="128" height="128"> | ||||
|     <svg class="icon" height="128" p-id="5913" t="1700643247048" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M957.6 872l-432-736c-3.2-5.6-8.8-8-13.6-8s-10.4 2.4-13.6 8l-432 736c-6.4 10.4 1.6 24 13.6 24h864c12 0 20-13.6 13.6-24z m-793.6-40L512 239.2l348 592.8h-696zM480 704h64v64h-64v-64z m0-320h64v256h-64V384z" | ||||
|             p-id="5914"></path> | ||||
|   | ||||
| @@ -1,7 +1,25 @@ | ||||
| <template> | ||||
|     <svg class="icon" height="300" p-id="9845" t="1678846153777" version="1.1" viewBox="0 0 1024 1024" width="300" xmlns="http://www.w3.org/2000/svg"> | ||||
|     <svg | ||||
|         class="icon" | ||||
|         height="128" | ||||
|         p-id="11193" | ||||
|         t="1706508305545" | ||||
|         version="1.1" | ||||
|         viewBox="0 0 1149 1024" | ||||
|         width="128" | ||||
|         xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M864 64H160a96 96 0 0 0-96 96v576a96 96 0 0 0 96 96h320v64H256a32 32 0 0 0 0 64h512a32 32 0 0 0 0-64h-224v-64h320a96 96 0 0 0 96-96V160a96 96 0 0 0-96-96zM160 128h704a32 32 0 0 1 32 32v448H128V160a32 32 0 0 1 32-32z m736 608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32v-64h768v64z" | ||||
|             p-id="9846"></path> | ||||
|             d="M1061.585878 1024H88.369851A88.369851 88.369851 0 0 1 0 935.630149V88.369851A88.369851 88.369851 0 0 1 88.369851 0H1061.585878a88.369851 88.369851 0 0 1 88.369852 88.369851v847.260298A88.369851 88.369851 0 0 1 1061.585878 1024zM88.369851 57.38302A30.986831 30.986831 0 0 0 57.38302 88.369851v847.260298a30.986831 30.986831 0 0 0 30.986831 30.986831H1061.585878a30.986831 30.986831 0 0 0 30.986831-30.986831V88.369851A30.986831 30.986831 0 0 0 1061.585878 57.38302z" | ||||
|             p-id="11194"></path> | ||||
|         <path d="M28.69151 333.682264h1091.711964v57.38302H28.69151zM28.69151 655.027178h1091.711964v57.383021H28.69151z" p-id="11195"></path> | ||||
|         <path | ||||
|             d="M104.437097 168.70608m28.69151 0l82.63155 0q28.69151 0 28.69151 28.69151l0 0q0 28.69151-28.69151 28.691511l-82.63155 0q-28.69151 0-28.69151-28.691511l0 0q0-28.69151 28.69151-28.69151Z" | ||||
|             p-id="11196"></path> | ||||
|         <path | ||||
|             d="M104.437097 494.354721m28.69151 0l82.63155 0q28.69151 0 28.69151 28.69151l0 0q0 28.69151-28.69151 28.691511l-82.63155 0q-28.69151 0-28.69151-28.691511l0 0q0-28.69151 28.69151-28.69151Z" | ||||
|             p-id="11197"></path> | ||||
|         <path | ||||
|             d="M104.437097 815.986551m28.69151 0l82.63155 0q28.69151 0 28.69151 28.69151l0 0q0 28.69151-28.69151 28.69151l-82.63155 0q-28.69151 0-28.69151-28.69151l0 0q0-28.69151 28.69151-28.69151Z" | ||||
|             p-id="11198"></path> | ||||
|     </svg> | ||||
| </template> | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <svg t="1695638866565" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4181" width="128" height="128"> | ||||
|     <svg class="icon" height="128" p-id="4181" t="1695638866565" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M512 97.52381c228.912762 0 414.47619 185.563429 414.47619 414.47619s-185.563429 414.47619-414.47619 414.47619S97.52381 740.912762 97.52381 512 283.087238 97.52381 512 97.52381z m129.29219 233.447619l-129.267809 129.29219-129.316571-129.29219-51.736381 51.736381 129.316571 129.267809-129.316571 129.316571 51.736381 51.736381L512 563.687619l129.29219 129.316571 51.736381-51.73638L563.687619 512l129.316571-129.29219-51.73638-51.736381z" | ||||
|             p-id="4182"></path> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <svg t="1700287923195" class="icon" viewBox="0 0 1159 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7208" width="128" height="128"> | ||||
|     <svg class="icon" height="128" p-id="7208" t="1700287923195" version="1.1" viewBox="0 0 1159 1024" width="128" xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M375.432019 950.647918H139.942526a65.628219 65.628219 0 0 1-66.59334-63.697977V137.051024a64.663098 64.663098 0 0 1 66.59334-63.697977h669.793885a64.663098 64.663098 0 0 1 66.59334 63.697977V289.540122a38.604835 38.604835 0 0 0 0 14.476813l7.720967 11.58145a37.639714 37.639714 0 0 0 40.535076 7.720967l11.581451-7.720967A37.639714 37.639714 0 0 0 949.678937 289.540122V137.051024A138.977405 138.977405 0 0 0 809.736411 0.00386H139.942526A138.977405 138.977405 0 0 0 0 137.051024v749.898917a138.977405 138.977405 0 0 0 139.942526 137.047164h235.489493a38.604835 38.604835 0 0 0 26.058263-10.61633 37.639714 37.639714 0 0 0 0-52.116527 38.604835 38.604835 0 0 0-26.058263-10.61633zM691.026544 289.540122a39.569956 39.569956 0 0 0-36.674593-39.569956H216.187075a39.569956 39.569956 0 0 0-36.674593 39.569956 38.604835 38.604835 0 0 0 36.674593 38.604835h438.164876a38.604835 38.604835 0 0 0 36.674593-38.604835zM216.187075 482.564296a39.569956 39.569956 0 0 0 0 79.139911h289.536261a39.569956 39.569956 0 0 0 0-79.139911z m219.082438 226.803405H216.187075a40.535077 40.535077 0 0 0-36.674593 40.535076 39.569956 39.569956 0 0 0 36.674593 39.569956h219.082438a39.569956 39.569956 0 0 0 36.674593-39.569956 40.535077 40.535077 0 0 0-36.674593-40.535076zM1147.528716 868.612644L895.632168 428.517527a86.860878 86.860878 0 0 0-146.698372 0L497.037249 868.612644a80.105032 80.105032 0 0 0-14.476813 38.604835 84.930637 84.930637 0 0 0 11.58145 42.465319 96.512087 96.512087 0 0 0 30.883868 30.883867 85.895758 85.895758 0 0 0 43.430439 11.581451h502.827974a85.895758 85.895758 0 0 0 86.860878-84.930637 80.105032 80.105032 0 0 0-10.616329-38.604835zM801.050323 796.228579h-8.686088a8.686088 8.686088 0 0 1 0-6.755846v-173.721757a7.720967 7.720967 0 0 1 7.720967 0h39.569956a9.651209 9.651209 0 0 1 8.686088 0v171.791515H839.655158z m0 37.639714h44.39556a18.337297 18.337297 0 0 1 0 9.651209V868.612644a18.337297 18.337297 0 0 1 0 9.651209 11.58145 11.58145 0 0 1-8.686088 0h-36.674593a8.686088 8.686088 0 0 1-7.720967 0 18.337297 18.337297 0 0 1 0-9.651209v-21.232659a18.337297 18.337297 0 0 1 0-9.651208z" | ||||
|             p-id="7209"></path> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <svg t="1700642583398" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6047" width="128" height="128"> | ||||
|     <svg class="icon" height="128" p-id="6047" t="1700642583398" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M830.4 513.6C786.4 469.6 729.6 448 672 448c-48.8 0-96.8 16-136.8 47.2L277.6 237.6 384 131.2l-29.6-29.6L224 184 128.8 88.8l-44 44 406.4 406.4c-64.8 88-56.8 212 22.4 291.2 44 44 100.8 65.6 158.4 65.6s114.4-21.6 158.4-65.6c87.2-87.2 87.2-229.6 0-316.8z m-45.6 271.2c-30.4 30.4-70.4 47.2-112.8 47.2-42.4 0-83.2-16.8-112.8-47.2-62.4-62.4-62.4-164 0-226.4C588.8 528.8 629.6 512 672 512s83.2 16.8 112.8 47.2c62.4 62.4 62.4 163.2 0 225.6z" | ||||
|             p-id="6048"></path> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <svg t="1700278692453" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7645" width="128" height="128"> | ||||
|     <svg class="icon" height="128" p-id="7645" t="1700278692453" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M341.764096 68.266667h682.666667v136.533333H341.764096zM341.764096 443.733333h682.666667v136.533334H341.764096zM341.764096 819.2h682.666667v136.533333H341.764096zM111.022763 223.914667h-32.085334V0h32.085334zM189.529429 445.098667a57.344 57.344 0 0 1-22.528 49.834666 80.554667 80.554667 0 0 1-50.517333 14.336H68.697429a43.690667 43.690667 0 0 0-29.354666 6.826667 43.690667 43.690667 0 0 0-6.826667 30.037333v32.085334h154.282667V614.4H0.430763V546.133333a61.44 61.44 0 0 1 68.266666-68.266666h47.786667c27.306667 0 40.96-10.24 40.96-32.085334a23.210667 23.210667 0 0 0-10.24-18.432 44.373333 44.373333 0 0 0-26.624-8.192H0.430763v-32.085333h120.149333a79.189333 79.189333 0 0 1 45.056 12.970667 52.565333 52.565333 0 0 1 23.893333 45.056zM186.798763 955.733333a58.709333 58.709333 0 0 1-22.528 49.834667 77.141333 77.141333 0 0 1-49.152 15.701333H7.257429v-32.085333h106.496c26.624 0 40.277333-10.922667 40.277334-33.450667s-15.018667-34.133333-44.373334-34.133333H8.622763v-32.085333h105.130666c25.941333 0 38.912-10.922667 38.912-32.085334s-12.970667-27.989333-37.546666-27.989333H0.430763v-32.085333h114.688a73.728 73.728 0 0 1 42.325333 10.922666 51.882667 51.882667 0 0 1 27.306667 49.152 58.026667 58.026667 0 0 1-21.845334 49.152 51.882667 51.882667 0 0 1 23.893334 49.152z" | ||||
|             p-id="7646"></path> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <svg t="1700287773746" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5124" width="128" height="128"> | ||||
|     <svg class="icon" height="128" p-id="5124" t="1700287773746" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M136.3 410.2h70v150.2h-70zM206.3 851.3V733.8h-70v117.5c0 40.7 31.5 73.9 70.2 73.9h206.1v-70H207.5c-0.5-0.6-1.2-1.9-1.2-3.9zM206.3 139c0-2 0.7-3.3 1.1-3.9h619.8c0.5 0.6 1.1 1.8 1.1 3.9v151.1h70V139c0-40.7-31.5-73.9-70.2-73.9H206.5c-38.7 0-70.2 33.1-70.2 73.9v97.9h70V139zM886.8 677.2c-20-20-43-35.9-68-47.2 19.2-22.2 30.9-51.2 30.9-82.8 0-69.9-56.8-126.7-126.7-126.7s-126.7 56.8-126.7 126.7c0 31.6 11.7 60.6 30.9 82.8-25 11.4-48 27.2-68 47.2-43.8 43.8-67.9 101.9-67.9 163.8 0 6.1 0.2 12.2 0.7 18.2l69.8-5.5c-0.3-4.2-0.5-8.5-0.5-12.7 0-89.1 72.5-161.6 161.6-161.6S884.6 751.9 884.6 841c0 4.3-0.2 8.6-0.5 12.7l69.8 5.5c0.5-6 0.7-12.1 0.7-18.2 0-61.9-24.1-120-67.8-163.8zM723 490.5c31.3 0 56.7 25.4 56.7 56.7s-25.4 56.7-56.7 56.7-56.7-25.4-56.7-56.7 25.4-56.7 56.7-56.7zM93.9 288.5h154.8v70H93.9zM93.9 612.1h154.8v70H93.9z" | ||||
|             p-id="5125"></path> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <svg t="1700643176982" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4094" width="128" height="128"> | ||||
|     <svg class="icon" height="128" p-id="4094" t="1700643176982" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M532.168854 539.929096h1.786692c15.748682 0 28.607548-12.809747 28.67918-28.559453 0.071631-15.821337-12.738116-28.739555-28.67918-28.811186-15.748682 0-28.607548 12.809747-28.679179 28.702716-0.071631 15.246239 11.874445 27.805276 26.892487 28.667923z" | ||||
|             p-id="4095"></path> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <svg t="1700287474570" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4076" width="128" height="128"> | ||||
|     <svg class="icon" height="128" p-id="4076" t="1700287474570" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M758.969877 1017.428352H58.739777a35.205133 35.205133 0 0 1-35.205134-35.205134V154.902586a35.205133 35.205133 0 0 1 35.205134-35.205133h700.2301a35.205133 35.205133 0 0 1 35.205134 35.205133v177.609898a35.205133 35.205133 0 0 1-70.410267 0V190.10772H93.94491v756.910365h629.819834V805.376099a35.205133 35.205133 0 0 1 70.410267 0V982.223218a35.205133 35.205133 0 0 1-35.205134 35.205134z" | ||||
|             p-id="4077"></path> | ||||
|   | ||||
| @@ -1,7 +1,13 @@ | ||||
| <template> | ||||
|     <svg class="icon" height="300" p-id="4952" t="1678864333679" version="1.1" viewBox="0 0 1024 1024" width="300" xmlns="http://www.w3.org/2000/svg"> | ||||
|     <svg class="icon" height="128" p-id="5220" t="1706579628535" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M342 472h342c0.4 0 0.9 0 1.3-0.1 4.4-0.7 7.3-4.8 6.6-9.2l-40.2-248c-0.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-0.1 0.4-0.1 0.9-0.1 1.3 0 4.4 3.6 8 8 8z m91.2-196h159.5l20.7 128h-201l20.8-128zM435.7 558.7c-0.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-0.1 0.4-0.1 0.9-0.1 1.3 0 4.4 3.6 8 8 8h342c0.4 0 0.9 0 1.3-0.1 4.4-0.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zM905.9 806.7l-40.2-248c-0.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-0.1 0.4-0.1 0.9-0.1 1.3 0 4.4 3.6 8 8 8h342c0.4 0 0.9 0 1.3-0.1 4.3-0.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5z" | ||||
|             p-id="4953"></path> | ||||
|             d="M913.066667 264.533333l-371.2-209.066666c-25.6-12.8-59.733333-12.8-85.333334 0L89.6 264.533333C34.133333 298.666667 34.133333 379.733333 89.6 413.866667l371.2 209.066666c25.6 12.8 59.733333 12.8 85.333333 0l371.2-209.066666c55.466667-34.133333 55.466667-119.466667-4.266666-149.333334z m-413.866667 281.6L132.266667 337.066667 499.2 128l371.2 209.066667-371.2 209.066666z" | ||||
|             p-id="5221"></path> | ||||
|         <path | ||||
|             d="M46.933333 516.266667c12.8-21.333333 38.4-25.6 59.733334-17.066667l384 221.866667c12.8 8.533333 29.866667 8.533333 42.666666 0l388.266667-217.6c21.333333-12.8 46.933333-4.266667 59.733333 17.066666 12.8 21.333333 4.266667 46.933333-17.066666 59.733334l-388.266667 217.6c-38.4 21.333333-89.6 21.333333-128 0l-384-221.866667c-21.333333-12.8-25.6-38.4-17.066667-59.733333z" | ||||
|             p-id="5222"></path> | ||||
|         <path | ||||
|             d="M106.666667 669.866667c-21.333333-12.8-46.933333-4.266667-59.733334 17.066666-12.8 21.333333-4.266667 46.933333 17.066667 59.733334l388.266667 217.6c38.4 21.333333 85.333333 21.333333 128 0l379.733333-217.6c21.333333-12.8 25.6-38.4 17.066667-59.733334-12.8-21.333333-38.4-25.6-59.733334-17.066666l-379.733333 217.6c-12.8 8.533333-29.866667 8.533333-42.666667 0l-388.266666-217.6z" | ||||
|             p-id="5223"></path> | ||||
|     </svg> | ||||
| </template> | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <svg t="1706693297583" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4279" width="128" height="128"> | ||||
|     <svg class="icon" height="128" p-id="4279" t="1706693297583" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M553 186.4v-84h204.8c22.5 0 41-18.4 41-41 0-22.5-18.4-41-41-41H266.2c-22.5 0-41 18.4-41 41 0 22.5 18.4 41 41 41H471v84C264 207 102.4 381.5 102.4 593.9c0 226.2 183.4 409.6 409.6 409.6s409.6-183.4 409.6-409.6c0-212.4-161.7-387-368.6-407.5z m-41 735.2c-180.7 0-327.7-147-327.7-327.7s147-327.7 327.7-327.7 327.7 147 327.7 327.7-147 327.7-327.7 327.7z" | ||||
|             p-id="4280"></path> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <svg t="1695640506520" class="icon" viewBox="0 0 1026 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4207" width="128" height="128"> | ||||
|     <svg class="icon" height="128" p-id="4207" t="1695640506520" version="1.1" viewBox="0 0 1026 1024" width="128" xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M420.864 450.56l-164.864 139.264 0-186.368 185.344-162.816 5.12 6.144 167.936 195.584 308.224-320.512 92.16 112.64-413.696 431.104-3.072-7.168zM928.768 705.536q19.456 0 37.376 7.68t30.72 20.48 20.48 30.208 7.68 36.864q0 20.48-7.68 37.888t-20.48 30.208-30.72 20.48-37.376 7.68l-832.512 0q-20.48 0-37.888-7.68t-30.208-20.48-20.48-30.208-7.68-37.888l0-640q0-19.456 7.68-37.376t20.48-30.72 30.208-20.48 37.888-7.68q19.456 0 37.376 7.68t30.72 20.48 20.48 30.72 7.68 37.376l0 544.768 736.256 0z" | ||||
|             p-id="4208"></path> | ||||
|   | ||||
| @@ -1,10 +1,18 @@ | ||||
| <template> | ||||
|     <svg class="icon" height="200" p-id="2826" t="1679624385345" version="1.1" viewBox="0 0 1024 1024" width="200" xmlns="http://www.w3.org/2000/svg"> | ||||
|     <svg | ||||
|         class="icon" | ||||
|         height="128" | ||||
|         p-id="13280" | ||||
|         t="1706508686630" | ||||
|         version="1.1" | ||||
|         viewBox="0 0 1024 1024" | ||||
|         width="128" | ||||
|         xmlns="http://www.w3.org/2000/svg"> | ||||
|         <path | ||||
|             d="M831.825474 63.940169H191.939717C121.2479 63.940169 63.940169 121.2479 63.940169 191.939717v639.885757C63.940169 902.517291 121.2479 959.825022 191.939717 959.825022h639.885757c70.691817 0 127.999548-57.307731 127.999548-127.999548V191.939717C959.825022 121.2479 902.517291 63.940169 831.825474 63.940169zM895.884854 831.998871A63.835408 63.835408 0 0 1 831.912173 895.884854H192.087827c-17.112123 0-33.270563-6.574639-45.372232-18.67631S127.880338 849.110994 127.880338 831.998871V192.001129A64.236389 64.236389 0 0 1 192.087827 127.880338h639.824346A64.037705 64.037705 0 0 1 895.884854 192.001129v639.997742z" | ||||
|             p-id="2827"></path> | ||||
|             p-id="13281"></path> | ||||
|         <path | ||||
|             d="M791.998335 351.851551h-255.999097a31.970084 31.970084 0 0 0 0 63.940169h255.999097a31.970084 31.970084 0 0 0 0-63.940169zM791.998335 607.973471h-255.999097a31.970084 31.970084 0 0 0 0 63.940169h255.999097a31.970084 31.970084 0 0 0 0-63.940169zM344.001722 527.997686c-61.855792 0-111.985607 50.144265-111.985607 111.985606s50.144265 111.985607 111.985607 111.985607 111.985607-50.144265 111.985606-111.985607-50.129815-111.985607-111.985606-111.985606z m33.982213 145.982269a48.045438 48.045438 0 1 1 14.088511-33.982213 47.745605 47.745605 0 0 1-14.088511 33.985826zM417.395643 297.394035L311.999125 402.78694 270.6078 361.392003a31.970084 31.970084 0 1 0-45.213286 45.213285l63.997968 64.001581a31.970084 31.970084 0 0 0 45.213286 0l127.999548-127.999549a31.970084 31.970084 0 0 0-45.209673-45.213285z" | ||||
|             p-id="2828"></path> | ||||
|             p-id="13282"></path> | ||||
|     </svg> | ||||
| </template> | ||||
| @@ -1,56 +1,56 @@ | ||||
| export { default as Vue } from './Vue.vue' | ||||
| export { default as Code } from './Code.vue' | ||||
| export { default as Wechat } from './Wechat.vue' | ||||
| export { default as BugFill } from './BugFill.vue' | ||||
| export { default as BugLine } from './BugLine.vue' | ||||
| export { default as FileWord } from './FileWord.vue' | ||||
| export { default as FileExcel } from './FileExcel.vue' | ||||
| export { default as FilePpt } from './FilePpt.vue' | ||||
| export { default as Organization } from './Organization.vue' | ||||
| export { default as Upload } from './Upload.vue' | ||||
| export { default as Download } from './Download.vue' | ||||
| export { default as Role } from './Role.vue' | ||||
| export { default as Dept } from './Dept.vue' | ||||
| export { default as Js } from './Js.vue' | ||||
| export { default as Memory } from './Memory.vue' | ||||
| export { default as Dashboard } from './Dashboard.vue' | ||||
| export { default as Alert } from './Alert.vue' | ||||
| export { default as Api } from './Api.vue' | ||||
| export { default as Code2 } from './Code2.vue' | ||||
| export { default as Csharp } from './Csharp.vue' | ||||
| export { default as Dic } from './Dic.vue' | ||||
| export { default as Position } from './Position.vue' | ||||
| export { default as Tpl } from './Tpl.vue' | ||||
| export { default as Demo } from './Demo.vue' | ||||
| export { default as Link } from './Link.vue' | ||||
| export { default as Unlink } from './Unlink.vue' | ||||
| export { default as Send } from './Send.vue' | ||||
| export { default as SmsCode } from './SmsCode.vue' | ||||
| export { default as Meter } from './Meter.vue' | ||||
| export { default as Grafana } from './Grafana.vue' | ||||
| export { default as Elastic } from './Elastic.vue' | ||||
| export { default as Kibana } from './Kibana.vue' | ||||
| export { default as Kafka } from './Kafka.vue' | ||||
| export { default as Resource } from './Resource.vue' | ||||
| export { default as Robot } from './Robot.vue' | ||||
| export { default as Device } from './Device.vue' | ||||
| export { default as Business } from './Business.vue' | ||||
| export { default as App } from './App.vue' | ||||
| export { default as App2 } from './App2.vue' | ||||
| export { default as Sync } from './Sync.vue' | ||||
| export { default as Drone } from './Drone.vue' | ||||
| export { default as Gitea } from './Gitea.vue' | ||||
| export { default as BugFill } from './BugFill.vue' | ||||
| export { default as BugLine } from './BugLine.vue' | ||||
| export { default as Business } from './Business.vue' | ||||
| export { default as Code } from './Code.vue' | ||||
| export { default as Code2 } from './Code2.vue' | ||||
| export { default as Csharp } from './Csharp.vue' | ||||
| export { default as Dashboard } from './Dashboard.vue' | ||||
| export { default as Demo } from './Demo.vue' | ||||
| export { default as Dept } from './Dept.vue' | ||||
| export { default as Device } from './Device.vue' | ||||
| export { default as Dic } from './Dic.vue' | ||||
| export { default as Docker } from './Docker.vue' | ||||
| export { default as Task } from './Task.vue' | ||||
| export { default as ProductCategory } from './ProductCategory.vue' | ||||
| export { default as Product } from './Product.vue' | ||||
| export { default as Download } from './Download.vue' | ||||
| export { default as Drone } from './Drone.vue' | ||||
| export { default as Elastic } from './Elastic.vue' | ||||
| export { default as Error } from './Error.vue' | ||||
| export { default as Warning } from './Warning.vue' | ||||
| export { default as Stats } from './Stats.vue' | ||||
| export { default as Log } from './Log.vue' | ||||
| export { default as OperLog } from './OperLog.vue' | ||||
| export { default as LoginLog } from './LoginLog.vue' | ||||
| export { default as ExLog } from './ExLog.vue' | ||||
| export { default as FileExcel } from './FileExcel.vue' | ||||
| export { default as FilePpt } from './FilePpt.vue' | ||||
| export { default as FileWord } from './FileWord.vue' | ||||
| export { default as Gitea } from './Gitea.vue' | ||||
| export { default as Grafana } from './Grafana.vue' | ||||
| export { default as Js } from './Js.vue' | ||||
| export { default as Kafka } from './Kafka.vue' | ||||
| export { default as Key } from './Key.vue' | ||||
| export { default as Kibana } from './Kibana.vue' | ||||
| export { default as Link } from './Link.vue' | ||||
| export { default as Log } from './Log.vue' | ||||
| export { default as LoginLog } from './LoginLog.vue' | ||||
| export { default as Memory } from './Memory.vue' | ||||
| export { default as Meter } from './Meter.vue' | ||||
| export { default as OpenDoor } from './OpenDoor.vue' | ||||
| export { default as Alert } from './Alert.vue' | ||||
| export { default as OperLog } from './OperLog.vue' | ||||
| export { default as Organization } from './Organization.vue' | ||||
| export { default as Position } from './Position.vue' | ||||
| export { default as Product } from './Product.vue' | ||||
| export { default as ProductCategory } from './ProductCategory.vue' | ||||
| export { default as Resource } from './Resource.vue' | ||||
| export { default as Robot } from './Robot.vue' | ||||
| export { default as Role } from './Role.vue' | ||||
| export { default as ScheduledJob } from './ScheduledJob.vue' | ||||
| export { default as Send } from './Send.vue' | ||||
| export { default as SmsCode } from './SmsCode.vue' | ||||
| export { default as Stats } from './Stats.vue' | ||||
| export { default as Sync } from './Sync.vue' | ||||
| export { default as Task } from './Task.vue' | ||||
| export { default as Tpl } from './Tpl.vue' | ||||
| export { default as Unlink } from './Unlink.vue' | ||||
| export { default as Upload } from './Upload.vue' | ||||
| export { default as Vue } from './Vue.vue' | ||||
| export { default as Warning } from './Warning.vue' | ||||
| export { default as Wechat } from './Wechat.vue' | ||||
| @@ -1,16 +1,16 @@ | ||||
| <template> | ||||
|     <sc-table-select | ||||
|         ref="area" | ||||
|         v-model="area" | ||||
|         :apiObj="$API.sys_dic.pagedQueryContent" | ||||
|         :params="form" | ||||
|         :props="{ label: 'key', value: 'value' }" | ||||
|         :table-width="600" | ||||
|         clearable> | ||||
|         clearable | ||||
|         ref="area"> | ||||
|         <template #header> | ||||
|             <el-form :model="form"> | ||||
|                 <el-form-item> | ||||
|                     <el-input v-model="form.keywords" clearable :placeholder="$t('请输入地区或代码')" @input="onInput"></el-input> | ||||
|                     <el-input v-model="form.keywords" :placeholder="$t('请输入地区或代码')" @input="onInput" clearable></el-input> | ||||
|                 </el-form-item> | ||||
|             </el-form> | ||||
|         </template> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <el-button icon="el-icon-plus" type="primary" @click="add"></el-button> | ||||
|     <el-button @click="add" icon="el-icon-plus" type="primary"></el-button> | ||||
| </template> | ||||
| <style scoped></style> | ||||
| <script> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <el-button :disabled="vue.selection.length === 0" :loading="loading" icon="el-icon-delete" plain type="danger" @click="batchDel"></el-button> | ||||
|     <el-button :disabled="vue.selection.length === 0" :loading="loading" @click="batchDel" icon="el-icon-delete" plain type="danger"></el-button> | ||||
| </template> | ||||
| <style scoped></style> | ||||
| <script> | ||||
|   | ||||
| @@ -1,14 +1,14 @@ | ||||
| <template> | ||||
|     <el-table-column align="right" :label="$t('操作')"> | ||||
|     <el-table-column :label="$t('操作')" align="right"> | ||||
|         <template #default="scope"> | ||||
|             <el-button-group> | ||||
|                 <template v-for="(item, i) in buttons?.filter((x) => !x.condition || x.condition(scope))" :key="i"> | ||||
|                     <el-popconfirm v-if="item.confirm" :title="`确定${item.title}吗?`" @confirm="item.click(scope.row, vue)"> | ||||
|                         <template #reference> | ||||
|                             <el-button :icon="item.icon" :title="item.title" :type="item.type" size="small" @click.native.stop></el-button> | ||||
|                             <el-button :icon="item.icon" :title="item.title" :type="item.type" @click.native.stop size="small"></el-button> | ||||
|                         </template> | ||||
|                     </el-popconfirm> | ||||
|                     <el-button v-else :icon="item.icon" :title="item.title" size="small" @click="item.click(scope.row, vue)" | ||||
|                     <el-button v-else :icon="item.icon" :title="item.title" @click="item.click(scope.row, vue)" size="small" | ||||
|                         >{{ item.title }} | ||||
|                     </el-button> | ||||
|                 </template> | ||||
|   | ||||
| @@ -13,17 +13,17 @@ | ||||
|         <div class="msg-yzm"> | ||||
|             <el-input | ||||
|                 v-model="form[Array.isArray(codeField) ? codeField[1] : codeField]" | ||||
|                 :placeholder="$t('邮箱验证码')" | ||||
|                 clearable | ||||
|                 maxlength="4" | ||||
|                 oninput="value=value.replace(/\D/g,'')" | ||||
|                 :placeholder="$t('邮箱验证码')" | ||||
|                 prefix-icon="el-icon-message"></el-input> | ||||
|             <el-button :disabled="sendDisabled" @click="getYzm" | ||||
|                 >获取验证码<span v-if="sendDisabled"> ({{ waitSecs }})</span></el-button | ||||
|             > | ||||
|         </div> | ||||
|     </el-form-item> | ||||
|     <na-verify ref="verify" :imgSize="{ width: '310px', height: '155px' }" captchaType="blockPuzzle" mode="pop" @success="captchaSuccess"></na-verify> | ||||
|     <na-verify :imgSize="{ width: '310px', height: '155px' }" @success="captchaSuccess" captchaType="blockPuzzle" mode="pop" ref="verify"></na-verify> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   | ||||
| @@ -24,7 +24,7 @@ | ||||
|             > | ||||
|         </div> | ||||
|     </el-form-item> | ||||
|     <na-verify ref="verify" :imgSize="{ width: '310px', height: '155px' }" captchaType="blockPuzzle" mode="pop" @success="captchaSuccess"></na-verify> | ||||
|     <na-verify :imgSize="{ width: '310px', height: '155px' }" @success="captchaSuccess" captchaType="blockPuzzle" mode="pop" ref="verify"></na-verify> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <el-drawer v-model="visible" :size="size" :title="title" destroy-on-close @closed="$emit('closed')"> | ||||
|     <el-drawer v-model="visible" :size="size" :title="title" @closed="$emit('closed')" destroy-on-close> | ||||
|         <el-main> | ||||
|             <el-descriptions :column="1" border size="small"> | ||||
|                 <el-descriptions-item v-for="(item, i) in data" :key="i" :label="i" label-class-name="w15"> | ||||
|   | ||||
| @@ -1,8 +1,10 @@ | ||||
| <template> | ||||
|     <form class="right-panel-search" @keyup.enter="search" @submit.prevent="search"> | ||||
|     <form @keyup.enter="search" @submit.prevent="search" class="right-panel-search"> | ||||
|         <el-date-picker | ||||
|             v-if="hasDate" | ||||
|             v-model="form.dy.createdTime" | ||||
|             :end-placeholder="$t('结束日期')" | ||||
|             :range-separator="$t('至')" | ||||
|             :shortcuts="[ | ||||
|                 { | ||||
|                     text: '今天', | ||||
| @@ -68,10 +70,8 @@ | ||||
|                     }, | ||||
|                 }, | ||||
|             ]" | ||||
|             :teleported="false" | ||||
|             :end-placeholder="$t('结束日期')" | ||||
|             :range-separator="$t('至')" | ||||
|             :start-placeholder="$t('开始日期')" | ||||
|             :teleported="false" | ||||
|             type="daterange" | ||||
|             value-format="YYYY-MM-DD"></el-date-picker> | ||||
|  | ||||
| @@ -118,8 +118,8 @@ | ||||
|         </template> | ||||
|  | ||||
|         <el-button-group> | ||||
|             <el-button icon="el-icon-search" type="primary" @click="search">查询</el-button> | ||||
|             <el-button icon="el-icon-refresh-left" @click="tool.refreshTab(vue)">重置</el-button> | ||||
|             <el-button @click="search" icon="el-icon-search" type="primary">查询</el-button> | ||||
|             <el-button @click="tool.refreshTab(vue)" icon="el-icon-refresh-left">重置</el-button> | ||||
|         </el-button-group> | ||||
|     </form> | ||||
| </template> | ||||
|   | ||||
| @@ -1,20 +1,20 @@ | ||||
| <template> | ||||
|     <sc-table-select | ||||
|         ref="user" | ||||
|         v-model="user" | ||||
|         :apiObj="$API.sys_user.pagedQuery" | ||||
|         :params="form" | ||||
|         :props="{ label: 'userName', value: 'id' }" | ||||
|         :table-width="600" | ||||
|         clearable> | ||||
|         clearable | ||||
|         ref="user"> | ||||
|         <template #header> | ||||
|             <el-form :model="form"> | ||||
|                 <el-form-item> | ||||
|                     <el-input | ||||
|                         v-model="form.keywords" | ||||
|                         clearable | ||||
|                         :placeholder="$t('用户编号 / 用户名 / 手机号 / 邮箱 / 备注')" | ||||
|                         @input="onInput"></el-input> | ||||
|                         @input="onInput" | ||||
|                         clearable></el-input> | ||||
|                 </el-form-item> | ||||
|             </el-form> | ||||
|         </template> | ||||
| @@ -3,16 +3,14 @@ | ||||
|         <div :class="mode === 'pop' ? 'verifybox' : ''" :style="{ 'max-width': parseInt(imgSize.width) + 30 + 'px' }"> | ||||
|             <div v-if="mode === 'pop'" class="verifybox-top"> | ||||
|                 请完成安全验证 | ||||
|                 <span class="verifybox-close" @click="closeBox"> | ||||
|                 <span @click="closeBox" class="verifybox-close"> | ||||
|                     <i class="iconfont icon-close"></i> | ||||
|                 </span> | ||||
|             </div> | ||||
|             <div :style="{ padding: mode === 'pop' ? '1rem' : '0' }" class="verifybox-bottom"> | ||||
|                 <!-- 验证码容器 --> | ||||
|                 <component | ||||
|                     :is="componentType" | ||||
|                     v-if="componentType" | ||||
|                     ref="instance" | ||||
|                     :arith="arith" | ||||
|                     :barSize="barSize" | ||||
|                     :blockSize="blockSize" | ||||
| @@ -20,10 +18,12 @@ | ||||
|                     :explain="explain" | ||||
|                     :figure="figure" | ||||
|                     :imgSize="imgSize" | ||||
|                     :is="componentType" | ||||
|                     :mode="mode" | ||||
|                     :tpl="tpl" | ||||
|                     :type="verifyType" | ||||
|                     :vSpace="vSpace"></component> | ||||
|                     :vSpace="vSpace" | ||||
|                     ref="instance"></component> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
|         <div v-if="type === '2'" :style="{ height: parseInt(setSize.imgHeight) + vSpace + 'px' }" class="verify-img-out"> | ||||
|             <div :style="{ width: setSize.imgWidth, height: setSize.imgHeight }" class="verify-img-panel"> | ||||
|                 <img :src="backImgBase" alt="" style="width: 100%; height: 100%; display: block" /> | ||||
|                 <div v-show="showRefresh" class="verify-refresh" @click="refresh"> | ||||
|                 <div v-show="showRefresh" @click="refresh" class="verify-refresh"> | ||||
|                     <i class="iconfont icon-refresh"></i> | ||||
|                 </div> | ||||
|                 <transition name="tips"> | ||||
| @@ -19,7 +19,7 @@ | ||||
|                 'line-height': barSize.height, | ||||
|             }" | ||||
|             class="verify-bar-area"> | ||||
|             <span class="verify-msg" v-text="text"></span> | ||||
|             <span v-text="text" class="verify-msg"></span> | ||||
|             <div | ||||
|                 :style="{ | ||||
|                     width: leftBarWidth !== undefined ? leftBarWidth : barSize.height, | ||||
| @@ -28,7 +28,7 @@ | ||||
|                     transaction: transitionWidth, | ||||
|                 }" | ||||
|                 class="verify-left-bar"> | ||||
|                 <span class="verify-msg" v-text="finishText"></span> | ||||
|                 <span v-text="finishText" class="verify-msg"></span> | ||||
|                 <div | ||||
|                     :style="{ | ||||
|                         width: barSize.height, | ||||
| @@ -37,9 +37,9 @@ | ||||
|                         left: moveBlockLeft, | ||||
|                         transition: transitionLeft, | ||||
|                     }" | ||||
|                     class="verify-move-block" | ||||
|                     @mousedown="start" | ||||
|                     @touchstart="start"> | ||||
|                     @touchstart="start" | ||||
|                     class="verify-move-block"> | ||||
|                     <i :class="['verify-icon iconfont', iconClass]" :style="{ color: iconColor }"></i> | ||||
|                     <div | ||||
|                         v-if="type === '2'" | ||||
|   | ||||
| @@ -10,7 +10,7 @@ | ||||
|  | ||||
| <template> | ||||
|     <transition name="el-zoom-in-top"> | ||||
|         <div v-if="visible" ref="contextmenu" :style="{ left: left + 'px', top: top + 'px' }" class="sc-contextmenu" @contextmenu.prevent="fun"> | ||||
|         <div v-if="visible" :style="{ left: left + 'px', top: top + 'px' }" @contextmenu.prevent="fun" class="sc-contextmenu" ref="contextmenu"> | ||||
|             <ul class="sc-contextmenu__menu"> | ||||
|                 <slot></slot> | ||||
|             </ul> | ||||
|   | ||||
| @@ -9,9 +9,9 @@ | ||||
|  | ||||
| <template> | ||||
|     <hr v-if="divided" /> | ||||
|     <li :class="disabled ? 'disabled' : ''" @mouseenter="openSubmenu($event)" @mouseleave="closeSubmenu($event)" @click.stop="liClick"> | ||||
|     <li :class="disabled ? 'disabled' : ''" @click.stop="liClick" @mouseenter="openSubmenu($event)" @mouseleave="closeSubmenu($event)"> | ||||
|         <span class="title"> | ||||
|             <el-icon class="sc-contextmenu__icon"><component :is="icon" v-if="icon" /></el-icon> | ||||
|             <el-icon class="sc-contextmenu__icon"><component v-if="icon" :is="icon" /></el-icon> | ||||
|             {{ title }} | ||||
|         </span> | ||||
|         <span class="sc-contextmenu__suffix"> | ||||
|   | ||||
| @@ -8,9 +8,9 @@ | ||||
| --> | ||||
|  | ||||
| <template> | ||||
|     <el-input v-model="defaultValue" v-bind="$attrs"> | ||||
|     <el-input v-bind="$attrs" v-model="defaultValue"> | ||||
|         <template #append> | ||||
|             <el-dropdown size="medium" @command="handleShortcuts"> | ||||
|             <el-dropdown @command="handleShortcuts" size="medium"> | ||||
|                 <el-button icon="el-icon-arrow-down"></el-button> | ||||
|                 <template #dropdown> | ||||
|                     <el-dropdown-menu> | ||||
| @@ -20,7 +20,7 @@ | ||||
|                         <el-dropdown-item command="0 0 0 1 * ?">每月一号零点</el-dropdown-item> | ||||
|                         <el-dropdown-item command="0 0 0 L * ?">每月最后一天零点</el-dropdown-item> | ||||
|                         <el-dropdown-item command="0 0 0 ? * 1">每周星期日零点</el-dropdown-item> | ||||
|                         <el-dropdown-item v-for="(item, index) in shortcuts" :key="item.value" :command="item.value" :divided="index == 0" | ||||
|                         <el-dropdown-item v-for="(item, index) in shortcuts" :command="item.value" :divided="index == 0" :key="item.value" | ||||
|                             >{{ item.text }} | ||||
|                         </el-dropdown-item> | ||||
|                         <el-dropdown-item command="custom" divided icon="el-icon-plus">自定义</el-dropdown-item> | ||||
| @@ -295,7 +295,7 @@ | ||||
|  | ||||
|         <template #footer> | ||||
|             <el-button @click="dialogVisible = false">取 消</el-button> | ||||
|             <el-button type="primary" @click="submit()">确 认</el-button> | ||||
|             <el-button @click="submit()" type="primary">确 认</el-button> | ||||
|         </template> | ||||
|     </el-dialog> | ||||
| </template> | ||||
|   | ||||
| @@ -11,11 +11,11 @@ | ||||
| <template> | ||||
|     <div class="sc-cropper"> | ||||
|         <div class="sc-cropper__img"> | ||||
|             <img ref="img" :src="src" /> | ||||
|             <img :src="src" ref="img" /> | ||||
|         </div> | ||||
|         <div class="sc-cropper__preview"> | ||||
|             <h4>图像预览</h4> | ||||
|             <div ref="preview" class="sc-cropper__preview__img"></div> | ||||
|             <div class="sc-cropper__preview__img" ref="preview"></div> | ||||
|         </div> | ||||
|     </div> | ||||
| </template> | ||||
|   | ||||
| @@ -8,14 +8,14 @@ | ||||
| --> | ||||
|  | ||||
| <template> | ||||
|     <div ref="scDialog" class="sc-dialog"> | ||||
|         <el-dialog ref="dialog" v-model="dialogVisible" :fullscreen="isFullscreen" :show-close="false" v-bind="$attrs"> | ||||
|     <div class="sc-dialog" ref="scDialog"> | ||||
|         <el-dialog v-bind="$attrs" v-model="dialogVisible" :fullscreen="isFullscreen" :show-close="false" ref="dialog"> | ||||
|             <template #header> | ||||
|                 <slot name="header"> | ||||
|                     <span class="el-dialog__title">{{ title }}</span> | ||||
|                 </slot> | ||||
|                 <div class="sc-dialog__headerbtn"> | ||||
|                     <button v-if="showFullscreen" aria-label="fullscreen" type="button" @click="setFullscreen"> | ||||
|                     <button v-if="showFullscreen" @click="setFullscreen" aria-label="fullscreen" type="button"> | ||||
|                         <el-icon v-if="isFullscreen" class="el-dialog__close"> | ||||
|                             <el-icon-bottom-left /> | ||||
|                         </el-icon> | ||||
| @@ -23,7 +23,7 @@ | ||||
|                             <el-icon-full-screen /> | ||||
|                         </el-icon> | ||||
|                     </button> | ||||
|                     <button v-if="showClose" aria-label="close" type="button" @click="closeDialog"> | ||||
|                     <button v-if="showClose" @click="closeDialog" aria-label="close" type="button"> | ||||
|                         <el-icon class="el-dialog__close"> | ||||
|                             <el-icon-close /> | ||||
|                         </el-icon> | ||||
| @@ -48,19 +48,17 @@ export default { | ||||
|         showClose: { type: Boolean, default: true }, | ||||
|         showFullscreen: { type: Boolean, default: true }, | ||||
|         loading: { type: Boolean, default: false }, | ||||
|         fullScreen: { type: Boolean, default: false }, | ||||
|     }, | ||||
|     data() { | ||||
|         return { | ||||
|             dialogVisible: false, | ||||
|             isFullscreen: false, | ||||
|             isFullscreen: this.fullScreen, | ||||
|         } | ||||
|     }, | ||||
|     watch: { | ||||
|         modelValue() { | ||||
|             this.dialogVisible = this.modelValue | ||||
|             if (this.dialogVisible) { | ||||
|                 this.isFullscreen = false | ||||
|             } | ||||
|         }, | ||||
|     }, | ||||
|     mounted() { | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <div ref="scEcharts" :style="{ height: height, width: width }"></div> | ||||
|     <div :style="{ height: height, width: width }" ref="scEcharts"></div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|     <el-table ref="table" :data="columnData" border row-key="prop" style="width: 100%"> | ||||
|     <el-table :data="columnData" border ref="table" row-key="prop" style="width: 100%"> | ||||
|         <el-table-column :label="$t('排序')" prop="" width="60"> | ||||
|             <el-tag class="move" disable-transitions style="cursor: move"> | ||||
|                 <el-icon style="cursor: move"> | ||||
|   | ||||
| @@ -9,9 +9,9 @@ | ||||
|  | ||||
| <template> | ||||
|     <slot :open="open"> | ||||
|         <el-button plain type="primary" @click="open">导出</el-button> | ||||
|         <el-button @click="open" plain type="primary">导出</el-button> | ||||
|     </slot> | ||||
|     <el-drawer v-model="dialog" :size="400" append-to-body destroy-on-close direction="rtl" :title="$t('导出')"> | ||||
|     <el-drawer v-model="dialog" :size="400" :title="$t('导出')" append-to-body destroy-on-close direction="rtl"> | ||||
|         <el-main style="padding: 0 20px 20px 20px"> | ||||
|             <div v-loading="downLoading" :element-loading-text="$t('正在处理中...')"> | ||||
|                 <div | ||||
| @@ -35,14 +35,14 @@ | ||||
|                         <el-button | ||||
|                             v-if="async" | ||||
|                             :loading="asyncLoading" | ||||
|                             @click="download" | ||||
|                             icon="el-icon-plus" | ||||
|                             size="large" | ||||
|                             style="width: 100%" | ||||
|                             type="primary" | ||||
|                             @click="download" | ||||
|                             >发起导出任务 | ||||
|                         </el-button> | ||||
|                         <el-button v-else icon="el-icon-download" size="large" style="width: 100%" type="primary" @click="download">下 载</el-button> | ||||
|                         <el-button v-else @click="download" icon="el-icon-download" size="large" style="width: 100%" type="primary">下 载</el-button> | ||||
|                     </el-tab-pane> | ||||
|                     <el-tab-pane v-if="columnData.length > 0" :label="$t('列设置')" lazy> | ||||
|                         <columnSet :column="columnData"></columnSet> | ||||
|   | ||||
| @@ -9,13 +9,12 @@ | ||||
|  | ||||
| <template> | ||||
|     <slot :open="open"> | ||||
|         <el-button plain type="primary" @click="open">导入</el-button> | ||||
|         <el-button @click="open" plain type="primary">导入</el-button> | ||||
|     </slot> | ||||
|     <el-dialog v-model="dialog" :close-on-click-modal="false" :width="550" append-to-body destroy-on-close :title="$t('导入')"> | ||||
|     <el-dialog v-model="dialog" :close-on-click-modal="false" :title="$t('导入')" :width="550" append-to-body destroy-on-close> | ||||
|         <el-progress v-if="loading" :percentage="percentage" :stroke-width="20" :text-inside="true" style="margin-bottom: 1rem" /> | ||||
|         <div v-loading="loading"> | ||||
|             <el-upload | ||||
|                 ref="uploader" | ||||
|                 :accept="accept" | ||||
|                 :before-upload="before" | ||||
|                 :data="data" | ||||
| @@ -26,7 +25,8 @@ | ||||
|                 :on-progress="progress" | ||||
|                 :on-success="success" | ||||
|                 :show-file-list="false" | ||||
|                 drag> | ||||
|                 drag | ||||
|                 ref="uploader"> | ||||
|                 <slot name="uploader"> | ||||
|                     <el-icon class="el-icon--upload"> | ||||
|                         <el-icon-upload-filled /> | ||||
|   | ||||
| @@ -12,14 +12,14 @@ | ||||
|         <div v-loading="menuLoading" class="sc-file-select__side"> | ||||
|             <div class="sc-file-select__side-menu"> | ||||
|                 <el-tree | ||||
|                     ref="group" | ||||
|                     :current-node-key="menu.length > 0 ? menu[0][treeProps.key] : ''" | ||||
|                     :data="menu" | ||||
|                     :node-key="treeProps.key" | ||||
|                     :props="treeProps" | ||||
|                     @node-click="groupClick" | ||||
|                     class="menu" | ||||
|                     highlight-current | ||||
|                     @node-click="groupClick"> | ||||
|                     ref="group"> | ||||
|                     <template #default="{ node }"> | ||||
|                         <span class="el-tree-node__label"> | ||||
|                             <el-icon class="icon"><el-icon-folder /></el-icon>{{ node.label }} | ||||
| @@ -55,16 +55,16 @@ | ||||
|                 <div class="keyword"> | ||||
|                     <el-input | ||||
|                         v-model="keyword" | ||||
|                         clearable | ||||
|                         :placeholder="$t('文件名搜索')" | ||||
|                         prefix-icon="el-icon-search" | ||||
|                         @clear="search" | ||||
|                         @keyup.enter="search"></el-input> | ||||
|                         @keyup.enter="search" | ||||
|                         clearable | ||||
|                         prefix-icon="el-icon-search"></el-input> | ||||
|                 </div> | ||||
|             </div> | ||||
|             <div class="sc-file-select__list"> | ||||
|                 <el-scrollbar ref="scrollbar"> | ||||
|                     <el-empty v-if="fileList.length === 0 && data.length === 0" :image-size="80" :description="$t('无数据')"></el-empty> | ||||
|                     <el-empty v-if="fileList.length === 0 && data.length === 0" :description="$t('无数据')" :image-size="80"></el-empty> | ||||
|                     <div v-for="(file, index) in fileList" :key="index" class="sc-file-select__item"> | ||||
|                         <div class="sc-file-select__item__file"> | ||||
|                             <div class="sc-file-select__item__upload"> | ||||
| @@ -76,10 +76,10 @@ | ||||
|                     </div> | ||||
|                     <div | ||||
|                         v-for="item in data" | ||||
|                         :key="item[fileProps.key]" | ||||
|                         :class="{ active: value.includes(item[fileProps.url]) }" | ||||
|                         class="sc-file-select__item" | ||||
|                         @click="select(item)"> | ||||
|                         :key="item[fileProps.key]" | ||||
|                         @click="select(item)" | ||||
|                         class="sc-file-select__item"> | ||||
|                         <div class="sc-file-select__item__file"> | ||||
|                             <div v-if="multiple" class="sc-file-select__item__checkbox"> | ||||
|                                 <el-icon> | ||||
| @@ -110,14 +110,14 @@ | ||||
|                     v-model:currentPage="currentPage" | ||||
|                     :page-size="pageSize" | ||||
|                     :total="total" | ||||
|                     @current-change="reload" | ||||
|                     background | ||||
|                     layout="prev, pager, next" | ||||
|                     small | ||||
|                     @current-change="reload"></el-pagination> | ||||
|                     small></el-pagination> | ||||
|             </div> | ||||
|             <div class="sc-file-select__do"> | ||||
|                 <slot name="do"></slot> | ||||
|                 <el-button :disabled="value.length <= 0" type="primary" @click="submit">确 定</el-button> | ||||
|                 <el-button :disabled="value.length <= 0" @click="submit" type="primary">确 定</el-button> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
|   | ||||
| @@ -11,11 +11,11 @@ | ||||
|     <div class="sc-filterBar"> | ||||
|         <slot :filterLength="filterObjLength" :openFilter="openFilter"> | ||||
|             <el-badge :hidden="filterObjLength <= 0" :value="filterObjLength" type="danger"> | ||||
|                 <el-button icon="el-icon-filter" @click="openFilter"></el-button> | ||||
|                 <el-button @click="openFilter" icon="el-icon-filter"></el-button> | ||||
|             </el-badge> | ||||
|         </slot> | ||||
|  | ||||
|         <el-drawer v-model="drawer" :size="650" append-to-body :title="$t('过滤器')"> | ||||
|         <el-drawer v-model="drawer" :size="650" :title="$t('过滤器')" append-to-body> | ||||
|             <el-container v-loading="saveLoading"> | ||||
|                 <el-main style="padding: 0"> | ||||
|                     <el-tabs class="root"> | ||||
| @@ -44,9 +44,9 @@ | ||||
|                                                     v-model="item.field" | ||||
|                                                     :filter="filter" | ||||
|                                                     :options="fields" | ||||
|                                                     filterable | ||||
|                                                     :placeholder="$t('过滤字段')" | ||||
|                                                     @change="fieldChange(item)"> | ||||
|                                                     @change="fieldChange(item)" | ||||
|                                                     filterable> | ||||
|                                                 </py-select> | ||||
|                                             </td> | ||||
|                                             <td v-if="showOperator"> | ||||
| @@ -62,8 +62,8 @@ | ||||
|                                                 <el-input | ||||
|                                                     v-if="!item.field.type" | ||||
|                                                     v-model="item.value" | ||||
|                                                     disabled | ||||
|                                                     :placeholder="$t('请选择过滤字段')"></el-input> | ||||
|                                                     :placeholder="$t('请选择过滤字段')" | ||||
|                                                     disabled></el-input> | ||||
|                                                 <!-- 输入框 --> | ||||
|                                                 <el-input | ||||
|                                                     v-if="item.field.type === 'text'" | ||||
| @@ -82,8 +82,8 @@ | ||||
|                                                             remoteMethod(query, item) | ||||
|                                                         } | ||||
|                                                     " | ||||
|                                                     filterable | ||||
|                                                     @visible-change="visibleChange($event, item)"> | ||||
|                                                     @visible-change="visibleChange($event, item)" | ||||
|                                                     filterable> | ||||
|                                                     <el-option | ||||
|                                                         v-for="field in item.field.extend.data" | ||||
|                                                         :key="field.value" | ||||
| @@ -152,13 +152,13 @@ | ||||
|                                                     no-data-text="$t('输入关键词后按回车确认')"></el-select> | ||||
|                                             </td> | ||||
|                                             <td> | ||||
|                                                 <el-icon class="del" @click="delFilter(index)"> | ||||
|                                                 <el-icon @click="delFilter(index)" class="del"> | ||||
|                                                     <el-icon-delete /> | ||||
|                                                 </el-icon> | ||||
|                                             </td> | ||||
|                                         </tr> | ||||
|                                     </table> | ||||
|                                     <el-button icon="el-icon-plus" text type="primary" @click="addFilter">增加过滤项</el-button> | ||||
|                                     <el-button @click="addFilter" icon="el-icon-plus" text type="primary">增加过滤项</el-button> | ||||
|                                 </div> | ||||
|                             </el-scrollbar> | ||||
|                         </el-tab-pane> | ||||
| @@ -167,14 +167,14 @@ | ||||
|                                 <div class="tabs-label">常用</div> | ||||
|                             </template> | ||||
|                             <el-scrollbar> | ||||
|                                 <my ref="my" :data="myFilter" :filterName="filterName" @selectMyfilter="selectMyfilter"></my> | ||||
|                                 <my :data="myFilter" :filterName="filterName" @selectMyfilter="selectMyfilter" ref="my"></my> | ||||
|                             </el-scrollbar> | ||||
|                         </el-tab-pane> | ||||
|                     </el-tabs> | ||||
|                 </el-main> | ||||
|                 <el-footer> | ||||
|                     <el-button :disabled="filter.length <= 0" type="primary" @click="ok">立即过滤</el-button> | ||||
|                     <el-button :disabled="filter.length <= 0" plain type="primary" @click="saveMy">另存为常用</el-button> | ||||
|                     <el-button :disabled="filter.length <= 0" @click="ok" type="primary">立即过滤</el-button> | ||||
|                     <el-button :disabled="filter.length <= 0" @click="saveMy" plain type="primary">另存为常用</el-button> | ||||
|                     <el-button @click="clear">清空过滤</el-button> | ||||
|                 </el-footer> | ||||
|             </el-container> | ||||
|   | ||||
| @@ -25,7 +25,7 @@ | ||||
|                     <label>{{ item.title }}</label> | ||||
|                     <el-popconfirm :title="$t('确认删除此常用过滤吗?')" @confirm="closeMyfilter(item, index)"> | ||||
|                         <template #reference> | ||||
|                             <el-icon class="del" @click.stop="() => {}"> | ||||
|                             <el-icon @click.stop="() => {}" class="del"> | ||||
|                                 <el-icon-delete /> | ||||
|                             </el-icon> | ||||
|                         </template> | ||||
|   | ||||
| @@ -8,11 +8,11 @@ | ||||
| --> | ||||
|  | ||||
| <template> | ||||
|     <el-select :filter-method="filterMethod" v-bind="$attrs" @visible-change="visibleChange"> | ||||
|     <el-select v-bind="$attrs" :filter-method="filterMethod" @visible-change="visibleChange"> | ||||
|         <el-option | ||||
|             v-for="field in optionsList" | ||||
|             :key="field.value" | ||||
|             :disabled="isDisabled(field.value)" | ||||
|             :key="field.value" | ||||
|             :label="field.label" | ||||
|             :value="field"></el-option> | ||||
|     </el-select> | ||||
|   | ||||
| @@ -12,12 +12,12 @@ | ||||
|  | ||||
|     <el-form | ||||
|         v-else | ||||
|         ref="form" | ||||
|         v-loading="loading" | ||||
|         :label-position="config.labelPosition" | ||||
|         :label-width="config.labelWidth" | ||||
|         :model="form" | ||||
|         element-loading-text="Loading..."> | ||||
|         element-loading-text="Loading..." | ||||
|         ref="form"> | ||||
|         <el-row :gutter="15"> | ||||
|             <template v-for="(item, index) in config.formItems" :key="index"> | ||||
|                 <el-col v-if="!hideHandle(item)" :span="item.span || 24"> | ||||
| @@ -45,15 +45,15 @@ | ||||
|                             <template v-if="item.name"> | ||||
|                                 <el-checkbox | ||||
|                                     v-for="(_item, _index) in item.options.items" | ||||
|                                     :key="_index" | ||||
|                                     v-model="form[item.name][_item.name]" | ||||
|                                     :key="_index" | ||||
|                                     :label="_item.label"></el-checkbox> | ||||
|                             </template> | ||||
|                             <template v-else> | ||||
|                                 <el-checkbox | ||||
|                                     v-for="(_item, _index) in item.options.items" | ||||
|                                     :key="_index" | ||||
|                                     v-model="form[_item.name]" | ||||
|                                     :key="_index" | ||||
|                                     :label="_item.label"></el-checkbox> | ||||
|                             </template> | ||||
|                         </template> | ||||
| @@ -148,7 +148,7 @@ | ||||
|             <el-col :span="24"> | ||||
|                 <el-form-item> | ||||
|                     <slot> | ||||
|                         <el-button type="primary" @click="submit">提交</el-button> | ||||
|                         <el-button @click="submit" type="primary">提交</el-button> | ||||
|                     </slot> | ||||
|                 </el-form-item> | ||||
|             </el-col> | ||||
|   | ||||
| @@ -8,23 +8,23 @@ | ||||
| --> | ||||
|  | ||||
| <template> | ||||
|     <div ref="scFormTable" class="sc-form-table"> | ||||
|         <el-table ref="table" :data="data" border stripe> | ||||
|     <div class="sc-form-table" ref="scFormTable"> | ||||
|         <el-table :data="data" border ref="table" stripe> | ||||
|             <el-table-column fixed="left" type="index" width="50"> | ||||
|                 <template #header> | ||||
|                     <el-button v-if="!hideAdd" circle icon="el-icon-plus" size="small" type="primary" @click="rowAdd"></el-button> | ||||
|                     <el-button v-if="!hideAdd" @click="rowAdd" circle icon="el-icon-plus" size="small" type="primary"></el-button> | ||||
|                 </template> | ||||
|                 <template #default="scope"> | ||||
|                     <div :class="['sc-form-table-handle', { 'sc-form-table-handle-delete': !hideDelete }]"> | ||||
|                         <span>{{ scope.$index + 1 }}</span> | ||||
|                         <el-button | ||||
|                             v-if="!hideDelete" | ||||
|                             @click="rowDel(scope.row, scope.$index)" | ||||
|                             circle | ||||
|                             icon="el-icon-delete" | ||||
|                             plain | ||||
|                             size="small" | ||||
|                             type="danger" | ||||
|                             @click="rowDel(scope.row, scope.$index)"></el-button> | ||||
|                             type="danger"></el-button> | ||||
|                     </div> | ||||
|                 </template> | ||||
|             </el-table-column> | ||||
|   | ||||
| @@ -9,18 +9,18 @@ | ||||
|  | ||||
| <template> | ||||
|     <div class="sc-icon-select"> | ||||
|         <div :class="{ hasValue: value }" class="sc-icon-select__wrapper" @click="open"> | ||||
|         <div :class="{ hasValue: value }" @click="open" class="sc-icon-select__wrapper"> | ||||
|             <el-input v-model="value" :disabled="disabled" :prefix-icon="value || 'el-icon-plus'" readonly></el-input> | ||||
|         </div> | ||||
|         <el-dialog v-model="dialogVisible" :width="760" append-to-body destroy-on-close :title="$t('图标选择器')"> | ||||
|         <el-dialog v-model="dialogVisible" :title="$t('图标选择器')" :width="760" append-to-body destroy-on-close> | ||||
|             <div class="sc-icon-select__dialog" style="margin: -20px 0 -10px 0"> | ||||
|                 <el-form :rules="{}"> | ||||
|                     <el-form-item prop="searchText"> | ||||
|                         <el-input | ||||
|                             v-model="searchText" | ||||
|                             :placeholder="$t('搜索')" | ||||
|                             class="sc-icon-select__search-input" | ||||
|                             clearable | ||||
|                             :placeholder="$t('搜索')" | ||||
|                             prefix-icon="el-icon-search" | ||||
|                             size="large" /> | ||||
|                     </el-form-item> | ||||
| @@ -34,7 +34,7 @@ | ||||
|                         <div class="sc-icon-select__list"> | ||||
|                             <el-scrollbar> | ||||
|                                 <ul @click="selectIcon"> | ||||
|                                     <el-empty v-if="item.icons.length === 0" :image-size="100" :description="$t('未查询到相关图标')" /> | ||||
|                                     <el-empty v-if="item.icons.length === 0" :description="$t('未查询到相关图标')" :image-size="100" /> | ||||
|                                     <li v-for="icon in item.icons" :key="icon"> | ||||
|                                         <span :data-icon="icon"></span> | ||||
|                                         <el-icon> | ||||
| @@ -48,7 +48,7 @@ | ||||
|                 </el-tabs> | ||||
|             </div> | ||||
|             <template #footer> | ||||
|                 <el-button text @click="clear">清除</el-button> | ||||
|                 <el-button @click="clear" text>清除</el-button> | ||||
|                 <el-button @click="dialogVisible = false">取消</el-button> | ||||
|             </template> | ||||
|         </el-dialog> | ||||
|   | ||||
| @@ -14,7 +14,7 @@ | ||||
|                 <el-icon-loading /> | ||||
|             </el-icon> | ||||
|         </div> | ||||
|         <el-select :loading="loading" v-bind="$attrs" @visible-change="visibleChange"> | ||||
|         <el-select v-bind="$attrs" :loading="loading" @visible-change="visibleChange"> | ||||
|             <el-option v-for="item in options" :key="item[props.value]" :label="item[props.label]" :value="objValueType ? item : item[props.value]"> | ||||
|                 <slot :data="item" name="option"></slot> | ||||
|             </el-option> | ||||
|   | ||||
| @@ -18,8 +18,8 @@ | ||||
|                 <ul> | ||||
|                     <li | ||||
|                         v-for="option in item.options" | ||||
|                         :key="option.value" | ||||
|                         :class="{ active: selected[item.key] && selected[item.key].includes(option.value) }" | ||||
|                         :key="option.value" | ||||
|                         @click="select(option, item)"> | ||||
|                         <el-icon v-if="option.icon"> | ||||
|                             <component :is="option.icon" /> | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
|             <span class="sortable_b">排序</span> | ||||
|             <span class="fixed_b">固定</span> | ||||
|         </div> | ||||
|         <div ref="list" class="setting-column__list"> | ||||
|         <div class="setting-column__list" ref="list"> | ||||
|             <ul> | ||||
|                 <li v-for="item in usercolumn" :key="item.prop"> | ||||
|                     <span class="move_b"> | ||||
| @@ -32,10 +32,10 @@ | ||||
|         </div> | ||||
|         <div class="setting-column__bottom"> | ||||
|             <el-button :disabled="isSave" @click="backDefaul">重置</el-button> | ||||
|             <el-button type="primary" @click="save">保存</el-button> | ||||
|             <el-button @click="save" type="primary">保存</el-button> | ||||
|         </div> | ||||
|     </div> | ||||
|     <el-empty v-else :image-size="80" :description="$t('暂无可配置的列')"></el-empty> | ||||
|     <el-empty v-else :description="$t('暂无可配置的列')" :image-size="80"></el-empty> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   | ||||
| @@ -7,24 +7,24 @@ | ||||
|  * @LastEditTime: 2023年3月2日10:43:35 | ||||
| --> | ||||
| <template> | ||||
|     <div ref="scTableMain" v-loading="loading" :style="{ height: _height }" class="scTable"> | ||||
|     <div v-loading="loading" :style="{ height: _height }" class="scTable" ref="scTableMain"> | ||||
|         <div :style="{ height: _table_height }" class="scTable-table"> | ||||
|             <el-table | ||||
|                 :key="toggleIndex" | ||||
|                 ref="scTable" | ||||
|                 v-bind="$attrs" | ||||
|                 :border="config.border" | ||||
|                 :data="tableData" | ||||
|                 :default-expand-all="config.defaultExpandAll" | ||||
|                 :default-sort="defaultSort" | ||||
|                 :height="height === 'auto' ? null : '100%'" | ||||
|                 :key="toggleIndex" | ||||
|                 :row-key="rowKey" | ||||
|                 :size="config.size" | ||||
|                 :stripe="config.stripe" | ||||
|                 :summary-method="remoteSummary ? remoteSummaryMethod : summaryMethod" | ||||
|                 v-bind="$attrs" | ||||
|                 @sort-change="sortChange" | ||||
|                 @cell-click="cellClickMethod" | ||||
|                 @filter-change="filterChange" | ||||
|                 @cell-click="cellClickMethod"> | ||||
|                 @sort-change="sortChange" | ||||
|                 ref="scTable"> | ||||
|                 <slot></slot> | ||||
|                 <template v-for="(item, index) in userColumn" :key="index"> | ||||
|                     <el-table-column | ||||
| @@ -39,7 +39,7 @@ | ||||
|                         :sortable="item.sortable" | ||||
|                         :width="item.width"> | ||||
|                         <template #default="scope"> | ||||
|                             <slot :name="item.prop" v-bind="scope"> | ||||
|                             <slot v-bind="scope" :name="item.prop"> | ||||
|                                 {{ scope.row[item.prop] }} | ||||
|                             </slot> | ||||
|                         </template> | ||||
| @@ -61,39 +61,39 @@ | ||||
|                     :page-sizes="pageSizes" | ||||
|                     :small="true" | ||||
|                     :total="total" | ||||
|                     background | ||||
|                     @current-change="paginationChange" | ||||
|                     @update:page-size="pageSizeChange"></el-pagination> | ||||
|                     @update:page-size="pageSizeChange" | ||||
|                     background></el-pagination> | ||||
|             </div> | ||||
|             <div v-if="!hideDo" class="scTable-do"> | ||||
|                 <el-button v-if="!hideRefresh" circle icon="el-icon-refresh" style="margin-left: 1rem" @click="refresh"></el-button> | ||||
|                 <el-button v-if="!hideRefresh" @click="refresh" circle icon="el-icon-refresh" style="margin-left: 1rem"></el-button> | ||||
|                 <el-popover | ||||
|                     v-if="column" | ||||
|                     :hide-after="0" | ||||
|                     :width="500" | ||||
|                     placement="top" | ||||
|                     :title="$t('列设置')" | ||||
|                     trigger="click" | ||||
|                     :width="500" | ||||
|                     @after-leave="customColumnShow = false" | ||||
|                     @show="customColumnShow = true" | ||||
|                     @after-leave="customColumnShow = false"> | ||||
|                     placement="top" | ||||
|                     trigger="click"> | ||||
|                     <template #reference> | ||||
|                         <el-button circle icon="el-icon-set-up" style="margin-left: 1rem"></el-button> | ||||
|                     </template> | ||||
|                     <columnSetting | ||||
|                         v-if="customColumnShow" | ||||
|                         ref="columnSetting" | ||||
|                         :column="userColumn" | ||||
|                         @back="columnSettingBack" | ||||
|                         @save="columnSettingSave" | ||||
|                         @userChange="columnSettingChange"></columnSetting> | ||||
|                         @userChange="columnSettingChange" | ||||
|                         ref="columnSetting"></columnSetting> | ||||
|                 </el-popover> | ||||
|                 <el-popover v-if="!hideSetting" :hide-after="0" :width="400" placement="top" :title="$t('表格设置')" trigger="click"> | ||||
|                 <el-popover v-if="!hideSetting" :hide-after="0" :title="$t('表格设置')" :width="400" placement="top" trigger="click"> | ||||
|                     <template #reference> | ||||
|                         <el-button circle icon="el-icon-setting" style="margin-left: 1rem"></el-button> | ||||
|                     </template> | ||||
|                     <el-form label-position="left" label-width="80px"> | ||||
|                         <el-form-item :label="$t('表格尺寸')"> | ||||
|                             <el-radio-group v-model="config.size" size="small" @change="configSizeChange"> | ||||
|                             <el-radio-group v-model="config.size" @change="configSizeChange" size="small"> | ||||
|                                 <el-radio-button label="large">大</el-radio-button> | ||||
|                                 <el-radio-button label="default">正常</el-radio-button> | ||||
|                                 <el-radio-button label="small">小</el-radio-button> | ||||
|   | ||||
| @@ -9,7 +9,6 @@ | ||||
|  | ||||
| <template> | ||||
|     <el-select | ||||
|         ref="select" | ||||
|         v-model="defaultValue" | ||||
|         :clearable="clearable" | ||||
|         :collapse-tags="collapseTags" | ||||
| @@ -22,20 +21,21 @@ | ||||
|         :size="size" | ||||
|         @clear="clear" | ||||
|         @remove-tag="removeTag" | ||||
|         @visible-change="visibleChange"> | ||||
|         @visible-change="visibleChange" | ||||
|         ref="select"> | ||||
|         <template #empty> | ||||
|             <div v-loading="loading" :style="{ width: tableWidth + 'px' }" class="sc-table-select__table"> | ||||
|                 <div class="sc-table-select__header"> | ||||
|                     <slot :form="formData" :submit="formSubmit" name="header"></slot> | ||||
|                 </div> | ||||
|                 <el-table | ||||
|                     ref="table" | ||||
|                     :data="tableData" | ||||
|                     :height="245" | ||||
|                     :highlight-current-row="!multiple" | ||||
|                     @select="select" | ||||
|                     @row-click="click" | ||||
|                     @select-all="selectAll"> | ||||
|                     @select="select" | ||||
|                     @select-all="selectAll" | ||||
|                     max-height="30rem" | ||||
|                     ref="table"> | ||||
|                     <el-table-column v-if="multiple" type="selection" width="45"></el-table-column> | ||||
|                     <el-table-column v-else type="index" width="45"> | ||||
|                         <template #default="scope" | ||||
| @@ -49,10 +49,10 @@ | ||||
|                         v-model:currentPage="currentPage" | ||||
|                         :page-size="pageSize" | ||||
|                         :total="total" | ||||
|                         @current-change="reload" | ||||
|                         background | ||||
|                         layout="prev, pager, next" | ||||
|                         small | ||||
|                         @current-change="reload"></el-pagination> | ||||
|                         small></el-pagination> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </template> | ||||
| @@ -182,7 +182,7 @@ export default { | ||||
|                         item.currentLabel = item.value[this.defaultProps.label] | ||||
|                     }) | ||||
|                 } else { | ||||
|                     this.$refs.select.selectedLabel = this.defaultValue[this.defaultProps.label] | ||||
|                     this.$refs.select.states.selectedLabel = this.defaultValue[this.defaultProps.label] | ||||
|                 } | ||||
|             }) | ||||
|         }, | ||||
|   | ||||
| @@ -13,14 +13,13 @@ | ||||
|                 </template> | ||||
|             </el-image> | ||||
|             <div v-if="!disabled" class="sc-upload__img-actions"> | ||||
|                 <span class="del" @click="handleRemove()" | ||||
|                 <span @click="handleRemove()" class="del" | ||||
|                     ><el-icon><el-icon-delete /></el-icon | ||||
|                 ></span> | ||||
|             </div> | ||||
|         </div> | ||||
|         <el-upload | ||||
|             v-if="!file" | ||||
|             ref="uploader" | ||||
|             :accept="accept" | ||||
|             :action="action" | ||||
|             :auto-upload="cropper ? false : autoUpload" | ||||
| @@ -35,7 +34,8 @@ | ||||
|             :on-exceed="handleExceed" | ||||
|             :on-success="success" | ||||
|             :show-file-list="showFileList" | ||||
|             class="uploader"> | ||||
|             class="uploader" | ||||
|             ref="uploader"> | ||||
|             <slot> | ||||
|                 <div class="el-upload--picture-card"> | ||||
|                     <div class="file-empty"> | ||||
| @@ -48,11 +48,11 @@ | ||||
|             </slot> | ||||
|         </el-upload> | ||||
|         <span style="display: none !important"><el-input v-model="value"></el-input></span> | ||||
|         <el-dialog v-model="cropperDialogVisible" :width="580" destroy-on-close draggable :title="$t('剪裁')" @closed="cropperClosed"> | ||||
|             <sc-cropper ref="cropper" :aspectRatio="aspectRatio" :compress="compress" :src="cropperFile.tempCropperFile"></sc-cropper> | ||||
|         <el-dialog v-model="cropperDialogVisible" :title="$t('剪裁')" :width="580" @closed="cropperClosed" destroy-on-close draggable> | ||||
|             <sc-cropper :aspectRatio="aspectRatio" :compress="compress" :src="cropperFile.tempCropperFile" ref="cropper"></sc-cropper> | ||||
|             <template #footer> | ||||
|                 <el-button @click="cropperDialogVisible = false">取 消</el-button> | ||||
|                 <el-button type="primary" @click="cropperSave">确 定</el-button> | ||||
|                 <el-button @click="cropperSave" type="primary">确 定</el-button> | ||||
|             </template> | ||||
|         </el-dialog> | ||||
|     </div> | ||||
|   | ||||
| @@ -1,7 +1,6 @@ | ||||
| <template> | ||||
|     <div class="sc-upload-multiple"> | ||||
|         <el-upload | ||||
|             ref="uploader" | ||||
|             v-model:file-list="defaultFileList" | ||||
|             :accept="accept" | ||||
|             :action="action" | ||||
| @@ -18,7 +17,8 @@ | ||||
|             :on-preview="handlePreview" | ||||
|             :on-success="success" | ||||
|             :show-file-list="showFileList" | ||||
|             list-type="picture-card"> | ||||
|             list-type="picture-card" | ||||
|             ref="uploader"> | ||||
|             <slot> | ||||
|                 <el-icon> | ||||
|                     <el-icon-plus /> | ||||
| @@ -43,7 +43,7 @@ | ||||
|                         </template> | ||||
|                     </el-image> | ||||
|                     <div v-if="!disabled && file.status === 'success'" class="sc-upload__item-actions"> | ||||
|                         <span class="del" @click="handleRemove(file)" | ||||
|                         <span @click="handleRemove(file)" class="del" | ||||
|                             ><el-icon><el-icon-delete /></el-icon | ||||
|                         ></span> | ||||
|                     </div> | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| --> | ||||
|  | ||||
| <template> | ||||
|     <div ref="scVideo" class="sc-video"></div> | ||||
|     <div class="sc-video" ref="scVideo"></div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| --> | ||||
|  | ||||
| <template> | ||||
|     <div ref="scWaterMark" class="sc-water-mark"> | ||||
|     <div class="sc-water-mark" ref="scWaterMark"> | ||||
|         <slot></slot> | ||||
|     </div> | ||||
| </template> | ||||
|   | ||||
| @@ -16,7 +16,7 @@ | ||||
|                 <div class="end-node-text">流程结束</div> | ||||
|             </div> | ||||
|         </div> | ||||
|         <use-select v-if="selectVisible" ref="useselect" @closed="selectVisible = false"></use-select> | ||||
|         <use-select v-if="selectVisible" @closed="selectVisible = false" ref="useselect"></use-select> | ||||
|     </div> | ||||
| </template> | ||||
|  | ||||
|   | ||||
| @@ -8,19 +8,19 @@ | ||||
|                 <div class="add-node-popover-body"> | ||||
|                     <ul> | ||||
|                         <li> | ||||
|                             <el-icon style="color: #ff943e" @click="addType(1)"> | ||||
|                             <el-icon @click="addType(1)" style="color: #ff943e"> | ||||
|                                 <el-icon-user-filled /> | ||||
|                             </el-icon> | ||||
|                             <p>审批节点</p> | ||||
|                         </li> | ||||
|                         <li> | ||||
|                             <el-icon style="color: #3296fa" @click="addType(2)"> | ||||
|                             <el-icon @click="addType(2)" style="color: #3296fa"> | ||||
|                                 <el-icon-promotion /> | ||||
|                             </el-icon> | ||||
|                             <p>抄送节点</p> | ||||
|                         </li> | ||||
|                         <li> | ||||
|                             <el-icon style="color: #15bc83" @click="addType(4)"> | ||||
|                             <el-icon @click="addType(4)" style="color: #15bc83"> | ||||
|                                 <el-icon-share /> | ||||
|                             </el-icon> | ||||
|                             <p>条件分支</p> | ||||
|   | ||||
| @@ -1,12 +1,12 @@ | ||||
| <template> | ||||
|     <div class="node-wrap"> | ||||
|         <div class="node-wrap-box" @click="show"> | ||||
|         <div @click="show" class="node-wrap-box"> | ||||
|             <div class="title" style="background: #ff943e"> | ||||
|                 <el-icon class="icon"> | ||||
|                     <el-icon-user-filled /> | ||||
|                 </el-icon> | ||||
|                 <span>{{ nodeConfig.nodeName }}</span> | ||||
|                 <el-icon class="close" @click.stop="delNode()"> | ||||
|                 <el-icon @click.stop="delNode()" class="close"> | ||||
|                     <el-icon-close /> | ||||
|                 </el-icon> | ||||
|             </div> | ||||
| @@ -16,7 +16,7 @@ | ||||
|             </div> | ||||
|         </div> | ||||
|         <add-node v-model="nodeConfig.childNode"></add-node> | ||||
|         <el-drawer v-model="drawer" :size="500" append-to-body destroy-on-close :title="$t('审批人设置')"> | ||||
|         <el-drawer v-model="drawer" :size="500" :title="$t('审批人设置')" append-to-body destroy-on-close> | ||||
|             <template #header> | ||||
|                 <div class="node-wrap-drawer__title"> | ||||
|                     <label v-if="!isEditTitle" @click="editTitle" | ||||
| @@ -27,11 +27,11 @@ | ||||
|                     </label> | ||||
|                     <el-input | ||||
|                         v-if="isEditTitle" | ||||
|                         ref="nodeTitle" | ||||
|                         v-model="form.nodeName" | ||||
|                         clearable | ||||
|                         @blur="saveTitle" | ||||
|                         @keyup.enter="saveTitle"></el-input> | ||||
|                         @keyup.enter="saveTitle" | ||||
|                         clearable | ||||
|                         ref="nodeTitle"></el-input> | ||||
|                 </div> | ||||
|             </template> | ||||
|             <el-container> | ||||
| @@ -39,19 +39,19 @@ | ||||
|                     <el-form label-position="top"> | ||||
|                         <el-form-item :label="$t('审批人员类型')"> | ||||
|                             <el-select v-model="form.setType"> | ||||
|                                 <el-option :value="1" :label="$t('指定成员')"></el-option> | ||||
|                                 <el-option :value="2" :label="$t('主管')"></el-option> | ||||
|                                 <el-option :value="3" :label="$t('角色')"></el-option> | ||||
|                                 <el-option :value="4" :label="$t('发起人自选')"></el-option> | ||||
|                                 <el-option :value="5" :label="$t('发起人自己')"></el-option> | ||||
|                                 <el-option :value="7" :label="$t('连续多级主管')"></el-option> | ||||
|                                 <el-option :label="$t('指定成员')" :value="1"></el-option> | ||||
|                                 <el-option :label="$t('主管')" :value="2"></el-option> | ||||
|                                 <el-option :label="$t('角色')" :value="3"></el-option> | ||||
|                                 <el-option :label="$t('发起人自选')" :value="4"></el-option> | ||||
|                                 <el-option :label="$t('发起人自己')" :value="5"></el-option> | ||||
|                                 <el-option :label="$t('连续多级主管')" :value="7"></el-option> | ||||
|                             </el-select> | ||||
|                         </el-form-item> | ||||
|  | ||||
|                         <el-form-item v-if="form.setType === 1" :label="$t('选择成员')"> | ||||
|                             <el-button icon="el-icon-plus" round type="primary" @click="selectHandle(1, form.nodeUserList)">选择人员</el-button> | ||||
|                             <el-button @click="selectHandle(1, form.nodeUserList)" icon="el-icon-plus" round type="primary">选择人员</el-button> | ||||
|                             <div class="tags-list"> | ||||
|                                 <el-tag v-for="(user, index) in form.nodeUserList" :key="user.id" closable @close="delUser(index)" | ||||
|                                 <el-tag v-for="(user, index) in form.nodeUserList" :key="user.id" @close="delUser(index)" closable | ||||
|                                     >{{ user.name }} | ||||
|                                 </el-tag> | ||||
|                             </div> | ||||
| @@ -64,9 +64,9 @@ | ||||
|                         </el-form-item> | ||||
|  | ||||
|                         <el-form-item v-if="form.setType === 3" :label="$t('选择角色')"> | ||||
|                             <el-button icon="el-icon-plus" round type="primary" @click="selectHandle(2, form.nodeRoleList)">选择角色</el-button> | ||||
|                             <el-button @click="selectHandle(2, form.nodeRoleList)" icon="el-icon-plus" round type="primary">选择角色</el-button> | ||||
|                             <div class="tags-list"> | ||||
|                                 <el-tag v-for="(role, index) in form.nodeRoleList" :key="role.id" closable type="info" @close="delRole(index)" | ||||
|                                 <el-tag v-for="(role, index) in form.nodeRoleList" :key="role.id" @close="delRole(index)" closable type="info" | ||||
|                                     >{{ role.name }} | ||||
|                                 </el-tag> | ||||
|                             </div> | ||||
| @@ -124,7 +124,7 @@ | ||||
|                     </el-form> | ||||
|                 </el-main> | ||||
|                 <el-footer> | ||||
|                     <el-button type="primary" @click="save">保存</el-button> | ||||
|                     <el-button @click="save" type="primary">保存</el-button> | ||||
|                     <el-button @click="drawer = false">取消</el-button> | ||||
|                 </el-footer> | ||||
|             </el-container> | ||||
|   | ||||
| @@ -2,12 +2,12 @@ | ||||
|     <div class="branch-wrap"> | ||||
|         <div class="branch-box-wrap"> | ||||
|             <div class="branch-box"> | ||||
|                 <el-button class="add-branch" plain round type="success" @click="addTerm">添加条件</el-button> | ||||
|                 <el-button @click="addTerm" class="add-branch" plain round type="success">添加条件</el-button> | ||||
|                 <div v-for="(item, index) in nodeConfig.conditionNodes" :key="index" class="col-box"> | ||||
|                     <div class="condition-node"> | ||||
|                         <div class="condition-node-box"> | ||||
|                             <div class="auto-judge" @click="show(index)"> | ||||
|                                 <div v-if="index !== 0" class="sort-left" @click.stop="arrTransfer(index, -1)"> | ||||
|                             <div @click="show(index)" class="auto-judge"> | ||||
|                                 <div v-if="index !== 0" @click.stop="arrTransfer(index, -1)" class="sort-left"> | ||||
|                                     <el-icon> | ||||
|                                         <el-icon-arrow-left /> | ||||
|                                     </el-icon> | ||||
| @@ -15,7 +15,7 @@ | ||||
|                                 <div class="title"> | ||||
|                                     <span class="node-title">{{ item.nodeName }}</span> | ||||
|                                     <span class="priority-title">优先级{{ item.priorityLevel }}</span> | ||||
|                                     <el-icon class="close" @click.stop="delTerm(index)"> | ||||
|                                     <el-icon @click.stop="delTerm(index)" class="close"> | ||||
|                                         <el-icon-close /> | ||||
|                                     </el-icon> | ||||
|                                 </div> | ||||
| @@ -23,7 +23,7 @@ | ||||
|                                     <span v-if="toText(nodeConfig, index)">{{ toText(nodeConfig, index) }}</span> | ||||
|                                     <span v-else class="placeholder">请设置条件</span> | ||||
|                                 </div> | ||||
|                                 <div v-if="index != nodeConfig.conditionNodes.length - 1" class="sort-right" @click.stop="arrTransfer(index)"> | ||||
|                                 <div v-if="index != nodeConfig.conditionNodes.length - 1" @click.stop="arrTransfer(index)" class="sort-right"> | ||||
|                                     <el-icon> | ||||
|                                         <el-icon-arrow-right /> | ||||
|                                     </el-icon> | ||||
| @@ -41,7 +41,7 @@ | ||||
|             </div> | ||||
|             <add-node v-model="nodeConfig.childNode"></add-node> | ||||
|         </div> | ||||
|         <el-drawer v-model="drawer" :size="600" append-to-body destroy-on-close :title="$t('条件设置')"> | ||||
|         <el-drawer v-model="drawer" :size="600" :title="$t('条件设置')" append-to-body destroy-on-close> | ||||
|             <template #header> | ||||
|                 <div class="node-wrap-drawer__title"> | ||||
|                     <label v-if="!isEditTitle" @click="editTitle" | ||||
| @@ -52,11 +52,11 @@ | ||||
|                     </label> | ||||
|                     <el-input | ||||
|                         v-if="isEditTitle" | ||||
|                         ref="nodeTitle" | ||||
|                         v-model="form.nodeName" | ||||
|                         clearable | ||||
|                         @blur="saveTitle" | ||||
|                         @keyup.enter="saveTitle"></el-input> | ||||
|                         @keyup.enter="saveTitle" | ||||
|                         clearable | ||||
|                         ref="nodeTitle"></el-input> | ||||
|                 </div> | ||||
|             </template> | ||||
|             <el-container> | ||||
| @@ -102,18 +102,18 @@ | ||||
|                                 </el-table-column> | ||||
|                                 <el-table-column :label="$t('移除')" prop="value" width="55"> | ||||
|                                     <template #default="scope"> | ||||
|                                         <el-link :underline="false" type="danger" @click="deleteConditionList(scope.$index)">移除</el-link> | ||||
|                                         <el-link :underline="false" @click="deleteConditionList(scope.$index)" type="danger">移除</el-link> | ||||
|                                     </template> | ||||
|                                 </el-table-column> | ||||
|                             </el-table> | ||||
|                         </el-form-item> | ||||
|                         <p> | ||||
|                             <el-button icon="el-icon-plus" round type="primary" @click="addConditionList">增加条件</el-button> | ||||
|                             <el-button @click="addConditionList" icon="el-icon-plus" round type="primary">增加条件</el-button> | ||||
|                         </p> | ||||
|                     </el-form> | ||||
|                 </el-main> | ||||
|                 <el-footer> | ||||
|                     <el-button type="primary" @click="save">保存</el-button> | ||||
|                     <el-button @click="save" type="primary">保存</el-button> | ||||
|                     <el-button @click="drawer = false">取消</el-button> | ||||
|                 </el-footer> | ||||
|             </el-container> | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <template> | ||||
|     <div class="node-wrap"> | ||||
|         <div class="node-wrap-box start-node" @click="show"> | ||||
|         <div @click="show" class="node-wrap-box start-node"> | ||||
|             <div class="title" style="background: #576a95"> | ||||
|                 <el-icon class="icon"> | ||||
|                     <el-icon-user-filled /> | ||||
| @@ -12,7 +12,7 @@ | ||||
|             </div> | ||||
|         </div> | ||||
|         <add-node v-model="nodeConfig.childNode"></add-node> | ||||
|         <el-drawer v-model="drawer" :size="500" append-to-body destroy-on-close :title="$t('发起人')"> | ||||
|         <el-drawer v-model="drawer" :size="500" :title="$t('发起人')" append-to-body destroy-on-close> | ||||
|             <template #header> | ||||
|                 <div class="node-wrap-drawer__title"> | ||||
|                     <label v-if="!isEditTitle" @click="editTitle" | ||||
| @@ -23,20 +23,20 @@ | ||||
|                     </label> | ||||
|                     <el-input | ||||
|                         v-if="isEditTitle" | ||||
|                         ref="nodeTitle" | ||||
|                         v-model="form.nodeName" | ||||
|                         clearable | ||||
|                         @blur="saveTitle" | ||||
|                         @keyup.enter="saveTitle"></el-input> | ||||
|                         @keyup.enter="saveTitle" | ||||
|                         clearable | ||||
|                         ref="nodeTitle"></el-input> | ||||
|                 </div> | ||||
|             </template> | ||||
|             <el-container> | ||||
|                 <el-main style="padding: 0 20px 20px 20px"> | ||||
|                     <el-form label-position="top"> | ||||
|                         <el-form-item :label="$t('谁可以发起此审批')"> | ||||
|                             <el-button icon="el-icon-plus" round type="primary" @click="selectHandle(2, form.nodeRoleList)">选择角色</el-button> | ||||
|                             <el-button @click="selectHandle(2, form.nodeRoleList)" icon="el-icon-plus" round type="primary">选择角色</el-button> | ||||
|                             <div class="tags-list"> | ||||
|                                 <el-tag v-for="(role, index) in form.nodeRoleList" :key="role.id" closable type="info" @close="delRole(index)" | ||||
|                                 <el-tag v-for="(role, index) in form.nodeRoleList" :key="role.id" @close="delRole(index)" closable type="info" | ||||
|                                     >{{ role.name }} | ||||
|                                 </el-tag> | ||||
|                             </div> | ||||
| @@ -49,7 +49,7 @@ | ||||
|                     </el-form> | ||||
|                 </el-main> | ||||
|                 <el-footer> | ||||
|                     <el-button type="primary" @click="save">保存</el-button> | ||||
|                     <el-button @click="save" type="primary">保存</el-button> | ||||
|                     <el-button @click="drawer = false">取消</el-button> | ||||
|                 </el-footer> | ||||
|             </el-container> | ||||
|   | ||||
| @@ -1,12 +1,12 @@ | ||||
| <template> | ||||
|     <div class="node-wrap"> | ||||
|         <div class="node-wrap-box" @click="show"> | ||||
|         <div @click="show" class="node-wrap-box"> | ||||
|             <div class="title" style="background: #3296fa"> | ||||
|                 <el-icon class="icon"> | ||||
|                     <el-icon-promotion /> | ||||
|                 </el-icon> | ||||
|                 <span>{{ nodeConfig.nodeName }}</span> | ||||
|                 <el-icon class="close" @click.stop="delNode()"> | ||||
|                 <el-icon @click.stop="delNode()" class="close"> | ||||
|                     <el-icon-close /> | ||||
|                 </el-icon> | ||||
|             </div> | ||||
| @@ -16,7 +16,7 @@ | ||||
|             </div> | ||||
|         </div> | ||||
|         <add-node v-model="nodeConfig.childNode"></add-node> | ||||
|         <el-drawer v-model="drawer" :size="500" append-to-body destroy-on-close :title="$t('抄送人设置')"> | ||||
|         <el-drawer v-model="drawer" :size="500" :title="$t('抄送人设置')" append-to-body destroy-on-close> | ||||
|             <template #header> | ||||
|                 <div class="node-wrap-drawer__title"> | ||||
|                     <label v-if="!isEditTitle" @click="editTitle" | ||||
| @@ -27,20 +27,20 @@ | ||||
|                     </label> | ||||
|                     <el-input | ||||
|                         v-if="isEditTitle" | ||||
|                         ref="nodeTitle" | ||||
|                         v-model="form.nodeName" | ||||
|                         clearable | ||||
|                         @blur="saveTitle" | ||||
|                         @keyup.enter="saveTitle"></el-input> | ||||
|                         @keyup.enter="saveTitle" | ||||
|                         clearable | ||||
|                         ref="nodeTitle"></el-input> | ||||
|                 </div> | ||||
|             </template> | ||||
|             <el-container> | ||||
|                 <el-main style="padding: 0 20px 20px 20px"> | ||||
|                     <el-form label-position="top"> | ||||
|                         <el-form-item :label="$t('选择要抄送的人员')"> | ||||
|                             <el-button icon="el-icon-plus" round type="primary" @click="selectHandle(1, form.nodeUserList)">选择人员</el-button> | ||||
|                             <el-button @click="selectHandle(1, form.nodeUserList)" icon="el-icon-plus" round type="primary">选择人员</el-button> | ||||
|                             <div class="tags-list"> | ||||
|                                 <el-tag v-for="(user, index) in form.nodeUserList" :key="user.id" closable @close="delUser(index)" | ||||
|                                 <el-tag v-for="(user, index) in form.nodeUserList" :key="user.id" @close="delUser(index)" closable | ||||
|                                     >{{ user.name }} | ||||
|                                 </el-tag> | ||||
|                             </div> | ||||
| @@ -51,7 +51,7 @@ | ||||
|                     </el-form> | ||||
|                 </el-main> | ||||
|                 <el-footer> | ||||
|                     <el-button type="primary" @click="save">保存</el-button> | ||||
|                     <el-button @click="save" type="primary">保存</el-button> | ||||
|                     <el-button @click="drawer = false">取消</el-button> | ||||
|                 </el-footer> | ||||
|             </el-container> | ||||
|   | ||||
| @@ -3,16 +3,16 @@ | ||||
|         v-model="dialogVisible" | ||||
|         :title="titleMap[type - 1]" | ||||
|         :width="type == 1 ? 680 : 460" | ||||
|         @closed="$emit('closed')" | ||||
|         append-to-body | ||||
|         destroy-on-close | ||||
|         @closed="$emit('closed')"> | ||||
|         destroy-on-close> | ||||
|         <template v-if="type === 1"> | ||||
|             <div class="sc-user-select"> | ||||
|                 <div class="sc-user-select__left"> | ||||
|                     <div class="sc-user-select__search"> | ||||
|                         <el-input v-model="keyword" :placeholder="$t('搜索成员')" prefix-icon="el-icon-search"> | ||||
|                             <template #append> | ||||
|                                 <el-button icon="el-icon-search" @click="search"></el-button> | ||||
|                                 <el-button @click="search" icon="el-icon-search"></el-button> | ||||
|                             </template> | ||||
|                         </el-input> | ||||
|                     </div> | ||||
| @@ -20,30 +20,30 @@ | ||||
|                         <div v-loading="showGrouploading" class="sc-user-select__tree"> | ||||
|                             <el-scrollbar> | ||||
|                                 <el-tree | ||||
|                                     ref="groupTree" | ||||
|                                     :current-node-key="groupId" | ||||
|                                     :data="group" | ||||
|                                     :expand-on-click-node="false" | ||||
|                                     :node-key="groupProps.key" | ||||
|                                     :props="groupProps" | ||||
|                                     @node-click="groupClick" | ||||
|                                     class="menu" | ||||
|                                     highlight-current | ||||
|                                     @node-click="groupClick" /> | ||||
|                                     ref="groupTree" /> | ||||
|                             </el-scrollbar> | ||||
|                         </div> | ||||
|                         <div v-loading="showUserloading" class="sc-user-select__user"> | ||||
|                             <div class="sc-user-select__user__list"> | ||||
|                                 <el-scrollbar ref="userScrollbar"> | ||||
|                                     <el-tree | ||||
|                                         ref="userTree" | ||||
|                                         :data="user" | ||||
|                                         :default-checked-keys="selectedIds" | ||||
|                                         :node-key="userProps.key" | ||||
|                                         :props="userProps" | ||||
|                                         @check-change="userClick" | ||||
|                                         check-on-click-node | ||||
|                                         class="menu" | ||||
|                                         show-checkbox | ||||
|                                         @check-change="userClick"></el-tree> | ||||
|                                         ref="userTree" | ||||
|                                         show-checkbox></el-tree> | ||||
|                                 </el-scrollbar> | ||||
|                             </div> | ||||
|                             <footer> | ||||
| @@ -51,10 +51,10 @@ | ||||
|                                     v-model:currentPage="currentPage" | ||||
|                                     :page-size="pageSize" | ||||
|                                     :total="total" | ||||
|                                     @current-change="paginationChange" | ||||
|                                     background | ||||
|                                     layout="prev,next" | ||||
|                                     small | ||||
|                                     @current-change="paginationChange"></el-pagination> | ||||
|                                     small></el-pagination> | ||||
|                             </footer> | ||||
|                         </div> | ||||
|                     </div> | ||||
| @@ -74,7 +74,7 @@ | ||||
|                                     <label>{{ item.name }}</label> | ||||
|                                 </span> | ||||
|                                 <span class="delete"> | ||||
|                                     <el-button circle icon="el-icon-delete" size="small" type="danger" @click="deleteSelected(index)"></el-button> | ||||
|                                     <el-button @click="deleteSelected(index)" circle icon="el-icon-delete" size="small" type="danger"></el-button> | ||||
|                                 </span> | ||||
|                             </li> | ||||
|                         </el-scrollbar> | ||||
| @@ -90,17 +90,17 @@ | ||||
|                         <div v-loading="showGrouploading" class="sc-user-select__tree"> | ||||
|                             <el-scrollbar> | ||||
|                                 <el-tree | ||||
|                                     ref="groupTree" | ||||
|                                     :data="role" | ||||
|                                     :default-checked-keys="selectedIds" | ||||
|                                     :expand-on-click-node="false" | ||||
|                                     :node-key="roleProps.key" | ||||
|                                     :props="roleProps" | ||||
|                                     @check-change="roleClick" | ||||
|                                     check-on-click-node | ||||
|                                     check-strictly | ||||
|                                     class="menu" | ||||
|                                     show-checkbox | ||||
|                                     @check-change="roleClick" /> | ||||
|                                     ref="groupTree" | ||||
|                                     show-checkbox /> | ||||
|                             </el-scrollbar> | ||||
|                         </div> | ||||
|                     </div> | ||||
| @@ -119,7 +119,7 @@ | ||||
|                                     <label>{{ item.name }}</label> | ||||
|                                 </span> | ||||
|                                 <span class="delete"> | ||||
|                                     <el-button circle icon="el-icon-delete" size="small" type="danger" @click="deleteSelected(index)"></el-button> | ||||
|                                     <el-button @click="deleteSelected(index)" circle icon="el-icon-delete" size="small" type="danger"></el-button> | ||||
|                                 </span> | ||||
|                             </li> | ||||
|                         </el-scrollbar> | ||||
| @@ -130,7 +130,7 @@ | ||||
|  | ||||
|         <template #footer> | ||||
|             <el-button @click="dialogVisible = false">取 消</el-button> | ||||
|             <el-button type="primary" @click="save">确 认</el-button> | ||||
|             <el-button @click="save" type="primary">确 认</el-button> | ||||
|         </template> | ||||
|     </el-dialog> | ||||
| </template> | ||||
|   | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -6,7 +6,7 @@ export default { | ||||
|                 vue.loading = true | ||||
|                 vue.dialog.save = true | ||||
|                 await vue.$nextTick() | ||||
|                 vue.$refs.saveDialog.open('view', row) | ||||
|                 await vue.$refs.saveDialog.open('view', row) | ||||
|                 vue.loading = false | ||||
|             }, | ||||
|         }, | ||||
| @@ -16,7 +16,7 @@ export default { | ||||
|                 vue.loading = true | ||||
|                 vue.dialog.save = true | ||||
|                 await vue.$nextTick() | ||||
|                 vue.$refs.saveDialog.open('edit', row) | ||||
|                 await vue.$refs.saveDialog.open('edit', row) | ||||
|                 vue.loading = false | ||||
|             }, | ||||
|         }, | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import copy from '@/directives/copy' | ||||
| import errorHandler from '@/utils/errorHandler' | ||||
| import http from '@/utils/request' | ||||
| import naArea from '@/components/naArea/index.vue' | ||||
| import naUser from '@/components/naUser/index.vue' | ||||
| import naUserSelect from '@/components/naUserSelect/index.vue' | ||||
| import naButtonAdd from '@/components/naButtonAdd/index.vue' | ||||
| import naButtonBatchDel from '@/components/naButtonBatchDel/index.vue' | ||||
| import naColAvatar from '@/components/naColAvatar' | ||||
| @@ -95,7 +95,7 @@ export default { | ||||
|         app.component('naButtonBatchDel', naButtonBatchDel) | ||||
|         app.component('naFormEmail', naFormEmail) | ||||
|         app.component('naColTime', naColTime) | ||||
|         app.component('naUser', naUser) | ||||
|         app.component('naUserSelect', naUserSelect) | ||||
|  | ||||
|         //注册全局指令 | ||||
|         app.directive('auth', auth) | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| <template> | ||||
|     <div v-if="navMenus.length <= 0" style="padding: 20px"> | ||||
|         <el-alert :closable="false" center :title="$t('无子集菜单')" type="info"></el-alert> | ||||
|         <el-alert :closable="false" :title="$t('无子集菜单')" center type="info"></el-alert> | ||||
|     </div> | ||||
|     <template v-for="navMenu in navMenus" v-bind:key="navMenu"> | ||||
|     <template v-bind:key="navMenu" v-for="navMenu in navMenus"> | ||||
|         <el-menu-item v-if="!hasChildren(navMenu)" :index="navMenu.path"> | ||||
|             <a v-if="navMenu.meta && navMenu.meta.type == 'link'" :href="navMenu.path" target="_blank" @click.stop="() => {}"></a> | ||||
|             <a v-if="navMenu.meta && navMenu.meta.type == 'link'" :href="navMenu.path" @click.stop="() => {}" target="_blank"></a> | ||||
|             <el-icon v-if="navMenu.meta && navMenu.meta.icon"> | ||||
|                 <component :is="navMenu.meta.icon || 'el-icon-menu'" /> | ||||
|             </el-icon> | ||||
|   | ||||
| @@ -1,23 +1,23 @@ | ||||
| <template> | ||||
|     <div class="sc-search"> | ||||
|         <el-input | ||||
|             ref="input" | ||||
|             v-model="input" | ||||
|             :trigger-on-focus="false" | ||||
|             clearable | ||||
|             :placeholder="$t('搜索')" | ||||
|             :trigger-on-focus="false" | ||||
|             @input="inputChange" | ||||
|             clearable | ||||
|             prefix-icon="el-icon-search" | ||||
|             size="large" | ||||
|             @input="inputChange" /> | ||||
|             ref="input" | ||||
|             size="large" /> | ||||
|         <div v-if="history.length > 0" class="sc-search-history"> | ||||
|             <el-tag | ||||
|                 v-for="(item, index) in history" | ||||
|                 :key="item" | ||||
|                 @click="historyClick(item)" | ||||
|                 @close="historyClose(index)" | ||||
|                 closable | ||||
|                 effect="dark" | ||||
|                 type="info" | ||||
|                 @click="historyClick(item)" | ||||
|                 @close="historyClose(index)" | ||||
|                 >{{ item }} | ||||
|             </el-tag> | ||||
|         </div> | ||||
|   | ||||
| @@ -1,11 +1,11 @@ | ||||
| <template> | ||||
|     <div v-drag class="mobile-nav-button" draggable="false" @click="showMobileNav($event)"> | ||||
|     <div v-drag @click="showMobileNav($event)" class="mobile-nav-button" draggable="false"> | ||||
|         <el-icon> | ||||
|             <el-icon-menu /> | ||||
|         </el-icon> | ||||
|     </div> | ||||
|  | ||||
|     <el-drawer ref="mobileNavBox" v-model="nav" :size="240" :with-header="false" destroy-on-close direction="ltr" :title="$t('移动端菜单')"> | ||||
|     <el-drawer v-model="nav" :size="240" :title="$t('移动端菜单')" :with-header="false" destroy-on-close direction="ltr" ref="mobileNavBox"> | ||||
|         <el-container class="mobile-nav"> | ||||
|             <el-header> | ||||
|                 <div class="logo-bar"> | ||||
| @@ -16,11 +16,11 @@ | ||||
|                 <el-scrollbar> | ||||
|                     <el-menu | ||||
|                         :default-active="$route.meta.active || $route.fullPath" | ||||
|                         @select="select" | ||||
|                         active-text-color="#409EFF" | ||||
|                         background-color="#212d3d" | ||||
|                         router | ||||
|                         text-color="#fff" | ||||
|                         @select="select"> | ||||
|                         text-color="#fff"> | ||||
|                         <NavMenu :navMenus="menu"></NavMenu> | ||||
|                     </el-menu> | ||||
|                 </el-scrollbar> | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user
	 GitHub
						GitHub