From 84aeb9b27b6cacd5db93360fbbb34869120acc7a 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: Thu, 2 Dec 2021 17:44:46 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E7=94=9F?=
=?UTF-8?q?=E6=88=90=E6=A8=A1=E6=9D=BF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ZR.Admin.WebApi/ZR.Admin.WebApi.csproj | 4 +
.../wwwroot/CodeGenTemplate/MySqlTemplate.txt | 2 +-
.../wwwroot/CodeGenTemplate/SqlTemplate.txt | 2 +-
.../CodeGenTemplate/TplControllers.txt | 12 +-
.../{IServiceTemplate.txt => TplIService.txt} | 0
.../wwwroot/CodeGenTemplate/TplModel.txt | 2 +-
.../{ServiceTemplate.txt => TplService.txt} | 0
.../wwwroot/CodeGenTemplate/TplVue.txt | 265 ++++++++++++++++++
.../{VueJsTemplate.txt => TplVueApi.txt} | 10 +-
ZR.CodeGenerator/CodeGenerateTemplate.cs | 72 -----
ZR.CodeGenerator/CodeGeneratorTool.cs | 135 ++-------
ZR.CodeGenerator/Model/ReplaceDto.cs | 47 +---
ZR.Common/Tools.cs | 1 +
ZR.Model/System/Generate/GenTableColumn.cs | 12 +-
14 files changed, 329 insertions(+), 235 deletions(-)
rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{IServiceTemplate.txt => TplIService.txt} (100%)
rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{ServiceTemplate.txt => TplService.txt} (100%)
create mode 100644 ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVue.txt
rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/{VueJsTemplate.txt => TplVueApi.txt} (81%)
diff --git a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj
index c32c5c0..3bfc425 100644
--- a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj
+++ b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj
@@ -17,6 +17,10 @@
+
+
+
+
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/MySqlTemplate.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/MySqlTemplate.txt
index 612e051..dd44cd0 100644
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/MySqlTemplate.txt
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/MySqlTemplate.txt
@@ -1,6 +1,6 @@
-- 菜单
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time, remark)
-VALUES ('${genTable.functionName}', ${parentId}, 1, '${genTable.ModuleName}/${replaceDto.ModelTypeName}', '${genTable.ModuleName}/${replaceDto.ViewsFileName}/index', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', 'icon1', '', sysdate(), '${genTable.functionName}菜单');
+VALUES ('${genTable.functionName}', ${parentId}, 1, '${genTable.ModuleName}/${replaceDto.ModelTypeName}', '${genTable.ModuleName}/${genTable.BusinessName}/index', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', 'icon1', '', sysdate(), '${genTable.functionName}菜单');
-- 按钮父菜单id
SELECT @menuId := LAST_INSERT_ID();
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/SqlTemplate.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/SqlTemplate.txt
index c061fc2..df62b1c 100644
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/SqlTemplate.txt
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/SqlTemplate.txt
@@ -1,6 +1,6 @@
-- ${genTable.functionName}菜单
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_time, remark)
-VALUES ('${genTable.functionName}', ${parentId}, 1, '${genTable.ModuleName}/${replaceDto.ModelTypeName}', '${genTable.ModuleName}/${replaceDto.ViewsFileName}/index', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', 'icon1', GETDATE(), '${genTable.functionName}');
+VALUES ('${genTable.functionName}', ${parentId}, 1, '${genTable.ModuleName}/${genTable.BusinessName}', '${genTable.ModuleName}/${genTable.BusinessName}', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', 'icon1', GETDATE(), '${genTable.functionName}');
-- 按钮父菜单id
declare @menuId int = @@identity
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt
index 2ea1d4d..8038bd1 100644
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt
@@ -93,7 +93,11 @@ $end
return SUCCESS(_${replaceDto.ModelTypeName}Service.Insert(model, it => new
{
-${InsertColumn}
+$foreach(item in genTable.Columns)
+$if((item.IsInsert))
+ it.$item.CsharpField,
+$end
+${end}
}));
}
@@ -116,7 +120,11 @@ ${InsertColumn}
var response = _${replaceDto.ModelTypeName}Service.Update(w => w.${replaceDto.PKName} == model.${replaceDto.PKName}, it => new ${replaceDto.ModelTypeName}()
{
//Update 字段映射
-${UpdateColumn}
+$foreach(item in genTable.Columns)
+$if((item.IsEdit))
+ $item.CsharpField = model.$item.CsharpField,
+$end
+${end}
});
return SUCCESS(response);
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/IServiceTemplate.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplIService.txt
similarity index 100%
rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/IServiceTemplate.txt
rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplIService.txt
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt
index e43773c..a6e326d 100644
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplModel.txt
@@ -10,7 +10,7 @@ namespace ${options.ModelsNamespace}.Models
/// @author ${replaceDto.Author}
/// @date ${replaceDto.AddTime}
///
- [SugarTable("${replaceDto.TableName}")]
+ [SugarTable("${genTable.TableName}")]
public class ${replaceDto.ModelTypeName}
{
$foreach(item in genTable.Columns)
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/ServiceTemplate.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt
similarity index 100%
rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/ServiceTemplate.txt
rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVue.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVue.txt
new file mode 100644
index 0000000..d03f985
--- /dev/null
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVue.txt
@@ -0,0 +1,265 @@
+
+
+
+
+${vueQueryFormHtml}
+
+ 搜索
+ 重置
+
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+
+
+
+
+
+${VueViewListContent}
+
+
+ 编辑
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+${VueViewFormContent}
+
+
+
+
+
+
+
+
+
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/VueJsTemplate.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueApi.txt
similarity index 81%
rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/VueJsTemplate.txt
rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueApi.txt
index fbbe669..9b44308 100644
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/VueJsTemplate.txt
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueApi.txt
@@ -4,7 +4,7 @@
* ${genTable.functionName}分页查询
* @param {查询条件} data
*/
-export function list${replaceDto.ModelTypeName}(query) {
+export function list${genTable.BusinessName}(query) {
return request({
url: '${genTable.ModuleName}/${replaceDto.ModelTypeName}/list',
method: 'get',
@@ -16,7 +16,7 @@ export function list${replaceDto.ModelTypeName}(query) {
* 新增${genTable.functionName}
* @param data
*/
-export function add${replaceDto.ModelTypeName}(data) {
+export function add${genTable.BusinessName}(data) {
return request({
url: '${genTable.ModuleName}/${replaceDto.ModelTypeName}',
method: 'post',
@@ -28,7 +28,7 @@ export function add${replaceDto.ModelTypeName}(data) {
* 修改${genTable.functionName}
* @param data
*/
-export function update${replaceDto.ModelTypeName}(data) {
+export function update${genTable.BusinessName}(data) {
return request({
url: '${genTable.ModuleName}/${replaceDto.ModelTypeName}',
method: 'PUT',
@@ -40,7 +40,7 @@ export function update${replaceDto.ModelTypeName}(data) {
* 获取${genTable.functionName}详情
* @param {Id}
*/
-export function get${replaceDto.ModelTypeName}(id) {
+export function get${genTable.BusinessName}(id) {
return request({
url: '${genTable.ModuleName}/${replaceDto.ModelTypeName}/' + id,
method: 'get'
@@ -51,7 +51,7 @@ export function get${replaceDto.ModelTypeName}(id) {
* 删除${genTable.functionName}
* @param {主键} pid
*/
-export function del${replaceDto.ModelTypeName}(pid) {
+export function del${genTable.BusinessName}(pid) {
return request({
url: '${genTable.ModuleName}/${replaceDto.ModelTypeName}/' + pid,
method: 'delete'
diff --git a/ZR.CodeGenerator/CodeGenerateTemplate.cs b/ZR.CodeGenerator/CodeGenerateTemplate.cs
index b05facc..6cab4db 100644
--- a/ZR.CodeGenerator/CodeGenerateTemplate.cs
+++ b/ZR.CodeGenerator/CodeGenerateTemplate.cs
@@ -42,39 +42,6 @@ namespace ZR.CodeGenerator
#region vue 模板
- ///
- /// 生成vuejs模板,目前只有上传文件方法
- ///
- ///
- ///
- ///
- public static void TplVueJsMethod(GenTableColumn dbFieldInfo, ReplaceDto replaceDto)
- {
- string columnName = dbFieldInfo.ColumnName;
- var sb = new StringBuilder();
-
- if (dbFieldInfo.HtmlType.Equals(GenConstants.HTML_IMAGE_UPLOAD))
- {
- sb.AppendLine($" //文件上传成功方法");
- sb.AppendLine($" handleUpload{dbFieldInfo.CsharpField}Success(res, file) {{");
- sb.AppendLine($" this.form.{columnName} = res.data;");
- sb.AppendLine($" // this.form.{columnName} = URL.createObjectURL(file.raw);");
- sb.AppendLine($" // this.$refs.upload.clearFiles();");
- sb.AppendLine($" }},");
- replaceDto.VueBeforeUpload = TplJsBeforeUpload();
- replaceDto.VueUploadUrl = TplJsUploadUrl();
- }
- //有下拉框选项初列表查询数据
- if ((dbFieldInfo.HtmlType == GenConstants.HTML_SELECT || dbFieldInfo.HtmlType == GenConstants.HTML_RADIO) && !string.IsNullOrEmpty(dbFieldInfo.DictType))
- {
- sb.AppendLine(@$" // {dbFieldInfo.ColumnComment}字典翻译");
- sb.AppendLine($" {columnName}Format(row, column) {{");
- sb.AppendLine(@$" return this.selectDictLabel(this.{columnName}Options, row.{columnName});");
- sb.AppendLine(@" },");
- }
- replaceDto.VueJsMethod += sb.ToString();
- }
-
///
/// Vue rules
///
@@ -264,15 +231,6 @@ namespace ZR.CodeGenerator
sb.AppendLine(" ");
sb.AppendLine(" ");
}
- //else if (dbFieldInfo.HtmlType.Equals(GenConstants.HTML_RADIO))
- //{
- // vueViewListContent += $" \r\n";
- // vueViewListContent += " \r\n";
- // vueViewListContent += $" ";
- // vueViewListContent += $" {{scope.row.{columnName}===true?'启用':'禁用'}} \r\n";
- // vueViewListContent += " \r\n";
- // vueViewListContent += " \r\n";
- //}
else if (dbFieldInfo.IsList)
{
sb.AppendLine($" ");
@@ -280,36 +238,6 @@ namespace ZR.CodeGenerator
return sb.ToString();
}
- ///
- /// 文件上传前方法判断
- ///
- ///
- public static string TplJsBeforeUpload()
- {
- StringBuilder sb = new StringBuilder();
- sb.AppendLine(@" //文件上传前判断方法");
- sb.AppendLine(@" beforeFileUpload(file) {");
- sb.AppendLine(@" const isJPG = file.type === ""image/jpeg"";");
- sb.AppendLine(@" const isLt2M = file.size / 1024 / 1024 < 2;");
- sb.AppendLine(@" if (!isJPG) {");
- sb.AppendLine(@" this.msgError(""上传图片只能是 JPG 格式!"");");
- sb.AppendLine(@" }");
- sb.AppendLine(@" if (!isLt2M) {");
- sb.AppendLine(@" this.msgError(""上传图片大小不能超过 2MB!"");");
- sb.AppendLine(@" }");
- sb.AppendLine(@" return isJPG && isLt2M;");
- sb.AppendLine(@" },");
-
- return sb.ToString();
- }
- public static string TplJsUploadUrl()
- {
- StringBuilder sb = new StringBuilder();
- sb.AppendLine(@" //文件上传前判断方法");
- sb.AppendLine(@" uploadUrl: process.env.VUE_APP_BASE_API + ""upload/SaveFile"",");
-
- return sb.ToString();
- }
#endregion
public static string QueryExp(string propertyName, string queryType)
diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs
index 94f721a..1c83b66 100644
--- a/ZR.CodeGenerator/CodeGeneratorTool.cs
+++ b/ZR.CodeGenerator/CodeGeneratorTool.cs
@@ -5,7 +5,6 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Text;
using ZR.CodeGenerator.Model;
using ZR.Model.System.Generate;
@@ -51,59 +50,33 @@ namespace ZR.CodeGenerator
string PKType = "int";
ReplaceDto replaceDto = new();
replaceDto.ModelTypeName = dto.GenTable.ClassName;//表名对应C# 实体类名
- replaceDto.TableName = dto.GenTable.TableName;//表名
replaceDto.PermissionPrefix = $"{dto.GenTable.ModuleName}:{dto.GenTable.ClassName.ToLower()}";//权限
replaceDto.Author = dto.GenTable.FunctionAuthor;
- replaceDto.ViewsFileName = FirstLowerCase(replaceDto.ModelTypeName);
- StringBuilder sb1 = new StringBuilder();
- StringBuilder sb2 = new StringBuilder();
+ //StringBuilder sb1 = new StringBuilder();
+ //StringBuilder sb2 = new StringBuilder();
//循环表字段信息
foreach (GenTableColumn dbFieldInfo in dto.GenTable.Columns)
{
string columnName = dbFieldInfo.ColumnName;
- if (dbFieldInfo.IsInsert || dbFieldInfo.IsEdit)
- {
- replaceDto.VueViewFormResetHtml += $" {columnName}: undefined,\r\n";
- }
if (dbFieldInfo.IsPk || dbFieldInfo.IsIncrement)
{
PKName = dbFieldInfo.CsharpField;
PKType = dbFieldInfo.CsharpType;
}
- //编辑字段
- if (dbFieldInfo.IsEdit)
+ if (dbFieldInfo.HtmlType.Equals(GenConstants.HTML_IMAGE_UPLOAD))
{
- replaceDto.UpdateColumn += $" {dbFieldInfo.CsharpField} = model.{dbFieldInfo.CsharpField}, \n";
+ replaceDto.UploadFile = 1;
}
- //新增字段
- if (dbFieldInfo.IsInsert)
- {
- replaceDto.InsertColumn += $" it.{dbFieldInfo.CsharpField}, \n";
- }
- if ((dbFieldInfo.HtmlType == GenConstants.HTML_SELECT || dbFieldInfo.HtmlType == GenConstants.HTML_RADIO) && !string.IsNullOrEmpty(dbFieldInfo.DictType))
- {
- sb1.AppendLine($" // {dbFieldInfo.ColumnComment}选项列表");
- sb1.AppendLine($" {FirstLowerCase(dbFieldInfo.CsharpField)}Options: [],");
-
- sb2.AppendLine($" this.getDicts(\"{dbFieldInfo.DictType}\").then((response) => {{");
- sb2.AppendLine($" this.{FirstLowerCase(dbFieldInfo.CsharpField)}Options = response.data;");
- sb2.AppendLine(" })");
- }
-
CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo, replaceDto);
- CodeGenerateTemplate.TplVueJsMethod(dbFieldInfo, replaceDto);
+
replaceDto.VueViewFormHtml += CodeGenerateTemplate.TplVueFormContent(dbFieldInfo);
replaceDto.VueViewListHtml += CodeGenerateTemplate.TplTableColumn(dbFieldInfo);
replaceDto.VueViewEditFormRuleContent += CodeGenerateTemplate.TplFormRules(dbFieldInfo);
replaceDto.VueQueryFormHtml += CodeGenerateTemplate.TplQueryFormHtml(dbFieldInfo);
}
- replaceDto.VueDataContent = sb1.ToString();
- replaceDto.MountedMethod = sb2.ToString();
- replaceDto.VueJsMethod += replaceDto.VueBeforeUpload;
- replaceDto.VueDataContent += replaceDto.VueUploadUrl;
replaceDto.PKName = PKName;
replaceDto.PKType = PKType;
@@ -112,7 +85,6 @@ namespace ZR.CodeGenerator
GenerateModels(replaceDto, dto);
GenerateInputDto(replaceDto, dto);
GenerateRepository(replaceDto, dto);
- GenerateIService(replaceDto, dto);
GenerateService(replaceDto, dto);
GenerateControllers(replaceDto, dto);
GenerateVueViews(replaceDto, dto);
@@ -171,7 +143,6 @@ namespace ZR.CodeGenerator
private static void GenerateRepository(ReplaceDto replaceDto, GenerateDto generateDto)
{
var fullPath = Path.Combine(generateDto.GenCodePath, _option.RepositoriesNamespace, "Repositories", $"{replaceDto.ModelTypeName}Repository.cs");
-
var tpl = FileHelper.ReadJtTemplate("TplRepository.txt");
var result = tpl.Render();
@@ -181,20 +152,6 @@ namespace ZR.CodeGenerator
#endregion
#region 生成Service
- ///
- /// 生成IService文件
- ///
- ///
- /// 替换实体
- private static void GenerateIService(ReplaceDto replaceDto, GenerateDto generateDto)
- {
- var fullPath = Path.Combine(generateDto.GenCodePath, _option.IServicsNamespace, "Business", "IBusService", $"I{replaceDto.ModelTypeName}Service.cs");
-
- var tpl = FileHelper.ReadJtTemplate("IServiceTemplate.txt");
-
- var result = tpl.Render();
- generateDto.GenCodes.Add(new GenCode(4, "IService", fullPath, result));
- }
///
/// 生成Service文件
@@ -202,11 +159,16 @@ namespace ZR.CodeGenerator
private static void GenerateService(ReplaceDto replaceDto, GenerateDto generateDto)
{
var fullPath = Path.Combine(generateDto.GenCodePath, _option.ServicesNamespace, "Business", $"{replaceDto.ModelTypeName}Service.cs");
-
- var tpl = FileHelper.ReadJtTemplate("ServiceTemplate.txt");
+ var tpl = FileHelper.ReadJtTemplate("TplService.txt");
var result = tpl.Render();
generateDto.GenCodes.Add(new GenCode(4, "Service", fullPath, result));
+
+ var fullPath2 = Path.Combine(generateDto.GenCodePath, _option.IServicsNamespace, "Business", "IBusService", $"I{replaceDto.ModelTypeName}Service.cs");
+ var tpl2 = FileHelper.ReadJtTemplate("TplIService.txt");
+
+ var result2 = tpl2.Render();
+ generateDto.GenCodes.Add(new GenCode(4, "IService", fullPath2, result2));
}
#endregion
@@ -215,45 +177,12 @@ namespace ZR.CodeGenerator
///
/// 生成控制器ApiControllers文件
///
- //private static void GenerateControllers(ReplaceDto replaceDto, GenerateDto generateDto)
- //{
- // var fullPath = Path.Combine(generateDto.GenCodePath, _option.ApiControllerNamespace, "Controllers", generateDto.GenTable.ModuleName, $"{replaceDto.ModelTypeName}Controller.cs");
-
- // var content = FileHelper.ReadTemplate("ControllersTemplate.txt")
- // .Replace("{ApiControllerNamespace}", _option.ApiControllerNamespace)
- // .Replace("{ServicesNamespace}", _option.ServicesNamespace)
- // .Replace("{ModelsNamespace}", _option.ModelsNamespace)
- // .Replace("{FunctionName}", generateDto.GenTable.FunctionName)
- // .Replace("{ModelName}", replaceDto.ModelTypeName)
- // .Replace("{Permission}", replaceDto.Permission)
- // .Replace("{PrimaryKey}", replaceDto.PKName)
- // .Replace("{ModuleName}", generateDto.GenTable.ModuleName)
- // .Replace("{PKCsharpType}", replaceDto.PKType)
- // .Replace("{Author}", replaceDto.Author)
- // .Replace("{DateTime}", replaceDto.AddTime);
-
- // if (replaceDto.UpdateColumn != null)
- // {
- // content = content.Replace("{UpdateColumn}", replaceDto.UpdateColumn.TrimEnd('\n'));
- // }
- // if (replaceDto.InsertColumn != null)
- // {
- // content = content.Replace("{InsertColumn}", replaceDto.InsertColumn.TrimEnd('\n'));
- // }
- // if (replaceDto.QueryCondition != null)
- // {
- // content = content.Replace("{QueryCondition}", replaceDto.QueryCondition);
- // }
- // generateDto.GenCodes.Add(new GenCode(5, "控制器", fullPath, content));
- //}
private static void GenerateControllers(ReplaceDto replaceDto, GenerateDto generateDto)
{
var fullPath = Path.Combine(generateDto.GenCodePath, _option.ApiControllerNamespace, "Controllers", generateDto.GenTable.ModuleName, $"{replaceDto.ModelTypeName}Controller.cs");
-
var tpl = FileHelper.ReadJtTemplate("TplControllers.txt");
+
tpl.Set("QueryCondition", replaceDto.QueryCondition);
- tpl.Set("InsertColumn", replaceDto.InsertColumn.TrimEnd('\n'));
- tpl.Set("UpdateColumn", replaceDto.UpdateColumn.TrimEnd('\n'));
var result = tpl.Render();
generateDto.GenCodes.Add(new GenCode(5, "Controller", fullPath, result));
}
@@ -264,24 +193,17 @@ namespace ZR.CodeGenerator
/// 6、生成Vue页面
private static void GenerateVueViews(ReplaceDto replaceDto, GenerateDto generateDto)
{
- var fullPath = Path.Combine(generateDto.GenCodePath, "ZR.Vue", "src", "views", generateDto.GenTable.ModuleName, replaceDto.ViewsFileName, "index.vue");
+ var fullPath = Path.Combine(generateDto.GenCodePath, "ZR.Vue", "src", "views", generateDto.GenTable.ModuleName, $"{generateDto.GenTable.BusinessName}.vue");
- var content = FileHelper.ReadTemplate("VueTemplate.txt")
- .Replace("{fileClassName}", replaceDto.ViewsFileName)
- .Replace("{VueViewListContent}", replaceDto.VueViewListHtml)//查询 table列
- .Replace("{VueViewFormContent}", replaceDto.VueViewFormHtml)//添加、修改表单
- .Replace("{ModelTypeName}", replaceDto.ModelTypeName)
- .Replace("{Permission}", replaceDto.PermissionPrefix)
- .Replace("{VueViewFormResetHtml}", replaceDto.VueViewFormResetHtml)
- .Replace("{vueJsMethod}", replaceDto.VueJsMethod)
- .Replace("{vueQueryFormHtml}", replaceDto.VueQueryFormHtml)
- .Replace("{VueDataContent}", replaceDto.VueDataContent)
- .Replace("{PrimaryKey}", FirstLowerCase(replaceDto.PKName))
- .Replace("{MountedMethod}", replaceDto.MountedMethod)
- .Replace("{ModuleName}", generateDto.GenTable.ModuleName)
- .Replace("{VueViewEditFormRuleContent}", replaceDto.VueViewEditFormRuleContent);//添加、修改表单验证规则
+ var tpl = FileHelper.ReadJtTemplate("TplVue.txt");
+ tpl.Set("vueQueryFormHtml", replaceDto.VueQueryFormHtml);
+ tpl.Set("VueViewEditFormRuleContent", replaceDto.VueViewEditFormRuleContent);//添加、修改表单验证规则
+ tpl.Set("VueViewFormContent", replaceDto.VueViewFormHtml);//添加、修改表单
+ tpl.Set("VueViewListContent", replaceDto.VueViewListHtml);//查询 table列
+ tpl.Set("lowerBusinessName", FirstLowerCase(generateDto.GenTable.BusinessName));
- generateDto.GenCodes.Add(new GenCode(6, "index.vue", fullPath, content));
+ var result = tpl.Render();
+ generateDto.GenCodes.Add(new GenCode(6, "index.vue", fullPath, result));
}
///
/// 7、生成vue页面api
@@ -291,9 +213,8 @@ namespace ZR.CodeGenerator
///
public static void GenerateVueJs(ReplaceDto replaceDto, GenerateDto generateDto)
{
- string fullPath = Path.Combine(generateDto.GenCodePath, "ZR.Vue", "src", "api", generateDto.GenTable.ModuleName, replaceDto.ViewsFileName + ".js");
-
- var tpl = FileHelper.ReadJtTemplate("VueJsTemplate.txt");
+ string fullPath = Path.Combine(generateDto.GenCodePath, "ZR.Vue", "src", "api", generateDto.GenTable.ModuleName, FirstLowerCase(generateDto.GenTable.BusinessName) + ".js");
+ var tpl = FileHelper.ReadJtTemplate("TplVueApi.txt");
var result = tpl.Render();
generateDto.GenCodes.Add(new GenCode(7, "api.js", fullPath, result));
@@ -301,11 +222,11 @@ namespace ZR.CodeGenerator
#endregion
- #region 8、生成SQL
+ #region 生成SQL
public static void GenerateSql(ReplaceDto replaceDto, GenerateDto generateDto)
{
- string fullPath = Path.Combine(generateDto.GenCodePath, replaceDto.ViewsFileName + ".sql");
+ string fullPath = Path.Combine(generateDto.GenCodePath, generateDto.GenTable.BusinessName + ".sql");
var tempName = "";
switch (generateDto.DbType)
@@ -363,7 +284,7 @@ namespace ZR.CodeGenerator
{
int lastIndex = tableName.LastIndexOf("_");
int nameLength = tableName.Length;
- string businessName = tableName.Substring(nameLength - lastIndex + 1);
+ string businessName = tableName[(nameLength - lastIndex + 1)..];
return businessName.ToLower();
}
@@ -512,7 +433,7 @@ namespace ZR.CodeGenerator
options.TagFlag = '$';
options.OutMode = OutMode.Auto;
//options.DisableeLogogram = true;//禁用简写
- options.Data.Set("${flag}", "$");//特殊标签替换
+ options.Data.Set("refs", "$");//特殊标签替换
options.Data.Set("replaceDto", replaceDto);
options.Data.Set("options", dto.GenOptions);
options.Data.Set("genTable", dto.GenTable);
diff --git a/ZR.CodeGenerator/Model/ReplaceDto.cs b/ZR.CodeGenerator/Model/ReplaceDto.cs
index d3cd383..45aa7c5 100644
--- a/ZR.CodeGenerator/Model/ReplaceDto.cs
+++ b/ZR.CodeGenerator/Model/ReplaceDto.cs
@@ -1,9 +1,4 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using ZR.Model.System.Generate;
namespace ZR.CodeGenerator.Model
{
@@ -25,19 +20,6 @@ namespace ZR.CodeGenerator.Model
/// C#类名
///
public string ModelTypeName { get; set; }
- ///
- /// 数据库表名
- ///
- public string TableName { get; set; }
- ///
- /// 修改列
- ///
- public string UpdateColumn { get; set; }
- ///
- /// 插入列
- ///
- public string InsertColumn { get; set; }
-
//vue、api
public string VueViewFormResetHtml { get; set; }
///
@@ -52,10 +34,7 @@ namespace ZR.CodeGenerator.Model
/// 前端搜索表单html
///
public string VueQueryFormHtml { get; set; }
- ///
- /// vue js方法
- ///
- public string VueJsMethod { get; set; }
+
///
/// vue 添加、编辑表单规则
///
@@ -64,32 +43,12 @@ namespace ZR.CodeGenerator.Model
/// 查询条件
///
public string QueryCondition { get; set; } = "";
- /////
- ///// 查询属性
- /////
- //public string QueryProperty { get; set; }
- ///
- /// vue data内容
- ///
- public string VueDataContent { get; set; }
- ///
- /// vue mounted 方法
- ///
- public string MountedMethod { get; set; }
- ///
- /// views、js文件名
- ///
- public string ViewsFileName { get; set; }
- ///
- /// 上传前js
- ///
- public string VueBeforeUpload { get; set; }
///
/// 上传URL data
///
- public string VueUploadUrl { get; set; }
- //public bool UploadImage{ get; set; }
+ //public string VueUploadUrl { get; set; }
+ public int UploadFile { get; set; } = 0;
public string Author { get; set; }
public string AddTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd");
}
diff --git a/ZR.Common/Tools.cs b/ZR.Common/Tools.cs
index b33d9e6..1215a39 100644
--- a/ZR.Common/Tools.cs
+++ b/ZR.Common/Tools.cs
@@ -14,6 +14,7 @@ namespace ZR.Common
public static long[] SpitLongArrary(string str)
{
if (string.IsNullOrEmpty(str)) { return Array.Empty(); }
+ str = str.TrimStart(',').TrimEnd(',');
string[] strIds = str.Split(',', (char)StringSplitOptions.RemoveEmptyEntries);
long[] infoIdss = Array.ConvertAll(strIds, s => long.Parse(s));
return infoIdss;
diff --git a/ZR.Model/System/Generate/GenTableColumn.cs b/ZR.Model/System/Generate/GenTableColumn.cs
index 2d256b5..689ec4e 100644
--- a/ZR.Model/System/Generate/GenTableColumn.cs
+++ b/ZR.Model/System/Generate/GenTableColumn.cs
@@ -25,6 +25,14 @@ namespace ZR.Model.System.Generate
public string ColumnType { get; set; }
public string CsharpType { get; set; }
public string CsharpField { get; set; }
+ [SugarColumn(IsIgnore = true)]
+ public string CsharpField2
+ {
+ get
+ {
+ return CsharpField.Substring(0, 1).ToLower() + CsharpField[1..];
+ }
+ }
///
/// 是否主键(1是)
///
@@ -61,7 +69,7 @@ namespace ZR.Model.System.Generate
///
/// 字典类型
///
- public string DictType { get; set; }
+ public string DictType { get; set; } = "";
#region 额外字段
[SugarColumn(IsIgnore = true)]
@@ -70,7 +78,7 @@ namespace ZR.Model.System.Generate
get
{
string[] arr = new string[] { "int", "long" };
- return (!IsRequired &&(arr.Any(f => f.Contains(CsharpType))) || typeof(DateTime).Name == CsharpType) ? "?" : "";
+ return (!IsRequired && (arr.Any(f => f.Contains(CsharpType))) || typeof(DateTime).Name == CsharpType) ? "?" : "";
}
}
///