gaoluyang
2025-03-13 28972c351ea79b4721750f6970e88263b64c64aa
src/views/business/materialOrder/copperOrder.vue
@@ -99,7 +99,7 @@
            </el-col>
            <el-col :span="6">
              <el-form-item class="addObj-form-item" label="备注:">
                <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :placeholder="active>1 ? '' : '请输入'" :readonly="active>1" clearable
                <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :placeholder="active>1 ? '' : '请输入'" :disabled="active>1" clearable
                          size="small" type="textarea"></el-input>
              </el-form-item>
            </el-col>
@@ -134,6 +134,7 @@
      </div>
      <div style="height: auto;">
        <el-table ref="sampleTable" :data="sampleList" class="el-table sampleTable" highlight-current-row
                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
                  max-height="400px" tooltip-effect="dark" @selection-change="selectSample" @row-click="rowClick">
          <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="60"></el-table-column>
          <el-table-column align="center" label="序号" type="index" width="65"></el-table-column>
@@ -195,6 +196,7 @@
          <el-table-column align="center" label="待检项数量" prop="proNum" width="105"></el-table-column>
        </el-table>
        <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName" class="el-table"
                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
                  max-height="400px" style="margin-bottom: 10px;" tooltip-effect="dark"
                  @select="selectOne" @selection-change="selectProduct" @select-all="handleAll">
          <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="65"></el-table-column>
@@ -396,7 +398,6 @@
</template>
<script>
// import ValueTable from '../../tool/value-table.vue'
import Vue from 'vue'
import {
  addRawCopperOrder,
@@ -421,17 +422,13 @@
}
export default {
  name: 'CopperOrder',
  components: {},
  dicts: ['check_type', 'urgency_level'],
  props: {
    currentId: {
      type: Number,
      default: () => 0
    }
  },
  data() {
    return {
      active: '',
      currentId: '',
      sampleSelectionList: [],//样品表格选中数据
      editTable:[],
      noNeedCheckLoad: false, // 免检按钮loading
@@ -620,12 +617,21 @@
  },
  mounted() {
    this.active = this.$route.query.active
    this.getUserNowInfo()
    this.selectStandardTreeList()
    this.selectStandardMethods()
    this.getInfo() // 获取数据
    this.currentId = this.$route.query.currentId
    this.getInfoRow();
  },
  activated() {
    this.active = this.$route.query.active
    this.currentId = this.$route.query.currentId
    this.getInfoRow();
  },
  methods: {
    getInfoRow() {
      this.getUserNowInfo()
      this.selectStandardTreeList()
      this.selectStandardMethods()
      this.getInfo() // 获取数据
    },
    // 拆分
    handleSplitCountNum () {
      this.sample.joinName = null
@@ -683,7 +689,6 @@
      if (projectNum!=0){
        this.$message.error('免检不可选择检验项')
      } else {
        const pairing = []
        let trees = this.selectTree.split(" - ")
        if (trees.length < 3) {
          this.$message.error('未选择对象')
@@ -700,33 +705,34 @@
        this.addObj.model = (trees[4] == undefined ? null : trees[4])
        this.noNeedCheckLoad = true
        addRawCopperOrderExemptionOrder({
          str: JSON.stringify({
            insOrder: this.addObj,
            list: JSON.stringify(sampleList.map(a => {
              if (a.modelNum) {
                // 根据x号判断型号参数与样品型号的拼接位置
                // 例如×4,就为500ML×4;4×,就为4×500ML
                const index = a.modelNum.indexOf('×')
                if (index === 0) {
                  a.model = a.model + a.modelNum
                } else if (index === -1) {
                  a.model = a.model + '-' + a.modelNum
                } else {
                  a.model = a.modelNum + a.model
                }
          copperInsOrder: this.addObj,
          sampleList: sampleList.map(a => {
            if (a.insProduct.length > 0) {
              a.insProduct.forEach(c => {
                delete c.id
              })
            }
            if (a.modelNum) {
              // 根据x号判断型号参数与样品型号的拼接位置
              // 例如×4,就为500ML×4;4×,就为4×500ML
              const index = a.modelNum.indexOf('×')
              if (index === 0) {
                a.model = a.model + a.modelNum
              } else if (index === -1) {
                a.model = a.model + '-' + a.modelNum
              } else {
                a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum))
                a.model = a.modelNum + a.model
              }
              a.insProduct = a.insProduct.filter(b=>b.state === 1)
              return a
            })),
            pairing: JSON.stringify(pairing)
            } 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 => {
          this.noNeedCheckLoad = false
          if (res.code == 201) return
          this.$message.success('已提交')
          this.goBack()
          this.closeOpenPage()
        }).catch(e=>{
          this.noNeedCheckLoad = false
        })
@@ -1165,10 +1171,9 @@
        })
      }).then(res => {
        this.saveLoad = false
        if (res.code == 201) return
        this.$message.success('已提交')
        this.bsm3Dia = false;
        this.goBack()
        this.closeOpenPage()
      }).catch(e=>{
        this.saveLoad = false
      })
@@ -1190,7 +1195,7 @@
    },
    getProNum() {
      this.sampleSelectionList.forEach((m, i) => {
        Vue.set(this.sampleSelectionList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length)
        Vue.set(this.sampleSelectionList[i], 'proNum', 1)
      })
      this.$refs.sampleTable.doLayout()
    },
@@ -1784,9 +1789,16 @@
    },
    goBack () {
      const obj = { path: "/business/materialOrder" };
      this.$tab.closeOpenPage(obj);
    }
      if (this.active == 1) {
        this.$router.go(-1)
      } else {
        this.closeOpenPage()
      }
    },
    closeOpenPage() {
      this.$router.go(-1)
      this.$tab.closeOpenPage()
    },
  }
}
</script>