Browse Source

😎更新接口文件及整理代码

zuohuaijun 2 years ago
parent
commit
8605f6d9db

+ 6 - 4
Admin.NET/Admin.NET.Application/Admin.NET.Application.csproj

@@ -9,6 +9,12 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <Compile Remove="Service\**" />
+    <EmbeddedResource Remove="Service\**" />
+    <None Remove="Service\**" />
+  </ItemGroup>
+
+  <ItemGroup>
     <None Remove="Admin.NET.Application.xml" />
     <None Remove="Configuration\Limit.json" />
     <None Remove="Configuration\Logging.json" />
@@ -80,8 +86,4 @@
     </None>
   </ItemGroup>
 
-  <ItemGroup>
-    <Folder Include="Service\" />
-  </ItemGroup>
-
 </Project>

+ 1 - 1
Admin.NET/Admin.NET.Application/Configuration/Database.json

@@ -8,7 +8,7 @@
       {
         //"ConfigId": "1300000000001", // 默认库标识-禁止修改
         "DbType": "Sqlite", // MySql、SqlServer、Sqlite、Oracle、PostgreSQL、Dm、Kdbndp、Oscar、MySqlConnector、Access、OpenGauss、QuestDB、HG、ClickHouse、GBase、Odbc、Custom
-        "ConnectionString": "DataSource=F:\\CodeProject\\gkxsn.com\\Admin.NET\\Admin.NET\\Admin.NET.Web.Entry\\bin\\Debug\\net6.0Admin.NET.db", // 库连接字符串
+        "ConnectionString": "DataSource=./Admin.NET.db", // 库连接字符串
         //"SlaveConnectionConfigs": [ // 读写分离/主从
         //	{
         //		"HitRate": 10,

+ 1 - 1
Admin.NET/Admin.NET.Core/Const/CommonConst.cs

@@ -77,5 +77,5 @@ public class CommonConst
     /// <summary>
     /// 开启域登录验证
     /// </summary>
-    public const string SysDomainLogin= "sys_domain_login";
+    public const string SysDomainLogin = "sys_domain_login";
 }

+ 17 - 13
Admin.NET/Admin.NET.Core/Entity/SysLdap.cs

@@ -6,61 +6,65 @@
 //
 // 任何基于本项目二次开发而产生的一切法律纠纷和责任,均与作者无关
 
-using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinExpressBusinessAccountGetAllResponse.Types;
-
 namespace Admin.NET.Core;
+
 /// <summary>
 /// 系统域登录信息配置表
 /// </summary>
 [SugarTable(null, "系统域登录信息配置表")]
 [SysTable]
-public class SysLdap: EntityTenant
+public class SysLdap : EntityTenant
 {
     /// <summary>
     /// 主机
     /// </summary>
     [SugarColumn(ColumnDescription = "主机", Length = 128)]
-    public string Host { get; set; }
+    [Required]
+    public virtual string Host { get; set; }
 
     /// <summary>
     /// 端口
     /// </summary>
     [SugarColumn(ColumnDescription = "端口")]
-    public Int16 Port { get; set; }
+    public virtual int Port { get; set; }
 
     /// <summary>
     /// 用户搜索基准
     /// </summary>
-    [SugarColumn(ColumnDescription = "用户搜索基准",Length =128)]
-    public string BaseDn {  get; set; }
+    [SugarColumn(ColumnDescription = "用户搜索基准", Length = 128)]
+    [Required]
+    public virtual string BaseDn { get; set; }
 
     /// <summary>
     /// 绑定DN(有管理权限制的用户)
     /// </summary>
-    [SugarColumn(ColumnDescription = "绑定DN", Length =32)]
-    public string BindDn { get; set; }
+    [SugarColumn(ColumnDescription = "绑定DN", Length = 32)]
+    [Required]
+    public virtual string BindDn { get; set; }
 
     /// <summary>
     /// 绑定密码(有管理权限制的用户密码)
     /// </summary>
     [SugarColumn(ColumnDescription = "绑定密码", Length = 512)]
-    public string BindPass { get; set; }
+    [Required]
+    public virtual string BindPass { get; set; }
 
     /// <summary>
     /// 用户过滤规则
     /// </summary>
     [SugarColumn(ColumnDescription = "用户过滤规则", Length = 128)]
-    public string AuthFilter { get; set; } = "sAMAccountName";
+    [Required]
+    public virtual string AuthFilter { get; set; } = "sAMAccountName";
 
     /// <summary>
     /// Ldap版本
     /// </summary>
     [SugarColumn(ColumnDescription = "Ldap版本")]
-    public Int16 Version { get; set; }
+    public int Version { get; set; }
 
     /// <summary>
     /// 状态
     /// </summary>
     [SugarColumn(ColumnDescription = "状态")]
     public StatusEnum Status { get; set; } = StatusEnum.Enable;
-}
+}

+ 10 - 7
Admin.NET/Admin.NET.Core/Entity/SysUserLdap.cs

@@ -7,6 +7,7 @@
 // 任何基于本项目二次开发而产生的一切法律纠纷和责任,均与作者无关
 
 namespace Admin.NET.Core;
+
 /// <summary>
 /// 系统用户域配置表
 /// </summary>
@@ -14,13 +15,14 @@ namespace Admin.NET.Core;
 [SysTable]
 [SugarIndex("index_{table}_A", nameof(Account), OrderByType.Asc)]
 [SugarIndex("index_{table}_U", nameof(UserId), OrderByType.Asc)]
-public class SysUserLdap: EntityTenant
+public class SysUserLdap : EntityTenant
 {
     /// <summary>
-    /// 用户ID
+    /// 用户Id
     /// </summary>
-    [SugarColumn(ColumnDescription = "用户ID")]
-    public long UserId {  get; set; }
+    [SugarColumn(ColumnDescription = "用户Id")]
+    public long UserId { get; set; }
+
     /// <summary>
     /// 域账号
     /// AD域对应sAMAccountName
@@ -28,9 +30,10 @@ public class SysUserLdap: EntityTenant
     /// </summary>
     [SugarColumn(ColumnDescription = "域账号", Length = 32)]
     public string Account { get; set; }
+
     /// <summary>
-    /// 对应employeeID(用于数据导入对照)
+    /// 对应EmployeeId(用于数据导入对照)
     /// </summary>
-    [SugarColumn(ColumnDescription = "对应employeeID", Length = 32)]
+    [SugarColumn(ColumnDescription = "对应EmployeeId", Length = 32)]
     public string EmployeeId { get; set; }
-}
+}

+ 1 - 1
Admin.NET/Admin.NET.Core/SeedData/SysConfigSeedData.cs

@@ -31,7 +31,7 @@ public class SysConfigSeedData : ISqlSugarEntitySeedData<SysConfig>
             new SysConfig{ Id=1300000000108, Name="Token过期时间", Code="sys_token_expire", Value="10080", SysFlag=YesNoEnum.Y, Remark="Token过期时间(分钟)", OrderNo=8, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
             new SysConfig{ Id=1300000000109, Name="刷新Token过期时间", Code="sys_refresh_token_expire", Value="20160", SysFlag=YesNoEnum.Y, Remark="刷新Token过期时间(分钟)(一般 refresh_token 的有效时间 > 2 * access_token 的有效时间)", OrderNo=9, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
             new SysConfig{ Id=1300000000110, Name="发送异常日志邮件", Code="sys_error_mail", Value="True", SysFlag=YesNoEnum.Y, Remark="是否发送异常日志邮件", OrderNo=10, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
-            new SysConfig{ Id=1300000000111, Name="开启域登录验证", Code="sys_domain_login", Value="True", SysFlag=YesNoEnum.Y, Remark="是否开启域登录验证", OrderNo=11, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
+            new SysConfig{ Id=1300000000111, Name="开启域登录验证", Code="sys_domain_login", Value="False", SysFlag=YesNoEnum.Y, Remark="是否开启域登录验证", OrderNo=11, GroupCode="Default", CreateTime=DateTime.Parse("2022-02-10 00:00:00") },
         };
     }
 }

+ 5 - 5
Admin.NET/Admin.NET.Core/SeedData/SysMenuSeedData.cs

@@ -76,18 +76,18 @@ public class SysMenuSeedData : ISqlSugarEntitySeedData<SysMenu>
             new SysMenu{ Id=1310000000176, Pid=1310000000171, Title="发布", Permission="sysNotice:public", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
             new SysMenu{ Id=1310000000177, Pid=1310000000171, Title="撤回", Permission="sysNotice:cancel", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
 
-            new SysMenu{ Id=1310000000181, Pid=1310000000101, Title="三方账号", Path="/system/weChatUser", Name="weChatUser", Component="/system/weChatUser/index",Icon="ele-ChatDotRound", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=160 },
+            new SysMenu{ Id=1310000000181, Pid=1310000000101, Title="三方账号", Path="/system/weChatUser", Name="sysWechatUser", Component="/system/weChatUser/index",Icon="ele-ChatDotRound", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=160 },
             new SysMenu{ Id=1310000000182, Pid=1310000000181, Title="查询", Permission="sysWechatUser:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
             new SysMenu{ Id=1310000000183, Pid=1310000000181, Title="编辑", Permission="sysWechatUser:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
             new SysMenu{ Id=1310000000184, Pid=1310000000181, Title="增加", Permission="sysWechatUser:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
             new SysMenu{ Id=1310000000185, Pid=1310000000181, Title="删除", Permission="sysWechatUser:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
 
-            new SysMenu{ Id=1310000000191, Pid=1310000000101, Title="AD域配置", Path="/system/sysldap", Name="sysLdap", Component="/system/ldap/index",Icon="ele-Management", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=160 },
+            new SysMenu{ Id=1310000000191, Pid=1310000000101, Title="AD域配置", Path="/system/ldap", Name="sysLdap", Component="/system/ldap/index",Icon="ele-Place", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=170 },
             new SysMenu{ Id=1310000000192, Pid=1310000000191, Title="查询", Permission="sysLdap:page", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
             new SysMenu{ Id=1310000000193, Pid=1310000000191, Title="详情", Permission="sysLdap:detail", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=110 },
-            new SysMenu{ Id=1310000000193, Pid=1310000000191, Title="编辑", Permission="sysLdap:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=120 },
-            new SysMenu{ Id=1310000000194, Pid=1310000000191, Title="增加", Permission="sysLdap:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=130 },
-            new SysMenu{ Id=1310000000195, Pid=1310000000191, Title="删除", Permission="sysLdap:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=140 },
+            new SysMenu{ Id=1310000000194, Pid=1310000000191, Title="编辑", Permission="sysLdap:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=120 },
+            new SysMenu{ Id=1310000000195, Pid=1310000000191, Title="增加", Permission="sysLdap:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=130 },
+            new SysMenu{ Id=1310000000196, Pid=1310000000191, Title="删除", Permission="sysLdap:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=140 },
 
             new SysMenu{ Id=1310000000301, Pid=0, Title="平台管理", Path="/platform", Name="platform", Component="Layout", Icon="ele-Menu", Type=MenuTypeEnum.Dir, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=11000 },
 

+ 0 - 93
Admin.NET/Admin.NET.Core/Service/Auth/Dto/SysLdapDto.cs

@@ -1,93 +0,0 @@
-namespace Admin.NET.Core.Service;
-
-/// <summary>
-/// 系统域登录信息配置表输出参数
-/// </summary>
-public class SysLdapDto
-    {
-        /// <summary>
-        /// 主键Id
-        /// </summary>
-        public long Id { get; set; }
-        
-        /// <summary>
-        /// 主机
-        /// </summary>
-        public string Host { get; set; }
-        
-        /// <summary>
-        /// 端口
-        /// </summary>
-        public Int16 Port { get; set; }
-        
-        /// <summary>
-        /// 用户搜索基准
-        /// </summary>
-        public string BaseDn { get; set; }
-        
-        /// <summary>
-        /// 绑定DN
-        /// </summary>
-        public string BindDn { get; set; }
-        
-        /// <summary>
-        /// 绑定密码
-        /// </summary>
-        public string BindPass { get; set; }
-        
-        /// <summary>
-        /// 用户过滤规则
-        /// </summary>
-        public string AuthFilter { get; set; }
-        
-        /// <summary>
-        /// Ldap版本
-        /// </summary>
-        public Int16 Version { get; set; }
-        
-        /// <summary>
-        /// 状态
-        /// </summary>
-        public long Status { get; set; }
-        
-        /// <summary>
-        /// 租户Id
-        /// </summary>
-        public long? TenantId { get; set; }
-        
-        /// <summary>
-        /// 创建时间
-        /// </summary>
-        public DateTime? CreateTime { get; set; }
-        
-        /// <summary>
-        /// 更新时间
-        /// </summary>
-        public DateTime? UpdateTime { get; set; }
-        
-        /// <summary>
-        /// 创建者Id
-        /// </summary>
-        public long? CreateUserId { get; set; }
-        
-        /// <summary>
-        /// 创建者姓名
-        /// </summary>
-        public string? CreateUserName { get; set; }
-        
-        /// <summary>
-        /// 修改者Id
-        /// </summary>
-        public long? UpdateUserId { get; set; }
-        
-        /// <summary>
-        /// 修改者姓名
-        /// </summary>
-        public string? UpdateUserName { get; set; }
-        
-        /// <summary>
-        /// 软删除
-        /// </summary>
-        public bool IsDelete { get; set; }
-        
-    }

+ 29 - 182
Admin.NET/Admin.NET.Core/Service/Auth/Dto/SysLdapInput.cs

@@ -1,194 +1,41 @@
-namespace Admin.NET.Core.Service;
+// 大名科技(天津)有限公司 版权所有
+//
+// 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
+//
+// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动
+//
+// 任何基于本项目二次开发而产生的一切法律纠纷和责任,均与作者无关
+
+namespace Admin.NET.Core.Service;
 
 /// <summary>
-/// 系统域登录信息配置表基础输入参数
+/// 系统域登录信息配置表分页查询输入参数
 /// </summary>
-public class SysLdapBaseInput
-    {
-        /// <summary>
-        /// 主机
-        /// </summary>
-        public virtual string Host { get; set; }
-        
-        /// <summary>
-        /// 端口
-        /// </summary>
-        public virtual Int16 Port { get; set; }
-        
-        /// <summary>
-        /// 用户搜索基准
-        /// </summary>
-        public virtual string BaseDn { get; set; }
-        
-        /// <summary>
-        /// 绑定DN
-        /// </summary>
-        public virtual string BindDn { get; set; }
-        
-        /// <summary>
-        /// 绑定密码
-        /// </summary>
-        public virtual string BindPass { get; set; }
-        
-        /// <summary>
-        /// 用户过滤规则
-        /// </summary>
-        public virtual string AuthFilter { get; set; }
-        
-        /// <summary>
-        /// Ldap版本
-        /// </summary>
-        public virtual Int16 Version { get; set; }
-        
-        /// <summary>
-        /// 状态
-        /// </summary>
-        public virtual long Status { get; set; }
-        
-        /// <summary>
-        /// 租户Id
-        /// </summary>
-        public virtual long? TenantId { get; set; }
-        
-        /// <summary>
-        /// 创建时间
-        /// </summary>
-        public virtual DateTime? CreateTime { get; set; }
-        
-        /// <summary>
-        /// 更新时间
-        /// </summary>
-        public virtual DateTime? UpdateTime { get; set; }
-        
-        /// <summary>
-        /// 创建者Id
-        /// </summary>
-        public virtual long? CreateUserId { get; set; }
-        
-        /// <summary>
-        /// 创建者姓名
-        /// </summary>
-        public virtual string? CreateUserName { get; set; }
-        
-        /// <summary>
-        /// 修改者Id
-        /// </summary>
-        public virtual long? UpdateUserId { get; set; }
-        
-        /// <summary>
-        /// 修改者姓名
-        /// </summary>
-        public virtual string? UpdateUserName { get; set; }
-        
-        /// <summary>
-        /// 软删除
-        /// </summary>
-        public virtual bool IsDelete { get; set; }
-        
-    }
-
+public class SysLdapInput : BasePageInput
+{
     /// <summary>
-    /// 系统域登录信息配置表分页查询输入参数
+    /// 关键字查询
     /// </summary>
-    public class SysLdapInput : BasePageInput
-    {
-        /// <summary>
-        /// 关键字查询
-        /// </summary>
-        public string? SearchKey { get; set; }
-
-        /// <summary>
-        /// 主机
-        /// </summary>
-        public string? Host { get; set; }
-        
-    }
+    public string? SearchKey { get; set; }
 
     /// <summary>
-    /// 系统域登录信息配置表增加输入参数
+    /// 主机
     /// </summary>
-    public class AddSysLdapInput : SysLdapBaseInput
-    {
-        /// <summary>
-        /// 主机
-        /// </summary>
-        [Required(ErrorMessage = "主机不能为空")]
-        public override string Host { get; set; }
-        
-        /// <summary>
-        /// 端口
-        /// </summary>
-        [Required(ErrorMessage = "端口不能为空")]
-        public override Int16 Port { get; set; }
-        
-        /// <summary>
-        /// 用户搜索基准
-        /// </summary>
-        [Required(ErrorMessage = "用户搜索基准不能为空")]
-        public override string BaseDn { get; set; }
-        
-        /// <summary>
-        /// 绑定DN
-        /// </summary>
-        [Required(ErrorMessage = "绑定DN不能为空")]
-        public override string BindDn { get; set; }
-        
-        /// <summary>
-        /// 绑定密码
-        /// </summary>
-        [Required(ErrorMessage = "绑定密码不能为空")]
-        public override string BindPass { get; set; }
-        
-        /// <summary>
-        /// 用户过滤规则
-        /// </summary>
-        [Required(ErrorMessage = "用户过滤规则不能为空")]
-        public override string AuthFilter { get; set; }
-        
-        /// <summary>
-        /// Ldap版本
-        /// </summary>
-        [Required(ErrorMessage = "Ldap版本不能为空")]
-        public override Int16 Version { get; set; }
-        
-        /// <summary>
-        /// 状态
-        /// </summary>
-        [Required(ErrorMessage = "状态不能为空")]
-        public override long Status { get; set; }
-        
-        /// <summary>
-        /// 软删除
-        /// </summary>
-        [Required(ErrorMessage = "软删除不能为空")]
-        public override bool IsDelete { get; set; }
-        
-    }
+    public string? Host { get; set; }
+}
 
-    /// <summary>
-    /// 系统域登录信息配置表删除输入参数
-    /// </summary>
-    public class DeleteSysLdapInput : BaseIdInput
-    {
-    }
+public class AddSysLdapInput : SysLdap
+{
+}
 
-    /// <summary>
-    /// 系统域登录信息配置表更新输入参数
-    /// </summary>
-    public class UpdateSysLdapInput : SysLdapBaseInput
-    {
-        /// <summary>
-        /// 主键Id
-        /// </summary>
-        [Required(ErrorMessage = "主键Id不能为空")]
-        public long Id { get; set; }
-        
-    }
+public class UpdateSysLdapInput : SysLdap
+{
+}
 
-    /// <summary>
-    /// 系统域登录信息配置表主键查询输入参数
-    /// </summary>
-    public class QueryByIdSysLdapInput : DeleteSysLdapInput
-    {
+public class DeleteSysLdapInput : BaseIdInput
+{
+}
 
-    }
+public class DetailSysLdapInput : BaseIdInput
+{
+}

+ 0 - 95
Admin.NET/Admin.NET.Core/Service/Auth/Dto/SysLdapOutput.cs

@@ -1,95 +0,0 @@
-namespace Admin.NET.Core.Service;
-
-/// <summary>
-/// 系统域登录信息配置表输出参数
-/// </summary>
-public class SysLdapOutput
-{
-    /// <summary>
-    /// 主键Id
-    /// </summary>
-    public long Id { get; set; }
-    
-    /// <summary>
-    /// 主机
-    /// </summary>
-    public string Host { get; set; }
-    
-    /// <summary>
-    /// 端口
-    /// </summary>
-    public Int16 Port { get; set; }
-    
-    /// <summary>
-    /// 用户搜索基准
-    /// </summary>
-    public string BaseDn { get; set; }
-    
-    /// <summary>
-    /// 绑定DN
-    /// </summary>
-    public string BindDn { get; set; }
-    
-    /// <summary>
-    /// 绑定密码
-    /// </summary>
-    public string BindPass { get; set; }
-    
-    /// <summary>
-    /// 用户过滤规则
-    /// </summary>
-    public string AuthFilter { get; set; }
-    
-    /// <summary>
-    /// Ldap版本
-    /// </summary>
-    public Int16 Version { get; set; }
-    
-    /// <summary>
-    /// 状态
-    /// </summary>
-    public long Status { get; set; }
-    
-    /// <summary>
-    /// 租户Id
-    /// </summary>
-    public long? TenantId { get; set; }
-    
-    /// <summary>
-    /// 创建时间
-    /// </summary>
-    public DateTime? CreateTime { get; set; }
-    
-    /// <summary>
-    /// 更新时间
-    /// </summary>
-    public DateTime? UpdateTime { get; set; }
-    
-    /// <summary>
-    /// 创建者Id
-    /// </summary>
-    public long? CreateUserId { get; set; }
-    
-    /// <summary>
-    /// 创建者姓名
-    /// </summary>
-    public string? CreateUserName { get; set; }
-    
-    /// <summary>
-    /// 修改者Id
-    /// </summary>
-    public long? UpdateUserId { get; set; }
-    
-    /// <summary>
-    /// 修改者姓名
-    /// </summary>
-    public string? UpdateUserName { get; set; }
-    
-    /// <summary>
-    /// 软删除
-    /// </summary>
-    public bool IsDelete { get; set; }
-    
-    }
- 
-

+ 0 - 1
Admin.NET/Admin.NET.Core/Service/Auth/SysAuthService.cs

@@ -94,7 +94,6 @@ public class SysAuthService : IDynamicApiController, ITransient
         // 是否开启域登录验证
         if (await _sysConfigService.GetConfigValue<bool>(CommonConst.SysDomainLogin))
         {
-            // 判断验证码
             if (!await _sysLdapService.Auth(tenant.Id, user.Id, input.Password))
             {
                 _sysCacheService.Set(keyErrorPasswordCount, ++errorPasswordCount, TimeSpan.FromMinutes(30));

+ 58 - 59
Admin.NET/Admin.NET.Core/Service/Auth/SysLdapService.cs

@@ -1,106 +1,107 @@
-using Novell.Directory.Ldap;
+// 大名科技(天津)有限公司 版权所有
+//
+// 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
+//
+// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动
+//
+// 任何基于本项目二次开发而产生的一切法律纠纷和责任,均与作者无关
+
+using Novell.Directory.Ldap;
 
 namespace Admin.NET.Core;
+
 /// <summary>
 /// 系统域登录信息配置表服务
 /// </summary>
 [ApiDescriptionSettings(Order = 100)]
 public class SysLdapService : IDynamicApiController, ITransient
 {
-    private readonly SqlSugarRepository<SysLdap> _rep;
-    private readonly SqlSugarRepository<SysUserLdap> _repUserLdap;
-    public SysLdapService(SqlSugarRepository<SysLdap> rep, SqlSugarRepository<SysUserLdap> repUserLdap)
+    private readonly SqlSugarRepository<SysLdap> _sysLdapRep;
+    private readonly SqlSugarRepository<SysUserLdap> _sysUserLdapRep;
+
+    public SysLdapService(SqlSugarRepository<SysLdap> rep, SqlSugarRepository<SysUserLdap> sysUserLdapRep)
     {
-        _rep = rep;
-        _repUserLdap = repUserLdap;
+        _sysLdapRep = rep;
+        _sysUserLdapRep = sysUserLdapRep;
     }
 
     /// <summary>
-    /// 分页查询系统域登录信息配置
+    /// 获取系统域登录信息配置分页列
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
-    [HttpPost]
-    [ApiDescriptionSettings(Name = "Page")]
-    public async Task<SqlSugarPagedList<SysLdapOutput>> Page(SysLdapInput input)
+    public async Task<SqlSugarPagedList<SysLdap>> Page(SysLdapInput input)
     {
-        var query = _rep.AsQueryable()
-            .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u =>
-                u.Host.Contains(input.SearchKey.Trim())
-            )
-            .WhereIF(!string.IsNullOrWhiteSpace(input.Host), u => u.Host.Contains(input.Host.Trim()))
-            .Select<SysLdapOutput>();
-        return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
+        return await _sysLdapRep.AsQueryable()
+             .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u => u.Host.Contains(input.SearchKey.Trim()))
+             .WhereIF(!string.IsNullOrWhiteSpace(input.Host), u => u.Host.Contains(input.Host.Trim()))
+            .OrderBy(u => u.CreateTime, OrderByType.Desc)
+            .ToPagedListAsync(input.Page, input.PageSize);
     }
 
     /// <summary>
-    /// 增加系统域登录信息配置
+    /// 增加系统域登录信息配置
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
-    [HttpPost]
-    [ApiDescriptionSettings(Name = "Add")]
+    [ApiDescriptionSettings(Name = "Add"), HttpPost]
     public async Task<long> Add(AddSysLdapInput input)
     {
         var entity = input.Adapt<SysLdap>();
         entity.BindPass = CryptogramUtil.Encrypt(input.BindPass);
-        await _rep.InsertAsync(entity);
+        await _sysLdapRep.InsertAsync(entity);
         return entity.Id;
     }
 
     /// <summary>
-    /// 删除系统域登录信息配置表
+    /// 更新系统域登录信息配置
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
-    [HttpPost]
-    [ApiDescriptionSettings(Name = "Delete")]
-    public async Task Delete(DeleteSysLdapInput input)
+    [ApiDescriptionSettings(Name = "Update"), HttpPost]
+    public async Task Update(UpdateSysLdapInput input)
     {
-        var entity = await _rep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
-        await _rep.FakeDeleteAsync(entity);   //假删除
-        //await _rep.DeleteAsync(entity);   //真删除
+        var entity = input.Adapt<SysLdap>();
+        if (!string.IsNullOrEmpty(input.BindPass) && input.BindPass.Length < 32)
+        {
+            entity.BindPass = CryptogramUtil.Encrypt(input.BindPass); // 加密
+        }
+        await _sysLdapRep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
     }
 
     /// <summary>
-    /// 更新系统域登录信息配置表
+    /// 删除系统域登录信息配置
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
-    [HttpPost]
-    [ApiDescriptionSettings(Name = "Update")]
-    public async Task Update(UpdateSysLdapInput input)
+    [ApiDescriptionSettings(Name = "Delete"), HttpPost]
+    public async Task Delete(DeleteSysLdapInput input)
     {
-        var entity = input.Adapt<SysLdap>();
-        if (!string.IsNullOrEmpty(input.BindPass) && input.BindPass.Length < 32)
-        {
-            entity.BindPass = CryptogramUtil.Encrypt(input.BindPass);//未加密的字符串执行加密
-        }
-        await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+        var entity = await _sysLdapRep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
+        await _sysLdapRep.FakeDeleteAsync(entity);  // 假删除
+        //await _rep.DeleteAsync(entity);  // 真删除
     }
 
     /// <summary>
-    /// 获取系统域登录信息配置
+    /// 获取系统域登录信息配置详情
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
-    [HttpGet]
     [ApiDescriptionSettings(Name = "Detail")]
-    public async Task<SysLdap> Detail([FromQuery] QueryByIdSysLdapInput input)
+    public async Task<SysLdap> GetDetail([FromQuery] DetailSysLdapInput input)
     {
-        return await _rep.GetFirstAsync(u => u.Id == input.Id);
+        return await _sysLdapRep.GetFirstAsync(u => u.Id == input.Id);
     }
 
     /// <summary>
-    /// 获取系统域登录信息配置列表
+    /// 获取系统域登录信息配置列表
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
-    [HttpGet]
     [ApiDescriptionSettings(Name = "List")]
-    public async Task<List<SysLdapOutput>> List([FromQuery] SysLdapInput input)
+    public async Task<List<SysLdap>> GetList([FromQuery] SysLdapInput input)
     {
-        return await _rep.AsQueryable().Select<SysLdapOutput>().ToListAsync();
+        return await _sysLdapRep.AsQueryable().Select<SysLdap>().ToListAsync();
     }
 
     /// <summary>
@@ -113,20 +114,19 @@ public class SysLdapService : IDynamicApiController, ITransient
     [NonAction]
     public async Task<bool> Auth(long tenantId, long userId, string password)
     {
-        var user = await _repUserLdap.GetFirstAsync(u => u.UserId == userId && u.TenantId == tenantId) ?? throw Oops.Oh(ErrorCodeEnum.D0009);
-        var ldap = await _rep.GetFirstAsync(u => u.TenantId == tenantId) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
-        LdapConnection conn = new LdapConnection();
+        var user = await _sysUserLdapRep.GetFirstAsync(u => u.UserId == userId && u.TenantId == tenantId) ?? throw Oops.Oh(ErrorCodeEnum.D0009);
+        var ldap = await _sysLdapRep.GetFirstAsync(u => u.TenantId == tenantId) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
+        var ldapConn = new LdapConnection();
         try
         {
-            conn.Connect(ldap.Host, ldap.Port);
-            conn.Bind(ldap.Version, ldap.BindDn, ldap.BindPass);
-            var userEntitys = conn.Search(ldap.BaseDn, LdapConnection.ScopeSub, $"{ldap.AuthFilter}={user.Account}", null, false);
+            ldapConn.Connect(ldap.Host, ldap.Port);
+            ldapConn.Bind(ldap.Version, ldap.BindDn, ldap.BindPass);
+            var userEntitys = ldapConn.Search(ldap.BaseDn, LdapConnection.ScopeSub, $"{ldap.AuthFilter}={user.Account}", null, false);
             string dn = string.Empty;
             while (userEntitys.HasMore())
             {
                 var entity = userEntitys.Next();
                 var sAMAccountName = entity.GetAttribute(ldap.AuthFilter)?.StringValue;
-
                 if (!string.IsNullOrEmpty(sAMAccountName))
                 {
                     dn = entity.Dn;
@@ -134,8 +134,8 @@ public class SysLdapService : IDynamicApiController, ITransient
                 }
             }
             if (string.IsNullOrEmpty(dn)) throw Oops.Oh(ErrorCodeEnum.D1002);
-            LdapAttribute attr = new LdapAttribute("userPassword", password);
-            conn.Bind(dn, password);
+            var attr = new LdapAttribute("userPassword", password);
+            ldapConn.Bind(dn, password);
         }
         catch (LdapException e)
         {
@@ -146,16 +146,15 @@ public class SysLdapService : IDynamicApiController, ITransient
                     throw Oops.Oh(ErrorCodeEnum.D0009);
                 case LdapException.InvalidCredentials:
                     return false;
+
                 default:
                     throw Oops.Oh(e.Message);
             }
         }
         finally
         {
-            conn.Disconnect();
+            ldapConn.Disconnect();
         }
         return true;
     }
-
-}
-
+}

+ 1 - 0
Web/src/api-services/api.ts

@@ -26,6 +26,7 @@ export * from './apis/sys-email-api';
 export * from './apis/sys-enum-api';
 export * from './apis/sys-file-api';
 export * from './apis/sys-job-api';
+export * from './apis/sys-ldap-api';
 export * from './apis/sys-log-diff-api';
 export * from './apis/sys-log-ex-api';
 export * from './apis/sys-log-op-api';

+ 0 - 99
Web/src/api-services/apis/sys-enum-api.ts

@@ -27,67 +27,6 @@ export const SysEnumApiAxiosParamCreator = function (configuration?: Configurati
     return {
         /**
          * 
-         * @summary 通过实体的字段名获取相关枚举值集合
-         * @param {string} entityName 实体名称
-         * @param {string} fieldName 字段名称
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        apiSysEnumEnumDataListByFieldGet: async (entityName: string, fieldName: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            // verify required parameter 'entityName' is not null or undefined
-            if (entityName === null || entityName === undefined) {
-                throw new RequiredError('entityName','Required parameter entityName was null or undefined when calling apiSysEnumEnumDataListByFieldGet.');
-            }
-            // verify required parameter 'fieldName' is not null or undefined
-            if (fieldName === null || fieldName === undefined) {
-                throw new RequiredError('fieldName','Required parameter fieldName was null or undefined when calling apiSysEnumEnumDataListByFieldGet.');
-            }
-            const localVarPath = `/api/sysEnum/enumDataListByField`;
-            // 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: 'GET', ...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 (entityName !== undefined) {
-                localVarQueryParameter['EntityName'] = entityName;
-            }
-
-            if (fieldName !== undefined) {
-                localVarQueryParameter['FieldName'] = fieldName;
-            }
-
-            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 通过枚举类型获取枚举值集合
          * @param {string} enumName 枚举类型名称
          * @param {*} [options] Override http request option.
@@ -192,21 +131,6 @@ export const SysEnumApiFp = function(configuration?: Configuration) {
     return {
         /**
          * 
-         * @summary 通过实体的字段名获取相关枚举值集合
-         * @param {string} entityName 实体名称
-         * @param {string} fieldName 字段名称
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async apiSysEnumEnumDataListByFieldGet(entityName: string, fieldName: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultListEnumEntity>>> {
-            const localVarAxiosArgs = await SysEnumApiAxiosParamCreator(configuration).apiSysEnumEnumDataListByFieldGet(entityName, fieldName, options);
-            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
-                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
-                return axios.request(axiosRequestArgs);
-            };
-        },
-        /**
-         * 
          * @summary 通过枚举类型获取枚举值集合
          * @param {string} enumName 枚举类型名称
          * @param {*} [options] Override http request option.
@@ -243,17 +167,6 @@ export const SysEnumApiFactory = function (configuration?: Configuration, basePa
     return {
         /**
          * 
-         * @summary 通过实体的字段名获取相关枚举值集合
-         * @param {string} entityName 实体名称
-         * @param {string} fieldName 字段名称
-         * @param {*} [options] Override http request option.
-         * @throws {RequiredError}
-         */
-        async apiSysEnumEnumDataListByFieldGet(entityName: string, fieldName: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultListEnumEntity>> {
-            return SysEnumApiFp(configuration).apiSysEnumEnumDataListByFieldGet(entityName, fieldName, options).then((request) => request(axios, basePath));
-        },
-        /**
-         * 
          * @summary 通过枚举类型获取枚举值集合
          * @param {string} enumName 枚举类型名称
          * @param {*} [options] Override http request option.
@@ -283,18 +196,6 @@ export const SysEnumApiFactory = function (configuration?: Configuration, basePa
 export class SysEnumApi extends BaseAPI {
     /**
      * 
-     * @summary 通过实体的字段名获取相关枚举值集合
-     * @param {string} entityName 实体名称
-     * @param {string} fieldName 字段名称
-     * @param {*} [options] Override http request option.
-     * @throws {RequiredError}
-     * @memberof SysEnumApi
-     */
-    public async apiSysEnumEnumDataListByFieldGet(entityName: string, fieldName: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultListEnumEntity>> {
-        return SysEnumApiFp(this.configuration).apiSysEnumEnumDataListByFieldGet(entityName, fieldName, options).then((request) => request(this.axios, this.basePath));
-    }
-    /**
-     * 
      * @summary 通过枚举类型获取枚举值集合
      * @param {string} enumName 枚举类型名称
      * @param {*} [options] Override http request option.

+ 120 - 0
Web/src/api-services/apis/sys-open-access-api.ts

@@ -21,6 +21,7 @@ import { AddOpenAccessInput } from '../models';
 import { AdminResultSqlSugarPagedListOpenAccessOutput } from '../models';
 import { AdminResultString } from '../models';
 import { DeleteOpenAccessInput } from '../models';
+import { HttpMethodEnum } from '../models';
 import { OpenAccessInput } from '../models';
 import { UpdateOpenAccessInput } from '../models';
 /**
@@ -127,6 +128,81 @@ export const SysOpenAccessApiAxiosParamCreator = function (configuration?: Confi
         },
         /**
          * 
+         * @summary 获取生成的签名
+         * @param {string} appSecret 密钥
+         * @param {string} accessKey 身份标识
+         * @param {string} url 请求接口地址
+         * @param {HttpMethodEnum} [method] 请求方法
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiSysOpenAccessGenerateSignatureGet: async (appSecret: string, accessKey: string, url: string, method?: HttpMethodEnum, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            // verify required parameter 'appSecret' is not null or undefined
+            if (appSecret === null || appSecret === undefined) {
+                throw new RequiredError('appSecret','Required parameter appSecret was null or undefined when calling apiSysOpenAccessGenerateSignatureGet.');
+            }
+            // verify required parameter 'accessKey' is not null or undefined
+            if (accessKey === null || accessKey === undefined) {
+                throw new RequiredError('accessKey','Required parameter accessKey was null or undefined when calling apiSysOpenAccessGenerateSignatureGet.');
+            }
+            // verify required parameter 'url' is not null or undefined
+            if (url === null || url === undefined) {
+                throw new RequiredError('url','Required parameter url was null or undefined when calling apiSysOpenAccessGenerateSignatureGet.');
+            }
+            const localVarPath = `/api/sysOpenAccess/generateSignature`;
+            // 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: 'GET', ...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 (appSecret !== undefined) {
+                localVarQueryParameter['AppSecret'] = appSecret;
+            }
+
+            if (accessKey !== undefined) {
+                localVarQueryParameter['AccessKey'] = accessKey;
+            }
+
+            if (method !== undefined) {
+                localVarQueryParameter['Method'] = method;
+            }
+
+            if (url !== undefined) {
+                localVarQueryParameter['Url'] = url;
+            }
+
+            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 获取开放接口身份分页列表
          * @param {OpenAccessInput} [body] 
          * @param {*} [options] Override http request option.
@@ -303,6 +379,23 @@ export const SysOpenAccessApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
+         * @summary 获取生成的签名
+         * @param {string} appSecret 密钥
+         * @param {string} accessKey 身份标识
+         * @param {string} url 请求接口地址
+         * @param {HttpMethodEnum} [method] 请求方法
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiSysOpenAccessGenerateSignatureGet(appSecret: string, accessKey: string, url: string, method?: HttpMethodEnum, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultString>>> {
+            const localVarAxiosArgs = await SysOpenAccessApiAxiosParamCreator(configuration).apiSysOpenAccessGenerateSignatureGet(appSecret, accessKey, url, method, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
          * @summary 获取开放接口身份分页列表
          * @param {OpenAccessInput} [body] 
          * @param {*} [options] Override http request option.
@@ -373,6 +466,19 @@ export const SysOpenAccessApiFactory = function (configuration?: Configuration,
         },
         /**
          * 
+         * @summary 获取生成的签名
+         * @param {string} appSecret 密钥
+         * @param {string} accessKey 身份标识
+         * @param {string} url 请求接口地址
+         * @param {HttpMethodEnum} [method] 请求方法
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiSysOpenAccessGenerateSignatureGet(appSecret: string, accessKey: string, url: string, method?: HttpMethodEnum, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultString>> {
+            return SysOpenAccessApiFp(configuration).apiSysOpenAccessGenerateSignatureGet(appSecret, accessKey, url, method, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
          * @summary 获取开放接口身份分页列表
          * @param {OpenAccessInput} [body] 
          * @param {*} [options] Override http request option.
@@ -434,6 +540,20 @@ export class SysOpenAccessApi extends BaseAPI {
     }
     /**
      * 
+     * @summary 获取生成的签名
+     * @param {string} appSecret 密钥
+     * @param {string} accessKey 身份标识
+     * @param {string} url 请求接口地址
+     * @param {HttpMethodEnum} [method] 请求方法
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof SysOpenAccessApi
+     */
+    public async apiSysOpenAccessGenerateSignatureGet(appSecret: string, accessKey: string, url: string, method?: HttpMethodEnum, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultString>> {
+        return SysOpenAccessApiFp(this.configuration).apiSysOpenAccessGenerateSignatureGet(appSecret, accessKey, url, method, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
      * @summary 获取开放接口身份分页列表
      * @param {OpenAccessInput} [body] 
      * @param {*} [options] Override http request option.

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

@@ -15,6 +15,7 @@ export * from './add-print-input';
 export * from './add-region-input';
 export * from './add-role-input';
 export * from './add-subscribe-message-template-input';
+export * from './add-sys-ldap-input';
 export * from './add-tenant-input';
 export * from './add-user-input';
 export * from './admin-result-boolean';
@@ -41,6 +42,7 @@ export * from './admin-result-list-sys-dict-type';
 export * from './admin-result-list-sys-file';
 export * from './admin-result-list-sys-job-cluster';
 export * from './admin-result-list-sys-job-trigger';
+export * from './admin-result-list-sys-ldap';
 export * from './admin-result-list-sys-menu';
 export * from './admin-result-list-sys-notice';
 export * from './admin-result-list-sys-org';
@@ -61,6 +63,7 @@ export * from './admin-result-sql-sugar-paged-list-sys-dict-data';
 export * from './admin-result-sql-sugar-paged-list-sys-dict-type';
 export * from './admin-result-sql-sugar-paged-list-sys-file';
 export * from './admin-result-sql-sugar-paged-list-sys-job-trigger-record';
+export * from './admin-result-sql-sugar-paged-list-sys-ldap';
 export * from './admin-result-sql-sugar-paged-list-sys-log-diff';
 export * from './admin-result-sql-sugar-paged-list-sys-log-ex';
 export * from './admin-result-sql-sugar-paged-list-sys-log-op';
@@ -82,6 +85,7 @@ export * from './admin-result-sys-config';
 export * from './admin-result-sys-dict-data';
 export * from './admin-result-sys-dict-type';
 export * from './admin-result-sys-file';
+export * from './admin-result-sys-ldap';
 export * from './admin-result-sys-print';
 export * from './admin-result-sys-user';
 export * from './admin-result-sys-wechat-pay';
@@ -127,6 +131,7 @@ export * from './delete-pos-input';
 export * from './delete-print-input';
 export * from './delete-region-input';
 export * from './delete-role-input';
+export * from './delete-sys-ldap-input';
 export * from './delete-tenant-input';
 export * from './delete-user-input';
 export * from './delete-wechat-user-input';
@@ -137,6 +142,7 @@ export * from './enum-type-output';
 export * from './file-input';
 export * from './gen-auth-url-input';
 export * from './gender-enum';
+export * from './http-method-enum';
 export * from './iaction-result';
 export * from './jtoken';
 export * from './job-create-type-enum';
@@ -192,6 +198,7 @@ export * from './sql-sugar-paged-list-sys-dict-data';
 export * from './sql-sugar-paged-list-sys-dict-type';
 export * from './sql-sugar-paged-list-sys-file';
 export * from './sql-sugar-paged-list-sys-job-trigger-record';
+export * from './sql-sugar-paged-list-sys-ldap';
 export * from './sql-sugar-paged-list-sys-log-diff';
 export * from './sql-sugar-paged-list-sys-log-ex';
 export * from './sql-sugar-paged-list-sys-log-op';
@@ -222,6 +229,8 @@ export * from './sys-job-cluster';
 export * from './sys-job-detail';
 export * from './sys-job-trigger';
 export * from './sys-job-trigger-record';
+export * from './sys-ldap';
+export * from './sys-ldap-input';
 export * from './sys-log-diff';
 export * from './sys-log-ex';
 export * from './sys-log-op';
@@ -266,6 +275,7 @@ export * from './update-pos-input';
 export * from './update-print-input';
 export * from './update-region-input';
 export * from './update-role-input';
+export * from './update-sys-ldap-input';
 export * from './update-tenant-input';
 export * from './update-user-input';
 export * from './upload-file-from-base64-input';

+ 6 - 6
Web/src/api-services/models/sys-region.ts

@@ -30,20 +30,20 @@ export interface SysRegion {
     id?: number;
 
     /**
-     * 名称
+     * 父Id
      *
-     * @type {string}
+     * @type {number}
      * @memberof SysRegion
      */
-    name: string;
+    pid?: number;
 
     /**
-     * 父Id
+     * 名称
      *
-     * @type {number}
+     * @type {string}
      * @memberof SysRegion
      */
-    pid?: number;
+    name: string;
 
     /**
      * 简称

+ 0 - 50
Web/src/api/system/sysLdap.ts

@@ -1,50 +0,0 @@
-import request from '/@/utils/request';
-enum Api {
-  AddSysLdap = '/api/sysLdap/add',
-  DeleteSysLdap = '/api/sysLdap/delete',
-  UpdateSysLdap = '/api/sysLdap/update',
-  PageSysLdap = '/api/sysLdap/page',
-  DetailSysLdap = '/api/sysLdap/detail',
-}
-
-// 增加系统域登录信息配置表
-export const addSysLdap = (params?: any) =>
-	request({
-		url: Api.AddSysLdap,
-		method: 'post',
-		data: params,
-	});
-
-// 删除系统域登录信息配置表
-export const deleteSysLdap = (params?: any) => 
-	request({
-			url: Api.DeleteSysLdap,
-			method: 'post',
-			data: params,
-		});
-
-// 编辑系统域登录信息配置表
-export const updateSysLdap = (params?: any) => 
-	request({
-			url: Api.UpdateSysLdap,
-			method: 'post',
-			data: params,
-		});
-
-// 分页查询系统域登录信息配置表
-export const pageSysLdap = (params?: any) => 
-	request({
-			url: Api.PageSysLdap,
-			method: 'post',
-			data: params,
-		});
-
-// 详情系统域登录信息配置表
-export const detailSysLdap = (id: any) => 
-	request({
-			url: Api.DetailSysLdap,
-			method: 'get',
-			data: { id },
-		});
-
-

+ 0 - 177
Web/src/views/system/ldap/component/editDialog.vue

@@ -1,177 +0,0 @@
-<template>
-	<div class="sysLdap-container">
-		<el-dialog v-model="isShowDialog" :width="800" draggable="">
-			<template #header>
-				<div style="color: #fff">
-					<!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>-->
-					<span>{{ props.title }}</span>
-				</div>
-			</template>
-			<el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules">
-				<el-row :gutter="35">
-					<el-form-item v-show="false">
-						<el-input v-model="ruleForm.id" />
-					</el-form-item>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="主机" prop="host">
-							<el-input v-model="ruleForm.host" placeholder="请输入主机" maxlength="128" show-word-limit clearable />
-							
-						</el-form-item>
-						
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="端口" prop="port">
-							<el-input v-model="ruleForm.port" placeholder="请输入端口" maxlength="0" show-word-limit clearable />
-							
-						</el-form-item>
-						
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="用户搜索基准" prop="baseDn">
-							<el-input v-model="ruleForm.baseDn" placeholder="请输入用户搜索基准" maxlength="128" show-word-limit clearable />
-							
-						</el-form-item>
-						
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="用户过滤规则" prop="authFilter">
-							<el-input v-model="ruleForm.authFilter" placeholder="请输入用户过滤规则" maxlength="128" show-word-limit clearable />
-							
-						</el-form-item>
-						
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="绑定DN" prop="bindDn">
-							<el-input v-model="ruleForm.bindDn" placeholder="请输入有域管理权限的账户" maxlength="32" show-word-limit clearable />
-							
-						</el-form-item>
-						
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="绑定密码" prop="bindPass">
-							<el-input v-model="ruleForm.bindPass" placeholder="请输入有域管理权限的密码" maxlength="512" show-word-limit clearable />
-							
-						</el-form-item>
-						
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="Ldap版本" prop="version">
-							<el-input v-model="ruleForm.version" placeholder="请输入Ldap版本" maxlength="0" show-word-limit clearable />
-							
-						</el-form-item>
-						
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="状态" prop="status">
-							<el-switch v-model="ruleForm.status" active-text="是" inactive-text="否" />
-							
-						</el-form-item>
-						
-					</el-col>
-				</el-row>
-			</el-form>
-			<template #footer>
-				<span class="dialog-footer">
-					<el-button @click="cancel">取 消</el-button>
-					<el-button type="primary" @click="submit">确 定</el-button>
-				</span>
-			</template>
-		</el-dialog>
-	</div>
-</template>
-<style scoped>
-:deep(.el-select),
-:deep(.el-input-number) {
-	width: 100%;
-}
-</style>
-<script lang="ts" setup>
-	import { ref,onMounted } from "vue";
-	import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
-	import { ElMessage } from "element-plus";
-	import type { FormRules } from "element-plus";
-	import { addSysLdap, updateSysLdap, detailSysLdap } from "../../../../api/system/sysLdap";
-
-	//父级传递来的参数
-	var props = defineProps({
-		title: {
-		type: String,
-		default: "",
-	},
-	});
-	//父级传递来的函数,用于回调
-	const emit = defineEmits(["reloadTable"]);
-	const ruleFormRef = ref();
-	const isShowDialog = ref(false);
-	const ruleForm = ref<any>({});
-	//自行添加其他规则
-	const rules = ref<FormRules>({
-		host: [{required: true, message: '请输入主机!', trigger: 'blur',},],
-		port: [{required: true, message: '请输入端口!', trigger: 'blur',},],
-		baseDn: [{required: true, message: '请输入用户搜索基准!', trigger: 'blur',},],
-		bindDn: [{required: true, message: '请输入绑定DN!', trigger: 'blur',},],
-		bindPass: [{required: true, message: '请输入绑定密码!', trigger: 'blur',},],
-		authFilter: [{required: true, message: '请输入用户过滤规则!', trigger: 'blur',},],
-		version: [{required: true, message: '请输入Ldap版本!', trigger: 'blur',},],
-	});
-
-	// 打开弹窗
-	const openDialog = async (row: any) => {
-		// ruleForm.value = JSON.parse(JSON.stringify(row));
-		// 改用detail获取最新数据来编辑
-		let rowData = JSON.parse(JSON.stringify(row));
-		if (rowData.id)
-			ruleForm.value = (await detailSysLdap(rowData.id)).data.result;
-		else
-			ruleForm.value = rowData;
-		isShowDialog.value = true;
-	};
-
-	// 关闭弹窗
-	const closeDialog = () => {
-		emit("reloadTable");
-		isShowDialog.value = false;
-	};
-
-	// 取消
-	const cancel = () => {
-		isShowDialog.value = false;
-	};
-
-	// 提交
-	const submit = async () => {
-		ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
-			if (isValid) {
-				let values = ruleForm.value;
-				if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) {
-					await addSysLdap(values);
-				} else {
-					await updateSysLdap(values);
-				}
-				closeDialog();
-			} else {
-				ElMessage({
-					message: `表单有${Object.keys(fields).length}处验证失败,请修改后再提交`,
-					type: "error",
-				});
-			}
-		});
-	};
-
-
-
-
-
-
-
-	// 页面加载时
-	onMounted(async () => {
-	});
-
-	//将属性或者函数暴露给父组件
-	defineExpose({ openDialog });
-</script>
-
-
-
-

+ 142 - 182
Web/src/views/system/ldap/index.vue

@@ -1,193 +1,153 @@
 <template>
-  <div class="sysLdap-container">
-    <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> 
-      <el-form :model="queryParams" ref="queryForm" labelWidth="90">
-        <el-row>
-          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
-            <el-form-item label="关键字">
-              <el-input v-model="queryParams.searchKey" clearable="" placeholder="请输入模糊查询关键字"/>
-              
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
-            <el-form-item label="主机">
-              <el-input v-model="queryParams.host" clearable="" placeholder="请输入主机"/>
-              
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
-            <el-form-item>
-              <el-button-group style="display: flex; align-items: center;">
-                <el-button type="primary"  icon="ele-Search" @click="handleQuery" v-auth="'sysLdap:page'"> 查询 </el-button>
-                      <el-button icon="ele-Refresh" @click="() => queryParams = {}"> 重置 </el-button>
-                        <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI" style="margin-left:5px;"> 高级查询 </el-button>
-                        <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI" style="margin-left:5px;"> 隐藏 </el-button>
-                <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddSysLdap" v-auth="'sysLdap:add'"> 新增 </el-button>
-                
-              </el-button-group>
-            </el-form-item>
-            
-          </el-col>
-        </el-row>
-      </el-form>
-    </el-card>
-    <el-card class="full-table" shadow="hover" style="margin-top: 5px">
-      <el-table
-				:data="tableData"
-				style="width: 100%"
-				v-loading="loading"
-				tooltip-effect="light"
-				row-key="id"
-                @sort-change="sortChange"
-				border="">
-        <el-table-column type="index" label="序号" width="55" align="center"/>
-        <el-table-column prop="host" label="主机" width="140"  show-overflow-tooltip="" />
-        <el-table-column prop="port" label="端口" width="140"  show-overflow-tooltip="" />
-        <el-table-column prop="baseDn" label="用户搜索基准" width="90"  show-overflow-tooltip="" />
-        <el-table-column prop="bindDn" label="绑定DN" width="140"  show-overflow-tooltip="" />
-        <el-table-column prop="bindPass" label="绑定密码" width="140"  show-overflow-tooltip="" />
-        <el-table-column prop="authFilter" label="用户过滤规则" width="90"  show-overflow-tooltip="" />
-        <el-table-column prop="version" label="Ldap版本" width="90"  show-overflow-tooltip="" />
-        <el-table-column prop="status" label="状态" width="120"  show-overflow-tooltip="">
-          <template #default="scope">
-            <el-tag v-if="scope.row.status"> 是 </el-tag>
-            <el-tag type="danger" v-else> 否 </el-tag>
-            
-          </template>
-          
-        </el-table-column>
-        <el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('sysLdap:update') || auth('sysLdap:delete')">
-          <template #default="scope">
-            <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditSysLdap(scope.row)" v-auth="'sysLdap:update'"> 编辑 </el-button>
-            <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delSysLdap(scope.row)" v-auth="'sysLdap:delete'"> 删除 </el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <el-pagination
-				v-model:currentPage="tableParams.page"
-				v-model:page-size="tableParams.pageSize"
-				:total="tableParams.total"
+	<div class="sysLdap-container">
+		<el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
+			<el-form :model="state.queryParams" ref="queryForm" :inline="true">
+				<el-form-item label="关键字">
+					<el-input v-model="state.queryParams.searchKey" clearable="" placeholder="请输入模糊查询关键字" />
+				</el-form-item>
+				<el-form-item label="主机">
+					<el-input v-model="state.queryParams.host" clearable="" placeholder="请输入主机" />
+				</el-form-item>
+				<el-form-item>
+					<el-button-group>
+						<el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'sysLdap:page'"> 查询 </el-button>
+						<el-button icon="ele-Refresh" @click="resetQuery"> 重置 </el-button>
+					</el-button-group>
+				</el-form-item>
+				<el-form-item>
+					<el-button type="primary" icon="ele-Plus" @click="openAddSysLdap" v-auth="'sysLdap:add'"> 新增 </el-button>
+				</el-form-item>
+			</el-form>
+		</el-card>
+
+		<el-card class="full-table" shadow="hover" style="margin-top: 5px">
+			<el-table :data="state.tableData" style="width: 100%" v-loading="state.loading" border="">
+				<el-table-column type="index" label="序号" width="55" align="center" />
+				<el-table-column prop="host" label="主机" min-width="150" show-overflow-tooltip="" />
+				<el-table-column prop="port" label="端口" show-overflow-tooltip="" />
+				<el-table-column prop="baseDn" label="用户搜索基准" show-overflow-tooltip="" />
+				<el-table-column prop="bindDn" label="绑定DN" show-overflow-tooltip="" />
+				<el-table-column prop="bindPass" label="绑定密码" min-width="150" show-overflow-tooltip="" />
+				<el-table-column prop="authFilter" label="用户过滤规则" show-overflow-tooltip="" />
+				<el-table-column prop="version" label="Ldap版本" show-overflow-tooltip="" />
+				<el-table-column prop="status" label="状态" width="80" align="center" show-overflow-tooltip="">
+					<template #default="scope">
+						<el-tag v-if="scope.row.status"> 是 </el-tag>
+						<el-tag type="danger" v-else> 否 </el-tag>
+					</template>
+				</el-table-column>
+				<el-table-column label="修改记录" width="100" align="center" show-overflow-tooltip>
+					<template #default="scope">
+						<ModifyRecord :data="scope.row" />
+					</template>
+				</el-table-column>
+				<el-table-column label="操作" width="140" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('sysLdap:update') || auth('sysLdap:delete')">
+					<template #default="scope">
+						<el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditSysLdap(scope.row)" v-auth="'sysLdap:update'"> 编辑 </el-button>
+						<el-button icon="ele-Delete" size="small" text="" type="danger" @click="delSysLdap(scope.row)" v-auth="'sysLdap:delete'"> 删除 </el-button>
+					</template>
+				</el-table-column>
+			</el-table>
+			<el-pagination
+				v-model:currentPage="state.tableParams.page"
+				v-model:page-size="state.tableParams.pageSize"
+				:total="state.tableParams.total"
 				:page-sizes="[10, 20, 50, 100, 200, 500]"
 				small=""
 				background=""
 				@size-change="handleSizeChange"
 				@current-change="handleCurrentChange"
 				layout="total, sizes, prev, pager, next, jumper"
-	/>
-      <printDialog
-        ref="printDialogRef"
-        :title="printSysLdapTitle"
-        @reloadTable="handleQuery" />
-      <editDialog
-        ref="editDialogRef"
-        :title="editSysLdapTitle"
-        @reloadTable="handleQuery"
-      />
-    </el-card>
-  </div>
+			/>
+		</el-card>
+
+		<EditLdap ref="editLdapRef" :title="state.dialogTitle" @handleQuery="handleQuery" />
+	</div>
 </template>
 
 <script lang="ts" setup="" name="sysLdap">
-  import { ref } from "vue";
-  import { ElMessageBox, ElMessage } from "element-plus";
-  import { auth } from '/@/utils/authFunction';
-  import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
-  import { formatDate } from '/@/utils/formatTime';
-
-
-  import printDialog from '/@/views/system/print/component/hiprint/preview.vue'
-  import editDialog from '/@/views/system/ldap/component/editDialog.vue'
-  import { pageSysLdap, deleteSysLdap } from '../../../api/system/sysLdap';
-
-
-  const showAdvanceQueryUI = ref(false);
-  const printDialogRef = ref();
-  const editDialogRef = ref();
-  const loading = ref(false);
-  const tableData = ref<any>([]);
-  const queryParams = ref<any>({});
-  const tableParams = ref({
-    page: 1,
-    pageSize: 10,
-    total: 0,
-  });
-
-  const printSysLdapTitle = ref("");
-  const editSysLdapTitle = ref("");
-
-  // 改变高级查询的控件显示状态
-  const changeAdvanceQueryUI = () => {
-    showAdvanceQueryUI.value = !showAdvanceQueryUI.value;
-  }
-  
-
-  // 查询操作
-  const handleQuery = async () => {
-    loading.value = true;
-    var res = await pageSysLdap(Object.assign(queryParams.value, tableParams.value));
-    tableData.value = res.data.result?.items ?? [];
-    tableParams.value.total = res.data.result?.total;
-    loading.value = false;
-  };
-
-  // 列排序
-  const sortChange = async (column: any) => {
-	queryParams.value.field = column.prop;
-	queryParams.value.order = column.order;
-	await handleQuery();
-  };
-
-  // 打开新增页面
-  const openAddSysLdap = () => {
-    editSysLdapTitle.value = '添加系统域登录信息配置表';
-    editDialogRef.value.openDialog({});
-  };
-
-  // 打开打印页面
-  const openPrintSysLdap = async (row: any) => {
-    printSysLdapTitle.value = '打印系统域登录信息配置表';
-  }
-  
-  // 打开编辑页面
-  const openEditSysLdap = (row: any) => {
-    editSysLdapTitle.value = '编辑系统域登录信息配置表';
-    editDialogRef.value.openDialog(row);
-  };
-
-  // 删除
-  const delSysLdap = (row: any) => {
-    ElMessageBox.confirm(`确定要删除吗?`, "提示", {
-    confirmButtonText: "确定",
-    cancelButtonText: "取消",
-    type: "warning",
-  })
-  .then(async () => {
-    await deleteSysLdap(row);
-    handleQuery();
-    ElMessage.success("删除成功");
-  })
-  .catch(() => {});
-  };
-
-  // 改变页面容量
-  const handleSizeChange = (val: number) => {
-    tableParams.value.pageSize = val;
-    handleQuery();
-  };
-
-  // 改变页码序号
-  const handleCurrentChange = (val: number) => {
-    tableParams.value.page = val;
-    handleQuery();
-  };
-
-  handleQuery();
+import { onMounted, reactive, ref } from 'vue';
+import { ElMessageBox, ElMessage } from 'element-plus';
+import { auth } from '/@/utils/authFunction';
+import ModifyRecord from '/@/components/table/modifyRecord.vue';
+import EditLdap from './component/editLdap.vue';
+
+import { getAPI } from '/@/utils/axios-utils';
+import { SysLdapApi } from '/@/api-services/api';
+
+const editLdapRef = ref<InstanceType<typeof EditLdap>>();
+const state = reactive({
+	loading: false,
+	tableData: [] as any,
+	queryParams: {
+		searchKey: undefined,
+		host: undefined,
+	},
+	tableParams: {
+		page: 1,
+		pageSize: 20,
+		total: 0 as any,
+	},
+	dialogTitle: '',
+});
+
+onMounted(async () => {
+	handleQuery();
+});
+
+// 查询操作
+const handleQuery = async () => {
+	state.loading = true;
+	let params = Object.assign(state.queryParams, state.tableParams);
+	var res = await getAPI(SysLdapApi).apiSysLdapPagePost(params);
+	state.tableData = res.data.result?.items ?? [];
+	state.tableParams.total = res.data.result?.total;
+	state.loading = false;
+};
+
+// 重置操作
+const resetQuery = () => {
+	state.queryParams.searchKey = undefined;
+	state.queryParams.host = undefined;
+	handleQuery();
+};
+
+// 打开新增页面
+const openAddSysLdap = () => {
+	state.dialogTitle = '添加系统域登录信息配置';
+	editLdapRef.value?.openDialog({});
+};
+
+// 打开编辑页面
+const openEditSysLdap = (row: any) => {
+	state.dialogTitle = '编辑系统域登录信息配置';
+	editLdapRef.value?.openDialog(row);
+};
+
+// 删除
+const delSysLdap = (row: any) => {
+	ElMessageBox.confirm(`确定要删除吗:【${row.host}】?`, '提示', {
+		confirmButtonText: '确定',
+		cancelButtonText: '取消',
+		type: 'warning',
+	})
+		.then(async () => {
+			await getAPI(SysLdapApi).apiSysLdapDeletePost({ id: row.id });
+			handleQuery();
+			ElMessage.success('删除成功');
+		})
+		.catch(() => {});
+};
+
+// 改变页面容量
+const handleSizeChange = (val: number) => {
+	state.tableParams.pageSize = val;
+	handleQuery();
+};
+
+// 改变页码序号
+const handleCurrentChange = (val: number) => {
+	state.tableParams.page = val;
+	handleQuery();
+};
 </script>
-<style scoped>
-:deep(.el-ipnut),
-:deep(.el-select),
-:deep(.el-input-number) {
-	width: 100%;
-}
-</style>
-

+ 1 - 1
Web/src/views/system/notice/index.vue

@@ -24,7 +24,7 @@
 		</el-card>
 
 		<el-card class="full-table" shadow="hover" style="margin-top: 5px">
-			<el-table :data="state.noticeData" style="width: 100%" v-loading="state.loading" border>
+			<el-table :data="state.noticeData" v-loading="state.loading" border>
 				<el-table-column type="index" label="序号" width="55" align="center" />
 				<el-table-column prop="title" label="标题" header-align="center" show-overflow-tooltip />
 				<el-table-column prop="content" label="内容" header-align="center" show-overflow-tooltip>