From e4d71a516d46241239c3d0c6a079bba6275e04f8 Mon Sep 17 00:00:00 2001 From: tk Date: Thu, 10 Jul 2025 15:03:34 +0800 Subject: [PATCH] 1 --- .../DbMaps/Sys/Sys_CodeTemplate.cs | 63 ++++++++-------- .../Sys/CodeTemplate/CreateCodeTemplateReq.cs | 20 +++--- .../Sys/CodeTemplate/EditCodeTemplateReq.cs | 2 + .../Sys/CodeTemplate/QueryCodeTemplateReq.cs | 5 +- .../Sys/CodeTemplate/QueryCodeTemplateRsp.cs | 43 +++++------ .../CodeTemplate/SetCodeTemplateEnabledReq.cs | 21 ++++++ .../Modules/Sys/ICodeTemplateModule.cs | 8 ++- .../Services/Sys/CodeTemplateService.cs | 7 ++ .../Sys/CodeTemplateCache.cs | 6 ++ .../Controllers/Sys/CodeTemplateController.cs | 8 +++ .../admin/src/api/sys/codetemplate.js | 11 +++ .../admin/src/views/sys/template/index.vue | 71 ++++++++++--------- 12 files changed, 172 insertions(+), 93 deletions(-) create mode 100644 src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/SetCodeTemplateEnabledReq.cs diff --git a/src/backend/NetAdmin/NetAdmin.Domain/DbMaps/Sys/Sys_CodeTemplate.cs b/src/backend/NetAdmin/NetAdmin.Domain/DbMaps/Sys/Sys_CodeTemplate.cs index 0bef2ece..2d7bcfb4 100644 --- a/src/backend/NetAdmin/NetAdmin.Domain/DbMaps/Sys/Sys_CodeTemplate.cs +++ b/src/backend/NetAdmin/NetAdmin.Domain/DbMaps/Sys/Sys_CodeTemplate.cs @@ -1,10 +1,15 @@ +using NetAdmin.Domain.Attributes; +using NetAdmin.Domain.DbMaps.Dependency; +using NetAdmin.Domain.DbMaps.Dependency.Fields; +using NetAdmin.Domain.DbMaps.Sys; + namespace NetAdmin.Domain.DbMaps.Sys; /// /// 代码模板表 /// [Table(Name = Chars.FLG_DB_TABLE_NAME_PREFIX + nameof(Sys_CodeTemplate))] -public record Sys_CodeTemplate : VersionEntity, IFieldSort, IFieldSummary, IFieldEnabled, IFieldOwner +public record Sys_CodeTemplate : VersionEntity, IFieldSummary, IFieldOwner, IFieldSort, IFieldEnabled { /// /// 是否启用 @@ -15,34 +20,6 @@ public record Sys_CodeTemplate : VersionEntity, IFieldSort, IFieldSummary, IFiel [JsonIgnore] public virtual bool Enabled { get; init; } - /// - /// 性别 - /// - /// Male - [Column] - [CsvIgnore] - [JsonIgnore] - public virtual Genders? Gender { get; init; } - - /// - /// 唯一编码 - /// - /// 123456 - [Column(IsIdentity = false, IsPrimary = true, Position = 1)] - [CsvIgnore] - [JsonIgnore] - [Snowflake] - public override long Id { get; init; } - - /// - /// 名称 - /// - /// 老王 - [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31)] - [CsvIgnore] - [JsonIgnore] - public virtual string Name { get; init; } - /// /// 归属用户 /// @@ -86,4 +63,32 @@ public record Sys_CodeTemplate : VersionEntity, IFieldSort, IFieldSummary, IFiel [CsvIgnore] [JsonIgnore] public virtual string Summary { get; init; } + + /// + /// 代码模板编号 + /// + /// 123456 + [Column(IsIdentity = false, IsPrimary = true, Position = 1)] + [CsvIgnore] + [JsonIgnore] + [Snowflake] + public override long Id { get; init; } + + /// + /// 名称 + /// + /// 老王 + [Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_31)] + [CsvIgnore] + [JsonIgnore] + public virtual string Name { get; init; } + + /// + /// 性别 + /// + /// Male + [Column] + [CsvIgnore] + [JsonIgnore] + public virtual Genders? Gender { get; init; } } \ No newline at end of file diff --git a/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/CreateCodeTemplateReq.cs b/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/CreateCodeTemplateReq.cs index 29810c4b..01e17dad 100644 --- a/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/CreateCodeTemplateReq.cs +++ b/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/CreateCodeTemplateReq.cs @@ -1,3 +1,6 @@ +using NetAdmin.Domain.DbMaps.Dependency.Fields; +using NetAdmin.Domain.DbMaps.Sys; + namespace NetAdmin.Domain.Dto.Sys.CodeTemplate; /// @@ -8,9 +11,13 @@ public record CreateCodeTemplateReq : Sys_CodeTemplate /// public override bool Enabled { get; init; } = true; - /// + /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - public override Genders? Gender { get; init; } + public override long Sort { get; init; } + + /// + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + public override string Summary { get; init; } /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] @@ -20,11 +27,8 @@ public record CreateCodeTemplateReq : Sys_CodeTemplate [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public override string Name { get; init; } - /// + /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - public override long Sort { get; init; } - - /// - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - public override string Summary { get; init; } + [EnumDataType(typeof(Genders))] + public override Genders? Gender { get; init; } } \ No newline at end of file diff --git a/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/EditCodeTemplateReq.cs b/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/EditCodeTemplateReq.cs index a9ebc5d5..cb84fa03 100644 --- a/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/EditCodeTemplateReq.cs +++ b/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/EditCodeTemplateReq.cs @@ -1,3 +1,5 @@ +using NetAdmin.Domain.DbMaps.Dependency.Fields; + namespace NetAdmin.Domain.Dto.Sys.CodeTemplate; /// diff --git a/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/QueryCodeTemplateReq.cs b/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/QueryCodeTemplateReq.cs index 9eaab40e..1d612c09 100644 --- a/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/QueryCodeTemplateReq.cs +++ b/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/QueryCodeTemplateReq.cs @@ -1,3 +1,6 @@ +using NetAdmin.Domain.DbMaps.Dependency; +using NetAdmin.Domain.DbMaps.Sys; + namespace NetAdmin.Domain.Dto.Sys.CodeTemplate; /// @@ -5,7 +8,7 @@ namespace NetAdmin.Domain.Dto.Sys.CodeTemplate; /// public sealed record QueryCodeTemplateReq : Sys_CodeTemplate { - /// + /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override long Id { get; init; } } \ No newline at end of file diff --git a/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/QueryCodeTemplateRsp.cs b/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/QueryCodeTemplateRsp.cs index adb11b27..6e434d4f 100644 --- a/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/QueryCodeTemplateRsp.cs +++ b/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/QueryCodeTemplateRsp.cs @@ -1,3 +1,6 @@ +using NetAdmin.Domain.DbMaps.Dependency; +using NetAdmin.Domain.DbMaps.Dependency.Fields; +using NetAdmin.Domain.DbMaps.Sys; using NetAdmin.Domain.Dto.Sys.User; namespace NetAdmin.Domain.Dto.Sys.CodeTemplate; @@ -7,10 +10,18 @@ namespace NetAdmin.Domain.Dto.Sys.CodeTemplate; /// public record QueryCodeTemplateRsp : Sys_CodeTemplate { + /// + [JsonIgnore(Condition = JsonIgnoreCondition.Never)] + public override bool Enabled { get; init; } + /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override DateTime CreatedTime { get; init; } + /// + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + public override DateTime? ModifiedTime { get; init; } + /// [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public override long? CreatedUserId { get; init; } @@ -19,22 +30,6 @@ public record QueryCodeTemplateRsp : Sys_CodeTemplate [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public override string CreatedUserName { get; init; } - /// - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - public override bool Enabled { get; init; } - - /// - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - public override Genders? Gender { get; init; } - - /// - [JsonIgnore(Condition = JsonIgnoreCondition.Never)] - public override long Id { get; init; } - - /// - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - public override DateTime? ModifiedTime { get; init; } - /// [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public override long? ModifiedUserId { get; init; } @@ -43,10 +38,6 @@ public record QueryCodeTemplateRsp : Sys_CodeTemplate [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public override string ModifiedUserName { get; init; } - /// - [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] - public override string Name { get; init; } - /// public new virtual QueryUserRsp Owner { get; init; } @@ -69,4 +60,16 @@ public record QueryCodeTemplateRsp : Sys_CodeTemplate /// [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public override long Version { get; init; } + + /// + [JsonIgnore(Condition = JsonIgnoreCondition.Never)] + public override long Id { get; init; } + + /// + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + public override string Name { get; init; } + + /// + [JsonIgnore(Condition = JsonIgnoreCondition.Never)] + public override Genders? Gender { get; init; } } \ No newline at end of file diff --git a/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/SetCodeTemplateEnabledReq.cs b/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/SetCodeTemplateEnabledReq.cs new file mode 100644 index 00000000..2a3e4079 --- /dev/null +++ b/src/backend/NetAdmin/NetAdmin.Domain/Dto/Sys/CodeTemplate/SetCodeTemplateEnabledReq.cs @@ -0,0 +1,21 @@ +using NetAdmin.Domain.DbMaps.Dependency.Fields; + +namespace NetAdmin.Domain.Dto.Sys.CodeTemplate; + +/// +/// 请求:设置代码模板启用状态 +/// +public sealed record SetCodeTemplateEnabledReq : Sys_CodeTemplate +{ + /// + [JsonIgnore(Condition = JsonIgnoreCondition.Never)] + public override bool Enabled { get; init; } + + /// + [JsonIgnore(Condition = JsonIgnoreCondition.Never)] + public override long Id { get; init; } + + /// + [JsonIgnore(Condition = JsonIgnoreCondition.Never)] + public override long Version { get; init; } +} \ No newline at end of file diff --git a/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Modules/Sys/ICodeTemplateModule.cs b/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Modules/Sys/ICodeTemplateModule.cs index d2f2efe9..9a44396e 100644 --- a/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Modules/Sys/ICodeTemplateModule.cs +++ b/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Modules/Sys/ICodeTemplateModule.cs @@ -9,4 +9,10 @@ public interface ICodeTemplateModule : ICrudModule; \ No newline at end of file +> +{ + /// + /// 设置代码模板启用状态 + /// + Task SetEnabledAsync(SetCodeTemplateEnabledReq req); +} \ No newline at end of file diff --git a/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Services/Sys/CodeTemplateService.cs b/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Services/Sys/CodeTemplateService.cs index 72bb1313..f6bc15e7 100644 --- a/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Services/Sys/CodeTemplateService.cs +++ b/src/backend/NetAdmin/NetAdmin.SysComponent.Application/Services/Sys/CodeTemplateService.cs @@ -113,6 +113,13 @@ public sealed class CodeTemplateService(BasicRepository return ret.Adapt>(); } + /// + public Task SetEnabledAsync(SetCodeTemplateEnabledReq req) + { + req.ThrowIfInvalid(); + return UpdateAsync(req, [nameof(req.Enabled)]); + } + private ISelect QueryInternal(QueryReq req) { var ret = Rpo.Select.WhereDynamicFilter(req.DynamicFilter).WhereDynamic(req.Filter); diff --git a/src/backend/NetAdmin/NetAdmin.SysComponent.Cache/Sys/CodeTemplateCache.cs b/src/backend/NetAdmin/NetAdmin.SysComponent.Cache/Sys/CodeTemplateCache.cs index 05639583..2b83c1cd 100644 --- a/src/backend/NetAdmin/NetAdmin.SysComponent.Cache/Sys/CodeTemplateCache.cs +++ b/src/backend/NetAdmin/NetAdmin.SysComponent.Cache/Sys/CodeTemplateCache.cs @@ -65,4 +65,10 @@ public sealed class CodeTemplateCache(IDistributedCache cache, ICodeTemplateServ { return Service.QueryAsync(req); } + + /// + public Task SetEnabledAsync(SetCodeTemplateEnabledReq req) + { + return Service.SetEnabledAsync(req); + } } \ No newline at end of file diff --git a/src/backend/NetAdmin/NetAdmin.SysComponent.Host/Controllers/Sys/CodeTemplateController.cs b/src/backend/NetAdmin/NetAdmin.SysComponent.Host/Controllers/Sys/CodeTemplateController.cs index 4c1c6a15..d49b814f 100644 --- a/src/backend/NetAdmin/NetAdmin.SysComponent.Host/Controllers/Sys/CodeTemplateController.cs +++ b/src/backend/NetAdmin/NetAdmin.SysComponent.Host/Controllers/Sys/CodeTemplateController.cs @@ -95,4 +95,12 @@ public sealed class CodeTemplateController(ICodeTemplateCache cache) { return Cache.QueryAsync(req); } + + /// + /// 设置代码模板启用状态 + /// + public Task SetEnabledAsync(SetCodeTemplateEnabledReq req) + { + return Cache.SetEnabledAsync(req); + } } \ No newline at end of file diff --git a/src/frontend/admin/src/api/sys/codetemplate.js b/src/frontend/admin/src/api/sys/codetemplate.js index 26256474..0d91fafc 100644 --- a/src/frontend/admin/src/api/sys/codetemplate.js +++ b/src/frontend/admin/src/api/sys/codetemplate.js @@ -92,4 +92,15 @@ export default { return await http.post(this.url, data, config) }, }, + + /** + * 设置代码模板启用状态 + */ + setEnabled: { + url: `${config.API_URL}/api/sys/code.template/set.enabled`, + name: `设置代码模板启用状态`, + post: async function (data = {}, config = {}) { + return await http.post(this.url, data, config) + }, + }, } \ No newline at end of file diff --git a/src/frontend/admin/src/views/sys/template/index.vue b/src/frontend/admin/src/views/sys/template/index.vue index bee35345..c9dcedc9 100644 --- a/src/frontend/admin/src/views/sys/template/index.vue +++ b/src/frontend/admin/src/views/sys/template/index.vue @@ -7,29 +7,33 @@ extra: [`createdTime`], width: 170, show: [`list`, `view`], - searchable: `eq`, + searchable: true, }, name: { - label: $t(`名字`), - width: 150, - show: [`list`, `view`, `add`, `edit`], + label: $t(`名称`), rule: { required: true, }, - searchable: `eq`, + show: [`list`, `view`, `add`, `edit`], + searchable: true, + operator: `contains`, }, gender: { label: $t(`性别`), is: `na-col-indicator`, enum: `genders`, - width: 100, + width: 200, align: `center`, + rule: { + required: true, + }, countBy: true, show: [`list`, `view`, `add`, `edit`], }, sort: { label: $t(`排序`), align: `right`, + thousands: true, width: 100, show: [`list`, `view`, `add`, `edit`], rule: { @@ -43,7 +47,8 @@ summary: { label: $t(`备注`), show: [`list`, `view`, `add`, `edit`], - searchable: `contains`, + searchable: true, + operator: `contains`, }, enabled: { label: $t(`启用`), @@ -62,33 +67,31 @@ show: [`view`], }, }" - :operations="[`add`, `del`, `edit`]" - :search-controls="[ - { - type: `input`, - field: [`root`, `keywords`], - placeholder: $t(`消息编号 / 消息主题 / 消息内容`), - style: `width:25rem`, - }, - ]" - :select-filters="[ - { - title: $t(`是否启用`), - key: `Enabled`, - enumName: `Enabled`, - isBoolean: [ - { label: $t(`启用`), value: true }, - { label: $t(`禁用`), value: false }, - ], - }, - { - title: $t(`性别`), - key: `Gender`, - enumName: `genders`, - }, - ]" - :summary="$t(`代码模板`)" + :operations="operations" + :summary="$t(`页面模板`)" entity-name="sys_codetemplate" /> - +