From 563c75774105fa9c739a6d4620924da8fb6fa8b1 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: Mon, 18 Dec 2023 22:05:38 +0800 Subject: [PATCH] =?UTF-8?q?:zap:=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E4=BC=98=E5=8C=96&=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E6=A8=A1=E6=9D=BF=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Infrastructure/Model/OptionsSetting.cs | 1 + ZR.Admin.WebApi/appsettings.json | 3 +- .../CodeGenTemplate/antDesign/Vue2.txt | 1 + .../{ => csharp}/TplControllers.txt | 0 .../CodeGenTemplate/{ => csharp}/TplDto.txt | 0 .../{ => csharp}/TplIService.txt | 0 .../CodeGenTemplate/{ => csharp}/TplModel.txt | 0 .../{ => csharp}/TplRepository.txt | 0 .../{ => csharp}/TplService.txt | 0 .../CodeGenTemplate/{ => vue2}/CurdForm.txt | 0 .../CodeGenTemplate/{ => vue2}/QueryForm.txt | 0 .../CodeGenTemplate/{ => vue2}/TableList.txt | 0 .../CodeGenTemplate/{ => vue2}/TplTreeVue.txt | 0 .../CodeGenTemplate/{ => vue2}/TplVue.txt | 0 .../{ => vue2}/TplVueSelect.txt | 0 ZR.CodeGenerator/CodeGeneratorTool.cs | 84 ++++++++++--------- ZR.ServiceCore/Model/Generate/GenTable.cs | 4 + 17 files changed, 53 insertions(+), 40 deletions(-) create mode 100644 ZR.Admin.WebApi/wwwroot/CodeGenTemplate/antDesign/Vue2.txt rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ => csharp}/TplControllers.txt (100%) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ => csharp}/TplDto.txt (100%) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ => csharp}/TplIService.txt (100%) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ => csharp}/TplModel.txt (100%) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ => csharp}/TplRepository.txt (100%) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ => csharp}/TplService.txt (100%) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ => vue2}/CurdForm.txt (100%) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ => vue2}/QueryForm.txt (100%) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ => vue2}/TableList.txt (100%) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ => vue2}/TplTreeVue.txt (100%) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ => vue2}/TplVue.txt (100%) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ => vue2}/TplVueSelect.txt (100%) diff --git a/Infrastructure/Model/OptionsSetting.cs b/Infrastructure/Model/OptionsSetting.cs index 890fe52..d667fbd 100644 --- a/Infrastructure/Model/OptionsSetting.cs +++ b/Infrastructure/Model/OptionsSetting.cs @@ -102,6 +102,7 @@ namespace Infrastructure.Model public string Author { get; set; } public string TablePrefix { get; set; } public string ModuleName { get; set; } + public int FrontTpl { get; set; } public CsharpTypeArr CsharpTypeArr { get; set; } } diff --git a/ZR.Admin.WebApi/appsettings.json b/ZR.Admin.WebApi/appsettings.json index 2e52bf4..691d1ba 100644 --- a/ZR.Admin.WebApi/appsettings.json +++ b/ZR.Admin.WebApi/appsettings.json @@ -101,6 +101,7 @@ "moduleName": "business", "author": "admin", "tablePrefix": "sys_", //"表前缀(生成类名不会包含表前缀,多个用逗号分隔)", - "vuePath": "" //前端代码存储路径eg:D:\Work\ZRAdmin-Vue3 + "vuePath": "", //前端代码存储路径eg:D:\Work\ZRAdmin-Vue3 + "frontTpl": 2//默认前端模板 1、element ui 2、element plus } } diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/antDesign/Vue2.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/antDesign/Vue2.txt new file mode 100644 index 0000000..7d15c63 --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/antDesign/Vue2.txt @@ -0,0 +1 @@ +你在期待什么... \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/csharp/TplControllers.txt similarity index 100% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/csharp/TplControllers.txt diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplDto.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/csharp/TplDto.txt similarity index 100% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplDto.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/csharp/TplDto.txt diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplIService.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/csharp/TplIService.txt similarity index 100% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplIService.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/csharp/TplIService.txt diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/csharp/TplModel.txt similarity index 100% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/csharp/TplModel.txt diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplRepository.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/csharp/TplRepository.txt similarity index 100% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplRepository.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/csharp/TplRepository.txt diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/csharp/TplService.txt similarity index 100% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/csharp/TplService.txt diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/CurdForm.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/vue2/CurdForm.txt similarity index 100% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/CurdForm.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/vue2/CurdForm.txt diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/QueryForm.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/vue2/QueryForm.txt similarity index 100% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/QueryForm.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/vue2/QueryForm.txt diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TableList.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/vue2/TableList.txt similarity index 100% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TableList.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/vue2/TableList.txt diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplTreeVue.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/vue2/TplTreeVue.txt similarity index 100% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplTreeVue.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/vue2/TplTreeVue.txt diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVue.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/vue2/TplVue.txt similarity index 100% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVue.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/vue2/TplVue.txt diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueSelect.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/vue2/TplVueSelect.txt similarity index 100% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueSelect.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/vue2/TplVueSelect.txt diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs index fa99c4f..618d12f 100644 --- a/ZR.CodeGenerator/CodeGeneratorTool.cs +++ b/ZR.CodeGenerator/CodeGeneratorTool.cs @@ -28,7 +28,7 @@ namespace ZR.CodeGenerator public static void Generate(GenerateDto dto) { var genOptions = AppSettings.Get("codeGen"); - dto.VueParentPath = dto.VueVersion == 3 ? "ZRAdmin-vue" : "ZR.Vue"; + dto.VueParentPath = "Frontend"; if (!genOptions.VuePath.IsEmpty()) { dto.VueParentPath = genOptions.VuePath; @@ -75,14 +75,18 @@ namespace ZR.CodeGenerator GenerateModels(replaceDto, dto); GenerateService(replaceDto, dto); GenerateControllers(replaceDto, dto); - if (dto.VueVersion == 3) + if (dto.GenTable.Options.FrontTpl == 2) { GenerateVue3Views(replaceDto, dto); } - else + else if (dto.GenTable.Options.FrontTpl == 1) { GenerateVueViews(replaceDto, dto); } + else + { + GenerateAntDesignViews(replaceDto, dto); + } if (dto.GenTable.Options.GenerateRepo == 1) { GenerateRepository(replaceDto, dto); @@ -124,8 +128,9 @@ namespace ZR.CodeGenerator /// 替换实体 private static void GenerateModels(ReplaceDto replaceDto, GenerateDto generateDto) { - var tpl = JnHelper.ReadTemplate(CodeTemplateDir, "TplModel.txt"); - var tplDto = JnHelper.ReadTemplate(CodeTemplateDir, "TplDto.txt"); + var path = Path.Combine(CodeTemplateDir, "csharp"); + var tpl = JnHelper.ReadTemplate(path, "TplModel.txt"); + var tplDto = JnHelper.ReadTemplate(path, "TplDto.txt"); string fullPath = Path.Combine(generateDto.GenOptions.ModelsNamespace, "Models", generateDto.GenOptions.SubNamespace, replaceDto.ModelTypeName + ".cs"); string fullPathDto = Path.Combine(generateDto.GenOptions.ModelsNamespace, "Dto", generateDto.GenOptions.SubNamespace, replaceDto.ModelTypeName + "Dto.cs"); @@ -141,7 +146,7 @@ namespace ZR.CodeGenerator /// 替换实体 private static void GenerateRepository(ReplaceDto replaceDto, GenerateDto generateDto) { - var tpl = JnHelper.ReadTemplate(CodeTemplateDir, "TplRepository.txt"); + var tpl = JnHelper.ReadTemplate(Path.Combine(CodeTemplateDir, "csharp"), "TplRepository.txt"); var result = tpl.Render(); var fullPath = Path.Combine(generateDto.GenOptions.RepositoriesNamespace, generateDto.GenOptions.SubNamespace, $"{replaceDto.ModelTypeName}Repository.cs"); @@ -153,8 +158,9 @@ namespace ZR.CodeGenerator /// private static void GenerateService(ReplaceDto replaceDto, GenerateDto generateDto) { - var tpl = JnHelper.ReadTemplate(CodeTemplateDir, "TplService.txt"); - var tpl2 = JnHelper.ReadTemplate(CodeTemplateDir, "TplIService.txt"); + var path = Path.Combine(CodeTemplateDir, "csharp"); + var tpl = JnHelper.ReadTemplate(path, "TplService.txt"); + var tpl2 = JnHelper.ReadTemplate(path, "TplIService.txt"); var fullPath = Path.Combine(generateDto.GenOptions.ServicesNamespace, generateDto.GenOptions.SubNamespace, $"{replaceDto.ModelTypeName}Service.cs"); var fullPath2 = Path.Combine(generateDto.GenOptions.IServicsNamespace, generateDto.GenOptions.SubNamespace, $"I{generateDto.GenOptions.SubNamespace}Service", $"I{replaceDto.ModelTypeName}Service.cs"); @@ -168,7 +174,7 @@ namespace ZR.CodeGenerator /// private static void GenerateControllers(ReplaceDto replaceDto, GenerateDto generateDto) { - var tpl = JnHelper.ReadTemplate(CodeTemplateDir, "TplControllers.txt"); + var tpl = JnHelper.ReadTemplate(Path.Combine(CodeTemplateDir, "csharp"), "TplControllers.txt"); tpl.Set("QueryCondition", replaceDto.QueryCondition); var result = tpl.Render(); @@ -186,9 +192,11 @@ namespace ZR.CodeGenerator "select" => "TplVueSelect.txt", _ => "TplVue.txt", }; - replaceDto.VueViewListHtml = GenerateVueTableList(); - replaceDto.VueQueryFormHtml = GenerateVueQueryForm(); - replaceDto.VueViewFormHtml = GenerateCurdForm(); + var path = Path.Combine(CodeTemplateDir, "vue2"); + fileName = Path.Combine("vue2", fileName); + replaceDto.VueViewListHtml = JnHelper.ReadTemplate(path, "TableList.txt").Render(); + replaceDto.VueQueryFormHtml = JnHelper.ReadTemplate(path, "QueryForm.txt").Render(); + replaceDto.VueViewFormHtml = JnHelper.ReadTemplate(path, "CurdForm.txt").Render(); var tpl = JnHelper.ReadTemplate(CodeTemplateDir, fileName); var fullPath = Path.Combine(generateDto.VueParentPath, "src", "views", generateDto.GenTable.ModuleName.FirstLowerCase(), $"{replaceDto.ViewFileName}.vue"); @@ -219,6 +227,29 @@ namespace ZR.CodeGenerator generateDto.GenCodes.Add(new GenCode(16, "index.vue", fullPath, result)); } + /// + /// AntDesign + /// + /// + private static void GenerateAntDesignViews(ReplaceDto replaceDto, GenerateDto generateDto) + { + string fileName = generateDto.GenTable.TplCategory switch + { + "tree" => "TreeVue.txt", + _ => "Vue2.txt", + }; + fileName = Path.Combine("antDesign", fileName); + var tpl = JnHelper.ReadTemplate(CodeTemplateDir, fileName); + tpl.Set("treeCode", generateDto.GenTable?.Options?.TreeCode?.FirstLowerCase()); + tpl.Set("treeName", generateDto.GenTable?.Options?.TreeName?.FirstLowerCase()); + tpl.Set("treeParentCode", generateDto.GenTable?.Options?.TreeParentCode?.FirstLowerCase()); + tpl.Set("options", generateDto.GenTable?.Options); + + var result = tpl.Render(); + var fullPath = Path.Combine(generateDto.VueParentPath, "src", "views", generateDto.GenTable.ModuleName.FirstLowerCase(), $"{replaceDto.ViewFileName}.vue"); + generateDto.GenCodes.Add(new GenCode(16, "index.vue", fullPath, result)); + } + /// /// 生成vue页面api /// @@ -264,32 +295,6 @@ namespace ZR.CodeGenerator generateDto.GenCodes.Add(new GenCode(8, "sql菜单", fullPath, result)); } - /// - /// 生成vue页面查询form - /// - /// - public static string GenerateVueQueryForm() - { - return JnHelper.ReadTemplate(CodeTemplateDir, "QueryForm.txt").Render(); - } - - /// - /// 生成vue页面table - /// - /// - public static string GenerateVueTableList() - { - return JnHelper.ReadTemplate(CodeTemplateDir, "TableList.txt").Render(); - } - - /// - /// 生成vue表单 - /// - /// - public static string GenerateCurdForm() - { - return JnHelper.ReadTemplate(CodeTemplateDir, "CurdForm.txt").Render(); - } #endregion #region app页面 @@ -446,7 +451,8 @@ namespace ZR.CodeGenerator { SortType = "asc", CheckedBtn = new int[] { 1, 2, 3 }, - PermissionPrefix = className.ToLower() + PermissionPrefix = className.ToLower(), + FrontTpl = dto.CodeGen.FrontTpl, } }; diff --git a/ZR.ServiceCore/Model/Generate/GenTable.cs b/ZR.ServiceCore/Model/Generate/GenTable.cs index 245cd98..ee519b5 100644 --- a/ZR.ServiceCore/Model/Generate/GenTable.cs +++ b/ZR.ServiceCore/Model/Generate/GenTable.cs @@ -137,5 +137,9 @@ /// 是否启用日志(编辑、删除)自动记录日志 /// public bool EnableLog { get; set; } + /// + /// 前端模板 1、element ui 2、element plus + /// + public int FrontTpl { get; set; } = 2; } }