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>鏍峰搧缂栧彿:&nbsp; </span>{{ item.sampleCode }}</el-col>
-                        </el-row>
-                        <el-row style="margin-top: 1px;font-size: 14px;">
-                          <el-col  style="font-weight: bold;"><span>濮旀墭鍗曞彿:&nbsp; </span>{{ item.code }}</el-col>
-                        </el-row>
-                        <el-row style="margin-top: 1px;font-size: 14px;">
-                          <el-col  style="font-weight: bold;"><span>瑙勬牸鍨嬪彿:&nbsp; </span>{{ item.model }}</el-col>
-                        </el-row>
-                        <el-row style="margin-top: 1px;font-size: 14px;">
-                          <el-col  style="font-weight: bold;"><span>鏍峰搧鍚嶇О:&nbsp; </span>{{ item.sample }}</el-col>
-                        </el-row>
-                        <el-row style="margin-top: 1px;font-size: 14px;">
-                          <el-col  style="font-weight: bold;"><span>鐢垫満缂栧彿:&nbsp; </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>妫�娴嬮」鐩�:&nbsp; </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>鏍峰搧鐘舵��:&nbsp; </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>鏍峰搧缂栧彿:&nbsp; </span>{{ item.sampleCode }}</el-col>
-                </el-row>
-                <el-row style="font-size: 0.20cm;">
-                  <el-col><span>濮旀墭鍗曞彿:&nbsp; </span>{{ item.code }}</el-col>
-                </el-row>
-                <el-row style="font-size: 0.20cm;">
-                  <el-col><span>瑙勬牸鍨嬪彿:&nbsp; </span>{{ item.model }}</el-col>
-                </el-row>
-                <el-row style="font-size: 0.20cm;">
-                  <el-col ><span>鏍峰搧鍚嶇О:&nbsp; </span>{{ item.sample }}</el-col>
-                </el-row>
-                <el-row style="font-size: 0.20cm;">
-                  <el-col ><span>鐢垫満缂栧彿:&nbsp; </span>{{ item.motorNumber }}</el-col>
-                </el-row>
-                <el-row style="font-size: 0.20cm;width: 4cm;">
-                  <el-col class="ellipsis-multiline"><span>妫�娴嬮」鐩�:&nbsp; </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>鏍峰搧鐘舵��:&nbsp;
-                  </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