From 31ab2edfa500364818d2cc2c30acc1f4ae5b8dac Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Tue, 20 Aug 2024 17:25:30 +0800
Subject: [PATCH] bug修改
---
src/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 52 insertions(+), 5 deletions(-)
diff --git a/src/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue b/src/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue
index a7dd3b3..a8d90a8 100644
--- a/src/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue
+++ b/src/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue
@@ -7,11 +7,16 @@
:close-on-press-escape="false"
:close-on-click-modal="false"
>
+ <div style="display: flex;flex-direction: column;align-items: flex-end">
+ <el-button type="primary" style="margin-bottom: 5px" @click="printCode">打印</el-button>
+ </div>
<el-card style="max-width: 480px">
- <div style="display: flex;flex-direction: column;align-items: center;font-size: 20px;font-weight: 600">
- <span>{{title}}</span>
- <vue-qr :size="150" :margin="0" :auto-color="true" :dot-scale="1" :text="state.form.code" style="margin: 10px 0 10px 0"></vue-qr>
- <span>{{state.form.code}}</span>
+ <div :id="state.form.code">
+ <div style="display: flex;flex-direction: column;align-items: center;font-size: 16px;">
+ <span>{{title}}</span>
+ <vue-qr :size="85" :margin="0" :auto-color="true" :dot-scale="1" :text="state.form.code" style="margin: 10px 0 10px 0"></vue-qr>
+ <span>{{state.form.code}}</span>
+ </div>
</div>
</el-card>
</el-dialog>
@@ -39,13 +44,55 @@
title.value = value.hazmatBasic.name + ' ' + '—' + ' '+ value.hazmatBasic.productSn
}
- state.form = value;
+ state.form = JSON.parse(JSON.stringify(value));
dialogVisible.value = true;
}
const handleClose = () => {
dialogVisible.value = false;
emit("getList")
}
+const printCode = () => {
+ let data = []
+ data = [state.form]
+ let qrCodes=''
+ for(let index in data){
+ console.log(index,'index')
+ qrCodes+=`<div class="my-list-col"><div class="centered-content">${document.getElementById(data[index].code).innerHTML}</div></div>`
+ }
+ const printContent=document.createElement('div')
+ printContent.innerHTML=qrCodes
+
+ //创建一个新的隐藏的iframe元素
+ const printFrame =document.createElement('iframe')
+ printFrame.style.display='none'
+ document.body.appendChild(printFrame)
+
+ const printDocument=printFrame.contentWindow.document
+ printDocument.open()
+ printDocument.write(`
+ <html>
+ <head>
+ <title>Print</title>
+ <style>
+ @media print {
+ .page-break { page-break-after:always;} /* 定义分页符格式*/
+ .centered-content { text-align:center;} /* 居中对齐内容*/
+ @page { size:50mm 40mm;margin:0mm; }
+ }
+ </style>
+ </head>
+ <body style='margin:0;padding:0;'>${printContent.innerHTML}</body>
+ </html>
+ `)
+ printDocument.close()
+ //在打印窗口中调用打印功能
+ console.log('printFrame.contentWindow.document.body.style',printFrame.contentWindow.document.body.style)
+ printFrame.contentWindow.print()
+ //移除隐藏的iframe元素
+ document.body.removeChild(printFrame)
+ // handleClose()
+}
+
defineExpose({
openDialog
});
--
Gitblit v1.9.2