222
schangxiang@126.com
2025-05-07 cac74f86a004d8b31869ad4b3931284343e56991
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Code/MainForm.cs
@@ -35,6 +35,10 @@
            this.tb_PageMenuInstanceName.Text = "wmsMaterial";
            this.tb_CreatePerson.Text = "shaocx";//创建人
            this.tb_EntityName.Text = "WmsMaterial";//实体类名
            this.tb_LikeQueryAttrs.Text = "'MaterialCode', 'MaterialName', 'Remark'";
            this.tb_LikeQueryAttrsName.Text = "请输入物料编码/物料名称/备注";
            //this.tb_EntityProName.Text = "wmsMaterial";//实体类对象名
            this.tb_EnumList.Text = "PurchaseType|PurchaseTypeEnum|PurchaseTypeDesc,MaterialType|MaterialTypeEnum|MaterialTypeDesc,IsMainBranch|YesNoEnum|IsMainBranchDesc";
@@ -77,6 +81,7 @@
        //一键生成所有文件
        private void btn_CreateFile_Click(object sender, EventArgs e)
        {
            var genCodeRootPath = "";
            try
            {
                projectNamePrefix = this.tb_ProjectNamePrefix.Text;
@@ -99,6 +104,40 @@
                string wcf_NameSpacePath = this.tb_WCF_NameSpacePath.Text.Trim();//WCF项目命名空间 
                string filePrefixName = this.tb_FileName.Text.Trim();//文件前缀名
                string modulelogo = this.tb_Modulelogo.Text.Trim();//模块简写
                string _tb_DeleteAlertAttr = this.tb_DeleteAlertAttr.Text.Trim();//中文注释
                if (_tb_DeleteAlertAttr == "")
                {
                    MessageBox.Show("请输入 åˆ é™¤æç¤ºå­—段!");
                    this.tb_DeleteAlertAttr.Focus();
                    return;
                }
                string _tb_ValidateRepeatName = this.tb_ValidateRepeatName.Text.Trim();//中文注释
                if (_tb_ValidateRepeatName == "")
                {
                    MessageBox.Show("请输入 é‡å¤æ€§æ ¡éªŒå­—段!");
                    this.tb_ValidateRepeatName.Focus();
                    return;
                }
                string _tb_LikeQueryAttrsName = this.tb_LikeQueryAttrsName.Text.Trim();//中文注释
                if (_tb_LikeQueryAttrsName == "")
                {
                    MessageBox.Show("请输入 æ¨¡ç³ŠæŸ¥è¯¢å­—段名!");
                    this.tb_LikeQueryAttrsName.Focus();
                    return;
                }
                string _tb_LikeQueryAttrs = this.tb_LikeQueryAttrs.Text.Trim();//中文注释
                if (_tb_LikeQueryAttrs == "")
                {
                    MessageBox.Show("请输入 æ¨¡ç³ŠæŸ¥è¯¢å­—段!");
                    this.tb_LikeQueryAttrs.Focus();
                    return;
                }
                string chinaComment = this.tb_ChinaComment.Text.Trim();//中文注释
                if (chinaComment == "")
                {
@@ -180,6 +219,7 @@
                GenerateCodeParam param = new GenerateCodeParam()
                {
                    DeleteAlertAttr = CommonHelper.FirstLowercase(_tb_DeleteAlertAttr),
                    Modulelogo = modulelogo,
                    ChinaComment = chinaComment,
                    PageMenuName = menuName,
@@ -187,17 +227,36 @@
                    NameSpacePath = wcf_NameSpacePath,
                    ColumnNameList = columnList,
                    EntityName = entityName,
                    EntityInstanceName = tableAlias
                    EntityInstanceName = tableAlias,
                    LikeQueryAttrs = _tb_LikeQueryAttrs,
                    LikeQueryAttrsName = _tb_LikeQueryAttrsName,
                    ValidateRepeatName = this.tb_ValidateRepeatName.Text
                };
                //处理枚举类型
                List<EnumModel> enumList = new List<EnumModel>();
                var str_enumList = this.tb_EnumList.Text.Trim();
                if (str_enumList.IndexOf(',') > -1)
                {
                    str_enumList = str_enumList.Replace("\n", "");
                    str_enumList = str_enumList.Replace("\t", "");
                    str_enumList = str_enumList.Replace("\r", "");
                    var arr_enumList = str_enumList.Split(',');
                    foreach (var item in arr_enumList)
                    {
                        var arr_single = item.Split('|');
                        enumList.Add(new EnumModel()
                        {
                            EnumAttrName = arr_single[0],
                            EnumType = arr_single[1],
                            EnumTypeDesc = arr_single[2]
                        });
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(str_enumList))
                    {
                        var arr_single = str_enumList.Split('|');
                        enumList.Add(new EnumModel()
                        {
                            EnumAttrName = arr_single[0],
@@ -211,9 +270,10 @@
                //生成Model
                //CreateModelFile(columnList, tableName, filePrefixName, wcf_NameSpacePath, createPerson, chinaComment, entityName, modulelogo);
                //CreateModelParamFile(columnList, tableName, filePrefixName, wcf_NameSpacePath, createPerson, chinaComment, entityName, modulelogo);
                 genCodeRootPath = tbPath.Text + @"\" + tb_WCF_NameSpacePath.Text.Trim();
                var webFolerPath = tb_WCF_NameSpacePath.Text.Trim() + "_Web";
                #region å®žä½“ç±»
                var entityFilePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application.Contracts\Dtos\" + tb_EntityName.Text.Trim();
                var entityFilePath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application.Contracts\Dtos\" + tb_EntityName.Text.Trim();
                //1、生成 åˆ†é¡µæŸ¥è¯¢å®žä½“ æ–‡ä»¶
                str_generate = InputQueryModel_Generate.CreateQueryModelLText(param);
                tf = TextHelper.Export2File_V2(entityFilePath, $"Get{param.EntityName}Input.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
@@ -247,12 +307,12 @@
                #region AppSerivice
                //8、生成 IAppService æ–‡ä»¶
                var appServiceFilePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application.Contracts\Services";
                var appServiceFilePath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application.Contracts\Services";
                str_generate = IAppService_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(appServiceFilePath, $"I{param.EntityName}AppService.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //9、生成 AppService æ–‡ä»¶
                appServiceFilePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application\Implements";
                appServiceFilePath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application\Implements";
                str_generate = AppService_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(appServiceFilePath, $"{param.EntityName}AppService.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
@@ -262,7 +322,7 @@
                #region Contorller
                //10、生成 Contorller æ–‡ä»¶
                var continerlllePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @"\Controller";
                var continerlllePath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @"\Controller";
                str_generate = Controller_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(continerlllePath, $"{param.EntityName}Controller.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
@@ -272,7 +332,7 @@
                #region Domain
                //11、生成 IRepository æ–‡ä»¶
                var iRepositoryPath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Domain\" + tb_EntityName.Text.Trim(); ;
                var iRepositoryPath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Domain\" + tb_EntityName.Text.Trim(); ;
                str_generate = IRepository_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(iRepositoryPath, $"I{param.EntityName}Repository.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
@@ -282,7 +342,7 @@
                #region EntityFrameworkCore
                //12、生成 EfCoreRepository æ–‡ä»¶
                var efCoreRepositoryPath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".EntityFrameworkCore\Repositories";
                var efCoreRepositoryPath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".EntityFrameworkCore\Repositories";
                str_generate = EfCoreRepository_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(efCoreRepositoryPath, $"EfCore{param.EntityName}Repository.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
@@ -290,7 +350,7 @@
                #endregion
                #region Web
                var webRootPath = tbPath.Text + @"\web\src\widgets\" + tb_EntityName.Text.Trim();
                var webRootPath = genCodeRootPath + @"\" + webFolerPath + @"\src\widgets\" + tb_EntityName.Text.Trim();
                //13、生成 Index æ–‡ä»¶
                str_generate = Index_Generate.CreateText(param);
@@ -303,7 +363,7 @@
                //15、生成 Controllers\File æ–‡ä»¶
                str_generate = File_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath+ @"\Controllers", $"File.ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Controllers", $"File.ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //16、生成 Controllers\EntityMode æ–‡ä»¶
                str_generate = EntityMode_Generate.CreateText(param);
@@ -314,7 +374,92 @@
                str_generate = EntityModeDrawer_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Controllers", $"{tb_EntityName.Text.Trim()}Drawer.tsx", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //18、生成 Controllers\EntityModeQueryDrawer æ–‡ä»¶
                str_generate = EntityModeQueryDrawer_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Controllers", $"{tb_EntityName.Text.Trim()}QueryDrawer.tsx", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //19、生成 type\type æ–‡ä»¶
                str_generate = type_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\type", $"type.d.ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //20、生成 Views\NameSpacePath æ–‡ä»¶
                str_generate = NameSpacePath_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Views", $"{param.EntityName}.tsx", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //21、生成 Views\NameSpacePath_module æ–‡ä»¶
                str_generate = NameSpacePath_module_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Views", $"{param.EntityName}.module.scss", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //22、生成 Views\NameSpacePath_Config æ–‡ä»¶
                str_generate = EntityNameClass_json_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Views\config", $"{param.EntityName}.json", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //23、生成 Views\NameSpacePath_Config æ–‡ä»¶
                str_generate = EntityNameClass_module_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\" + param.EntityName, $"{param.EntityName}.module.scss", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //24、生成 Views\EntityNameClass模板 æ–‡ä»¶
                str_generate = EntityNameClass_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\" + param.EntityName, $"{param.EntityName}.tsx", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //25、生成 Views\EntityNameClass_Config模板 æ–‡ä»¶
                str_generate = EntityNameClass_Config_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\" + param.EntityName, $"Config.ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //26、生成 Views\EntityNameClassDrawer_module_Generate æ–‡ä»¶
                str_generate = EntityNameClassDrawer_module_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\Dialog\" + param.EntityName + "Drawer", param.EntityName + "Drawer" + $".module.scss", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //27、生成 Views\EntityNameClassDrawer_Generate æ–‡ä»¶
                str_generate = EntityNameClassDrawer_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\Dialog\" + param.EntityName + "Drawer", param.EntityName + "Drawer" + $".tsx", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //28、生成 Views\EntityNameClassDrawer_module_Generate æ–‡ä»¶
                str_generate = EntityNameClassQueryDrawer_module_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\Dialog\" + param.EntityName + "QueryDrawer", param.EntityName + "QueryDrawer" + $".module.scss", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //29、生成 Views\EntityNameClassDrawer_Generate æ–‡ä»¶
                str_generate = EntityNameClassQueryDrawer_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Views\Pages\Dialog\" + param.EntityName + "QueryDrawer", param.EntityName + "QueryDrawer" + $".tsx", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //30、生成 Views\EntityNameClassDrawer_Generate æ–‡ä»¶
                str_generate = Models_EntityNameClassQueryDrawer_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Models", param.EntityName + "QueryDrawer" + $".ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //31、生成 Views\EntityNameClassDrawer_Generate æ–‡ä»¶
                str_generate = Models_EntityNameClassDrawer_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Models", param.EntityName + "Drawer" + $".ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //32、生成 Views\EntityNameClassDrawer_Generate æ–‡ä»¶
                str_generate = Models_EntityNameClass_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Models", param.EntityName + $".ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //33、生成 Views\EntityNameClassDrawer_Generate æ–‡ä»¶
                str_generate = Models_Service_EntityNameClassQueryDrawer_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Models\Service", param.EntityName + "QueryDrawer" + $".ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //34、生成 Views\EntityNameClassDrawer_Generate æ–‡ä»¶
                str_generate = Models_Service_EntityNameClassDrawer_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Models\Service", param.EntityName + "Drawer" + $".ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                //35、生成 Views\EntityNameClassDrawer_Generate æ–‡ä»¶
                str_generate = Models_Service_EntityNameClass_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(webRootPath + @"\Models\Service", param.EntityName + $".ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
                #endregion
                //36、生成 AutoMapperProfile æ–‡ä»¶
                var autoMapFilePath = genCodeRootPath + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application\MapperProfiles";
                str_generate = AutoMapperProfile_Generate.CreateText(param);
                tf = TextHelper.Export2File_V2(autoMapFilePath, param.EntityName + $"AutoMapperProfile.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
@@ -381,7 +526,7 @@
            }
            //MessageBox.Show("生成文件成功!");
            //成功之后打开文件夹
            using (System.Diagnostics.Process.Start(this.tbPath.Text))
            using (System.Diagnostics.Process.Start(genCodeRootPath))
            {
            }
@@ -432,12 +577,12 @@
                {
                    var moule_str = tableName.Substring(index + 1, tableName.Length - index - 1);
                    this.tb_Modulelogo.Text = moule_str;
                    this.tb_EntityProName.Text = CommonHelper.TitleToLower(moule_str);
                    tb_PageMenuInstanceName.Text = this.tb_EntityProName.Text = CommonHelper.TitleToLower(moule_str);
                }
                else
                {
                    this.tb_Modulelogo.Text = tableName;
                    this.tb_EntityProName.Text = CommonHelper.TitleToLower(tableName);
                    tb_PageMenuInstanceName.Text = this.tb_EntityProName.Text = CommonHelper.TitleToLower(tableName);
                }
            }
        }