222
schangxiang@126.com
2025-05-11 051b5c867aa016250207b0c4633b8c29e36eb51d
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)
                {
@@ -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";
@@ -1820,7 +1866,7 @@
        /// </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
@@ -1860,24 +1906,36 @@
                    sb.Append("                   prop: '" + low_prop_ColumnName + "', \n");
                    //添加类型
                    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");
                    //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;
                    //        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(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");
@@ -1904,6 +1962,8 @@
                            {
                                elment = "select";
                                sb.Append("                   el: '" + elment + "', \n");
                                sb.Append("                   clearable:true, \n");
                                sb.Append("                   options: [], \n");
                                isWriteInt = false;
                            }
                        }
@@ -1938,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;
@@ -1999,24 +2076,35 @@
                    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(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");
                    //        break;
                    //    default:
                    //        break;
                    //}
                    if (enumDT == DataTypeEnum.dt_datetime)
                    {
                        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");
                        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");
                            break;
                        default:
                            break;
                        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");
@@ -2043,6 +2131,8 @@
                            {
                                elment = "select";
                                sb.Append("                   el: '" + elment + "', \n");
                                sb.Append("                   clearable:true, \n");
                                sb.Append("                   option: [], \n");
                                isWriteInt = false;
                            }
                        }
@@ -2075,7 +2165,25 @@
                    {
                        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;
@@ -2189,8 +2297,7 @@
                /*
                  materialCode: formData.value.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);
@@ -2215,7 +2322,7 @@
                /*
                  materialCode: formData.value.materialCode,
                 */
                List<ColumnModel> newList = ListHelper.RemoveAttrForQueryMode(columnModelList);
                List<ColumnModel> newList = ListHelper.RemoveForPageTableListQueryAttributes(columnModelList);
                foreach (var columnModel in newList)
                {
@@ -2237,7 +2344,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();
@@ -2267,6 +2453,22 @@
                        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");
                }
                //去掉最后一个,
@@ -2288,8 +2490,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);
@@ -2317,7 +2518,9 @@
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                {
                    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();