spring
2025-04-10 5f13420b2258ae2741fae9b1d77963db9e43d222
src/views/business/materialOrder/customsInspection.vue
@@ -153,31 +153,21 @@
      <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>
                车间附件查看
              </el-button>
              <el-dialog :visible.sync="fileDialogVisible" title="附件查看" width="80%">
                <fileList :currentNo="addObj.workShopId" v-if="fileDialogVisible" />
              </el-dialog>
            </el-form-item>
          </el-form>
        </div>
        <el-button type="text" @click="handleFileDialog" v-show="active != 1">
          <i class="el-icon-document"></i>
          车间附件查看
        </el-button>
        <el-dialog :visible.sync="fileDialogVisible" title="附件查看" width="80%">
          <fileList :currentNo="addObj.workShopId" v-if="fileDialogVisible" :isLook="true" />
        </el-dialog>
        <div style="margin-bottom: 6px;margin-top: 6px">
          <el-button v-show="active == 1" :disabled="sampleList.length === 2" size="small" type="primary"
            @click="handleSplitCountNum">拆分</el-button>
@@ -298,8 +288,8 @@
            </span>
          </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="methodS" show-overflow-tooltip>
        <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>
          <template slot="header" slot-scope="scope">
            <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
              <span>试验方法</span>
@@ -716,6 +706,11 @@
            this.addObj.updateBatchNo = res.data.insOrderTemplate.updateBatchNo
            this.addObj.type = String(this.addObj.type)
            this.sampleList = this.HaveJson(res.data.sampleProduct)
            this.sampleList.forEach(m => {
              if (m.standardMethodListId) {
                m.standardMethodListId = JSON.parse(m.standardMethodListId)
              }
            })
            this.getProNum()
            this.$nextTick(() => {
              this.$refs.sampleTable.doLayout()
@@ -906,7 +901,7 @@
            item.insProduct = this.productList
          })
          this.getTotal(sampleList)
          let projectNum = this.totalArr.filter(a => a.state == 1).length
          let projectNum = this.totalArr.length
          if (projectNum == 0) {
            this.$confirm('检验项目为空,是否确认提交?', "提示", {
              confirmButtonText: "确定",
@@ -1046,13 +1041,16 @@
        delete this.addObj.createTime
      }
      addInsOrder({
        insOrder: this.addObj,
        insOrder: {
          ...this.addObj,
          workShopId: this.addObj.workShopId || ''  // 确保 workShopId 传递给后端
        },
        sampleList: sampleList.map(a => {
          if (a.insProduct.length > 0) {
            a.insProduct.forEach(c => {
              delete c.id
            })
          }
          a.standardMethodListId = JSON.stringify(a.standardMethodListId)
          a.insProduct = this.fullProductList.map(item => ({
            ...item,
            state: 1
          }))
          if (a.modelNum) {
            // 根据x号判断型号参数与样品型号的拼接位置
            // 例如×4,就为500ML×4;4×,就为4×500ML
@@ -1067,7 +1065,6 @@
          } else {
            a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum))
          }
          a.insProduct = a.insProduct.filter(b => b.state === 1)
          return a
        }),
      }).then(res => {
@@ -1472,11 +1469,11 @@
      this.sample.insulating = null
      this.sample.sheath = null
      this.sample.quantity = 1
      if (codeLevel === '[5]') {
      if (codeLevel === '[7]') {
        this.sample.model = this.addObj.sample
      } else if (codeLevel === '[4]') {
      } else if (codeLevel === '[6]') {
        this.models = data.children2
      } else if (codeLevel === '[3]') {
      } else if (codeLevel === '[5]') {
        this.models = data.children1
      }
      this.sampleList.push(this.HaveJson(this.sample))
@@ -1593,11 +1590,10 @@
        ifsInventoryId: this.customsInspection.id
      }).then(res => {
        this.getProductLoad = false
        res.data.forEach(a => {
          a.state = 0
        })
        this.productList = this.HaveJson(res.data)
        this.productList0 = JSON.parse(JSON.stringify(this.productList))
        // 直接将查询结果赋值给 productList
        this.fullProductList = res.data
        this.productList = res.data
        this.productList0 = res.data
        this.$refs.sampleTable.setCurrentRow(row)
        setTimeout(() => {
          this.productList.forEach(a => {
@@ -1606,25 +1602,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)
        }
      })
    },
    // 拼接样品树的字符串