zouyu
6 天以前 e6e3ff9166c219af461bad39edf0019db7c65315
外购成品报检相关问题调整
已添加1个文件
已修改4个文件
580 ■■■■ 文件已修改
src/views/business/inspectionReview/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/inspection.vue 223 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/outsourcingFinishProduct/components/printDialog.vue 347 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/outsourcingFinishProduct/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionReview/index.vue
@@ -246,6 +246,7 @@
      currentTime: null,
      sonLaboratoryList: [],
      typeSourceList: [
        { label: '委托下单', value: -1 },
        { label: '成品下单', value: 0 },
        { label: '原材料下单', value: 1 },
      ],
src/views/business/inspectionTask/index.vue
@@ -3,7 +3,7 @@
    <div style="height: 100%">
      <div class="search">
        <el-form :model="queryParams" ref="queryParams" size="small" :inline="true">
          <el-form-item label="批号" prop="updateBatchNo" v-if="tabIndex===1">
          <el-form-item label="批号" prop="updateBatchNo" v-if="tabIndex!==0">
            <el-input v-model="queryParams.updateBatchNo" clearable placeholder="请输入" size="small"
                      @keyup.enter.native="refreshTable()">
            </el-input>
src/views/business/inspectionTask/inspection.vue
@@ -17,7 +17,7 @@
        </el-form>
      </el-col>
      <el-col :span="insOrder.ifsOrderType!=='02wg'?16:24" style="text-align: right">
        <el-button v-if="insOrder.ifsOrderType" size="small" type="primary" @click="showMaterialPropsDialog">IFS物料属性更新</el-button>
        <el-button v-if="insOrder.ifsOrderType && insOrder.ifsOrderType==='02wg'" size="small" type="primary" @click="showMaterialPropsDialog">IFS物料属性更新</el-button>
        <el-button size="small" type="primary" @click="refreshView">刷新</el-button>
        <el-button v-if="typeSource == 1" size="small" type="primary" @click="openPurchase">进货验证</el-button>
        <el-button v-if="state == 1 && typeSource == 1" size="small" type="primary"
@@ -33,60 +33,95 @@
      </el-col>
    </el-row>
    <div class="search">
      <el-form :inline="true" :model="searchForm" class="form-inline" label-position="right" label-width="100px">
        <el-form-item label="委托编号:">
          <el-input v-model="insOrder.entrustCode" clearable disabled placeholder="请输入" size="small"></el-input>
        </el-form-item>
        <el-form-item label="样品编号:">
          <el-tooltip :content="currentSample.sampleCode" :disabled="!currentSample.sampleCode">
            <el-input v-model="currentSample.sampleCode" clearable disabled placeholder="请输入" size="small"></el-input>
          </el-tooltip>
        </el-form-item>
        <el-form-item label="样品名称:">
          <el-input v-model="currentSample.sample" clearable disabled placeholder="请输入" size="small"></el-input>
        </el-form-item>
        <el-form-item label="样品数量:">
          <el-input v-model="sampleProduct.length" clearable disabled placeholder="请输入" size="small"></el-input>
        </el-form-item>
        <el-form-item label="样品型号:">
          <el-input v-model="currentSample.model" clearable disabled placeholder="请输入" size="small"></el-input>
        </el-form-item>
        <el-form-item label="下发时间:">
          <el-input v-model="insOrder.sendTime" clearable disabled placeholder="请输入" size="small"></el-input>
        </el-form-item>
        <el-form-item label="紧急程度:">
          <el-input v-model="insOrder.typeName" clearable disabled placeholder="请输入" size="small"></el-input>
        </el-form-item>
        <el-form-item label="约定时间:">
          <el-input v-model="insOrder.appointed" clearable disabled placeholder="请输入" size="small"></el-input>
        </el-form-item>
        <el-form-item v-if="typeSource === 1" label="抽检数量:">
          <el-input v-model="insOrder.testQuantity" clearable disabled placeholder="请输入" size="small"></el-input>
        </el-form-item>
        <el-form-item v-if="typeSource === 1" label="厂家密度:">
          <el-input v-model="supplierDensity" clearable disabled placeholder="请输入" size="small"></el-input>
        </el-form-item>
        <el-form-item label="当前样品位数:" label-width="120px">
          <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag>
        </el-form-item>
        <el-form-item label="备注:">
          <!--          <span style="color:red">{{ insOrder.remark?insOrder.remark:'-' }}</span>-->
<!--      <el-form :inline="true" :model="searchForm" class="form-inline" label-position="right" label-width="100px">-->
<!--        <el-form-item label="委托编号:">-->
<!--          <el-input v-model="insOrder.entrustCode" clearable disabled placeholder="请输入" size="small"></el-input>-->
<!--        </el-form-item>-->
<!--        <el-form-item label="样品编号:">-->
<!--          <el-tooltip :content="currentSample.sampleCode" :disabled="!currentSample.sampleCode">-->
<!--            <el-input v-model="currentSample.sampleCode" clearable disabled placeholder="请输入" size="small"></el-input>-->
<!--          </el-tooltip>-->
<!--        </el-form-item>-->
<!--        <el-form-item label="样品名称:">-->
<!--          <el-input v-model="currentSample.sample" clearable disabled placeholder="请输入" size="small"></el-input>-->
<!--        </el-form-item>-->
<!--        <el-form-item label="样品数量:">-->
<!--          <el-input v-model="sampleProduct.length" clearable disabled placeholder="请输入" size="small"></el-input>-->
<!--        </el-form-item>-->
<!--        <el-form-item label="样品型号:">-->
<!--          <el-input v-model="currentSample.model" clearable disabled placeholder="请输入" size="small"></el-input>-->
<!--        </el-form-item>-->
<!--        <el-form-item label="下发时间:">-->
<!--          <el-input v-model="insOrder.sendTime" clearable disabled placeholder="请输入" size="small"></el-input>-->
<!--        </el-form-item>-->
<!--        <el-form-item label="紧急程度:">-->
<!--          <el-input v-model="insOrder.typeName" clearable disabled placeholder="请输入" size="small"></el-input>-->
<!--        </el-form-item>-->
<!--        <el-form-item label="约定时间:">-->
<!--          <el-input v-model="insOrder.appointed" clearable disabled placeholder="请输入" size="small"></el-input>-->
<!--        </el-form-item>-->
<!--        <el-form-item v-if="typeSource === 1" label="抽检数量:">-->
<!--          <el-input v-model="insOrder.testQuantity" clearable disabled placeholder="请输入" size="small"></el-input>-->
<!--        </el-form-item>-->
<!--        <el-form-item v-if="typeSource === 1" label="厂家密度:">-->
<!--          <el-input v-model="supplierDensity" clearable disabled placeholder="请输入" size="small"></el-input>-->
<!--        </el-form-item>-->
<!--        <el-form-item label="当前样品位数:" label-width="120px">-->
<!--          <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag>-->
<!--        </el-form-item>-->
<!--        <el-form-item label="备注:">-->
<!--          &lt;!&ndash;          <span style="color:red">{{ insOrder.remark?insOrder.remark:'-' }}</span>&ndash;&gt;-->
<!--          <el-input v-model="insOrder.remark" :disabled="state != 1" clearable placeholder="请输入" size="small"-->
<!--            @blur="subOtherForm(insOrder.remark, 'remark')"></el-input>-->
<!--          &lt;!&ndash; <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> &ndash;&gt;-->
<!--        </el-form-item>-->
<!--        <template v-if="insOrder.isSplitOrder && insOrder.isSplitOrder===1">-->
<!--          <el-form-item label="外护颜色:">-->
<!--            <el-input v-model="insOrder.outerColor" clearable disabled placeholder="" size="small"></el-input>-->
<!--          </el-form-item>-->
<!--          <el-form-item label="绝缘颜色:">-->
<!--            <el-input v-model="insOrder.insulationColor" clearable disabled placeholder="" size="small"></el-input>-->
<!--          </el-form-item>-->
<!--          <el-form-item label="盘号:">-->
<!--            <el-input v-model="insOrder.drumNo" clearable disabled placeholder="" size="small"></el-input>-->
<!--          </el-form-item>-->
<!--        </template>-->
<!--      </el-form>-->
<!--      -->
      <el-descriptions title="检验单概况" :column="4" border>
        <template v-if="insOrder.ifsOrderType">
          <el-descriptions-item label="零件号">{{insOrder.partNo}}</el-descriptions-item>
          <el-descriptions-item label="零件名称">{{insOrder.partDetail}}</el-descriptions-item>
          <el-descriptions-item label="批次号">{{ insOrder.lotBatchNo }}</el-descriptions-item>
          <el-descriptions-item label="样品型号" >{{currentSample.model}}</el-descriptions-item>
          <el-descriptions-item label="抽检数量">{{insOrder.testQuantity}}</el-descriptions-item>
          <el-descriptions-item label="厂家密度">{{supplierDensity}}</el-descriptions-item>
          <template v-if="insOrder.ifsOrderType && insOrder.ifsOrderType==='02wg'">
            <el-descriptions-item label="载具编号">{{insOrder.drumNo}}</el-descriptions-item>
            <el-descriptions-item label="起始米标(km)">{{insOrder.startMeterMark}}</el-descriptions-item>
            <el-descriptions-item label="截止米标(km)">{{insOrder.endMeterMark}}</el-descriptions-item>
            <el-descriptions-item label="入库长度(km)">{{calcInbondLength(insOrder.startMeterMark,insOrder.endMeterMark)}}</el-descriptions-item>
            <el-descriptions-item label="绝缘颜色">{{insOrder.insulationColor}}</el-descriptions-item>
            <el-descriptions-item label="外护颜色">{{insOrder.outerColor}}</el-descriptions-item>
            <el-descriptions-item label="印字信息">{{insOrder.letteringInfo}}</el-descriptions-item>
          </template>
        </template>
        <template v-else>
          <el-descriptions-item label="委托编号">{{ insOrder.entrustCode }}</el-descriptions-item>
          <el-descriptions-item label="样品编号">{{ currentSample.sampleCode }}</el-descriptions-item>
          <el-descriptions-item label="样品名称">{{ currentSample.sample }}</el-descriptions-item>
          <el-descriptions-item label="样品数量">{{ sampleProduct.length }}</el-descriptions-item>
          <el-descriptions-item label="样品型号">{{ currentSample.model }}</el-descriptions-item>
          <el-descriptions-item label="下发时间">{{ insOrder.sendTime }}</el-descriptions-item>
          <el-descriptions-item label="紧急程度">{{ insOrder.typeName }}</el-descriptions-item>
          <el-descriptions-item label="约定时间">{{ insOrder.appointed }}</el-descriptions-item>
        </template>
        <el-descriptions-item label="当前样品位数"><el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag></el-descriptions-item>
        <el-descriptions-item label="备注">
          <el-input v-model="insOrder.remark" :disabled="state != 1" clearable placeholder="请输入" size="small"
            @blur="subOtherForm(insOrder.remark, 'remark')"></el-input>
          <!-- <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> -->
        </el-form-item>
        <template v-if="insOrder.isSplitOrder && insOrder.isSplitOrder===1">
          <el-form-item label="外护颜色:">
            <el-input v-model="insOrder.outerColor" clearable disabled placeholder="" size="small"></el-input>
          </el-form-item>
          <el-form-item label="绝缘颜色:">
            <el-input v-model="insOrder.insulationColor" clearable disabled placeholder="" size="small"></el-input>
          </el-form-item>
          <el-form-item label="盘号:">
            <el-input v-model="insOrder.drumNo" clearable disabled placeholder="" size="small"></el-input>
          </el-form-item>
        </template>
      </el-form>
        </el-descriptions-item>
      </el-descriptions>
    </div>
    <div class="center">
      <div class="search" style="
@@ -545,22 +580,30 @@
      width="20%">
      <el-form style="width:100%" :model="ifsMaterialPropsForm">
        <el-form-item label="载具编号(Attr1):">
          <el-input size="small" v-model="ifsMaterialPropsForm.drumNo"></el-input>
          <el-input placeholder="载具编号" size="small" v-model="ifsMaterialPropsForm.drumNo"></el-input>
        </el-form-item>
        <el-form-item label="起始米标(Attr2):">
          <el-input size="small" v-model="ifsMaterialPropsForm.startMeterMark"></el-input>
          <el-input @blur="validateQuality()" placeholder="起始米标" size="small" v-model="ifsMaterialPropsForm.startMeterMark">
            <span slot="suffix">km</span>
          </el-input>
        </el-form-item>
        <el-form-item label="截止米标(Attr3):">
          <el-input size="small" v-model="ifsMaterialPropsForm.endMeterMark"></el-input>
          <el-input @blur="validateQuality()" placeholder="截止米标" size="small" v-model="ifsMaterialPropsForm.endMeterMark">
            <span slot="suffix">km</span>
          </el-input>
        </el-form-item>
<!--        <el-form-item label="入库长度">-->
<!--          <el-input v-model="ifsMaterialPropsForm.inboundLength"></el-input>-->
<!--        </el-form-item>-->
        <el-form-item label="绝缘颜色(Attr4):">
          <el-input size="small" v-model="ifsMaterialPropsForm.insulationColor"></el-input>
        <el-form-item label="外护颜色(Attr4):">
          <el-select size="small" v-model="ifsMaterialPropsForm.outerColor">
            <el-option v-for="(item,index) in outerColorList" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="外护颜色(Attr5):">
          <el-input size="small" v-model="ifsMaterialPropsForm.outerColor"></el-input>
        <el-form-item label="绝缘颜色(Attr5):">
          <el-select size="small" v-model="ifsMaterialPropsForm.insulationColor">
            <el-option v-for="(item,index) in insulationColorList" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="印字信息(Attr8):">
          <el-select size="small" v-model="ifsMaterialPropsForm.letteringInfo" placeholder="请选择">
@@ -583,8 +626,6 @@
import AddUnPass from "../unpass/components/addUnPass.vue";
import InspectionWord from "./components/InspectionWord.vue";
import PurchaseVerification from "../unpass/components/PurchaseVerification.vue";
import {
  doInsOrder,
  getCableTag,
@@ -611,6 +652,7 @@
import viewManHourDia from "@/views/business/inspectionTask/components/viewManHourDia.vue";
import {connect,disconnect,weightList} from "@/utils/connect";
import {getOneByIfsId,saveOrUpdateProps} from "@/api/business/ifsPartProps.js";
import {getDicts} from "@/api/system/dict/data";
export default {
  name: 'Inspection',
  components: {
@@ -623,10 +665,12 @@
  },
  data() {
    return {
      outerColorList:[],
      insulationColorList:[],
      letteringInfoList: [],
      ifsMaterialPropsForm:{
        id:null,
        ifsOrderId: null,
        ifsInventoryId: null,
        drumNo: '', // è½½å…·ç¼–号
        startMeterMark: '', // èµ·å§‹ç±³æ ‡
        endMeterMark: '', // æˆªæ­¢ç±³æ ‡
@@ -960,10 +1004,45 @@
    }
  },
  methods: {
    validateQuality(){
      let inboundLength = Number(this.calcInbondLength(this.ifsMaterialPropsForm.startMeterMark,this.ifsMaterialPropsForm.endMeterMark));
      let testQuantity = Number(this.insOrder.testQuantity);
      if(inboundLength!=null && testQuantity!==inboundLength){
        this.$message.warning(`入库长度(${inboundLength}km)与检验数量(${testQuantity}km)不符,请确认!`);
      }
    },
    calcInbondLength(startMeterMark,endMeterMark){
      let inboundLength = null;
      if((startMeterMark!=null && startMeterMark!=='') && (endMeterMark!=null&&endMeterMark!=='')){
        inboundLength = Math.abs(endMeterMark - startMeterMark)
      }
      return inboundLength;
    },
    getLetteringInfoDicts(){
      getDicts("lettering_info_type").then(res=>{
        if(res.code==200){
          this.letteringInfoList = res.data
        }
      })
    },
    getInsulationColorDicts(){
      getDicts("insulation_color_type").then(res=>{
        if(res.code==200){
          this.insulationColorList = res.data
        }
      })
    },
    getOuterColorDicts(){
      getDicts("outer_color_type").then(res=>{
        if(res.code==200){
          this.outerColorList = res.data
        }
      })
    },
    closePartPropDialog(){
      this.ifsMaterialPropsForm = {
        id:null,
        ifsOrderId: null,
        ifsInventoryId: null,
        drumNo: '', // è½½å…·ç¼–号
        startMeterMark: '', // èµ·å§‹ç±³æ ‡
        endMeterMark: '', // æˆªæ­¢ç±³æ ‡
@@ -982,6 +1061,7 @@
      })
    },
    saveOrUpdatePartProp(){
      this.ifsMaterialPropsForm.ifsInventoryId = this.insOrder.ifsInventoryId
      saveOrUpdateProps({
        ...this.ifsMaterialPropsForm,
        partNo: this.insOrder.partNo,
@@ -996,6 +1076,9 @@
    //打开IFS物料属性弹框
    showMaterialPropsDialog(){
      this.getPartProps(this.insOrder.ifsInventoryId)
      this.getOuterColorDicts()
      this.getInsulationColorDicts()
      this.getLetteringInfoDicts()
      this.$nextTick(()=>{
        this.ifsMaterialPropsVisible = true;
      })
@@ -1088,8 +1171,10 @@
        laboratory: this.sonLaboratory,
      }).then(async (res) => {
        this.insOrder = res.data.insOrder;
        if(res.data.insOrder.ifsOrderType){
        //查询零件属性
        this.getPartProps(res.data.insOrder.ifsInventoryId)
        }
        this.supplierDensity = res.data.supplierDensity;
        this.getList()
        this.urgentList.forEach((m) => {
@@ -1989,7 +2074,6 @@
                  } else if (c.v.ps != undefined && c.v.ps.value === "检验项") {
                    if (count4 === 1) {
                      if (c.v.v) {
                        console.log("进入1111111")
                        c.v.v = c.v.v.replace(/[\n\r\s]*/g, "");
                      }
                      str += c.v.v;
@@ -2075,6 +2159,10 @@
                  }
                } else {
                  // å¦‚果相等,那么说明找到了,并且把id存起来,后续检验项也会在页面中显示出来
                  let aa = inspectionItemClass +
                    inspectionItem +
                    inspectionItemSubclass;
                  console.log(aa,str,aa===str)
                  if (
                    this.currentSample.insProduct[i].templateId ===
                    a.templateId &&
@@ -2767,6 +2855,10 @@
        this.$message.error("请输入温度");
        return;
      }
      if (!this.insOrder.lotPartId && this.insOrder.ifsOrderType==='02wg') {
        this.$message.error("请填写IFS库存物料批次属性");
        return;
      }
      this.submitLoading = true;
      checkSubmitPlan({
        orderId: this.orderId,
@@ -3107,6 +3199,7 @@
  background-color: #fff;
  border-radius: 3px;
  margin-bottom: 10px;
  padding: 10px;
}
.search .form-inline {
src/views/business/outsourcingFinishProduct/components/printDialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,347 @@
<template>
  <div>
    <el-dialog :visible.sync="isShow" title="标签打印" top="5vh" width="600px" @close="$emit('closePrintDialog')">
      <div style="width:100%;height: 400px;overflow-y: auto;text-align: left">
        <div class="dia_body">
          <el-checkbox
            v-model="checkAll"
            :indeterminate="isIndeterminate"
            style="margin: 10px 5px;"
            @change="handleCheckAllChange">全选</el-checkbox>
          <el-checkbox-group v-model="checkIndexList" @change="changePrintCode()">
            <el-card v-for="(item, i) in barcodeData" :key="i" class="box-card" style="margin-bottom: 15px; font-size: 16px !important;">
              <el-checkbox :key="i" :label="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 :displayValue="false" :height="34" :value="item.barcode" :width="2"></barcode>
                </div>
                <div style="margin-left: 20px;text-align: left">
                  <div class="item">
                    <span class="full-title">样品名称</span>:
                    <span class="info">{{ item.sampleView }}</span>
                  </div>
                  <div class="item">
                    <span class="full-title">生产单位</span>:
                    <span class="info">{{ item.production }}</span>
                  </div>
                  <div class="item2">
                    <span class="full-title">规格型号</span>:
                    <span class="info">{{ item.sampleModel }}</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.testQuantity }}</span>
                  </div>
                  <div style="font-weight: bold;display: flex;align-items: center;">
                    <span class="full-title">样品状态</span>:
                    <el-radio-group v-model="item.insState" v-removeAriaHidden style="margin-top: 7px;margin-left: 4px;">
                      <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 v-model="item.isLeave"
                                :label="true"
                                size="small" style="margin-left: 14px;margin-top: 3px;" @click.native.prevent="changeIsLeave(item)">留样</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" ref="printOrder" class="printOrder">
        <el-card v-for="(item, i) in checkDataList" :key="i" class="box-card" 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 :displayValue="false" :height="22" :value="item.barcode" :width="1.6"></barcode>
            </div>
            <div style="margin-left: 12px;text-align: left">
              <div class="item">
                <span class="full-title4">样品名称:</span>
                <span class="info4">{{ item.sampleView }}</span>
              </div>
              <div class="item">
                <span class="full-title2">生产单位</span>:
                <span class="info">{{ item.production }}</span>
              </div>
              <div class="item2">
                <span class="full-title4">规格型号:</span>
                <span class="info4">{{ item.sampleModel }}</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.testQuantity }}</span>
              </div>
              <div>
                <span class="full-title2">样品状态</span>:
                <span style="white-space: nowrap;margin-left: 2px">
                  å¾…检<span v-if="item.insState!==0" class="scor"></span><span v-if="item.insState===0" class="checked">√</span>
                  åœ¨æ£€<span v-if="item.insState!==1" class="scor"></span><span v-if="item.insState===1" class="checked">√</span>
                  å·²æ£€<span v-if="item.insState!==2" class="scor"></span><span v-if="item.insState===2" class="checked">√</span>
                  ç•™æ ·<span v-if="!item.isLeave" class="scor"></span><span v-if="item.isLeave" class="checked">√</span>
                </span>
              </div>
            </div>
          </div>
        </el-card>
      </div>
    </div>
  </div>
</template>
<script>
import PrintJS from "print-js";
import {labelOrderPrinting} from "@/api/business/productOrder";
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)
        })
        labelOrderPrinting({
          ids: ids
        }).then(res => {
          if (res.code === 200 && res.data.length > 0) {
            res.data.forEach(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.insState === '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: 8px;
  width: 44px;
  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>
src/views/business/outsourcingFinishProduct/index.vue
@@ -183,19 +183,16 @@
import DownFileDialog from "@/views/business/materialOrderComponents/materialOrder/downFileDialog.vue";
import limsTable from "@/components/Table/lims-table.vue";
import {
  getWarehouseSubmit,
  concessionRelease,
  getIfsByAll,
  getIfsByOver,
  getIfsByQuarter,
  getIfsByStateOne,
  rawAllExport,
  rawOrderRelease,
  repealEnterRawOrder,
  repealQuarterRawOrder,
  revokeInspectionReport,
  updateEntrustCode
} from "@/api/business/outsourcingFinishProductInspection";
} from "@/api/business/rawMaterialOrder";
import {getWarehouseSubmit,getIfsByStateOne,getIfsByOver,getIfsByAll} from "@/api/business/outsourcingFinishProductInspection";
import {mapGetters} from "vuex";
export default {