fix(排班管理): 修复导出文件下载时响应类型处理问题
将API导出函数的响应类型设置为blob,确保正确处理二进制数据。同时优化前端下载逻辑,根据响应自动创建Blob对象,并统一设置Excel文件类型。添加finally块确保加载状态正确重置。
| | |
| | | url: "/personalShift/export", |
| | | method: "get", |
| | | params: query, |
| | | responseType: "blob", |
| | | }); |
| | | } |
| | | |
| | |
| | | }) |
| | | .then(res => { |
| | | proxy.$modal.msgSuccess("下载成功"); |
| | | downLoading.value = false; |
| | | const blob = new Blob([res], { |
| | | type: "application/force-download", |
| | | const blob = |
| | | res instanceof Blob |
| | | ? res |
| | | : new Blob([res], { |
| | | type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", |
| | | }); |
| | | let fileName = ""; |
| | | if (query.month) { |
| | |
| | | proxy.$download.saveAs(blob, fileName + ".xlsx"); |
| | | }) |
| | | .catch(err => { |
| | | }) |
| | | .finally(() => { |
| | | downLoading.value = false; |
| | | }); |
| | | }; |