diff --git a/Admin.NET/Admin.NET.Core/Entity/SysConfigTenant.cs b/Admin.NET/Admin.NET.Core/Entity/SysConfigTenant.cs new file mode 100644 index 00000000..00630d2d --- /dev/null +++ b/Admin.NET/Admin.NET.Core/Entity/SysConfigTenant.cs @@ -0,0 +1,64 @@ +// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 +// +// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 +// +// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + +namespace Admin.NET.Core; + +/// +/// 系统租户配置参数表 +/// +[SugarTable(null, "系统租户配置参数表")] +[SysTable] +[SugarIndex("index_{table}_N", nameof(Name), OrderByType.Asc)] +[SugarIndex("index_{table}_C", nameof(Code), OrderByType.Asc, IsUnique = true)] +public partial class SysConfigTenant : EntityTenant +{ + /// + /// 名称 + /// + [SugarColumn(ColumnDescription = "名称", Length = 64)] + [Required, MaxLength(64)] + public virtual string Name { get; set; } + + /// + /// 编码 + /// + [SugarColumn(ColumnDescription = "编码", Length = 64)] + [MaxLength(64)] + public string? Code { get; set; } + + /// + /// 参数值 + /// + [SugarColumn(ColumnDescription = "参数值", Length = 512)] + [MaxLength(512)] + public string? Value { get; set; } + + /// + /// 是否是内置参数(Y-是,N-否) + /// + [SugarColumn(ColumnDescription = "是否是内置参数", DefaultValue = "1")] + public YesNoEnum SysFlag { get; set; } = YesNoEnum.Y; + + /// + /// 分组编码 + /// + [SugarColumn(ColumnDescription = "分组编码", Length = 64)] + [MaxLength(64)] + public string? GroupCode { get; set; } + + /// + /// 排序 + /// + [SugarColumn(ColumnDescription = "排序", DefaultValue = "100")] + public int OrderNo { get; set; } = 100; + + /// + /// 备注 + /// + [SugarColumn(ColumnDescription = "备注", Length = 256)] + [MaxLength(256)] + public string? Remark { get; set; } +} \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Entity/SysDictData.cs b/Admin.NET/Admin.NET.Core/Entity/SysDictData.cs index 971b4341..1040cb5c 100644 --- a/Admin.NET/Admin.NET.Core/Entity/SysDictData.cs +++ b/Admin.NET/Admin.NET.Core/Entity/SysDictData.cs @@ -12,7 +12,7 @@ namespace Admin.NET.Core; [SugarTable(null, "系统字典值表")] [SysTable] [SugarIndex("index_{table}_C", nameof(Code), OrderByType.Asc)] -public partial class SysDictData : EntityTenant +public partial class SysDictData : EntityBase { /// /// 字典类型Id @@ -28,6 +28,13 @@ public partial class SysDictData : EntityTenant [Navigate(NavigateType.OneToOne, nameof(DictTypeId))] public SysDictType DictType { get; set; } + /// + /// 显示文本 + /// + [SugarColumn(ColumnDescription = "显示文本", Length = 256)] + [Required, MaxLength(256)] + public virtual string Label { get; set; } + /// /// 值 /// @@ -38,16 +45,10 @@ public partial class SysDictData : EntityTenant /// /// 编码 /// + /// + /// [SugarColumn(ColumnDescription = "编码", Length = 256)] - [Required, MaxLength(256)] - public virtual string Code { get; set; } - - /// - /// 名称 - /// - [SugarColumn(ColumnDescription = "名称", Length = 256)] - [MaxLength(256)] - public virtual string? Name { get; set; } + public virtual string? Code { get; set; } /// /// 显示样式-标签颜色 diff --git a/Admin.NET/Admin.NET.Core/Entity/SysDictDataTenant.cs b/Admin.NET/Admin.NET.Core/Entity/SysDictDataTenant.cs new file mode 100644 index 00000000..2ec35c76 --- /dev/null +++ b/Admin.NET/Admin.NET.Core/Entity/SysDictDataTenant.cs @@ -0,0 +1,105 @@ +// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 +// +// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 +// +// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + +namespace Admin.NET.Core; + +/// +/// 系统租户字典值表 +/// +[SugarTable(null, "系统租户字典值表")] +[SysTable] +[SugarIndex("index_{table}_C", nameof(Code), OrderByType.Asc)] +public partial class SysDictDataTenant : EntityTenant +{ + /// + /// 字典类型Id + /// + [SugarColumn(ColumnDescription = "字典类型Id")] + public long DictTypeId { get; set; } + + /// + /// 字典类型 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + [Navigate(NavigateType.OneToOne, nameof(DictTypeId))] + public SysDictType DictType { get; set; } + + /// + /// 显示文本 + /// + [SugarColumn(ColumnDescription = "显示文本", Length = 256)] + [Required, MaxLength(256)] + public virtual string Label { get; set; } + + /// + /// 值 + /// + [SugarColumn(ColumnDescription = "值", Length = 256)] + [Required, MaxLength(256)] + public virtual string Value { get; set; } + + /// + /// 编码 + /// + /// + /// + [SugarColumn(ColumnDescription = "编码", Length = 256)] + public virtual string? Code { get; set; } + + /// + /// 名称 + /// + [SugarColumn(ColumnDescription = "名称", Length = 256)] + [MaxLength(256)] + public virtual string? Name { get; set; } + + /// + /// 显示样式-标签颜色 + /// + [SugarColumn(ColumnDescription = "显示样式-标签颜色", Length = 16)] + [MaxLength(16)] + public string? TagType { get; set; } + + /// + /// 显示样式-Style(控制显示样式) + /// + [SugarColumn(ColumnDescription = "显示样式-Style", Length = 512)] + [MaxLength(512)] + public string? StyleSetting { get; set; } + + /// + /// 显示样式-Class(控制显示样式) + /// + [SugarColumn(ColumnDescription = "显示样式-Class", Length = 512)] + [MaxLength(512)] + public string? ClassSetting { get; set; } + + /// + /// 排序 + /// + [SugarColumn(ColumnDescription = "排序", DefaultValue = "100")] + public int OrderNo { get; set; } = 100; + + /// + /// 备注 + /// + [SugarColumn(ColumnDescription = "备注", Length = 2048)] + [MaxLength(2048)] + public string? Remark { get; set; } + + /// + /// 拓展数据(保存业务功能的配置项) + /// + [SugarColumn(ColumnDescription = "拓展数据(保存业务功能的配置项)", ColumnDataType = StaticConfig.CodeFirst_BigString)] + public string? ExtData { get; set; } + + /// + /// 状态 + /// + [SugarColumn(ColumnDescription = "状态", DefaultValue = "1")] + public StatusEnum Status { get; set; } = StatusEnum.Enable; +} \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Entity/SysDictType.cs b/Admin.NET/Admin.NET.Core/Entity/SysDictType.cs index f2588335..b9d0f9f9 100644 --- a/Admin.NET/Admin.NET.Core/Entity/SysDictType.cs +++ b/Admin.NET/Admin.NET.Core/Entity/SysDictType.cs @@ -54,6 +54,12 @@ public partial class SysDictType : EntityBase [SugarColumn(ColumnDescription = "是否是内置字典", DefaultValue = "1")] public virtual YesNoEnum SysFlag { get; set; } = YesNoEnum.Y; + /// + /// 是否是租户字典(Y-是,N-否) + /// + [SugarColumn(ColumnDescription = "是否是租户字典", DefaultValue = "2")] + public virtual YesNoEnum IsTenant { get; set; } = YesNoEnum.N; + /// /// 字典值集合 /// diff --git a/Admin.NET/Admin.NET.Core/Enum/ErrorCodeEnum.cs b/Admin.NET/Admin.NET.Core/Enum/ErrorCodeEnum.cs index 2b029862..261b1ec1 100644 --- a/Admin.NET/Admin.NET.Core/Enum/ErrorCodeEnum.cs +++ b/Admin.NET/Admin.NET.Core/Enum/ErrorCodeEnum.cs @@ -367,6 +367,18 @@ public enum ErrorCodeEnum [ErrorCodeItemMetadata("禁止删除系统内置字典")] D3010, + /// + /// 获取字典值集合入参有误 + /// + [ErrorCodeItemMetadata("获取字典值集合入参有误")] + D3011, + + /// + /// 禁止修改租户字典状态 + /// + [ErrorCodeItemMetadata("禁止修改租户字典状态")] + D3012, + /// /// 菜单已存在 /// diff --git a/Admin.NET/Admin.NET.Core/Job/EnumToDictJob.cs b/Admin.NET/Admin.NET.Core/Job/EnumToDictJob.cs index 622e47cc..94671824 100644 --- a/Admin.NET/Admin.NET.Core/Job/EnumToDictJob.cs +++ b/Admin.NET/Admin.NET.Core/Job/EnumToDictJob.cs @@ -128,9 +128,9 @@ public class EnumToDictJob : IJob { Id = YitIdHelper.NextId(), DictTypeId = t2.Id, - Name = u.Describe, - Value = u.Value.ToString(), Code = u.Name, + Label = u.Describe, + Value = u.Value.ToString(), Remark = t2.Remark, OrderNo = u.Value + OrderOffset, TagType = u.Theme != "" ? u.Theme : DefaultTagType, @@ -178,9 +178,10 @@ public class EnumToDictJob : IJob var enumData = e.EnumEntities.FirstOrDefault(u => dictData.Code == u.Name); if (enumData != null) { + dictData.Code = enumData.Name; + dictData.Label = enumData.Describe; dictData.Value = enumData.Value.ToString(); dictData.OrderNo = enumData.Value + OrderOffset; - dictData.Name = enumData.Describe; dictData.TagType = enumData.Theme != "" ? enumData.Theme : dictData.TagType != "" ? dictData.TagType : DefaultTagType; updatedSysDictData.Add(dictData); } @@ -197,9 +198,9 @@ public class EnumToDictJob : IJob { Id = YitIdHelper.NextId(), DictTypeId = updatedDictType.Id, - Name = enumData.Describe, - Value = enumData.Value.ToString(), Code = enumData.Name, + Label = enumData.Describe, + Value = enumData.Value.ToString(), Remark = updatedDictType.Remark, OrderNo = enumData.Value + OrderOffset, TagType = enumData.Theme != "" ? enumData.Theme : DefaultTagType, diff --git a/Admin.NET/Admin.NET.Core/SeedData/SysDictDataSeedData.cs b/Admin.NET/Admin.NET.Core/SeedData/SysDictDataSeedData.cs index 4047cbe4..42960cd4 100644 --- a/Admin.NET/Admin.NET.Core/SeedData/SysDictDataSeedData.cs +++ b/Admin.NET/Admin.NET.Core/SeedData/SysDictDataSeedData.cs @@ -19,61 +19,61 @@ public class SysDictDataSeedData : ISqlSugarEntitySeedData { return [ - new SysDictData{ Id=1300000000101, DictTypeId=1300000000101, Value="输入框", Code="Input", OrderNo=100, Remark="输入框", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000102, DictTypeId=1300000000101, Value="字典选择器", Code="DictSelector", OrderNo=100, Remark="字典选择器", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000103, DictTypeId=1300000000101, Value="常量选择器", Code="ConstSelector", OrderNo=100, Remark="常量选择器", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000104, DictTypeId=1300000000101, Value="枚举选择器", Code="EnumSelector", OrderNo=100, Remark="枚举选择器", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000105, DictTypeId=1300000000101, Value="树选择器", Code="ApiTreeSelector", OrderNo=100, Remark="树选择器", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000106, DictTypeId=1300000000101, Value="外键", Code="ForeignKey", OrderNo=100, Remark="外键", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000107, DictTypeId=1300000000101, Value="数字输入框", Code="InputNumber", OrderNo=100, Remark="数字输入框", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000108, DictTypeId=1300000000101, Value="时间选择", Code="DatePicker", OrderNo=100, Remark="时间选择", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000109, DictTypeId=1300000000101, Value="文本域", Code="InputTextArea", OrderNo=100, Remark="文本域", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000110, DictTypeId=1300000000101, Value="上传", Code="Upload", OrderNo=100, Remark="上传", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000111, DictTypeId=1300000000101, Value="开关", Code="Switch", OrderNo=100, Remark="开关", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000101, DictTypeId=1300000000101, Label="输入框", Value="Input", OrderNo=100, Remark="输入框", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000102, DictTypeId=1300000000101, Label="字典选择器", Value="DictSelector", OrderNo=100, Remark="字典选择器", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000103, DictTypeId=1300000000101, Label="常量选择器", Value="ConstSelector", OrderNo=100, Remark="常量选择器", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000104, DictTypeId=1300000000101, Label="枚举选择器", Value="EnumSelector", OrderNo=100, Remark="枚举选择器", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000105, DictTypeId=1300000000101, Label="树选择器", Value="ApiTreeSelector", OrderNo=100, Remark="树选择器", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000106, DictTypeId=1300000000101, Label="外键", Value="ForeignKey", OrderNo=100, Remark="外键", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000107, DictTypeId=1300000000101, Label="数字输入框", Value="InputNumber", OrderNo=100, Remark="数字输入框", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000108, DictTypeId=1300000000101, Label="时间选择", Value="DatePicker", OrderNo=100, Remark="时间选择", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000109, DictTypeId=1300000000101, Label="文本域", Value="InputTextArea", OrderNo=100, Remark="文本域", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000110, DictTypeId=1300000000101, Label="上传", Value="Upload", OrderNo=100, Remark="上传", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000111, DictTypeId=1300000000101, Label="开关", Value="Switch", OrderNo=100, Remark="开关", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000201, DictTypeId=1300000000102, Value="等于", Code="==", OrderNo=1, Remark="等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000202, DictTypeId=1300000000102, Value="模糊", Code="like", OrderNo=1, Remark="模糊", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000203, DictTypeId=1300000000102, Value="大于", Code=">", OrderNo=1, Remark="大于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000204, DictTypeId=1300000000102, Value="小于", Code="<", OrderNo=1, Remark="小于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000205, DictTypeId=1300000000102, Value="不等于", Code="!=", OrderNo=1, Remark="不等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000206, DictTypeId=1300000000102, Value="大于等于", Code=">=", OrderNo=1, Remark="大于等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000207, DictTypeId=1300000000102, Value="小于等于", Code="<=", OrderNo=1, Remark="小于等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000208, DictTypeId=1300000000102, Value="不为空", Code="isNotNull", OrderNo=1, Remark="不为空", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000209, DictTypeId=1300000000102, Value="时间范围", Code="~", OrderNo=1, Remark="时间范围", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000201, DictTypeId=1300000000102, Label="等于", Value="==", OrderNo=1, Remark="等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000202, DictTypeId=1300000000102, Label="模糊", Value="like", OrderNo=1, Remark="模糊", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000203, DictTypeId=1300000000102, Label="大于", Value=">", OrderNo=1, Remark="大于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000204, DictTypeId=1300000000102, Label="小于", Value="<", OrderNo=1, Remark="小于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000205, DictTypeId=1300000000102, Label="不等于", Value="!=", OrderNo=1, Remark="不等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000206, DictTypeId=1300000000102, Label="大于等于", Value=">=", OrderNo=1, Remark="大于等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000207, DictTypeId=1300000000102, Label="小于等于", Value="<=", OrderNo=1, Remark="小于等于", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000208, DictTypeId=1300000000102, Label="不为空", Value="isNotNull", OrderNo=1, Remark="不为空", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000209, DictTypeId=1300000000102, Label="时间范围", Value="~", OrderNo=1, Remark="时间范围", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000301, DictTypeId=1300000000103, Value="long", Code="long", OrderNo=1, Remark="long", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000302, DictTypeId=1300000000103, Value="string", Code="string", OrderNo=1, Remark="string", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000303, DictTypeId=1300000000103, Value="DateTime", Code="DateTime", OrderNo=1, Remark="DateTime", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000304, DictTypeId=1300000000103, Value="bool", Code="bool", OrderNo=1, Remark="bool", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000305, DictTypeId=1300000000103, Value="int", Code="int", OrderNo=1, Remark="int", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000306, DictTypeId=1300000000103, Value="double", Code="double", OrderNo=1, Remark="double", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000307, DictTypeId=1300000000103, Value="float", Code="float", OrderNo=1, Remark="float", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000308, DictTypeId=1300000000103, Value="decimal", Code="decimal", OrderNo=1, Remark="decimal", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000309, DictTypeId=1300000000103, Value="Guid", Code="Guid", OrderNo=1, Remark="Guid", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000310, DictTypeId=1300000000103, Value="DateTimeOffset", Code="DateTimeOffset", OrderNo=1, Remark="DateTimeOffset", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000301, DictTypeId=1300000000103, Label="long", Value="long", OrderNo=1, Remark="long", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000302, DictTypeId=1300000000103, Label="string", Value="string", OrderNo=1, Remark="string", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000303, DictTypeId=1300000000103, Label="DateTime", Value="DateTime", OrderNo=1, Remark="DateTime", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000304, DictTypeId=1300000000103, Label="bool", Value="bool", OrderNo=1, Remark="bool", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000305, DictTypeId=1300000000103, Label="int", Value="int", OrderNo=1, Remark="int", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000306, DictTypeId=1300000000103, Label="double", Value="double", OrderNo=1, Remark="double", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000307, DictTypeId=1300000000103, Label="float", Value="float", OrderNo=1, Remark="float", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000308, DictTypeId=1300000000103, Label="decimal", Value="decimal", OrderNo=1, Remark="decimal", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000309, DictTypeId=1300000000103, Label="Guid", Value="Guid", OrderNo=1, Remark="Guid", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000310, DictTypeId=1300000000103, Label="DateTimeOffset", Value="DateTimeOffset", OrderNo=1, Remark="DateTimeOffset", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000401, DictTypeId=1300000000104, Value="下载压缩包", Code="100", OrderNo=1, Remark="下载压缩包", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000402, DictTypeId=1300000000104, Value="下载压缩包(前端)", Code="111", OrderNo=2, Remark="下载压缩包(前端)", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000403, DictTypeId=1300000000104, Value="下载压缩包(后端)", Code="121", OrderNo=3, Remark="下载压缩包(后端)", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000404, DictTypeId=1300000000104, Value="生成到本项目", Code="200", OrderNo=4, Remark="生成到本项目", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000405, DictTypeId=1300000000104, Value="生成到本项目(前端)", Code="211", OrderNo=5, Remark="生成到本项目(前端)", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000406, DictTypeId=1300000000104, Value="生成到本项目(后端)", Code="221", OrderNo=6, Remark="生成到本项目(后端)", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000401, DictTypeId=1300000000104, Label="下载压缩包", Value="100", OrderNo=1, Remark="下载压缩包", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000402, DictTypeId=1300000000104, Label="下载压缩包(前端)", Value="111", OrderNo=2, Remark="下载压缩包(前端)", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000403, DictTypeId=1300000000104, Label="下载压缩包(后端)", Value="121", OrderNo=3, Remark="下载压缩包(后端)", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000404, DictTypeId=1300000000104, Label="生成到本项目", Value="200", OrderNo=4, Remark="生成到本项目", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000405, DictTypeId=1300000000104, Label="生成到本项目(前端)", Value="211", OrderNo=5, Remark="生成到本项目(前端)", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000406, DictTypeId=1300000000104, Label="生成到本项目(后端)", Value="221", OrderNo=6, Remark="生成到本项目(后端)", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000501, DictTypeId=1300000000105, Value="EntityBaseId【基础实体Id】", Code="EntityBaseId", OrderNo=1, Remark="【基础实体Id】", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000502, DictTypeId=1300000000105, Value="EntityBase【基础实体】", Code="EntityBase", OrderNo=1, Remark="【基础实体】", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000503, DictTypeId=1300000000105, Value="EntityTenantId【租户实体Id】", Code="EntityTenantId", OrderNo=1, Remark="【租户实体Id】", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000504, DictTypeId=1300000000105, Value="EntityTenant【租户实体】", Code="EntityTenant", OrderNo=1, Remark="【租户实体】", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000505, DictTypeId=1300000000105, Value="EntityBaseData【业务实体】", Code="EntityBaseData", OrderNo=1, Remark="【业务实体】", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000506, DictTypeId=1300000000105, Value="EntityTenantBaseData【租户业务实体】", Code="EntityTenantBaseData", OrderNo=1, Remark="【租户业务实体】", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000501, DictTypeId=1300000000105, Label="EntityBaseId【基础实体Id】", Value="EntityBaseId", OrderNo=1, Remark="【基础实体Id】", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000502, DictTypeId=1300000000105, Label="EntityBase【基础实体】", Value="EntityBase", OrderNo=1, Remark="【基础实体】", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000503, DictTypeId=1300000000105, Label="EntityTenantId【租户实体Id】", Value="EntityTenantId", OrderNo=1, Remark="【租户实体Id】", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000504, DictTypeId=1300000000105, Label="EntityTenant【租户实体】", Value="EntityTenant", OrderNo=1, Remark="【租户实体】", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000505, DictTypeId=1300000000105, Label="EntityBaseData【业务实体】", Value="EntityBaseData", OrderNo=1, Remark="【业务实体】", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, + new SysDictData{ Id=1300000000506, DictTypeId=1300000000105, Label="EntityTenantBaseData【租户业务实体】", Value="EntityTenantBaseData", OrderNo=1, Remark="【租户业务实体】", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2022-02-10 00:00:00") }, - new SysDictData{ Id=1300000000601, DictTypeId=1300000000106, Value="不需要", Code="off", OrderNo=100, Remark="不需要打印支持", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-12-04 00:00:00") }, - new SysDictData{ Id=1300000000602, DictTypeId=1300000000106, Value="绑定打印模版", Code="custom", OrderNo=101, Remark="绑定打印模版", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-12-04 00:00:00") }, + new SysDictData{ Id=1300000000601, DictTypeId=1300000000106, Label="不需要", Value="off", OrderNo=100, Remark="不需要打印支持", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-12-04 00:00:00") }, + new SysDictData{ Id=1300000000602, DictTypeId=1300000000106, Label="绑定打印模版", Value="custom", OrderNo=101, Remark="绑定打印模版", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-12-04 00:00:00") }, - new SysDictData{ Id=1300000000701, DictTypeId=1300000000201, Value="集团", Code="101", OrderNo=100, Remark="集团", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") }, - new SysDictData{ Id=1300000000702, DictTypeId=1300000000201, Value="公司", Code="201", OrderNo=101, Remark="公司", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") }, - new SysDictData{ Id=1300000000703, DictTypeId=1300000000201, Value="部门", Code="301", OrderNo=102, Remark="部门", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") }, - new SysDictData{ Id=1300000000704, DictTypeId=1300000000201, Value="区域", Code="401", OrderNo=103, Remark="区域", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") }, - new SysDictData{ Id=1300000000705, DictTypeId=1300000000201, Value="组", Code="501", OrderNo=104, Remark="组", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") }, + new SysDictData{ Id=1300000000701, DictTypeId=1300000000201, Label="集团", Value="101", OrderNo=100, Remark="集团", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") }, + new SysDictData{ Id=1300000000702, DictTypeId=1300000000201, Label="公司", Value="201", OrderNo=101, Remark="公司", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") }, + new SysDictData{ Id=1300000000703, DictTypeId=1300000000201, Label="部门", Value="301", OrderNo=102, Remark="部门", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") }, + new SysDictData{ Id=1300000000704, DictTypeId=1300000000201, Label="区域", Value="401", OrderNo=103, Remark="区域", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") }, + new SysDictData{ Id=1300000000705, DictTypeId=1300000000201, Label="组", Value="501", OrderNo=104, Remark="组", Status=StatusEnum.Enable, CreateTime=DateTime.Parse("2023-02-10 00:00:00") }, ]; } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/Config/Dto/TenantConfigInput.cs b/Admin.NET/Admin.NET.Core/Service/Config/Dto/TenantConfigInput.cs new file mode 100644 index 00000000..1464ef84 --- /dev/null +++ b/Admin.NET/Admin.NET.Core/Service/Config/Dto/TenantConfigInput.cs @@ -0,0 +1,49 @@ +// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 +// +// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 +// +// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + +namespace Admin.NET.Core.Service; + +public class ConfigTenantInput : BaseIdInput; + +public class PageConfigTenantInput : BasePageInput +{ + /// + /// 名称 + /// + public string Name { get; set; } + + /// + /// 编码 + /// + public string Code { get; set; } + + /// + /// 分组编码 + /// + public string GroupCode { get; set; } +} + +public class AddConfigTenantInput : SysConfigTenant; + +public class UpdateConfigTenantInput : AddConfigTenantInput; + +public class DeleteConfigTenantInput : BaseIdInput; + +/// +/// 批量配置参数输入 +/// +public class BatchConfigTenantInput +{ + /// + /// 编码 + /// + public string Code { get; set; } + + /// + /// 属性值 + /// + public string Value { get; set; } +} \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs b/Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs index f12d3a98..2dbeeeed 100644 --- a/Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Config/SysConfigService.cs @@ -182,8 +182,7 @@ public class SysConfigService : IDynamicApiController, ITransient var value = _sysCacheService.Get($"{CacheConst.KeyConfig}{code}"); if (string.IsNullOrEmpty(value)) { - var config = await _sysConfigRep.CopyNew().GetFirstAsync(u => u.Code == code); - value = config != null ? config.Value : default; + value = (await _sysConfigRep.CopyNew().GetFirstAsync(u => u.Code == code))?.Value; _sysCacheService.Set($"{CacheConst.KeyConfig}{code}", value); } if (string.IsNullOrWhiteSpace(value)) return default; diff --git a/Admin.NET/Admin.NET.Core/Service/Config/SysTenantConfigService.cs b/Admin.NET/Admin.NET.Core/Service/Config/SysTenantConfigService.cs new file mode 100644 index 00000000..1a23b890 --- /dev/null +++ b/Admin.NET/Admin.NET.Core/Service/Config/SysTenantConfigService.cs @@ -0,0 +1,253 @@ +// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 +// +// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 +// +// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + +namespace Admin.NET.Core.Service; + +/// +/// 系统租户配置参数服务 🧩 +/// +[ApiDescriptionSettings(Order = 440, Description = "租户配置参数")] +public class SysConfigTenantService : IDynamicApiController, ITransient +{ + private readonly SysCacheService _sysCacheService; + private readonly SqlSugarRepository _sysConfigRep; + + public SysConfigTenantService(SysCacheService sysCacheService, + SqlSugarRepository sysConfigRep) + { + _sysCacheService = sysCacheService; + _sysConfigRep = sysConfigRep; + } + + /// + /// 获取配置参数分页列表 🔖 + /// + /// + /// + [DisplayName("获取配置参数分页列表")] + public async Task> Page(PageConfigTenantInput input) + { + return await _sysConfigRep.AsQueryable() + .Where(u => u.GroupCode != ConfigConst.SysWebConfigGroup || u.GroupCode == null) // 不显示 WebConfig 分组 + .WhereIF(!string.IsNullOrWhiteSpace(input.Name?.Trim()), u => u.Name.Contains(input.Name)) + .WhereIF(!string.IsNullOrWhiteSpace(input.Code?.Trim()), u => u.Code.Contains(input.Code)) + .WhereIF(!string.IsNullOrWhiteSpace(input.GroupCode?.Trim()), u => u.GroupCode.Equals(input.GroupCode)) + .OrderBuilder(input) + .ToPagedListAsync(input.Page, input.PageSize); + } + + /// + /// 获取配置参数列表 🔖 + /// + /// + [DisplayName("获取配置参数列表")] + public async Task> List(PageConfigTenantInput input) + { + return await _sysConfigRep.AsQueryable() + .WhereIF(!string.IsNullOrWhiteSpace(input.GroupCode?.Trim()), u => u.GroupCode.Equals(input.GroupCode)) + .ToListAsync(); + } + + /// + /// 增加配置参数 🔖 + /// + /// + /// + [ApiDescriptionSettings(Name = "Add"), HttpPost] + [DisplayName("增加配置参数")] + public async Task AddConfig(AddConfigTenantInput input) + { + var isExist = await _sysConfigRep.IsAnyAsync(u => u.Name == input.Name || u.Code == input.Code); + if (isExist) throw Oops.Oh(ErrorCodeEnum.D9000); + + await _sysConfigRep.InsertAsync(input.Adapt()); + } + + /// + /// 更新配置参数 🔖 + /// + /// + /// + [ApiDescriptionSettings(Name = "Update"), HttpPost] + [DisplayName("更新配置参数")] + [UnitOfWork] + public async Task UpdateConfig(UpdateConfigTenantInput input) + { + var isExist = await _sysConfigRep.IsAnyAsync(u => (u.Name == input.Name || u.Code == input.Code) && u.Id != input.Id); + if (isExist) throw Oops.Oh(ErrorCodeEnum.D9000); + + //// 若修改国密SM2密匙则密码重新加密 + //if (input.Code == ConfigConst.SysSM2Key && CryptogramUtil.CryptoType == CryptogramEnum.SM2.ToString()) + //{ + // var sysUserRep = _sysConfigRep.ChangeRepository>(); + // var sysUsers = await sysUserRep.AsQueryable().Select(u => new { u.Id, u.Password }).ToListAsync(); + // foreach(var user in sysUsers) + // { + // user.Password = CryptogramUtil.Encrypt(CryptogramUtil.Decrypt(user.Password)); + // } + // await sysUserRep.AsUpdateable(sysUsers).UpdateColumns(u => new { u.Password }).ExecuteCommandAsync(); + //} + + var config = input.Adapt(); + await _sysConfigRep.AsUpdateable(config).IgnoreColumns(true).ExecuteCommandAsync(); + + RemoveConfigCache(config); + } + + /// + /// 删除配置参数 🔖 + /// + /// + /// + [ApiDescriptionSettings(Name = "Delete"), HttpPost] + [DisplayName("删除配置参数")] + public async Task DeleteConfig(DeleteConfigTenantInput input) + { + var config = await _sysConfigRep.GetByIdAsync(input.Id); + // 禁止删除系统参数 + if (config.SysFlag == YesNoEnum.Y) throw Oops.Oh(ErrorCodeEnum.D9001); + + await _sysConfigRep.DeleteAsync(config); + + RemoveConfigCache(config); + } + + /// + /// 批量删除配置参数 🔖 + /// + /// + /// + [ApiDescriptionSettings(Name = "BatchDelete"), HttpPost] + [DisplayName("批量删除配置参数")] + public async Task BatchDeleteConfig(List ids) + { + foreach (var id in ids) + { + var config = await _sysConfigRep.GetByIdAsync(id); + // 禁止删除系统参数 + if (config.SysFlag == YesNoEnum.Y) continue; + + await _sysConfigRep.DeleteAsync(config); + + RemoveConfigCache(config); + } + } + + /// + /// 获取配置参数详情 🔖 + /// + /// + /// + [DisplayName("获取配置参数详情")] + public async Task GetDetail([FromQuery] ConfigTenantInput input) + { + return await _sysConfigRep.GetByIdAsync(input.Id); + } + + /// + /// 根据Code获取配置参数 + /// + /// + /// + [NonAction] + public async Task GetConfig(string code) + { + return await _sysConfigRep.GetFirstAsync(u => u.Code == code); + } + + /// + /// 根据Code获取配置参数值 🔖 + /// + /// + /// + [DisplayName("根据Code获取配置参数值")] + public async Task GetConfigValueByCode(string code) + { + return await GetConfigValueByCode(code); + } + + /// + /// 获取配置参数值 + /// + /// + /// + [NonAction] + public async Task GetConfigValueByCode(string code) + { + if (string.IsNullOrWhiteSpace(code)) return default; + + var value = _sysCacheService.Get($"{CacheConst.KeyConfig}{code}"); + if (string.IsNullOrEmpty(value)) + { + value = (await _sysConfigRep.CopyNew().GetFirstAsync(u => u.Code == code))?.Value; + _sysCacheService.Set($"{CacheConst.KeyConfig}{code}", value); + } + if (string.IsNullOrWhiteSpace(value)) return default; + return (T)Convert.ChangeType(value, typeof(T)); + } + + /// + /// 更新配置参数值 + /// + /// + /// + /// + [NonAction] + public async Task UpdateConfigValue(string code, string value) + { + var config = await _sysConfigRep.GetFirstAsync(u => u.Code == code); + if (config == null) return; + + config.Value = value; + await _sysConfigRep.AsUpdateable(config).ExecuteCommandAsync(); + + RemoveConfigCache(config); + } + + /// + /// 获取分组列表 🔖 + /// + /// + [DisplayName("获取分组列表")] + public async Task> GetGroupList() + { + return await _sysConfigRep.AsQueryable() + .Where(u => u.GroupCode != ConfigConst.SysWebConfigGroup || u.GroupCode == null) // 不显示 WebConfig 分组 + .GroupBy(u => u.GroupCode) + .Select(u => u.GroupCode).ToListAsync(); + } + + /// + /// 批量更新配置参数值 🔖 + /// + /// + /// + [ApiDescriptionSettings(Name = "BatchUpdate"), HttpPost] + [DisplayName("批量更新配置参数值")] + public async Task BatchUpdateConfig(List input) + { + foreach (var config in input) + { + var configInfo = await _sysConfigRep.GetFirstAsync(u => u.Code == config.Code); + if (configInfo == null) continue; + + await _sysConfigRep.AsUpdateable().SetColumns(u => u.Value == config.Value).Where(u => u.Code == config.Code).ExecuteCommandAsync(); + RemoveConfigCache(configInfo); + } + } + + /// + /// 清除配置缓存 + /// + /// + private void RemoveConfigCache(SysConfigTenant config) + { + _sysCacheService.Remove($"{CacheConst.KeyConfig}Value:{config.Code}"); + _sysCacheService.Remove($"{CacheConst.KeyConfig}Remark:{config.Code}"); + _sysCacheService.Remove($"{CacheConst.KeyConfig}{config.GroupCode}:GroupWithCache"); + _sysCacheService.Remove($"{CacheConst.KeyConfig}{config.Code}"); + } +} \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/Dict/Dto/DictDataInput.cs b/Admin.NET/Admin.NET.Core/Service/Dict/Dto/DictDataInput.cs index fa757d05..9a56ae79 100644 --- a/Admin.NET/Admin.NET.Core/Service/Dict/Dto/DictDataInput.cs +++ b/Admin.NET/Admin.NET.Core/Service/Dict/Dto/DictDataInput.cs @@ -18,9 +18,9 @@ public class PageDictDataInput : BasePageInput public long DictTypeId { get; set; } /// - /// 值 + /// 文本 /// - public string Value { get; set; } + public string Label { get; set; } /// /// 编码 @@ -52,10 +52,10 @@ public class GetDataDictDataInput public class QueryDictDataInput { /// - /// 编码 + /// 值 /// - [Required(ErrorMessage = "字典唯一编码不能为空")] - public string Code { get; set; } + [Required(ErrorMessage = "字典值不能为空")] + public string Value { get; set; } /// /// 状态 diff --git a/Admin.NET/Admin.NET.Core/Service/Dict/SysDictDataService.cs b/Admin.NET/Admin.NET.Core/Service/Dict/SysDictDataService.cs index 68978974..ff87762d 100644 --- a/Admin.NET/Admin.NET.Core/Service/Dict/SysDictDataService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Dict/SysDictDataService.cs @@ -13,6 +13,7 @@ namespace Admin.NET.Core.Service; public class SysDictDataService : IDynamicApiController, ITransient { private readonly SqlSugarRepository _sysDictDataRep; + public readonly ISugarQueryable VSysDictData; private readonly SysCacheService _sysCacheService; private readonly UserManager _userManager; @@ -23,6 +24,10 @@ public class SysDictDataService : IDynamicApiController, ITransient _userManager = userManager; _sysDictDataRep = sysDictDataRep; _sysCacheService = sysCacheService; + VSysDictData = _sysDictDataRep.Context.UnionAll( + _sysDictDataRep.AsQueryable(), + _sysDictDataRep.Change().AsQueryable() + .Select()); } /// @@ -33,11 +38,11 @@ public class SysDictDataService : IDynamicApiController, ITransient [DisplayName("获取字典值分页列表")] public async Task> Page(PageDictDataInput input) { - return await _sysDictDataRep.AsQueryable() + return await VSysDictData .Where(u => u.DictTypeId == input.DictTypeId) .WhereIF(!string.IsNullOrEmpty(input.Code?.Trim()), u => u.Code.Contains(input.Code)) - .WhereIF(!string.IsNullOrEmpty(input.Value?.Trim()), u => u.Value.Contains(input.Value)) - .OrderBy(u => new { u.TenantId, u.OrderNo, u.Code }) + .WhereIF(!string.IsNullOrEmpty(input.Label?.Trim()), u => u.Label.Contains(input.Label)) + .OrderBy(u => new { u.OrderNo, u.Code }) .ToPagedListAsync(input.Page, input.PageSize); } @@ -60,14 +65,16 @@ public class SysDictDataService : IDynamicApiController, ITransient [DisplayName("增加字典值")] public async Task AddDictData(AddDictDataInput input) { - var isExist = await _sysDictDataRep.IsAnyAsync(u => u.Code == input.Code && u.DictTypeId == input.DictTypeId); + var isExist = await VSysDictData.AnyAsync(u => u.Code == input.Code && u.DictTypeId == input.DictTypeId); if (isExist) throw Oops.Oh(ErrorCodeEnum.D3003); var dictType = await _sysDictDataRep.Change().GetByIdAsync(input.DictTypeId); if (dictType.SysFlag == YesNoEnum.Y && !_userManager.SuperAdmin) throw Oops.Oh(ErrorCodeEnum.D3008); _sysCacheService.Remove($"{CacheConst.KeyDict}{dictType.Code}"); - await _sysDictDataRep.InsertAsync(input.Adapt()); + + dynamic dictData = dictType.IsTenant == YesNoEnum.Y ? input.Adapt() : input.Adapt(); + await _sysDictDataRep.Context.Insertable(dictData).ExecuteCommandAsync(); } /// @@ -80,17 +87,18 @@ public class SysDictDataService : IDynamicApiController, ITransient [DisplayName("更新字典值")] public async Task UpdateDictData(UpdateDictDataInput input) { - var isExist = await _sysDictDataRep.IsAnyAsync(u => u.Id == input.Id); + var isExist = await VSysDictData.AnyAsync(u => u.Id == input.Id); if (!isExist) throw Oops.Oh(ErrorCodeEnum.D3004); - isExist = await _sysDictDataRep.IsAnyAsync(u => u.Code == input.Code && u.DictTypeId == input.DictTypeId && u.Id != input.Id); + isExist = await VSysDictData.AnyAsync(u => u.Code == input.Code && u.DictTypeId == input.DictTypeId && u.Id != input.Id); if (isExist) throw Oops.Oh(ErrorCodeEnum.D3003); var dictType = await _sysDictDataRep.Change().GetByIdAsync(input.DictTypeId); if (dictType.SysFlag == YesNoEnum.Y && !_userManager.SuperAdmin) throw Oops.Oh(ErrorCodeEnum.D3009); _sysCacheService.Remove($"{CacheConst.KeyDict}{dictType.Code}"); - await _sysDictDataRep.UpdateAsync(input.Adapt()); + dynamic dictData = dictType.IsTenant == YesNoEnum.Y ? input.Adapt() : input.Adapt(); + await _sysDictDataRep.Context.Updateable(dictData).ExecuteCommandAsync(); } /// @@ -103,13 +111,14 @@ public class SysDictDataService : IDynamicApiController, ITransient [DisplayName("删除字典值")] public async Task DeleteDictData(DeleteDictDataInput input) { - var dictData = await _sysDictDataRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D3004); + var dictData = await VSysDictData.FirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D3004); var dictType = await _sysDictDataRep.Change().GetByIdAsync(dictData.DictTypeId); if (dictType.SysFlag == YesNoEnum.Y && !_userManager.SuperAdmin) throw Oops.Oh(ErrorCodeEnum.D3010); _sysCacheService.Remove($"{CacheConst.KeyDict}{dictType.Code}"); - await _sysDictDataRep.DeleteAsync(dictData); + dynamic entity = dictType.IsTenant == YesNoEnum.Y ? input.Adapt() : input.Adapt(); + await _sysDictDataRep.Context.Deleteable(entity).ExecuteCommandAsync(); } /// @@ -120,7 +129,7 @@ public class SysDictDataService : IDynamicApiController, ITransient [DisplayName("获取字典值详情")] public async Task GetDetail([FromQuery] DictDataInput input) { - return await _sysDictDataRep.GetByIdAsync(input.Id); + return (await VSysDictData.FirstAsync(u => u.Id == input.Id))?.Adapt(); } /// @@ -132,7 +141,7 @@ public class SysDictDataService : IDynamicApiController, ITransient [DisplayName("修改字典值状态")] public async Task SetStatus(DictDataInput input) { - var dictData = await _sysDictDataRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D3004); + var dictData = await VSysDictData.FirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D3004); var dictType = await _sysDictDataRep.Change().GetByIdAsync(dictData.DictTypeId); if (dictType.SysFlag == YesNoEnum.Y && !_userManager.SuperAdmin) throw Oops.Oh(ErrorCodeEnum.D3009); @@ -140,7 +149,8 @@ public class SysDictDataService : IDynamicApiController, ITransient _sysCacheService.Remove($"{CacheConst.KeyDict}{dictType.Code}"); dictData.Status = input.Status; - await _sysDictDataRep.AsUpdateable(dictData).UpdateColumns(u => new { u.Status }, true).ExecuteCommandAsync(); + dynamic entity = dictType.IsTenant == YesNoEnum.Y ? input.Adapt() : input.Adapt(); + await _sysDictDataRep.Context.Updateable(entity).ExecuteCommandAsync(); } /// @@ -151,18 +161,7 @@ public class SysDictDataService : IDynamicApiController, ITransient [NonAction] public async Task> GetDictDataListByDictTypeId(long dictTypeId) { - var dictType = await _sysDictDataRep.Change().GetByIdAsync(dictTypeId); - var dictDataList = _sysCacheService.Get>($"{CacheConst.KeyDict}{dictType.Code}"); - - if (dictDataList == null) - { - dictDataList = await _sysDictDataRep.AsQueryable().ClearFilter() - .InnerJoin((u, a) => u.DictTypeId == a.Id) - .Where((u, a) => a.SysFlag == YesNoEnum.Y || u.TenantId == _userManager.TenantId) - .Where(u => u.DictTypeId == dictTypeId).OrderBy(u => new { u.OrderNo, u.Code }).ToListAsync(); - _sysCacheService.Set($"{CacheConst.KeyDict}{dictType.Code}", dictDataList); - } - return dictDataList; + return await GetDataListByIdOrCode(dictTypeId, null); } /// @@ -173,16 +172,41 @@ public class SysDictDataService : IDynamicApiController, ITransient [DisplayName("根据字典类型编码获取字典值集合")] public async Task> GetDataList(string code) { - var dictDataList = _sysCacheService.Get>($"{CacheConst.KeyDict}{code}"); + return await GetDataListByIdOrCode(null, code); + } + + /// + /// 获取字典值集合 🔖 + /// + /// + /// + /// + [NonAction] + public async Task> GetDataListByIdOrCode(long? typeId, string code) + { + if (string.IsNullOrWhiteSpace(code) && typeId == null || + !string.IsNullOrWhiteSpace(code) && typeId != null) + throw Oops.Oh(ErrorCodeEnum.D3011); + + var dictType = await _sysDictDataRep.Change().AsQueryable() + .WhereIF(!string.IsNullOrWhiteSpace(code), u => u.Code == code) + .WhereIF(typeId != null, u => u.Id == typeId) + .FirstAsync(); + if (dictType == null) return null; + + var dictDataList = _sysCacheService.Get>($"{CacheConst.KeyDict}{dictType.Code}"); if (dictDataList == null) { - dictDataList = await _sysDictDataRep.Change().AsQueryable() - .LeftJoin((u, a) => u.Id == a.DictTypeId).ClearFilter() - .Where((u, a) => u.SysFlag == YesNoEnum.Y || a.TenantId == _userManager.TenantId) - .Where((u, a) => u.Code == code && u.Status == StatusEnum.Enable && a.Status == StatusEnum.Enable) - .OrderBy((u, a) => new { a.OrderNo, a.Code }) - .Select((u, a) => a).ToListAsync(); - _sysCacheService.Set($"{CacheConst.KeyDict}{code}", dictDataList); + + dictDataList = await VSysDictData.InnerJoin((u, a) => u.DictTypeId == a.Id) + .Where(u => u.DictTypeId == dictType.Id) + .Select((u, a) => new SysDictData + { + Status = u.Status == StatusEnum.Enable && a.Status == StatusEnum.Enable ? StatusEnum.Enable : StatusEnum.Disable, + }, true) + .OrderBy(u => new { u.OrderNo, u.Code }) + .ToListAsync(); + _sysCacheService.Set($"{CacheConst.KeyDict}{dictType.Code}", dictDataList); } return dictDataList; } @@ -195,13 +219,9 @@ public class SysDictDataService : IDynamicApiController, ITransient [DisplayName("根据查询条件获取字典值集合")] public async Task> GetDataList([FromQuery] QueryDictDataInput input) { - return await _sysDictDataRep.Change().AsQueryable() - .LeftJoin((u, a) => u.Id == a.DictTypeId).ClearFilter() - .Where((u, a) => u.SysFlag == YesNoEnum.Y || a.TenantId == _userManager.TenantId) - .Where((u, a) => u.Code == input.Code) - .WhereIF(input.Status.HasValue, (u, a) => u.Status == (StatusEnum)input.Status.Value && a.Status == (StatusEnum)input.Status.Value) - .OrderBy((u, a) => new { a.OrderNo, a.Code }) - .Select((u, a) => a).ToListAsync(); + var dataList = await GetDataList(input.Value); + if (input.Status.HasValue) return dataList.Where(u => u.Status == (StatusEnum)input.Status.Value).ToList(); + return dataList; } /// @@ -212,9 +232,12 @@ public class SysDictDataService : IDynamicApiController, ITransient [NonAction] public async Task DeleteDictData(long dictTypeId) { - var dictTypeCode = await _sysDictDataRep.AsQueryable().Where(u => u.DictTypeId == dictTypeId).Select(u => u.DictType.Code).FirstAsync(); - _sysCacheService.Remove($"{CacheConst.KeyDict}{dictTypeCode}"); + var dictType = await _sysDictDataRep.Change().AsQueryable().Where(u => u.Id == dictTypeId).FirstAsync(); + _sysCacheService.Remove($"{CacheConst.KeyDict}{dictType?.Code}"); - await _sysDictDataRep.DeleteAsync(u => u.DictTypeId == dictTypeId); + if (dictType?.IsTenant == YesNoEnum.Y) + await _sysDictDataRep.Change().DeleteAsync(u => u.DictTypeId == dictTypeId); + else + await _sysDictDataRep.DeleteAsync(u => u.DictTypeId == dictTypeId); } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/Dict/SysDictTypeService.cs b/Admin.NET/Admin.NET.Core/Service/Dict/SysDictTypeService.cs index b08d6015..66e3fffa 100644 --- a/Admin.NET/Admin.NET.Core/Service/Dict/SysDictTypeService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Dict/SysDictTypeService.cs @@ -36,7 +36,7 @@ public class SysDictTypeService : IDynamicApiController, ITransient public async Task> Page(PageDictTypeInput input) { return await _sysDictTypeRep.AsQueryable() - .WhereIF(!_userManager.SuperAdmin, u => u.SysFlag == YesNoEnum.N) + .WhereIF(!_userManager.SuperAdmin, u => u.IsTenant == YesNoEnum.Y) .WhereIF(!string.IsNullOrEmpty(input.Code?.Trim()), u => u.Code.Contains(input.Code)) .WhereIF(!string.IsNullOrEmpty(input.Name?.Trim()), u => u.Name.Contains(input.Name)) .OrderBy(u => new { u.OrderNo, u.Code }) @@ -94,6 +94,7 @@ public class SysDictTypeService : IDynamicApiController, ITransient public async Task UpdateDictType(UpdateDictTypeInput input) { var dict = await _sysDictTypeRep.GetFirstAsync(x => x.Id == input.Id); + if (dict.IsTenant != input.IsTenant) throw Oops.Oh(ErrorCodeEnum.D3012); if (dict == null) throw Oops.Oh(ErrorCodeEnum.D3000); if (dict.Code.ToLower().EndsWith("enum") && input.Code != dict.Code) throw Oops.Oh(ErrorCodeEnum.D3007); @@ -161,10 +162,9 @@ public class SysDictTypeService : IDynamicApiController, ITransient public async Task GetAllDictList() { var ds = await _sysDictTypeRep.AsQueryable() - .InnerJoin((u, a) => u.Id == a.DictTypeId).ClearFilter() - .Where((u, a) => u.SysFlag == YesNoEnum.Y || a.TenantId == _userManager.TenantId) - .Where((u, a) => u.IsDelete == false && a.IsDelete == false && u.Status == StatusEnum.Enable && a.Status == StatusEnum.Enable) - .Select((u, a) => new { TypeCode = u.Code, a.Code, a.Name, a.Value, a.Remark, a.OrderNo, a.TagType, a.ExtData }) + .InnerJoin(_sysDictDataService.VSysDictData, (u, a) => u.Id == a.DictTypeId) + .Where((u, a) => u.Status == StatusEnum.Enable && a.Status == StatusEnum.Enable) + .Select((u, a) => new { TypeCode = u.Code, a.Label, a.Value, a.Code, a.Remark, a.OrderNo, a.TagType, a.ExtData }) .ToListAsync(); return ds.OrderBy(u => u.OrderNo).GroupBy(u => u.TypeCode).ToDictionary(u => u.Key, u => u); } diff --git a/Admin.NET/Admin.NET.Core/Utils/CommonUtil.cs b/Admin.NET/Admin.NET.Core/Utils/CommonUtil.cs index 1008a3eb..a2c62022 100644 --- a/Admin.NET/Admin.NET.Core/Utils/CommonUtil.cs +++ b/Admin.NET/Admin.NET.Core/Utils/CommonUtil.cs @@ -389,8 +389,8 @@ public static class CommonUtil .Where((u, a) => u.Status == StatusEnum.Enable && a.Status == StatusEnum.Enable) .Select((u, a) => new { - Label = a.Value, - Value = a.Code + a.Label, + a.Value }).ToList() .ToDictionary(u => u.Label, u => u.Value.ParseTo(targetProp.PropertyType)); propMappings.Add(propertyInfo.Name, new Tuple, PropertyInfo, PropertyInfo>(mappingValues, propertyInfo, targetProp)); @@ -431,8 +431,8 @@ public static class CommonUtil .Where((u, a) => u.Status == StatusEnum.Enable && a.Status == StatusEnum.Enable) .Select((u, a) => new { - Label = a.Value, - Value = a.Code + a.Label, + a.Value }).ToList() .ToDictionary(u => u.Value.ParseTo(targetProp.PropertyType), u => u.Label); propMappings.Add(propertyInfo.Name, new Tuple, PropertyInfo, PropertyInfo>(mappingValues, targetProp, propertyInfo)); diff --git a/Admin.NET/Admin.NET.Core/Utils/ExcelHelper.cs b/Admin.NET/Admin.NET.Core/Utils/ExcelHelper.cs index b073bff1..a15a5a52 100644 --- a/Admin.NET/Admin.NET.Core/Utils/ExcelHelper.cs +++ b/Admin.NET/Admin.NET.Core/Utils/ExcelHelper.cs @@ -115,8 +115,8 @@ public class ExcelHelper var dict = prop.GetCustomAttribute(); if (dict != null) { - // 填充字典值value为下列列表 - dataList = sysDictTypeService.GetDataList(new GetDataDictTypeInput { Code = dict.DictTypeCode }).Result?.Select(u => u.Value).ToList(); + // 填充字典值value为下拉列表 + dataList = sysDictTypeService.GetDataList(new GetDataDictTypeInput { Code = dict.DictTypeCode }).Result?.Select(u => u.Label).ToList(); } } } diff --git a/Web/src/api-services/api.ts b/Web/src/api-services/api.ts index ab72a5ab..da9eaef6 100644 --- a/Web/src/api-services/api.ts +++ b/Web/src/api-services/api.ts @@ -10,8 +10,7 @@ * 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 * from './apis/apijsonapi'; + */export * from './apis/apijsonapi'; export * from './apis/sys-alipay-api'; export * from './apis/sys-auth-api'; export * from './apis/sys-cache-api'; @@ -20,6 +19,7 @@ export * from './apis/sys-code-gen-config-api'; export * from './apis/sys-code-gen-template-api'; export * from './apis/sys-common-api'; export * from './apis/sys-config-api'; +export * from './apis/sys-config-tenant-api'; export * from './apis/sys-const-api'; export * from './apis/sys-database-api'; export * from './apis/sys-db-backup-api'; diff --git a/Web/src/api-services/apis/sys-config-tenant-api.ts b/Web/src/api-services/apis/sys-config-tenant-api.ts new file mode 100644 index 00000000..690b77c0 --- /dev/null +++ b/Web/src/api-services/apis/sys-config-tenant-api.ts @@ -0,0 +1,890 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * 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 globalAxios, { AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios'; +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 { AddConfigTenantInput } from '../models'; +import { AdminNETResultListString } from '../models'; +import { AdminNETResultListSysConfigTenant } from '../models'; +import { AdminNETResultSqlSugarPagedListSysConfigTenant } from '../models'; +import { AdminNETResultString } from '../models'; +import { AdminNETResultSysConfigTenant } from '../models'; +import { BatchConfigTenantInput } from '../models'; +import { DeleteConfigTenantInput } from '../models'; +import { PageConfigTenantInput } from '../models'; +import { UpdateConfigTenantInput } from '../models'; +/** + * SysConfigTenantApi - axios parameter creator + * @export + */ +export const SysConfigTenantApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @summary 增加配置参数 🔖 + * @param {AddConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + apiSysConfigTenantAddPost: async (body?: AddConfigTenantInput, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/api/sysConfigTenant/add`; + // 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; + } + + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + + 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}; + const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; + localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || ""); + + return { + url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, + options: localVarRequestOptions, + }; + }, + /** + * + * @summary 批量删除配置参数 🔖 + * @param {Array} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + apiSysConfigTenantBatchDeletePost: async (body?: Array, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/api/sysConfigTenant/batchDelete`; + // 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; + } + + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + + 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}; + const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; + localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || ""); + + return { + url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, + options: localVarRequestOptions, + }; + }, + /** + * + * @summary 批量更新配置参数值 🔖 + * @param {Array} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + apiSysConfigTenantBatchUpdatePost: async (body?: Array, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/api/sysConfigTenant/batchUpdate`; + // 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; + } + + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + + 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}; + const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; + localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || ""); + + return { + url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, + options: localVarRequestOptions, + }; + }, + /** + * + * @summary 根据Code获取配置参数值 🔖 + * @param {string} code + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + apiSysConfigTenantConfigValueByCodeCodeGet: async (code: string, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'code' is not null or undefined + if (code === null || code === undefined) { + throw new RequiredError('code','Required parameter code was null or undefined when calling apiSysConfigTenantConfigValueByCodeCodeGet.'); + } + const localVarPath = `/api/sysConfigTenant/configValueByCode/{code}` + .replace(`{${"code"}}`, encodeURIComponent(String(code))); + // 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; + } + + 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 {DeleteConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + apiSysConfigTenantDeletePost: async (body?: DeleteConfigTenantInput, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/api/sysConfigTenant/delete`; + // 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; + } + + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + + 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}; + const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; + localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || ""); + + return { + url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, + options: localVarRequestOptions, + }; + }, + /** + * + * @summary 获取配置参数详情 🔖 + * @param {number} id 主键Id + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + apiSysConfigTenantDetailGet: async (id: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'id' is not null or undefined + if (id === null || id === undefined) { + throw new RequiredError('id','Required parameter id was null or undefined when calling apiSysConfigTenantDetailGet.'); + } + const localVarPath = `/api/sysConfigTenant/detail`; + // 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 (id !== undefined) { + localVarQueryParameter['Id'] = id; + } + + 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 {*} [options] Override http request option. + * @throws {RequiredError} + */ + apiSysConfigTenantGroupListGet: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/api/sysConfigTenant/groupList`; + // 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; + } + + 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 {PageConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + apiSysConfigTenantListPost: async (body?: PageConfigTenantInput, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/api/sysConfigTenant/list`; + // 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; + } + + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + + 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}; + const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; + localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || ""); + + return { + url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, + options: localVarRequestOptions, + }; + }, + /** + * + * @summary 获取配置参数分页列表 🔖 + * @param {PageConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + apiSysConfigTenantPagePost: async (body?: PageConfigTenantInput, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/api/sysConfigTenant/page`; + // 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; + } + + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + + 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}; + const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; + localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || ""); + + return { + url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, + options: localVarRequestOptions, + }; + }, + /** + * + * @summary 更新配置参数 🔖 + * @param {UpdateConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + apiSysConfigTenantUpdatePost: async (body?: UpdateConfigTenantInput, options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/api/sysConfigTenant/update`; + // 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; + } + + localVarHeaderParameter['Content-Type'] = 'application/json-patch+json'; + + 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}; + const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json'; + localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || ""); + + return { + url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash, + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * SysConfigTenantApi - functional programming interface + * @export + */ +export const SysConfigTenantApiFp = function(configuration?: Configuration) { + return { + /** + * + * @summary 增加配置参数 🔖 + * @param {AddConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantAddPost(body?: AddConfigTenantInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysConfigTenantApiAxiosParamCreator(configuration).apiSysConfigTenantAddPost(body, options); + return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; + return axios.request(axiosRequestArgs); + }; + }, + /** + * + * @summary 批量删除配置参数 🔖 + * @param {Array} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantBatchDeletePost(body?: Array, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysConfigTenantApiAxiosParamCreator(configuration).apiSysConfigTenantBatchDeletePost(body, options); + return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; + return axios.request(axiosRequestArgs); + }; + }, + /** + * + * @summary 批量更新配置参数值 🔖 + * @param {Array} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantBatchUpdatePost(body?: Array, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysConfigTenantApiAxiosParamCreator(configuration).apiSysConfigTenantBatchUpdatePost(body, options); + return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; + return axios.request(axiosRequestArgs); + }; + }, + /** + * + * @summary 根据Code获取配置参数值 🔖 + * @param {string} code + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantConfigValueByCodeCodeGet(code: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysConfigTenantApiAxiosParamCreator(configuration).apiSysConfigTenantConfigValueByCodeCodeGet(code, options); + return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; + return axios.request(axiosRequestArgs); + }; + }, + /** + * + * @summary 删除配置参数 🔖 + * @param {DeleteConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantDeletePost(body?: DeleteConfigTenantInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysConfigTenantApiAxiosParamCreator(configuration).apiSysConfigTenantDeletePost(body, options); + return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; + return axios.request(axiosRequestArgs); + }; + }, + /** + * + * @summary 获取配置参数详情 🔖 + * @param {number} id 主键Id + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantDetailGet(id: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysConfigTenantApiAxiosParamCreator(configuration).apiSysConfigTenantDetailGet(id, options); + return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; + return axios.request(axiosRequestArgs); + }; + }, + /** + * + * @summary 获取分组列表 🔖 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantGroupListGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysConfigTenantApiAxiosParamCreator(configuration).apiSysConfigTenantGroupListGet(options); + return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; + return axios.request(axiosRequestArgs); + }; + }, + /** + * + * @summary 获取配置参数列表 🔖 + * @param {PageConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantListPost(body?: PageConfigTenantInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysConfigTenantApiAxiosParamCreator(configuration).apiSysConfigTenantListPost(body, options); + return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; + return axios.request(axiosRequestArgs); + }; + }, + /** + * + * @summary 获取配置参数分页列表 🔖 + * @param {PageConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantPagePost(body?: PageConfigTenantInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysConfigTenantApiAxiosParamCreator(configuration).apiSysConfigTenantPagePost(body, options); + return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; + return axios.request(axiosRequestArgs); + }; + }, + /** + * + * @summary 更新配置参数 🔖 + * @param {UpdateConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantUpdatePost(body?: UpdateConfigTenantInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysConfigTenantApiAxiosParamCreator(configuration).apiSysConfigTenantUpdatePost(body, options); + return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; + return axios.request(axiosRequestArgs); + }; + }, + } +}; + +/** + * SysConfigTenantApi - factory interface + * @export + */ +export const SysConfigTenantApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + return { + /** + * + * @summary 增加配置参数 🔖 + * @param {AddConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantAddPost(body?: AddConfigTenantInput, options?: AxiosRequestConfig): Promise> { + return SysConfigTenantApiFp(configuration).apiSysConfigTenantAddPost(body, options).then((request) => request(axios, basePath)); + }, + /** + * + * @summary 批量删除配置参数 🔖 + * @param {Array} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantBatchDeletePost(body?: Array, options?: AxiosRequestConfig): Promise> { + return SysConfigTenantApiFp(configuration).apiSysConfigTenantBatchDeletePost(body, options).then((request) => request(axios, basePath)); + }, + /** + * + * @summary 批量更新配置参数值 🔖 + * @param {Array} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantBatchUpdatePost(body?: Array, options?: AxiosRequestConfig): Promise> { + return SysConfigTenantApiFp(configuration).apiSysConfigTenantBatchUpdatePost(body, options).then((request) => request(axios, basePath)); + }, + /** + * + * @summary 根据Code获取配置参数值 🔖 + * @param {string} code + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantConfigValueByCodeCodeGet(code: string, options?: AxiosRequestConfig): Promise> { + return SysConfigTenantApiFp(configuration).apiSysConfigTenantConfigValueByCodeCodeGet(code, options).then((request) => request(axios, basePath)); + }, + /** + * + * @summary 删除配置参数 🔖 + * @param {DeleteConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantDeletePost(body?: DeleteConfigTenantInput, options?: AxiosRequestConfig): Promise> { + return SysConfigTenantApiFp(configuration).apiSysConfigTenantDeletePost(body, options).then((request) => request(axios, basePath)); + }, + /** + * + * @summary 获取配置参数详情 🔖 + * @param {number} id 主键Id + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantDetailGet(id: number, options?: AxiosRequestConfig): Promise> { + return SysConfigTenantApiFp(configuration).apiSysConfigTenantDetailGet(id, options).then((request) => request(axios, basePath)); + }, + /** + * + * @summary 获取分组列表 🔖 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantGroupListGet(options?: AxiosRequestConfig): Promise> { + return SysConfigTenantApiFp(configuration).apiSysConfigTenantGroupListGet(options).then((request) => request(axios, basePath)); + }, + /** + * + * @summary 获取配置参数列表 🔖 + * @param {PageConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantListPost(body?: PageConfigTenantInput, options?: AxiosRequestConfig): Promise> { + return SysConfigTenantApiFp(configuration).apiSysConfigTenantListPost(body, options).then((request) => request(axios, basePath)); + }, + /** + * + * @summary 获取配置参数分页列表 🔖 + * @param {PageConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantPagePost(body?: PageConfigTenantInput, options?: AxiosRequestConfig): Promise> { + return SysConfigTenantApiFp(configuration).apiSysConfigTenantPagePost(body, options).then((request) => request(axios, basePath)); + }, + /** + * + * @summary 更新配置参数 🔖 + * @param {UpdateConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysConfigTenantUpdatePost(body?: UpdateConfigTenantInput, options?: AxiosRequestConfig): Promise> { + return SysConfigTenantApiFp(configuration).apiSysConfigTenantUpdatePost(body, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * SysConfigTenantApi - object-oriented interface + * @export + * @class SysConfigTenantApi + * @extends {BaseAPI} + */ +export class SysConfigTenantApi extends BaseAPI { + /** + * + * @summary 增加配置参数 🔖 + * @param {AddConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SysConfigTenantApi + */ + public async apiSysConfigTenantAddPost(body?: AddConfigTenantInput, options?: AxiosRequestConfig) : Promise> { + return SysConfigTenantApiFp(this.configuration).apiSysConfigTenantAddPost(body, options).then((request) => request(this.axios, this.basePath)); + } + /** + * + * @summary 批量删除配置参数 🔖 + * @param {Array} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SysConfigTenantApi + */ + public async apiSysConfigTenantBatchDeletePost(body?: Array, options?: AxiosRequestConfig) : Promise> { + return SysConfigTenantApiFp(this.configuration).apiSysConfigTenantBatchDeletePost(body, options).then((request) => request(this.axios, this.basePath)); + } + /** + * + * @summary 批量更新配置参数值 🔖 + * @param {Array} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SysConfigTenantApi + */ + public async apiSysConfigTenantBatchUpdatePost(body?: Array, options?: AxiosRequestConfig) : Promise> { + return SysConfigTenantApiFp(this.configuration).apiSysConfigTenantBatchUpdatePost(body, options).then((request) => request(this.axios, this.basePath)); + } + /** + * + * @summary 根据Code获取配置参数值 🔖 + * @param {string} code + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SysConfigTenantApi + */ + public async apiSysConfigTenantConfigValueByCodeCodeGet(code: string, options?: AxiosRequestConfig) : Promise> { + return SysConfigTenantApiFp(this.configuration).apiSysConfigTenantConfigValueByCodeCodeGet(code, options).then((request) => request(this.axios, this.basePath)); + } + /** + * + * @summary 删除配置参数 🔖 + * @param {DeleteConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SysConfigTenantApi + */ + public async apiSysConfigTenantDeletePost(body?: DeleteConfigTenantInput, options?: AxiosRequestConfig) : Promise> { + return SysConfigTenantApiFp(this.configuration).apiSysConfigTenantDeletePost(body, options).then((request) => request(this.axios, this.basePath)); + } + /** + * + * @summary 获取配置参数详情 🔖 + * @param {number} id 主键Id + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SysConfigTenantApi + */ + public async apiSysConfigTenantDetailGet(id: number, options?: AxiosRequestConfig) : Promise> { + return SysConfigTenantApiFp(this.configuration).apiSysConfigTenantDetailGet(id, options).then((request) => request(this.axios, this.basePath)); + } + /** + * + * @summary 获取分组列表 🔖 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SysConfigTenantApi + */ + public async apiSysConfigTenantGroupListGet(options?: AxiosRequestConfig) : Promise> { + return SysConfigTenantApiFp(this.configuration).apiSysConfigTenantGroupListGet(options).then((request) => request(this.axios, this.basePath)); + } + /** + * + * @summary 获取配置参数列表 🔖 + * @param {PageConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SysConfigTenantApi + */ + public async apiSysConfigTenantListPost(body?: PageConfigTenantInput, options?: AxiosRequestConfig) : Promise> { + return SysConfigTenantApiFp(this.configuration).apiSysConfigTenantListPost(body, options).then((request) => request(this.axios, this.basePath)); + } + /** + * + * @summary 获取配置参数分页列表 🔖 + * @param {PageConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SysConfigTenantApi + */ + public async apiSysConfigTenantPagePost(body?: PageConfigTenantInput, options?: AxiosRequestConfig) : Promise> { + return SysConfigTenantApiFp(this.configuration).apiSysConfigTenantPagePost(body, options).then((request) => request(this.axios, this.basePath)); + } + /** + * + * @summary 更新配置参数 🔖 + * @param {UpdateConfigTenantInput} [body] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SysConfigTenantApi + */ + public async apiSysConfigTenantUpdatePost(body?: UpdateConfigTenantInput, options?: AxiosRequestConfig) : Promise> { + return SysConfigTenantApiFp(this.configuration).apiSysConfigTenantUpdatePost(body, options).then((request) => request(this.axios, this.basePath)); + } +} diff --git a/Web/src/api-services/apis/sys-dict-data-api.ts b/Web/src/api-services/apis/sys-dict-data-api.ts index bf89a469..e0e7b5f8 100644 --- a/Web/src/api-services/apis/sys-dict-data-api.ts +++ b/Web/src/api-services/apis/sys-dict-data-api.ts @@ -11,7 +11,6 @@ * https://github.com/swagger-api/swagger-codegen.git * Do not edit the class manually. */ - import globalAxios, { AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios'; import { Configuration } from '../configuration'; // Some imports not used depending on template conditions @@ -132,15 +131,15 @@ export const SysDictDataApiAxiosParamCreator = function (configuration?: Configu /** * * @summary 根据查询条件获取字典值集合 🔖 - * @param {string} code 编码 + * @param {string} value 值 * @param {number} [status] 状态 * @param {*} [options] Override http request option. * @throws {RequiredError} */ - apiSysDictDataDataListGet: async (code: string, status?: number, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'code' is not null or undefined - if (code === null || code === undefined) { - throw new RequiredError('code','Required parameter code was null or undefined when calling apiSysDictDataDataListGet.'); + apiSysDictDataDataListGet: async (value: string, status?: number, options: AxiosRequestConfig = {}): Promise => { + // verify required parameter 'value' is not null or undefined + if (value === null || value === undefined) { + throw new RequiredError('value','Required parameter value was null or undefined when calling apiSysDictDataDataListGet.'); } const localVarPath = `/api/sysDictData/dataList`; // use dummy base URL string because the URL constructor only accepts absolute URLs. @@ -162,8 +161,8 @@ export const SysDictDataApiAxiosParamCreator = function (configuration?: Configu localVarHeaderParameter["Authorization"] = "Bearer " + accessToken; } - if (code !== undefined) { - localVarQueryParameter['Code'] = code; + if (value !== undefined) { + localVarQueryParameter['Value'] = value; } if (status !== undefined) { @@ -527,13 +526,13 @@ export const SysDictDataApiFp = function(configuration?: Configuration) { /** * * @summary 根据查询条件获取字典值集合 🔖 - * @param {string} code 编码 + * @param {string} value 值 * @param {number} [status] 状态 * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async apiSysDictDataDataListGet(code: string, status?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { - const localVarAxiosArgs = await SysDictDataApiAxiosParamCreator(configuration).apiSysDictDataDataListGet(code, status, options); + async apiSysDictDataDataListGet(value: string, status?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysDictDataApiAxiosParamCreator(configuration).apiSysDictDataDataListGet(value, status, options); return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; return axios.request(axiosRequestArgs); @@ -656,13 +655,13 @@ export const SysDictDataApiFactory = function (configuration?: Configuration, ba /** * * @summary 根据查询条件获取字典值集合 🔖 - * @param {string} code 编码 + * @param {string} value 值 * @param {number} [status] 状态 * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async apiSysDictDataDataListGet(code: string, status?: number, options?: AxiosRequestConfig): Promise> { - return SysDictDataApiFp(configuration).apiSysDictDataDataListGet(code, status, options).then((request) => request(axios, basePath)); + async apiSysDictDataDataListGet(value: string, status?: number, options?: AxiosRequestConfig): Promise> { + return SysDictDataApiFp(configuration).apiSysDictDataDataListGet(value, status, options).then((request) => request(axios, basePath)); }, /** * @@ -760,14 +759,14 @@ export class SysDictDataApi extends BaseAPI { /** * * @summary 根据查询条件获取字典值集合 🔖 - * @param {string} code 编码 + * @param {string} value 值 * @param {number} [status] 状态 * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof SysDictDataApi */ - public async apiSysDictDataDataListGet(code: string, status?: number, options?: AxiosRequestConfig) : Promise> { - return SysDictDataApiFp(this.configuration).apiSysDictDataDataListGet(code, status, options).then((request) => request(this.axios, this.basePath)); + public async apiSysDictDataDataListGet(value: string, status?: number, options?: AxiosRequestConfig) : Promise> { + return SysDictDataApiFp(this.configuration).apiSysDictDataDataListGet(value, status, options).then((request) => request(this.axios, this.basePath)); } /** * diff --git a/Web/src/api-services/models/add-config-tenant-input.ts b/Web/src/api-services/models/add-config-tenant-input.ts new file mode 100644 index 00000000..293c02c2 --- /dev/null +++ b/Web/src/api-services/models/add-config-tenant-input.ts @@ -0,0 +1,117 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * 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 { YesNoEnum } from './yes-no-enum'; +/** + * + * @export + * @interface AddConfigTenantInput + */ +export interface AddConfigTenantInput { + /** + * 雪花Id + * @type {number} + * @memberof AddConfigTenantInput + */ + id?: number; + /** + * 创建时间 + * @type {Date} + * @memberof AddConfigTenantInput + */ + createTime?: Date; + /** + * 更新时间 + * @type {Date} + * @memberof AddConfigTenantInput + */ + updateTime?: Date | null; + /** + * 创建者Id + * @type {number} + * @memberof AddConfigTenantInput + */ + createUserId?: number | null; + /** + * 创建者姓名 + * @type {string} + * @memberof AddConfigTenantInput + */ + createUserName?: string | null; + /** + * 修改者Id + * @type {number} + * @memberof AddConfigTenantInput + */ + updateUserId?: number | null; + /** + * 修改者姓名 + * @type {string} + * @memberof AddConfigTenantInput + */ + updateUserName?: string | null; + /** + * 软删除 + * @type {boolean} + * @memberof AddConfigTenantInput + */ + isDelete?: boolean; + /** + * 租户Id + * @type {number} + * @memberof AddConfigTenantInput + */ + tenantId?: number | null; + /** + * 名称 + * @type {string} + * @memberof AddConfigTenantInput + */ + name: string; + /** + * 编码 + * @type {string} + * @memberof AddConfigTenantInput + */ + code?: string | null; + /** + * 参数值 + * @type {string} + * @memberof AddConfigTenantInput + */ + value?: string | null; + /** + * + * @type {YesNoEnum} + * @memberof AddConfigTenantInput + */ + sysFlag?: YesNoEnum; + /** + * 分组编码 + * @type {string} + * @memberof AddConfigTenantInput + */ + groupCode?: string | null; + /** + * 排序 + * @type {number} + * @memberof AddConfigTenantInput + */ + orderNo?: number; + /** + * 备注 + * @type {string} + * @memberof AddConfigTenantInput + */ + remark?: string | null; +} diff --git a/Web/src/api-services/models/add-dict-data-input.ts b/Web/src/api-services/models/add-dict-data-input.ts index dd3d9722..836bf349 100644 --- a/Web/src/api-services/models/add-dict-data-input.ts +++ b/Web/src/api-services/models/add-dict-data-input.ts @@ -11,169 +11,123 @@ * https://github.com/swagger-api/swagger-codegen.git * Do not edit the class manually. */ - import { StatusEnum } from './status-enum'; - /** +/** * - * * @export * @interface AddDictDataInput */ export interface AddDictDataInput { - /** * 雪花Id - * * @type {number} * @memberof AddDictDataInput */ id?: number; - /** * 创建时间 - * * @type {Date} * @memberof AddDictDataInput */ createTime?: Date; - /** * 更新时间 - * * @type {Date} * @memberof AddDictDataInput */ updateTime?: Date | null; - /** * 创建者Id - * * @type {number} * @memberof AddDictDataInput */ createUserId?: number | null; - /** * 创建者姓名 - * * @type {string} * @memberof AddDictDataInput */ createUserName?: string | null; - /** * 修改者Id - * * @type {number} * @memberof AddDictDataInput */ updateUserId?: number | null; - /** * 修改者姓名 - * * @type {string} * @memberof AddDictDataInput */ updateUserName?: string | null; - /** * 软删除 - * * @type {boolean} * @memberof AddDictDataInput */ isDelete?: boolean; - - /** - * 租户Id - * - * @type {number} - * @memberof AddDictDataInput - */ - tenantId?: number | null; - /** * 字典类型Id - * * @type {number} * @memberof AddDictDataInput */ dictTypeId?: number; - + /** + * 显示文本 + * @type {string} + * @memberof AddDictDataInput + */ + label: string; /** * 值 - * * @type {string} * @memberof AddDictDataInput */ value: string; - /** * 编码 - * * @type {string} * @memberof AddDictDataInput */ - code: string; - - /** - * 名称 - * - * @type {string} - * @memberof AddDictDataInput - */ - name?: string | null; - + code?: string | null; /** * 显示样式-标签颜色 - * * @type {string} * @memberof AddDictDataInput */ tagType?: string | null; - /** * 显示样式-Style(控制显示样式) - * * @type {string} * @memberof AddDictDataInput */ styleSetting?: string | null; - /** * 显示样式-Class(控制显示样式) - * * @type {string} * @memberof AddDictDataInput */ classSetting?: string | null; - /** * 排序 - * * @type {number} * @memberof AddDictDataInput */ orderNo?: number; - /** * 备注 - * * @type {string} * @memberof AddDictDataInput */ remark?: string | null; - /** * 拓展数据(保存业务功能的配置项) - * * @type {string} * @memberof AddDictDataInput */ extData?: string | null; - /** + * * @type {StatusEnum} * @memberof AddDictDataInput */ diff --git a/Web/src/api-services/models/add-dict-type-input.ts b/Web/src/api-services/models/add-dict-type-input.ts index 89cf5632..6bf5d9c1 100644 --- a/Web/src/api-services/models/add-dict-type-input.ts +++ b/Web/src/api-services/models/add-dict-type-input.ts @@ -11,129 +11,107 @@ * https://github.com/swagger-api/swagger-codegen.git * Do not edit the class manually. */ - import { StatusEnum } from './status-enum'; import { SysDictData } from './sys-dict-data'; import { YesNoEnum } from './yes-no-enum'; - /** +/** * - * * @export * @interface AddDictTypeInput */ export interface AddDictTypeInput { - /** * 雪花Id - * * @type {number} * @memberof AddDictTypeInput */ id?: number; - /** * 创建时间 - * * @type {Date} * @memberof AddDictTypeInput */ createTime?: Date; - /** * 更新时间 - * * @type {Date} * @memberof AddDictTypeInput */ updateTime?: Date | null; - /** * 创建者Id - * * @type {number} * @memberof AddDictTypeInput */ createUserId?: number | null; - /** * 创建者姓名 - * * @type {string} * @memberof AddDictTypeInput */ createUserName?: string | null; - /** * 修改者Id - * * @type {number} * @memberof AddDictTypeInput */ updateUserId?: number | null; - /** * 修改者姓名 - * * @type {string} * @memberof AddDictTypeInput */ updateUserName?: string | null; - /** * 软删除 - * * @type {boolean} * @memberof AddDictTypeInput */ isDelete?: boolean; - /** * 名称 - * * @type {string} * @memberof AddDictTypeInput */ name: string; - /** * 编码 - * * @type {string} * @memberof AddDictTypeInput */ code: string; - /** * 排序 - * * @type {number} * @memberof AddDictTypeInput */ orderNo?: number; - /** * 备注 - * * @type {string} * @memberof AddDictTypeInput */ remark?: string | null; - /** + * * @type {StatusEnum} * @memberof AddDictTypeInput */ status?: StatusEnum; - + /** + * + * @type {YesNoEnum} + * @memberof AddDictTypeInput + */ + isTenant?: YesNoEnum; /** * 字典值集合 - * * @type {Array} * @memberof AddDictTypeInput */ children?: Array | null; - /** + * * @type {YesNoEnum} * @memberof AddDictTypeInput */ diff --git a/Web/src/api-services/models/admin-netresult-list-sys-config-tenant.ts b/Web/src/api-services/models/admin-netresult-list-sys-config-tenant.ts new file mode 100644 index 00000000..3402812b --- /dev/null +++ b/Web/src/api-services/models/admin-netresult-list-sys-config-tenant.ts @@ -0,0 +1,57 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * 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 { SysConfigTenant } from './sys-config-tenant'; +/** + * 全局返回结果 + * @export + * @interface AdminNETResultListSysConfigTenant + */ +export interface AdminNETResultListSysConfigTenant { + /** + * 状态码 + * @type {number} + * @memberof AdminNETResultListSysConfigTenant + */ + code?: number; + /** + * 类型success、warning、error + * @type {string} + * @memberof AdminNETResultListSysConfigTenant + */ + type?: string | null; + /** + * 错误信息 + * @type {string} + * @memberof AdminNETResultListSysConfigTenant + */ + message?: string | null; + /** + * 数据 + * @type {Array} + * @memberof AdminNETResultListSysConfigTenant + */ + result?: Array | null; + /** + * 附加数据 + * @type {any} + * @memberof AdminNETResultListSysConfigTenant + */ + extras?: any | null; + /** + * 时间 + * @type {Date} + * @memberof AdminNETResultListSysConfigTenant + */ + time?: Date; +} diff --git a/Web/src/api-services/models/admin-netresult-sql-sugar-paged-list-sys-config-tenant.ts b/Web/src/api-services/models/admin-netresult-sql-sugar-paged-list-sys-config-tenant.ts new file mode 100644 index 00000000..357c0030 --- /dev/null +++ b/Web/src/api-services/models/admin-netresult-sql-sugar-paged-list-sys-config-tenant.ts @@ -0,0 +1,57 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * 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 { SqlSugarPagedListSysConfigTenant } from './sql-sugar-paged-list-sys-config-tenant'; +/** + * 全局返回结果 + * @export + * @interface AdminNETResultSqlSugarPagedListSysConfigTenant + */ +export interface AdminNETResultSqlSugarPagedListSysConfigTenant { + /** + * 状态码 + * @type {number} + * @memberof AdminNETResultSqlSugarPagedListSysConfigTenant + */ + code?: number; + /** + * 类型success、warning、error + * @type {string} + * @memberof AdminNETResultSqlSugarPagedListSysConfigTenant + */ + type?: string | null; + /** + * 错误信息 + * @type {string} + * @memberof AdminNETResultSqlSugarPagedListSysConfigTenant + */ + message?: string | null; + /** + * + * @type {SqlSugarPagedListSysConfigTenant} + * @memberof AdminNETResultSqlSugarPagedListSysConfigTenant + */ + result?: SqlSugarPagedListSysConfigTenant; + /** + * 附加数据 + * @type {any} + * @memberof AdminNETResultSqlSugarPagedListSysConfigTenant + */ + extras?: any | null; + /** + * 时间 + * @type {Date} + * @memberof AdminNETResultSqlSugarPagedListSysConfigTenant + */ + time?: Date; +} diff --git a/Web/src/api-services/models/admin-netresult-sys-config-tenant.ts b/Web/src/api-services/models/admin-netresult-sys-config-tenant.ts new file mode 100644 index 00000000..5af7a593 --- /dev/null +++ b/Web/src/api-services/models/admin-netresult-sys-config-tenant.ts @@ -0,0 +1,57 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * 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 { SysConfigTenant } from './sys-config-tenant'; +/** + * 全局返回结果 + * @export + * @interface AdminNETResultSysConfigTenant + */ +export interface AdminNETResultSysConfigTenant { + /** + * 状态码 + * @type {number} + * @memberof AdminNETResultSysConfigTenant + */ + code?: number; + /** + * 类型success、warning、error + * @type {string} + * @memberof AdminNETResultSysConfigTenant + */ + type?: string | null; + /** + * 错误信息 + * @type {string} + * @memberof AdminNETResultSysConfigTenant + */ + message?: string | null; + /** + * + * @type {SysConfigTenant} + * @memberof AdminNETResultSysConfigTenant + */ + result?: SysConfigTenant; + /** + * 附加数据 + * @type {any} + * @memberof AdminNETResultSysConfigTenant + */ + extras?: any | null; + /** + * 时间 + * @type {Date} + * @memberof AdminNETResultSysConfigTenant + */ + time?: Date; +} diff --git a/Web/src/api-services/models/batch-config-tenant-input.ts b/Web/src/api-services/models/batch-config-tenant-input.ts new file mode 100644 index 00000000..4d3b4fda --- /dev/null +++ b/Web/src/api-services/models/batch-config-tenant-input.ts @@ -0,0 +1,32 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * 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 BatchConfigTenantInput + */ +export interface BatchConfigTenantInput { + /** + * 编码 + * @type {string} + * @memberof BatchConfigTenantInput + */ + code?: string | null; + /** + * 属性值 + * @type {string} + * @memberof BatchConfigTenantInput + */ + value?: string | null; +} diff --git a/Web/src/api-services/models/delete-config-tenant-input.ts b/Web/src/api-services/models/delete-config-tenant-input.ts new file mode 100644 index 00000000..d917a954 --- /dev/null +++ b/Web/src/api-services/models/delete-config-tenant-input.ts @@ -0,0 +1,26 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * 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 DeleteConfigTenantInput + */ +export interface DeleteConfigTenantInput { + /** + * 主键Id + * @type {number} + * @memberof DeleteConfigTenantInput + */ + id: number; +} diff --git a/Web/src/api-services/models/page-config-tenant-input.ts b/Web/src/api-services/models/page-config-tenant-input.ts new file mode 100644 index 00000000..0a4aca12 --- /dev/null +++ b/Web/src/api-services/models/page-config-tenant-input.ts @@ -0,0 +1,88 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * 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 { Search } from './search'; +/** + * + * @export + * @interface PageConfigTenantInput + */ +export interface PageConfigTenantInput { + /** + * + * @type {Search} + * @memberof PageConfigTenantInput + */ + search?: Search; + /** + * 模糊查询关键字 + * @type {string} + * @memberof PageConfigTenantInput + */ + keyword?: string | null; + /** + * + * @type {Filter} + * @memberof PageConfigTenantInput + */ + filter?: Filter; + /** + * 当前页码 + * @type {number} + * @memberof PageConfigTenantInput + */ + page?: number; + /** + * 页码容量 + * @type {number} + * @memberof PageConfigTenantInput + */ + pageSize?: number; + /** + * 排序字段 + * @type {string} + * @memberof PageConfigTenantInput + */ + field?: string | null; + /** + * 排序方向 + * @type {string} + * @memberof PageConfigTenantInput + */ + order?: string | null; + /** + * 降序排序 + * @type {string} + * @memberof PageConfigTenantInput + */ + descStr?: string | null; + /** + * 名称 + * @type {string} + * @memberof PageConfigTenantInput + */ + name?: string | null; + /** + * 编码 + * @type {string} + * @memberof PageConfigTenantInput + */ + code?: string | null; + /** + * 分组编码 + * @type {string} + * @memberof PageConfigTenantInput + */ + groupCode?: string | null; +} diff --git a/Web/src/api-services/models/page-dict-data-input.ts b/Web/src/api-services/models/page-dict-data-input.ts index 12bed662..99c99287 100644 --- a/Web/src/api-services/models/page-dict-data-input.ts +++ b/Web/src/api-services/models/page-dict-data-input.ts @@ -11,96 +11,76 @@ * https://github.com/swagger-api/swagger-codegen.git * Do not edit the class manually. */ - import { Filter } from './filter'; import { Search } from './search'; - /** +/** * - * * @export * @interface PageDictDataInput */ export interface PageDictDataInput { - /** + * * @type {Search} * @memberof PageDictDataInput */ search?: Search; - /** * 模糊查询关键字 - * * @type {string} * @memberof PageDictDataInput */ keyword?: string | null; - /** + * * @type {Filter} * @memberof PageDictDataInput */ filter?: Filter; - /** * 当前页码 - * * @type {number} * @memberof PageDictDataInput */ page?: number; - /** * 页码容量 - * * @type {number} * @memberof PageDictDataInput */ pageSize?: number; - /** * 排序字段 - * * @type {string} * @memberof PageDictDataInput */ field?: string | null; - /** * 排序方向 - * * @type {string} * @memberof PageDictDataInput */ order?: string | null; - /** * 降序排序 - * * @type {string} * @memberof PageDictDataInput */ descStr?: string | null; - /** * 字典类型Id - * * @type {number} * @memberof PageDictDataInput */ dictTypeId?: number; - /** - * 值 - * + * 文本 * @type {string} * @memberof PageDictDataInput */ - value?: string | null; - + label?: string | null; /** * 编码 - * * @type {string} * @memberof PageDictDataInput */ diff --git a/Web/src/api-services/models/sql-sugar-paged-list-sys-config-tenant.ts b/Web/src/api-services/models/sql-sugar-paged-list-sys-config-tenant.ts new file mode 100644 index 00000000..1fc54211 --- /dev/null +++ b/Web/src/api-services/models/sql-sugar-paged-list-sys-config-tenant.ts @@ -0,0 +1,63 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * 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 { SysConfigTenant } from './sys-config-tenant'; +/** + * 分页泛型集合 + * @export + * @interface SqlSugarPagedListSysConfigTenant + */ +export interface SqlSugarPagedListSysConfigTenant { + /** + * 页码 + * @type {number} + * @memberof SqlSugarPagedListSysConfigTenant + */ + page?: number; + /** + * 页容量 + * @type {number} + * @memberof SqlSugarPagedListSysConfigTenant + */ + pageSize?: number; + /** + * 总条数 + * @type {number} + * @memberof SqlSugarPagedListSysConfigTenant + */ + total?: number; + /** + * 总页数 + * @type {number} + * @memberof SqlSugarPagedListSysConfigTenant + */ + totalPages?: number; + /** + * 当前页集合 + * @type {Array} + * @memberof SqlSugarPagedListSysConfigTenant + */ + items?: Array | null; + /** + * 是否有上一页 + * @type {boolean} + * @memberof SqlSugarPagedListSysConfigTenant + */ + hasPrevPage?: boolean; + /** + * 是否有下一页 + * @type {boolean} + * @memberof SqlSugarPagedListSysConfigTenant + */ + hasNextPage?: boolean; +} diff --git a/Web/src/api-services/models/sys-config-tenant.ts b/Web/src/api-services/models/sys-config-tenant.ts new file mode 100644 index 00000000..5c32ea13 --- /dev/null +++ b/Web/src/api-services/models/sys-config-tenant.ts @@ -0,0 +1,117 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * 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 { YesNoEnum } from './yes-no-enum'; +/** + * 系统租户配置参数表 + * @export + * @interface SysConfigTenant + */ +export interface SysConfigTenant { + /** + * 雪花Id + * @type {number} + * @memberof SysConfigTenant + */ + id?: number; + /** + * 创建时间 + * @type {Date} + * @memberof SysConfigTenant + */ + createTime?: Date; + /** + * 更新时间 + * @type {Date} + * @memberof SysConfigTenant + */ + updateTime?: Date | null; + /** + * 创建者Id + * @type {number} + * @memberof SysConfigTenant + */ + createUserId?: number | null; + /** + * 创建者姓名 + * @type {string} + * @memberof SysConfigTenant + */ + createUserName?: string | null; + /** + * 修改者Id + * @type {number} + * @memberof SysConfigTenant + */ + updateUserId?: number | null; + /** + * 修改者姓名 + * @type {string} + * @memberof SysConfigTenant + */ + updateUserName?: string | null; + /** + * 软删除 + * @type {boolean} + * @memberof SysConfigTenant + */ + isDelete?: boolean; + /** + * 租户Id + * @type {number} + * @memberof SysConfigTenant + */ + tenantId?: number | null; + /** + * 名称 + * @type {string} + * @memberof SysConfigTenant + */ + name: string; + /** + * 编码 + * @type {string} + * @memberof SysConfigTenant + */ + code?: string | null; + /** + * 参数值 + * @type {string} + * @memberof SysConfigTenant + */ + value?: string | null; + /** + * + * @type {YesNoEnum} + * @memberof SysConfigTenant + */ + sysFlag?: YesNoEnum; + /** + * 分组编码 + * @type {string} + * @memberof SysConfigTenant + */ + groupCode?: string | null; + /** + * 排序 + * @type {number} + * @memberof SysConfigTenant + */ + orderNo?: number; + /** + * 备注 + * @type {string} + * @memberof SysConfigTenant + */ + remark?: string | null; +} diff --git a/Web/src/api-services/models/sys-dict-data.ts b/Web/src/api-services/models/sys-dict-data.ts index 946f4ee8..6f1377ef 100644 --- a/Web/src/api-services/models/sys-dict-data.ts +++ b/Web/src/api-services/models/sys-dict-data.ts @@ -11,169 +11,123 @@ * https://github.com/swagger-api/swagger-codegen.git * Do not edit the class manually. */ - import { StatusEnum } from './status-enum'; - /** +/** * 系统字典值表 - * * @export * @interface SysDictData */ export interface SysDictData { - /** * 雪花Id - * * @type {number} * @memberof SysDictData */ id?: number; - /** * 创建时间 - * * @type {Date} * @memberof SysDictData */ createTime?: Date; - /** * 更新时间 - * * @type {Date} * @memberof SysDictData */ updateTime?: Date | null; - /** * 创建者Id - * * @type {number} * @memberof SysDictData */ createUserId?: number | null; - /** * 创建者姓名 - * * @type {string} * @memberof SysDictData */ createUserName?: string | null; - /** * 修改者Id - * * @type {number} * @memberof SysDictData */ updateUserId?: number | null; - /** * 修改者姓名 - * * @type {string} * @memberof SysDictData */ updateUserName?: string | null; - /** * 软删除 - * * @type {boolean} * @memberof SysDictData */ isDelete?: boolean; - - /** - * 租户Id - * - * @type {number} - * @memberof SysDictData - */ - tenantId?: number | null; - /** * 字典类型Id - * * @type {number} * @memberof SysDictData */ dictTypeId?: number; - + /** + * 显示文本 + * @type {string} + * @memberof SysDictData + */ + label: string; /** * 值 - * * @type {string} * @memberof SysDictData */ value: string; - /** * 编码 - * * @type {string} * @memberof SysDictData */ - code: string; - - /** - * 名称 - * - * @type {string} - * @memberof SysDictData - */ - name?: string | null; - + code?: string | null; /** * 显示样式-标签颜色 - * * @type {string} * @memberof SysDictData */ tagType?: string | null; - /** * 显示样式-Style(控制显示样式) - * * @type {string} * @memberof SysDictData */ styleSetting?: string | null; - /** * 显示样式-Class(控制显示样式) - * * @type {string} * @memberof SysDictData */ classSetting?: string | null; - /** * 排序 - * * @type {number} * @memberof SysDictData */ orderNo?: number; - /** * 备注 - * * @type {string} * @memberof SysDictData */ remark?: string | null; - /** * 拓展数据(保存业务功能的配置项) - * * @type {string} * @memberof SysDictData */ extData?: string | null; - /** + * * @type {StatusEnum} * @memberof SysDictData */ diff --git a/Web/src/api-services/models/sys-dict-type.ts b/Web/src/api-services/models/sys-dict-type.ts index 925b9625..dba6b12e 100644 --- a/Web/src/api-services/models/sys-dict-type.ts +++ b/Web/src/api-services/models/sys-dict-type.ts @@ -11,129 +11,107 @@ * https://github.com/swagger-api/swagger-codegen.git * Do not edit the class manually. */ - import { StatusEnum } from './status-enum'; import { SysDictData } from './sys-dict-data'; import { YesNoEnum } from './yes-no-enum'; - /** +/** * 系统字典类型表 - * * @export * @interface SysDictType */ export interface SysDictType { - /** * 雪花Id - * * @type {number} * @memberof SysDictType */ id?: number; - /** * 创建时间 - * * @type {Date} * @memberof SysDictType */ createTime?: Date; - /** * 更新时间 - * * @type {Date} * @memberof SysDictType */ updateTime?: Date | null; - /** * 创建者Id - * * @type {number} * @memberof SysDictType */ createUserId?: number | null; - /** * 创建者姓名 - * * @type {string} * @memberof SysDictType */ createUserName?: string | null; - /** * 修改者Id - * * @type {number} * @memberof SysDictType */ updateUserId?: number | null; - /** * 修改者姓名 - * * @type {string} * @memberof SysDictType */ updateUserName?: string | null; - /** * 软删除 - * * @type {boolean} * @memberof SysDictType */ isDelete?: boolean; - /** * 名称 - * * @type {string} * @memberof SysDictType */ name: string; - /** * 编码 - * * @type {string} * @memberof SysDictType */ code: string; - /** * 排序 - * * @type {number} * @memberof SysDictType */ orderNo?: number; - /** * 备注 - * * @type {string} * @memberof SysDictType */ remark?: string | null; - /** + * * @type {StatusEnum} * @memberof SysDictType */ status?: StatusEnum; - /** + * * @type {YesNoEnum} * @memberof SysDictType */ sysFlag?: YesNoEnum; - + /** + * + * @type {YesNoEnum} + * @memberof SysDictType + */ + isTenant?: YesNoEnum; /** * 字典值集合 - * * @type {Array} * @memberof SysDictType */ diff --git a/Web/src/api-services/models/update-config-tenant-input.ts b/Web/src/api-services/models/update-config-tenant-input.ts new file mode 100644 index 00000000..fdad1a6f --- /dev/null +++ b/Web/src/api-services/models/update-config-tenant-input.ts @@ -0,0 +1,117 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * 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 { YesNoEnum } from './yes-no-enum'; +/** + * + * @export + * @interface UpdateConfigTenantInput + */ +export interface UpdateConfigTenantInput { + /** + * 雪花Id + * @type {number} + * @memberof UpdateConfigTenantInput + */ + id?: number; + /** + * 创建时间 + * @type {Date} + * @memberof UpdateConfigTenantInput + */ + createTime?: Date; + /** + * 更新时间 + * @type {Date} + * @memberof UpdateConfigTenantInput + */ + updateTime?: Date | null; + /** + * 创建者Id + * @type {number} + * @memberof UpdateConfigTenantInput + */ + createUserId?: number | null; + /** + * 创建者姓名 + * @type {string} + * @memberof UpdateConfigTenantInput + */ + createUserName?: string | null; + /** + * 修改者Id + * @type {number} + * @memberof UpdateConfigTenantInput + */ + updateUserId?: number | null; + /** + * 修改者姓名 + * @type {string} + * @memberof UpdateConfigTenantInput + */ + updateUserName?: string | null; + /** + * 软删除 + * @type {boolean} + * @memberof UpdateConfigTenantInput + */ + isDelete?: boolean; + /** + * 租户Id + * @type {number} + * @memberof UpdateConfigTenantInput + */ + tenantId?: number | null; + /** + * 名称 + * @type {string} + * @memberof UpdateConfigTenantInput + */ + name: string; + /** + * 编码 + * @type {string} + * @memberof UpdateConfigTenantInput + */ + code?: string | null; + /** + * 参数值 + * @type {string} + * @memberof UpdateConfigTenantInput + */ + value?: string | null; + /** + * + * @type {YesNoEnum} + * @memberof UpdateConfigTenantInput + */ + sysFlag?: YesNoEnum; + /** + * 分组编码 + * @type {string} + * @memberof UpdateConfigTenantInput + */ + groupCode?: string | null; + /** + * 排序 + * @type {number} + * @memberof UpdateConfigTenantInput + */ + orderNo?: number; + /** + * 备注 + * @type {string} + * @memberof UpdateConfigTenantInput + */ + remark?: string | null; +} diff --git a/Web/src/api-services/models/update-dict-data-input.ts b/Web/src/api-services/models/update-dict-data-input.ts index 6e9ac8dd..cfeed9e9 100644 --- a/Web/src/api-services/models/update-dict-data-input.ts +++ b/Web/src/api-services/models/update-dict-data-input.ts @@ -11,169 +11,123 @@ * https://github.com/swagger-api/swagger-codegen.git * Do not edit the class manually. */ - import { StatusEnum } from './status-enum'; - /** +/** * - * * @export * @interface UpdateDictDataInput */ export interface UpdateDictDataInput { - /** * 雪花Id - * * @type {number} * @memberof UpdateDictDataInput */ id?: number; - /** * 创建时间 - * * @type {Date} * @memberof UpdateDictDataInput */ createTime?: Date; - /** * 更新时间 - * * @type {Date} * @memberof UpdateDictDataInput */ updateTime?: Date | null; - /** * 创建者Id - * * @type {number} * @memberof UpdateDictDataInput */ createUserId?: number | null; - /** * 创建者姓名 - * * @type {string} * @memberof UpdateDictDataInput */ createUserName?: string | null; - /** * 修改者Id - * * @type {number} * @memberof UpdateDictDataInput */ updateUserId?: number | null; - /** * 修改者姓名 - * * @type {string} * @memberof UpdateDictDataInput */ updateUserName?: string | null; - /** * 软删除 - * * @type {boolean} * @memberof UpdateDictDataInput */ isDelete?: boolean; - - /** - * 租户Id - * - * @type {number} - * @memberof UpdateDictDataInput - */ - tenantId?: number | null; - /** * 字典类型Id - * * @type {number} * @memberof UpdateDictDataInput */ dictTypeId?: number; - + /** + * 显示文本 + * @type {string} + * @memberof UpdateDictDataInput + */ + label: string; /** * 值 - * * @type {string} * @memberof UpdateDictDataInput */ value: string; - /** * 编码 - * * @type {string} * @memberof UpdateDictDataInput */ - code: string; - - /** - * 名称 - * - * @type {string} - * @memberof UpdateDictDataInput - */ - name?: string | null; - + code?: string | null; /** * 显示样式-标签颜色 - * * @type {string} * @memberof UpdateDictDataInput */ tagType?: string | null; - /** * 显示样式-Style(控制显示样式) - * * @type {string} * @memberof UpdateDictDataInput */ styleSetting?: string | null; - /** * 显示样式-Class(控制显示样式) - * * @type {string} * @memberof UpdateDictDataInput */ classSetting?: string | null; - /** * 排序 - * * @type {number} * @memberof UpdateDictDataInput */ orderNo?: number; - /** * 备注 - * * @type {string} * @memberof UpdateDictDataInput */ remark?: string | null; - /** * 拓展数据(保存业务功能的配置项) - * * @type {string} * @memberof UpdateDictDataInput */ extData?: string | null; - /** + * * @type {StatusEnum} * @memberof UpdateDictDataInput */ diff --git a/Web/src/api-services/models/update-dict-type-input.ts b/Web/src/api-services/models/update-dict-type-input.ts index 2f264227..d8f81a6d 100644 --- a/Web/src/api-services/models/update-dict-type-input.ts +++ b/Web/src/api-services/models/update-dict-type-input.ts @@ -11,129 +11,107 @@ * https://github.com/swagger-api/swagger-codegen.git * Do not edit the class manually. */ - import { StatusEnum } from './status-enum'; import { SysDictData } from './sys-dict-data'; import { YesNoEnum } from './yes-no-enum'; - /** +/** * - * * @export * @interface UpdateDictTypeInput */ export interface UpdateDictTypeInput { - /** * 雪花Id - * * @type {number} * @memberof UpdateDictTypeInput */ id?: number; - /** * 创建时间 - * * @type {Date} * @memberof UpdateDictTypeInput */ createTime?: Date; - /** * 更新时间 - * * @type {Date} * @memberof UpdateDictTypeInput */ updateTime?: Date | null; - /** * 创建者Id - * * @type {number} * @memberof UpdateDictTypeInput */ createUserId?: number | null; - /** * 创建者姓名 - * * @type {string} * @memberof UpdateDictTypeInput */ createUserName?: string | null; - /** * 修改者Id - * * @type {number} * @memberof UpdateDictTypeInput */ updateUserId?: number | null; - /** * 修改者姓名 - * * @type {string} * @memberof UpdateDictTypeInput */ updateUserName?: string | null; - /** * 软删除 - * * @type {boolean} * @memberof UpdateDictTypeInput */ isDelete?: boolean; - /** * 名称 - * * @type {string} * @memberof UpdateDictTypeInput */ name: string; - /** * 编码 - * * @type {string} * @memberof UpdateDictTypeInput */ code: string; - /** * 排序 - * * @type {number} * @memberof UpdateDictTypeInput */ orderNo?: number; - /** * 备注 - * * @type {string} * @memberof UpdateDictTypeInput */ remark?: string | null; - /** + * * @type {StatusEnum} * @memberof UpdateDictTypeInput */ status?: StatusEnum; - + /** + * + * @type {YesNoEnum} + * @memberof UpdateDictTypeInput + */ + isTenant?: YesNoEnum; /** * 字典值集合 - * * @type {Array} * @memberof UpdateDictTypeInput */ children?: Array | null; - /** + * * @type {YesNoEnum} * @memberof UpdateDictTypeInput */ diff --git a/Web/src/components/sysDict/sysDict.vue b/Web/src/components/sysDict/sysDict.vue new file mode 100644 index 00000000..d51b5ee7 --- /dev/null +++ b/Web/src/components/sysDict/sysDict.vue @@ -0,0 +1,120 @@ + + + + + + diff --git a/Web/src/main.ts b/Web/src/main.ts index e01f0a37..88050b0d 100644 --- a/Web/src/main.ts +++ b/Web/src/main.ts @@ -24,6 +24,8 @@ import { setupVXETable } from '/@/hooks/setupVXETableHook'; // IM聊天框 import JwChat from 'jwchat'; import 'jwchat/lib/style.css'; +// 自定义字典组件 +import sysDict from "/@/components/sysDict/sysDict.vue"; // 关闭自动打印 import { disAutoConnect } from 'vue-plugin-hiprint'; @@ -37,4 +39,7 @@ const app = createApp(App); directive(app); other.elSvg(app); +// 注册全局字典组件 +app.component('GSysDict', sysDict); + app.use(pinia).use(router).use(ElementPlus).use(setupVXETable).use(i18n).use(VueGridLayout).use(VForm3).use(VueSignaturePad).use(vue3TreeOrg).use(JwChat).mount('#app'); diff --git a/Web/src/views/system/codeGen/component/editCodeGenDialog.vue b/Web/src/views/system/codeGen/component/editCodeGenDialog.vue index 984b9fb2..81e1dab9 100644 --- a/Web/src/views/system/codeGen/component/editCodeGenDialog.vue +++ b/Web/src/views/system/codeGen/component/editCodeGenDialog.vue @@ -146,9 +146,7 @@ - - - + @@ -169,9 +167,7 @@ - - - + @@ -374,7 +370,6 @@ const props = defineProps({ title: String, applicationNamespaces: Array, }); -const getDictDataByCode = useUserInfo().getDictDataByCode; const emits = defineEmits(['handleQuery']); const ruleFormRef = ref(); const state = reactive({ diff --git a/Web/src/views/system/database/component/genEntity.vue b/Web/src/views/system/database/component/genEntity.vue index 9cd3e99b..07b12204 100644 --- a/Web/src/views/system/database/component/genEntity.vue +++ b/Web/src/views/system/database/component/genEntity.vue @@ -21,9 +21,7 @@ - - - + @@ -55,7 +53,6 @@ import { useUserInfo } from '/@/stores/userInfo'; import { getAPI } from '/@/utils/axios-utils'; import { SysDatabaseApi } from '/@/api-services/api'; -const getDictDataByCode = useUserInfo().getDictDataByCode; const emits = defineEmits(['handleQueryColumn']); const ruleFormRef = ref(); const state = reactive({ diff --git a/Web/src/views/system/dict/component/editDictData.vue b/Web/src/views/system/dict/component/editDictData.vue index c0611131..d52901db 100644 --- a/Web/src/views/system/dict/component/editDictData.vue +++ b/Web/src/views/system/dict/component/editDictData.vue @@ -9,21 +9,21 @@ + + + + + - + - - - - - diff --git a/Web/src/views/system/dict/component/editDictType.vue b/Web/src/views/system/dict/component/editDictType.vue index 9802da2c..59b9ee55 100644 --- a/Web/src/views/system/dict/component/editDictType.vue +++ b/Web/src/views/system/dict/component/editDictType.vue @@ -19,17 +19,14 @@ - - - - 启用 - 禁用 - + + + - - - + + + @@ -37,6 +34,11 @@ + + + + +