| | |
| | | import { ref } from 'vue' |
| | | import { ElMessage } from 'element-plus' |
| | | import { guardRequestWithMessage } from '@/utils/sys/requestGuard' |
| | | import { $t } from '@/locales' |
| | | |
| | | export function usePrintExportPage({ |
| | | downloadFileName, |
| | |
| | | try { |
| | | const response = await guardRequestWithMessage(requestExport(payload), null, { |
| | | timeoutMs, |
| | | timeoutMessage: '导出请求超时,已停止等待' |
| | | timeoutMessage: $t('message.exportTimeoutStopped') |
| | | }) |
| | | if (!response) { |
| | | return |
| | | } |
| | | if (!response.ok) { |
| | | throw new Error(`导出失败 (${response.status})`) |
| | | throw new Error($t('crud.messages.exportFailedWithStatus', { status: response.status })) |
| | | } |
| | | |
| | | const blob = await response.blob() |
| | |
| | | link.click() |
| | | link.remove() |
| | | window.URL.revokeObjectURL(downloadUrl) |
| | | ElMessage.success('导出成功') |
| | | ElMessage.success($t('crud.messages.exportSuccess')) |
| | | } catch (error) { |
| | | ElMessage.error(error?.message || '导出失败') |
| | | ElMessage.error(error?.message || $t('crud.messages.exportFailed')) |
| | | } |
| | | } |
| | | |
| | |
| | | try { |
| | | const records = await guardRequestWithMessage(resolvePrintRecords(payload), null, { |
| | | timeoutMs, |
| | | timeoutMessage: '打印数据加载超时,已停止等待' |
| | | timeoutMessage: $t('message.printTimeoutStopped') |
| | | }) |
| | | if (activePrintToken.value !== token) { |
| | | return |
| | |
| | | if (activePrintToken.value !== token) { |
| | | return |
| | | } |
| | | ElMessage.error(error?.message || '打印失败') |
| | | ElMessage.error(error?.message || $t('crud.messages.printFailed')) |
| | | } |
| | | } |
| | | |