licp
2024-12-31 54b1d5908bc6173160a3db6288a27c0944afaba9
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -259,17 +259,29 @@
    <el-row class="title">
      <el-col :span="12" style="padding-left: 20px;text-align: left;" :class="{noShow:noBack}">检验单详情
      </el-col>
      <el-col :span="12" style="text-align: right;">
        <el-button size="small" type="primary" @click="versionDialogVisible=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('电路试验')">检验模板切换</el-button>
        <el-button size="small" type="primary" @click="sampleVisible=true;uploadSample()">样品切换</el-button>
      <el-col :span="12" style="text-align: right;display: flex;align-items: center;justify-content: end;height: 60px;">
        <el-button size="small" type="primary" @click="versionDialogVisible=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('电路试验')&&insOrder.sampleType!='无源器件'">电调/非电调模板切换</el-button>
        <el-select v-model="template" size="medium" placeholder="电路预设模板" style="margin-right: 10px;margin-left: 10px;" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('电路试验')"
          @change="selectInsProductTemplateById">
          <el-option v-for="(a, ai) in templates" :key="ai" :value="a.id" :label="a.name">
            <span style="float: left">{{ a.name }}</span>
            <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px;line-height: 34px;"
              @click.stop="handleDelete(a)" v-if="addInsProductTemplatePower"></i>
          </el-option>
        </el-select>
        <el-button size="medium" @click="templateDia=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('电路试验')&&addInsProductTemplatePower">
            <span style="color: #3A7BFA;">保存模板</span>
          </el-button>
        <!-- <el-button size="small" type="primary" @click="sampleVisible=true;uploadSample()">样品切换</el-button> -->
        <el-button size="small" type="primary" @click="taskVisible=true" v-show="!isLook">任务切换</el-button>
        <el-button size="small" type="primary" @click="handleSubmit" v-if="state==1"
          :loading="submitLoading">提交</el-button>
        <!-- 复核 -->
        <el-button size="small" type="primary" @click="upInsReview(1,'继续试验')" :loading="reviewLoading"
          v-if="state>1&&!isLook">继续试验</el-button>
        <!-- <el-button size="small" type="primary" @click="upInsReview(1,'继续试验')" :loading="reviewLoading"
          v-if="state>1&&!isLook">继续测试下一个样品</el-button>
        <el-button size="small" @click="upInsReview(0,'再次试验')" v-if="state>1&&!isLook" type="danger">再次试验</el-button>
        <el-button size="small" @click="upInsReview(2,'结束试验')" v-if="state>1&&!isLook">结束试验</el-button>
        <el-button size="small" @click="upInsReview(2,'结束试验')" v-if="state>1&&!isLook">此委托单结束</el-button> -->
        <el-button size="small" type="primary" @click="upInsReviewDia=true" v-if="state>1&&!isLook">复核</el-button>
        <el-button size="small" @click="handleBack" v-if="!noBack">返回</el-button>
      </el-col>
    </el-row>
@@ -418,10 +430,10 @@
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='样品编号'">
                    <div style="display: flex;flex-wrap: nowrap;align-items: center;width: 100%" :title="currentSample.sampleCode">
                      <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i>
                      <!-- <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i> -->
                      <div :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`">{{currentSample.sampleCode}}</div>
                      <i class="el-icon-caret-right table_caret" style="width: 16px;"
                      v-if="!currentFiberOpticTape&&!currentFiberOptic" @click="caretSample(1)"></i>
                      <!-- <i class="el-icon-caret-right table_caret" style="width: 16px;"
                      v-if="!currentFiberOpticTape&&!currentFiberOptic" @click="caretSample(1)"></i> -->
                    </div>
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='样品型号'">
@@ -726,8 +738,12 @@
      <!-- 电路试验 -->
      <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('电路试验')" style="width: 100%;overflow-x: auto;overflow-y: visible;">
        <!-- <Circuit></Circuit> -->
        <CircuitParameters1 v-if="currentTableState==0" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum"></CircuitParameters1>
        <CircuitParameters2 v-if="currentTableState==1" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum"></CircuitParameters2>
         <!-- 电调 -->
        <CircuitParameters1 v-if="currentTableState==0" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum" ref="CircuitParameters"></CircuitParameters1>
        <!-- 非电调 -->
        <CircuitParameters2 v-if="currentTableState==1" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum" ref="CircuitParameters"></CircuitParameters2>
        <!-- 无源器件 -->
        <CircuitParameters3 v-if="this.insOrder.sampleType=='无源器件' "  :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum" ref="CircuitParameters"></CircuitParameters3>
      </div>
      <!-- 温湿度试验 -->
      <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('温湿度试验')">
@@ -735,18 +751,21 @@
      </div>
      <!-- 功率试验 -->
      <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('功率容量')">
        <PowerCapacity :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :isLook="isLook" :num="currentSample.num1" />
        <PowerCapacity :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :isLook="isLook" :num="currentSample.num1"/>
      </div>
      <el-upload :action="action"
      :data="{
        orderId:id
        orderId:this.orderId0,
        sampleId:id,
        sonLaboratory:sonLaboratory
      }"
      v-if="state==1&&fileAdd"
      :on-success="handleSuccessUp" :show-file-list="false"
        accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :headers="headers" :on-change="beforeUpload"
        accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :headers="headers" :before-upload="beforeUpload"
        style="width: 80px !important;"
        :on-error="onError" ref='upload'>
        <el-button size="small" type="primary" v-if="state==1">附件上传</el-button></el-upload>
      <!-- <span v-if="sonLaboratory === '远场'||sonLaboratory === '近场'" style="color: red;font-size: 12px;">辐射试验尽量上传设备导出的csv文件,不然触发不了报告生成</span> -->
      <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList"
        :componentData="componentData0"
        :delUrl="$api.insOrderPlan.delfile"
@@ -787,7 +806,7 @@
    </el-drawer>
    <el-dialog title="检验复核" :visible.sync="reviewDia" width="500px">
      <div class="body" style="display: flex;padding: 10px;" v-if="reviewDia">
        <div class="search_label" style="width: 150px;"><span class="required-span">* </span>不通过的理由:</div>
        <div class="search_label" style="width: 150px;"><span class="required-span">* </span>再次试验的理由:</div>
        <div class="search_input" style="width: 100%;">
          <el-input size="small" clearable v-model="noReason" type="textarea" :autosize="{ minRows: 4}"></el-input>
        </div>
@@ -877,28 +896,31 @@
            :rows="2"></el-input>
          </div>
        </div>
        <table border="1" cellpadding="10" class="thermal-table">
          <tr style="font-size: 18px;font-weight: 500;background-color: #F0F1F5;padding: 10px 0;box-sizing: border-box;">
            <td>样品</td>
            <td>样品编号</td>
            <td>型号</td>
            <td>检验项</td>
            <td>检验子项</td>
            <td>工时</td>
          </tr>
          <template v-for="(item,index) in sampleProduct">
            <tr>
              <td :rowspan="item.insProduct.length+1">{{ item.sample }}</td>
              <td :rowspan="item.insProduct.length+1">{{ item.sampleCode }}</td>
              <td :rowspan="item.insProduct.length+1">{{ item.model }}</td>
        <template v-for="(x,y) in newUserInfo">
          <p style="margin: 10px 0;"><el-tag size="small">{{x.name}}</el-tag> 工时填写</p>
          <table border="1" cellpadding="10" class="thermal-table">
            <tr style="font-size: 18px;font-weight: 500;background-color: #F0F1F5;padding: 10px 0;box-sizing: border-box;">
              <td>样品</td>
              <td>样品编号</td>
              <td>型号</td>
              <td>检验项</td>
              <td>检验子项</td>
              <td>工时</td>
            </tr>
            <tr v-for="(m,i) in item.insProduct" :key="item.id+i">
              <td>{{ m.inspectionItem }}</td>
              <td>{{ m.inspectionItemSubclass }}</td>
              <td><el-input-number v-model="m.outputWorkTime" :min="0" :max="100" label="工时" size="small"></el-input-number></td>
            </tr>
          </template>
        </table>
            <template v-for="(item,index) in sampleProduct">
              <tr>
                <td :rowspan="item.insProduct.length+1">{{ item.sample }}</td>
                <td :rowspan="item.insProduct.length+1">{{ item.sampleCode }}</td>
                <td :rowspan="item.insProduct.length+1">{{ item.model }}</td>
              </tr>
              <tr v-for="(m,i) in item.insProduct" :key="item.id+i">
                <td>{{ m.inspectionItem }}</td>
                <td>{{ m.inspectionItemSubclass }}</td>
                <td><el-input-number v-model="x.timeArr[i]" :min="0" :max="100" label="工时" size="small"></el-input-number></td>
              </tr>
            </template>
          </table>
        </template>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="experimentDia = false">取 消</el-button>
@@ -908,30 +930,54 @@
    <el-dialog
      title="文件预览"
      :visible.sync="lookFileVisible"
      width="60%" fullscreen>
      width="60%" fullscreen :modal="false">
      <filePreview v-if="lookFileVisible" :fileUrl="currentFile.url"
      :currentFile="currentFile" style="max-height: 87vh;overflow-y: auto;"/>
    </el-dialog>
    <el-dialog title="保存模板" :visible.sync="templateDia" width="400px">
      <div class="body" style="display: flex;align-items: center;" v-if="templateDia">
        <div class="search_label" style="width: 90px;"><span class="required-span">* </span>模板名称:</div>
        <div class="search_input">
          <el-input size="small" clearable v-model="templateName"></el-input>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="templateDia = false">取 消</el-button>
        <el-button type="primary" @click="addTemplateDia" :loading="templateLoading">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog title="复核" :visible.sync="upInsReviewDia" width="400px">
      <el-radio-group v-model="upInsReviewType" style="display: flex;flex-direction: column">
        <el-radio :label="1" style="margin: 10px 0; ">继续测试下一个样品或其他站点任务</el-radio>
        <el-radio :label="0" style="margin: 10px 0; ">再次检验该样品</el-radio>
        <el-radio :label="2" style="margin: 10px 0; ">此委托单结束</el-radio>
        <p style="font-size: 12px;color:red">慎重:如果还有其他样品在检,点击结束可能会中断,请确保所有样品都检验且复核完成再点击</p>
      </el-radio-group>
      <span slot="footer" class="dialog-footer">
        <el-button @click="upInsReviewDia = false">取 消</el-button>
        <el-button type="primary" @click="upInsReview" :loading="reviewLoading">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
  import ValueTable from '../../tool/value-table.vue'
  import Circuit from './circuit.vue'
  import file from '../../../util/file'
  import excelFunction from '../../../util/excelFountion'
  import CircuitParameters1 from './circuit-parameters1.vue'
  import CircuitParameters2 from './circuit-parameters2.vue'
  import CircuitParameters3 from './circuit-parameters3.vue'
  import Humidity from './humidity.vue'
  import PowerCapacity from './power-capacity.vue'
  import filePreview from '../../tool/file-preview.vue'
  export default {
    props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1','noBack'],
    props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1','noBack','orderId0','userInfo'],
    components: {
      ValueTable,
      Circuit,
      CircuitParameters1,
      CircuitParameters2,
      CircuitParameters3,
      filePreview,
      Humidity,
      PowerCapacity,
@@ -941,6 +987,8 @@
        lookFileVisible:false,//预览文件
        experimentDia:false,
        experimentDia0:false,
        upInsReviewDia:false,
        upInsReviewType:1,
        experimentInfo:{
          note:'',
          term:''
@@ -988,6 +1036,8 @@
        },
        componentData0: {
          entity: {
            insSampleId:'',
            sonLaboratory:this.sonLaboratory,
            insOrderId:''
          },
          isIndex: true,
@@ -1127,6 +1177,13 @@
          humidity:''
        },
        currentFile:{},//当前文件
        templates:[],//电路试验模板
        templateDia:false,//电路试验模板保存模板弹框
        template:null,
        templateLoading:false,
        templateName:'',
        addInsProductTemplatePower:false,//配置模板权限
        newUserInfo:[]
      }
    },
    // 用于上传文件的信息
@@ -1161,12 +1218,14 @@
      id(val) {
        this.loading = true
        this.$axios.post(this.$api.insOrderPlan.doInsOrder, {
          id: val,
          sampleId: val,
          laboratory: this.sonLaboratory
        }).then(async res => {
          this.insOrder = res.data.insOrder;
          this.componentData0.entity.insOrderId = val;
          this.componentData0.entity.insSampleId = val;
          this.componentData0.entity.insOrderId = this.orderId0;
          this.$refs.fileList.selectList()
          this.selectInsProductTemplate()
          this.urgentList.forEach(m => {
            if (m.value == this.insOrder.type) {
              this.insOrder.typeName = m.label
@@ -2150,6 +2209,7 @@
        let fileAdd = false
        let collected = false
        let temDataAcquisition = false
        let addInsProductTemplatePower = false;
        for (var i = 0; i < power.length; i++) {
               if (power[i].menuMethod == 'uploadFile') {
                  fileAdd = true
@@ -2163,6 +2223,9 @@
          if (power[i].menuMethod == 'temDataAcquisition') {
                  temDataAcquisition = true
               }
          if(power[i].menuMethod == 'addInsProductTemplate'){
            addInsProductTemplatePower = true
          }
            }
        if (!fileDel) {
               this.componentData0.do.splice(1, 1)
@@ -2170,6 +2233,7 @@
        this.fileAdd = fileAdd
        this.collected = collected
        this.temDataAcquisition = temDataAcquisition
        this.addInsProductTemplatePower = addInsProductTemplatePower
      },
      uploadSample(){
        this.$axios.post(this.$api.insOrderPlan.doInsOrder, {
@@ -2197,6 +2261,7 @@
        this.param = {}
        // 清空光纤配置相关数据
        this.fiberOpticTape = []
        this.template = ''
        this.currentFiberOpticTape = null;
        this.fiberOptic = []
        this.currentFiberOptic = null;
@@ -2386,7 +2451,7 @@
          this.tableList = null;
          this.tableList = [this.tableLists[0]]
          this.currentTable = this.tableLists[0].templateId;
          if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('电路试验')&&this.currentTableState!=0&&this.currentTableState!=1){
          if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('电路试验')&&this.currentTableState!=0&&this.currentTableState!=1&&this.insOrder.sampleType!='无源器件'){
            this.versionDialogVisible = true
          }
          // 处理页面列表数据
@@ -3181,23 +3246,19 @@
        })
      },
      // 复核
      upInsReview(e,type) {
        this.$confirm(`是否${type}?`, "提示", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }).then(() => {
          if (e == 1||e==2) {
      upInsReview() {
        if (this.upInsReviewType == 1||this.upInsReviewType==2) {
          // 继续试验
          this.reviewLoading = true;
          this.$axios.post(this.$api.insOrderPlan.verifyPlan, {
            orderId: this.orderId,
            type: e,
            sampleId: this.orderId,
            type: this.upInsReviewType,
            laboratory: this.sonLaboratory,
            tell: null
          }).then(res => {
            if (res.code === 200) {
              this.$message.success("操作成功")
              this.upInsReviewDia = false;
              this.$emit('goback')
            }
            this.reviewLoading = false;
@@ -3209,13 +3270,12 @@
          // 再次试验
          this.reviewDia = true;
        }
        })
      },
      handleReviewDia() {
        if (this.noReason) {
          this.reviewLoading = true;
          this.$axios.post(this.$api.insOrderPlan.verifyPlan, {
            orderId: this.orderId,
            sampleId: this.orderId,
            type: 0,
            laboratory: this.sonLaboratory,
            tell: this.noReason
@@ -3244,18 +3304,18 @@
            return
          }
        }
        let num =0
        this.sampleProduct.forEach(item=>{
          item.insProduct.forEach(a=>{
            if(!a.outputWorkTime){
              num++
            }
          })
        })
        if(num>0){
          this.$message.error('请输入完成工时')
          return
        }
        // let num =0
        // this.newUserInfo.forEach(item=>{
        //   item.timeArr.forEach(a=>{
        //     if(!a){
        //       num++
        //     }
        //   })
        // })
        // if(num>0){
        //   this.$message.error('请输入完成工时')
        //   return
        // }
        this.experimentDia = false
        this.experimentDia0 = false
        if(this.insOrder.orderType=='C'){
@@ -3265,9 +3325,38 @@
          this.addVerifyDia = true
        }
      },
      handleSubmit(){
      async handleSubmit(){
        if(!this.otherForm.temperature){
          this.$message.error('请输入温度')
          return
        }
        if(!this.otherForm.humidity){
          this.$message.error('请输入湿度')
          return
        }
        this.loading = true
        if(this.sonLaboratory === '电路试验'&&!(await this.$refs.CircuitParameters.saveAll())){
          this.loading = false
          return
        }else{
          this.loading = false
        }
        this.experimentDia = true
        console.log(6666,this.sampleProduct)
        this.newUserInfo = []
        this.userInfo.name.forEach((item,index)=>{
          let timeArr = []
          this.sampleProduct.forEach(m=>{
            m.insProduct.forEach(a=>{
              timeArr.push(0)
            })
          })
          let obj = {
            name:item,
            id:this.userInfo.ids[index],
            timeArr:timeArr
          }
          this.newUserInfo.push(obj)
        })
        if (this.sonLaboratory === '电路试验') {
          this.experimentDia0 = true
        }
@@ -3280,27 +3369,30 @@
        this.addVerifyDia = false
        this.submitLoading = true;
        this.$axios.post(this.$api.insOrderPlan.checkSubmitPlan, {
          orderId: this.orderId,
          sampleId: this.orderId,
          laboratory: this.sonLaboratory,
        }).then(res => {
          if (res.code === 200) {
            let auxiliaryOutputWorkingHoursList = []
            this.sampleProduct.forEach(item=>{
              item.insProduct.forEach(a=>{
                let obj = {
                  inspectionItem:a.inspectionItem,
                  outputWorkTime:a.outputWorkTime,
                  inspectionItemSubclass:a.inspectionItemSubclass,
                  sample:item.sampleCode,
                  insProductId:a.id,
                  num:item.num1
                }
                auxiliaryOutputWorkingHoursList.push(obj)
              item.insProduct.forEach((a,i)=>{
                this.newUserInfo.forEach(b=>{
                  let obj = {
                    inspectionItem:a.inspectionItem,
                    outputWorkTime:b.timeArr[i],
                    inspectionItemSubclass:a.inspectionItemSubclass,
                    sample:item.sampleCode,
                    insProductId:a.id,
                    num:item.num1,
                    check:b.id
                  }
                  auxiliaryOutputWorkingHoursList.push(obj)
                })
              })
            })
            if(!res.data||res.data.length==0){
              this.$axios.post(this.$api.insOrderPlan.submitPlan, {
                orderId: this.orderId,
                sampleId: this.orderId,
                laboratory: this.sonLaboratory,
                verifyUser: this.verifyUser,
                entrustCode: this.insOrder.entrustCode,
@@ -3339,7 +3431,7 @@
                type: ""
              }).then(() => {
                this.$axios.post(this.$api.insOrderPlan.submitPlan, {
                  orderId: this.orderId,
                  sampleId: this.orderId,
                  laboratory: this.sonLaboratory,
                  verifyUser: this.verifyUser,
                  auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList,
@@ -3370,7 +3462,7 @@
      async handleCType(){
        if(this.insOrder.departmentLims=='质量部'){
          await this.$axios.post(this.$api.insOrderPlan.verifyPlan, {
            orderId: this.orderId,
            sampleId: this.orderId,
            type: 1,
            laboratory: this.sonLaboratory,
            tell: null
@@ -3638,22 +3730,39 @@
        let list = await this.getCurrentProduct(this.currentFiberOptic.id,2)
        this.getTableLists0(list)
      },
      handleSuccessUp(response, ) {
      async handleSuccessUp(response, ) {
        this.upLoading = false;
            if (response.code == 200) {
          this.$message.success('上传成功');
          this.$refs.fileList.selectList()
          if(this.sonLaboratory === '电路试验'){
            // // 电路试验数采
            // 获取当前样品的检验项
            let list = await this.getCurrentProduct(this.currentSample.id,0)
            this.currentSample.insProduct = this.HaveJson(list)
            this.currentNum++
          }
            }else {
          this.$message.error(response.message);
            }
         },
      beforeUpload(file) {
            if (file.size > 1024 * 1024 * 10) {
               this.$message.error('上传文件不超过10M');
               this.$refs.upload.clearFiles()
               return false;
            } else {
          this.upLoading = true;
               return true;
            }
        if(this.sonLaboratory === '电路试验'&&(file.name.includes('交调')||file.name.includes('互调'))&&!this.$refs.CircuitParameters.allBandList.find(m=>m.band)){
          this.$message.error('上传附件前请先填写并保存频段');
          return false
        }else{
          // if(file.name.includes('交调')||file.name.includes('互调')){
          //   this.$refs.CircuitParameters.saveAll()
          // }
          if (file.size > 1024 * 1024 * 10) {
            this.$message.error('上传文件不超过10M');
            this.$refs.upload.clearFiles()
            return false;
          } else {
            this.upLoading = true;
            return true;
          }
        }
         },
      onError(err, file, fileList) {
            this.$message.error('上传失败')
@@ -3751,8 +3860,14 @@
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() => {
            this.$emit('goback')
          }).then(async () => {
            this.loading = true
            if(await this.$refs.CircuitParameters.saveAll()){
              this.$emit('goback')
              this.loading = false
            }else{
              this.loading = false
            }
          })
        }else{
          this.$emit('goback')
@@ -3760,6 +3875,98 @@
        } catch (error) {
          this.$emit('goback')
        }
      },
      selectInsProductTemplate(){
        this.$axios.post(this.$api.insProductTemplate.chooseInsProductTemplate,{
          version:this.insOrder.sampleType=='无源器件'?2:''
        }).then(res => {
          if (res.code == 201) return
          this.templates = res.data
        })
      },
      selectInsProductTemplateById(e){
        if(e){
          this.$axios.post(this.$api.insProductTemplate.getInsProductTemplate + '?id=' + e).then(res => {
            if (res.code == 201) return
            let obj = JSON.parse(res.data.message)
            if(this.currentTableState!=res.data.version&&this.insOrder.sampleType!='无源器件'){
              this.$message.error('电调/非电调模板版本不一致,请重新选择')
              this.template = null
              return
            }
            // 当前模板中未包含所有项目
            let state = this.currentSample.insProduct.every(item=>{
              if(obj.allBandList&&obj.allBandList.length>0&&obj.allBandList[0].projectList&&obj.allBandList[0].projectList.length>0&&item.inspectionItemSubclass&&obj.allBandList[0].projectList.find(m=>m.inspectionItemSubclass==item.inspectionItemSubclass)){
                return true
              }else{
                return false
              }
            })
            if(!state){
              this.template = null
              this.$message.error('当前模板中未包含所有项目,请重新选择')
              return
            }
            // 保存版本
            // this.saveVersion()
            // 如果模板的检验项多了,则删除多余的
            obj.allBandList.forEach(item=>{
              item.projectList.forEach((m,i)=>{
                if(!this.currentSample.insProduct.find(n=>m.inspectionItemSubclass==n.inspectionItemSubclass)){
                  item.projectList.splice(i,1)
                }
              })
            })
            this.$refs.CircuitParameters.upTemplate(obj)
          })
        }
      },
      addTemplateDia(){
        let obj = {
          allBandList:this.$refs.CircuitParameters.allBandList,
          intermodulationNum:this.$refs.CircuitParameters.intermodulationNum,
          angleList:this.$refs.CircuitParameters.angleList,
        }
        if (this.templateName) {
          this.templateLoading = true;
          this.$axios.post(this.$api.insProductTemplate.addInsProductTemplate, {
            name: this.templateName,
            version:this.insOrder.sampleType=='无源器件'?2:this.currentTableState,
            message:JSON.stringify(obj)
          }, {
            headers: {
              'Content-Type': 'application/json'
            }
          }).then(res => {
            if (res.code == 201) return
            this.templateLoading = false;
            this.templateDia = false;
            this.$message.success('保存成功')
            this.selectInsProductTemplate()
            this.templateName = ''
          })
        } else {
          this.$message.error('请填写模板名称')
        }
      },
      handleDelete(row){
        this.$confirm('是否删除当前数据?', "警告", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }).then(() => {
          this.$axios.post(this.$api.insProductTemplate.delInsProductTemplate, {
            id: row.id
          }).then(res => {
            if (res.code === 201) {
              return
            }
            this.$message.success('删除成功')
            this.selectInsProductTemplate()
          }).catch(e => {
            this.$message.error('删除失败')
          })
        }).catch(() => {})
      }
    }
  }