Browse Source

下载统计文件修改

master
“wangzihua” 4 months ago
parent
commit
66585c0c30
  1. 2
      src/api/business/service-applications/service-applications-api.js
  2. 25
      src/components/system/service-count/quarter-statistics.vue
  3. 28
      src/lib/axios.js

2
src/api/business/service-applications/service-applications-api.js

@ -96,6 +96,6 @@ export const serviceApplicationsApi = {
* 导出律所统计信息 @author wzh * 导出律所统计信息 @author wzh
*/ */
exportLawyer: (params) => { exportLawyer: (params) => {
return postDownload('/serviceApplications/exportLawyer', params); return getDownload('/serviceApplications/exportLawyer', params);
}, },
}; };

25
src/components/system/service-count/quarter-statistics.vue

@ -211,29 +211,10 @@ async function handleExport() {
firmName: queryForm.firmName firmName: queryForm.firmName
}; };
// //
const response = await serviceApplicationsApi.exportLawyer(exportParams); await serviceApplicationsApi.exportLawyer(exportParams);
//
if (response && response.data) {
//
const blob = new Blob([response.data], { type: 'application/vnd.ms-excel' });
const url = window.URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
//
const fileName = `季度服务统计_${queryForm.year || '全部'}_${queryForm.quarter ? '第' + queryForm.quarter + '季度' : '全部'}.xlsx`;
link.download = fileName;
//
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
window.URL.revokeObjectURL(url);
message.success('导出成功'); message.success('导出成功');
}
} catch (error) { } catch (error) {
message.error('导出失败'); message.error('导出失败');
console.error('导出失败:', error); console.error('导出失败:', error);

28
src/lib/axios.js

@ -233,12 +233,28 @@ function handleDownloadData(response) {
link.href = url; link.href = url;
// 从消息头获取文件名 // 从消息头获取文件名
let str = _.isUndefined(response.headers['content-disposition']) let contentDisposition = response.headers['content-disposition'] || response.headers['Content-Disposition'];
? response.headers['Content-Disposition'].split(';')[1] if (!contentDisposition) {
: response.headers['content-disposition'].split(';')[1]; link.setAttribute('download', 'download');
} else {
let filename = _.isUndefined(str.split('fileName=')[1]) ? str.split('filename=')[1] : str.split('fileName=')[1]; let filenameMatch = contentDisposition.match(/filename[\*]?=['\"]([^'\"]+)['\"]/i);
link.setAttribute('download', decodeURIComponent(filename)); if (filenameMatch && filenameMatch[1]) {
link.setAttribute('download', decodeURIComponent(filenameMatch[1]));
} else {
// 备用方案:尝试从 content-disposition 中提取文件名
let parts = contentDisposition.split(';');
for (let part of parts) {
let trimmedPart = part.trim();
if (trimmedPart.startsWith('filename=') || trimmedPart.startsWith('fileName=')) {
let filename = trimmedPart.substring(trimmedPart.indexOf('=') + 1).trim();
// 移除可能的引号
filename = filename.replace(/^["']|["']$/g, '');
link.setAttribute('download', decodeURIComponent(filename));
break;
}
}
}
}
// 触发点击下载 // 触发点击下载
document.body.appendChild(link); document.body.appendChild(link);

Loading…
Cancel
Save