From cfa1401896d5f7d5e71a6524d6e317a548eae1c7 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 06 5月 2025 14:57:16 +0800
Subject: [PATCH] 222

---
 Weben_CMS专用代码生成器/Code/MainForm.cs |  274 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 266 insertions(+), 8 deletions(-)

diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs"
index d49a1f2..fb892ba 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/MainForm.cs"
@@ -31,9 +31,16 @@
             this.tb_WCF_NameSpacePath.Text = "HIAWms";//WCF椤圭洰鍛藉悕绌洪棿 
             this.tb_FileName.Text = "Xiangzi";//鏂囦欢鍓嶇紑鍚�
             this.tb_ChinaComment.Text = "鐗╂枡鍩虹淇℃伅琛�";//涓枃娉ㄩ噴
+            this.tb_MenuName.Text = "鐗╂枡淇℃伅";//涓枃娉ㄩ噴
+            this.tb_PageMenuInstanceName.Text = "wmsMaterial";
             this.tb_CreatePerson.Text = "shaocx";//鍒涘缓浜�
-            this.tb_EntityName.Text = "WmsMaterials";//瀹炰綋绫诲悕
-            this.tb_EntityProName.Text = "_wmsMaterials";//瀹炰綋绫诲璞″悕
+            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";
 
             this.cmb_DataSource.DropDownStyle = ComboBoxStyle.DropDownList;
             List<ListItem> itemList = CommonHelper.GetDataSources();
@@ -96,7 +103,53 @@
                 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_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 == "")
+                {
+                    MessageBox.Show("璇疯緭鍏� 琛ㄧ殑涓枃娉ㄨВ锛�");
+                    this.tb_ChinaComment.Focus();
+                    return;
+                }
+                string menuName = this.tb_MenuName.Text.Trim();//涓枃娉ㄩ噴
+                if (menuName == "")
+                {
+                    MessageBox.Show("璇疯緭鍏� 椤甸潰鑿滃崟鍚嶏紒");
+                    this.tb_MenuName.Focus();
+                    return;
+                }
+                string _tb_PageMenuInstanceName = this.tb_PageMenuInstanceName.Text.Trim();//涓枃娉ㄩ噴
+                if (_tb_PageMenuInstanceName == "")
+                {
+                    MessageBox.Show("璇疯緭鍏� 椤甸潰鑿滃崟瀵硅薄缂╁啓锛�");
+                    this.tb_PageMenuInstanceName.Focus();
+                    return;
+                }
                 string createPerson = this.tb_CreatePerson.Text.Trim();//鍒涘缓浜�
                 string entityName = this.tb_EntityName.Text.Trim();//瀹炰綋绫诲悕
                 string tableAlias = this.tb_EntityProName.Text.Trim();//瀹炰綋绫诲璞″悕/琛ㄥ埆鍚�
@@ -159,10 +212,47 @@
                 {
                     Modulelogo = modulelogo,
                     ChinaComment = chinaComment,
+                    PageMenuName = menuName,
+                    PageMenuInstanceName = _tb_PageMenuInstanceName,
                     NameSpacePath = wcf_NameSpacePath,
                     ColumnNameList = columnList,
-                    EntityName = entityName
+                    EntityName = entityName,
+                    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)
+                {
+                    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],
+                            EnumType = arr_single[1],
+                            EnumTypeDesc = arr_single[2]
+                        });
+                    }
+                }
+                param.EnumList = enumList;
 
                 //鐢熸垚Model
                 //CreateModelFile(columnList, tableName, filePrefixName, wcf_NameSpacePath, createPerson, chinaComment, entityName, modulelogo);
@@ -171,18 +261,186 @@
                 #region 瀹炰綋绫�
                 var entityFilePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application.Contracts\Dtos\" + tb_EntityName.Text.Trim();
                 //1銆佺敓鎴� 鍒嗛〉鏌ヨ瀹炰綋 鏂囦欢
-                str_generate = InputModel_Generate.CreateQueryModelLText(param);
+                str_generate = InputQueryModel_Generate.CreateQueryModelLText(param);
                 tf = TextHelper.Export2File_V2(entityFilePath, $"Get{param.EntityName}Input.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
 
                 //2銆佺敓鎴� CreateDto 鏂囦欢
                 str_generate = CreateDto_Generate.CreateText(param);
                 tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}CreateDto.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
 
-                //3銆佺敓鎴� CreateOrUpdateDtoBase 鏂囦欢
+                //3銆佺敓鎴� UpdateDto 鏂囦欢
+                str_generate = UpdateDto_Generate.CreateText(param);
+                tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}UpdateDto.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
+
+                //4銆佺敓鎴� CreateOrUpdateDtoBase 鏂囦欢
                 str_generate = CreateOrUpdateDtoBase_Generate.CreateText(param);
                 tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}CreateOrUpdateDtoBase.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
 
+                //5銆佺敓鎴� Dto 鏂囦欢
+                str_generate = Dto_Generate.CreateText(param);
+                tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}Dto.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
+
+                //6銆佺敓鎴� Export 鏂囦欢
+                str_generate = ExportModel_Generate.CreateText(param);
+                tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}ExportModel.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
+
+                //7銆佺敓鎴� Import 鏂囦欢
+                str_generate = ImportModel_Generate.CreateText(param);
+                tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}sImportModel.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
+
                 #endregion
+
+                #region AppSerivice
+
+                //8銆佺敓鎴� IAppService 鏂囦欢
+                var appServiceFilePath = tbPath.Text + @"\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";
+                str_generate = AppService_Generate.CreateText(param);
+                tf = TextHelper.Export2File_V2(appServiceFilePath, $"{param.EntityName}AppService.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
+
+
+                #endregion
+
+                #region Contorller
+
+                //10銆佺敓鎴� Contorller 鏂囦欢
+                var continerlllePath = tbPath.Text + @"\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);
+
+
+                #endregion
+
+                #region Domain
+
+                //11銆佺敓鎴� IRepository 鏂囦欢
+                var iRepositoryPath = tbPath.Text + @"\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);
+
+
+                #endregion
+
+                #region EntityFrameworkCore
+
+                //12銆佺敓鎴� EfCoreRepository 鏂囦欢
+                var efCoreRepositoryPath = tbPath.Text + @"\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);
+
+
+                #endregion
+
+                #region Web
+                var webRootPath = tbPath.Text + @"\web\src\widgets\" + tb_EntityName.Text.Trim();
+
+                //13銆佺敓鎴� Index 鏂囦欢
+                str_generate = Index_Generate.CreateText(param);
+                tf = TextHelper.Export2File_V2(webRootPath, $"index.ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
+
+                //14銆佺敓鎴� enum 鏂囦欢
+                str_generate = enum_Generate.CreateText(param);
+                tf = TextHelper.Export2File_V2(webRootPath, $"enum.ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
+
+
+                //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);
+
+                //16銆佺敓鎴� Controllers\EntityMode 鏂囦欢
+                str_generate = EntityMode_Generate.CreateText(param);
+                tf = TextHelper.Export2File_V2(webRootPath + @"\Controllers", $"{tb_EntityName.Text.Trim()}.ts", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo);
+
+
+                //17銆佺敓鎴� Controllers\EntityModeDrawer 鏂囦欢
+                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}.module.scss", 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
+
 
 
                 ////鐢熸垚 OutputModel 鏂囦欢
@@ -299,12 +557,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);
                 }
             }
         }
@@ -349,7 +607,7 @@
 
         private void MainForm_Load(object sender, EventArgs e)
         {
-            tb_EntityProName.Enabled = false;
+            //tb_EntityProName.Enabled = false;
             tb_FileName.Enabled = false;
             tb_Modulelogo.Enabled = false;
             tb_WCF_NameSpacePath.Enabled = true;

--
Gitblit v1.9.3