Explorar el Código

vue文件生成包含默认值

Cyrus Zhou hace 10 meses
padre
commit
d9fdbf1b2a

+ 6 - 0
Admin.NET/Admin.NET.Core/Entity/SysCodeGenConfig.cs

@@ -67,6 +67,12 @@ public partial class SysCodeGenConfig : EntityBase
     [MaxLength(64)]
     public string? NetType { get; set; }
 
+    /// <summary>
+    /// 字段数据默认值
+    /// </summary>
+    [SugarColumn(ColumnDescription = "默认值")]
+    public string? DefaultValue { get; set; }
+
     /// <summary>
     /// 作用类型(字典)
     /// </summary>

+ 23 - 0
Admin.NET/Admin.NET.Core/Service/CodeGen/CustomViewEngine.cs

@@ -99,6 +99,11 @@ public class CustomViewEngine : ViewEngineModel
     /// </summary>
     public string InjectServiceArgs => InjectServiceMap.Count > 0 ? ", " + string.Join(", ", InjectServiceMap.Select(kv => $"{kv.Key} {kv.Value}")) : "";
 
+    /// <summary>
+    /// 默认值列表
+    /// </summary>
+    public List<CodeGenConfig> DefaultValueList { get; set; }
+    
     /// <summary>
     /// 判断字段是否为状态字段
     /// </summary>
@@ -144,6 +149,24 @@ public class CustomViewEngine : ViewEngineModel
         var orderNo = TableField.FirstOrDefault(c => c.NetType.TrimEnd('?') == "int" && c.PropertyName == nameof(SysUser.OrderNo));
         if (status != null) content += $"{status.LowerPropertyName}: {(int)StatusEnum.Enable},";
         if (orderNo != null) content += $"{orderNo.LowerPropertyName}: 100,";
+                foreach (var item in DefaultValueList)
+        {
+            if (!string.IsNullOrWhiteSpace(item.DefaultValue))
+            {
+                switch (item.EffectType)
+                {
+                    case "InputNumber":
+                        content += $"{item.LowerPropertyName}: {item.DefaultValue},";
+                        break;
+                    case "Switch":
+                        content += $"{item.LowerPropertyName}: {(item.DefaultValue=="1"?true.ToString().ToLower():false.ToString().ToLower())},";
+                        break;
+                    default:
+                        content += $"{item.LowerPropertyName}: '{item.DefaultValue}',";
+                        break;
+                }
+            }
+        }
         return content;
     }
 }

+ 4 - 0
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/CodeGenConfig.cs

@@ -61,6 +61,10 @@ public class CodeGenConfig
     /// </summary>
     public string DataType { get; set; }
 
+    /// <summary>
+    /// 字段数据默认值
+    /// </summary>
+    public string DefaultValue { get; set; }
     /// <summary>
     /// 可空.NET类型
     /// </summary>

+ 5 - 0
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/ColumnOuput.cs

@@ -31,6 +31,11 @@ public class ColumnOuput
     /// </summary>
     public string DataType { get; set; }
 
+    /// <summary>
+    /// 字段数据默认值
+    /// </summary>
+    public string DefaultValue { get; set; }
+
     /// <summary>
     /// 是否为主键
     /// </summary>

+ 1 - 0
Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenConfigService.cs

@@ -115,6 +115,7 @@ public class SysCodeGenConfigService : IDynamicApiController, ITransient
             codeGenConfig.ColumnLength = tableColumn.ColumnLength;// 长度
             codeGenConfig.ColumnComment = tableColumn.ColumnComment;
             codeGenConfig.NetType = tableColumn.NetType;
+            codeGenConfig.DefaultValue = tableColumn.DefaultValue;
             codeGenConfig.WhetherRetract = YesNoEnum.N.ToString();
 
             // 生成代码时,主键并不是必要输入项,故一定要排除主键字段

+ 6 - 4
Admin.NET/Admin.NET.Core/Service/CodeGen/SysCodeGenService.cs

@@ -94,11 +94,11 @@ public class SysCodeGenService : IDynamicApiController, ITransient
         await _db.Updateable(codeGen).ExecuteCommandAsync();
 
         // 仅当数据表名称发生了变化,才更新配置表
-        if (oldRecord.TableName != input.TableName)
-        {
+        //if (oldRecord.TableName != input.TableName)
+        //{
             await _codeGenConfigService.DeleteCodeGenConfig(codeGen.Id);
             _codeGenConfigService.AddList(GetColumnList(input.Adapt<AddCodeGenInput>()), codeGen);
-        }
+        //}
     }
 
     /// <summary>
@@ -246,7 +246,8 @@ public class SysCodeGenService : IDynamicApiController, ITransient
             ColumnKey = u.IsPrimarykey.ToString(),
             NetType = CodeGenUtil.ConvertDataType(u, provider.CurrentConnectionConfig.DbType),
             DataType = CodeGenUtil.ConvertDataType(u, provider.CurrentConnectionConfig.DbType),
-            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为实际使用名称)
@@ -433,6 +434,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
             AddUpdateFieldList = tableFieldList.Where(u => u.WhetherAddUpdate == "Y").ToList(),
             ApiTreeFieldList = tableFieldList.Where(u => u.EffectType == "ApiTreeSelector").ToList(),
             DropdownFieldList = tableFieldList.Where(u => u.EffectType is "ForeignKey" or "ApiTreeSelector").ToList(),
+            DefaultValueList = tableFieldList.Where(u => u.DefaultValue!=null && u.DefaultValue.Length>0).ToList(),
 
             HasJoinTable = joinTableList.Count > 0,
             HasDictField = tableFieldList.Any(u => u.EffectType == "DictSelector"),