222
schangxiang@126.com
2025-05-13 6e831531ac5277ee1a6215eab1249e788320c440
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Utility/StructStrHelper.cs
@@ -85,7 +85,7 @@
                        model = new ColumnModel();
                        if (dt.Rows[n]["Precision"].ToString() != "")
                        {
                            model.Precision = int.Parse(dt.Rows[n]["Precision"].ToString());
                            model.MyPrecision = int.Parse(dt.Rows[n]["Precision"].ToString());
                        }
                        if (dt.Rows[n]["Scale"].ToString() != "")
                        {
@@ -237,13 +237,14 @@
                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)
                {
                    case DataTypeEnum.dt_datetime:
                    case DataTypeEnum.dt_datetime2:
                    case DataTypeEnum.dt_datetimeoffset:
                        attrStr += "        public datetime" + str_NullFlag + attr + " { get; set; }\n";
                        attrStr += "        public DateTime" + str_NullFlag + attr + " { get; set; }\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                    case DataTypeEnum.dt_bigint:
@@ -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";
@@ -304,6 +314,30 @@
                string attrStr = "";
                attrStr += $"        updateObj.{attr} = input.{attr};\n";
                return attrStr;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static string GenerateAttribute_AppService_ImportAsync(ColumnModel columnModel, GenerateCodeParam param)
        {
            try
            {
                /*
                MaterialCode = impItem.MaterialCode,
                 */
                string attr = columnModel.ColumnName;
                string attrStr = "";
                attrStr += $"{attr} = impItem.{attr},\n";
                return attrStr;
@@ -430,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)
                {
@@ -452,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";
@@ -487,7 +531,6 @@
                //增加对枚举类型的支持 
                if (param.EnumList?.Count > 0)
                {
                    var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault();
                    if (findEnumObj != null)
                    {
                        attrStr += "        /// <summary>\n";
@@ -534,13 +577,14 @@
                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)
                {
                    case DataTypeEnum.dt_datetime:
                    case DataTypeEnum.dt_datetime2:
                    case DataTypeEnum.dt_datetimeoffset:
                        attrStr += "        public datetime" + str_NullFlag + attr + " { get; set; }\n";
                        attrStr += "        public DateTime" + str_NullFlag + attr + " { get; set; }\n";
                        attrStr += "\n";//最后是加一个空格
                        break;
                    case DataTypeEnum.dt_bigint:
@@ -556,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";
@@ -596,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
            {
@@ -619,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)
                {
@@ -627,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:
@@ -639,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";
@@ -863,7 +933,7 @@
                    case DataTypeEnum.dt_decimal:
                    case DataTypeEnum.dt_float:
                        sql.Append("@" + attrColumnName + "  " + columnModel.DataType
                            + "(" + columnModel.Precision.ToString() + "," + columnModel.Scale.ToString() + ")  " + fuhao + "\n");
                            + "(" + columnModel.MyPrecision.ToString() + "," + columnModel.Scale.ToString() + ")  " + fuhao + "\n");
                        break;
                    default:
                        break;
@@ -925,7 +995,7 @@
                    case DataTypeEnum.dt_decimal:
                    case DataTypeEnum.dt_float:
                        sql.Append("@" + attrColumnName + "  " + columnModel.DataType
                            + "(" + columnModel.Precision.ToString() + "," + columnModel.Scale.ToString() + ")  " + fuhao + "\n");
                            + "(" + columnModel.MyPrecision.ToString() + "," + columnModel.Scale.ToString() + ")  " + fuhao + "\n");
                        break;
                    default:
                        break;
@@ -986,7 +1056,7 @@
                    case DataTypeEnum.dt_decimal:
                    case DataTypeEnum.dt_float:
                        sql.Append("@" + attrColumnName + "  " + columnModel.DataType
                            + "(" + columnModel.Precision.ToString() + "," + columnModel.Scale.ToString() + ")  " + fuhao);
                            + "(" + columnModel.MyPrecision.ToString() + "," + columnModel.Scale.ToString() + ")  " + fuhao);
                        break;
                    default:
                        break;
@@ -1736,6 +1806,8 @@
                List<ColumnModel> newList = ListHelper.RemoveIdOperationRemarkCreateIdModifyId(columnModelList);
                foreach (var columnModel in newList)
                {
                    //首字母小写
                    var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    var elment = "el-input";
                    switch (enumDT)
@@ -1752,7 +1824,7 @@
                    }
                    sb.Append("                { \n");
                    sb.Append("                   label: '" + columnModel.Description + "', \n");
                    sb.Append("                   prop: '" + columnModel.ColumnName + "', \n");
                    sb.Append("                   prop: '" + low_prop_ColumnName + "', \n");
                    //添加类型
                    switch (enumDT)
@@ -1770,7 +1842,8 @@
                    {
                        case DataTypeEnum.dt_bit:
                        case DataTypeEnum.dt_tinyint:
                            sb.Append("                 options: [{label: '是',value: 'true'}, {label: '否',value: 'false'}] \n");
                            //sb.Append("                 options: [{label: '是',value: true}, {label: '否',value: false}] \n");
                            sb.Append("                 options: BOOLEAN_OPTIONS_AddEdit \n");
                            break;
                        default:
                            break;
@@ -1790,11 +1863,11 @@
        /// <summary>
        /// èŽ·å–VUE formOptions字符串(高级查询中的)
        /// èŽ·å–VUE formOptions字符串(添加、修改弹出页面的)
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetVueFormOptionsStrForPageAddFormAttributes(List<ColumnModel> columnModelList, GenerateCodeParam param)
        public static string GetVueFormOptionsStrForPageAddFormAttributes_formItems(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
@@ -1812,13 +1885,16 @@
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                {
                    //首字母小写
                    var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    var elment = "input";
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_datetime:
                            elment = "date-picker";
                            break;
                        //case DataTypeEnum.dt_datetime:
                        //    elment = "date-picker";
                        //    break;
                        case DataTypeEnum.dt_bit:
                        case DataTypeEnum.dt_tinyint:
                            elment = "select";
@@ -1828,19 +1904,39 @@
                    }
                    sb.Append("                { \n");
                    sb.Append("                   label: '" + columnModel.Description + "', \n");
                    sb.Append("                   prop: '" + columnModel.ColumnName + "', \n");
                    sb.Append("                   prop: '" + low_prop_ColumnName + "', \n");
                    //添加类型
                    switch (enumDT)
                    //switch (enumDT)
                    //{
                    //    case DataTypeEnum.dt_datetime:
                    //        sb.Append("                   el: (props: any, { attrs }: SetupContext) => { \n");
                    //        sb.Append("                     return h(datePicker, {  \n");
                    //        sb.Append("                       ...props,  \n");
                    //        sb.Append("                       clearable: true,  \n");
                    //        sb.Append("                       ...attrs,  \n");
                    //        sb.Append("                     })  \n");
                    //        sb.Append("                   },\n");
                    //        sb.Append("                   width: '100%',\n");
                    //        break;
                    //    default:
                    //        break;
                    //}
                    if (enumDT == DataTypeEnum.dt_datetime)
                    {
                        case DataTypeEnum.dt_datetime:
                            sb.Append("                   type: 'datetimerange', \n");
                            break;
                        default:
                            break;
                        sb.Append("                   el: (props: any, { attrs }: SetupContext) => { \n");
                        sb.Append("                     return h(datePicker, {  \n");
                        sb.Append("                       ...props,  \n");
                        sb.Append("                       clearable: true,  \n");
                        sb.Append("                       ...attrs,  \n");
                        sb.Append("                     })  \n");
                        sb.Append("                   },\n");
                        sb.Append("                   width: '100%',\n");
                    }
                    if (enumDT == DataTypeEnum.dt_decimal)
                    else if (enumDT == DataTypeEnum.dt_decimal)
                    {
                        sb.Append("                   el: (props: any, { attrs }: SetupContext) => { \n");
                        sb.Append("                     return h(inputNumber, {  \n");
@@ -1850,12 +1946,14 @@
                        sb.Append("                     })  \n");
                        sb.Append("                   },\n");
                        sb.Append("                   width: '100%',\n");
                        //配置精度?这里需要获取数据库中的精度!!!TODO:
                        sb.Append("                   step: 0.01,\n");
                        sb.Append("                   precision: 2, \n");
                    }
                    else if (enumDT == DataTypeEnum.dt_int)
                    {
                        bool isWriteInt = true;
                        //判断是否是下拉类型
                        //增加对枚举类型的支持 
                        if (param.EnumList?.Count > 0)
@@ -1865,9 +1963,12 @@
                            {
                                elment = "select";
                                sb.Append("                   el: '" + elment + "', \n");
                                sb.Append("                   clearable:true, \n");
                                sb.Append("                   options: [], \n");
                                isWriteInt = false;
                            }
                        }
                        else
                        if (isWriteInt)
                        {
                            sb.Append("                   el: (props: any, { attrs }: SetupContext) => { \n");
                            sb.Append("                     return h(inputNumber, {  \n");
@@ -1876,7 +1977,7 @@
                            sb.Append("                       ...attrs,  \n");
                            sb.Append("                     })  \n");
                            sb.Append("                   },\n");
                            sb.Append("                   width: '100%',\n");
                            //配置精度?
                            sb.Append("                   step: 1,\n");
                            sb.Append("                   precision: 0, \n");
@@ -1887,22 +1988,41 @@
                        sb.Append("                   el: '" + elment + "', \n");
                    }
                    sb.Append("                   disabled: disabled, \n");
                    sb.Append("                   //disabled: disabled, \n");
                    sb.Append("                   placeholder: '请输入" + columnModel.Description + "', \n");
                    if (columnModel.IsNullable == false)
                    {
                        sb.Append("              rules: [{required: true, message: '" + columnModel.Description + "不能为空', trigger: 'blur' }], \n");
                    }
                    //添加类型
                    //switch (enumDT)
                    //{
                    //    case DataTypeEnum.dt_bit:
                    //    case DataTypeEnum.dt_tinyint:
                    //        sb.Append("                 options: [{label: '是',value: 'true'}, {label: '否',value: 'false'}] \n");
                    //        break;
                    //    default:
                    //        break;
                    //}
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_bit:
                        case DataTypeEnum.dt_tinyint:
                            //增加对枚举类型的支持
                            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");
                                    sb.Append("                 options: BOOLEAN_OPTIONS_AddEdit \n");
                                }
                            }
                            else
                            {
                                //sb.Append("                 options: [{label: '是',value: true}, {label: '否',value: false}] \n");
                                sb.Append("                 options: BOOLEAN_OPTIONS_AddEdit \n");
                            }
                            break;
                        default:
                            break;
                    }
                    sb.Append("                }, \n");
                }
                //去掉最后一个,
@@ -1917,7 +2037,7 @@
        }
        /// <summary>
        /// èŽ·å–VUE formOptions字符串(高级查询中的)
        /// æž„建 é«˜çº§æŸ¥è¯¢ä¸­çš„form字段
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
@@ -1933,19 +2053,26 @@
      el: 'input',
      disabled: disabled,
      placeholder: '请输入物料编码',
      rules: [{ required: true, message: '物料编码不能为空', trigger: 'blur' }],
                 highSelectAttrs:{
                     prop: 'materialCode_FilterMode',
                     el: 'select',
                     placeholder: '请选择',
                     options:FILTER_MODE_OPTIONS_STRING,
                   }
    },
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                //List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in columnModelList)
                {
                    //首字母小写
                    var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    var elment = "input";
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_datetime:
                            elment = "date-picker";
                            break;
                        //case DataTypeEnum.dt_datetime:
                        //    elment = "date-picker";
                        //    break;
                        case DataTypeEnum.dt_bit:
                        case DataTypeEnum.dt_tinyint:
                            elment = "select";
@@ -1955,19 +2082,38 @@
                    }
                    sb.Append("                { \n");
                    sb.Append("                   label: '" + columnModel.Description + "', \n");
                    sb.Append("                   prop: '" + columnModel.ColumnName + "', \n");
                    sb.Append("                   prop: '" + low_prop_ColumnName + "', \n");
                    //添加类型
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_datetime:
                            sb.Append("                   type: 'datetimerange', \n");
                            break;
                        default:
                            break;
                    }
                    //switch (enumDT)
                    //{
                    //    case DataTypeEnum.dt_datetime:
                    //        sb.Append("                   el: (props: any, { attrs }: SetupContext) => { \n");
                    //        sb.Append("                     return h(dateTimePickerRange, {  \n");
                    //        sb.Append("                       ...props,\n");
                    //        sb.Append("                       clearable: true, \n");
                    //        sb.Append("                       ...attrs,  \n");
                    //        sb.Append("                     })  \n");
                    //        sb.Append("                   },\n");
                    if (enumDT == DataTypeEnum.dt_decimal)
                    //        sb.Append("                   width: '100%',\n");
                    //        break;
                    //    default:
                    //        break;
                    //}
                    if (enumDT == DataTypeEnum.dt_datetime)
                    {
                        sb.Append("                   el: (props: any, { attrs }: SetupContext) => { \n");
                        sb.Append("                     return h(dateTimePickerRange, {  \n");
                        sb.Append("                       ...props,\n");
                        sb.Append("                       clearable: true, \n");
                        sb.Append("                       ...attrs,  \n");
                        sb.Append("                     })  \n");
                        sb.Append("                   },\n");
                        sb.Append("                   width: '100%',\n");
                    }
                    else if (enumDT == DataTypeEnum.dt_decimal)
                    {
                        sb.Append("                   el: (props: any, { attrs }: SetupContext) => { \n");
                        sb.Append("                     return h(inputNumber, {  \n");
@@ -1977,12 +2123,14 @@
                        sb.Append("                     })  \n");
                        sb.Append("                   },\n");
                        sb.Append("                   width: '100%',\n");
                        //配置精度?这里需要获取数据库中的精度!!!TODO:
                        sb.Append("                   step: 0.01,\n");
                        sb.Append("                   precision: 2, \n");
                    }
                    else if (enumDT == DataTypeEnum.dt_int)
                    {
                        bool isWriteInt = true;
                        //判断是否是下拉类型
                        //增加对枚举类型的支持 
                        if (param.EnumList?.Count > 0)
@@ -1992,9 +2140,12 @@
                            {
                                elment = "select";
                                sb.Append("                   el: '" + elment + "', \n");
                                sb.Append("                   clearable:true, \n");
                                sb.Append("                   option: [], \n");
                                isWriteInt = false;
                            }
                        }
                        else
                        if (isWriteInt)
                        {
                            sb.Append("                   el: (props: any, { attrs }: SetupContext) => { \n");
                            sb.Append("                     return h(inputNumber, {  \n");
@@ -2004,6 +2155,7 @@
                            sb.Append("                     })  \n");
                            sb.Append("                   },\n");
                            sb.Append("                   width: '100%',\n");
                            //配置精度?
                            sb.Append("                   step: 1,\n");
                            sb.Append("                   precision: 0, \n");
@@ -2014,22 +2166,101 @@
                        sb.Append("                   el: '" + elment + "', \n");
                    }
                    sb.Append("                   disabled: disabled, \n");
                    sb.Append("                   //disabled: disabled, \n");
                    sb.Append("                   placeholder: '请输入" + columnModel.Description + "', \n");
                    if (columnModel.IsNullable == false)
                    {
                        sb.Append("              rules: [{required: true, message: '" + columnModel.Description + "不能为空', trigger: 'blur' }], \n");
                    }
                    //添加类型
                    //switch (enumDT)
                    //{
                    //    case DataTypeEnum.dt_bit:
                    //    case DataTypeEnum.dt_tinyint:
                    //        sb.Append("                 options: [{label: '是',value: 'true'}, {label: '否',value: 'false'}] \n");
                    //        break;
                    //    default:
                    //        break;
                    //}
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_bit:
                        case DataTypeEnum.dt_tinyint:
                            //增加对枚举类型的支持
                            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");
                }
                //去掉最后一个,
@@ -2139,10 +2370,11 @@
                /*
                  materialCode: formData.value.materialCode,
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                foreach (var columnModel in columnModelList)
                {
                    sb.Append($"{columnModel.ColumnName}: formData.value.{columnModel.ColumnName}, \n");
                    //首字母小写
                    var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
                    sb.Append($"{low_prop_ColumnName}: formData.value.{low_prop_ColumnName}, \n");
                }
                //去掉最后一个,
                var res = sb.ToString();
@@ -2163,10 +2395,27 @@
                /*
                  materialCode: formData.value.materialCode,
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                foreach (var columnModel in columnModelList)
                {
                    sb.Append($"{columnModel.ColumnName}: formData.value.{columnModel.ColumnName}, \n");
                    //首字母小写
                    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();
@@ -2180,7 +2429,86 @@
        }
        public static string Get_LikeQueryAttrs(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                  [模糊查询字段]:'TaskCode','MaterialMode', 'ProductCode'
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageTableListQueryAttributes(columnModelList);
                foreach (var columnModel in newList)
                {
                    //获取数据类型
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_nvarchar:
                        case DataTypeEnum.dt_varchar:
                        case DataTypeEnum.dt_longtext:
                            sb.Append($"'{columnModel.ColumnName}',");
                            break;
                        default:
                            break;
                    }
                }
                //去掉最后一个,
                var res = sb.ToString();
                if (res.Length > 1)
                {
                    res = res.Substring(0, res.Length - 1);
                }
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static string Get_LikeQueryAttrsName(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                  [模糊查询字段名]:请输入任务编码/原料型号/产品代码
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageTableListQueryAttributes(columnModelList);
                sb.Append("请输入");
                foreach (var columnModel in newList)
                {
                    //获取数据类型
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_nvarchar:
                        case DataTypeEnum.dt_varchar:
                        case DataTypeEnum.dt_longtext:
                            sb.Append($"{columnModel.Description}/");
                            break;
                        default:
                            break;
                    }
                }
                //去掉最后一个,
                var res = sb.ToString();
                res = res.Substring(0, res.Length - 1);
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// é¡µé¢è¡¨æ ¼åˆ—显示
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <param name="param"></param>
        /// <returns></returns>
        public static string GetVueFormOptionsStr_EntityNameClass_Config_Attrs(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
@@ -2198,16 +2526,34 @@
                foreach (var columnModel in newList)
                {
                    sb.Append("{ \n");
                    //首字母小写
                    var lowerCaseColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
                    var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault();
                    if (findEnumObj != null)
                    {
                        sb.Append("  field: '" + columnModel.ColumnName + "Desc', \n");
                        sb.Append("  field: '" + lowerCaseColumnName + "Desc', \n");
                    }
                    else
                    {
                        sb.Append("  field: '" + columnModel.ColumnName + "', \n");
                        sb.Append("  field: '" + lowerCaseColumnName + "', \n");
                    }
                    sb.Append("  title: '" + columnModel.Description + "', \n");
                    //获取数据类型
                    //设置宽度
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_datetime:
                            sb.Append("  width:180, \n");
                            break;
                        case DataTypeEnum.dt_bit:
                        case DataTypeEnum.dt_tinyint:
                            sb.Append("  width:80, \n");
                            break;
                        default:
                            sb.Append("  width:160, \n");
                            break;
                    }
                    sb.Append("}, \n");
                }
                //去掉最后一个,
@@ -2229,10 +2575,11 @@
                /*
                  materialCode: res.materialCode,
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                foreach (var columnModel in columnModelList)
                {
                    sb.Append($"{columnModel.ColumnName}: res.{columnModel.ColumnName}, \n");
                    //首字母小写
                    var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
                    sb.Append($"{low_prop_ColumnName}: res.{low_prop_ColumnName}, \n");
                }
                //去掉最后一个,
                var res = sb.ToString();
@@ -2253,10 +2600,51 @@
                /*
                  materialCode: res.materialCode,
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                foreach (var columnModel in columnModelList)
                {
                    sb.Append($"formData.value.{columnModel.ColumnName} = '' \n");
                    //首字母小写
                    var low_prop_ColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
                    sb.Append($"formData.value.{low_prop_ColumnName} = '' \n");
                }
                //去掉最后一个,
                var res = sb.ToString();
                res = res.Substring(0, res.Length - 1);
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        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();
@@ -2286,6 +2674,81 @@
                        var _enumAttrName = CommonHelper.FirstLowercase(item.EnumAttrName);
                        sb.Append(_enumAttrName + ": [] as Array<{label: string; value: any }>, \n");
                    }
                    //去掉最后一个,
                    var res = sb.ToString();
                    res = res.Substring(0, res.Length - 1);
                    return res;
                }
                else
                {
                    return "";
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static string GetVueFormOptionsStrForPageAdd_QueryTableListForBool(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                isRead: ({ row }: any) => {
                return (
                  <div>
                    {row.isRead != null ? (row.isRead ? '是' : '否') : '-'}
                  </div>
                )
              },
                creationTime: ({ row }: any) => {
                return (
                  <div>
                    {row.creationTime != null
                      ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss')
                      : '-'}
                  </div>
                )
              },
                 */
                foreach (var columnModel in columnModelList)
                {
                    //属性小写
                    var instanceColumnName = CommonHelper.FirstLowercase(columnModel.ColumnName);
                    //获取数据类型
                    DataTypeEnum enumDT = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType.ToString());
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_datetime:
                            sb.Append(instanceColumnName + ": ({ row }: any) => { \n");
                            sb.Append(" return ( \n");
                            sb.Append("   <div>  \n");
                            sb.Append("     {row." + instanceColumnName + " != null \n");
                            sb.Append("     ? dayjs(row." + instanceColumnName + ").format('YYYY-MM-DD HH:mm:ss') \n");
                            sb.Append("      : '-'} \n");
                            sb.Append("   </div>  \n");
                            sb.Append("  ) \n");
                            sb.Append("},\n");
                            break;
                        case DataTypeEnum.dt_bit:
                        case DataTypeEnum.dt_tinyint:
                            sb.Append(instanceColumnName + ": ({ row }: any) => { \n");
                            sb.Append(" return ( \n");
                            sb.Append("   <div>  \n");
                            sb.Append("     {row." + instanceColumnName + " != null ? (row." + instanceColumnName + " ? '是' : '否') : '-'} \n");
                            sb.Append("   </div>  \n");
                            sb.Append("  ) \n");
                            sb.Append("},\n");
                            break;
                    }
                }
                //去掉最后一个,