fix:修复无法导出账单pdf

This commit is contained in:
2026-07-16 11:25:59 +08:00
parent fa086e4c1c
commit 2beedc22af
2 changed files with 128 additions and 4 deletions

View File

@@ -24,6 +24,7 @@ import api from '../../api';
import PermissionButton from '../../components/PermissionButton';
import { downloadBlob } from '../../utils/download';
import { message } from '../../ui/app-message';
import { buildBillPrintHtml, type BillPrintData } from './bill-print';
const statusMap: Record<string, { text: string; color: string }> = {
@@ -165,10 +166,23 @@ const BillsPage: React.FC = () => {
);
};
const handleExportPdf = (billId: number) => {
downloadBlob(`/bills/export/pdf/${billId}`, `账单_${billId}.pdf`).catch(() =>
message.error('导出失败'),
);
const handleExportPdf = async (billId: number) => {
const printWindow = window.open('', '_blank');
if (!printWindow) {
message.error('浏览器阻止了打印窗口,请允许弹出窗口后重试');
return;
}
printWindow.document.write('<p style="font-family:sans-serif;padding:24px">正在加载账单...</p>');
try {
const bill = await api.get<BillPrintData>(`/bills/${billId}`);
printWindow.document.open();
printWindow.document.write(buildBillPrintHtml(bill));
printWindow.document.close();
} catch (error: any) {
printWindow.close();
message.error(error?.message || '账单加载失败');
}
};
const columns = useMemo(() => [