From f12cbfe9cba26c1a0e3abf1fe09a3c9cd9586a81 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周日, 11 5月 2025 11:59:39 +0800
Subject: [PATCH] 优化 代码生成器

---
 Weben_CMS专用代码生成器/Code/Utility/StructStrHelper.cs |   77 +++++++++++++++++++++++++++++++-------
 1 files changed, 62 insertions(+), 15 deletions(-)

diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs"
index ec86934..aee0a90 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Utility/StructStrHelper.cs"
@@ -237,6 +237,7 @@
                 attrStr += "        /// " + columnModel.Description + "\n";
                 attrStr += "        /// </summary>\n";
 
+                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
                 DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
                 switch (myDataType)
                 {
@@ -259,12 +260,21 @@
                     case DataTypeEnum.dt_tinyint:
                     case DataTypeEnum.dt_bit:
                         if (columnModel.IsNullable) { str_NullFlag = "? "; }
-                        attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
-                        attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        if (findEnumObj != null)
+                        {
+                            attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+                        else
+                        {
+                            attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+
                         break;
                     case DataTypeEnum.dt_int:
                         if (columnModel.IsNullable) { str_NullFlag = "? "; }
-                        var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
+
                         if (findEnumObj != null)
                         {
                             attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
@@ -454,6 +464,7 @@
                 attrStr += "        /// " + columnModel.Description + "\n";
                 attrStr += "        /// </summary>\n";
 
+                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
                 DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
                 switch (myDataType)
                 {
@@ -476,12 +487,21 @@
                     case DataTypeEnum.dt_tinyint:
                     case DataTypeEnum.dt_bit:
                         if (columnModel.IsNullable) { str_NullFlag = "? "; }
-                        attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
-                        attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+
+                        if (findEnumObj != null)
+                        {
+                            attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+                        else
+                        {
+                            attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
                         break;
                     case DataTypeEnum.dt_int:
                         if (columnModel.IsNullable) { str_NullFlag = "? "; }
-                        var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
+
                         if (findEnumObj != null)
                         {
                             attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
@@ -511,7 +531,6 @@
                 //澧炲姞瀵规灇涓剧被鍨嬬殑鏀寔 
                 if (param.EnumList?.Count > 0)
                 {
-                    var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
                     if (findEnumObj != null)
                     {
                         attrStr += "        /// <summary>\n";
@@ -558,6 +577,7 @@
                 attrStr += "        /// </summary>\n";
                 attrStr += $"        [ExcelColumn(Name = \"{columnModel.Description}\", Width = 25)]\n";
 
+                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
                 DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
                 switch (myDataType)
                 {
@@ -580,12 +600,21 @@
                     case DataTypeEnum.dt_tinyint:
                     case DataTypeEnum.dt_bit:
                         if (columnModel.IsNullable) { str_NullFlag = "? "; }
-                        attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
-                        attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        if (findEnumObj != null)
+                        {
+                            attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+                        else
+                        {
+                            attrStr += "        public bool" + str_NullFlag + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+
                         break;
                     case DataTypeEnum.dt_int:
                         if (columnModel.IsNullable) { str_NullFlag = "? "; }
-                        var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
+
                         if (findEnumObj != null)
                         {
                             attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n";
@@ -620,7 +649,7 @@
         /// </summary>
         /// <param name="columnModel"></param>
         /// <returns></returns>
-        public static string GenerateAttributeForQueryModel(ColumnModel columnModel)
+        public static string GenerateAttributeForQueryModel(ColumnModel columnModel, GenerateCodeParam param)
         {
             try
             {
@@ -643,6 +672,7 @@
                 attrStr += "        /// " + columnModel.Description + "\n";
                 attrStr += "        /// </summary>\n";
 
+                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
                 DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType);
                 switch (myDataType)
                 {
@@ -663,13 +693,29 @@
                         attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
                         break;
                     case DataTypeEnum.dt_int:
-                        attrStr += "        public int" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
-                        attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        if (findEnumObj != null)
+                        {
+                            attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+                        else
+                        {
+                            attrStr += "        public int" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
                         break;
                     case DataTypeEnum.dt_bit:
                     case DataTypeEnum.dt_tinyint:
-                        attrStr += "        public bool" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
-                        attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        if (findEnumObj != null)
+                        {
+                            attrStr += $"        public {findEnumObj.EnumType}" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
+                        else
+                        {
+                            attrStr += "        public bool" + str_NullFlag + emptyStr + attr + " { get; set; }\n";
+                            attrStr += "\n";//鏈�鍚庢槸鍔犱竴涓┖鏍�
+                        }
                         break;
                     default:
                         attrStr += "        public string" + emptyStr + attr + " { get; set; }\n";
@@ -2067,6 +2113,7 @@
                             {
                                 elment = "select";
                                 sb.Append("                   el: '" + elment + "', \n");
+                                sb.Append("                   clearable:true, \n");
                                 sb.Append("                   option: [], \n");
                                 isWriteInt = false;
                             }

--
Gitblit v1.9.3