Browse Source

😎代码优化

zuohuaijun 2 years ago
parent
commit
a6528666b3
98 changed files with 1139 additions and 305 deletions
  1. 1 1
      Admin.NET/Admin.NET.Core/Attribute/OwnerOrgAttribute.cs
  2. 14 14
      Admin.NET/Admin.NET.Core/Entity/EntityBase.cs
  3. 1 1
      Admin.NET/Admin.NET.Core/Enum/FilterLogicEnum.cs
  4. 1 1
      Admin.NET/Admin.NET.Core/Enum/FilterOperatorEnum.cs
  5. 15 0
      Admin.NET/Admin.NET.Core/Extension/HttpContextExtension.cs
  6. 13 15
      Admin.NET/Admin.NET.Core/Extension/SqlSugarExtension.cs
  7. 1 2
      Admin.NET/Admin.NET.Core/Extension/SqlSugarFilterExtension.cs
  8. 1 0
      Admin.NET/Admin.NET.Core/Service/Config/Dto/InfoInput.cs
  9. 1 1
      Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs
  10. 18 18
      Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarFilter.cs
  11. 44 43
      Admin.NET/Admin.NET.Core/Util/BaseFilter.cs
  12. 1 1
      Admin.NET/Admin.NET.Core/Util/BasePageInput.cs
  13. 84 0
      Web/src/api-services/apis/sys-common-api.ts
  14. 74 7
      Web/src/api-services/apis/sys-notice-api.ts
  15. 22 0
      Web/src/api-services/models/add-code-gen-input.ts
  16. 1 1
      Web/src/api-services/models/add-config-input.ts
  17. 1 1
      Web/src/api-services/models/add-dict-data-input.ts
  18. 1 1
      Web/src/api-services/models/add-dict-type-input.ts
  19. 1 1
      Web/src/api-services/models/add-menu-input.ts
  20. 1 1
      Web/src/api-services/models/add-notice-input.ts
  21. 8 1
      Web/src/api-services/models/add-open-access-input.ts
  22. 1 1
      Web/src/api-services/models/add-org-input.ts
  23. 1 1
      Web/src/api-services/models/add-plugin-input.ts
  24. 1 1
      Web/src/api-services/models/add-pos-input.ts
  25. 1 1
      Web/src/api-services/models/add-print-input.ts
  26. 1 1
      Web/src/api-services/models/add-role-input.ts
  27. 1 1
      Web/src/api-services/models/add-sys-ldap-input.ts
  28. 1 1
      Web/src/api-services/models/add-tenant-input.ts
  29. 1 1
      Web/src/api-services/models/add-user-input.ts
  30. 22 0
      Web/src/api-services/models/code-gen-input.ts
  31. 2 0
      Web/src/api-services/models/db-type.ts
  32. 25 0
      Web/src/api-services/models/filter-logic-enum.ts
  33. 31 0
      Web/src/api-services/models/filter-operator-enum.ts
  34. 61 0
      Web/src/api-services/models/filter.ts
  35. 3 2
      Web/src/api-services/models/gender-enum.ts
  36. 4 0
      Web/src/api-services/models/index.ts
  37. 2 1
      Web/src/api-services/models/info-save-input.ts
  38. 22 0
      Web/src/api-services/models/open-access-input.ts
  39. 8 1
      Web/src/api-services/models/open-access-output.ts
  40. 22 0
      Web/src/api-services/models/page-config-input.ts
  41. 22 0
      Web/src/api-services/models/page-dict-data-input.ts
  42. 22 0
      Web/src/api-services/models/page-dict-type-input.ts
  43. 22 0
      Web/src/api-services/models/page-file-input.ts
  44. 22 0
      Web/src/api-services/models/page-job-detail-input.ts
  45. 22 0
      Web/src/api-services/models/page-job-trigger-record-input.ts
  46. 22 0
      Web/src/api-services/models/page-log-input.ts
  47. 22 0
      Web/src/api-services/models/page-notice-input.ts
  48. 22 0
      Web/src/api-services/models/page-online-user-input.ts
  49. 22 0
      Web/src/api-services/models/page-plugin-input.ts
  50. 22 0
      Web/src/api-services/models/page-print-input.ts
  51. 22 0
      Web/src/api-services/models/page-region-input.ts
  52. 22 0
      Web/src/api-services/models/page-role-input.ts
  53. 22 0
      Web/src/api-services/models/page-tenant-input.ts
  54. 22 0
      Web/src/api-services/models/page-user-input.ts
  55. 38 0
      Web/src/api-services/models/search.ts
  56. 1 1
      Web/src/api-services/models/sys-code-gen-config.ts
  57. 1 1
      Web/src/api-services/models/sys-code-gen.ts
  58. 1 1
      Web/src/api-services/models/sys-config.ts
  59. 1 1
      Web/src/api-services/models/sys-dict-data.ts
  60. 1 1
      Web/src/api-services/models/sys-dict-type.ts
  61. 1 1
      Web/src/api-services/models/sys-file.ts
  62. 22 0
      Web/src/api-services/models/sys-ldap-input.ts
  63. 1 1
      Web/src/api-services/models/sys-ldap.ts
  64. 1 1
      Web/src/api-services/models/sys-log-diff.ts
  65. 1 1
      Web/src/api-services/models/sys-log-ex.ts
  66. 1 1
      Web/src/api-services/models/sys-log-op.ts
  67. 1 1
      Web/src/api-services/models/sys-log-vis.ts
  68. 1 1
      Web/src/api-services/models/sys-menu.ts
  69. 1 1
      Web/src/api-services/models/sys-notice.ts
  70. 1 1
      Web/src/api-services/models/sys-org.ts
  71. 1 1
      Web/src/api-services/models/sys-plugin.ts
  72. 1 1
      Web/src/api-services/models/sys-pos.ts
  73. 1 1
      Web/src/api-services/models/sys-print.ts
  74. 1 1
      Web/src/api-services/models/sys-role.ts
  75. 1 1
      Web/src/api-services/models/sys-user.ts
  76. 1 1
      Web/src/api-services/models/sys-wechat-pay.ts
  77. 1 1
      Web/src/api-services/models/sys-wechat-refund.ts
  78. 1 1
      Web/src/api-services/models/sys-wechat-user.ts
  79. 1 1
      Web/src/api-services/models/tenant-output.ts
  80. 22 0
      Web/src/api-services/models/update-code-gen-input.ts
  81. 1 1
      Web/src/api-services/models/update-config-input.ts
  82. 1 1
      Web/src/api-services/models/update-dict-data-input.ts
  83. 1 1
      Web/src/api-services/models/update-dict-type-input.ts
  84. 1 1
      Web/src/api-services/models/update-menu-input.ts
  85. 1 1
      Web/src/api-services/models/update-notice-input.ts
  86. 8 1
      Web/src/api-services/models/update-open-access-input.ts
  87. 1 1
      Web/src/api-services/models/update-org-input.ts
  88. 1 1
      Web/src/api-services/models/update-plugin-input.ts
  89. 1 1
      Web/src/api-services/models/update-pos-input.ts
  90. 1 1
      Web/src/api-services/models/update-print-input.ts
  91. 1 1
      Web/src/api-services/models/update-role-input.ts
  92. 1 1
      Web/src/api-services/models/update-sys-ldap-input.ts
  93. 1 1
      Web/src/api-services/models/update-tenant-input.ts
  94. 1 1
      Web/src/api-services/models/update-user-input.ts
  95. 1 1
      Web/src/api-services/models/user-output.ts
  96. 22 0
      Web/src/api-services/models/wechat-pay-page-input.ts
  97. 22 0
      Web/src/api-services/models/wechat-user-input.ts
  98. 146 145
      Web/src/views/system/infoSetting/index.vue

+ 1 - 1
Admin.NET/Admin.NET.Core/Attribute/OwnerOrgAttribute.cs

@@ -13,4 +13,4 @@ namespace Admin.NET.Core;
 [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
 public class OwnerOrgAttribute : Attribute
 {
-}
+}

+ 14 - 14
Admin.NET/Admin.NET.Core/Entity/EntityBase.cs

@@ -14,7 +14,7 @@ public abstract class EntityBaseId
     /// <summary>
     /// 雪花Id
     /// </summary>
-    [SugarColumn(ColumnName = "Id", ColumnDescription = "主键Id", IsPrimaryKey = true, IsIdentity = false)]
+    [SugarColumn(ColumnName = "Id", ColumnDescription = "主键Id", IsPrimaryKey = true, IsIdentity = false)]
     public virtual long Id { get; set; }
 }
 
@@ -27,20 +27,20 @@ public abstract class EntityBase : EntityBaseId, IDeletedFilter
     /// <summary>
     /// 创建时间
     /// </summary>
-    [SugarColumn(ColumnDescription = "创建时间", IsNullable = true, IsOnlyIgnoreUpdate = true, InsertServerTime = true)]
+    [SugarColumn(ColumnDescription = "创建时间", IsNullable = true, IsOnlyIgnoreUpdate = true, InsertServerTime = true)]
     public virtual DateTime CreateTime { get; set; }
 
     /// <summary>
     /// 更新时间
     /// </summary>
-    [SugarColumn(ColumnDescription = "更新时间", IsOnlyIgnoreInsert = true, UpdateServerTime = true)]
+    [SugarColumn(ColumnDescription = "更新时间", IsOnlyIgnoreInsert = true, UpdateServerTime = true)]
     public virtual DateTime? UpdateTime { get; set; }
 
     /// <summary>
     /// 创建者Id
     /// </summary>
     [SugarColumn(ColumnDescription = "创建者Id", IsOnlyIgnoreUpdate = true)]
-    [OwnerUser]
+    [OwnerUser]
     public virtual long CreateUserId { get; set; }
 
     ///// <summary>
@@ -54,13 +54,13 @@ public abstract class EntityBase : EntityBaseId, IDeletedFilter
     /// <summary>
     /// 创建者姓名
     /// </summary>
-    [SugarColumn(ColumnDescription = "创建者姓名", Length = 64, IsOnlyIgnoreUpdate = true)]
+    [SugarColumn(ColumnDescription = "创建者姓名", Length = 64, IsOnlyIgnoreUpdate = true)]
     public virtual string? CreateUserName { get; set; }
 
     /// <summary>
     /// 修改者Id
     /// </summary>
-    [SugarColumn(ColumnDescription = "修改者Id")]
+    [SugarColumn(ColumnDescription = "修改者Id")]
     public virtual long? UpdateUserId { get; set; }
 
     ///// <summary>
@@ -74,13 +74,13 @@ public abstract class EntityBase : EntityBaseId, IDeletedFilter
     /// <summary>
     /// 修改者姓名
     /// </summary>
-    [SugarColumn(ColumnDescription = "修改者姓名", Length = 64)]
+    [SugarColumn(ColumnDescription = "修改者姓名", Length = 64)]
     public virtual string? UpdateUserName { get; set; }
 
     /// <summary>
     /// 软删除
     /// </summary>
-    [SugarColumn(ColumnDescription = "软删除")]
+    [SugarColumn(ColumnDescription = "软删除")]
     public virtual bool IsDelete { get; set; } = false;
 }
 
@@ -93,7 +93,7 @@ public abstract class EntityBaseData : EntityBase, IOrgIdFilter
     /// 创建者部门Id
     /// </summary>
     [SugarColumn(ColumnDescription = "创建者部门Id", IsOnlyIgnoreUpdate = true)]
-    [OwnerOrg]
+    [OwnerOrg]
     public virtual long CreateOrgId { get; set; }
 
     /// <summary>
@@ -101,13 +101,13 @@ public abstract class EntityBaseData : EntityBase, IOrgIdFilter
     /// </summary>
     [Newtonsoft.Json.JsonIgnore]
     [System.Text.Json.Serialization.JsonIgnore]
-    [Navigate(NavigateType.OneToOne, nameof(CreateOrgId))]
+    [Navigate(NavigateType.OneToOne, nameof(CreateOrgId))]
     public virtual SysOrg CreateOrg { get; set; }
 
     /// <summary>
     /// 创建者部门名称
     /// </summary>
-    [SugarColumn(ColumnDescription = "创建者部门名称", Length = 64, IsOnlyIgnoreUpdate = true)]
+    [SugarColumn(ColumnDescription = "创建者部门名称", Length = 64, IsOnlyIgnoreUpdate = true)]
     public virtual string? CreateOrgName { get; set; }
 }
 
@@ -119,7 +119,7 @@ public abstract class EntityTenant : EntityBase, ITenantIdFilter
     /// <summary>
     /// 租户Id
     /// </summary>
-    [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
+    [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
     public virtual long? TenantId { get; set; }
 }
 
@@ -131,7 +131,7 @@ public abstract class EntityTenantId : EntityBaseId, ITenantIdFilter
     /// <summary>
     /// 租户Id
     /// </summary>
-    [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
+    [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
     public virtual long? TenantId { get; set; }
 }
 
@@ -143,6 +143,6 @@ public abstract class EntityTenantBaseData : EntityBaseData, ITenantIdFilter
     /// <summary>
     /// 租户Id
     /// </summary>
-    [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
+    [SugarColumn(ColumnDescription = "租户Id", IsOnlyIgnoreUpdate = true)]
     public virtual long? TenantId { get; set; }
 }

+ 1 - 1
Admin.NET/Admin.NET.Core/Enum/FilterLogicEnum.cs

@@ -29,4 +29,4 @@ public enum FilterLogicEnum
     /// </summary>
     [Description("异或")]
     Xor
-}
+}

+ 1 - 1
Admin.NET/Admin.NET.Core/Enum/FilterOperatorEnum.cs

@@ -65,4 +65,4 @@ public enum FilterOperatorEnum
     /// </summary>
     [Description("包含")]
     Contains
-}
+}

+ 15 - 0
Admin.NET/Admin.NET.Core/Extension/HttpContextExtension.cs

@@ -30,6 +30,11 @@ public static class HttpContextExtension
                 select scheme).Any();
     }
 
+    /// <summary>
+    /// 获取设备信息
+    /// </summary>
+    /// <param name="context"></param>
+    /// <returns></returns>
     public static string GetClientDeviceInfo(this HttpContext context)
     {
         ArgumentNullException.ThrowIfNull(context);
@@ -37,6 +42,11 @@ public static class HttpContextExtension
         return CommonUtil.GetClientDeviceInfo(context.Request.Headers.UserAgent);
     }
 
+    /// <summary>
+    /// 获取浏览器信息
+    /// </summary>
+    /// <param name="context"></param>
+    /// <returns></returns>
     public static string GetClientBrowser(this HttpContext context)
     {
         ArgumentNullException.ThrowIfNull(context);
@@ -57,6 +67,11 @@ public static class HttpContextExtension
         return "未知";
     }
 
+    /// <summary>
+    /// 获取操作系统信息
+    /// </summary>
+    /// <param name="context"></param>
+    /// <returns></returns>
     public static string GetClientOs(this HttpContext context)
     {
         ArgumentNullException.ThrowIfNull(context);

+ 13 - 15
Admin.NET/Admin.NET.Core/Extension/SqlSugarExtension.cs

@@ -13,19 +13,19 @@ namespace Admin.NET.Core;
 /// </summary>
 public static class SqlSugarExtension
 {
-    public static ISugarQueryable<T> SearchBy<T>(this ISugarQueryable<T> queryable,BaseFilter filter)
+    public static ISugarQueryable<T> SearchBy<T>(this ISugarQueryable<T> queryable, BaseFilter filter)
     {
         return queryable.SearchByKeyword(filter.Keyword)
                 .AdvancedSearch(filter.Search)
-                .AdvancedFilter(filter.Filter);   
+                .AdvancedFilter(filter.Filter);
     }
 
-    public static ISugarQueryable<T> SearchByKeyword<T>(this ISugarQueryable<T> queryable,string keyword)
+    public static ISugarQueryable<T> SearchByKeyword<T>(this ISugarQueryable<T> queryable, string keyword)
     {
         return queryable.AdvancedSearch(new Search { Keyword = keyword });
     }
 
-    public static ISugarQueryable<T> AdvancedSearch<T>(this ISugarQueryable<T> queryable,Search search)
+    public static ISugarQueryable<T> AdvancedSearch<T>(this ISugarQueryable<T> queryable, Search search)
     {
         if (!string.IsNullOrWhiteSpace(search?.Keyword))
         {
@@ -69,9 +69,9 @@ public static class SqlSugarExtension
         return queryable;
     }
 
-    public static ISugarQueryable<T> AdvancedFilter<T>(this ISugarQueryable<T> queryable,Filter filter)
+    public static ISugarQueryable<T> AdvancedFilter<T>(this ISugarQueryable<T> queryable, Filter filter)
     {
-        if(filter is not null)
+        if (filter is not null)
         {
             var parameter = Expression.Parameter(typeof(T));
 
@@ -114,9 +114,8 @@ public static class SqlSugarExtension
         if (string.IsNullOrEmpty(filter.Field)) throw new ArgumentException("The field attribute is required when declaring a filter");
         if (filter.Operator.IsNullOrEmpty()) throw new ArgumentException("The Operator attribute is required when declaring a filter");
         return filter;
-    }
-
-
+    }
+
     private static Expression CreateFilterExpression(
         FilterLogicEnum filterLogic,
         IEnumerable<Filter> filters,
@@ -169,7 +168,7 @@ public static class SqlSugarExtension
             FilterOperatorEnum.LTE => Expression.LessThanOrEqual(memberExpression, constantExpression),
             FilterOperatorEnum.GT => Expression.GreaterThan(memberExpression, constantExpression),
             FilterOperatorEnum.GTE => Expression.GreaterThanOrEqual(memberExpression, constantExpression),
-            FilterOperatorEnum.Contains => Expression.Call(memberExpression,nameof(FilterOperatorEnum.Contains), null, constantExpression),
+            FilterOperatorEnum.Contains => Expression.Call(memberExpression, nameof(FilterOperatorEnum.Contains), null, constantExpression),
             FilterOperatorEnum.StartsWith => Expression.Call(memberExpression, nameof(FilterOperatorEnum.StartsWith), null, constantExpression),
             FilterOperatorEnum.EndsWith => Expression.Call(memberExpression, nameof(FilterOperatorEnum.EndsWith), null, constantExpression),
             _ => throw new ArgumentException("Filter Operator is not valid."),
@@ -181,9 +180,8 @@ public static class SqlSugarExtension
         if (value is JsonElement) return ((JsonElement)value).GetString()!;
         if (value is string) return (string)value;
         return value?.ToString();
-    }
-
-
+    }
+
     private static ConstantExpression GeValuetExpression(
           string field,
           object? value,
@@ -199,7 +197,7 @@ public static class SqlSugarExtension
 
             return Expression.Constant(valueparsed, propertyType);
         }
-        if(propertyType == typeof(long))
+        if (propertyType == typeof(long))
         {
             string? stringLong = GetStringFromJsonElement(value);
 
@@ -293,4 +291,4 @@ public static class SqlSugarExtension
 
         return Expression.Call(selectorExpr, method, constant);
     }
-}
+}

+ 1 - 2
Admin.NET/Admin.NET.Core/Extension/SqlSugarFilterExtension.cs

@@ -52,5 +52,4 @@ public static class SqlSugarFilterExtension
         var finalExpression = Expression.Lambda(right, new ParameterExpression[] { parameter });
         return finalExpression;
     }
-
-}
+}

+ 1 - 0
Admin.NET/Admin.NET.Core/Service/Config/Dto/InfoInput.cs

@@ -50,6 +50,7 @@ public class InfoSaveInput
     /// ICP地址
     /// </summary>
     public string SysIcpUrl { get; set; }
+
     /// <summary>
     /// 上传系统图标时的文件名
     /// </summary>

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs

@@ -277,7 +277,7 @@ public class SysConfigService : IDynamicApiController, ITransient
             var type = groups["type"].Value;
             var base64Data = groups["data"].Value;
             var binData = Convert.FromBase64String(base64Data);
-            //根据文件名取扩展名
+            // 根据文件名取扩展名
             var ext = Path.GetExtension(input.SysLogFileName);
             // 本地图标保存路径
             var path = "Upload";

+ 18 - 18
Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarFilter.cs

@@ -193,22 +193,22 @@ public interface IEntityFilter
     /// </summary>
     /// <returns></returns>
     IEnumerable<TableFilterItem<object>> AddEntityFilter();
-}
-
-///// <summary>
-///// 自定义业务实体过滤器示例
-///// </summary>
-//public class TestEntityFilter : IEntityFilter
-//{
-//    public IEnumerable<TableFilterItem<object>> AddEntityFilter()
-//    {
-//        // 构造自定义条件的过滤器
-//        Expression<Func<SysUser, bool>> dynamicExpression = u => u.Remark.Contains("xxx");
-//        var tableFilterItem = new TableFilterItem<object>(typeof(SysUser), dynamicExpression);
-
-//        return new[]
-//        {
-//            tableFilterItem
-//        };
-//    }
+}
+
+///// <summary>
+///// 自定义业务实体过滤器示例
+///// </summary>
+//public class TestEntityFilter : IEntityFilter
+//{
+//    public IEnumerable<TableFilterItem<object>> AddEntityFilter()
+//    {
+//        // 构造自定义条件的过滤器
+//        Expression<Func<SysUser, bool>> dynamicExpression = u => u.Remark.Contains("xxx");
+//        var tableFilterItem = new TableFilterItem<object>(typeof(SysUser), dynamicExpression);
+
+//        return new[]
+//        {
+//            tableFilterItem
+//        };
+//    }
 //}

+ 44 - 43
Admin.NET/Admin.NET.Core/Util/BaseFilter.cs

@@ -1,74 +1,75 @@
-// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
-//
-// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
-//
-// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
-
-namespace Admin.NET.Core;
+// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
+//
+// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
+//
+// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
+
+namespace Admin.NET.Core;
 
 /// <summary>
 /// 模糊查询条件
-/// </summary>
-public class Search
+/// </summary>
+public class Search
 {
     /// <summary>
     /// 字段名称集合
-    /// </summary>
+    /// </summary>
     public List<string> Fields { get; set; }
+
     /// <summary>
     /// 关键字
-    /// </summary>
-    public string? Keyword { get; set; }
-}
+    /// </summary>
+    public string? Keyword { get; set; }
+}
 
 /// <summary>
 /// 筛选过滤条件
-/// </summary>
-public class Filter
+/// </summary>
+public class Filter
 {
     /// <summary>
     /// 过滤条件
-    /// </summary>
-    public FilterLogicEnum? Logic { get; set; }
+    /// </summary>
+    public FilterLogicEnum? Logic { get; set; }
 
     /// <summary>
     /// 筛选过滤条件子项
-    /// </summary>
-    public IEnumerable<Filter>? Filters { get; set; }
+    /// </summary>
+    public IEnumerable<Filter>? Filters { get; set; }
 
     /// <summary>
     /// 字段名称
-    /// </summary>
-    public string? Field { get; set; }
+    /// </summary>
+    public string? Field { get; set; }
 
     /// <summary>
     /// 逻辑运算符
-    /// </summary>
-    public FilterOperatorEnum? Operator { get; set; }
+    /// </summary>
+    public FilterOperatorEnum? Operator { get; set; }
 
     /// <summary>
     /// 字段值
-    /// </summary>
-    public object? Value { get; set; }
-}
+    /// </summary>
+    public object? Value { get; set; }
+}
 
 /// <summary>
 /// 过滤条件基类
-/// </summary>
-public abstract class BaseFilter
-{
-    /// <summary>
-    /// 模糊查询条件
-    /// </summary>
-    public Search? Search { get; set; }
-
-    /// <summary>
-    /// 模糊查询关键字
-    /// </summary>
-    public string? Keyword { get; set; }
-
-    /// <summary>
-    /// 筛选过滤条件
-    /// </summary>
-    public Filter? Filter { get; set; }
+/// </summary>
+public abstract class BaseFilter
+{
+    /// <summary>
+    /// 模糊查询条件
+    /// </summary>
+    public Search? Search { get; set; }
+
+    /// <summary>
+    /// 模糊查询关键字
+    /// </summary>
+    public string? Keyword { get; set; }
+
+    /// <summary>
+    /// 筛选过滤条件
+    /// </summary>
+    public Filter? Filter { get; set; }
 }

+ 1 - 1
Admin.NET/Admin.NET.Core/Util/BasePageInput.cs

@@ -9,7 +9,7 @@ namespace Admin.NET.Core;
 /// <summary>
 /// 全局分页查询输入参数
 /// </summary>
-public class BasePageInput:BaseFilter
+public class BasePageInput : BaseFilter
 {
     /// <summary>
     /// 当前页码

+ 84 - 0
Web/src/api-services/apis/sys-common-api.ts

@@ -17,6 +17,7 @@ import { Configuration } from '../configuration';
 // Some imports not used depending on template conditions
 // @ts-ignore
 import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';
+import { AdminResultIActionResult } from '../models';
 import { AdminResultListApiOutput } from '../models';
 import { AdminResultSmKeyPairOutput } from '../models';
 /**
@@ -68,6 +69,54 @@ export const SysCommonApiAxiosParamCreator = function (configuration?: Configura
                 options: localVarRequestOptions,
             };
         },
+        /**
+         * 
+         * @summary 下载标记错误的临时Excel(全局)
+         * @param {string} [fileName] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiSysCommonDownloadErrorExcelTempPost: async (fileName?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/sysCommon/downloadErrorExcelTemp`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, 'https://example.com');
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+            const localVarRequestOptions :AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            // http bearer authentication required
+            if (configuration && configuration.accessToken) {
+                const accessToken = typeof configuration.accessToken === 'function'
+                    ? await configuration.accessToken()
+                    : await configuration.accessToken;
+                localVarHeaderParameter["Authorization"] = "Bearer " + accessToken;
+            }
+
+            if (fileName !== undefined) {
+                localVarQueryParameter['fileName'] = fileName;
+            }
+
+            const query = new URLSearchParams(localVarUrlObj.search);
+            for (const key in localVarQueryParameter) {
+                query.set(key, localVarQueryParameter[key]);
+            }
+            for (const key in options.params) {
+                query.set(key, options.params[key]);
+            }
+            localVarUrlObj.search = (new URLSearchParams(query)).toString();
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+            return {
+                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+                options: localVarRequestOptions,
+            };
+        },
         /**
          * 
          * @summary 获取国密公钥私钥对 🏆
@@ -133,6 +182,20 @@ export const SysCommonApiFp = function(configuration?: Configuration) {
                 return axios.request(axiosRequestArgs);
             };
         },
+        /**
+         * 
+         * @summary 下载标记错误的临时Excel(全局)
+         * @param {string} [fileName] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiSysCommonDownloadErrorExcelTempPost(fileName?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultIActionResult>>> {
+            const localVarAxiosArgs = await SysCommonApiAxiosParamCreator(configuration).apiSysCommonDownloadErrorExcelTempPost(fileName, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
         /**
          * 
          * @summary 获取国密公钥私钥对 🏆
@@ -164,6 +227,16 @@ export const SysCommonApiFactory = function (configuration?: Configuration, base
         async apiSysCommonApiListGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListApiOutput>> {
             return SysCommonApiFp(configuration).apiSysCommonApiListGet(options).then((request) => request(axios, basePath));
         },
+        /**
+         * 
+         * @summary 下载标记错误的临时Excel(全局)
+         * @param {string} [fileName] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiSysCommonDownloadErrorExcelTempPost(fileName?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultIActionResult>> {
+            return SysCommonApiFp(configuration).apiSysCommonDownloadErrorExcelTempPost(fileName, options).then((request) => request(axios, basePath));
+        },
         /**
          * 
          * @summary 获取国密公钥私钥对 🏆
@@ -193,6 +266,17 @@ export class SysCommonApi extends BaseAPI {
     public async apiSysCommonApiListGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListApiOutput>> {
         return SysCommonApiFp(this.configuration).apiSysCommonApiListGet(options).then((request) => request(this.axios, this.basePath));
     }
+    /**
+     * 
+     * @summary 下载标记错误的临时Excel(全局)
+     * @param {string} [fileName] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof SysCommonApi
+     */
+    public async apiSysCommonDownloadErrorExcelTempPost(fileName?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultIActionResult>> {
+        return SysCommonApiFp(this.configuration).apiSysCommonDownloadErrorExcelTempPost(fileName, options).then((request) => request(this.axios, this.basePath));
+    }
     /**
      * 
      * @summary 获取国密公钥私钥对 🏆

+ 74 - 7
Web/src/api-services/apis/sys-notice-api.ts

@@ -22,6 +22,9 @@ import { AdminResultListSysNotice } from '../models';
 import { AdminResultSqlSugarPagedListSysNotice } from '../models';
 import { AdminResultSqlSugarPagedListSysNoticeUser } from '../models';
 import { DeleteNoticeInput } from '../models';
+import { Filter } from '../models';
+import { FilterLogicEnum } from '../models';
+import { FilterOperatorEnum } from '../models';
 import { NoticeInput } from '../models';
 import { NoticeTypeEnum } from '../models';
 import { PageNoticeInput } from '../models';
@@ -186,10 +189,18 @@ export const SysNoticeApiAxiosParamCreator = function (configuration?: Configura
          * @param {string} [field] 排序字段
          * @param {string} [order] 排序方向
          * @param {string} [descStr] 降序排序
+         * @param {Array<string>} [searchFields] 字段名称集合
+         * @param {string} [searchKeyword] 关键字
+         * @param {string} [keyword] 模糊查询关键字
+         * @param {FilterLogicEnum} [filterLogic] 过滤条件
+         * @param {Array<Filter>} [filterFilters] 筛选过滤条件子项
+         * @param {string} [filterField] 字段名称
+         * @param {FilterOperatorEnum} [filterOperator] 逻辑运算符
+         * @param {any} [filterValue] 字段值
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        apiSysNoticePageReceivedGet: async (title?: string, type?: NoticeTypeEnum, page?: number, pageSize?: number, field?: string, order?: string, descStr?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+        apiSysNoticePageReceivedGet: async (title?: string, type?: NoticeTypeEnum, page?: number, pageSize?: number, field?: string, order?: string, descStr?: string, searchFields?: Array<string>, searchKeyword?: string, keyword?: string, filterLogic?: FilterLogicEnum, filterFilters?: Array<Filter>, filterField?: string, filterOperator?: FilterOperatorEnum, filterValue?: any, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
             const localVarPath = `/api/sysNotice/pageReceived`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, 'https://example.com');
@@ -238,6 +249,38 @@ export const SysNoticeApiAxiosParamCreator = function (configuration?: Configura
                 localVarQueryParameter['DescStr'] = descStr;
             }
 
+            if (searchFields) {
+                localVarQueryParameter['Search.Fields'] = searchFields;
+            }
+
+            if (searchKeyword !== undefined) {
+                localVarQueryParameter['Search.Keyword'] = searchKeyword;
+            }
+
+            if (keyword !== undefined) {
+                localVarQueryParameter['Keyword'] = keyword;
+            }
+
+            if (filterLogic !== undefined) {
+                localVarQueryParameter['Filter.Logic'] = filterLogic;
+            }
+
+            if (filterFilters) {
+                localVarQueryParameter['Filter.Filters'] = filterFilters;
+            }
+
+            if (filterField !== undefined) {
+                localVarQueryParameter['Filter.Field'] = filterField;
+            }
+
+            if (filterOperator !== undefined) {
+                localVarQueryParameter['Filter.Operator'] = filterOperator;
+            }
+
+            if (filterValue !== undefined) {
+                localVarQueryParameter['Filter.Value'] = filterValue;
+            }
+
             const query = new URLSearchParams(localVarUrlObj.search);
             for (const key in localVarQueryParameter) {
                 query.set(key, localVarQueryParameter[key]);
@@ -502,11 +545,19 @@ export const SysNoticeApiFp = function(configuration?: Configuration) {
          * @param {string} [field] 排序字段
          * @param {string} [order] 排序方向
          * @param {string} [descStr] 降序排序
+         * @param {Array<string>} [searchFields] 字段名称集合
+         * @param {string} [searchKeyword] 关键字
+         * @param {string} [keyword] 模糊查询关键字
+         * @param {FilterLogicEnum} [filterLogic] 过滤条件
+         * @param {Array<Filter>} [filterFilters] 筛选过滤条件子项
+         * @param {string} [filterField] 字段名称
+         * @param {FilterOperatorEnum} [filterOperator] 逻辑运算符
+         * @param {any} [filterValue] 字段值
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async apiSysNoticePageReceivedGet(title?: string, type?: NoticeTypeEnum, page?: number, pageSize?: number, field?: string, order?: string, descStr?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysNoticeUser>>> {
-            const localVarAxiosArgs = await SysNoticeApiAxiosParamCreator(configuration).apiSysNoticePageReceivedGet(title, type, page, pageSize, field, order, descStr, options);
+        async apiSysNoticePageReceivedGet(title?: string, type?: NoticeTypeEnum, page?: number, pageSize?: number, field?: string, order?: string, descStr?: string, searchFields?: Array<string>, searchKeyword?: string, keyword?: string, filterLogic?: FilterLogicEnum, filterFilters?: Array<Filter>, filterField?: string, filterOperator?: FilterOperatorEnum, filterValue?: any, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysNoticeUser>>> {
+            const localVarAxiosArgs = await SysNoticeApiAxiosParamCreator(configuration).apiSysNoticePageReceivedGet(title, type, page, pageSize, field, order, descStr, searchFields, searchKeyword, keyword, filterLogic, filterFilters, filterField, filterOperator, filterValue, options);
             return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
                 const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
                 return axios.request(axiosRequestArgs);
@@ -616,11 +667,19 @@ export const SysNoticeApiFactory = function (configuration?: Configuration, base
          * @param {string} [field] 排序字段
          * @param {string} [order] 排序方向
          * @param {string} [descStr] 降序排序
+         * @param {Array<string>} [searchFields] 字段名称集合
+         * @param {string} [searchKeyword] 关键字
+         * @param {string} [keyword] 模糊查询关键字
+         * @param {FilterLogicEnum} [filterLogic] 过滤条件
+         * @param {Array<Filter>} [filterFilters] 筛选过滤条件子项
+         * @param {string} [filterField] 字段名称
+         * @param {FilterOperatorEnum} [filterOperator] 逻辑运算符
+         * @param {any} [filterValue] 字段值
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async apiSysNoticePageReceivedGet(title?: string, type?: NoticeTypeEnum, page?: number, pageSize?: number, field?: string, order?: string, descStr?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysNoticeUser>> {
-            return SysNoticeApiFp(configuration).apiSysNoticePageReceivedGet(title, type, page, pageSize, field, order, descStr, options).then((request) => request(axios, basePath));
+        async apiSysNoticePageReceivedGet(title?: string, type?: NoticeTypeEnum, page?: number, pageSize?: number, field?: string, order?: string, descStr?: string, searchFields?: Array<string>, searchKeyword?: string, keyword?: string, filterLogic?: FilterLogicEnum, filterFilters?: Array<Filter>, filterField?: string, filterOperator?: FilterOperatorEnum, filterValue?: any, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysNoticeUser>> {
+            return SysNoticeApiFp(configuration).apiSysNoticePageReceivedGet(title, type, page, pageSize, field, order, descStr, searchFields, searchKeyword, keyword, filterLogic, filterFilters, filterField, filterOperator, filterValue, options).then((request) => request(axios, basePath));
         },
         /**
          * 
@@ -714,12 +773,20 @@ export class SysNoticeApi extends BaseAPI {
      * @param {string} [field] 排序字段
      * @param {string} [order] 排序方向
      * @param {string} [descStr] 降序排序
+     * @param {Array<string>} [searchFields] 字段名称集合
+     * @param {string} [searchKeyword] 关键字
+     * @param {string} [keyword] 模糊查询关键字
+     * @param {FilterLogicEnum} [filterLogic] 过滤条件
+     * @param {Array<Filter>} [filterFilters] 筛选过滤条件子项
+     * @param {string} [filterField] 字段名称
+     * @param {FilterOperatorEnum} [filterOperator] 逻辑运算符
+     * @param {any} [filterValue] 字段值
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof SysNoticeApi
      */
-    public async apiSysNoticePageReceivedGet(title?: string, type?: NoticeTypeEnum, page?: number, pageSize?: number, field?: string, order?: string, descStr?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysNoticeUser>> {
-        return SysNoticeApiFp(this.configuration).apiSysNoticePageReceivedGet(title, type, page, pageSize, field, order, descStr, options).then((request) => request(this.axios, this.basePath));
+    public async apiSysNoticePageReceivedGet(title?: string, type?: NoticeTypeEnum, page?: number, pageSize?: number, field?: string, order?: string, descStr?: string, searchFields?: Array<string>, searchKeyword?: string, keyword?: string, filterLogic?: FilterLogicEnum, filterFilters?: Array<Filter>, filterField?: string, filterOperator?: FilterOperatorEnum, filterValue?: any, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysNoticeUser>> {
+        return SysNoticeApiFp(this.configuration).apiSysNoticePageReceivedGet(title, type, page, pageSize, field, order, descStr, searchFields, searchKeyword, keyword, filterLogic, filterFilters, filterField, filterOperator, filterValue, options).then((request) => request(this.axios, this.basePath));
     }
     /**
      * 

+ 22 - 0
Web/src/api-services/models/add-code-gen-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface AddCodeGenInput {
 
+    /**
+     * @type {Search}
+     * @memberof AddCodeGenInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof AddCodeGenInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof AddCodeGenInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 1 - 1
Web/src/api-services/models/add-config-input.ts

@@ -51,7 +51,7 @@ export interface AddConfigInput {
      * @type {number}
      * @memberof AddConfigInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/add-dict-data-input.ts

@@ -51,7 +51,7 @@ export interface AddDictDataInput {
      * @type {number}
      * @memberof AddDictDataInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/add-dict-type-input.ts

@@ -52,7 +52,7 @@ export interface AddDictTypeInput {
      * @type {number}
      * @memberof AddDictTypeInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/add-menu-input.ts

@@ -53,7 +53,7 @@ export interface AddMenuInput {
      * @type {number}
      * @memberof AddMenuInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/add-notice-input.ts

@@ -52,7 +52,7 @@ export interface AddNoticeInput {
      * @type {number}
      * @memberof AddNoticeInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 8 - 1
Web/src/api-services/models/add-open-access-input.ts

@@ -12,6 +12,7 @@
  * Do not edit the class manually.
  */
 
+import { SysUser } from './sys-user';
  /**
  * 
  *
@@ -50,7 +51,7 @@ export interface AddOpenAccessInput {
      * @type {number}
      * @memberof AddOpenAccessInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名
@@ -92,6 +93,12 @@ export interface AddOpenAccessInput {
      */
     bindTenantId?: number;
 
+    /**
+     * @type {SysUser}
+     * @memberof AddOpenAccessInput
+     */
+    bindUser?: SysUser;
+
     /**
      * 身份标识
      *

+ 1 - 1
Web/src/api-services/models/add-org-input.ts

@@ -52,7 +52,7 @@ export interface AddOrgInput {
      * @type {number}
      * @memberof AddOrgInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/add-plugin-input.ts

@@ -51,7 +51,7 @@ export interface AddPluginInput {
      * @type {number}
      * @memberof AddPluginInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/add-pos-input.ts

@@ -51,7 +51,7 @@ export interface AddPosInput {
      * @type {number}
      * @memberof AddPosInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/add-print-input.ts

@@ -52,7 +52,7 @@ export interface AddPrintInput {
      * @type {number}
      * @memberof AddPrintInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/add-role-input.ts

@@ -52,7 +52,7 @@ export interface AddRoleInput {
      * @type {number}
      * @memberof AddRoleInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/add-sys-ldap-input.ts

@@ -51,7 +51,7 @@ export interface AddSysLdapInput {
      * @type {number}
      * @memberof AddSysLdapInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/add-tenant-input.ts

@@ -53,7 +53,7 @@ export interface AddTenantInput {
      * @type {number}
      * @memberof AddTenantInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

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

@@ -57,7 +57,7 @@ export interface AddUserInput {
      * @type {number}
      * @memberof AddUserInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 22 - 0
Web/src/api-services/models/code-gen-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 代码生成参数类
  *
@@ -20,6 +22,26 @@
  */
 export interface CodeGenInput {
 
+    /**
+     * @type {Search}
+     * @memberof CodeGenInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof CodeGenInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof CodeGenInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 2 - 0
Web/src/api-services/models/db-type.ts

@@ -42,6 +42,8 @@ export enum DbType {
     NUMBER_21 = 21,
     NUMBER_22 = 22,
     NUMBER_23 = 23,
+    NUMBER_24 = 24,
+    NUMBER_25 = 25,
     NUMBER_900 = 900
 }
 

+ 25 - 0
Web/src/api-services/models/filter-logic-enum.ts

@@ -0,0 +1,25 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Admin.NET 通用权限开发平台
+ * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by the swagger code generator program.
+ * https://github.com/swagger-api/swagger-codegen.git
+ * Do not edit the class manually.
+ */
+
+/**
+ * 过滤条件<br />&nbsp;并且 And = 0<br />&nbsp;或者 Or = 1<br />&nbsp;异或 Xor = 2<br />
+ * @export
+ * @enum {string}
+ */
+export enum FilterLogicEnum {
+    NUMBER_0 = 0,
+    NUMBER_1 = 1,
+    NUMBER_2 = 2
+}
+

+ 31 - 0
Web/src/api-services/models/filter-operator-enum.ts

@@ -0,0 +1,31 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Admin.NET 通用权限开发平台
+ * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by the swagger code generator program.
+ * https://github.com/swagger-api/swagger-codegen.git
+ * Do not edit the class manually.
+ */
+
+/**
+ * 过滤逻辑运算符<br />&nbsp;等于 EQ = 0<br />&nbsp;不等于 NEQ = 1<br />&nbsp;小于 LT = 2<br />&nbsp;小于等于 LTE = 3<br />&nbsp;大于 GT = 4<br />&nbsp;大于等于 GTE = 5<br />&nbsp;开始包含 StartsWith = 6<br />&nbsp;末尾包含 EndsWith = 7<br />&nbsp;包含 Contains = 8<br />
+ * @export
+ * @enum {string}
+ */
+export enum FilterOperatorEnum {
+    NUMBER_0 = 0,
+    NUMBER_1 = 1,
+    NUMBER_2 = 2,
+    NUMBER_3 = 3,
+    NUMBER_4 = 4,
+    NUMBER_5 = 5,
+    NUMBER_6 = 6,
+    NUMBER_7 = 7,
+    NUMBER_8 = 8
+}
+

+ 61 - 0
Web/src/api-services/models/filter.ts

@@ -0,0 +1,61 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Admin.NET 通用权限开发平台
+ * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by the swagger code generator program.
+ * https://github.com/swagger-api/swagger-codegen.git
+ * Do not edit the class manually.
+ */
+
+import { Filter } from './filter';
+import { FilterLogicEnum } from './filter-logic-enum';
+import { FilterOperatorEnum } from './filter-operator-enum';
+ /**
+ * 筛选过滤条件
+ *
+ * @export
+ * @interface Filter
+ */
+export interface Filter {
+
+    /**
+     * @type {FilterLogicEnum}
+     * @memberof Filter
+     */
+    logic?: FilterLogicEnum;
+
+    /**
+     * 筛选过滤条件子项
+     *
+     * @type {Array<Filter>}
+     * @memberof Filter
+     */
+    filters?: Array<Filter> | null;
+
+    /**
+     * 字段名称
+     *
+     * @type {string}
+     * @memberof Filter
+     */
+    field?: string | null;
+
+    /**
+     * @type {FilterOperatorEnum}
+     * @memberof Filter
+     */
+    operator?: FilterOperatorEnum;
+
+    /**
+     * 字段值
+     *
+     * @type {any}
+     * @memberof Filter
+     */
+    value?: any | null;
+}

+ 3 - 2
Web/src/api-services/models/gender-enum.ts

@@ -13,13 +13,14 @@
  */
 
 /**
- * 性别枚举<br />&nbsp;男 Male = 1<br />&nbsp;女 Female = 2<br />&nbsp;其他 Other = 3<br />
+ * 性别枚举(GB/T 2261.1-2003)<br />&nbsp;未知的性别 Unknown = 0<br />&nbsp;男性 Male = 1<br />&nbsp;女性 Female = 2<br />&nbsp;未说明的性别 Unspecified = 9<br />
  * @export
  * @enum {string}
  */
 export enum GenderEnum {
+    NUMBER_0 = 0,
     NUMBER_1 = 1,
     NUMBER_2 = 2,
-    NUMBER_3 = 3
+    NUMBER_9 = 9
 }
 

+ 4 - 0
Web/src/api-services/models/index.ts

@@ -179,6 +179,9 @@ export * from './field-attributes';
 export * from './field-info';
 export * from './file-input';
 export * from './file-output';
+export * from './filter';
+export * from './filter-logic-enum';
+export * from './filter-operator-enum';
 export * from './gen-auth-url-input';
 export * from './gender-enum';
 export * from './generate-signature-input';
@@ -254,6 +257,7 @@ export * from './runtime-field-handle';
 export * from './runtime-method-handle';
 export * from './runtime-type-handle';
 export * from './schema-serialization-mode';
+export * from './search';
 export * from './security-rule-set';
 export * from './send-subscribe-message-input';
 export * from './serialization-format';

+ 2 - 1
Web/src/api-services/models/info-save-input.ts

@@ -83,11 +83,12 @@ export interface InfoSaveInput {
      * @memberof InfoSaveInput
      */
     sysIcpUrl?: string | null;
+
     /**
      * 上传系统图标时的文件名
      *
      * @type {string}
      * @memberof InfoSaveInput
      */
-    SysLogFileName?: string | null;
+    sysLogFileName?: string | null;
 }

+ 22 - 0
Web/src/api-services/models/open-access-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 开放接口身份输入参数
  *
@@ -20,6 +22,26 @@
  */
 export interface OpenAccessInput {
 
+    /**
+     * @type {Search}
+     * @memberof OpenAccessInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof OpenAccessInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof OpenAccessInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 8 - 1
Web/src/api-services/models/open-access-output.ts

@@ -12,6 +12,7 @@
  * Do not edit the class manually.
  */
 
+import { SysUser } from './sys-user';
  /**
  * 
  *
@@ -50,7 +51,7 @@ export interface OpenAccessOutput {
      * @type {number}
      * @memberof OpenAccessOutput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名
@@ -116,6 +117,12 @@ export interface OpenAccessOutput {
      */
     bindUserId?: number;
 
+    /**
+     * @type {SysUser}
+     * @memberof OpenAccessOutput
+     */
+    bindUser?: SysUser;
+
     /**
      * 绑定用户账号
      *

+ 22 - 0
Web/src/api-services/models/page-config-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PageConfigInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageConfigInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageConfigInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageConfigInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-dict-data-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PageDictDataInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageDictDataInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageDictDataInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageDictDataInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-dict-type-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PageDictTypeInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageDictTypeInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageDictTypeInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageDictTypeInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-file-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PageFileInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageFileInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageFileInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageFileInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-job-detail-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PageJobDetailInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageJobDetailInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageJobDetailInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageJobDetailInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-job-trigger-record-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PageJobTriggerRecordInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageJobTriggerRecordInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageJobTriggerRecordInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageJobTriggerRecordInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-log-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PageLogInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageLogInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageLogInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageLogInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-notice-input.ts

@@ -12,7 +12,9 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
 import { NoticeTypeEnum } from './notice-type-enum';
+import { Search } from './search';
  /**
  * 
  *
@@ -21,6 +23,26 @@ import { NoticeTypeEnum } from './notice-type-enum';
  */
 export interface PageNoticeInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageNoticeInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageNoticeInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageNoticeInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-online-user-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PageOnlineUserInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageOnlineUserInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageOnlineUserInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageOnlineUserInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-plugin-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PagePluginInput {
 
+    /**
+     * @type {Search}
+     * @memberof PagePluginInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PagePluginInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PagePluginInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-print-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PagePrintInput {
 
+    /**
+     * @type {Search}
+     * @memberof PagePrintInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PagePrintInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PagePrintInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-region-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PageRegionInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageRegionInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageRegionInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageRegionInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-role-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PageRoleInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageRoleInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageRoleInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageRoleInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-tenant-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface PageTenantInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageTenantInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageTenantInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageTenantInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/page-user-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 获取用户分页列表输入参数
  *
@@ -20,6 +22,26 @@
  */
 export interface PageUserInput {
 
+    /**
+     * @type {Search}
+     * @memberof PageUserInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof PageUserInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof PageUserInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 38 - 0
Web/src/api-services/models/search.ts

@@ -0,0 +1,38 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Admin.NET 通用权限开发平台
+ * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * NOTE: This class is auto generated by the swagger code generator program.
+ * https://github.com/swagger-api/swagger-codegen.git
+ * Do not edit the class manually.
+ */
+
+ /**
+ * 模糊查询条件
+ *
+ * @export
+ * @interface Search
+ */
+export interface Search {
+
+    /**
+     * 字段名称集合
+     *
+     * @type {Array<string>}
+     * @memberof Search
+     */
+    fields?: Array<string> | null;
+
+    /**
+     * 关键字
+     *
+     * @type {string}
+     * @memberof Search
+     */
+    keyword?: string | null;
+}

+ 1 - 1
Web/src/api-services/models/sys-code-gen-config.ts

@@ -50,7 +50,7 @@ export interface SysCodeGenConfig {
      * @type {number}
      * @memberof SysCodeGenConfig
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-code-gen.ts

@@ -50,7 +50,7 @@ export interface SysCodeGen {
      * @type {number}
      * @memberof SysCodeGen
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-config.ts

@@ -51,7 +51,7 @@ export interface SysConfig {
      * @type {number}
      * @memberof SysConfig
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-dict-data.ts

@@ -51,7 +51,7 @@ export interface SysDictData {
      * @type {number}
      * @memberof SysDictData
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-dict-type.ts

@@ -52,7 +52,7 @@ export interface SysDictType {
      * @type {number}
      * @memberof SysDictType
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-file.ts

@@ -50,7 +50,7 @@ export interface SysFile {
      * @type {number}
      * @memberof SysFile
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 22 - 0
Web/src/api-services/models/sys-ldap-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 系统域登录信息配置输入参数
  *
@@ -20,6 +22,26 @@
  */
 export interface SysLdapInput {
 
+    /**
+     * @type {Search}
+     * @memberof SysLdapInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof SysLdapInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof SysLdapInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 1 - 1
Web/src/api-services/models/sys-ldap.ts

@@ -51,7 +51,7 @@ export interface SysLdap {
      * @type {number}
      * @memberof SysLdap
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-log-diff.ts

@@ -50,7 +50,7 @@ export interface SysLogDiff {
      * @type {number}
      * @memberof SysLogDiff
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-log-ex.ts

@@ -51,7 +51,7 @@ export interface SysLogEx {
      * @type {number}
      * @memberof SysLogEx
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-log-op.ts

@@ -51,7 +51,7 @@ export interface SysLogOp {
      * @type {number}
      * @memberof SysLogOp
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-log-vis.ts

@@ -51,7 +51,7 @@ export interface SysLogVis {
      * @type {number}
      * @memberof SysLogVis
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-menu.ts

@@ -53,7 +53,7 @@ export interface SysMenu {
      * @type {number}
      * @memberof SysMenu
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-notice.ts

@@ -52,7 +52,7 @@ export interface SysNotice {
      * @type {number}
      * @memberof SysNotice
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-org.ts

@@ -52,7 +52,7 @@ export interface SysOrg {
      * @type {number}
      * @memberof SysOrg
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-plugin.ts

@@ -51,7 +51,7 @@ export interface SysPlugin {
      * @type {number}
      * @memberof SysPlugin
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-pos.ts

@@ -51,7 +51,7 @@ export interface SysPos {
      * @type {number}
      * @memberof SysPos
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-print.ts

@@ -52,7 +52,7 @@ export interface SysPrint {
      * @type {number}
      * @memberof SysPrint
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-role.ts

@@ -52,7 +52,7 @@ export interface SysRole {
      * @type {number}
      * @memberof SysRole
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

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

@@ -56,7 +56,7 @@ export interface SysUser {
      * @type {number}
      * @memberof SysUser
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-wechat-pay.ts

@@ -50,7 +50,7 @@ export interface SysWechatPay {
      * @type {number}
      * @memberof SysWechatPay
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-wechat-refund.ts

@@ -50,7 +50,7 @@ export interface SysWechatRefund {
      * @type {number}
      * @memberof SysWechatRefund
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/sys-wechat-user.ts

@@ -51,7 +51,7 @@ export interface SysWechatUser {
      * @type {number}
      * @memberof SysWechatUser
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/tenant-output.ts

@@ -53,7 +53,7 @@ export interface TenantOutput {
      * @type {number}
      * @memberof TenantOutput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 22 - 0
Web/src/api-services/models/update-code-gen-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface UpdateCodeGenInput {
 
+    /**
+     * @type {Search}
+     * @memberof UpdateCodeGenInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof UpdateCodeGenInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof UpdateCodeGenInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 1 - 1
Web/src/api-services/models/update-config-input.ts

@@ -51,7 +51,7 @@ export interface UpdateConfigInput {
      * @type {number}
      * @memberof UpdateConfigInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/update-dict-data-input.ts

@@ -51,7 +51,7 @@ export interface UpdateDictDataInput {
      * @type {number}
      * @memberof UpdateDictDataInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/update-dict-type-input.ts

@@ -52,7 +52,7 @@ export interface UpdateDictTypeInput {
      * @type {number}
      * @memberof UpdateDictTypeInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/update-menu-input.ts

@@ -53,7 +53,7 @@ export interface UpdateMenuInput {
      * @type {number}
      * @memberof UpdateMenuInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/update-notice-input.ts

@@ -52,7 +52,7 @@ export interface UpdateNoticeInput {
      * @type {number}
      * @memberof UpdateNoticeInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 8 - 1
Web/src/api-services/models/update-open-access-input.ts

@@ -12,6 +12,7 @@
  * Do not edit the class manually.
  */
 
+import { SysUser } from './sys-user';
  /**
  * 
  *
@@ -50,7 +51,7 @@ export interface UpdateOpenAccessInput {
      * @type {number}
      * @memberof UpdateOpenAccessInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名
@@ -92,6 +93,12 @@ export interface UpdateOpenAccessInput {
      */
     bindTenantId?: number;
 
+    /**
+     * @type {SysUser}
+     * @memberof UpdateOpenAccessInput
+     */
+    bindUser?: SysUser;
+
     /**
      * 身份标识
      *

+ 1 - 1
Web/src/api-services/models/update-org-input.ts

@@ -52,7 +52,7 @@ export interface UpdateOrgInput {
      * @type {number}
      * @memberof UpdateOrgInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/update-plugin-input.ts

@@ -51,7 +51,7 @@ export interface UpdatePluginInput {
      * @type {number}
      * @memberof UpdatePluginInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/update-pos-input.ts

@@ -51,7 +51,7 @@ export interface UpdatePosInput {
      * @type {number}
      * @memberof UpdatePosInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/update-print-input.ts

@@ -52,7 +52,7 @@ export interface UpdatePrintInput {
      * @type {number}
      * @memberof UpdatePrintInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/update-role-input.ts

@@ -52,7 +52,7 @@ export interface UpdateRoleInput {
      * @type {number}
      * @memberof UpdateRoleInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/update-sys-ldap-input.ts

@@ -51,7 +51,7 @@ export interface UpdateSysLdapInput {
      * @type {number}
      * @memberof UpdateSysLdapInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 1 - 1
Web/src/api-services/models/update-tenant-input.ts

@@ -53,7 +53,7 @@ export interface UpdateTenantInput {
      * @type {number}
      * @memberof UpdateTenantInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

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

@@ -57,7 +57,7 @@ export interface UpdateUserInput {
      * @type {number}
      * @memberof UpdateUserInput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

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

@@ -56,7 +56,7 @@ export interface UserOutput {
      * @type {number}
      * @memberof UserOutput
      */
-    createUserId?: number | null;
+    createUserId?: number;
 
     /**
      * 创建者姓名

+ 22 - 0
Web/src/api-services/models/wechat-pay-page-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface WechatPayPageInput {
 
+    /**
+     * @type {Search}
+     * @memberof WechatPayPageInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof WechatPayPageInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof WechatPayPageInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 22 - 0
Web/src/api-services/models/wechat-user-input.ts

@@ -12,6 +12,8 @@
  * Do not edit the class manually.
  */
 
+import { Filter } from './filter';
+import { Search } from './search';
  /**
  * 
  *
@@ -20,6 +22,26 @@
  */
 export interface WechatUserInput {
 
+    /**
+     * @type {Search}
+     * @memberof WechatUserInput
+     */
+    search?: Search;
+
+    /**
+     * 模糊查询关键字
+     *
+     * @type {string}
+     * @memberof WechatUserInput
+     */
+    keyword?: string | null;
+
+    /**
+     * @type {Filter}
+     * @memberof WechatUserInput
+     */
+    filter?: Filter;
+
     /**
      * 当前页码
      *

+ 146 - 145
Web/src/views/system/infoSetting/index.vue

@@ -1,168 +1,169 @@
 <template>
-    <div>
-        <el-card shadow="hover" v-loading="state.isLoading">
-            <el-descriptions title="系统信息配置" :column="2" :border="true">
-                <template #title>
-                    <el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Setting /> </el-icon> 系统信息配置
-                </template>
-                <el-descriptions-item label="系统图标" :span="2">
-                    <!-- <template #label>
+	<div>
+		<el-card shadow="hover" v-loading="state.isLoading">
+			<el-descriptions title="系统信息配置" :column="2" :border="true">
+				<template #title>
+					<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Setting /> </el-icon> 系统信息配置
+				</template>
+				<el-descriptions-item label="系统图标" :span="2">
+					<!-- <template #label>
 						<div class="cell-item">
 							<el-icon><ele-PictureRounded /></el-icon> 系统图标
 						</div>
 					</template> -->
-                    <el-upload class="avatar-uploader" :name="sysfilename" :showFileList="false" :autoUpload="false" accept=".jpg,.png,.svg" action="" :limit="1" :onChange="handleUploadChange">
-                        <img v-if="state.formData.sysLogo" :src="state.formData.sysLogo" class="avatar" />
-                        <SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" :size="28" />
-                    </el-upload>
-                </el-descriptions-item>
-                <el-descriptions-item label="系统主标题">
-                    <el-input v-model="state.formData.sysTitle" />
-                </el-descriptions-item>
-                <el-descriptions-item label="系统副标题">
-                    <el-input v-model="state.formData.sysViceTitle" />
-                </el-descriptions-item>
-                <el-descriptions-item label="系统描述" :span="2">
-                    <el-input v-model="state.formData.sysViceDesc" />
-                </el-descriptions-item>
-                <el-descriptions-item label="水印内容" :span="2">
-                    <el-input v-model="state.formData.sysWatermark" />
-                </el-descriptions-item>
-                <el-descriptions-item label="版权说明" :span="2">
-                    <el-input v-model="state.formData.sysCopyright" />
-                </el-descriptions-item>
-                <el-descriptions-item label="ICP备案号">
-                    <el-input v-model="state.formData.sysIcp" />
-                </el-descriptions-item>
-                <el-descriptions-item label="ICP地址">
-                    <el-input v-model="state.formData.sysIcpUrl" />
-                </el-descriptions-item>
-                <template #extra>
-                    <el-button type="primary" icon="ele-SuccessFilled" @click="onSave">保存</el-button>
-                </template>
-            </el-descriptions>
-        </el-card>
-    </div>
+					<el-upload class="avatar-uploader" :name="sysfilename" :showFileList="false" :autoUpload="false" accept=".jpg,.png,.svg" action="" :limit="1" :onChange="handleUploadChange">
+						<img v-if="state.formData.sysLogo" :src="state.formData.sysLogo" class="avatar" />
+						<SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" :size="28" />
+					</el-upload>
+				</el-descriptions-item>
+				<el-descriptions-item label="系统主标题">
+					<el-input v-model="state.formData.sysTitle" />
+				</el-descriptions-item>
+				<el-descriptions-item label="系统副标题">
+					<el-input v-model="state.formData.sysViceTitle" />
+				</el-descriptions-item>
+				<el-descriptions-item label="系统描述" :span="2">
+					<el-input v-model="state.formData.sysViceDesc" />
+				</el-descriptions-item>
+				<el-descriptions-item label="水印内容" :span="2">
+					<el-input v-model="state.formData.sysWatermark" />
+				</el-descriptions-item>
+				<el-descriptions-item label="版权说明" :span="2">
+					<el-input v-model="state.formData.sysCopyright" />
+				</el-descriptions-item>
+				<el-descriptions-item label="ICP备案号">
+					<el-input v-model="state.formData.sysIcp" />
+				</el-descriptions-item>
+				<el-descriptions-item label="ICP地址">
+					<el-input v-model="state.formData.sysIcpUrl" />
+				</el-descriptions-item>
+				<template #extra>
+					<el-button type="primary" icon="ele-SuccessFilled" @click="onSave">保存</el-button>
+				</template>
+			</el-descriptions>
+		</el-card>
+	</div>
 </template>
 
 <script setup lang="ts" name="sysInfoSetting">
-    import { nextTick, reactive } from 'vue';
-    import { getAPI } from '/@/utils/axios-utils';
-    import { SysConfigApi } from '/@/api-services';
-    import { ElMessage } from 'element-plus';
-    import { fileToBase64 } from '/@/utils/base64Conver';
+import { nextTick, reactive } from 'vue';
+import { ElMessage } from 'element-plus';
+import { fileToBase64 } from '/@/utils/base64Conver';
 
-    const state = reactive({
-    	isLoading: false,
-    	file: undefined as any,
-    	formData: {
-    		sysLogoBlob: undefined,
-    		sysLogo: '',
-    		sysTitle: '',
-    		sysViceTitle: '',
-    		sysViceDesc: '',
-    		sysWatermark: '',
-    		sysCopyright: '',
-    		sysIcp: '',
-    		sysIcpUrl: '',
-    	},
-    });
+import { getAPI } from '/@/utils/axios-utils';
+import { SysConfigApi } from '/@/api-services';
 
-    // 通过onChange方法获得文件列表
-    const handleUploadChange = (file: any) => {
-    	state.file = file;
-    	// 改变 sysLogo,显示预览
-    	state.formData.sysLogo = URL.createObjectURL(state.file.raw);
-    };
+const state = reactive({
+	isLoading: false,
+	file: undefined as any,
+	formData: {
+		sysLogoBlob: undefined,
+		sysLogo: '',
+		sysTitle: '',
+		sysViceTitle: '',
+		sysViceDesc: '',
+		sysWatermark: '',
+		sysCopyright: '',
+		sysIcp: '',
+		sysIcpUrl: '',
+	},
+});
 
-    // 保存
-    const onSave = async () => {
-    	// 如果有选择图标,则转换为 base64
-    	let sysLogoBase64 = '';
-    	let sysLogoFileName = '';
-    	if (state.file) {
-    		sysLogoBase64 = (await fileToBase64(state.file.raw)) as string;
-    		sysLogoFileName = state.file.raw.name;
-    	}
+// 通过onChange方法获得文件列表
+const handleUploadChange = (file: any) => {
+	state.file = file;
+	// 改变 sysLogo,显示预览
+	state.formData.sysLogo = URL.createObjectURL(state.file.raw);
+};
 
-    	try {
-    		state.isLoading = true;
-    		const res = await getAPI(SysConfigApi).apiSysConfigSaveSysInfoPost({
-    			sysLogoBase64: sysLogoBase64,
-    			SysLogFileName: sysLogoFileName,
-    			sysTitle: state.formData.sysTitle,
-    			sysViceTitle: state.formData.sysViceTitle,
-    			sysViceDesc: state.formData.sysViceDesc,
-    			sysWatermark: state.formData.sysWatermark,
-    			sysCopyright: state.formData.sysCopyright,
-    			sysIcp: state.formData.sysIcp,
-    			sysIcpUrl: state.formData.sysIcpUrl,
-    		});
-    		if (res.data!.type !== 'success') return;
+// 保存
+const onSave = async () => {
+	// 如果有选择图标,则转换为 base64
+	let sysLogoBase64 = '';
+	let sysLogoFileName = '';
+	if (state.file) {
+		sysLogoBase64 = (await fileToBase64(state.file.raw)) as string;
+		sysLogoFileName = state.file.raw.name;
+	}
 
-    		// 清空 file 变量
-    		state.file = undefined;
-    		await loadData();
-    		ElMessage.success('保存成功');
-    	} finally {
-    		nextTick(() => {
-    			state.isLoading = false;
-    		});
-    	}
-    };
+	try {
+		state.isLoading = true;
+		const res = await getAPI(SysConfigApi).apiSysConfigSaveSysInfoPost({
+			sysLogoBase64: sysLogoBase64,
+			SysLogFileName: sysLogoFileName,
+			sysTitle: state.formData.sysTitle,
+			sysViceTitle: state.formData.sysViceTitle,
+			sysViceDesc: state.formData.sysViceDesc,
+			sysWatermark: state.formData.sysWatermark,
+			sysCopyright: state.formData.sysCopyright,
+			sysIcp: state.formData.sysIcp,
+			sysIcpUrl: state.formData.sysIcpUrl,
+		});
+		if (res.data!.type !== 'success') return;
 
-    // 加载数据
-    const loadData = async () => {
-    	try {
-    		state.isLoading = true;
-    		const res = await getAPI(SysConfigApi).apiSysConfigSysInfoGet();
-    		if (res.data!.type !== 'success') return;
+		// 清空 file 变量
+		state.file = undefined;
+		await loadData();
+		ElMessage.success('保存成功');
+	} finally {
+		nextTick(() => {
+			state.isLoading = false;
+		});
+	}
+};
 
-    		const result = res.data.result;
-    		state.formData = {
-    			sysLogoBlob: undefined,
-    			sysLogo: result.sysLogo,
-    			sysTitle: result.sysTitle,
-    			sysViceTitle: result.sysViceTitle,
-    			sysViceDesc: result.sysViceDesc,
-    			sysWatermark: result.sysWatermark,
-    			sysCopyright: result.sysCopyright,
-    			sysIcp: result.sysIcp,
-    			sysIcpUrl: result.sysIcpUrl,
-    		};
-    	} finally {
-    		nextTick(() => {
-    			state.isLoading = false;
-    		});
-    	}
-    };
+// 加载数据
+const loadData = async () => {
+	try {
+		state.isLoading = true;
+		const res = await getAPI(SysConfigApi).apiSysConfigSysInfoGet();
+		if (res.data!.type !== 'success') return;
 
-    loadData();
+		const result = res.data.result;
+		state.formData = {
+			sysLogoBlob: undefined,
+			sysLogo: result.sysLogo,
+			sysTitle: result.sysTitle,
+			sysViceTitle: result.sysViceTitle,
+			sysViceDesc: result.sysViceDesc,
+			sysWatermark: result.sysWatermark,
+			sysCopyright: result.sysCopyright,
+			sysIcp: result.sysIcp,
+			sysIcpUrl: result.sysIcpUrl,
+		};
+	} finally {
+		nextTick(() => {
+			state.isLoading = false;
+		});
+	}
+};
+
+loadData();
 </script>
 
 <style lang="scss" scoped>
-    .avatar-uploader .avatar {
-    	width: 100px;
-    	height: 100px;
-    	display: block;
-    }
+.avatar-uploader .avatar {
+	width: 100px;
+	height: 100px;
+	display: block;
+}
 
-    :deep(.avatar-uploader) .el-upload {
-    	border: 1px dashed var(--el-border-color);
-    	cursor: pointer;
-    	position: relative;
-    	overflow: hidden;
-    	transition: var(--el-transition-duration-fast);
-    }
+:deep(.avatar-uploader) .el-upload {
+	border: 1px dashed var(--el-border-color);
+	cursor: pointer;
+	position: relative;
+	overflow: hidden;
+	transition: var(--el-transition-duration-fast);
+}
 
-    :deep(.avatar-uploader) .el-upload:hover {
-    	border-color: var(--el-color-primary);
-    }
+:deep(.avatar-uploader) .el-upload:hover {
+	border-color: var(--el-color-primary);
+}
 
-    .el-icon.avatar-uploader-icon {
-    	color: #8c939d;
-    	width: 100px;
-    	height: 100px;
-    	text-align: center;
-    }
+.el-icon.avatar-uploader-icon {
+	color: #8c939d;
+	width: 100px;
+	height: 100px;
+	text-align: center;
+}
 </style>