From a45c171639d2fbde7b2fc9ae98fdc1871ce00283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Tue, 11 Jul 2023 18:32:46 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=96=B0=E5=A2=9E=E4=B8=BB?= =?UTF-8?q?=E5=AD=90=E8=A1=A8=E6=96=B0=E5=A2=9E=E3=80=81=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../System/CodeGeneratorController.cs | 16 +- .../CodeGenTemplate/TplControllers.txt | 2 +- .../wwwroot/CodeGenTemplate/TplDto.txt | 7 +- .../wwwroot/CodeGenTemplate/TplIService.txt | 2 + .../wwwroot/CodeGenTemplate/TplModel.txt | 7 +- .../wwwroot/CodeGenTemplate/TplService.txt | 27 ++- .../wwwroot/CodeGenTemplate/v3/Vue.txt | 214 ++++++++++++++---- ZR.CodeGenerator/CodeGeneratorTool.cs | 22 +- 8 files changed, 232 insertions(+), 65 deletions(-) diff --git a/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs b/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs index 1e40c48..2ae41e2 100644 --- a/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs +++ b/ZR.Admin.WebApi/Controllers/System/CodeGeneratorController.cs @@ -230,11 +230,11 @@ namespace ZR.Admin.WebApi.Controllers } var genTableInfo = GenTableService.GetGenTableInfo(dto.TableId); var dbConfig = AppSettings.Get(nameof(GlobalConstant.CodeGenDbConfig)); - + dto.DbType = dbConfig.DbType; dto.GenTable = genTableInfo; dto.IsPreview = true; - + CodeGeneratorTool.Generate(dto); return SUCCESS(dto.GenCodes); @@ -278,12 +278,20 @@ namespace ZR.Admin.WebApi.Controllers //生成代码到指定文件夹 CodeGeneratorTool.Generate(dto); - //下载文件 - FileUtil.ZipGenCode(dto.ZipPath, dto.GenCodePath, zipReturnFileName); if (genTableInfo.Options.GenerateMenu) { SysMenuService.AddSysMenu(genTableInfo, dto.ReplaceDto.PermissionPrefix, dto.ReplaceDto.ShowBtnEdit, dto.ReplaceDto.ShowBtnExport); } + + foreach (var item in dto.GenCodes) + { + item.Path = Path.Combine(dto.GenCodePath, item.Path); + FileUtil.WriteAndSave(item.Path, item.Content); + } + + //下载文件 + FileUtil.ZipGenCode(dto.ZipPath, dto.GenCodePath, zipReturnFileName); + return SUCCESS(new { path = "/Generatecode/" + zipReturnFileName, fileName = dto.ZipFileName }); } diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt index a15b37d..7441b42 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt @@ -68,7 +68,7 @@ $end [ActionPermissionFilter(Permission = "${replaceDto.PermissionPrefix}:query")] public IActionResult Get${replaceDto.ModelTypeName}(${replaceDto.PKType} ${replaceDto.PKName}) { - var response = _${replaceDto.ModelTypeName}Service.GetFirst(x => x.${replaceDto.PKName} == ${replaceDto.PKName}); + var response = _${replaceDto.ModelTypeName}Service.GetInfo(${replaceDto.PKName}); var info = response.Adapt<${replaceDto.ModelTypeName}>(); return SUCCESS(info); diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplDto.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplDto.txt index 2639a9b..fa46613 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplDto.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplDto.txt @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -//using ${options.ModelsNamespace}.${options.SubNamespace}; $if(replaceDto.ShowBtnExport) using MiniExcelLibs.Attributes; $end @@ -57,14 +54,14 @@ $if(genTable.TplCategory == "subNav" && genTable.SubTable != null) $if(replaceDto.ShowBtnExport) [ExcelIgnore] $end - public ${genTable.SubTable.ClassName} ${genTable.SubTable.ClassName}Nav { get; set; } + public ${genTable.SubTable.ClassName}Dto ${genTable.SubTable.ClassName}Nav { get; set; } $end $if(genTable.TplCategory == "subNavMore" && genTable.SubTable != null) $if(replaceDto.ShowBtnExport) [ExcelIgnore] $end - public List<${genTable.SubTable.ClassName}> ${genTable.SubTable.ClassName}Nav { get; set; } + public List<${genTable.SubTable.ClassName}Dto> ${genTable.SubTable.ClassName}Nav { get; set; } $end } } \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplIService.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplIService.txt index a48f27b..90d2588 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplIService.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplIService.txt @@ -13,6 +13,8 @@ namespace ${options.IServicsNamespace}.${options.SubNamespace}.I${options.SubNam { PagedInfo<${replaceDto.ModelTypeName}Dto> GetList(${replaceDto.ModelTypeName}QueryDto parm); + ${replaceDto.ModelTypeName} GetInfo(${replaceDto.PKType} ${replaceDto.PKName}); + $if(genTable.TplCategory == "tree") List<${replaceDto.ModelTypeName}> GetTreeList(${replaceDto.ModelTypeName}QueryDto parm); $end diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt index 172a316..31735d9 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt @@ -1,7 +1,4 @@ -using System; -using SqlSugar; -using System.Collections.Generic; -$if(genTable.TplCategory.Contains("subNav") && genTable.SubTable != null) +$if(genTable.TplCategory.Contains("subNav") && genTable.SubTable != null) using ${subTableOptions.ModelsNamespace}.${subTableOptions.SubNamespace}; $end @@ -37,7 +34,7 @@ $if(genTable.TplCategory == "tree") [SugarColumn(IsIgnore = true)] public List<${replaceDto.ModelTypeName}> Children { get; set; } $end -$if(genTable.TplCategory == "subNav" && genTable.SubTable != null) +$if((genTable.TplCategory == "subNav" || genTable.TplCategory == "sub") && genTable.SubTable != null) [Navigate(NavigateType.OneToOne, nameof(${replaceDto.PKName}))] //自定义关系映射 public ${genTable.SubTable.ClassName} ${genTable.SubTable.ClassName}Nav { get; set; } $end diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt index dd0e30a..2465033 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt @@ -51,7 +51,7 @@ $end $end var response = Queryable() $if(null != genTable.SubTableName && "" != genTable.SubTableName) - .Includes(x => x.${genTable.SubTable.ClassName}Nav) //填充子对象 + //.Includes(x => x.${genTable.SubTable.ClassName}Nav) //填充子对象 $end $if(genTable.Options.SortField != "" && genTable.Options.SortField != null) //.OrderBy("${genTable.Options.SortField} ${genTable.Options.SortType}") @@ -90,6 +90,23 @@ $end } $end + /// + /// 获取详情 + /// + /// + /// + public ${replaceDto.ModelTypeName} GetInfo(${replaceDto.PKType} ${replaceDto.PKName}) + { + var response = Queryable() +$if(null != genTable.SubTableName && "" != genTable.SubTableName) + .Includes(x => x.${genTable.SubTable.ClassName}Nav) //填充子对象 +$end + .Where(x => x.${replaceDto.PKName} == ${replaceDto.PKName}) + .First(); + + return response; + } + /// /// 添加${genTable.FunctionName} /// @@ -97,7 +114,11 @@ $end /// public int Add${replaceDto.ModelTypeName}(${replaceDto.ModelTypeName} model) { +$if(null != genTable.SubTableName && "" != genTable.SubTableName) + return Context.InsertNav(model).Include(s1 => s1.${genTable.SubTable.ClassName}Nav).ExecuteCommand() ? 1 : 0; +$else return Add(model, true); +$end } /// @@ -116,7 +137,11 @@ $end ${end} //}); //return response; +$if(null != genTable.SubTableName && "" != genTable.SubTableName) + return Context.UpdateNav(model).Include(z1 => z1.${genTable.SubTable.ClassName}Nav).ExecuteCommand() ? 1 : 0; +$else return Update(model, true); +$end } $if(replaceDto.ShowBtnTruncate) /// diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt index 2653e4e..23fee3d 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt @@ -118,14 +118,17 @@ $end - - $end -$if(null != genTable.SubTableName && "" != genTable.SubTableName && genTable.TplCategory == "subNav") - - - -$end -$if(null != genTable.SubTableName && "" != genTable.SubTableName && genTable.TplCategory == "subNavMore") - - - -$end + $foreach(column in genTable.Columns) $set(labelName = column.ColumnComment) $set(showToolTipHtml = "") @@ -199,7 +179,7 @@ $else $end $end $end - + - + + +$* 一对一/一对多列表显示详情 *$ +$if(sub) + + +$foreach(column in genSubTable.Columns) +$set(columnName = column.CsharpFieldFl) +$if(column.IsList == true) +$if(column.HtmlType == "checkbox" || column.HtmlType.Contains("select") || column.HtmlType == "radio") + + + +$else + +$end +$end +$end + +$end - + $foreach(column in genTable.Columns) @@ -286,7 +291,7 @@ $elseif(column.HtmlType == "radio" || column.HtmlType == "selectRadio") - {{item.dictLabel}} + {{item.dictLabel}} @@ -310,7 +315,7 @@ $elseif(column.HtmlType == "select" || column.HtmlType == "selectMulti") v-for="item in $if(column.DictType != "")options.${column.DictType}${else}options.${column.CsharpFieldFl}Options$end" :key="item.dictValue" :label="item.dictLabel" - :value="${value}"> + :value="item.dictValue"> @@ -340,6 +345,67 @@ $end $end $end +$* 子表信息 *$ +$if(sub) + ${genTable.SubTable.FunctionName}信息 + + + 添加 + + + 删除 + + + 全屏 + + + + + +$foreach(column in genTable.SubTable.Columns) +$set(labelName = column.ColumnComment) +$set(columnName = column.CsharpFieldFl) +$if(column.CsharpType == "int" || column.CsharpType == "long") +$set(value = "parseInt(item.dictValue)") +$set(number = ".number") +$end +$if(column.IsList == true) +$if(column.IsPk || column.CsharpField == genTable.SubTableFkName) +$elseif(column.HtmlType == "inputNumber" || column.HtmlType == "customInput") + + + +$elseif(column.HtmlType == "datetime" || column.HtmlType == "month") + + + +$elseif(column.HtmlType == "radio" || column.HtmlType == "selectRadio" || column.HtmlType == "select" || column.HtmlType == "selectMulti") + + + +$else + + + +$end +$end +$end + +$end