diff --git a/ZR.Admin.WebApi/Extensions/CorsExtension.cs b/ZR.Admin.WebApi/Extensions/CorsExtension.cs index 1240d80..cb3b1c4 100644 --- a/ZR.Admin.WebApi/Extensions/CorsExtension.cs +++ b/ZR.Admin.WebApi/Extensions/CorsExtension.cs @@ -9,7 +9,7 @@ /// public static void AddCors(this IServiceCollection services, IConfiguration configuration) { - var corsUrls = configuration["corsUrls"]?.Split(',', StringSplitOptions.RemoveEmptyEntries); + var corsUrls = configuration.GetSection("corsUrls").Get(); //配置跨域 services.AddCors(c => diff --git a/ZR.Admin.WebApi/appsettings.json b/ZR.Admin.WebApi/appsettings.json index f7862a1..0479a4f 100644 --- a/ZR.Admin.WebApi/appsettings.json +++ b/ZR.Admin.WebApi/appsettings.json @@ -24,7 +24,7 @@ "DbName": "ZrAdmin" //代码生成默认连接数据库 }, "urls": "http://localhost:8888", //项目启动url,如果改动端口前端对应devServer也需要进行修改 - "corsUrls": "http://localhost:8887", //跨域地址(前端启动项目,前后端分离单独部署需要设置),多个用","隔开 + "corsUrls": [ "http://localhost:8887", "http://localhost:8886" ], //跨域地址(前端启动项目,前后端分离单独部署需要设置),多个用","隔开 "JwtSettings": { "Issuer": "ZRAdmin.NET", //即token的签发者。 "Audience": "ZRAdmin.NET", //指该token是服务于哪个群体的(群体范围) diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/app/api.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/app/api.txt new file mode 100644 index 0000000..d1f318e --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/app/api.txt @@ -0,0 +1,78 @@ +import request from '@/utils/request' + +/** +* ${genTable.functionName}分页查询 +* @param {查询条件} data +*/ +export function list${genTable.BusinessName}(query) { + return request({ + url: '/${genTable.ModuleName}/${genTable.BusinessName}/list', + method: 'get', + data: query, + }) +} + +$if(replaceDto.ShowBtnAdd) +/** +* 新增${genTable.functionName} +* @param data +*/ +export function add${genTable.BusinessName}(data) { + return request({ + url: '/${genTable.ModuleName}/${genTable.BusinessName}', + method: 'post', + data: data, + }) +} +$end +$if(replaceDto.ShowBtnEdit) +/** +* 修改${genTable.functionName} +* @param data +*/ +export function update${genTable.BusinessName}(data) { + return request({ + url: '/${genTable.ModuleName}/${genTable.BusinessName}', + method: 'PUT', + data: data, + }) +} +$end +/** +* 获取${genTable.functionName}详情 +* @param {Id} +*/ +export function get${genTable.BusinessName}(id) { + return request({ + url: '/${genTable.ModuleName}/${genTable.BusinessName}/' + id, + method: 'get' + }) +} + +$if(replaceDto.ShowBtnDelete || replaceDto.ShowBtnMultiDel) +/** +* 删除${genTable.functionName} +* @param {主键} pid +*/ +export function del${genTable.BusinessName}(pid) { + return request({ + url: '/${genTable.ModuleName}/${genTable.BusinessName}/' + pid, + method: 'delete' + }) +} +$end +$if(replaceDto.ShowBtnTruncate) +// 清空${genTable.functionName} +export function clear${genTable.BusinessName}() { + return request({ + url: '/${genTable.ModuleName}/${genTable.BusinessName}/clean', + method: 'delete' + }) +} +$end +$if(replaceDto.ShowBtnExport) +// 导出${genTable.functionName} +export async function export${genTable.BusinessName}(query) { + await downFile('$/{genTable.ModuleName}/${genTable.BusinessName}/export', { ...query }) +} +$end \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/app/form.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/app/form.txt new file mode 100644 index 0000000..0a713e7 --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/app/form.txt @@ -0,0 +1,206 @@ + + + + + \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/app/vue2.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/app/vue2.txt new file mode 100644 index 0000000..2e53fa7 --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/app/vue2.txt @@ -0,0 +1,284 @@ + + + + + \ No newline at end of file diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt index e79e9c2..d101e69 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt @@ -292,7 +292,7 @@ $elseif(column.HtmlType == "select" || column.HtmlType == "selectMulti") - + /// 列表页面 + /// + /// + private static void GenerateAppVueViews(ReplaceDto replaceDto, GenerateDto generateDto) + { + var fileName = Path.Combine("app", "vue2.txt"); + var tpl = JnHelper.ReadTemplate(CodeTemplateDir, fileName); + + tpl.Set("options", generateDto.GenTable?.Options); + + var result = tpl.Render(); + var fullPath = Path.Combine(generateDto.AppVuePath, "pages", generateDto.GenTable.ModuleName.FirstLowerCase(), $"{replaceDto.ViewFileName.FirstLowerCase()}", "index.vue"); + generateDto.GenCodes.Add(new GenCode(20, "uniapp页面", fullPath, result)); + } + private static void GenerateAppVueFormViews(ReplaceDto replaceDto, GenerateDto generateDto) + { + var fileName = Path.Combine("app", "form.txt"); + var tpl = JnHelper.ReadTemplate(CodeTemplateDir, fileName); + + tpl.Set("options", generateDto.GenTable?.Options); + + var result = tpl.Render(); + var fullPath = Path.Combine(generateDto.AppVuePath, "pages", generateDto.GenTable.ModuleName.FirstLowerCase(), $"{replaceDto.ViewFileName.FirstLowerCase()}", "edit.vue"); + generateDto.GenCodes.Add(new GenCode(20, "uniapp表单", fullPath, result)); + } + /// + /// 生成vue页面api + /// + /// + /// + public static void GenerateAppJs(GenerateDto generateDto) + { + var filePath = Path.Combine("app", "api.txt"); + var tpl = JnHelper.ReadTemplate(CodeTemplateDir, filePath); + var result = tpl.Render(); + + string fileName = generateDto.GenTable.BusinessName.ToLower() + ".js"; + string fullPath = Path.Combine(generateDto.AppVuePath, "api", generateDto.GenTable.ModuleName.FirstLowerCase(), fileName); + + generateDto.GenCodes.Add(new GenCode(21, "uniapp Api", fullPath, result)); + } + #endregion + #region 帮助方法 /// @@ -415,7 +464,7 @@ namespace ZR.CodeGenerator var gen = AppSettings.Get("gen"); var dbConfig = AppSettings.Get("CodeGenDbConfig"); - + optionsSetting.CodeGenDbConfig = dbConfig; optionsSetting.Gen = gen ?? throw new CustomException("代码生成节点配置异常"); optionsSetting.Gen.GenDbConfig = dbConfig ?? throw new CustomException("代码生成节点数据配置异常"); @@ -533,6 +582,7 @@ namespace ZR.CodeGenerator options.Data.Set("index", "$");//特殊标签替换 options.Data.Set("confirm", "$");//特殊标签替换 options.Data.Set("nextTick", "$"); + options.Data.Set("tab", "$"); options.Data.Set("replaceDto", replaceDto); options.Data.Set("options", dto.GenOptions); options.Data.Set("subTableOptions", dto.SubTableOptions); diff --git a/ZR.CodeGenerator/Model/GenerateDto.cs b/ZR.CodeGenerator/Model/GenerateDto.cs index ab35089..db1c48d 100644 --- a/ZR.CodeGenerator/Model/GenerateDto.cs +++ b/ZR.CodeGenerator/Model/GenerateDto.cs @@ -57,6 +57,10 @@ namespace ZR.CodeGenerator.Model /// vue代码路径 /// public string VueParentPath { get; set; } + /// + /// uniapp存储路径 + /// + public string AppVuePath { get; set; } = "ZRAdminn-app"; #endregion public ReplaceDto ReplaceDto { get; set; } }