feat:导出返回数据改为文件流

This commit is contained in:
不做码农 2022-12-05 18:37:40 +08:00
parent 6611f513f3
commit f5c0588f42
5 changed files with 34 additions and 13 deletions

View File

@ -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));
}
/// <summary>
/// 导出Excel
/// </summary>
/// <param name="path"></param>
/// <param name="fileName"></param>
/// <returns></returns>
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
/// <summary>

View File

@ -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);
}
}
}

View File

@ -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

View File

@ -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)

View File

@ -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