From 5ff4d7e41aa987953b8d63fdd8d54b0b80032ff8 Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 13 May 2026 14:54:31 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E8=AE=BE=E5=A4=87=E5=8F=B0?= =?UTF-8?q?=E8=B4=A6-=E4=BA=8C=E7=BB=B4=E7=A0=81=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=9B=9E=E6=98=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mes/deviceledger/index.ts | 1 + .../mes/deviceledger/DeviceLedgerForm.vue | 25 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/api/mes/deviceledger/index.ts b/src/api/mes/deviceledger/index.ts index 6370fcf4..f258911d 100644 --- a/src/api/mes/deviceledger/index.ts +++ b/src/api/mes/deviceledger/index.ts @@ -26,6 +26,7 @@ export interface DeviceLedgerVO { remark: string // 备注 fileUrl?: string // 附件下载 qrcodeUrl?: string + templateJson?: string | any isSchedueld?: number isScheduled?: number ratedCapacity?: number diff --git a/src/views/mes/deviceledger/DeviceLedgerForm.vue b/src/views/mes/deviceledger/DeviceLedgerForm.vue index dc58b8ab..82ff617a 100644 --- a/src/views/mes/deviceledger/DeviceLedgerForm.vue +++ b/src/views/mes/deviceledger/DeviceLedgerForm.vue @@ -203,7 +203,10 @@ :print-max-width="220" :empty-text="t('EquipmentManagement.EquipmentLedger.qrcodeEmpty')" :error-text="t('EquipmentManagement.EquipmentLedger.qrcodeLoadError')" :refresh-url="getQrcodeRefreshUrl()" :refresh-disabled="!formData.id || !formData.deviceCode" - refresh-confirm-text="确认刷新该设备二维码吗?" @refresh-success="handleQrcodeRefreshSuccess" /> + refresh-confirm-text="确认刷新该设备二维码吗?" + :template-json="formData.templateJson" + :print-data="buildPrintData()" + @refresh-success="handleQrcodeRefreshSuccess" /> @@ -498,6 +501,7 @@ const initFormData = () => ({ beijianIds: [] as number[], fileUrl: undefined, qrcodeUrl: undefined, + templateJson: undefined, sort: undefined, dvId: undefined }) @@ -628,6 +632,20 @@ const getQrcodeRefreshUrl = () => { return `/mes/device-ledger/regenerate-code?id=${formData.value.id}&code=${encodeURIComponent(String(formData.value.deviceCode))}` } +const buildPrintData = () => { + return { + id: formData.value.id, + deviceCode: formData.value.deviceCode, + deviceName: formData.value.deviceName, + deviceSpec: formData.value.deviceSpec, + deviceBrand: formData.value.deviceBrand, + deviceModel: formData.value.deviceModel, + deviceLocation: formData.value.deviceLocation, + remark: formData.value.remark, + qrcodeUrl: formData.value.qrcodeUrl + } +} + const handleQrcodeRefreshSuccess = async (data: any) => { if (!formData.value.id) return if (data?.qrcodeUrl) { @@ -677,9 +695,14 @@ const open = async (type: string, id?: number, defaultDeviceTypeId?: number) => formLoading.value = true try { const detail = await DeviceLedgerApi.getDeviceLedger(id) + const templateJson = (detail as any)?.templateJson + const parsedTemplateJson = typeof templateJson === 'string' + ? JSON.parse(templateJson) + : templateJson formData.value = { ...initFormData(), ...(detail as any), + templateJson: parsedTemplateJson, isCode: (detail as any)?.isCode ?? false, isScheduled: normalizeNumberish((detail as any)?.isScheduled ?? (detail as any)?.isScheduled) ?? 0, ratedCapacity: normalizeNumberish((detail as any)?.ratedCapacity),