| | |
| | | :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> |
| | |
| | | |
| | | 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 |
| | | }); |