代码生成器新增默认值,在添加时自动添加默认值

This commit is contained in:
轻风2016 2024-08-28 22:07:24 +08:00
parent 51f992e637
commit c07ee6faa0
6 changed files with 62 additions and 2 deletions

View File

@ -210,4 +210,10 @@ public partial class SysCodeGenConfig : EntityBase
/// </summary>
[SugarColumn(ColumnDescription = "字段验证规则", ColumnDataType = StaticConfig.CodeFirst_BigString)]
public string? Rules { get; set; }
/// <summary>
/// 默认值
/// </summary>
[SugarColumn(ColumnDescription = "默认值", Length = 256)]
public string? DefaultValue { get; set; }
}

View File

@ -198,6 +198,11 @@ public class CodeGenConfig
/// </summary>
public string Rules { get; set; }
/// <summary>
/// 默认值
/// </summary>
public string? DefaultValue { get; set; }
#region
/// <summary>

View File

@ -55,4 +55,9 @@ public class ColumnOuput
/// 主外键
/// </summary>
public string ColumnKey { get; set; }
/// <summary>
/// 默认值
/// </summary>
public string DefaultValue { get; set; }
}

View File

@ -151,6 +151,7 @@ public class SysCodeGenConfigService : IDynamicApiController, ITransient
codeGenConfig.EffectType = CodeGenUtil.DataTypeToEff(codeGenConfig.NetType);
codeGenConfig.QueryType = GetDefaultQueryType(codeGenConfig); // QueryTypeEnum.eq.ToString();
codeGenConfig.OrderNo = orderNo;
codeGenConfig.DefaultValue = GetDefaultValue(tableColumn.DefaultValue);
codeGenConfigs.Add(codeGenConfig);
orderNo += 10; // 每个配置排序间隔10
@ -174,4 +175,34 @@ public class SysCodeGenConfigService : IDynamicApiController, ITransient
_ => "==",
};
}
/// <summary>
/// 获取默认值
/// </summary>
/// <param name="dataValue"></param>
/// <returns></returns>
private static string? GetDefaultValue(string dataValue)
{
if (dataValue == null) return null;
string value = "";
// 正则表达式模式
// \( 和 \) 用来匹配字面量的括号
// .+ 用来匹配一个或多个任意字符,但不包括换行符
string pattern = @"\((.+)\)";//适合MSSQL其他数据库没有测试
// 使用 Regex 类进行匹配
Match match = Regex.Match(dataValue, pattern);
// 如果找到了匹配项
if (match.Success)
{
// 提取括号内的值
value = match.Groups[1].Value.Trim('\'');
}
else
{
value = dataValue;
}
return value;
}
}

View File

@ -234,7 +234,8 @@ public class SysCodeGenService : IDynamicApiController, ITransient
ColumnKey = u.IsPrimarykey.ToString(),
NetType = CodeGenUtil.ConvertDataType(u, provider.CurrentConnectionConfig.DbType),
DataType = u.DataType,
ColumnComment = string.IsNullOrWhiteSpace(u.ColumnDescription) ? u.DbColumnName : u.ColumnDescription
ColumnComment = string.IsNullOrWhiteSpace(u.ColumnDescription) ? u.DbColumnName : u.ColumnDescription,
DefaultValue = u.DefaultValue,
}).ToList();
// 获取实体的属性信息赋值给PropertyName属性(CodeFirst模式应以PropertyName为实际使用名称)

View File

@ -355,7 +355,19 @@ const resetQuery = async () => {
// 打开新增页面
const handleAdd = () => {
state.title = '添加@(@Model.BusName)';
editDialogRef.value?.openDialog({ type: 1 });
let data = {
@foreach (var column in Model.TableField){
if(@column.WhetherAddUpdate == "Y"&&@column.DefaultValue!=null){
if(@column.NetType.StartsWith("int")||@column.NetType.StartsWith("decimal")){
@:@column.LowerPropertyName:@(@column.DefaultValue),
}
if(@column.NetType.StartsWith("string")){
@:@column.LowerPropertyName:'@(@column.DefaultValue)',
}
}
}
};
editDialogRef.value?.openDialog(data);
};
// 打开编辑页面