feat:代码生成模板新增下拉多选查询

This commit is contained in:
不做码农 2022-10-17 17:59:52 +08:00
parent f5c0588f42
commit cfc8eee2a3
5 changed files with 19 additions and 7 deletions

View File

@ -37,7 +37,7 @@ $if(column.HtmlType == "datetime")
:shortcuts="dateOptions"> :shortcuts="dateOptions">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
$elseif(column.HtmlType == "select" || column.HtmlType == "radio") $elseif(column.HtmlType == "select" || column.HtmlType == "radio" || column.HtmlType == "selectMulti")
<el-form-item label="${labelName}" prop="${columnName}"> <el-form-item label="${labelName}" prop="${columnName}">
<el-select clearable $if(column.HtmlType == "selectMulti")multiple$end v-model="queryParams.${columnName}" placeholder="请选择${labelName}"> <el-select clearable $if(column.HtmlType == "selectMulti")multiple$end v-model="queryParams.${columnName}" placeholder="请选择${labelName}">
<el-option v-for="item in $if(column.DictType != "") options.${column.DictType} $else options.${column.CsharpFieldFl}Options$end" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"> <el-option v-for="item in $if(column.DictType != "") options.${column.DictType} $else options.${column.CsharpFieldFl}Options$end" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
@ -140,7 +140,7 @@ $elseif(column.HtmlType == "imageUpload")
</el-image> </el-image>
</template> </template>
</el-table-column> </el-table-column>
$elseif(column.HtmlType == "checkbox" || column.HtmlType == "select" || column.HtmlType == "radio") $elseif(column.HtmlType == "checkbox" || column.HtmlType == "select" || column.HtmlType == "radio" || column.HtmlType == "selectMulti")
<el-table-column prop="${columnName}" label="${labelName}" align="center"${column.sortStr} v-if="columns.showColumn('${columnName}')"> <el-table-column prop="${columnName}" label="${labelName}" align="center"${column.sortStr} v-if="columns.showColumn('${columnName}')">
<template #default="scope"> <template #default="scope">
$if(column.HtmlType == "checkbox") $if(column.HtmlType == "checkbox")
@ -243,7 +243,7 @@ $elseif(column.HtmlType == "editor")
<editor v-model="form.${columnName}" :min-height="200" /> <editor v-model="form.${columnName}" :min-height="200" />
</el-form-item> </el-form-item>
</el-col> </el-col>
$elseif(column.HtmlType == "select") $elseif(column.HtmlType == "select" || column.HtmlType == "selectMulti")
<el-col :lg="${options.ColNum}"> <el-col :lg="${options.ColNum}">
<el-form-item label="${labelName}" prop="${columnName}"> <el-form-item label="${labelName}" prop="${columnName}">
<el-select v-model="form.${columnName}" placeholder="请选择${labelName}"${column.DisabledStr}> <el-select v-model="form.${columnName}" placeholder="请选择${labelName}"${column.DisabledStr}>
@ -361,7 +361,7 @@ $end
$set(index = 0) $set(index = 0)
var dictParams = [ var dictParams = [
$foreach(item in genTable.Columns) $foreach(item in genTable.Columns)
$if((item.HtmlType == "radio" || item.HtmlType == "select" || item.HtmlType == "checkbox") && item.DictType != "") $if((item.HtmlType == "radio" || item.HtmlType == "select" || item.HtmlType == "selectMulti" || item.HtmlType == "checkbox") && item.DictType != "")
{ dictType: "${item.DictType}" }, { dictType: "${item.DictType}" },
$set(index = index + 1) $set(index = index + 1)
$end $end

View File

@ -75,6 +75,10 @@ namespace ZR.CodeGenerator
{ {
replaceDto.UploadFile = 1; replaceDto.UploadFile = 1;
} }
if (dbFieldInfo.HtmlType.Equals(GenConstants.HTML_SELECT_MULTI))
{
replaceDto.SelectMulti = 1;
}
dbFieldInfo.CsharpFieldFl = dbFieldInfo.CsharpField.FirstLowerCase(); dbFieldInfo.CsharpFieldFl = dbFieldInfo.CsharpField.FirstLowerCase();
} }
@ -238,6 +242,7 @@ namespace ZR.CodeGenerator
var fullPath = Path.Combine(generateDto.VueParentPath, "src", "views", generateDto.GenTable.ModuleName.FirstLowerCase(), $"{generateDto.GenTable.BusinessName.FirstUpperCase()}.vue"); var fullPath = Path.Combine(generateDto.VueParentPath, "src", "views", generateDto.GenTable.ModuleName.FirstLowerCase(), $"{generateDto.GenTable.BusinessName.FirstUpperCase()}.vue");
generateDto.GenCodes.Add(new GenCode(16, "index.vue", fullPath, result)); generateDto.GenCodes.Add(new GenCode(16, "index.vue", fullPath, result));
} }
/// <summary> /// <summary>
/// 生成vue页面api /// 生成vue页面api
/// </summary> /// </summary>
@ -261,7 +266,6 @@ namespace ZR.CodeGenerator
string fullPath = Path.Combine(generateDto.VueParentPath, "src", "api", generateDto.GenTable.ModuleName.FirstLowerCase(), fileName); string fullPath = Path.Combine(generateDto.VueParentPath, "src", "api", generateDto.GenTable.ModuleName.FirstLowerCase(), fileName);
generateDto.GenCodes.Add(new GenCode(7, "api.js", fullPath, result)); generateDto.GenCodes.Add(new GenCode(7, "api.js", fullPath, result));
} }
/// <summary> /// <summary>
@ -534,7 +538,7 @@ namespace ZR.CodeGenerator
/// <param name="replaceDto"></param> /// <param name="replaceDto"></param>
private static void InitJntTemplate(GenerateDto dto, ReplaceDto replaceDto) 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(); 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)); bool showCustomInput = dto.GenTable.Columns.Any(f => f.HtmlType.Equals(GenConstants.HTML_CUSTOM_INPUT, StringComparison.OrdinalIgnoreCase));
//jnt模板引擎全局变量 //jnt模板引擎全局变量

View File

@ -91,6 +91,10 @@ namespace ZR.CodeGenerator
/** 下拉框 */ /** 下拉框 */
public static string HTML_SELECT = "select"; public static string HTML_SELECT = "select";
/// <summary>
/// 下拉多选
/// </summary>
public static string HTML_SELECT_MULTI = "selectMulti";
/** 单选框 */ /** 单选框 */
public static string HTML_RADIO = "radio"; public static string HTML_RADIO = "radio";

View File

@ -54,6 +54,10 @@ namespace ZR.CodeGenerator.Model
/// </summary> /// </summary>
//public string VueUploadUrl { get; set; } //public string VueUploadUrl { get; set; }
public int UploadFile { get; set; } = 0; public int UploadFile { get; set; } = 0;
/// <summary>
/// 是否有下拉多选框
/// </summary>
public int SelectMulti { get; set; }
public string Author { get; set; } public string Author { get; set; }
public string AddTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd"); public string AddTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd");
} }

View File

@ -99,7 +99,7 @@ namespace ZR.Model.System.Generate
get get
{ {
string[] arr = new string[] { "int", "long" }; string[] arr = new string[] { "int", "long" };
return (!IsRequired && (arr.Any(f => f.Contains(CsharpType))) || typeof(DateTime).Name == CsharpType) ? "?" : ""; return (!IsRequired && HtmlType != "selectMulti" && (arr.Any(f => f.Contains(CsharpType))) || typeof(DateTime).Name == CsharpType) ? "?" : "";
} }
} }
/// <summary> /// <summary>