feat:代码生成完善导航查询
This commit is contained in:
parent
d13d7666ab
commit
2b06669128
@ -5,6 +5,9 @@ using System.ComponentModel.DataAnnotations;
|
|||||||
$if(replaceDto.ShowBtnExport)
|
$if(replaceDto.ShowBtnExport)
|
||||||
using MiniExcelLibs.Attributes;
|
using MiniExcelLibs.Attributes;
|
||||||
$end
|
$end
|
||||||
|
$if(null != genTable.SubTableName && "" != genTable.SubTableName)
|
||||||
|
using ${subTableOptions.ModelsNamespace}.${subTableOptions.SubNamespace};
|
||||||
|
$end
|
||||||
|
|
||||||
namespace ${options.DtosNamespace}
|
namespace ${options.DtosNamespace}
|
||||||
{
|
{
|
||||||
@ -54,14 +57,14 @@ $if(genTable.TplCategory == "subNav" && genTable.SubTable != null)
|
|||||||
$if(replaceDto.ShowBtnExport)
|
$if(replaceDto.ShowBtnExport)
|
||||||
[ExcelIgnore]
|
[ExcelIgnore]
|
||||||
$end
|
$end
|
||||||
public ${genTable.SubTable.ClassName} ${genTable.SubTable.ClassName} { get; set; }
|
public ${genTable.SubTable.ClassName} ${genTable.SubTable.ClassName}Nav { get; set; }
|
||||||
$end
|
$end
|
||||||
|
|
||||||
$if(genTable.TplCategory == "subNavMore" && genTable.SubTable != null)
|
$if(genTable.TplCategory == "subNavMore" && genTable.SubTable != null)
|
||||||
$if(replaceDto.ShowBtnExport)
|
$if(replaceDto.ShowBtnExport)
|
||||||
[ExcelIgnore]
|
[ExcelIgnore]
|
||||||
$end
|
$end
|
||||||
public List<${genTable.SubTable.ClassName}> ${genTable.SubTable.ClassName} { get; set; }
|
public List<${genTable.SubTable.ClassName}> ${genTable.SubTable.ClassName}Nav { get; set; }
|
||||||
$end
|
$end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,6 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
$if(genTable.TplCategory.Contains("subNav") && genTable.SubTable != null)
|
||||||
|
using ${subTableOptions.ModelsNamespace}.${subTableOptions.SubNamespace};
|
||||||
|
$end
|
||||||
|
|
||||||
namespace ${options.ModelsNamespace}.${options.SubNamespace}
|
namespace ${options.ModelsNamespace}.${options.SubNamespace}
|
||||||
{
|
{
|
||||||
@ -38,12 +41,12 @@ $if(genTable.TplCategory == "tree")
|
|||||||
public List<${replaceDto.ModelTypeName}> Children { get; set; }
|
public List<${replaceDto.ModelTypeName}> Children { get; set; }
|
||||||
$end
|
$end
|
||||||
$if(genTable.TplCategory == "subNav" && genTable.SubTable != null)
|
$if(genTable.TplCategory == "subNav" && genTable.SubTable != null)
|
||||||
[Navigate(NavigateType.Dynamic, null)] //自定义关系映射
|
[Navigate(NavigateType.OneToOne, nameof(${replaceDto.PKName}))] //自定义关系映射
|
||||||
public ${genTable.SubTable.ClassName} ${genTable.SubTable.ClassName} { get; set; }
|
public ${genTable.SubTable.ClassName} ${genTable.SubTable.ClassName}Nav { get; set; }
|
||||||
$end
|
$end
|
||||||
$if(genTable.TplCategory == "subNavMore" && genTable.SubTable != null)
|
$if(genTable.TplCategory == "subNavMore" && genTable.SubTable != null)
|
||||||
[Navigate(NavigateType.Dynamic, null)] //自定义关系映射
|
[Navigate(NavigateType.OneToMany, nameof(${genTable.SubTable.ClassName}.${genTable.SubTableFkName}), nameof(${replaceDto.PKName}))] //自定义关系映射
|
||||||
public List<${genTable.SubTable.ClassName}> ${genTable.SubTable.ClassName} { get; set; }
|
public List<${genTable.SubTable.ClassName}> ${genTable.SubTable.ClassName}Nav { get; set; }
|
||||||
$end
|
$end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -51,7 +51,7 @@ $end
|
|||||||
$end
|
$end
|
||||||
var response = Queryable()
|
var response = Queryable()
|
||||||
$if(null != genTable.SubTableName && "" != genTable.SubTableName)
|
$if(null != genTable.SubTableName && "" != genTable.SubTableName)
|
||||||
.Includes(it => it.${genTable.SubTable.ClassName}.MappingField(z => z.${genTable.SubTableFkName}, () => it.${replaceDto.PKName}))
|
.Includes(x => x.${genTable.SubTable.ClassName}Nav) //填充子对象
|
||||||
$end
|
$end
|
||||||
$if(genTable.Options.SortField != "" && genTable.Options.SortField != null)
|
$if(genTable.Options.SortField != "" && genTable.Options.SortField != null)
|
||||||
//.OrderBy("${genTable.Options.SortField} ${genTable.Options.SortType}")
|
//.OrderBy("${genTable.Options.SortField} ${genTable.Options.SortType}")
|
||||||
|
|||||||
@ -102,7 +102,6 @@ $end
|
|||||||
<el-table-column type="selection" width="50" align="center"/>
|
<el-table-column type="selection" width="50" align="center"/>
|
||||||
$foreach(column in genTable.Columns)
|
$foreach(column in genTable.Columns)
|
||||||
$set(labelName = "")
|
$set(labelName = "")
|
||||||
$set(checkboxHtml = "")
|
|
||||||
$set(showToolTipHtml = "")
|
$set(showToolTipHtml = "")
|
||||||
$set(columnName = column.CsharpFieldFl)
|
$set(columnName = column.CsharpFieldFl)
|
||||||
$if(column.CsharpType == "string" || column.HtmlType == "datetime")
|
$if(column.CsharpType == "string" || column.HtmlType == "datetime")
|
||||||
|
|||||||
@ -114,19 +114,37 @@ $end
|
|||||||
@sort-change="sortChange"
|
@sort-change="sortChange"
|
||||||
@selection-change="handleSelectionChange">
|
@selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="50" align="center"/>
|
<el-table-column type="selection" width="50" align="center"/>
|
||||||
|
$if(null != genTable.SubTableName && "" != genTable.SubTableName && genTable.TplCategory == "subNav")
|
||||||
|
<el-table-column type="expand">
|
||||||
|
<template #default="props">
|
||||||
|
<el-descriptions border>
|
||||||
|
$foreach(subColumn in genSubTable.Columns)
|
||||||
|
<el-descriptions-item label="${subColumn.ColumnComment}">{{ props.row.$tool.FirstLowerCase(genTable.SubTable.ClassName)Nav.${subColumn.CsharpFieldFl} }}</el-descriptions-item>
|
||||||
|
$end
|
||||||
|
</el-descriptions>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
$end
|
||||||
|
$if(null != genTable.SubTableName && "" != genTable.SubTableName && genTable.TplCategory == "subNavMore")
|
||||||
|
<el-table-column type="expand">
|
||||||
|
<template #default="props">
|
||||||
|
<el-table :data="props.row.$tool.FirstLowerCase(genTable.SubTable.ClassName)Nav">
|
||||||
|
$foreach(subColumn in genSubTable.Columns)
|
||||||
|
$if(subColumn.IsList == true)
|
||||||
|
<el-table-column prop="${subColumn.CsharpFieldFl}" label="${subColumn.ColumnComment}" align="center"/>
|
||||||
|
$end
|
||||||
|
$end
|
||||||
|
</el-table>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
$end
|
||||||
$foreach(column in genTable.Columns)
|
$foreach(column in genTable.Columns)
|
||||||
$set(labelName = "")
|
$set(labelName = column.ColumnComment)
|
||||||
$set(checkboxHtml = "")
|
|
||||||
$set(showToolTipHtml = "")
|
$set(showToolTipHtml = "")
|
||||||
$set(columnName = column.CsharpFieldFl)
|
$set(columnName = column.CsharpFieldFl)
|
||||||
$if(column.CsharpType == "string" || column.HtmlType == "datetime")
|
$if(column.CsharpType == "string" || column.HtmlType == "datetime")
|
||||||
$set(showToolTipHtml = " :show-overflow-tooltip=\"true\"")
|
$set(showToolTipHtml = " :show-overflow-tooltip=\"true\"")
|
||||||
$end
|
$end
|
||||||
$if(column.ColumnComment != "")
|
|
||||||
$set(labelName = column.ColumnComment)
|
|
||||||
$else
|
|
||||||
$set(labelName = column.CsharpFieldFl)
|
|
||||||
$end
|
|
||||||
$if(column.IsList == true)
|
$if(column.IsList == true)
|
||||||
$if(column.HtmlType == "customInput" && column.IsPk == false)
|
$if(column.HtmlType == "customInput" && column.IsPk == false)
|
||||||
<el-table-column prop="${columnName}" label="${labelName}" width="90" sortable align="center" v-if="columns.showColumn('${columnName}')">
|
<el-table-column prop="${columnName}" label="${labelName}" width="90" sortable align="center" v-if="columns.showColumn('${columnName}')">
|
||||||
@ -192,14 +210,9 @@ $end
|
|||||||
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
|
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
$foreach(column in genTable.Columns)
|
$foreach(column in genTable.Columns)
|
||||||
$set(labelName = "")
|
|
||||||
$set(columnName = column.CsharpFieldFl)
|
$set(columnName = column.CsharpFieldFl)
|
||||||
$set(value = "item.dictValue")
|
$set(value = "item.dictValue")
|
||||||
$if(column.ColumnComment != "")
|
|
||||||
$set(labelName = column.ColumnComment)
|
$set(labelName = column.ColumnComment)
|
||||||
$else
|
|
||||||
$set(labelName = column.CsharpFieldFl)
|
|
||||||
$end
|
|
||||||
$if(column.CsharpType == "int" || column.CsharpType == "long")
|
$if(column.CsharpType == "int" || column.CsharpType == "long")
|
||||||
$set(value = "parseInt(item.dictValue)")
|
$set(value = "parseInt(item.dictValue)")
|
||||||
$end
|
$end
|
||||||
|
|||||||
@ -32,7 +32,11 @@ namespace ZR.CodeGenerator
|
|||||||
{
|
{
|
||||||
dto.VueParentPath = vuePath;
|
dto.VueParentPath = vuePath;
|
||||||
}
|
}
|
||||||
dto.GenOptions = GenerateOption(dto.GenTable); ;
|
dto.GenOptions = GenerateOption(dto.GenTable);
|
||||||
|
if (dto.GenTable.SubTable != null)
|
||||||
|
{
|
||||||
|
dto.SubTableOptions = GenerateOption(dto.GenTable.SubTable);
|
||||||
|
}
|
||||||
|
|
||||||
ReplaceDto replaceDto = new()
|
ReplaceDto replaceDto = new()
|
||||||
{
|
{
|
||||||
@ -45,33 +49,15 @@ namespace ZR.CodeGenerator
|
|||||||
ShowBtnExport = dto.GenTable.Options.CheckedBtn.Any(f => f == 4),
|
ShowBtnExport = dto.GenTable.Options.CheckedBtn.Any(f => f == 4),
|
||||||
ShowBtnView = dto.GenTable.Options.CheckedBtn.Any(f => f == 5),
|
ShowBtnView = dto.GenTable.Options.CheckedBtn.Any(f => f == 5),
|
||||||
ShowBtnTruncate = dto.GenTable.Options.CheckedBtn.Any(f => f == 6),
|
ShowBtnTruncate = dto.GenTable.Options.CheckedBtn.Any(f => f == 6),
|
||||||
PKName = "Id",
|
|
||||||
PKType = "int"
|
|
||||||
};
|
};
|
||||||
|
var columns = dto.GenTable.Columns;
|
||||||
|
|
||||||
//循环表字段信息
|
replaceDto.PKName = columns.Find(f => f.IsPk || f.IsIncrement).CsharpField ?? "Id";
|
||||||
foreach (GenTableColumn dbFieldInfo in dto.GenTable.Columns.OrderBy(x => x.Sort))
|
replaceDto.PKType = columns.Find(f => f.IsPk || f.IsIncrement).CsharpType ?? "int";
|
||||||
{
|
|
||||||
if (dbFieldInfo.IsPk || dbFieldInfo.IsIncrement)
|
|
||||||
{
|
|
||||||
replaceDto.PKName = dbFieldInfo.CsharpField;
|
|
||||||
replaceDto.PKType = dbFieldInfo.CsharpType;
|
|
||||||
}
|
|
||||||
if (dbFieldInfo.HtmlType.Equals(GenConstants.HTML_IMAGE_UPLOAD) || dbFieldInfo.HtmlType.Equals(GenConstants.HTML_FILE_UPLOAD))
|
|
||||||
{
|
|
||||||
replaceDto.UploadFile = 1;
|
|
||||||
}
|
|
||||||
if (dbFieldInfo.HtmlType.Equals(GenConstants.HTML_SELECT_MULTI))
|
|
||||||
{
|
|
||||||
replaceDto.SelectMulti = 1;
|
|
||||||
}
|
|
||||||
if (dbFieldInfo.HtmlType.Equals(GenConstants.HTML_EDITOR))
|
|
||||||
{
|
|
||||||
replaceDto.ShowEditor = 1;
|
|
||||||
}
|
|
||||||
dbFieldInfo.CsharpFieldFl = dbFieldInfo.CsharpField.FirstLowerCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
replaceDto.UploadFile = columns.Any(f => f.HtmlType.Equals(GenConstants.HTML_IMAGE_UPLOAD) || f.HtmlType.Equals(GenConstants.HTML_FILE_UPLOAD)) ? 1 : 0;
|
||||||
|
replaceDto.SelectMulti = columns.Any(f => f.HtmlType.Equals(GenConstants.HTML_SELECT_MULTI)) ? 1 : 0;
|
||||||
|
replaceDto.ShowEditor = columns.Any(f => f.HtmlType.Equals(GenConstants.HTML_EDITOR)) ? 1 : 0;
|
||||||
replaceDto.FistLowerPk = replaceDto.PKName.FirstLowerCase();
|
replaceDto.FistLowerPk = replaceDto.PKName.FirstLowerCase();
|
||||||
InitJntTemplate(dto, replaceDto);
|
InitJntTemplate(dto, replaceDto);
|
||||||
|
|
||||||
@ -188,27 +174,12 @@ namespace ZR.CodeGenerator
|
|||||||
/// 生成Vue页面
|
/// 生成Vue页面
|
||||||
private static void GenerateVueViews(ReplaceDto replaceDto, GenerateDto generateDto)
|
private static void GenerateVueViews(ReplaceDto replaceDto, GenerateDto generateDto)
|
||||||
{
|
{
|
||||||
string fileName = string.Empty;
|
string fileName = generateDto.GenTable.TplCategory switch
|
||||||
switch (generateDto.GenTable.TplCategory)
|
|
||||||
{
|
{
|
||||||
case "tree":
|
"tree" => "TplTreeVue.txt",
|
||||||
fileName = "TplTreeVue.txt";
|
"select" => "TplVueSelect.txt",
|
||||||
break;
|
_ => "TplVue.txt",
|
||||||
case "crud":
|
};
|
||||||
fileName = "TplVue.txt";
|
|
||||||
break;
|
|
||||||
case "subNav":
|
|
||||||
fileName = "TplVue.txt";
|
|
||||||
break;
|
|
||||||
case "subNavMore":
|
|
||||||
fileName = "TplVue.txt";
|
|
||||||
break;
|
|
||||||
case "select":
|
|
||||||
fileName = "TplVueSelect.txt";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
var tpl = JnHelper.ReadTemplate(CodeTemplateDir, fileName);
|
var tpl = JnHelper.ReadTemplate(CodeTemplateDir, fileName);
|
||||||
tpl.Set("vueQueryFormHtml", replaceDto.VueQueryFormHtml);
|
tpl.Set("vueQueryFormHtml", replaceDto.VueQueryFormHtml);
|
||||||
tpl.Set("VueViewFormContent", replaceDto.VueViewFormHtml);//添加、修改表单
|
tpl.Set("VueViewFormContent", replaceDto.VueViewFormHtml);//添加、修改表单
|
||||||
@ -230,10 +201,6 @@ namespace ZR.CodeGenerator
|
|||||||
string fileName = generateDto.GenTable.TplCategory switch
|
string fileName = generateDto.GenTable.TplCategory switch
|
||||||
{
|
{
|
||||||
"tree" => "TreeVue.txt",
|
"tree" => "TreeVue.txt",
|
||||||
"crud" => "Vue.txt",
|
|
||||||
//case "select":
|
|
||||||
// fileName = "TplVueSelect.txt";
|
|
||||||
// break;
|
|
||||||
_ => "Vue.txt",
|
_ => "Vue.txt",
|
||||||
};
|
};
|
||||||
fileName = Path.Combine("v3", fileName);
|
fileName = Path.Combine("v3", fileName);
|
||||||
@ -557,7 +524,9 @@ namespace ZR.CodeGenerator
|
|||||||
options.Data.Set("nextTick", "$");
|
options.Data.Set("nextTick", "$");
|
||||||
options.Data.Set("replaceDto", replaceDto);
|
options.Data.Set("replaceDto", replaceDto);
|
||||||
options.Data.Set("options", dto.GenOptions);
|
options.Data.Set("options", dto.GenOptions);
|
||||||
|
options.Data.Set("subTableOptions", dto.SubTableOptions);
|
||||||
options.Data.Set("genTable", dto.GenTable);
|
options.Data.Set("genTable", dto.GenTable);
|
||||||
|
options.Data.Set("genSubTable", dto.GenTable?.SubTable);
|
||||||
options.Data.Set("showCustomInput", showCustomInput);
|
options.Data.Set("showCustomInput", showCustomInput);
|
||||||
options.Data.Set("tool", new CodeGeneratorTool());
|
options.Data.Set("tool", new CodeGeneratorTool());
|
||||||
options.Data.Set("codeTool", new CodeGenerateTemplate());
|
options.Data.Set("codeTool", new CodeGenerateTemplate());
|
||||||
|
|||||||
@ -23,7 +23,14 @@ namespace ZR.CodeGenerator.Model
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int[] CheckedBtn { get; set; } = System.Array.Empty<int>();
|
public int[] CheckedBtn { get; set; } = System.Array.Empty<int>();
|
||||||
public GenTable GenTable { get; set; }
|
public GenTable GenTable { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 主表属性
|
||||||
|
/// </summary>
|
||||||
public CodeGenerateOption GenOptions { get; set; }
|
public CodeGenerateOption GenOptions { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 子表属性
|
||||||
|
/// </summary>
|
||||||
|
public CodeGenerateOption SubTableOptions { get; set; }
|
||||||
#region 存储路径
|
#region 存储路径
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 代码模板预览存储路径存放
|
/// 代码模板预览存储路径存放
|
||||||
|
|||||||
@ -25,7 +25,18 @@ namespace ZR.Model.System.Generate
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 列说明
|
/// 列说明
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ColumnComment { get; set; } = string.Empty;
|
private string columnComment;
|
||||||
|
public string ColumnComment
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return string.IsNullOrEmpty(columnComment) ? CsharpField : columnComment;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
columnComment = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 数据库列类型
|
/// 数据库列类型
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -121,7 +132,13 @@ namespace ZR.Model.System.Generate
|
|||||||
/// C# 字段名 首字母小写,用于前端
|
/// C# 字段名 首字母小写,用于前端
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(IsIgnore = true)]
|
[SugarColumn(IsIgnore = true)]
|
||||||
public string CsharpFieldFl { get; set; }
|
public string CsharpFieldFl
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return CsharpField[..1].ToLower() + CsharpField[1..];
|
||||||
|
}
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 前端 只读字段
|
/// 前端 只读字段
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user