diff --git a/Admin.NET/Admin.NET.Core/Entity/SysCodeGenConfig.cs b/Admin.NET/Admin.NET.Core/Entity/SysCodeGenConfig.cs index f6cc1a42..6b87ffd8 100644 --- a/Admin.NET/Admin.NET.Core/Entity/SysCodeGenConfig.cs +++ b/Admin.NET/Admin.NET.Core/Entity/SysCodeGenConfig.cs @@ -210,4 +210,10 @@ public partial class SysCodeGenConfig : EntityBase /// [SugarColumn(ColumnDescription = "字段验证规则", ColumnDataType = StaticConfig.CodeFirst_BigString)] public string? Rules { get; set; } + + /// + /// 默认值 + /// + [SugarColumn(ColumnDescription = "默认值", Length = 256)] + public string? DefaultValue { get; set; } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenConfig.cs b/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenConfig.cs index a7722048..7fee73e9 100644 --- a/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenConfig.cs +++ b/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenConfig.cs @@ -198,6 +198,11 @@ public class CodeGenConfig /// public string Rules { get; set; } + /// + /// 默认值 + /// + public string? DefaultValue { get; set; } + #region 不在数据库中的字段 /// diff --git a/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/ColumnOuput.cs b/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/ColumnOuput.cs index 6b3e88d2..1b5894bb 100644 --- a/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/ColumnOuput.cs +++ b/Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/ColumnOuput.cs @@ -55,4 +55,9 @@ public class ColumnOuput /// 主外键 /// public string ColumnKey { get; set; } + + /// + /// 默认值 + /// + public string DefaultValue { get; set; } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs b/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs index 81606aa2..a67c8ca0 100644 --- a/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs +++ b/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs @@ -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 _ => "==", }; } + + /// + /// 获取默认值 + /// + /// + /// + 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; + } } \ No newline at end of file diff --git a/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs b/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs index 22a71766..96dd1834 100644 --- a/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs +++ b/Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs @@ -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为实际使用名称) diff --git a/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/web_views_index.vue.vm b/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/web_views_index.vue.vm index 26aac671..bbbd1678 100644 --- a/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/web_views_index.vue.vm +++ b/Admin.NET/Admin.NET.Web.Entry/wwwroot/template/web_views_index.vue.vm @@ -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); }; // 打开编辑页面