licp
2024-06-07 32a95699e59c5c65e18c08643266c9cbfa380ee4
src/components/do/b1-ins-order/add.vue
@@ -92,7 +92,7 @@
<template>
  <div class="ins_order_add">
    <div v-show="!configShow">
    <div v-show="!configShow&&!equipConfigShow">
      <el-row class="title">
        <el-col :span="6" style="padding-left: 20px;">委托单信息&nbsp;&nbsp;&nbsp;总价:<span style="color: #3A7BFA">¥{{total}}</span></el-col>
        <el-col :span="18" style="text-align: right;">
@@ -107,8 +107,10 @@
          <el-button size="medium" @click="templateDia=true" v-show="active==1">
            <span style="color: #3A7BFA;">保存模板</span>
          </el-button>
          <el-button size="medium" type="primary" @click="openEquipConfig"
            v-if="PROJECT==='装备电缆'">电缆配置</el-button>
          <el-button size="medium" type="primary" @click="openConfig"
            v-if="this.addObj.sampleType==='光缆'">光纤配置</el-button>
            v-if="addObj.sampleType==='光缆'">光纤配置</el-button>
          <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-show="active==1">提交</el-button>
          <!-- 审核 -->
          <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad" v-show="active==3"
@@ -121,7 +123,7 @@
        </el-col>
      </el-row>
    </div>
    <div class="search" v-show="!configShow">
    <div class="search" v-show="!configShow&&!equipConfigShow">
      <el-row>
        <el-col class="search_thing" :span="6">
          <div class="search_label">委托编号:</div>
@@ -289,7 +291,7 @@
        </el-col>
      </el-row>
    </div>
    <div v-show="!configShow">
    <div v-show="!configShow&&!equipConfigShow">
      <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" height="250px" tooltip-effect="dark"
        border @selection-change="selectSample" highlight-current-row @row-click="rowClick" style="margin-top: 10px;">
        <el-table-column type="selection" width="60" :selectable="selectable" v-if="active==1"></el-table-column>
@@ -476,6 +478,8 @@
    <fiberOpticConfig :currentId="currentId"
    @saveFiberopticConfig="getTotal()"
     v-if="configShow" :active="active" />
     <equipConfig :currentId="currentId"
     v-if="equipConfigShow" :active="active"/>
    <el-dialog title="检测到特殊项,请作出以下选择" :visible.sync="bsm1Dia" width="500px" :show-close="false" :before-close="beforeClose">
      <div class="body" style="max-height: 60vh;">
        <el-row v-if="bsm1">
@@ -504,10 +508,12 @@
<script>
  import ValueTable from '../../tool/value-table.vue'
  import fiberOpticConfig from './fiberoptic-config.vue'
  import equipConfig from './equip-config.vue'
  export default {
    components: {
      ValueTable,
      fiberOpticConfig
      fiberOpticConfig,
      equipConfig
    },
    props: {
      active: {
@@ -638,7 +644,8 @@
        bsm1Dia: false,
        total:0,
        RTS:'',
        totalArr:[]
        totalArr:[],
        equipConfigShow: false,
      }
    },
    watch: {
@@ -740,25 +747,30 @@
          if(ask.includes('&')){
            // 多个条件
            let arr0 = ask.split('&')
            let arr1 = []
            arr0.forEach(m=>{
                let index = code.findIndex(b=>m.includes(b))
              if(index>-1){
                let arr = m.split(code[index]).find(b=>b)
                let num = eval(arr[0].replace(/RTS/g, this.RTS))
                let arr = m.split(code[index]).filter(b=>!!b)
                let num = eval(this.replaceAll(arr[0],'RTS', this.RTS))
                m = code[index] + ''+ num
                arr1.push(m)
              }
            })
            return arr0.join('&')
            return arr1.join('&')
          }else{
            // 单个条件
            let index = code.findIndex(b=>ask.includes(b))
            if(index>-1){
              let arr = ask.split(code[index]).find(b=>b)
              let num = eval(arr[0].replace(/RTS/g, this.RTS))
              let arr = ask.split(code[index]).filter(b=>!!b)
              let num = eval(this.replaceAll(arr[0],'RTS', this.RTS))
              return code[index] + ''+ num
            }
          }
        }
      },
      replaceAll(str, find, replace) {
        return str.replace(new RegExp(find, 'g'), replace);
      },
      save() {
        if (!this.addObj.companyId) {
@@ -783,18 +795,20 @@
          this.$message.error('请输入样品型号')
        } else if (!this.sampleList.every(m => m.standardMethodListId)) {
          this.$message.error('请选择检验标准')
        }else if (this.totalArr.find(a=>a.ask.includes('RTS'))&&!this.RTS) {
        }else if (this.totalArr.find(a=>a.ask.includes('RTS')&&a.state==1)&&!this.RTS) {
          this.$message.error('请输入RTS')
        } else {
          let sampleList = this.HaveJson(this.sampleList)
          let isRTS = this.totalArr.find(a=>a.ask.includes('RTS'))
          let isRTS = this.totalArr.find(a=>a.ask.includes('RTS')&&a.state==1)
          if(isRTS){
            sampleList.forEach(item=>{
              if(item.insProduct&&item.insProduct.length>0){
                item.insProduct.forEach(a=>{
                  let ask = this.handleAsk(a.ask)
                  if(ask){
                    a.ask = ask
                  if(a.state==1){
                    let ask = this.handleAsk(a.ask)
                    if(ask&&a.state==1){
                      a.ask = ask
                    }
                  }
                })
              }
@@ -805,9 +819,11 @@
                    a.fiber.forEach(b=>{
                      if(b.productList&&b.productList.length>0){
                        b.productList.forEach(c=>{
                          let ask = this.handleAsk(c.ask)
                          if(ask){
                            c.ask = ask
                          if(c.state==1){
                            let ask = this.handleAsk(c.ask)
                            if(ask&&c.state==1){
                              c.ask = ask
                            }
                          }
                        })
                      }
@@ -817,9 +833,11 @@
                    a.fibers.forEach(b=>{
                      if(b.productList&&b.productList.length>0){
                        b.productList.forEach(c=>{
                          let ask = this.handleAsk(c.ask)
                          if(ask){
                            c.ask = ask
                          if(c.state==1){
                            let ask = this.handleAsk(c.ask)
                            if(ask&&c.state==1){
                              c.ask = ask
                            }
                          }
                        })
                      }
@@ -827,9 +845,11 @@
                        b.fiber.forEach(c=>{
                          if(c.productList&&c.productList.length>0){
                            c.productList.forEach(d=>{
                              let ask = this.handleAsk(d.ask)
                              if(ask){
                                d.ask = ask
                              if(d.state==1){
                                let ask = this.handleAsk(d.ask)
                                if(ask){
                                  d.ask = ask
                                }
                              }
                            })
                          }
@@ -1412,6 +1432,35 @@
          })
        }
      },
      openEquipConfig(){
        if (this.active === 1) {
          if (this.sampleIds.length === 0) {
            this.$message.error("未选择样品")
            return
          }
          this.equipConfigShow = true
        } else {
          if (this.sampleId === null) {
            this.$message.error('未选中样品')
            return
          }
          // this.$axios.post(this.$api.insBushing.selectBushingBySampleId, {
          //   sampleId: this.sampleId
          // }).then(res => {
          //   if (res.data.length === 0) {
          //     this.$message.error('该样品没有配置光纤')
          //     return
          //   }
          //   for (var i in this.sampleList) {
          //     if (this.sampleList[i].id = this.sampleId) {
          //       this.sampleList[i].bushing = res.data
          //       break
          //     }
          //   }
          //   this.configShow = true
          // })
        }
      },
      upBsm1(val) {
        let sections = JSON.parse(this.bsmRow.section);
        let asks = JSON.parse(this.bsmRow.ask);