From 873175bbb402d99c8759f49e37106680b28a783e Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期二, 15 十月 2024 13:40:42 +0800 Subject: [PATCH] 修改 --- src/components/do/b1-inspect-order-plan/Inspection.vue | 2 src/components/view/b1-inspection-order.vue | 141 --------------- src/components/do/b1-ins-order/printDialog.vue | 342 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 343 insertions(+), 142 deletions(-) diff --git a/src/components/do/b1-ins-order/printDialog.vue b/src/components/do/b1-ins-order/printDialog.vue new file mode 100644 index 0000000..9889033 --- /dev/null +++ b/src/components/do/b1-ins-order/printDialog.vue @@ -0,0 +1,342 @@ +<template> + <div> + <el-dialog title="鏍囩鎵撳嵃" :visible.sync="isShow" width="600px" top="5vh" @close="$emit('closePrintDialog')"> + <div style="width:100%;height: 400px;overflow-y: auto;text-align: left"> + <div class="dia_body"> + <el-checkbox + style="margin: 10px 5px;" + :indeterminate="isIndeterminate" + v-model="checkAll" + @change="handleCheckAllChange">鍏ㄩ��</el-checkbox> + <el-checkbox-group @change="changePrintCode()" v-model="checkIndexList"> + <el-card class="box-card" v-for="(item, i) in barcodeData" :key="i" style="margin-bottom: 15px; font-size: 16px !important;"> + <el-checkbox :label="i" :key="i" style="position: relative;top:0;left:10px"><br></el-checkbox> + <div> + <div class="titleH1" style="text-align: center; margin-bottom: 2px;font-size: 16px">妫�娴嬩腑蹇冩牱鍝佹爣璇嗗崱</div> + <div style="text-align: center;"> + <barcode :value="item.barcode" :height="34" :width="2" :displayValue="false"></barcode> + </div> + <div style="margin-left: 20px;text-align: left"> + <div class="item"> + <span class="full-title">鏉愭枡鍚嶇О</span>: + <span class="info">{{ item.sampleName }}</span> + </div> + <div class="item"> + <span class="full-title">鏉愭枡鍘傚</span>: + <span class="info">{{ item.supplierName }}</span> + </div> + <div class="item2"> + <span class="full-title">瑙勬牸鍨嬪彿</span>: + <span class="info">{{ item.partDesc }}</span> + </div> + <div class="item"> + <span class="full-title">濮旀墭鏃ユ湡</span>: + <span class="info">{{ item.sendTime }}</span> + </div> + <div class="item"> + <span class="full-title">濮旀墭浜�</span>: + <span class="info2">{{ item.prepareUser }}</span> + <span class="full-title">妫�娴嬬紪鍙�</span>: + <span class="info">{{ item.entrustCode }}</span> + </div> + <div class="item"> + <span class="full-title">鏍峰搧鏁伴噺</span>: + <span class="info2">{{ item.sampleNumber }}</span> + <span class="full-title">鏍峰搧鏍囪瘑</span>: + <span class="info">{{ item.color }}</span> + </div> + <div style="font-weight: bold;display: flex;align-items: center;"> + <span class="full-title">鏍峰搧鐘舵��</span>: + <el-radio-group v-model="item.labelStatus" style="margin-top: 7px;margin-left: 4px;" v-removeAriaHidden> + <el-radio label="0" style="font-weight: bold;margin-right: 7px;">寰呮</el-radio> + <el-radio label="1" style="font-weight: bold;margin-right: 7px;">鍦ㄦ</el-radio> + <el-radio label="2" style="font-weight: bold;margin-right: 7px;">宸叉</el-radio> + </el-radio-group> + <span> + <el-radio style="margin-left: 14px;margin-top: 3px;" + @click.native.prevent="changeIsLeave(item)" + :label="true" size="small" v-model="item.isLeave">鐣欐牱</el-radio> + </span> + </div> + </div> + </div> + </el-card> + </el-checkbox-group> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-row> + <el-button @click="$emit('closePrintDialog')">鍙� 娑�</el-button> + <el-button type="primary" @click="submitPrint">鎵� 鍗�</el-button> + </el-row> + </span> + </el-dialog> + <div class="el-dialog-body" style="overflow-y: auto;margin-top: 0;position: fixed;top: 20px;right: 10px;z-index: 99999;"> + <div id="printOrder" class="printOrder" ref="printOrder"> + <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i" style="font-size: 0.29cm !important;font-weight: 700;page-break-after: always;color: #000;box-shadow: none;margin: 0 !important;padding: 0 !important;"> + <div> + <div class="titleH1" style="text-align: center;margin-bottom: 1px">妫�娴嬩腑蹇冩牱鍝佹爣璇嗗崱</div> + <div style="text-align: center;"> + <barcode :value="item.barcode" :height="22" :width="1.6" :displayValue="false"></barcode> + </div> + <div style="margin-left: 12px;text-align: left"> + <div class="item"> + <span class="full-title4">鏉愭枡鍚嶇О:</span> + <span class="info4">{{ item.sampleName }}</span> + </div> + <div class="item"> + <span class="full-title2">鏉愭枡鍘傚</span>: + <span class="info">{{ item.supplierName }}</span> + </div> + <div class="item2"> + <span class="full-title4">瑙勬牸鍨嬪彿:</span> + <span class="info4">{{ item.partDesc }}</span> + </div> + <div class="item"> + <span class="full-title2">濮旀墭鏃ユ湡</span>: + <span class="info">{{ item.sendTime }}</span> + </div> + <div class="item"> + <span class="full-title2">濮旀墭浜�</span>: + <span class="info3">{{ item.prepareUser }}</span> + <span class="full-title2">妫�娴嬬紪鍙�</span>: + <span class="info">{{ item.entrustCode }}</span> + </div> + <div class="item"> + <span class="full-title2">鏍峰搧鏁伴噺</span>: + <span class="info3">{{ item.sampleNumber }}</span> + <span class="full-title2">鏍峰搧鏍囪瘑</span>: + <span class="info">{{ item.color }}</span> + </div> + <div> + <span class="full-title2">鏍峰搧鐘舵��</span>: + <span style="white-space: nowrap;margin-left: 2px"> + 寰呮<span class="scor" v-if="item.labelStatus!='0'"></span><span class="checked" v-if="item.labelStatus=='0'">鈭�</span> + 鍦ㄦ<span class="scor" v-if="item.labelStatus!='1'"></span><span class="checked" v-if="item.labelStatus=='1'">鈭�</span> + 宸叉<span class="scor" v-if="item.labelStatus!='2'"></span><span class="checked" v-if="item.labelStatus=='2'">鈭�</span> + 鐣欐牱<span class="scor" v-if="!item.isLeave"></span><span class="checked" v-if="item.isLeave">鈭�</span> + </span> + </div> + </div> + </div> + </el-card> + </div> + </div> + </div> +</template> + +<script> +import PrintJS from "print-js"; + +export default { + name: "printDialog", + // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� + components: {}, + props: { + printDialog: { + type: Boolean, + default: () => false + }, + }, + data() { + // 杩欓噷瀛樻斁鏁版嵁 + return { + isShow: this.printDialog, + loadPint:false, + isIndeterminate:false, // 澶氶�夋鏍峰紡 + checkAll: false, + checkIndexList:[], // 閫夋嫨瑕佹墦鍗扮殑鏁版嵁 + barcodeData: [], + printLoading: false, + checkDataList: [] + } + }, + // 鏂规硶闆嗗悎 + methods: { + // 鑾峰彇瑕佹墦鍗扮殑鏁版嵁 + getLabelPrinting(selection){ + try { + this.loadPint = true; + let ids = [] + selection.map(m=> { + ids.push(m.id) + }) + this.$axios.post(this.$api.materialInspection.printLabel,{ + ids: ids + },{ + headers: { + 'Content-Type': 'application/json' + }, + noQs:true + }).then(res => { + if (res.code === 200 && res.data.length > 0) { + res.data.forEach(item => { + console.log('item---', item) + item.sendTime = item.sendTime && item.sendTime.substring(0, 10) + item.sampleNumber = item.qtyArrived + item.buyUnitMeas + this.$set(item, 'barcode', item.entrustCode) + this.$set(item, 'isLeave', item.labelStatus === '2') + }) + this.barcodeData = res.data + } + }) + } catch (e) { + console.log('鑾峰彇瑕佹墦鍗扮殑鏁版嵁---', e) + } + + }, + changeIsLeave (item) { + const index = this.barcodeData.findIndex(val => val.entrustCode === item.entrustCode) + if (index > -1) { + this.barcodeData[index].isLeave = !this.barcodeData[index].isLeave + } + }, + // 鍏ㄩ�夊閫夋鍥炶皟 + handleCheckAllChange(val) { + if(val){ + for(var i=0;i<this.barcodeData.length;i++){ + this.checkIndexList.push(i) + } + this.checkDataList = this.barcodeData + }else{ + this.checkIndexList = [] + this.checkDataList = [] + } + this.isIndeterminate = false; + }, + changeType (type) { + type = type === '1' ? '0' : '1' + }, + //閫夋嫨瑕佹墦鍗扮殑浜岀淮鐮� + changePrintCode(){ + let indexList = this.checkIndexList + let arr = [] + indexList.forEach(i=>{ + if (i !== undefined) { + arr.push(this.barcodeData[i]) + } + }) + console.log('arr---', arr) + this.checkDataList = arr + }, + // 鎻愪氦鎵撳嵃 + submitPrint(){ + if(this.checkDataList.length < 1){ + this.$message.warning("璇烽�夋嫨瑕佹墦鍗扮殑鏉″舰鐮�") + return + } + this.printDialogVisible = false; + PrintJS({ + targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕� + printable: 'printOrder',//椤甸潰 + type: "html",//鏂囨。绫诲瀷 + maxWidth:360, + header: '', + style: + `@page { + margin: 0.4cm; + margin-right: 0.4cm; + margin-top: 0.4cm; + margin-bottom: 0.4cm; + padding-bottom: 0px; + size: 400px 75px collapse; + } + html{ + zoom:100%; + + } + @media print{ + width: 400px; + height: 75px; + margin:0; + }`, + onPrintDialogClose: this.erexcel=false, + font_size: '0.29cm', + }); + }, + }, + watch:{ + printDialog(newVal){ + if(!newVal){ + this.barcodeData = [] + this.checkIndexList = [] + this.checkDataList = [] + this.isIndeterminate = true; + } + } + }, +} +</script> + +<style scoped> +.item { + margin-bottom: 4px; +} +.item2 { + margin-bottom: 8px; + vertical-align: top; +} +.full-title { + display: inline-block; + width: 80px; + text-align-last: justify; +} +.full-title2 { + display: inline-block; + width: 50px; + text-align-last: justify; +} +.full-title4 { + display: inline-block; + width: 53px; + text-align-last: justify; + vertical-align: top; +} +.info { + margin-left: 2px; +} +.info2 { + margin-left: 2px; + margin-right: 30px; + width: 80px; + display: inline-block; +} +.info3 { + margin-left: 2px; + margin-right: 30px; + width: 50px; + display: inline-block; +} +.info4 { + display: inline-block; + margin-left: 2px; + white-space: normal; + width: 260px; +} +.checkboxInfo { + display: inline-block; + margin-left: 10px; +} +.scor{ + width: 0.06cm; + height: 0.06cm; + border-radius: 1px; + border: 1px solid #000; + display: inline-block; + margin-right: 14px; + margin-left: 4px; +} +.checked { + margin-right: 14px; + margin-left: 4px; +} +>>> .el-checkbox { + margin-right: 10px; +} +>>> .el-card { + border: none; +} +>>>.el-card__body { + padding: 4px 2px 6px 14px; +} +</style> diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index 0202186..2735646 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -3289,7 +3289,7 @@ inspectionItem:a.inspectionItem, outputWorkTime:a.outputWorkTime, inspectionItemSubclass:a.inspectionItemSubclass, - sample:item.id, + sample:item.sampleCode, insProductId:a.id, num:item.num1 } diff --git a/src/components/view/b1-inspection-order.vue b/src/components/view/b1-inspection-order.vue index 8778c55..d0d3072 100644 --- a/src/components/view/b1-inspection-order.vue +++ b/src/components/view/b1-inspection-order.vue @@ -385,114 +385,6 @@ <div style="width: 100%;height: 100%;" v-if="active >0"> <Add :active="active" :currentId="currentId" v-if="active<4" :examine = "examine" /> </div> - <el-dialog title="鏍囩鎵撳嵃" :visible.sync="printDialogVisible" width="40%" top="5vh"> - <div style="width:100%;height: 400px;overflow-y: auto;" v-loading="loadPint"> - <div class="dia_body"> - <el-checkbox - style="margin: 10px 5px;" - :indeterminate="isIndeterminate" - v-model="checkAll" - @change="handleCheckAllChange">鍏ㄩ��</el-checkbox> - <el-checkbox-group @change="changePrintCode()" v-model="checkIndexList"> - <el-card class="box-card" v-for="(item, i) in qrData" :key="i+'wwwww'" style="margin-bottom: 15px; font-size: 16px !important;"> - <el-checkbox :label="i" :key="i" style="position: relative;top:-20px;left:5px"><br></el-checkbox> - <div> - <el-row style="font-size: 14px;padding-left: 20px;"> - <el-col style="font-weight: bold;">{{ item.pName }}</el-col> - </el-row> - <div style="display: flex;"> - <div> - <el-col :span="8" :offset="4"> - <vueQr :text="JSON.stringify(item.sampleCode)" :size="140" :margin="2"></vueQr> - </el-col> - </div> - <div style="margin-left: 50px;width: 100%;"> - <el-row> - <el-col style="font-weight: bold;font-size: 14px;"><span>鏍峰搧缂栧彿: </span>{{ item.sampleCode }}</el-col> - </el-row> - <el-row style="margin-top: 1px;font-size: 14px;"> - <el-col style="font-weight: bold;"><span>濮旀墭鍗曞彿: </span>{{ item.code }}</el-col> - </el-row> - <el-row style="margin-top: 1px;font-size: 14px;"> - <el-col style="font-weight: bold;"><span>瑙勬牸鍨嬪彿: </span>{{ item.model }}</el-col> - </el-row> - <el-row style="margin-top: 1px;font-size: 14px;"> - <el-col style="font-weight: bold;"><span>鏍峰搧鍚嶇О: </span>{{ item.sample }}</el-col> - </el-row> - <el-row style="margin-top: 1px;font-size: 14px;"> - <el-col style="font-weight: bold;"><span>鐢垫満缂栧彿: </span>{{ item.motorNumber }}</el-col> - </el-row> - <el-row style="margin-top: 1px;font-size: 14px;" class="ellipsis-multiline"> - <el-col style="font-weight: bold;"><span>妫�娴嬮」鐩�: </span>{{ item.item }}</el-col> - </el-row> - <el-row style="margin-top: 3px;font-size: 14px;"> - <el-col style="font-weight: bold;display: flex;align-items: center;"><span>鏍峰搧鐘舵��: </span><el-radio-group :value="item.insState" style="margin-top: 7px;margin-left: 4px;" disabled> - <el-radio :label="0" style="font-weight: bold;margin-right: 7px;">寰呮</el-radio> - <el-radio :label="1" style="font-weight: bold;margin-right: 7px;">鍦ㄦ</el-radio> - <el-radio :label="2" style="font-weight: bold;margin-right: 7px;">宸叉</el-radio> - </el-radio-group><el-radio :label="1" style="font-weight: bold;margin-top: 7px;" v-model="item.isLeave" disabled>鐣欐牱</el-radio></el-col> - </el-row> - </div> - </div> - </div> - </el-card> - </el-checkbox-group> - </div> - </div> - <span slot="footer" class="dialog-footer"> - <el-row> - <el-button @click="printDialogVisible=false">鍙� 娑�</el-button> - <el-button type="primary" @click="submitPrint" :loading="printLoading">鎵� 鍗�</el-button> - </el-row> - </span> - </el-dialog> - <div class="el-dialog__body" style="overflow-y: auto;margin-top: 0;position: fixed;top: 999px;z-index: 99999;display: none;"> - <div id="printMOrder" class="printMOrder" ref="printMOrder"> - <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i+'uuuuu'" style="font-size: 0.20cm !important;page-break-after: always;color: #000;box-shadow: none;margin: 0 !important;padding: 0 !important;"> - <div style="display: flex;"> - <div> - <el-col :span="10" :offset="2"> - <vueQr :text="JSON.stringify(item.sampleCode)" :size="60" :margin="2"></vueQr> - </el-col> - </div> - <div style="margin-left: 0.32cm;line-height: 0.22cm;"> - <el-row> - <el-col style="font-size: 0.20cm;width: 4cm;" class="single-line-ellipsis"><span>鏍峰搧缂栧彿: </span>{{ item.sampleCode }}</el-col> - </el-row> - <el-row style="font-size: 0.20cm;"> - <el-col><span>濮旀墭鍗曞彿: </span>{{ item.code }}</el-col> - </el-row> - <el-row style="font-size: 0.20cm;"> - <el-col><span>瑙勬牸鍨嬪彿: </span>{{ item.model }}</el-col> - </el-row> - <el-row style="font-size: 0.20cm;"> - <el-col ><span>鏍峰搧鍚嶇О: </span>{{ item.sample }}</el-col> - </el-row> - <el-row style="font-size: 0.20cm;"> - <el-col ><span>鐢垫満缂栧彿: </span>{{ item.motorNumber }}</el-col> - </el-row> - <el-row style="font-size: 0.20cm;width: 4cm;"> - <el-col class="ellipsis-multiline"><span>妫�娴嬮」鐩�: </span>{{ item.item }}</el-col> - </el-row> - <el-row style="margin-top: 0.01cm;font-size: 0.20cm;"> - <el-col style="display: flex;align-items: center;"><span>鏍峰搧鐘舵��: - </span> - <span style="white-space: nowrap;"><span v-if="item.insState==0">鈭�</span><span class="scor" v-if="item.insState!=0"></span>寰呮 - <span v-if="item.insState==1">鈭�</span><span class="scor" v-if="item.insState!=1"></span>鍦ㄦ - <span v-if="item.insState==2">鈭�</span><span class="scor" v-if="item.insState!=2"></span>宸叉 - <span v-if="item.isLeave==1">鈭�</span><span class="scor" v-if="item.isLeave!=1"></span>鐣欐牱</span> - <!-- <el-radio-group :value="item.insState" style="margin-top: 3px;margin-left: 1px;" disabled> - <el-radio :label="0" style="margin-right: 3px;font-size: 6px;">寰呮</el-radio> - <el-radio :label="1" style="margin-right: 3px;font-size: 6px;">鍦ㄦ</el-radio> - <el-radio :label="2" style="margin-right: 3px;font-size: 6px;">宸叉</el-radio> - </el-radio-group><el-radio :label="1" style="margin-top: 3px;font-size: 8px;" v-model="item.isLeave" disabled>鐣欐牱</el-radio> --> - </el-col> - </el-row> - </div> - </div> - </el-card> - </div> - </div> <el-dialog title="鏍锋満缂栧彿" :visible.sync="BZDialogVisible" width="60%"> <div class="body" style="max-height: 60vh;" v-if="BZDialogVisible"> </div> @@ -530,7 +422,6 @@ import ValueTable from '../tool/value-table.vue' import Add from '../do/b1-ins-order/add.vue' import vueQr from 'vue-qr' - import PrintJS from 'print-js' import { Header } from 'iview'; export default { components: { @@ -973,38 +864,6 @@ this.checkDataList = [] } this.isIndeterminate = false; - }, - submitPrint(){ - if(this.checkDataList.length < 1){ - this.$message.warning("璇烽�夋嫨瑕佹墦鍗扮殑浜岀淮鐮�") - return - } - this.printDialogVisible = false; - PrintJS({ - printable: 'printMOrder',//椤甸潰 - type: "html",//鏂囨。绫诲瀷 - maxWidth:360, - targetStyles:['*'], - style: `@page { - margin:0; - size: 400px 75px collapse; - margin-top:3px; - &:first-of-type{ - margin-top:0 !important; - } - } - html{ - zoom:100%; - } - @media print{ - width: 400px; - height: 75px; - margin:0; - }`, - onPrintDialogClose: this.erexcel=false, - targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕� - font_size: '0.20cm', - }); }, async print(){ if(this.multipleSelection.length==0){ -- Gitblit v1.9.3