schangxiang@126.com
2025-05-13 02e4293d7baa69c961730191ec3eef22c96bee84
Weben_CMSרÓôúÂëÉú³ÉÆ÷/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)
                {
@@ -651,7 +681,7 @@
                    case DataTypeEnum.dt_datetimeoffset:
                        attrStr += "        //表示是 é«˜çº§æŸ¥è¯¢èŒƒå›´æŸ¥è¯¢ç‰¹æ€§\n";
                        attrStr += "        [HighSearchRangeAttribute]\n";
                        attrStr += "        public List<string>" + emptyStr + attr + " { get; set; }\n";
                        attrStr += "        public string" + emptyStr + attr + " { get; set; }\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                    case DataTypeEnum.dt_bigint:
@@ -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";
@@ -1916,6 +1962,7 @@
                            {
                                elment = "select";
                                sb.Append("                   el: '" + elment + "', \n");
                                sb.Append("                   clearable:true, \n");
                                sb.Append("                   options: [], \n");
                                isWriteInt = false;
                            }
@@ -1951,7 +1998,24 @@
                    {
                        case DataTypeEnum.dt_bit:
                        case DataTypeEnum.dt_tinyint:
                            sb.Append("                 options: [{label: '是',value: true}, {label: '否',value: false}] \n");
                            //增加对枚举类型的支持
                            if (param.EnumList?.Count > 0)
                            {
                                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault();
                                if (findEnumObj != null)
                                {
                                    sb.Append("                   clearable:true, \n");
                                    sb.Append("                   option: [], \n");
                                }
                                else
                                {
                                    sb.Append("                 options: [{label: '是',value: true}, {label: '否',value: false}] \n");
                                }
                            }
                            else
                            {
                                sb.Append("                 options: [{label: '是',value: true}, {label: '否',value: false}] \n");
                            }
                            break;
                        default:
                            break;
@@ -1970,7 +2034,7 @@
        }
        /// <summary>
        /// èŽ·å–VUE formOptions字符串(高级查询中的)
        /// æž„建 é«˜çº§æŸ¥è¯¢ä¸­çš„form字段
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
@@ -1986,6 +2050,12 @@
      el: 'input',
      disabled: disabled,
      placeholder: '请输入物料编码',
                 highSelectAttrs:{
                     prop: 'materialCode_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING,
                   }
    },
                 */
                //List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
@@ -2067,6 +2137,7 @@
                            {
                                elment = "select";
                                sb.Append("                   el: '" + elment + "', \n");
                                sb.Append("                   clearable:true, \n");
                                sb.Append("                   option: [], \n");
                                isWriteInt = false;
                            }
@@ -2100,11 +2171,93 @@
                    {
                        case DataTypeEnum.dt_bit:
                        case DataTypeEnum.dt_tinyint:
                            sb.Append("                 options: [{label: '是',value: true}, {label: '否',value: false}] \n");
                            //增加对枚举类型的支持
                            if (param.EnumList?.Count > 0)
                            {
                                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault();
                                if (findEnumObj != null)
                                {
                                    sb.Append("                   clearable:true, \n");
                                    sb.Append("                   option: [], \n");
                                }
                                else
                                {
                                    sb.Append("                   clearable:true, \n");
                                    sb.Append("                 options: BOOLEAN_OPTIONS, \n");
                                }
                            }
                            else
                            {
                                sb.Append("                   clearable:true, \n");
                                sb.Append("                 options: BOOLEAN_OPTIONS, \n");
                            }
                            break;
                        default:
                            break;
                    }
                    //处理高级select查询
                    MyDataTypeCategorizeEnum myDataTypeCategorizeEnum = CommonHelper.GetMyDataTypeCategorizeEnum(enumDT);
                    switch (myDataTypeCategorizeEnum)
                    {
                        case MyDataTypeCategorizeEnum.布尔类:
                            sb.Append("                   highSelectAttrs:{ \n");
                            sb.Append($"                     prop: '{low_prop_ColumnName}_FilterMode', \n");
                            sb.Append("                     el: 'select',  \n");
                            sb.Append("                     placeholder: '请选择',  \n");
                            sb.Append("                     options:FILTER_MODE_OPTIONS_BOOL \n");//bool查询
                            sb.Append("                   } \n");
                            break;
                        case MyDataTypeCategorizeEnum.数字类:
                            if (param.EnumList?.Count > 0)
                            {
                                var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault();
                                if (findEnumObj != null)
                                {
                                    sb.Append("                   highSelectAttrs:{ \n");
                                    sb.Append($"                     prop: '{low_prop_ColumnName}_FilterMode', \n");
                                    sb.Append("                     el: 'select',  \n");
                                    sb.Append("                     placeholder: '请选择',  \n");
                                    sb.Append("                     options:FILTER_MODE_OPTIONS_BOOL \n");//bool查询
                                    sb.Append("                   } \n");
                                }
                                else
                                {
                                    sb.Append("                   highSelectAttrs:{ \n");
                                    sb.Append($"                     prop: '{low_prop_ColumnName}_FilterMode', \n");
                                    sb.Append("                     el: 'select',  \n");
                                    sb.Append("                     placeholder: '请选择',  \n");
                                    sb.Append("                     options:FILTER_MODE_OPTIONS_NUM \n");//数字类查询
                                    sb.Append("                   } \n");
                                }
                            }
                            else
                            {
                                sb.Append("                   highSelectAttrs:{ \n");
                                sb.Append($"                     prop: '{low_prop_ColumnName}_FilterMode', \n");
                                sb.Append("                     el: 'select',  \n");
                                sb.Append("                     placeholder: '请选择',  \n");
                                sb.Append("                     options:FILTER_MODE_OPTIONS_NUM \n");//数字类查询
                                sb.Append("                   } \n");
                            }
                            break;
                        case MyDataTypeCategorizeEnum.日期类:
                            //日期类 é«˜çº§ select查询没有
                            sb.Append("                   isDateControl: true, // æ˜¾å¼æ ‡è®°ä¸ºæ—¥æœŸæŽ§ä»¶ \n");
                            break;
                        default://剩余的一律认为是 å­—符串
                            sb.Append("                   highSelectAttrs:{ \n");
                            sb.Append($"                     prop: '{low_prop_ColumnName}_FilterMode', \n");
                            sb.Append("                     el: 'select',  \n");
                            sb.Append("                     placeholder: '请选择',  \n");
                            sb.Append("                     options:FILTER_MODE_OPTIONS_STRING \n");//字符串类查询
                            sb.Append("                   } \n");
                            break;
                    }
                    sb.Append("                }, \n");
                }
                //去掉最后一个,
@@ -2239,15 +2392,27 @@
                /*
                  materialCode: formData.value.materialCode,
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageTableListQueryAttributes(columnModelList);
                foreach (var columnModel in newList)
                foreach (var columnModel in columnModelList)
                {
                    //首字母小写
                    var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
                    sb.Append($"{low_prop_ColumnName}: formData.value.{low_prop_ColumnName} || '', \n");
                    //添加select高级查询
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    MyDataTypeCategorizeEnum myDataTypeCategorizeEnum = CommonHelper.GetMyDataTypeCategorizeEnum(enumDT);
                    switch (myDataTypeCategorizeEnum)
                    {
                        case MyDataTypeCategorizeEnum.布尔类:
                        case MyDataTypeCategorizeEnum.数字类:
                        default://剩余的一律认为是 å­—符串
                            sb.Append($"{low_prop_ColumnName}_FilterMode: formData.value.{low_prop_ColumnName}_FilterMode || '', \n");
                            break;
                        case MyDataTypeCategorizeEnum.日期类:
                            //日期类 é«˜çº§ select查询没有
                            break;
                    }
                }
                //去掉最后一个,
                var res = sb.ToString();
@@ -2432,8 +2597,7 @@
                /*
                  materialCode: res.materialCode,
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                foreach (var columnModel in columnModelList)
                {
                    //首字母小写
                    var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
@@ -2450,6 +2614,46 @@
            }
        }
        public static string GetVueFormOptionsStrForPageAddFormAttributes_Query_Clear_HighSelect(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                  formData.value.materialCode_FilterMode = 1
                 */
                foreach (var columnModel in columnModelList)
                {
                    //首字母小写
                    var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
                    //添加select高级查询
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    MyDataTypeCategorizeEnum myDataTypeCategorizeEnum = CommonHelper.GetMyDataTypeCategorizeEnum(enumDT);
                    switch (myDataTypeCategorizeEnum)
                    {
                        case MyDataTypeCategorizeEnum.布尔类:
                        case MyDataTypeCategorizeEnum.数字类:
                            sb.Append($"formData.value.{low_prop_ColumnName}_FilterMode = 2 \n");//精准查询
                            break;
                        default://剩余的一律认为是 å­—符串
                            sb.Append($"formData.value.{low_prop_ColumnName}_FilterMode = 1 \n");//模糊查询
                            break;
                        case MyDataTypeCategorizeEnum.日期类:
                            //日期类 é«˜çº§ select查询没有
                            break;
                    }
                }
                //去掉最后一个,
                var res = sb.ToString();
                res = res.Substring(0, res.Length - 1);
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static string GetVueFormOptionsStrForPageAdd_EntityNameClass_enumOptions(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();