优化代码生成模板

This commit is contained in:
不做码农 2021-11-28 15:20:00 +08:00
parent 8dc832cdbd
commit 9292396bb2
6 changed files with 63 additions and 22 deletions

View File

@ -6,7 +6,6 @@ using Microsoft.Extensions.Options;
using System;
using System.IO;
using ZR.Admin.WebApi.Filters;
using ZR.Common;
namespace ZR.Admin.WebApi.Controllers
{

View File

@ -181,7 +181,6 @@ export default {
}
});
},
beforeFileUpload(file) { },
{vueJsMethod}
/** 提交按钮 */
submitForm: function () {

View File

@ -87,8 +87,9 @@ namespace ZR.CodeGenerator
/// 生成vuejs模板目前只有上传文件方法
/// </summary>
/// <param name="dbFieldInfo"></param>
/// <param name="replaceDto"></param>
/// <returns></returns>
public static string GetVueJsMethod(GenTableColumn dbFieldInfo)
public static void TplVueJsMethod(GenTableColumn dbFieldInfo, ReplaceDto replaceDto)
{
string columnName = dbFieldInfo.ColumnName;
var sb = new StringBuilder();
@ -100,6 +101,8 @@ namespace ZR.CodeGenerator
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))
@ -109,7 +112,7 @@ namespace ZR.CodeGenerator
sb.AppendLine(@$" return this.selectDictLabel(this.{columnName}Options, row.{columnName});");
sb.AppendLine(@" },");
}
return sb.ToString();
replaceDto.VueJsMethod += sb.ToString();
}
/// <summary>
@ -117,7 +120,7 @@ namespace ZR.CodeGenerator
/// </summary>
/// <param name="dbFieldInfo"></param>
/// <returns></returns>
public static string GetFormRules(GenTableColumn dbFieldInfo)
public static string TplFormRules(GenTableColumn dbFieldInfo)
{
StringBuilder sbRule = new StringBuilder();
//Rule 规则验证
@ -137,7 +140,7 @@ namespace ZR.CodeGenerator
/// </summary>
/// <param name="dbFieldInfo"></param>
/// <returns></returns>
public static string GetVueViewFormContent(GenTableColumn dbFieldInfo)
public static string TplVueFormContent(GenTableColumn dbFieldInfo)
{
string columnName = dbFieldInfo.ColumnName;
string labelName = CodeGeneratorTool.GetLabelName(dbFieldInfo.ColumnComment, columnName);
@ -174,8 +177,8 @@ namespace ZR.CodeGenerator
//图片
sb.AppendLine(" <el-col :span=\"24\">");
sb.AppendLine($" <el-form-item label=\"{labelName}\" :label-width=\"labelWidth\" prop=\"{columnName}\">");
sb.AppendLine($" <el-upload class=\"avatar-uploader\" name=\"file\" action=\"/api/upload/saveFile/\" :show-file-list=\"false\" :on-success=\"handleUpload{dbFieldInfo.CsharpField}Success\" :before-upload=\"beforeFileUpload\">");
sb.AppendLine($" <img v-if=\"form.{columnName}\" :src=\"form.{columnName}\" class=\"icon\">");
sb.AppendLine($" <el-upload class=\"avatar-uploader\" name=\"file\" :action=\"uploadUrl\" :show-file-list=\"false\" :on-success=\"handleUpload{dbFieldInfo.CsharpField}Success\" :before-upload=\"beforeFileUpload\">");
sb.AppendLine($" <el-image v-if=\"form.{columnName}\" :src=\"form.{columnName}\" class=\"icon\"/>");
sb.AppendLine(" <i v-else class=\"el-icon-plus uploader-icon\"></i>");
sb.AppendLine(" </el-upload>");
sb.AppendLine($" <el-input v-model=\"form.{columnName}\" placeholder=\"请上传文件或手动输入文件地址\"></el-input>");
@ -249,7 +252,7 @@ namespace ZR.CodeGenerator
/// </summary>
/// <param name="dbFieldInfo"></param>
/// <returns></returns>
public static string GetQueryFormHtml(GenTableColumn dbFieldInfo)
public static string TplQueryFormHtml(GenTableColumn dbFieldInfo)
{
StringBuilder sb = new();
string labelName = CodeGeneratorTool.GetLabelName(dbFieldInfo.ColumnComment, dbFieldInfo.ColumnName);
@ -276,7 +279,7 @@ namespace ZR.CodeGenerator
/// </summary>
/// <param name="dbFieldInfo"></param>
/// <returns></returns>
public static string GetTableColumn(GenTableColumn dbFieldInfo)
public static string TplTableColumn(GenTableColumn dbFieldInfo)
{
string columnName = dbFieldInfo.ColumnName;
string label = CodeGeneratorTool.GetLabelName(dbFieldInfo.ColumnComment, columnName);
@ -307,6 +310,36 @@ namespace ZR.CodeGenerator
return sb.ToString();
}
/// <summary>
/// 文件上传前方法判断
/// </summary>
/// <returns></returns>
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)

View File

@ -102,15 +102,17 @@ namespace ZR.CodeGenerator
CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo, replaceDto);
replaceDto.ModelProperty += CodeGenerateTemplate.GetModelTemplate(dbFieldInfo);
replaceDto.VueViewFormHtml += CodeGenerateTemplate.GetVueViewFormContent(dbFieldInfo);
replaceDto.VueJsMethod += CodeGenerateTemplate.GetVueJsMethod(dbFieldInfo);
replaceDto.VueViewListHtml += CodeGenerateTemplate.GetTableColumn(dbFieldInfo);
replaceDto.VueViewEditFormRuleContent += CodeGenerateTemplate.GetFormRules(dbFieldInfo);
replaceDto.VueViewFormHtml += CodeGenerateTemplate.TplVueFormContent(dbFieldInfo);
CodeGenerateTemplate.TplVueJsMethod(dbFieldInfo, replaceDto);
replaceDto.VueViewListHtml += CodeGenerateTemplate.TplTableColumn(dbFieldInfo);
replaceDto.VueViewEditFormRuleContent += CodeGenerateTemplate.TplFormRules(dbFieldInfo);
replaceDto.InputDtoProperty += CodeGenerateTemplate.GetDtoProperty(dbFieldInfo);
replaceDto.VueQueryFormHtml += CodeGenerateTemplate.GetQueryFormHtml(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;

View File

@ -97,6 +97,14 @@ namespace ZR.CodeGenerator.Model
/// vue组件导入
/// </summary>
public string VueComponentImport { get; set; } = "";
/// <summary>
/// 上传前js
/// </summary>
public string VueBeforeUpload { get; set; }
/// <summary>
/// 上传URL data
/// </summary>
public string VueUploadUrl { get; set; }
public string Author { get; set; }
public string AddTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd");
}

View File

@ -66,7 +66,7 @@ namespace ZR.Model.System.Generate
/// <summary>
/// 字典集合
/// </summary>
[SqlSugar.SugarColumn(IsIgnore = true)]
public List<SysDictData> DictDatas { get; set; }
//[SqlSugar.SugarColumn(IsIgnore = true)]
//public List<SysDictData> DictDatas { get; set; }
}
}