From f5c0588f42c08ff98e2e7d4cab15ca07737212ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Mon, 5 Dec 2022 18:37:40 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=AF=BC=E5=87=BA=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=95=B0=E6=8D=AE=E6=94=B9=E4=B8=BA=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZR.Admin.WebApi/Controllers/BaseController.cs | 17 +++++++++++++++++ .../Controllers/System/SysUserController.cs | 2 +- .../CodeGenTemplate/TplControllers.txt | 2 +- .../wwwroot/CodeGenTemplate/TplVueApi.txt | 19 +++++++++++++------ .../wwwroot/CodeGenTemplate/v3/Vue.txt | 7 ++----- 5 files changed, 34 insertions(+), 13 deletions(-) diff --git a/ZR.Admin.WebApi/Controllers/BaseController.cs b/ZR.Admin.WebApi/Controllers/BaseController.cs index fd7d9f8..9c27c0a 100644 --- a/ZR.Admin.WebApi/Controllers/BaseController.cs +++ b/ZR.Admin.WebApi/Controllers/BaseController.cs @@ -8,6 +8,8 @@ using OfficeOpenXml; using System; using System.Collections.Generic; using System.IO; +using System.Web; +using ff = System.IO; namespace ZR.Admin.WebApi.Controllers { @@ -53,6 +55,21 @@ namespace ZR.Admin.WebApi.Controllers return ToResponse(GetApiResult(resultCode, msg)); } + /// + /// 导出Excel + /// + /// + /// + /// + protected IActionResult ExportExcel(string path, string fileName) + { + IWebHostEnvironment webHostEnvironment = (IWebHostEnvironment)App.ServiceProvider.GetService(typeof(IWebHostEnvironment)); + string fileDir = Path.Combine(webHostEnvironment.WebRootPath, path, fileName); + + var stream = ff.File.OpenRead(fileDir); //创建文件流 + return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", HttpUtility.UrlEncode(fileName)); + } + #region 方法 /// diff --git a/ZR.Admin.WebApi/Controllers/System/SysUserController.cs b/ZR.Admin.WebApi/Controllers/System/SysUserController.cs index 7e6372d..d35200d 100644 --- a/ZR.Admin.WebApi/Controllers/System/SysUserController.cs +++ b/ZR.Admin.WebApi/Controllers/System/SysUserController.cs @@ -215,7 +215,7 @@ namespace ZR.Admin.WebApi.Controllers.System //调试模式需要加上 string sFileName = ExportExcel(list.Result, "user", "用户列表"); - return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName }); + return ExportExcel("export", sFileName); } } } diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt index f6a6738..0707dc0 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt @@ -156,7 +156,7 @@ $if(replaceDto.ShowBtnExport) return ToResponse(ResultCode.FAIL, "没有要导出的数据"); } string sFileName = ExportExcel(list, "${replaceDto.ModelTypeName}", "${genTable.FunctionName}"); - return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName }); + return ExportExcel("export", sFileName); } $end diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueApi.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueApi.txt index be58e83..1e1678f 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueApi.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueApi.txt @@ -1,4 +1,10 @@ import request from '@/utils/request' +$if(replaceDto.SelectMulti == 1) +import QS from 'qs' +$end +$if(replaceDto.ShowBtnExport) +import { downFile } from '@/utils/request' +$end /** * ${genTable.functionName}分页查询 @@ -9,6 +15,11 @@ export function list${genTable.BusinessName}(query) { url: '${genTable.ModuleName}/${genTable.BusinessName}/list', method: 'get', params: query, +$if(replaceDto.SelectMulti == 1) + paramsSerializer: function (params) { + return QS.stringify(params, { indices: false }) + } +$end }) } @@ -81,12 +92,8 @@ export function clear${genTable.BusinessName}() { } // 导出${genTable.functionName} -export function export${genTable.BusinessName}(query) { - return request({ - url: '${genTable.ModuleName}/${genTable.BusinessName}/export', - method: 'get', - params: query - }) +export async function export${genTable.BusinessName}(query) { + await downFile('${genTable.ModuleName}/${genTable.BusinessName}/export', { ...query }) } $if(showCustomInput) diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt index 64f7011..f302ce1 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt @@ -566,11 +566,8 @@ function handleExport() { cancelButtonText: "取消", type: "warning", }) - .then(function () { - return export${genTable.BusinessName}(queryParams) - }) - .then((response) => { - proxy.download(response.data.path) + .then(async () => { + await export${genTable.BusinessName}(queryParams) }) } $end