222
schangxiang@126.com
2025-05-06 e8f85cd9f369f8290d55b0e041be35c9c0b50fb6
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/Utility/StructStrHelper.cs
@@ -1,4 +1,5 @@
using GenerateCode_WeiBen_WMS.Model;
using GenerateCode_WeiBen_WMS.Const;
using GenerateCode_WeiBen_WMS.Model;
using System;
using System.Collections.Generic;
using System.Configuration;
@@ -229,6 +230,7 @@
                //    var bb = "";
                //}
                string str_NullFlag = " ";
                if (columnModel.IsNullable) { str_NullFlag = "? "; }
                string attrStr = "";
                attrStr += "        /// <summary>\n";
@@ -421,6 +423,7 @@
                //    var bb = "";
                //}
                string str_NullFlag = " ";
                if (columnModel.IsNullable) { str_NullFlag = "? "; }
                string attrStr = "";
                attrStr += "        /// <summary>\n";
@@ -468,7 +471,15 @@
                        break;
                    default:
                        attrStr += "        public string" + str_NullFlag + attr + " { get; set; }\n";
                        //特殊处理 å­—段 ExtraProperties
                        if (columnModel.ColumnName.ToUpper() == SystemConst.pro_ExtraProperties.ToUpper())
                        {
                            attrStr += "        public ExtraPropertyDictionary" + str_NullFlag + attr + " { get; set; }\n";
                        }
                        else
                        {
                            attrStr += "        public string" + str_NullFlag + attr + " { get; set; }\n";
                        }
                        attrStr += "\n";//最后是加一个空格
                        break;
                }
@@ -1779,6 +1790,515 @@
        /// <summary>
        /// èŽ·å–VUE formOptions字符串(高级查询中的)
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetVueFormOptionsStrForPageAddFormAttributes(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                   {
      label: '物料编码',
      prop: 'materialCode',
      el: 'input',
      disabled: disabled,
      placeholder: '请输入物料编码',
      rules: [{ required: true, message: '物料编码不能为空', trigger: 'blur' }],
    },
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                {
                    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_bit:
                        case DataTypeEnum.dt_tinyint:
                            elment = "select";
                            break;
                        default:
                            break;
                    }
                    sb.Append("                { \n");
                    sb.Append("                   label: '" + columnModel.Description + "', \n");
                    sb.Append("                   prop: '" + columnModel.ColumnName + "', \n");
                    //添加类型
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_datetime:
                            sb.Append("                   type: 'datetimerange', \n");
                            break;
                        default:
                            break;
                    }
                    if (enumDT == DataTypeEnum.dt_decimal)
                    {
                        sb.Append("                   el: (props: any, { attrs }: SetupContext) => { \n");
                        sb.Append("                     return h(inputNumber, { { \n");
                        sb.Append("                       ...props, { \n");
                        sb.Append("                       clearable: true, { \n");
                        sb.Append("                       ...attrs, { \n");
                        sb.Append("                     })  \n");
                        sb.Append("                   },\n");
                        //配置精度?这里需要获取数据库中的精度!!!TODO:
                        sb.Append("                   step: 0.01,\n");
                        sb.Append("                   precision: 2, \n");
                    }
                    else if (enumDT == DataTypeEnum.dt_int)
                    {
                        //判断是否是下拉类型
                        //增加对枚举类型的支持
                        if (param.EnumList?.Count > 0)
                        {
                            var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault();
                            if (findEnumObj != null)
                            {
                                elment = "select";
                                sb.Append("                   el: '" + elment + "', \n");
                            }
                        }
                        else
                        {
                            sb.Append("                   el: (props: any, { attrs }: SetupContext) => { \n");
                            sb.Append("                     return h(inputNumber, { { \n");
                            sb.Append("                       ...props, { \n");
                            sb.Append("                       clearable: true, { \n");
                            sb.Append("                       ...attrs, { \n");
                            sb.Append("                     })  \n");
                            sb.Append("                   },\n");
                            //配置精度?
                            sb.Append("                   step: 1,\n");
                            sb.Append("                   precision: 0, \n");
                        }
                    }
                    else
                    {
                        sb.Append("                   el: '" + elment + "', \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;
                    //}
                    sb.Append("                }, \n");
                }
                //去掉最后一个,
                var res = sb.ToString();
                res = res.Substring(0, res.Length - 1);
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// èŽ·å–VUE formOptions字符串(高级查询中的)
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetVueFormOptionsStrForPageAddFormAttributes_Query(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                   {
      label: '物料编码',
      prop: 'materialCode',
      el: 'input',
      disabled: disabled,
      placeholder: '请输入物料编码',
      rules: [{ required: true, message: '物料编码不能为空', trigger: 'blur' }],
    },
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                {
                    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_bit:
                        case DataTypeEnum.dt_tinyint:
                            elment = "select";
                            break;
                        default:
                            break;
                    }
                    sb.Append("                { \n");
                    sb.Append("                   label: '" + columnModel.Description + "', \n");
                    sb.Append("                   prop: '" + columnModel.ColumnName + "', \n");
                    //添加类型
                    switch (enumDT)
                    {
                        case DataTypeEnum.dt_datetime:
                            sb.Append("                   type: 'datetimerange', \n");
                            break;
                        default:
                            break;
                    }
                    if (enumDT == DataTypeEnum.dt_decimal)
                    {
                        sb.Append("                   el: (props: any, { attrs }: SetupContext) => { \n");
                        sb.Append("                     return h(inputNumber, { { \n");
                        sb.Append("                       ...props, { \n");
                        sb.Append("                       clearable: true, { \n");
                        sb.Append("                       ...attrs, { \n");
                        sb.Append("                     })  \n");
                        sb.Append("                   },\n");
                        //配置精度?这里需要获取数据库中的精度!!!TODO:
                        sb.Append("                   step: 0.01,\n");
                        sb.Append("                   precision: 2, \n");
                    }
                    else if (enumDT == DataTypeEnum.dt_int)
                    {
                        //判断是否是下拉类型
                        //增加对枚举类型的支持
                        if (param.EnumList?.Count > 0)
                        {
                            var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault();
                            if (findEnumObj != null)
                            {
                                elment = "select";
                                sb.Append("                   el: '" + elment + "', \n");
                            }
                        }
                        else
                        {
                            sb.Append("                   el: (props: any, { attrs }: SetupContext) => { \n");
                            sb.Append("                     return h(inputNumber, { { \n");
                            sb.Append("                       ...props, { \n");
                            sb.Append("                       clearable: true, { \n");
                            sb.Append("                       ...attrs, { \n");
                            sb.Append("                     })  \n");
                            sb.Append("                   },\n");
                            //配置精度?
                            sb.Append("                   step: 1,\n");
                            sb.Append("                   precision: 0, \n");
                        }
                    }
                    else
                    {
                        sb.Append("                   el: '" + elment + "', \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;
                    //}
                    sb.Append("                }, \n");
                }
                //去掉最后一个,
                var res = sb.ToString();
                res = res.Substring(0, res.Length - 1);
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// èŽ·å–VUE formOptions字符串(高级查询中的)
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetVueFormOptionsStrForCommonQueryEnumForFrom(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                const yesOrNoTypeEnum = await wmsMaterialDrawer.getWmsEnumData({
      EnumName: 'YesNoEnum',
    })
    updateFormItemOptions('isMainBranch', yesOrNoTypeEnum)
                 */
                if (param.EnumList?.Count > 0)
                {
                    foreach (var item in param.EnumList)
                    {
                        //属性小写
                        var instanceName = CommonHelper.FirstLowercase(item.EnumType);
                        var _enumAttrName = CommonHelper.FirstLowercase(item.EnumAttrName);
                        sb.Append("const " + instanceName + "Enum = await " + param.PageMenuInstanceName + "Drawer.getWmsEnumData({ \n");
                        sb.Append(" EnumName: '" + item.EnumType + "', \n");
                        sb.Append("}) \n");
                        sb.Append("updateFormItemOptions('" + _enumAttrName + "', " + instanceName + "Enum) \n");
                    }
                }
                var res = sb.ToString();
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static string GetVueFormOptionsStr_EntityNameClass_fetchEnumData(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                // èŽ·å–ç‰©æ–™ç±»åž‹æžšä¸¾
        const materialTypeData = await getWmsEnumData({
          EnumName: 'MaterialTypeEnum',
        })
        enumOptions.materialType = materialTypeData.map((item) => ({
          label: item.description,
          value: item.value,
        }))
                 */
                if (param.EnumList?.Count > 0)
                {
                    foreach (var item in param.EnumList)
                    {
                        //属性小写
                        var instanceName = CommonHelper.FirstLowercase(item.EnumType);
                        var _enumAttrName = CommonHelper.FirstLowercase(item.EnumAttrName);
                        sb.Append("const "+ instanceName + "Data = await getWmsEnumData({ \n");
                        sb.Append(" EnumName: '" + item.EnumType + "', \n");
                        sb.Append("}) \n");
                        sb.Append("enumOptions."+ instanceName + " = "+ instanceName + "Data.map((item) => ({ \n");
                        sb.Append("  label: item.description, \n");
                        sb.Append("  value: item.value, \n");
                        sb.Append("}) \n");
                    }
                }
                var res = sb.ToString();
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// èŽ·å–VUE formOptions字符串(高级查询中的)
        /// </summary>
        /// <param name="columnModelList"></param>
        /// <returns></returns>
        public static string GetVueFormOptionsStrForSave_PageAddFormAttributes(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                  materialCode: formData.value.materialCode,
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                {
                    sb.Append($"{columnModel.ColumnName}: formData.value.{columnModel.ColumnName}, \n");
                }
                //去掉最后一个,
                var res = sb.ToString();
                res = res.Substring(0, res.Length - 1);
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static string GetVueFormOptionsStrForSave_PageAddFormAttributes_Query(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                  materialCode: formData.value.materialCode,
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                {
                    sb.Append($"{columnModel.ColumnName}: formData.value.{columnModel.ColumnName}, \n");
                }
                //去掉最后一个,
                var res = sb.ToString();
                res = res.Substring(0, res.Length - 1);
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static string GetVueFormOptionsStr_EntityNameClass_Config_Attrs(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                {
    field: 'materialCode',
    title: '物料编码',
  },
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageTableListQueryAttributes(columnModelList);
                foreach (var columnModel in newList)
                {
                    sb.Append("{ \n");
                    var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == columnModel.ColumnName).FirstOrDefault();
                    if (findEnumObj != null)
                    {
                        sb.Append("  field: '" + columnModel.ColumnName + "Desc', \n");
                    }
                    else {
                        sb.Append("  field: '" + columnModel.ColumnName + "', \n");
                    }
                    sb.Append("  field: '" + columnModel.Description + "', \n");
                    sb.Append("} \n");
                }
                //去掉最后一个,
                var res = sb.ToString();
                res = res.Substring(0, res.Length - 1);
                return res;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static string GetVueFormOptionsStrForPageAddFormAttributesByOpen(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                  materialCode: res.materialCode,
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                {
                    sb.Append($"{columnModel.ColumnName}: res.{columnModel.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(List<ColumnModel> columnModelList, GenerateCodeParam param)
        {
            StringBuilder sb = new StringBuilder();
            try
            {
                /*
                  materialCode: res.materialCode,
                 */
                List<ColumnModel> newList = ListHelper.RemoveForPageAddFormAttributes(columnModelList);
                foreach (var columnModel in newList)
                {
                    sb.Append($"formData.value.{columnModel.ColumnName} = '' \n");
                }
                //去掉最后一个,
                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();
            try
            {
                /*
                  isMainBranch: [] as Array<{ label: string; value: any }>,
                 */
                if (param.EnumList?.Count > 0)
                {
                    foreach (var item in param.EnumList)
                    {
                        //属性小写
                        var instanceName = CommonHelper.FirstLowercase(item.EnumType);
                        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;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// èŽ·å–VUE å¯¼å‡ºæ•°ç»„字符串-汉字+属性
        /// </summary>
        /// <param name="columnModelList"></param>