spring
2025-04-10 c4cc315e6b46adabc9f649c7b14e6c2b0bcc3346
src/views/business/materialOrder/customsInspection.vue
@@ -153,20 +153,6 @@
      <div style="display: flex;justify-content: space-between;background-color: #F5F7FB;margin-bottom: 6px">
        <div v-if="active == 1">
          <el-form :inline="true" :model="addObj1" label-width="90px">
            <el-form-item label="样品型号:" style="margin-bottom: 6px;margin-top: 6px">
              <el-select v-model="model" :placeholder="active > 1 ? '' : '请输入'" allow-create clearable
                default-first-option filterable size="small" @change="changeModel">
                <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="检验标准:" style="margin-bottom: 6px;margin-top: 6px">
              <el-select v-model="standardMethodListId" :loading="methodLoad" :placeholder="active > 1 ? '' : '请输入'"
                clearable size="small" @change="changeStandardMethodListId" @focus="methodFocus" multiple>
                <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="附件查看:" style="margin-bottom: 6px;margin-top: 6px">
              <el-button type="text" @click="handleFileDialog">
                <i class="el-icon-document"></i>
@@ -303,7 +289,7 @@
          </template>
        </el-table-column>
        <el-table-column label="试验条件" min-width="140" prop="radius" show-overflow-tooltip></el-table-column>
        <el-table-column label="试验方法" min-width="120" prop="method" show-overflow-tooltip>
        <el-table-column label="试验方法" min-width="120" prop="methodS" show-overflow-tooltip>
          <template slot="header" slot-scope="scope">
            <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
              <span>试验方法</span>
@@ -1061,7 +1047,7 @@
        },
        sampleList: sampleList.map(a => {
          a.standardMethodListId = JSON.stringify(a.standardMethodListId)
          a.insProduct = this.fullProductList
          a.insProduct = this.productList
          if (a.modelNum) {
            // 根据x号判断型号参数与样品型号的拼接位置
            // 例如×4,就为500ML×4;4×,就为4×500ML
@@ -1602,9 +1588,13 @@
      }).then(res => {
        this.getProductLoad = false
        // 直接将查询结果赋值给 productList
        this.fullProductList = res.data
        this.productList = res.data
        this.productList0 = res.data
        // this.fullProductList = res.data
        this.productList = res.data.forEach(m => {
          m.state = 1
        })
        this.productList0 = res.data.forEach(m => {
          m.state = 1
        })
        this.$refs.sampleTable.setCurrentRow(row)
        setTimeout(() => {
          this.productList.forEach(a => {
@@ -1613,25 +1603,6 @@
        }, 200)
      }).catch(err => {
        console.log('err-', err)
      })
    },
    // 选择样品型号的回调
    changeModel() {
      this.sampleList.forEach(a => {
        let obj = this.sampleIds.find(b => b == a.id)
        if (obj) {
          a.model = this.model
        }
      })
    },
    // 选择检验标准的回调
    changeStandardMethodListId() {
      this.sampleList.forEach(a => {
        let obj = this.sampleIds.find(b => b == a.id)
        if (obj) {
          a.standardMethodListId = this.standardMethodListId
          this.methodChange(this.standardMethodListId, a)
        }
      })
    },
    // 拼接样品树的字符串
@@ -1699,129 +1670,6 @@
      }
      this.changeProductList0()
      this.currentMethod.insProduct = this.productList0
    },
    // 单选选择检验项的回调
    selectOne(selection, row) {
      this.bsm1DiaList = []
      row.state = row.state == 1 ? 0 : 1
      if (row.section === null) {
        row.section = ""
      }
      if (row.sectionCopy === undefined && row.section) {
        if (row.section.indexOf('[') > -1) {
          this.$set(row, 'sectionCopy', row.section)
        }
      }
      if (row.ask.includes('[')) {
        this.$set(row, 'askCopy', row.ask)
      }
      if (row.tell.includes('[')) {
        this.$set(row, 'tellCopy', row.tell)
      }
      let arr = this.productList.filter(m => m.state == 1 && row.sectionCopy && row.sectionCopy.includes(m.sectionCopy) && m.ask && m.sectionCopy.indexOf('[') == -1)
      if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.sectionCopy !== undefined && row.state === 1 && arr.length == 0) {
        if (row.sectionCopy.indexOf('[') > -1) {
          row.bsmRow = this.HaveJson(row)
        }
        row.bsm1 = true
        this.bsm1DiaList.push(row)
        this.bsm1DiaAll = true
      } else if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.state === 0 && arr.length == 0) {
        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)
          let arr4 = JSON.parse(row.tell)
          let index = arr0.indexOf(section)
          row.section = section
          row.ask = arr1[index]
          row.tell = arr4[index]
        } catch (e) { }
      }
      this.sampleList.map(item => {
        if (this.sampleIds.indexOf(item.id) > -1) {
          item.insProduct.map(m => {
            if (m.id == row.id) {
              m.state = row.state;
            }
            return m;
          })
        }
        return item
      })
      this.changeProductList0()
      this.currentMethod.insProduct = this.productList0
      this.getProNum()
    },
    handleAll(e) {
      if (e.length > 0) {
        this.productList.map(m => {
          if (e.find(a => a.id == m.id)) {
            m.state = 1
          }
          return m
        })
      } else {
        this.productList.map(m => {
          m.state = 0
          return m
        })
      }
      this.bsmRow3 = [];
      this.bsm1DiaList = []
      this.productList.forEach(p => {
        if (p.sectionCopy === undefined && p.section) {
          if (p.section.indexOf('[') > -1) {
            this.$set(p, 'sectionCopy', p.section)
          }
        }
        if (p.ask.includes('[')) {
          this.$set(p, 'askCopy', p.ask)
        }
        if (p.tell.includes('[')) {
          this.$set(p, 'tellCopy', p.tell)
        }
        if (p.bsm === '1' && p.sectionCopy !== '' && p.sectionCopy !== null && p.sectionCopy !== undefined && p.state === 1) {
          if (p.sectionCopy.indexOf('[') > -1) {
            p.bsmRow = this.HaveJson(p)
          }
          p.bsm1 = true
          this.bsm1DiaList.push(p)
          this.bsm1DiaAll = true
        } else if (p.bsm === '1' && p.sectionCopy !== '' && p.sectionCopy !== null && p.state === 0) {
          p.bsm1 = false
        }
      })
      if (e.length > 0) {
        this.sampleList.map(item => {
          if (this.sampleIds.indexOf(item.id) > -1) {
            item.insProduct.map(m => {
              m.state = 1
              return m;
            })
          }
          return item
        })
      } else {
        this.sampleList.map(item => {
          if (this.sampleIds.indexOf(item.id) > -1) {
            item.insProduct.map(m => {
              m.state = 0
              return m;
            })
          }
          return item
        })
      }
      this.changeProductList0()
      this.currentMethod.insProduct = this.productList0
      this.getProNum()
      this.$nextTick(() => {
        this.$refs.productTable.doLayout()
      })
    },
    changeProductList0() {
      this.productList0.forEach(a => {