✨ 支持应收账单导出通过 OSS 签名链接下载
This commit is contained in:
@@ -91,6 +91,10 @@ export function downloadArBillExport(exportId) {
|
||||
return request({ url: '/ar/bill/export/' + exportId + '/download', method: 'get', responseType: 'blob' })
|
||||
}
|
||||
|
||||
export function getArBillExportDownloadInfo(exportId) {
|
||||
return request({ url: '/ar/bill/export/' + exportId + '/download-url', method: 'get' })
|
||||
}
|
||||
|
||||
export function listArBillLogs(query) {
|
||||
return request({ url: '/ar/bill/log/list', method: 'get', params: query })
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
|
||||
<script setup name="ArBill">
|
||||
import { saveAs } from 'file-saver'
|
||||
import { listArBillCustomerOptions, listArBill, getArBill, confirmArBill, voidArBill, exportArBill, getArBillExport, downloadArBillExport, getArBillGenerateTask, listActiveArBillGenerateTasks, cancelArBillGenerateTask, retryArBillGenerateTask } from '@/api/ar/bill'
|
||||
import { listArBillCustomerOptions, listArBill, getArBill, confirmArBill, voidArBill, exportArBill, getArBillExport, downloadArBillExport, getArBillExportDownloadInfo, getArBillGenerateTask, listActiveArBillGenerateTasks, cancelArBillGenerateTask, retryArBillGenerateTask } from '@/api/ar/bill'
|
||||
import BillDetail from './components/BillDetail.vue'
|
||||
import GenerateBillDialog from './components/GenerateBillDialog.vue'
|
||||
import { AR_BILL_STATUS, AR_BILL_STATUS_OPTIONS, AR_BILL_STATUS_TYPES } from '@/constants/ar/bill'
|
||||
@@ -382,7 +382,21 @@ function openExportTask(task) {
|
||||
}
|
||||
|
||||
// 仅下载 SUCCESS 状态的导出任务,文件名优先使用后端保存的名称。
|
||||
function downloadExport(row) { downloadArBillExport(row.exportId).then(blob => saveAs(blob, row.fileName || `账单_${row.exportId}.xlsx`)) }
|
||||
function downloadExport(row) {
|
||||
getArBillExportDownloadInfo(row.exportId).then(response => {
|
||||
const info = response.data || {}
|
||||
if (info.direct && info.downloadUrl) {
|
||||
const link = document.createElement('a')
|
||||
link.href = info.downloadUrl
|
||||
link.style.display = 'none'
|
||||
document.body.appendChild(link)
|
||||
link.click()
|
||||
link.remove()
|
||||
return
|
||||
}
|
||||
return downloadArBillExport(row.exportId).then(blob => saveAs(blob, row.fileName || `账单_${row.exportId}.xlsx`))
|
||||
})
|
||||
}
|
||||
function clearCustomerFilter() {
|
||||
const query = { ...route.query }
|
||||
delete query.customerId
|
||||
|
||||
Reference in New Issue
Block a user