From 8ca4379dd803daf341d009bc47f4b6fc8ec074d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=9D=A4?= Date: Mon, 13 Apr 2020 15:09:14 +0800 Subject: [PATCH] 0.2 --- src/cli/AbpVueCli/AbpVueCli.sln | 2 +- src/cli/AbpVueCli/AbpVueCli/AbpVueCli.csproj | 11 +++++++--- .../AbpVueCli/Commands/ApiCommand.cs | 13 +++++++++++- .../AbpVueCli/Commands/CreateCommand.cs | 13 +++++++++++- .../AbpVueCli/Commands/CrudCommand.cs | 13 +++++++++++- .../AbpVueCli/Commands/EditCommand.cs | 21 ++++++++++++++----- .../AbpVueCli/Commands/GenerateCommand.cs | 2 +- .../Commands/GenerateCommandOptionBasic.cs | 1 + .../AbpVueCli/Commands/InitCommand.cs | 2 +- .../AbpVueCli/Commands/ListCommand.cs | 2 +- .../AbpVueCli/Commands/ModelCommand.cs | 2 +- src/cli/AbpVueCli/AbpVueCli/Program.cs | 4 +++- .../AbpVueCli/Steps/GenerateApiStep.cs | 3 ++- .../AbpVueCli/Steps/GenerateCreateViewStep.cs | 3 ++- .../AbpVueCli/Steps/GenerateEditViewStep.cs | 4 +++- .../AbpVueCli/Steps/GenerateListViewStep.cs | 3 ++- .../AbpVueCli/Steps/GenerateModelStep.cs | 3 ++- 17 files changed, 80 insertions(+), 22 deletions(-) diff --git a/src/cli/AbpVueCli/AbpVueCli.sln b/src/cli/AbpVueCli/AbpVueCli.sln index 46a2dca..e5045d0 100644 --- a/src/cli/AbpVueCli/AbpVueCli.sln +++ b/src/cli/AbpVueCli/AbpVueCli.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.29926.136 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AbpVueCli", "AbpVueCli\AbpVueCli.csproj", "{3E946C73-B4BE-4D5B-8C68-030C052F0E60}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AbpVueCli", "AbpVueCli\AbpVueCli.csproj", "{3E946C73-B4BE-4D5B-8C68-030C052F0E60}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/cli/AbpVueCli/AbpVueCli/AbpVueCli.csproj b/src/cli/AbpVueCli/AbpVueCli/AbpVueCli.csproj index b4b77d9..bb77884 100644 --- a/src/cli/AbpVueCli/AbpVueCli/AbpVueCli.csproj +++ b/src/cli/AbpVueCli/AbpVueCli/AbpVueCli.csproj @@ -6,9 +6,14 @@ AbpVue false true - 0.1.0.0 - 0.1.0.0 - 0.1.0 + 0.2.0.0 + 0.2.0.0 + 0.2.0 + AbpVue 通过读取 OpenApi 文档自动生成页面、模型、接口等,帮助你快速开发vue应用程序。 + 赵坤 + https://github.com/zhk0603/abp-vue + https://github.com/zhk0603/abp-vue/tree/master/src/cli/AbpVueCli + abpvue vue helper generator diff --git a/src/cli/AbpVueCli/AbpVueCli/Commands/ApiCommand.cs b/src/cli/AbpVueCli/AbpVueCli/Commands/ApiCommand.cs index 5a33f81..1800089 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Commands/ApiCommand.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Commands/ApiCommand.cs @@ -12,7 +12,7 @@ namespace AbpVueCli.Commands { public class ApiCommand : CommandBase { - public ApiCommand(IServiceProvider serviceProvider) : base(serviceProvider, "api", "api") + public ApiCommand(IServiceProvider serviceProvider) : base(serviceProvider, "api", "只生成API层的文件") { AddArgument(new Argument("module") { Description = "模块名称" }); AddArgument(new Argument("modulePrefix") { Description = "模块api路径的前缀" }); @@ -22,6 +22,11 @@ public ApiCommand(IServiceProvider serviceProvider) : base(serviceProvider, "api Argument = new Argument() }); + AddOption(new Option(new[] { "--no-overwrite" }, "指定不覆盖现有文件") + { + Argument = new Argument() + }); + Handler = CommandHandler.Create((GenerateCommandOptionBasic options) => Run(options)); } @@ -39,6 +44,12 @@ private async Task Run(GenerateCommandOptionBasic options) step.ValueExpression = new JavaScriptExpression($"({options.ToJson()})"); }) + .Then( + step => + { + step.VariableName = "Overwrite"; + step.ValueExpression = new JavaScriptExpression("!Option.NoOverwrite"); + }) .Then() .Then() .Then() diff --git a/src/cli/AbpVueCli/AbpVueCli/Commands/CreateCommand.cs b/src/cli/AbpVueCli/AbpVueCli/Commands/CreateCommand.cs index 2157bca..abbdb90 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Commands/CreateCommand.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Commands/CreateCommand.cs @@ -12,7 +12,7 @@ namespace AbpVueCli.Commands { public class CreateCommand : CommandBase { - public CreateCommand(IServiceProvider serviceProvider) : base(serviceProvider, "create", "create") + public CreateCommand(IServiceProvider serviceProvider) : base(serviceProvider, "create", "只生成Create视图文件") { AddArgument(new Argument("module") { Description = "模块名称" }); AddArgument(new Argument("modulePrefix") { Description = "模块api路径的前缀" }); @@ -22,6 +22,11 @@ public CreateCommand(IServiceProvider serviceProvider) : base(serviceProvider, " Argument = new Argument() }); + AddOption(new Option(new[] { "--no-overwrite" }, "指定不覆盖现有文件") + { + Argument = new Argument() + }); + Handler = CommandHandler.Create((GenerateCommandOptionBasic options) => Run(options)); } @@ -37,6 +42,12 @@ private async Task Run(GenerateCommandOptionBasic options) step.VariableName = "Option"; step.ValueExpression = new JavaScriptExpression($"({options.ToJson()})"); }) + .Then( + step => + { + step.VariableName = "Overwrite"; + step.ValueExpression = new JavaScriptExpression("!Option.NoOverwrite"); + }) .Then() .Then() .Then() diff --git a/src/cli/AbpVueCli/AbpVueCli/Commands/CrudCommand.cs b/src/cli/AbpVueCli/AbpVueCli/Commands/CrudCommand.cs index f8965c6..28cf34b 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Commands/CrudCommand.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Commands/CrudCommand.cs @@ -13,7 +13,7 @@ namespace AbpVueCli.Commands { public class CrudCommand : CommandBase { - public CrudCommand(IServiceProvider serviceProvider) : base(serviceProvider, "crud", "crud") + public CrudCommand(IServiceProvider serviceProvider) : base(serviceProvider, "crud", "根据指定的模块生成CRUD的相关文件") { AddArgument(new Argument("module") {Description = "模块名称"}); AddArgument(new Argument("modulePrefix") {Description = "模块api路径的前缀"}); @@ -23,6 +23,11 @@ public CrudCommand(IServiceProvider serviceProvider) : base(serviceProvider, "cr Argument = new Argument() }); + AddOption(new Option(new[] { "--no-overwrite" }, "指定不覆盖现有文件") + { + Argument = new Argument() + }); + Handler = CommandHandler.Create((GenerateCommandOptionBasic options) => Run(options)); } @@ -38,6 +43,12 @@ private async Task Run(GenerateCommandOptionBasic options) step.VariableName = "Option"; step.ValueExpression = new JavaScriptExpression($"({options.ToJson()})"); }) + .Then( + step => + { + step.VariableName = "Overwrite"; + step.ValueExpression = new JavaScriptExpression("!Option.NoOverwrite"); + }) .Then() .Then() .Then() diff --git a/src/cli/AbpVueCli/AbpVueCli/Commands/EditCommand.cs b/src/cli/AbpVueCli/AbpVueCli/Commands/EditCommand.cs index 1b2e74b..5dfbf20 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Commands/EditCommand.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Commands/EditCommand.cs @@ -12,16 +12,21 @@ namespace AbpVueCli.Commands { public class EditCommand : CommandBase { - public EditCommand(IServiceProvider serviceProvider) : base(serviceProvider, "edit", "edit") + public EditCommand(IServiceProvider serviceProvider) : base(serviceProvider, "edit", "只生成Edit视图文件") { AddArgument(new Argument("module") { Description = "模块名称" }); - AddArgument(new Argument("modulePrefix") { Description = "模块api路径的前缀" }); + AddArgument(new Argument("modulePrefix") { Description = "api接口路径的前缀" }); - AddOption(new Option(new string[] { "-d", "--directory" }, "项目目录。") + AddOption(new Option(new string[] { "-d", "--directory" }, "项目目录") { Argument = new Argument() }); + AddOption(new Option(new[] { "--no-overwrite" }, "指定不覆盖现有文件") + { + Argument = new Argument() + }); + Handler = CommandHandler.Create((GenerateCommandOptionBasic options) => Run(options)); } @@ -35,8 +40,15 @@ private async Task Run(GenerateCommandOptionBasic options) .Then(step => { step.VariableName = "Option"; - step.ValueExpression = new JavaScriptExpression($"({options.ToJson()})"); + step.ValueExpression = + new JavaScriptExpression($"({options.ToJson()})"); }) + .Then( + step => + { + step.VariableName = "Overwrite"; + step.ValueExpression = new JavaScriptExpression("!Option.NoOverwrite"); + }) .Then() .Then() .Then() @@ -48,6 +60,5 @@ private async Task Run(GenerateCommandOptionBasic options) return builder.Build(); }); } - } } \ No newline at end of file diff --git a/src/cli/AbpVueCli/AbpVueCli/Commands/GenerateCommand.cs b/src/cli/AbpVueCli/AbpVueCli/Commands/GenerateCommand.cs index d22d94e..537752d 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Commands/GenerateCommand.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Commands/GenerateCommand.cs @@ -7,7 +7,7 @@ namespace AbpVueCli.Commands public class GenerateCommand : CommandBase { public GenerateCommand(IServiceProvider serviceProvider) : base( - serviceProvider, "generate", "generate") + serviceProvider, "generate", "生成文件") { AddCommand(); AddCommand(); diff --git a/src/cli/AbpVueCli/AbpVueCli/Commands/GenerateCommandOptionBasic.cs b/src/cli/AbpVueCli/AbpVueCli/Commands/GenerateCommandOptionBasic.cs index 09fae53..48fafd8 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Commands/GenerateCommandOptionBasic.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Commands/GenerateCommandOptionBasic.cs @@ -5,5 +5,6 @@ public class GenerateCommandOptionBasic public string ModulePrefix { get; set; } public string Module { get; set; } public string Directory { get; set; } + public bool NoOverwrite { get; set; } } } \ No newline at end of file diff --git a/src/cli/AbpVueCli/AbpVueCli/Commands/InitCommand.cs b/src/cli/AbpVueCli/AbpVueCli/Commands/InitCommand.cs index 2bdaf88..43b73fd 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Commands/InitCommand.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Commands/InitCommand.cs @@ -16,7 +16,7 @@ namespace AbpVueCli.Commands { public class InitCommand : CommandBase { - public InitCommand(IServiceProvider serviceProvider) : base(serviceProvider, "init", "") + public InitCommand(IServiceProvider serviceProvider) : base(serviceProvider, "init", "初始化项目,添加AbpVue运行时需要的文件") { AddOption(new Option(new string[] {"-o", "--openApiAddr"}, "接口地址。") { diff --git a/src/cli/AbpVueCli/AbpVueCli/Commands/ListCommand.cs b/src/cli/AbpVueCli/AbpVueCli/Commands/ListCommand.cs index 052fab1..b957ee6 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Commands/ListCommand.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Commands/ListCommand.cs @@ -12,7 +12,7 @@ namespace AbpVueCli.Commands { public class ListCommand : CommandBase { - public ListCommand(IServiceProvider serviceProvider) : base(serviceProvider, "list", "list") + public ListCommand(IServiceProvider serviceProvider) : base(serviceProvider, "list", "只生成List视图文件") { AddArgument(new Argument("module") { Description = "模块名称" }); AddArgument(new Argument("modulePrefix") { Description = "模块api路径的前缀" }); diff --git a/src/cli/AbpVueCli/AbpVueCli/Commands/ModelCommand.cs b/src/cli/AbpVueCli/AbpVueCli/Commands/ModelCommand.cs index 68d7f95..abd441b 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Commands/ModelCommand.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Commands/ModelCommand.cs @@ -12,7 +12,7 @@ namespace AbpVueCli.Commands { public class ModelCommand : CommandBase { - public ModelCommand(IServiceProvider serviceProvider) : base(serviceProvider, "model", "model") + public ModelCommand(IServiceProvider serviceProvider) : base(serviceProvider, "model", "只生成Model层的文件") { AddArgument(new Argument("module") { Description = "模块名称" }); AddArgument(new Argument("modulePrefix") { Description = "模块api路径的前缀" }); diff --git a/src/cli/AbpVueCli/AbpVueCli/Program.cs b/src/cli/AbpVueCli/AbpVueCli/Program.cs index 02204c4..9d9b94b 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Program.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Program.cs @@ -100,7 +100,9 @@ static async Task Main(string[] args) "edit", "tenant", "/api/multi-tenancy/tenants", - "-d", @"D:\Workspaces\01.github\zhk0603\abp-vue\src\vue" + "-d", @"D:\Workspaces\01.github\zhk0603\abp-vue\src\vue", + + "--no-overwrite" }; #endif diff --git a/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateApiStep.cs b/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateApiStep.cs index 803f603..f21b6de 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateApiStep.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateApiStep.cs @@ -25,7 +25,8 @@ public class GenerateApiStep : Step throw new DirectoryNotFoundException($"Template group directory {tempDir} does not exist."); var targetDirectory = Path.Combine(context.GetVariable("ProjectDirectory"), "src", "api"); - await GenerateFiles(tempDir, targetDirectory, modelInfo, true); + var overwrite = context.GetVariable("Overwrite"); + await GenerateFiles(tempDir, targetDirectory, modelInfo, overwrite); return Done(); } diff --git a/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateCreateViewStep.cs b/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateCreateViewStep.cs index 9ac379f..e7fe27b 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateCreateViewStep.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateCreateViewStep.cs @@ -35,7 +35,8 @@ protected override async Task OnExecuteAsync(WorkflowEx Properties = apiSchema.Properties }; - await GenerateFiles(tempDir, targetDirectory, model, true); + var overwrite = context.GetVariable("Overwrite"); + await GenerateFiles(tempDir, targetDirectory, model, overwrite); return Done(); } diff --git a/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateEditViewStep.cs b/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateEditViewStep.cs index 7fc0a62..b2c32eb 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateEditViewStep.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateEditViewStep.cs @@ -35,7 +35,9 @@ protected override async Task OnExecuteAsync(WorkflowEx Properties = apiSchema.Properties }; - await GenerateFiles(tempDir, targetDirectory, model, true); + var overwrite = context.GetVariable("Overwrite"); + + await GenerateFiles(tempDir, targetDirectory, model, overwrite); return Done(); } diff --git a/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateListViewStep.cs b/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateListViewStep.cs index 1af60cd..d7fef12 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateListViewStep.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateListViewStep.cs @@ -39,7 +39,8 @@ protected override async Task OnExecuteAsync(WorkflowEx ListProperty = GetListProperty(getListApi, modelInfo.ProjectInfo) }; - await GenerateFiles(tempDir, targetDirectory, model, true); + var overwrite = context.GetVariable("Overwrite"); + await GenerateFiles(tempDir, targetDirectory, model, overwrite); return Done(); } diff --git a/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateModelStep.cs b/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateModelStep.cs index b5ea621..404081b 100644 --- a/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateModelStep.cs +++ b/src/cli/AbpVueCli/AbpVueCli/Steps/GenerateModelStep.cs @@ -33,7 +33,8 @@ protected override async Task OnExecuteAsync(WorkflowEx RequestBodySchema = apiSchema }; - await GenerateFiles(tempDir, targetDirectory, model, true); + var overwrite = context.GetVariable("Overwrite"); + await GenerateFiles(tempDir, targetDirectory, model, overwrite); return Done(); }