using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ZR.CodeGenerator.CodeGenerator; namespace ZR.CodeGenerator { public class CodeGenerateTemplate { #region Template public static string GetVueJsMethod(DbColumnInfo dbColumnInfo) { string columnName = CodeGeneratorTool.FirstLowerCase(dbColumnInfo.DbColumnName); string js = ""; if (CodeGeneratorTool.imageFiled.Any(f => columnName.Contains(f))) { js += $"handleUpload{columnName}Success(res, file) {{\n"; js += $" this.form.{columnName} = URL.createObjectURL(file.raw);\n"; js += " // this.$refs.upload.clearFiles();\n"; js += "},\n"; } return js; } //rules public static string GetFormRules(DbColumnInfo dbFieldInfo) { string vueViewEditFromRuleContent = ""; //Rule 规则验证 if (!dbFieldInfo.IsNullable && !dbFieldInfo.IsIdentity) { vueViewEditFromRuleContent += $" {dbFieldInfo.DbColumnName}: [\n"; vueViewEditFromRuleContent += $" {{ required: true, message:\"请输入{dbFieldInfo.ColumnDescription}\", trigger: \"blur\"}},\n"; //vueViewEditFromRuleContent += " { min: 2, max: 50, message: \"长度在 2 到 50 个字符\", trigger:\"blur\" }\n"; vueViewEditFromRuleContent += " ],\n"; } return vueViewEditFromRuleContent; } //model 属性 public static string GetModelTemplate(DbColumnInfo dbFieldInfo) { string columnName = dbFieldInfo.DbColumnName.Substring(0, 1).ToUpper() + dbFieldInfo.DbColumnName[1..]; var modelcontent = ""; modelcontent += " /// \n"; modelcontent += $" /// 描述 :{dbFieldInfo.ColumnDescription}\n"; modelcontent += $" /// 空值 :{dbFieldInfo.IsNullable}\n"; modelcontent += $" /// 默认 :{dbFieldInfo.DefaultValue}\n"; modelcontent += " /// \n"; if (dbFieldInfo.IsIdentity || dbFieldInfo.IsPrimarykey) { modelcontent += $" [SqlSugar.SugarColumn(IsPrimaryKey = {dbFieldInfo.IsPrimarykey.ToString().ToLower()}, IsIdentity = {dbFieldInfo.IsIdentity.ToString().ToLower()})]\n"; } modelcontent += $" public {TableMappingHelper.GetPropertyDatatype(dbFieldInfo.DataType)} {columnName} {{ get; set; }}\n\r"; return modelcontent; } //DTO model public static string GetDtoContent(DbColumnInfo dbFieldInfo) { string columnName = dbFieldInfo.DbColumnName.Substring(0, 1).ToUpper() + dbFieldInfo.DbColumnName[1..]; string InputDtoContent = ""; InputDtoContent += $" public {TableMappingHelper.GetPropertyDatatype(dbFieldInfo.DataType)} {columnName} {{ get; set; }}\n\r"; return InputDtoContent; } //form-item public static string GetVueViewFormContent(DbColumnInfo dbFieldInfo) { string columnName = CodeGeneratorTool.FirstLowerCase(dbFieldInfo.DbColumnName); string labelName = CodeGeneratorTool.GetLabelName(dbFieldInfo.ColumnDescription, columnName); string vueViewFromContent = ""; string labelDisabled = dbFieldInfo.IsIdentity ? ":disabled=\"true\"" : ""; string placeHolder = dbFieldInfo.IsIdentity ? "" : $"请输入{CodeGeneratorTool.GetLabelName(dbFieldInfo.ColumnDescription, columnName)}"; if (dbFieldInfo.DataType == "datetime") { //时间 vueViewFromContent += $" \n"; vueViewFromContent += $" \n"; vueViewFromContent += " \n"; } else if (CodeGeneratorTool.imageFiled.Any(f => columnName.Contains(f))) { //图片 vueViewFromContent += $" \n"; vueViewFromContent += $" \n"; vueViewFromContent += $" \n"; vueViewFromContent += " \n"; vueViewFromContent += " \n"; vueViewFromContent += $" \n"; vueViewFromContent += " \n"; } else if (CodeGeneratorTool.radioFiled.Any(f => columnName.Contains(f)) && (dbFieldInfo.DataType == "bool" || dbFieldInfo.DataType == "tinyint" || dbFieldInfo.DataType == "int")) { vueViewFromContent += $" "; vueViewFromContent += $" \n"; vueViewFromContent += " {{dict.dictLabel}}\n"; vueViewFromContent += " \n"; vueViewFromContent += " \n"; } else { vueViewFromContent += $" \n"; vueViewFromContent += $" \n"; vueViewFromContent += " \n"; } return vueViewFromContent; } //table-column public static string GetTableColumn(DbColumnInfo dbFieldInfo) { string columnName = CodeGeneratorTool.FirstLowerCase(dbFieldInfo.DbColumnName); string label = CodeGeneratorTool.GetLabelName(dbFieldInfo.ColumnDescription, columnName); string vueViewListContent = ""; string showToolTip = dbFieldInfo.DataType.Contains("varchar") ? ":show-overflow-tooltip=\"true\"" : ""; if (CodeGeneratorTool.imageFiled.Any(f => columnName.ToLower().Contains(f))) { vueViewListContent += $" \n"; vueViewListContent += " \n"; vueViewListContent += " \n"; } else if (dbFieldInfo.DataType == "bool" || dbFieldInfo.DataType == "tinyint") { vueViewListContent += $" \n"; vueViewListContent += " \n"; vueViewListContent += " \n"; } else { //table-column vueViewListContent += $" \n"; } return vueViewListContent; } #endregion } }