lxp
2024-08-07 ab82ddf55b5c41d495d4a62d849d88d464e5f256
src/components/do/b1-ins-order/add.vue
@@ -429,9 +429,9 @@
          <el-table-column prop="proNum" label="待检项数量" width="105" align="center"></el-table-column>
        </el-table>
        <el-table class="el-table" ref="productTable" :data="productList" height="380px" tooltip-effect="dark" border
          @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect" :row-key="rowKey"
          @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect"
          :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll">
          <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1" :reserve-selection="true"></el-table-column>
          <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1"></el-table-column>
          <el-table-column prop="inspectionItemClass" v-if="PROJECT === '装备电缆'" label="检验项分类" min-width="140" show-overflow-tooltip></el-table-column>
          <el-table-column prop="inspectionItemClassEn" v-if="PROJECT === '装备电缆'" label="检验项分类(EN)" min-width="140" show-overflow-tooltip></el-table-column>
          <el-table-column prop="inspectionItem" label="检验项" min-width="140" show-overflow-tooltip>
@@ -461,6 +461,16 @@
              </div>
            </template>
          </el-table-column>
          <el-table-column prop="tell" label="要求描述" min-width="220px">
            <template slot-scope="scope">
              <el-input size="small" placeholder="要求描述" v-model="scope.row.tell" clearable type="textarea"
                :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row,'tell')"
                v-if="active==1&&isAskOnlyRead"></el-input>
              <span v-else>
                <template >{{ scope.row.tell }}</template>
              </span>
            </template>
          </el-table-column>
          <el-table-column prop="ask" label="要求值" min-width="220px" v-if="isAskOnlyRead">
            <template slot-scope="scope">
              <el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable type="textarea"
@@ -477,16 +487,6 @@
                </template>
                <template v-else>{{ scope.row.ask }}</template> -->
                <template >{{ scope.row.ask }}</template>
              </span>
            </template>
          </el-table-column>
          <el-table-column prop="tell" label="要求描述" min-width="220px">
            <template slot-scope="scope">
              <el-input size="small" placeholder="要求描述" v-model="scope.row.tell" clearable type="textarea"
                :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row,'tell')"
                v-if="active==1&&isAskOnlyRead"></el-input>
              <span v-else>
                <template >{{ scope.row.tell }}</template>
              </span>
            </template>
          </el-table-column>
@@ -623,8 +623,11 @@
    <equipConfig :currentId="currentId" v-if="equipConfigShow" :active="active" />
    <cableConfig v-if="cableConfigShow" :active="active" />
<!--    单选特殊值处理框-->
    <el-dialog title="检测到特殊项,请作出以下选择" :visible.sync="bsm1Dia" min-width="400px" :show-close="false"
      :before-close="beforeClose">
    <el-dialog title="检测到特殊项,请作出以下选择" :visible.sync="bsm1Dia"
               :close-on-press-escape="false"
               :close-on-click-modal="false"
               min-width="400px" :show-close="false"
               :before-close="beforeClose">
      <div class="body" style="max-height: 60vh;">
        <el-row v-if="bsm1">
          <el-col class="search_thing" :span="24" style="height: initial;margin: 5px 0;">
@@ -683,9 +686,16 @@
          </el-col>
        </el-row> -->
      </div>
      <span slot="footer" class="dialog-footer">
        <el-row>
          <el-button type="primary" @click="save2" :loading="saveLoad">确 定</el-button>
        </el-row>
      </span>
    </el-dialog>
<!--    全选特殊值处理框-->
    <el-dialog title="检测到特殊项,请作出以下选择" :visible.sync="bsm1DiaAll" min-width="400px" :show-close="false"
                :close-on-press-escape="false"
               :close-on-click-modal="false"
               :before-close="beforeClose">
      <div class="body" style="max-height: 60vh;" v-for="(item, index) in bsm1DiaList" :key="index">
        <el-row v-if="item.bsm1">
@@ -737,8 +747,15 @@
          </el-col>
        </el-row>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-row>
          <el-button type="primary" @click="save1" :loading="saveLoad">确 定</el-button>
        </el-row>
      </span>
    </el-dialog>
    <el-dialog title="特殊值填写" :visible.sync="bsm3Dia" width="800px" :show-close="false">
    <el-dialog title="特殊值填写" :visible.sync="bsm3Dia"
               :close-on-click-modal="false" :close-on-press-escape="false"
               width="800px" :show-close="false">
      <el-table
      :data="editTable"
      style="width: 100%">
@@ -777,7 +794,9 @@
        </el-row>
      </span>
    </el-dialog>
    <el-dialog title="温度循环要求填写" :visible.sync="circulateShow" width="900px" :before-close="beforeCirculateShowClose" :show-close="false">
    <el-dialog title="温度循环要求填写" :visible.sync="circulateShow" width="900px"
               :close-on-click-modal="false" :close-on-press-escape="false"
               :before-close="beforeCirculateShowClose" :show-close="false">
      <div class="search" style="display: flex;background: transparent;">
        <div class="search_thing">
          <div class="search_label">保温时间:</div>
@@ -862,7 +881,9 @@
      </span>
    </el-dialog>
    <!-- 电力试验室---温升试验/热循环 -->
    <el-dialog :title="temperatureTitle" :visible.sync="temperatureShow" width="260px" :before-close="temperatureShowClose" :show-close="false">
    <el-dialog :title="temperatureTitle" :visible.sync="temperatureShow"
               :close-on-click-modal="false" :close-on-press-escape="false"
               width="260px" :before-close="temperatureShowClose" :show-close="false">
      <div>
        <div v-if="isShowInput" style="margin-bottom: 6px">
          <span>循环次数:</span>
@@ -961,7 +982,7 @@
          entity: {
            orderBy: {
              field: 'id',
              order: 'asc'
              order: 'desc'
            }
          },
          isIndex: true,
@@ -1219,6 +1240,9 @@
          }
        })
        this.circulateShow = false
        this.changeProductList0()
        this.currentMethod.insProduct = this.productList0
        this.getProNum()
      },
      spliceTemperatureTest () {
        if (this.temperatureTest.length === 0) {
@@ -1370,6 +1394,14 @@
          let obj = this.productList.find(m => m.id == a.id)
          if(obj){
            a.state = obj.state
            a.section = obj.section
            a.ask = obj.ask
            a.manHour = obj.manHour
            a.price = obj.price
            a.tell = obj.tell
          }
          if(a.state == 0&&a.bsmRow){
            a = this.HaveJson(a.bsmRow)
          }
        })
      },
@@ -1773,6 +1805,7 @@
      },
      saveMethod(sampleList){
        this.saveLoad = true
        console.log(333333,sampleList)
        this.$axios.post(this.$api.insOrder.addInsOrder, {
          str: JSON.stringify({
            insOrder: this.addObj,
@@ -1815,7 +1848,8 @@
            state,
            id: this.currentId,
            companyId:this.addObj.companyId,
            laboratory:this.addObj.laboratory
            laboratory:this.addObj.laboratory,
            company: this.addObj.company
          }, {
            headers: {
              'Content-Type': 'application/json'
@@ -2052,9 +2086,6 @@
        })
        this.$refs.sampleTable.doLayout()
      },
      rowKey (row) {
      return row.id;
    },
      selectProduct(val) {
        this.productListSelected = val
        this.productIds = []
@@ -2076,9 +2107,14 @@
          this.sampleIds.push(row.id)
        }
        this.productList = row.insProduct
        this.productList0 = JSON.parse(JSON.stringify(this.productList))
        setTimeout(() => {
          this.productList.forEach(a => {
            if (a.state == 1) this.toggleSelection(a)
            if (a.state == 1) {
              this.toggleSelection(a)
            }else{
              this.$refs.productTable.toggleRowSelection(a, false);
            }
          })
        }, 200)
      },
@@ -2103,7 +2139,6 @@
          row.bsm1 = false
        }else if(arr.length>0){
          try{
          row.bsmRow = this.HaveJson(row)
          let section = arr[0].section
          let arr0 = JSON.parse(row.section)
          let arr1 = JSON.parse(row.ask)
@@ -2252,7 +2287,8 @@
            name: this.templateName,
            thing: JSON.stringify({
              addObj: this.addObj,
              sampleList: this.sampleList
              sampleList: this.sampleList,
              selectTree:this.selectTree
            })
          }, {
            headers: {
@@ -2277,6 +2313,7 @@
          let obj = JSON.parse(res.data)
          this.addObj = obj.addObj;
          this.sampleList = obj.sampleList;
          this.selectTree = obj.selectTree
        })
      },
      delSampleAndProduct() {
@@ -2321,9 +2358,9 @@
        }
        this.getProductLoad = true
        let selectTreeList = this.selectTree.split(" - ")
        selectTreeList[selectTreeList.length - 1] = this.addObj.model
        this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model)
        this.$axios.post(this.$api.standardTree.selectStandardProductList, {
          model: this.addObj.model + '-' + row.modelNum,
          model: (this.addObj.model?this.addObj.model:row.model) + '-' + row.modelNum,
          standardMethodListId: val,
          factory: selectTreeList.join(" - "),
        }, {
@@ -2429,6 +2466,7 @@
          })
        } else {
          this.productList.map(m => {
            console.log('m----', m)
            m.state = 0
            return m
          })
@@ -2663,25 +2701,97 @@
        }
      },
      upBsmAll (item) {
        let sections = JSON.parse(item.bsmRow.section);
        let asks = JSON.parse(item.bsmRow.ask);
        let tells = JSON.parse(item.bsmRow.tell);
        let manHours = JSON.parse(item.bsmRow.manHour);
        let prices = JSON.parse(item.bsmRow.price);
        for (var a in sections) {
          if (item.bsm1Val === sections[a]) {
            this.productList.forEach(p => {
              if (p.id === item.bsmRow.id) {
                p.section = sections[a]
                p.ask = asks[a]
                p.tell = tells[a]
                p.manHour = manHours[a]
                p.price = prices[a]
              }
            })
            break
        // console.log(1111,item,this.bsm1DiaList)
        for (let i =0;i<this.bsm1DiaList.length;i++){
          this.bsm1DiaList[i].bsm1Val = item.bsm1Val
          let sections = JSON.parse(this.bsm1DiaList[i].bsmRow.section);
          let asks = JSON.parse(this.bsm1DiaList[i].bsmRow.ask);
          let tells = JSON.parse(this.bsm1DiaList[i].bsmRow.tell);
          let manHours = JSON.parse(this.bsm1DiaList[i].bsmRow.manHour);
          let prices = JSON.parse(this.bsm1DiaList[i].bsmRow.price);
          for (var a in sections) {
            if (this.bsm1DiaList[i].bsm1Val === sections[a]) {
              this.productList.forEach(p => {
                if (p.id === this.bsm1DiaList[i].bsmRow.id) {
                  p.section = sections[a]
                  p.ask = asks[a]
                  p.tell = tells[a]
                  p.manHour = manHours[a]
                  p.price = prices[a]
                }
              })
              break
            }
          }
        }
        this.changeProductList0()
        this.currentMethod.insProduct = this.productList0
      },
      save1 () {
        if (this.bsm1DiaList.length > 0) {
          this.bsm1DiaList.forEach(item => {
            if (!item.bsm1Val) {
              throw this.$message.error('特殊项目必须处理')
            }
          })
        }
        if (this.bsm2) {
          if (this.bsm2Val2.length === 0) {
            this.$message.error('特殊项目必须处理')
            return
          }
          let set = new Set()
          for (let i = 0; i < this.bsm2Val2.length; i++) {
            let num0 = set.size
            set.add(JSON.stringify(this.bsm2Val2[i]))
            let num1 = set.size
            if (num1 == num0) {
              this.$message.error('关联项目不能重复')
              return
            }
            set.add(JSON.stringify(this.bsm2Val2[i].reverse()))
            let num2 = set.size
            if (num1 == num2) {
              this.$message.error('关联项目不能重复')
              return
            }
          }
          this.isBsm2Val2 = true;
        }
        this.bsm1DiaAll = false
      },
      save2 () {
        if (this.bsm1DiaList.length > 0) {
          this.bsm1DiaList.forEach(item => {
            if (!item.bsm1Val) {
              throw this.$message.error('特殊项目必须处理')
            }
          })
        }
        if (this.bsm2) {
          if (this.bsm2Val2.length === 0) {
            this.$message.error('特殊项目必须处理')
            return
          }
          let set = new Set()
          for (let i = 0; i < this.bsm2Val2.length; i++) {
            let num0 = set.size
            set.add(JSON.stringify(this.bsm2Val2[i]))
            let num1 = set.size
            if (num1 == num0) {
              this.$message.error('关联项目不能重复')
              return
            }
            set.add(JSON.stringify(this.bsm2Val2[i].reverse()))
            let num2 = set.size
            if (num1 == num2) {
              this.$message.error('关联项目不能重复')
              return
            }
          }
          this.isBsm2Val2 = true;
        }
        this.bsm1Dia = false
      },
      beforeClose(done) {
        // if (this.bsm1) {
@@ -2754,9 +2864,8 @@
      getTotal() {
        this.totalArr = []
        this.total = 0;
        // console.log(this.sampleList)
        this.sampleList.forEach(item => {
          if (item.insProduct && item.insProduct.length > 0) {
          if (item.insProduct  && item.insProduct.length > 0) {
            item.insProduct.forEach(a => {
              this.totalArr.push(a)
            })