优化代码生成模板

This commit is contained in:
不做码农
2022-04-07 13:30:47 +08:00
parent 5b376614d0
commit a0cf47c099
7 changed files with 148 additions and 70 deletions

View File

@@ -27,9 +27,8 @@ namespace ZR.CodeGenerator
if (GenConstants.inputDtoNoField.Any(f => f.Contains(dbFieldInfo.CsharpField, StringComparison.OrdinalIgnoreCase)))
{
return sb.ToString();
}
if (!dbFieldInfo.IsInsert && !dbFieldInfo.IsEdit)
else if (!dbFieldInfo.IsInsert && !dbFieldInfo.IsEdit)
{
sb.AppendLine(" <el-col :lg=\"12\" v-if=\"opertype == 2\">");
sb.AppendLine($" <el-form-item label=\"{labelName}\">{{{{form.{columnName}}}}}</el-form-item>");
@@ -200,36 +199,5 @@ namespace ZR.CodeGenerator
return $"it => it.{ propertyName} == parm.{propertyName})";
}
/// <summary>
/// 格式化字典数据显示到table
/// </summary>
/// <param name="htmlType"></param>
/// <param name="columnName"></param>
/// <returns></returns>
public static string GetFormatter(string htmlType, string columnName)
{
if (htmlType.Equals(GenConstants.HTML_CHECKBOX) ||
htmlType.Equals(GenConstants.HTML_SELECT) ||
htmlType.Equals(GenConstants.HTML_RADIO))
{
return $" :formatter=\"{columnName}Format\"";
}
return "";
}
/// <summary>
/// 超出隐藏
/// </summary>
/// <param name="column"></param>
/// <returns></returns>
public static string ShowToolTip(GenTableColumn column)
{
if (column.CsharpType.Equals("string") ||
column.HtmlType.Equals(GenConstants.HTML_DATETIME))
{
return $" :show-overflow-tooltip=\"true\"";
}
return "";
}
}
}

View File

@@ -65,11 +65,6 @@ namespace ZR.CodeGenerator
replaceDto.UploadFile = 1;
}
dbFieldInfo.CsharpFieldFl = dbFieldInfo.CsharpField.FirstLowerCase();
//CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo, replaceDto);
replaceDto.VueViewFormHtml += CodeGenerateTemplate.TplVueFormContent(dbFieldInfo, dto.GenTable);
//replaceDto.VueViewListHtml += CodeGenerateTemplate.TplTableColumn(dbFieldInfo, dto.GenTable);
//replaceDto.VueQueryFormHtml += CodeGenerateTemplate.TplQueryFormHtml(dbFieldInfo);
}
replaceDto.PKName = PKName;
@@ -78,9 +73,9 @@ namespace ZR.CodeGenerator
InitJntTemplate(dto, replaceDto);
replaceDto.VueViewListHtml = GenerateVueTableList();
replaceDto.VueQueryFormHtml = GenerateVueQueryForm();
replaceDto.VueViewFormHtml = GenerateCurdForm();
GenerateModels(replaceDto, dto);
GenerateInputDto(replaceDto, dto);
GenerateRepository(replaceDto, dto);
GenerateService(replaceDto, dto);
GenerateControllers(replaceDto, dto);
@@ -107,25 +102,13 @@ namespace ZR.CodeGenerator
private static void GenerateModels(ReplaceDto replaceDto, GenerateDto generateDto)
{
var tpl = FileHelper.ReadJtTemplate("TplModel.txt");
var result = tpl.Render();
var tplDto = FileHelper.ReadJtTemplate("TplDto.txt");
string fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, _option.ModelsNamespace, "Models", _option.SubNamespace, replaceDto.ModelTypeName + ".cs");
generateDto.GenCodes.Add(new GenCode(1, "Model.cs", fullPath, result));
}
string fullPathDto = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, _option.ModelsNamespace, "Dto", _option.SubNamespace, $"{replaceDto.ModelTypeName}Dto.cs");
/// <summary>
/// 生成表单提交输入参数Dto
/// </summary>
/// <param name="generateDto"></param>
/// <param name="replaceDto">替换实体</param>
private static void GenerateInputDto(ReplaceDto replaceDto, GenerateDto generateDto)
{
var tpl = FileHelper.ReadJtTemplate("TplDto.txt");
var result = tpl.Render();
var fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, _option.ModelsNamespace, "Dto", _option.SubNamespace, $"{replaceDto.ModelTypeName}Dto.cs");
generateDto.GenCodes.Add(new GenCode(2, "Dto.cs", fullPath, result));
generateDto.GenCodes.Add(new GenCode(1, "Model.cs", fullPath, tpl.Render()));
generateDto.GenCodes.Add(new GenCode(2, "Dto.cs", fullPathDto, tplDto.Render()));
}
/// <summary>
@@ -193,7 +176,6 @@ namespace ZR.CodeGenerator
}
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列
@@ -227,15 +209,11 @@ namespace ZR.CodeGenerator
}
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));
generateDto.GenCodes.Add(new GenCode(16, "vue3.vue", fullPath, result));
}
/// <summary>
/// 生成vue页面api
@@ -297,6 +275,17 @@ namespace ZR.CodeGenerator
{
var tpl = FileHelper.ReadJtTemplate("TableList.txt");
var result = tpl.Render();
//Console.WriteLine(result);
return result;
}
/// <summary>
/// 生成vue表单
/// </summary>
/// <returns></returns>
public static string GenerateCurdForm()
{
var tpl = FileHelper.ReadJtTemplate("CurdForm.txt");
var result = tpl.Render();
Console.WriteLine(result);
return result;
}
@@ -445,7 +434,7 @@ namespace ZR.CodeGenerator
IsIncrement = column.IsIdentity,
Create_by = genTable.Create_by,
Create_time = DateTime.Now,
IsInsert = !column.IsIdentity,//非自增字段都需要插入
IsInsert = !column.IsIdentity || GenConstants.inputDtoNoField.Any(f => f.Contains(column.DbColumnName, StringComparison.OrdinalIgnoreCase)),//非自增字段都需要插入
IsEdit = true,
IsQuery = false,
HtmlType = GenConstants.HTML_INPUT
@@ -520,7 +509,7 @@ namespace ZR.CodeGenerator
options.Data.Set("replaceDto", replaceDto);
options.Data.Set("options", dto.GenOptions);
options.Data.Set("genTable", dto.GenTable);
options.Data.Set("btns", dto.CheckedBtn);
//options.Data.Set("btns", dto.CheckedBtn);
options.Data.Set("showCustomInput", showCustomInput);
options.Data.Set("tool", new CodeGeneratorTool());
options.Data.Set("codeTool", new CodeGenerateTemplate());
@@ -528,5 +517,21 @@ namespace ZR.CodeGenerator
//...其它数据
});
}
#region
/// <summary>
/// 模板用
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool CheckInputDtoNoField(string str)
{
return GenConstants.inputDtoNoField.Any(f => f.Contains(str, StringComparison.OrdinalIgnoreCase));
}
public static bool CheckTree(GenTable genTable, string csharpField)
{
return (genTable.TplCategory.Equals("tree", StringComparison.OrdinalIgnoreCase) && genTable.TreeParentCode != null && csharpField.Equals(genTable.TreeParentCode));
}
#endregion
}
}

View File

@@ -39,10 +39,6 @@ namespace ZR.CodeGenerator.Model
/// </summary>
public string VueQueryFormHtml { get; set; }
/// <summary>
/// vue 添加、编辑表单规则
/// </summary>
public string VueViewEditFormRuleContent { get; set; }
/// <summary>
/// 查询条件
/// </summary>