From dc7236655d97ff984c5cc925b5a7744b635d7d2f Mon Sep 17 00:00:00 2001 From: WangBin Date: Thu, 13 May 2021 08:44:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E4=B9=8B?= =?UTF-8?q?=E9=80=9A=E7=94=A8=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin.NET.Core/Entity/SysCodeGenConfig.cs | 81 +++++------------- .../Extension/PageInputOrder.cs | 16 ++-- .../Service/CodeGen/CodeGenConfigService.cs | 53 +++++------- backend/Admin.NET.Web.Entry/Admin.NET.db | Bin 286720 -> 270336 bytes .../wwwroot/Template/Service.cs.vm | 2 + .../wwwroot/Template/index.vue.vm | 3 + .../views/gen/codeGenerate/indexConfig.vue | 2 +- 7 files changed, 53 insertions(+), 104 deletions(-) diff --git a/backend/Admin.NET.Core/Entity/SysCodeGenConfig.cs b/backend/Admin.NET.Core/Entity/SysCodeGenConfig.cs index c72c7818f..aaa6f2b80 100644 --- a/backend/Admin.NET.Core/Entity/SysCodeGenConfig.cs +++ b/backend/Admin.NET.Core/Entity/SysCodeGenConfig.cs @@ -4,141 +4,102 @@ using System.ComponentModel.DataAnnotations.Schema; namespace Admin.NET.Core { - /// - /// 代码生成字段配置表 - /// + /// 代码生成字段配置表 [Table("sys_code_gen_config")] [Comment("代码生成字段配置表")] public class SysCodeGenConfig : DEntityBase { - /// - /// 代码生成主表ID - /// + /// 代码生成主表ID [Comment("代码生成主表ID")] public long CodeGenId { get; set; } - /// - /// 数据库字段名 - /// + /// 数据库字段名 [Comment("数据库字段名")] [Required, MaxLength(100)] public string ColumnName { get; set; } - /// - /// 字段描述 - /// + /// 字段描述 [Comment("字段描述")] [MaxLength(100)] public string ColumnComment { get; set; } - /// - /// .NET数据类型 - /// + /// .NET数据类型 [Comment(".NET数据类型")] [MaxLength(50)] public string NetType { get; set; } - /// - /// 作用类型(字典) - /// + /// 作用类型(字典) [Comment("作用类型")] [MaxLength(50)] public string EffectType { get; set; } - /// - /// 外键实体名称 - /// + /// 外键实体名称 [Comment("外键实体名称")] [MaxLength(50)] public string FkEntityName { get; set; } - /// - /// 外键显示字段 - /// + /// 外键显示字段 [Comment("外键显示字段")] [MaxLength(50)] public string FkColumnName { get; set; } - /// - /// 外键显示字段.NET类型 - /// + /// 外键显示字段.NET类型 [Comment("外键显示字段.NET类型")] [MaxLength(50)] public string FkColumnNetType { get; set; } - /// - /// 字典code - /// + /// 字典code [Comment("字典Code")] [MaxLength(50)] public string DictTypeCode { get; set; } - /// - /// 列表是否缩进(字典) - /// + /// 列表是否缩进(字典) [Comment("列表是否缩进")] [MaxLength(5)] public string WhetherRetract { get; set; } - /// - /// 是否必填(字典) - /// + /// 是否必填(字典) [Comment("是否必填")] [MaxLength(5)] public string WhetherRequired { get; set; } - /// - /// 是否是查询条件 - /// + /// 是否是查询条件 [Comment("是否是查询条件")] [MaxLength(5)] public string QueryWhether { get; set; } - /// - /// 查询方式 - /// + /// 查询方式 [Comment("查询方式")] [MaxLength(10)] public string QueryType { get; set; } - /// - /// 列表显示 - /// + /// 列表显示 [Comment("列表显示")] [MaxLength(5)] public string WhetherTable { get; set; } - /// - /// 列表是否排序 - /// + + /// 列表是否排序 [Comment("列表是否排序")] [MaxLength(5)] public string WhetherOrderBy { get; set; } - /// - /// 增改 - /// + /// 增改 [Comment("增改")] [MaxLength(5)] public string WhetherAddUpdate { get; set; } - /// - /// 主键 - /// + /// 主键 [Comment("主键")] [MaxLength(5)] public string ColumnKey { get; set; } - /// - /// 数据库中类型(物理类型) - /// + /// 数据库中类型(物理类型) [Comment("数据库中类型")] [MaxLength(50)] public string DataType { get; set; } - /// - /// 是否通用字段 - /// + /// 是否通用字段 [Comment("是否通用字段")] [MaxLength(5)] public string WhetherCommon { get; set; } diff --git a/backend/Admin.NET.Core/Extension/PageInputOrder.cs b/backend/Admin.NET.Core/Extension/PageInputOrder.cs index e6c7be5f7..c0b8a9195 100644 --- a/backend/Admin.NET.Core/Extension/PageInputOrder.cs +++ b/backend/Admin.NET.Core/Extension/PageInputOrder.cs @@ -4,30 +4,26 @@ using MapsterMapper; namespace Admin.NET.Core { - /// - /// 列表通用排序 - /// + /// 通用输入帮助类 public class PageInputOrder { - /// - /// 排序方式(默认降序) - /// + /// 排序方式(默认降序) /// /// 默认排序字段 /// 是否降序 /// public static string OrderBuilder(T pageInput, string defualtSortField = "Id", bool descSort = true) { - string orderStr; + string orderStr = ""; // 约定默认每张表都有Id排序 if (!string.IsNullOrWhiteSpace(defualtSortField)) orderStr = descSort ? defualtSortField + " Desc" : defualtSortField + " Asc"; else throw Oops.Oh("排序字段不能为空!"); - - TypeAdapterConfig config = new(); + TypeAdapterConfig config = new TypeAdapterConfig(); + //映射规则 config.ForType().IgnoreNullValues(true); - Mapper mapper = new(config); // 务必将mapper设为单实例 + Mapper mapper = new Mapper(config);//务必将mapper设为单实例 PageInputBase nowPagerInput = mapper.Map(pageInput); ; // 排序是否可用-排序字段和排序顺序都为非空才启用排序 if (!string.IsNullOrEmpty(nowPagerInput.SortField) && !string.IsNullOrEmpty(nowPagerInput.SortOrder)) diff --git a/backend/Admin.NET.Core/Service/CodeGen/CodeGenConfigService.cs b/backend/Admin.NET.Core/Service/CodeGen/CodeGenConfigService.cs index 6082212b5..c41d8a393 100644 --- a/backend/Admin.NET.Core/Service/CodeGen/CodeGenConfigService.cs +++ b/backend/Admin.NET.Core/Service/CodeGen/CodeGenConfigService.cs @@ -12,9 +12,7 @@ using System.Threading.Tasks; namespace Admin.NET.Core.Service { - /// - /// 代码生成详细配置服务 - /// + /// 代码生成详细配置服务 [ApiDescriptionSettings(Name = "CodeGenConfig", Order = 100)] public class CodeGenConfigService : ICodeGenConfigService, IDynamicApiController, ITransient { @@ -25,11 +23,9 @@ namespace Admin.NET.Core.Service _sysCodeGenConfigRep = sysCodeGenConfigRep; } - /// - /// 代码生成详细配置列表 - /// - /// - /// + /// 代码生成详细配置列表 + /// + /// [HttpGet("/sysCodeGenerateConfig/list")] public async Task> List([FromQuery] CodeGenConfig input) { @@ -38,11 +34,9 @@ namespace Admin.NET.Core.Service .Select(u => u.Adapt()).ToListAsync(); } - /// - /// 增加 - /// - /// - /// + /// 增加 + /// + /// [NonAction] public async Task Add(CodeGenConfig input) { @@ -50,11 +44,9 @@ namespace Admin.NET.Core.Service await codeGenConfig.InsertAsync(); } - /// - /// 删除 - /// - /// - /// + /// 删除 + /// + /// [NonAction] public async Task Delete(long codeGenId) { @@ -62,11 +54,9 @@ namespace Admin.NET.Core.Service await _sysCodeGenConfigRep.DeleteAsync(codeGenConfigList); } - /// - /// 更新 - /// - /// - /// + /// 更新 + /// + /// [HttpPost("/sysCodeGenerateConfig/edit")] public async Task Update(List inputList) { @@ -79,22 +69,18 @@ namespace Admin.NET.Core.Service await Task.CompletedTask; } - /// - /// 详情 - /// - /// - /// + /// 详情 + /// + /// [HttpGet("/sysCodeGenerateConfig/detail")] public async Task Detail(CodeGenConfig input) { return await _sysCodeGenConfigRep.FirstOrDefaultAsync(u => u.Id == input.Id); } - /// - /// 批量增加 - /// - /// - /// + /// 批量增加 + /// + /// [NonAction] public void AddList(List tableColumnOuputList, SysCodeGen codeGenerate) { @@ -127,6 +113,7 @@ namespace Admin.NET.Core.Service codeGenConfig.WhetherRetract = YesOrNot.N.ToString(); codeGenConfig.WhetherRequired = YesOrNot.N.ToString(); + codeGenConfig.QueryWhether = YesOrNo; codeGenConfig.WhetherAddUpdate = YesOrNo; codeGenConfig.WhetherTable = YesOrNo; diff --git a/backend/Admin.NET.Web.Entry/Admin.NET.db b/backend/Admin.NET.Web.Entry/Admin.NET.db index 1dfef2f4bb3b427dc2eb825351ad055db93b079a..e604dfa92432bd1de19faa15709765f113989deb 100644 GIT binary patch delta 2608 zcmah~3s6+o8NUBHd-q;;@4aUQ45CIZ4*>;XAFlEc&maXQ(Vd(OAt z`5)i;?>YaiKR2TOoF)D{1#`+hZgojjO+~3kb#N9AfXh%-j^i+Uve@(N7qcUNijw*j z&;ASKhL6qKQN2Y|E$OChYj`2V;eg#Ey#@#}c#HV0CKNl~`#B*NVzb#NCpm2;t8LB% zYl8En`j7}iocBqhm_b0{lq;med|WsQ3i(mttweu zRpu^P>aJvE0hduVSwX#K6zHA~ABt^2)H@4GDvK+A2(*Cw^~O3HpxMz)fZB#nH+e77iCT4#** z$76Nc88#m|rfOxKMc$sysOl7fczyM@lR@$&@seMXi{vW#8{c5~k11vhO${bPzz@WKisiy}Da5dd6|+n~dIbLh)9_umjaKc%jdbxL{8O6yE~a{XBv?WJ z%_L|Cy?+mW40Klu-bc^x!rS%aR(t{IXYb%DS~3k^%Vh#=?H$*&{XJ_LoZ^EA>Sr_P z^ut9APWHnU3_AR9J%d&s+~4yWgNgdT6Jhil0V#5aa)GQSAF!P}&3eIJScvGtRuJgA zHfW-+w?Z@RXn{`pMJsF>Ei+F^c5!lp+$H}*Nl=!_F6An*C~dmh4l5;g2+z{H9WYJ* z(@_`)l#K#Ccnq9$*HJbsJ_gh1)nkxN6MQJ76P#Vg!C;XL$~BIhAS=jNLUJb(CoXKnK#@%>3G~;{_Kw!1~3h|fd%04uXwx*#dK8EA? zO*GPh!pB7oKX1PC>#nFSsjgbZacCw>mV*>TNUt24Rp( zWh+y0V@f2|`}9*m_ychM;GMAKsuNJm$|=p1JZ znHA}G&vK$*!+6$=SjCEcj0X%y4RQEq zIGo?j)f(dieg#bdX`)x0fVLn}XcJ;tVQh4x6~9Nzld*?hnT$8;svU=dxWRwQ^XYjN zhf|V_t-5V0J_YnfGG0kvor3EnRso4!goR@`<3jqW6R$CG+&aHo9^H}dcPrMzY#2aK zcHrGWi=4PgpOJ#k^GRf#^0l%`{z5L1E=$SggJxp-p(!$8UqGO^QFtgUHC{Dl@)vlU z;T^X3J?J4Sf}4=T9cGfFRN;+Ar`WCY8CZ?ay-JQ7q7*8VaRJMN8TsV%1-u%YNT7zE9P@% z*|aX;Zh%L;BW`70OGSOK4x5eo@*m@6&%8o8Qls2ba^w!#BAu3!%m>VY%a}tEQTtYew3B?^vk&|PBTCpWNKE3rSE6JNJ{d6*B(QdmV&}IsA@!Z z)r#7R%IvC&3U{R^LM?Q?S{N^z*up%wr?9Tt{XFGbvc$dk1vYoNtI|{Mshd|?G0Zx5 zxj***<=x8gSlUN;BxcDq*%0FPi}>D~ZqJ+Un)&XPwdFPLvggGNE#=pgxofiOo?j`b zb=TAlEx*7I+mrUd;Lo^-4}IOA(XTnrJuG5Qsi$<9BdgC)0$=5-DxXi2UE?nGxXTL5 zpDTy9V=(yX*7lh~pUyqTQNEelW`UnLzR6FNK7w%CdmD|^&cawpjg6R97BN9KO<12m zd+(zldh;GqA%pJgMc~rqI2$}beR4Pp8@ecdk3WZsL?dBAKB$NAtcWM z4bJk)GWS~A*^k0#b3Y1#G@nfoOr-znM+xjp_B43v0BfKVXvF}Fo9d^I^e_Rr18lf6 yfI@LYP^@n`n!eS8MnTFqHW?5@@AV)nB>O3QFG@5fNB^&R|D=!UF6d*K6aEWTfgHvF delta 6147 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 diff --git a/backend/Admin.NET.Web.Entry/wwwroot/Template/Service.cs.vm b/backend/Admin.NET.Web.Entry/wwwroot/Template/Service.cs.vm index f2647ac54..78ef9dfc1 100644 --- a/backend/Admin.NET.Web.Entry/wwwroot/Template/Service.cs.vm +++ b/backend/Admin.NET.Web.Entry/wwwroot/Template/Service.cs.vm @@ -9,6 +9,7 @@ using Microsoft.EntityFrameworkCore; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using System.Linq.Dynamic.Core; namespace @Model.NameSpace { @@ -64,6 +65,7 @@ if (@column.QueryType == "like"){ } } } + .OrderBy(PageInputOrder.OrderBuilder<@(@Model.ClassName)Input>(input)) .ToPagedListAsync(input.PageNo, input.PageSize); var result = XnPageResult<@(@Model.ClassName)>.PageResult<@(@Model.ClassName)Dto>(entities); await DtoMapper(result.Rows); diff --git a/backend/Admin.NET.Web.Entry/wwwroot/Template/index.vue.vm b/backend/Admin.NET.Web.Entry/wwwroot/Template/index.vue.vm index 3f0f0dd5f..24aa0e6c3 100644 --- a/backend/Admin.NET.Web.Entry/wwwroot/Template/index.vue.vm +++ b/backend/Admin.NET.Web.Entry/wwwroot/Template/index.vue.vm @@ -199,6 +199,9 @@ columnDataColumns++; @:{ @:title: '@column.ColumnComment', @:align: 'center', +if (@column.WhetherOrderBy == "Y"){ +@:sorter: true, +} if(@column.EffectType == "switch"){ @:customRender: (vlaue) => (vlaue ? True : False), } diff --git a/frontend/src/views/gen/codeGenerate/indexConfig.vue b/frontend/src/views/gen/codeGenerate/indexConfig.vue index b132b2152..e33873620 100644 --- a/frontend/src/views/gen/codeGenerate/indexConfig.vue +++ b/frontend/src/views/gen/codeGenerate/indexConfig.vue @@ -16,7 +16,7 @@ -