From 1ea0d85b0fe2e7e4427fd484a9342d964c831b3d Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Wed, 06 Aug 2025 15:15:00 +0800
Subject: [PATCH] 修改
---
src/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue | 79 ++++++++++++++++++++++++++++++++++++---
1 files changed, 72 insertions(+), 7 deletions(-)
diff --git a/src/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue b/src/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue
index a7dd3b3..a8f124d 100644
--- a/src/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue
+++ b/src/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue
@@ -7,12 +7,24 @@
: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;justify-content: center;">
+ <div style="font-size:14px;margin-bottom: 2px" id="codeTitle">{{title}}</div>
+ <vue-qr :size="100" :correctLevel="3" colorDark="black" :margin="0" :auto-color="true" :text="state.form.code"></vue-qr>
+ <div style="font-size:10px;margin-top: 2px">{{state.form.code}}</div>
+ </div>
</div>
+<!-- <div :id="state.form.code">-->
+<!-- <div style="display: flex;flex-direction: column;align-items: center;justify-content: center">-->
+<!-- <span style="font-size:14px;margin-bottom: 2px">{{title}}</span>-->
+<!-- <vue-qr :size="100" :correctLevel="3" colorDark="black" :margin="0" :auto-color="true" :text="state.form.code" ></vue-qr>-->
+<!-- <span style="font-size:10px;margin-top: 2px">{{state.form.code}}</span>-->
+<!-- </div>-->
+<!-- </div>-->
</el-card>
</el-dialog>
</div>
@@ -34,18 +46,71 @@
const openDialog = async (type,value) => {
if(type == 'pro'){
- title.value = value.productBasic.name + ' ' + '—' + ' '+ value.productBasic.productSn
+ title.value = value.productBasic.name + '—' + value.productBasic.productSn
}else {
- title.value = value.hazmatBasic.name + ' ' + '—' + ' '+ value.hazmatBasic.productSn
+ 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 changeFont">${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 { display: flex;justify-content: center; align-items: center;height: 90vh;} /* 居中对齐内容*/
+ @page { size:50mm 40mm;margin:0mm; }
+ .changeFont{font-size:12px;transform: scale(0.8);-webkit-transform: scale(0.85);}
+ }
+ </style>
+ </head>
+ <body style='margin:0;padding:0;'>${printContent.innerHTML}</body>
+ </html>
+ `)
+ printDocument.close()
+ let ct = document.getElementById('codeTitle').offsetWidth
+ console.log('ct',ct)
+ //在打印窗口中调用打印功能
+ // debugger
+ // if(ct >= 180) {
+
+ // }else {
+ //
+ // printFrame.contentWindow.document.body.style.zoom = '100%'
+ // }
+
+
+ printFrame.contentWindow.print()
+ //移除隐藏的iframe元素
+ document.body.removeChild(printFrame)
+ // handleClose()
+}
+
defineExpose({
openDialog
});
--
Gitblit v1.9.2