diff --git a/admin-server/MiaoYu.Api.Admin/ApplicationServices/DevelopmentTools/LowCode/Impl/LowCodeTableService.cs b/admin-server/MiaoYu.Api.Admin/ApplicationServices/DevelopmentTools/LowCode/Impl/LowCodeTableService.cs index f9b83b7..9a7dcbe 100644 --- a/admin-server/MiaoYu.Api.Admin/ApplicationServices/DevelopmentTools/LowCode/Impl/LowCodeTableService.cs +++ b/admin-server/MiaoYu.Api.Admin/ApplicationServices/DevelopmentTools/LowCode/Impl/LowCodeTableService.cs @@ -408,10 +408,12 @@ public class LowCodeTableService : ApplicationService> clientIndexPath = targetTable.ClientIndexPath, clientInfoPath = targetTable.ClientInfoPath, clientServicePath = targetTable.ClientServicePath, + menuPath = targetTable.MenuPath, + routerPath = targetTable.RouterPath, isCover = targetTable.IsCover ?? false }; - res["menu"] = $"views/apps/{targetTable.TableName}s/Index.vue"; - res["router"] = $"/apps/{targetTable.TableName?.ToLower()}s"; + res["menu"] = targetTable.MenuPath ?? $"views/apps/{targetTable.TableName}s/Index.vue"; + res["router"] = targetTable.RouterPath ?? $"/apps/{targetTable.TableName?.ToLower()}s"; return Task.FromResult(res); } diff --git a/admin-server/MiaoYu.Core.CodeGenerator/Abstractions/DataSourceConfig.cs b/admin-server/MiaoYu.Core.CodeGenerator/Abstractions/DataSourceConfig.cs index cb6f1bf..e5398ce 100644 --- a/admin-server/MiaoYu.Core.CodeGenerator/Abstractions/DataSourceConfig.cs +++ b/admin-server/MiaoYu.Core.CodeGenerator/Abstractions/DataSourceConfig.cs @@ -50,6 +50,16 @@ public class DataSourceConfig /// public string ClientServicePathTemplate { get; set; } = string.Empty; + /// + /// 前端菜单路径模板(支持占位符:{TableName}, {TableNameLower}) + /// + public string MenuPathTemplate { get; set; } = string.Empty; + + /// + /// 前端路由路径模板(支持占位符:{TableName}, {TableNameLower}) + /// + public string RouterPathTemplate { get; set; } = string.Empty; + /// /// 代码生成模板目录 /// diff --git a/admin-server/MiaoYu.Core.CodeGenerator/Core/PathResolver.cs b/admin-server/MiaoYu.Core.CodeGenerator/Core/PathResolver.cs index 921a776..3431a2f 100644 --- a/admin-server/MiaoYu.Core.CodeGenerator/Core/PathResolver.cs +++ b/admin-server/MiaoYu.Core.CodeGenerator/Core/PathResolver.cs @@ -33,6 +33,7 @@ public class PathResolver : IScopedDependency var entityName = GetEntityName(tableName, config); var entityNamePlural = config.UsesPluralPath ? entityName + "s" : entityName; + var tableNameLower = string.IsNullOrWhiteSpace(tableName) ? string.Empty : tableName.ToLower(); return template .Replace("{RootPath}", rootPath) @@ -40,7 +41,8 @@ public class PathResolver : IScopedDependency .Replace("{Namespace}", config.EntityNamespace) .Replace("{EntityName}", entityName) .Replace("{EntityNamePlural}", entityNamePlural) - .Replace("{TableName}", tableName); + .Replace("{TableName}", tableName) + .Replace("{TableNameLower}", tableNameLower); } /// diff --git a/admin-server/MiaoYu.Core.CodeGenerator/Models/LowCodeTable.cs b/admin-server/MiaoYu.Core.CodeGenerator/Models/LowCodeTable.cs index a8cba3e..26b537e 100644 --- a/admin-server/MiaoYu.Core.CodeGenerator/Models/LowCodeTable.cs +++ b/admin-server/MiaoYu.Core.CodeGenerator/Models/LowCodeTable.cs @@ -70,6 +70,16 @@ public class LowCodeTable /// public string? ClientServicePath { get; set; } + /// + /// 前端菜单路径 + /// + public string? MenuPath { get; set; } + + /// + /// 前端路由路径 + /// + public string? RouterPath { get; set; } + /// /// 是否覆盖生成 /// diff --git a/admin-server/MiaoYu.Core.CodeGenerator/Services/CodeGenerationService.cs b/admin-server/MiaoYu.Core.CodeGenerator/Services/CodeGenerationService.cs index 87d5066..1aab6b3 100644 --- a/admin-server/MiaoYu.Core.CodeGenerator/Services/CodeGenerationService.cs +++ b/admin-server/MiaoYu.Core.CodeGenerator/Services/CodeGenerationService.cs @@ -177,19 +177,31 @@ public class CodeGenerationService : ICodeGenerationService, IScopedDependency if (string.IsNullOrWhiteSpace(lowCodeTable.ClientIndexPath)) { lowCodeTable.ClientIndexPath = _pathResolver.ResolvePath( - config.ClientIndexPathTemplate, config, lowCodeTable.TableName); + config.ClientIndexPathTemplate, config, lowCodeTable.TableName ?? string.Empty); } if (string.IsNullOrWhiteSpace(lowCodeTable.ClientInfoPath)) { lowCodeTable.ClientInfoPath = _pathResolver.ResolvePath( - config.ClientInfoPathTemplate, config, lowCodeTable.TableName); + config.ClientInfoPathTemplate, config, lowCodeTable.TableName ?? string.Empty); } if (string.IsNullOrWhiteSpace(lowCodeTable.ClientServicePath)) { lowCodeTable.ClientServicePath = _pathResolver.ResolvePath( - config.ClientServicePathTemplate, config, lowCodeTable.TableName); + config.ClientServicePathTemplate, config, lowCodeTable.TableName ?? string.Empty); + } + + if (string.IsNullOrWhiteSpace(lowCodeTable.MenuPath)) + { + lowCodeTable.MenuPath = _pathResolver.ResolvePath( + config.MenuPathTemplate, config, lowCodeTable.TableName ?? string.Empty); + } + + if (string.IsNullOrWhiteSpace(lowCodeTable.RouterPath)) + { + lowCodeTable.RouterPath = _pathResolver.ResolvePath( + config.RouterPathTemplate, config, lowCodeTable.TableName ?? string.Empty); } return lowCodeTable; diff --git a/admin-server/MiaoYu.Repository.Admin/Providers/AdminDataSourceProvider.cs b/admin-server/MiaoYu.Repository.Admin/Providers/AdminDataSourceProvider.cs index 23271c2..0d6027e 100644 --- a/admin-server/MiaoYu.Repository.Admin/Providers/AdminDataSourceProvider.cs +++ b/admin-server/MiaoYu.Repository.Admin/Providers/AdminDataSourceProvider.cs @@ -21,9 +21,11 @@ public class AdminDataSourceProvider : IDataSourceProvider, IScopedDependency ModelPathTemplate = "{RootPath}\\{Namespace}\\Entities\\Apps\\{EntityNamePlural}", ServicePathTemplate = "{AppPath}\\ApplicationServices\\Apps\\{EntityNamePlural}", ControllerPathTemplate = "{AppPath}\\Controllers\\Apps\\{EntityNamePlural}", - ClientIndexPathTemplate = "{RootPath}\\admin-client\\src\\views\\apps\\{TableName}s", - ClientInfoPathTemplate = "{RootPath}\\admin-client\\src\\views\\apps\\{TableName}s", - ClientServicePathTemplate = "{RootPath}\\admin-client\\src\\services\\apps\\{TableName}s", + ClientIndexPathTemplate = "{RootPath}\\admin-client\\src\\views\\apps\\{TableNameLower}s", + ClientInfoPathTemplate = "{RootPath}\\admin-client\\src\\views\\apps\\{TableNameLower}s", + ClientServicePathTemplate = "{RootPath}\\admin-client\\src\\services\\apps\\{TableNameLower}s", + MenuPathTemplate = "views/apps/{TableNameLower}s/Index.vue", + RouterPathTemplate = "/apps/{TableNameLower}s", TemplatePath = "/wwwroot/code_generation/template/", NamingStrategy = EntityNamingStrategy.ToPascalCase, Order = 1, diff --git a/admin-server/MiaoYu.Repository.ChatAI.Admin/Providers/MiaoYuChatDataSourceProvider.cs b/admin-server/MiaoYu.Repository.ChatAI.Admin/Providers/MiaoYuChatDataSourceProvider.cs index 0cbd10a..db46535 100644 --- a/admin-server/MiaoYu.Repository.ChatAI.Admin/Providers/MiaoYuChatDataSourceProvider.cs +++ b/admin-server/MiaoYu.Repository.ChatAI.Admin/Providers/MiaoYuChatDataSourceProvider.cs @@ -21,9 +21,11 @@ public class MiaoYuChatDataSourceProvider : IDataSourceProvider, IScopedDependen ModelPathTemplate = "{RootPath}\\{Namespace}\\Entities\\Apps\\{EntityNamePlural}", ServicePathTemplate = "{AppPath}\\ApplicationServices\\Apps\\ChatAI\\{EntityNamePlural}", ControllerPathTemplate = "{AppPath}\\Controllers\\Apps\\ChatAI\\{EntityNamePlural}", - ClientIndexPathTemplate = "{RootPath}\\admin-client\\src\\views\\apps\\chatai\\{TableName}s", - ClientInfoPathTemplate = "{RootPath}\\admin-client\\src\\views\\apps\\chatai\\{TableName}s", - ClientServicePathTemplate = "{RootPath}\\admin-client\\src\\services\\apps\\chatai\\{TableName}s", + ClientIndexPathTemplate = "{RootPath}\\admin-client\\src\\views\\apps\\chatai\\{TableNameLower}s", + ClientInfoPathTemplate = "{RootPath}\\admin-client\\src\\views\\apps\\chatai\\{TableNameLower}s", + ClientServicePathTemplate = "{RootPath}\\admin-client\\src\\services\\apps\\chatai\\{TableNameLower}s", + MenuPathTemplate = "views/apps/chatai/{TableNameLower}s/Index.vue", + RouterPathTemplate = "/apps/chatai/{TableNameLower}s", TemplatePath = "/wwwroot/code_generation/template/", NamingStrategy = EntityNamingStrategy.ToPascalCase, Order = 2, diff --git a/admin-server/MiaoYu.Repository.LiveForum.Admin/Providers/LiveForumDataSourceProvider.cs b/admin-server/MiaoYu.Repository.LiveForum.Admin/Providers/LiveForumDataSourceProvider.cs index da4e8a7..b39a34e 100644 --- a/admin-server/MiaoYu.Repository.LiveForum.Admin/Providers/LiveForumDataSourceProvider.cs +++ b/admin-server/MiaoYu.Repository.LiveForum.Admin/Providers/LiveForumDataSourceProvider.cs @@ -21,9 +21,11 @@ public class LiveForumDataSourceProvider : IDataSourceProvider, IScopedDependenc ModelPathTemplate = "{RootPath}\\{Namespace}\\Entities\\Apps\\{EntityNamePlural}", ServicePathTemplate = "{AppPath}\\ApplicationServices\\Apps\\LiveForum\\{EntityNamePlural}", ControllerPathTemplate = "{AppPath}\\Controllers\\Apps\\LiveForum\\{EntityNamePlural}", - ClientIndexPathTemplate = "{RootPath}\\admin-client\\src\\views\\apps\\liveforum\\{TableName}", - ClientInfoPathTemplate = "{RootPath}\\admin-client\\src\\views\\apps\\liveforum\\{TableName}", - ClientServicePathTemplate = "{RootPath}\\admin-client\\src\\services\\apps\\liveforum\\{TableName}", + ClientIndexPathTemplate = "{RootPath}\\admin-client\\src\\views\\apps\\liveforum\\{TableNameLower}", + ClientInfoPathTemplate = "{RootPath}\\admin-client\\src\\views\\apps\\liveforum\\{TableNameLower}", + ClientServicePathTemplate = "{RootPath}\\admin-client\\src\\services\\apps\\liveforum\\{TableNameLower}", + MenuPathTemplate = "views/apps/liveforum/{TableNameLower}/Index.vue", + RouterPathTemplate = "/apps/liveforum/{TableNameLower}", TemplatePath = "/wwwroot/code_generation/template/", NamingStrategy = EntityNamingStrategy.KeepOriginal, Order = 3,