From d098e2e3a16837ad0a61c1a2df93b27c7d16bfd2 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期五, 06 九月 2024 17:10:29 +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