From c07ee6faa0559f282aa9e64fd53d94972a6220d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BD=BB=E9=A3=8E2016?= <616036448@qq.com> Date: Wed, 28 Aug 2024 22:07:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E5=99=A8?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=BB=98=E8=AE=A4=E5=80=BC=EF=BC=8C=E5=9C=A8?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=B6=E8=87=AA=E5=8A=A8=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin.NET.Core/Entity/SysCodeGenConfig.cs | 6 ++++ .../Service/CodeGen/Dto/CodeGenConfig.cs | 5 +++ .../Service/CodeGen/Dto/ColumnOuput.cs | 5 +++ .../CodeGen/SysCodeGenConfigService.cs | 31 +++++++++++++++++++ .../Service/CodeGen/SysCodeGenService.cs | 3 +- .../wwwroot/template/web_views_index.vue.vm | 14 ++++++++- 6 files changed, 62 insertions(+), 2 deletions(-) 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); }; // 打开编辑页面