优化代码生成

This commit is contained in:
izory 2021-09-24 22:16:01 +08:00
parent 3fc8e05178
commit aad6b97014
5 changed files with 33 additions and 25 deletions

View File

@ -53,12 +53,12 @@
</template>
<script>
import {
list{ModelTypeName},
add{ModelTypeName},
del{ModelTypeName},
update{ModelTypeName},
get{ModelTypeName}
} from '@/api/{fileClassName}.js'
list{ModelTypeName},
add{ModelTypeName},
del{ModelTypeName},
update{ModelTypeName},
get{ModelTypeName}
} from '@/api/{fileClassName}.js';
export default {
name: '{ModelTypeName}',

View File

@ -29,12 +29,12 @@ namespace ZR.CodeGenerator
sb.AppendLine($" }},");
}
//有下拉框选项初列表查询数据
if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT && !string.IsNullOrEmpty(dbFieldInfo.DictType))
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.Append(@" },");
sb.AppendLine(@" },");
}
return sb.ToString();
@ -74,7 +74,7 @@ namespace ZR.CodeGenerator
public static string GetModelRequired(GenTableColumn dbFieldInfo)
{
string str = "";
if (!dbFieldInfo.IsRequired && (dbFieldInfo.CsharpType == "int" || dbFieldInfo.CsharpType == "long" || dbFieldInfo.CsharpType == "DateTime"))
if (!dbFieldInfo.IsRequired && (CodeGeneratorTool.IsNumber(dbFieldInfo.ColumnType) || dbFieldInfo.CsharpType == "DateTime"))
{
str = "?";
}
@ -104,7 +104,7 @@ namespace ZR.CodeGenerator
public static string GetQueryDtoProperty(GenTableColumn dbFieldInfo)
{
string QueryDtoContent = "";
if (dbFieldInfo.IsQuery && !GenConstants.inputDtoNoField.Any(f => f.Replace("_", "").ToLower().Contains(dbFieldInfo.CsharpField.ToLower().Replace("_", ""))))
if (dbFieldInfo.IsQuery && !GenConstants.inputDtoNoField.Any(f => f.ToLower().Contains(dbFieldInfo.CsharpField.ToLower())))
{
QueryDtoContent += $" public {dbFieldInfo.CsharpType} {dbFieldInfo.CsharpField} {{ get; set; }}\r\n";
}
@ -120,7 +120,7 @@ namespace ZR.CodeGenerator
string labelDisabled = dbFieldInfo.IsPk ? ":disabled=\"true\"" : "";
string placeHolder = dbFieldInfo.IsIncrement ? "" : $"请输入{labelName}";
StringBuilder sb = new StringBuilder();
if (GenConstants.inputDtoNoField.Any(f => f.Replace("_", "").ToLower().Contains(dbFieldInfo.CsharpField.ToLower().Replace("_", ""))))
if (GenConstants.inputDtoNoField.Any(f => f.ToLower().Contains(dbFieldInfo.CsharpField.ToLower())))
{
return sb.ToString();
}

View File

@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using ZR.CodeGenerator.Model;
using ZR.Model.System.Generate;
@ -57,6 +58,9 @@ namespace ZR.CodeGenerator
replaceDto.ViewsFileName = FirstLowerCase(replaceDto.ModelTypeName);
replaceDto.Author = tableInfo.FunctionAuthor;
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
//循环表字段信息
foreach (GenTableColumn dbFieldInfo in listField)
{
@ -86,14 +90,15 @@ namespace ZR.CodeGenerator
//{
// replaceDto.Querycondition += $"predicate = predicate.And(m => m.{dbFieldInfo.CsharpField}.Contains(parm.Name));";
//}
if ((dbFieldInfo.HtmlType == GenConstants.HTML_SELECT || dbFieldInfo.HtmlType == GenConstants.HTML_RADIO) && !string.IsNullOrEmpty(dbFieldInfo.DictType))
{
replaceDto.VueDataContent += $" // {dbFieldInfo.ColumnComment}选项列表\n";
replaceDto.VueDataContent += $" {FirstLowerCase(dbFieldInfo.CsharpField)}Options: [],\n";
sb1.AppendLine($" // {dbFieldInfo.ColumnComment}选项列表");
sb1.AppendLine($" {FirstLowerCase(dbFieldInfo.CsharpField)}Options: [],");
replaceDto.MountedMethod += $" this.getDicts(\"{dbFieldInfo.DictType}\").then((response) => {{\n";
replaceDto.MountedMethod += $" this.{FirstLowerCase(dbFieldInfo.CsharpField)}Options = response.data;\n";
replaceDto.MountedMethod += " })\n";
sb2.AppendLine($" this.getDicts(\"{dbFieldInfo.DictType}\").then((response) => {{");
sb2.AppendLine($" this.{FirstLowerCase(dbFieldInfo.CsharpField)}Options = response.data;");
sb2.AppendLine(" })");
}
replaceDto.QueryProperty += CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo);
@ -105,6 +110,9 @@ namespace ZR.CodeGenerator
replaceDto.InputDtoProperty += CodeGenerateTemplate.GetDtoProperty(dbFieldInfo);
replaceDto.VueQueryFormHtml += CodeGenerateTemplate.GetQueryFormHtml(dbFieldInfo);
}
replaceDto.VueDataContent = sb1.ToString();
replaceDto.MountedMethod = sb2.ToString();
replaceDto.PKName = PKName;
replaceDto.PKType = PKType;

View File

@ -16,7 +16,7 @@ namespace ZR.CodeGenerator
/// <summary>
/// InputDto输入实体是不包含字段
/// </summary>
public static readonly string[] inputDtoNoField = new string[] { "createTime", "updateTime", "addtime" };
public static readonly string[] inputDtoNoField = new string[] { "createTime", "updateTime", "addtime", "create_time", "update_time" };
/// <summary>
/// 图片字段
/// </summary>

View File

@ -29,45 +29,45 @@
</member>
<member name="T:ZR.Admin.WebApi.Controllers.GendemoController">
<summary>
代码生成测试Controller
代码生成演示Controller
@author ruirui
@author zhaorui
@date 2021-09-24
</summary>
</member>
<member name="F:ZR.Admin.WebApi.Controllers.GendemoController._GendemoService">
<summary>
代码生成测试接口
代码生成演示接口
</summary>
</member>
<member name="M:ZR.Admin.WebApi.Controllers.GendemoController.QueryGendemo(ZR.Model.Dto.GendemoQueryDto)">
<summary>
查询代码生成测试列表
查询代码生成演示列表
</summary>
<returns></returns>
</member>
<member name="M:ZR.Admin.WebApi.Controllers.GendemoController.GetGendemo(System.Int32)">
<summary>
查询代码生成测试详情
查询代码生成演示详情
</summary>
<param name="Id"></param>
<returns></returns>
</member>
<member name="M:ZR.Admin.WebApi.Controllers.GendemoController.AddGendemo(ZR.Model.Dto.GendemoDto)">
<summary>
添加代码生成测试
添加代码生成演示
</summary>
<returns></returns>
</member>
<member name="M:ZR.Admin.WebApi.Controllers.GendemoController.UpdateGendemo(ZR.Model.Dto.GendemoDto)">
<summary>
更新代码生成测试
更新代码生成演示
</summary>
<returns></returns>
</member>
<member name="M:ZR.Admin.WebApi.Controllers.GendemoController.DeleteGendemo(System.String)">
<summary>
删除代码生成测试
删除代码生成演示
</summary>
<returns></returns>
</member>