diff --git a/web-admin/src/components/business/pl-delivery-slip-print-dialog/index.vue b/web-admin/src/components/business/pl-delivery-slip-print-dialog/index.vue index fa81ca34d..072e3d7a6 100644 --- a/web-admin/src/components/business/pl-delivery-slip-print-dialog/index.vue +++ b/web-admin/src/components/business/pl-delivery-slip-print-dialog/index.vue @@ -30,7 +30,12 @@ {{ isPreviewMode ? '编辑模式' : '预览模式' }} - + 保存模板 @@ -64,6 +69,7 @@ import { DELIVERY_SLIP_DOC_MAX_WIDTH, DELIVERY_SLIP_PRINT_CSS, prepareDeliverySlipPdfGridCells, + renderBlankDeliverySlipHtml, replaceDeliverySlipPlaceholders, restoreDeliverySlipPlaceholders, setupDeliverySlipEditorTypeCheckboxes, @@ -76,6 +82,7 @@ import { getPlSlipPdfCanvasScale } from '@/utils/pl-slip-pdf-render' const visible = ref(false) const slipContent = ref('') const isPreviewMode = ref(false) +const isBlankMode = ref(false) /** 打印弹窗内红章显隐(仅本次弹窗有效,打开时默认显示) */ const showRedSeal = ref(true) const saveLoading = ref(false) @@ -137,6 +144,16 @@ async function buildSlipRenderContext(plan: Plan): Promise|]/g, '-') - pdf.save(`${fileName}送(提)货单.pdf`) + if (isBlankMode.value) { + pdf.save('空白送提货单.pdf') + } else { + const fileName = (currentPlan.value?.planNo || '送(提)货单').replace(/[/\\:*?"<>|]/g, '-') + pdf.save(`${fileName}送(提)货单.pdf`) + } ElMessage.success('PDF 生成成功') } catch (error) { console.error('生成 PDF 失败', error) @@ -344,7 +367,7 @@ async function handleGeneratePdf() { } } -defineExpose({ open }) +defineExpose({ open, openBlank })