From de43e4964e47106735693c8b176882273243a7d0 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: Sun, 27 Mar 2022 22:05:19 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A0vue3=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E6=A8=A1=E6=9D=BF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../wwwroot/CodeGenTemplate/v3/README.txt | 0
.../wwwroot/CodeGenTemplate/v3/Vue3.txt | 552 ++++++++++++++++++
ZR.CodeGenerator/CodeGenerateTemplate.cs | 202 ++++---
ZR.CodeGenerator/CodeGeneratorTool.cs | 36 +-
4 files changed, 687 insertions(+), 103 deletions(-)
create mode 100644 ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/README.txt
create mode 100644 ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/README.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/README.txt
new file mode 100644
index 0000000..e69de29
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt
new file mode 100644
index 0000000..b3cc1b4
--- /dev/null
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt
@@ -0,0 +1,552 @@
+
+
+
+
+
+$foreach(column in genTable.Columns)
+$set(labelName = "")
+$set(columnName = "")
+$set(numLabel = "")
+$if(column.IsQuery == true)
+ $set(columnName = column.CsharpFieldFl)
+ $if(column.ColumnComment != "")
+ $set(labelName = column.ColumnComment)
+ $else
+ $set(labelName = column.CsharpFieldFl)
+ $end
+ $if(column.CsharpType == "int" || column.CsharpType == "long")
+ $set(numLabel = ".number")
+ $end
+
+$if(column.HtmlType == "datetime")
+
+
+
+$elseif(column.HtmlType == "select" || column.HtmlType == "radio")
+
+
+
+
+
+$else
+
+
+
+$end
+$end
+$end
+
+
+ 搜索
+ 重置
+
+
+
+
+$if(replaceDto.ShowBtnAdd)
+
+ 新增
+
+$end
+$if(replaceDto.ShowBtnEdit)
+
+ 修改
+
+$end
+$if(replaceDto.ShowBtnDelete)
+
+ 删除
+
+$end
+$if(replaceDto.ShowBtnExport)
+
+ 导出
+
+$end
+
+
+
+
+
+
+
+$foreach(column in genTable.Columns)
+$set(labelName = "")
+$set(checkboxHtml = "")
+$set(showToolTipHtml = "")
+$set(columnName = column.CsharpFieldFl)
+$if(column.CsharpType == "string" || column.HtmlType == "datetime")
+$set(showToolTipHtml = " :show-overflow-tooltip=\"true\"")
+$end
+$if(column.ColumnComment != "")
+$set(labelName = column.ColumnComment)
+$else
+$set(labelName = column.CsharpFieldFl)
+$end
+$if(column.IsList == true)
+$if(column.HtmlType == "customInput" && column.IsPk == false)
+
+
+ {{scope.row.${columnName}}}
+
+
+
+$elseif(column.HtmlType == "imageUpload")
+
+
+
+
+
+
+
+$elseif(column.HtmlType == "checkbox" || column.HtmlType == "select" || column.HtmlType == "radio")
+
+
+$if(column.HtmlType == "checkbox")
+
+$else
+
+$end
+
+
+$else
+
+$end
+$end
+$end
+
+
+
+$if(replaceDto.ShowBtnEdit)
+
+$end
+$if(replaceDto.ShowBtnDelete)
+
+$end
+
+
+
+
+
+
+
+
+
+
+$foreach(column in genTable.Columns)
+$set(labelName = "")
+$set(labelDisabled = "")
+$set(columnName = column.CsharpFieldFl)
+$set(value = "item.dictValue")
+
+$if(column.ColumnComment != "")
+$set(labelName = column.ColumnComment)
+$else
+$set(labelName = column.CsharpFieldFl)
+$end
+$if(column.IsPk == true)
+$set(labelDisabled = ":disabled=true")
+$end
+$if(column.CsharpType == "int" || column.CsharpType == "long")
+ $set(value = "parseInt(item.dictValue)")
+$end
+
+$if(column.IsInsert == false && column.IsEdit == false)
+
+ {{form.${columnName}}}
+
+$elseif(column.IsPK || column.IsIncrement)
+
+
+$if(column.IsIncrement == false)
+
+$else
+
+$end
+
+
+$else
+$if(column.HtmlType == "inputNumber")
+
+
+
+
+
+$elseif(column.HtmlType == "datetime")
+
+
+
+
+
+$elseif(column.HtmlType == "imageUpload")
+
+
+
+
+
+$elseif(column.HtmlType == "fileUpload")
+
+
+
+
+
+$elseif(column.HtmlType == "radio")
+
+
+
+ {{item.dictLabel}}
+
+
+
+$elseif(column.HtmlType == "textarea")
+
+
+
+
+
+$elseif(column.HtmlType == "editor")
+
+
+
+
+
+$elseif(column.HtmlType == "select")
+
+
+
+
+
+
+
+$elseif(column.HtmlType == "checkbox")
+
+
+
+ {{item.dictLabel}}
+
+
+
+$else
+
+
+
+
+
+$end
+$end
+$end
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ZR.CodeGenerator/CodeGenerateTemplate.cs b/ZR.CodeGenerator/CodeGenerateTemplate.cs
index 03fcdbc..b3820d9 100644
--- a/ZR.CodeGenerator/CodeGenerateTemplate.cs
+++ b/ZR.CodeGenerator/CodeGenerateTemplate.cs
@@ -34,26 +34,23 @@ namespace ZR.CodeGenerator
sb.AppendLine(" ");
sb.AppendLine($" {{{{form.{columnName}}}}}");
sb.AppendLine(" ");
- return sb.ToString();
}
-
- //树
- if (genTable.TplCategory.Equals("tree", StringComparison.OrdinalIgnoreCase) && genTable.TreeParentCode != null && dbFieldInfo.CsharpField.Equals(genTable.TreeParentCode))
+ else if (genTable.TplCategory.Equals("tree", StringComparison.OrdinalIgnoreCase) && genTable.TreeParentCode != null && dbFieldInfo.CsharpField.Equals(genTable.TreeParentCode))
{
+ //树
sb.AppendLine(@" ");
sb.AppendLine($@" ");
sb.AppendLine($@" ");
sb.AppendLine(@" ");
sb.AppendLine(@" ");
- return sb.ToString();
}
//主键、非自增要插入,不能编辑
- if (dbFieldInfo.IsPk || dbFieldInfo.IsIncrement)
+ else if (dbFieldInfo.IsPk || dbFieldInfo.IsIncrement)
{
sb.AppendLine(" ");
sb.AppendLine($" ");
//主键非自增 显示input
- if (dbFieldInfo.IsPk && !dbFieldInfo.IsIncrement)
+ if (!dbFieldInfo.IsIncrement)
{
sb.AppendLine($" ");
}
@@ -64,105 +61,106 @@ namespace ZR.CodeGenerator
sb.AppendLine(" ");
sb.AppendLine(" ");
- return sb.ToString();
- }
- if (dbFieldInfo.HtmlType == GenConstants.HTML_INPUT_NUMBER)
- {
- //数字框
- sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($" ");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
- }
- else if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME)
- {
- //时间
- sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($" ");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
- }
- else if (dbFieldInfo.HtmlType == GenConstants.HTML_IMAGE_UPLOAD)
- {
- //图片
- sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($@" ");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
- }
- else if (dbFieldInfo.HtmlType == GenConstants.HTML_FILE_UPLOAD)
- {
- //文件
- sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($@" ");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
- }
- else if (dbFieldInfo.HtmlType == GenConstants.HTML_RADIO)
- {
- //单选按钮
- sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($" ");
- sb.AppendLine($" {{{{item.dictLabel}}}}");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
- }
- else if (dbFieldInfo.HtmlType == GenConstants.HTML_TEXTAREA)
- {
- //文本域
- sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($" ");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
- }
- else if (dbFieldInfo.HtmlType == GenConstants.HTML_EDITOR)
- {
- //编辑器
- sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($" ");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
- }
- else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT)
- {
- //下拉框
- sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($" ");
- sb.AppendLine($" ");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
- }
- else if (dbFieldInfo.HtmlType == GenConstants.HTML_CHECKBOX)
- {
- //多选框
- sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($" ");
- sb.AppendLine($" {{{{item.dictLabel}}}}");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
}
else
{
- string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : "";
- sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($" ");
- sb.AppendLine(" ");
- sb.AppendLine(" ");
+ if (dbFieldInfo.HtmlType == GenConstants.HTML_INPUT_NUMBER)
+ {
+ //数字框
+ sb.AppendLine(" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ }
+ else if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME)
+ {
+ //时间
+ sb.AppendLine(" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ }
+ else if (dbFieldInfo.HtmlType == GenConstants.HTML_IMAGE_UPLOAD)
+ {
+ //图片
+ sb.AppendLine(" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($@" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ }
+ else if (dbFieldInfo.HtmlType == GenConstants.HTML_FILE_UPLOAD)
+ {
+ //文件
+ sb.AppendLine(" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($@" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ }
+ else if (dbFieldInfo.HtmlType == GenConstants.HTML_RADIO)
+ {
+ //单选按钮
+ sb.AppendLine(" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" {{{{item.dictLabel}}}}");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ }
+ else if (dbFieldInfo.HtmlType == GenConstants.HTML_TEXTAREA)
+ {
+ //文本域
+ sb.AppendLine(" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ }
+ else if (dbFieldInfo.HtmlType == GenConstants.HTML_EDITOR)
+ {
+ //编辑器
+ sb.AppendLine(" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ }
+ else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT)
+ {
+ //下拉框
+ sb.AppendLine(" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ }
+ else if (dbFieldInfo.HtmlType == GenConstants.HTML_CHECKBOX)
+ {
+ //多选框
+ sb.AppendLine(" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" {{{{item.dictLabel}}}}");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ }
+ else
+ {
+ string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : "";
+ sb.AppendLine(" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ }
}
-
return sb.ToString();
}
diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs
index 29805e2..55aaeea 100644
--- a/ZR.CodeGenerator/CodeGeneratorTool.cs
+++ b/ZR.CodeGenerator/CodeGeneratorTool.cs
@@ -85,6 +85,7 @@ namespace ZR.CodeGenerator
GenerateService(replaceDto, dto);
GenerateControllers(replaceDto, dto);
GenerateVueViews(replaceDto, dto);
+ GenerateVue3Views(replaceDto, dto);
GenerateVueJs(replaceDto, dto);
GenerateSql(replaceDto, dto);
@@ -201,7 +202,40 @@ namespace ZR.CodeGenerator
generateDto.GenCodes.Add(new GenCode(6, "index.vue", fullPath, result));
}
+ ///
+ /// vue3
+ ///
+ ///
+ ///
+ private static void GenerateVue3Views(ReplaceDto replaceDto, GenerateDto generateDto)
+ {
+ string fileName = string.Empty;
+ switch (generateDto.GenTable.TplCategory)
+ {
+ case "tree":
+ fileName = "TplTreeVue.txt";
+ break;
+ case "crud":
+ fileName = "Vue3.txt";
+ break;
+ case "select":
+ fileName = "TplVueSelect.txt";
+ break;
+ default:
+ break;
+ }
+ fileName = Path.Combine("v3", fileName);
+ var tpl = FileHelper.ReadJtTemplate(fileName);
+ //tpl.Set("vueQueryFormHtml", replaceDto.VueQueryFormHtml);
+ //tpl.Set("VueViewEditFormRuleContent", replaceDto.VueViewEditFormRuleContent);//添加、修改表单验证规则
+ //tpl.Set("VueViewFormContent", replaceDto.VueViewFormHtml);//添加、修改表单
+ //tpl.Set("VueViewListContent", replaceDto.VueViewListHtml);//查询 table列
+ var result = tpl.Render();
+ var fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, "ZR.Vue3", "src", "views", generateDto.GenTable.ModuleName.FirstLowerCase(), $"{generateDto.GenTable.BusinessName.FirstUpperCase()}.vue");
+ //Console.WriteLine(result);
+ generateDto.GenCodes.Add(new GenCode(16, "index.vue", fullPath, result));
+ }
///
/// 生成vue页面api
///
@@ -466,7 +500,7 @@ namespace ZR.CodeGenerator
///
private static void InitJntTemplate(GenerateDto dto, ReplaceDto replaceDto)
{
- //Engine.Current.Clean();
+ Engine.Current.Clean();
dto.GenTable.Columns = dto.GenTable.Columns.OrderBy(x => x.Sort).ToList();
bool showCustomInput = dto.GenTable.Columns.Any(f => f.HtmlType.Equals(GenConstants.HTML_CUSTOM_INPUT, StringComparison.OrdinalIgnoreCase));
//jnt模板引擎全局变量