Crunchy
2025-04-29 e5454b769d44a34af423bf87ac8a740bf8c20341
src/views/business/productOrder/components/addOrder.vue
copy from src/views/business/productOrder/components/add.vue copy to src/views/business/productOrder/components/addOrder.vue
Îļþ´Ó src/views/business/productOrder/components/add.vue ¸´ÖÆ
@@ -14,9 +14,13 @@
          <el-select v-show="active==1" v-model="template" placeholder="下单模板" size="small"
                     @change="selectInsOrderTemplateById">
            <el-option v-for="(a, ai) in templates" :key="ai" :label="a.name" :value="a.id">
              <span style="float: left">{{ a.name }}</span>
              <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px"
                 @click.stop="handleDelete(a)"></i>
              <div style="display: flex; align-items: center; justify-content: space-between;">
                <span>{{ a.name }}</span>
                <i class="el-icon-delete"
                   style="color: #66b1ff; font-size: 16px; cursor: pointer;"
                   @click.stop="handleDelete(a)">
                </i>
              </div>
            </el-option>
          </el-select>
          <el-button v-show="active==1" size="small" @click="templateDia=true">
@@ -41,7 +45,7 @@
        <el-form ref="addObj" :inline="true" :model="addObj" :rules="addObjRules" label-width="108px" label-position="right">
          <el-row>
            <el-col :span="6">
              <el-form-item label="委托编号:">
              <el-form-item label="委托编号:" prop="entrustCode">
                <el-input v-model="addObj.entrustCode" clearable disabled placeholder="系统生成" size="small"></el-input>
              </el-form-item>
            </el-col>
@@ -53,7 +57,7 @@
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="制单人:">
              <el-form-item label="制单人:" prop="custom">
                <el-input v-model="addObj.custom" disabled size="small" clearable></el-input>
              </el-form-item>
            </el-col>
@@ -117,7 +121,7 @@
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="报告发送方式:">
              <el-form-item label="报告发送方式:" prop="send">
                <el-radio-group v-model="addObj.send" :disabled="active>1&&tabIndex!=4" size="mini">
                  <el-radio :label="1" border style="margin-right: 0">自取</el-radio>
                  <el-radio :label="0" border>其他</el-radio>
@@ -127,7 +131,7 @@
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="样品处理方式:">
              <el-form-item label="样品处理方式:" prop="processing">
                <el-radio-group v-model="addObj.processing" :disabled="active>1&&tabIndex!=4" size="mini" style="display: flex; flex-direction: column;">
                  <el-radio :label="0" border style="margin-right: 0">委托单位取回</el-radio>
                  <el-radio :label="1" border>实验室处理</el-radio>
@@ -147,7 +151,7 @@
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="是否留样:">
              <el-form-item label="是否留样:" prop="isLeave">
                <el-radio-group v-model="addObj.isLeave" border :disabled="active>1&&tabIndex!=4" size="mini">
                  <el-radio :label="0" border style="margin-right: 0">不留样</el-radio>
                  <el-radio :label="1" border>留样</el-radio>
@@ -157,23 +161,23 @@
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="委托人:">
              <el-form-item label="委托人:" prop="prepareUser">
                <el-input v-model="addObj.prepareUser" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="委托人英文:">
              <el-form-item label="委托人英文:" prop="prepareUserEn">
                <el-input v-model="addObj.prepareUserEn" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="备注:">
              <el-form-item label="备注:" prop="remark">
                <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                          size="small" style="width: 100%" type="textarea"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="备注英文:">
              <el-form-item label="备注英文:" prop="remarkEn">
                <el-input v-model="addObj.remarkEn" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                          size="small" type="textarea"></el-input>
              </el-form-item>
@@ -181,19 +185,19 @@
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="样品名称:">
              <el-form-item label="样品名称:" prop="sampleView">
                <el-input v-model="addObj.sampleView" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                          size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="样品名称英文:">
              <el-form-item label="样品名称英文:" prop="sampleViewEn">
                <el-input v-model="addObj.sampleViewEn" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                          size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="委托人工号:">
              <el-form-item label="委托人工号:" prop="prepareCode">
                <el-input v-model="addObj.prepareCode" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                          size="small"></el-input>
              </el-form-item>
@@ -356,11 +360,6 @@
                        size="small" type="textarea"
                        @change="e=>requestChange(e,scope.row,'radius')">
              </el-input>
<!--              <el-select v-else-if="scope.row.inspectionItem.includes('高温压力试验') && (active==1||tabIndex==4)" v-model="scope.row.radius" clearable-->
<!--                         placeholder="条件"-->
<!--                         size="small" @change="e=>requestChange(e,scope.row,'radius')">-->
<!--                <el-option v-for="(a,i) in JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option>-->
<!--              </el-select>-->
              <span v-else>{{scope.row.radius}}</span>
            </template>
          </el-table-column>
@@ -379,16 +378,10 @@
          </el-table-column>
          <el-table-column label="计量单位" prop="unit" show-overflow-tooltip width="100"></el-table-column>
          <el-table-column label="单价" prop="price" show-overflow-tooltip width="100"></el-table-column>
          <!-- <el-table-column prop="manDay" label="预计时间(天)" width="120" show-overflow-tooltip></el-table-column>
          <el-table-column prop="manHour" label="工时系数" width="100" show-overflow-tooltip></el-table-column> -->
          <!-- <el-table-column prop="deviceGroup" label="设备组" width="120" show-overflow-tooltip></el-table-column> -->
          <el-table-column label="区间" min-width="120" prop="section" show-overflow-tooltip></el-table-column>
          <el-table-column :filter-method="filterHandler" :filters="filters" label="子实验室" min-width="130" prop="sonLaboratory"
            show-overflow-tooltip></el-table-column>
            <el-table-column v-if="isSpecial&&active==1"
            fixed="right"
            label="操作"
            width="100">
            <el-table-column v-if="isSpecial&&active==1" label="操作" width="100">
            <template slot-scope="scope">
              <el-button v-if="!scope.row.repetitionTag" size="small" type="text" @click="addProductList(productList,scope.row,scope.$index)">插入行</el-button>
              <el-button v-if="!!scope.row.repetitionTag&&scope.row.delete" size="small" type="text" @click="deleteProductList(scope.$index,productList)">删除</el-button>
@@ -611,14 +604,14 @@
import {mapGetters} from "vuex";
export default {
  name: 'Add',
  name: 'AddOrder',
  components: {
    limsTable,
    cableConfig,
    AuxiliaryWireCore
  },
  computed:{
  ...mapGetters(["nickName"]),
    ...mapGetters(["nickName", 'nameEn', 'userName']),
  },
  dicts: ['check_type1', 'urgency_level', 'form_type', 'sample_status_list'],
  data() {
@@ -804,10 +797,10 @@
    }
  },
  watch: {
    sampleList() {
      this.addObj.method = null
      this.productList = []
    },
    // sampleList() {
    //   this.addObj.method = null
    //   this.productList = []
    // },
    productList: {
      deep: true,
      handler(val) {
@@ -851,7 +844,13 @@
    this.active = this.$route.query.active
    this.tabIndex = this.$route.query.tabIndex
    this.currentId = this.$route.query.currentId
    this.getUserNowData()
    this.getInfo()
    if(this.tabIndex==4&&this.active==2){
      this.isSpecial = true
    }else{
      this.isSpecial = false
    }
  },
  activated() {
    this.active = this.$route.query.active
@@ -861,11 +860,9 @@
  },
  methods: {
    getInfo() {
      this.getUserNowData()
      this.selectStandardTreeList()
      this.getAuthorizedPerson();
      this.selectStandardMethods()
      this.getPrepareUser() // å¤åˆ¶å½“前账号人为委托人
      if (this.active != 1) {
        // æŸ¥çœ‹/审核流程
        // è¯·æ±‚接口,回显数据
@@ -889,16 +886,7 @@
          })
        })
      }
      if(this.tabIndex==4&&this.active==2){
        this.isSpecial = true
      }else{
        this.isSpecial = false
      }
    },
    getPrepareUser () {
        // this.addObj.prepareUser = JSON.parse(localStorage.getItem("user")).name;
        // this.addObj.prepareUserEn = JSON.parse(localStorage.getItem("user")).nameEn
        // this.addObj.prepareCode = JSON.parse(localStorage.getItem("user")).account
    },
      // ç¼–辑要求值表格
      editSpecial () {
@@ -1130,7 +1118,9 @@
            sampleList.forEach(a => {
              if (a.insProduct.length > 0) {
                a.insProduct.forEach(c => {
                  delete c.id
                  if (this.tabIndex != 4) {
                    delete c.id
                  }
                })
              }
              if (a.endModels) {
@@ -1168,7 +1158,9 @@
          sampleList.forEach(a => {
            if (a.insProduct.length > 0) {
              a.insProduct.forEach(c => {
                delete c.id
                if (this.tabIndex != 4) {
                  delete c.id
                }
              })
            }
            if (a.endModels) {
@@ -1267,14 +1259,16 @@
        }
      },
      saveMethod(sampleList){
        console.log('sampleList----', sampleList)
        this.saveLoad = true
        if (this.addObj.quarterItemId) {
          this.addObj.quarterItemId = this.addObj.quarterItemId[1]
        }
        if(this.tabIndex==4&&this.active==2){
          if (this.addObj.createTime) {
            delete this.addObj.createTime
          }
          // é€€å›žåŽæäº¤
          updateInsOrder({insOrder: this.addObj, sampleList: sampleList}).then(res => {
          updateInsOrder({insOrder: this.addObj, sampleProduct: sampleList}).then(res => {
            this.saveLoad = false
            this.$message.success('已提交')
            this.bsm3Dia = false;
@@ -1353,6 +1347,9 @@
        })
      },
      getUserNowData() {
      this.addObj.prepareUser = this.nickName
      this.addObj.prepareUserEn = this.nameEn
      this.addObj.prepareCode = this.userName
        getUserNow().then(res => {
          let selects = res.data
          if (selects == null) return
@@ -1408,7 +1405,6 @@
        if (node.data.code === '[3]') {
          this.sampleViewEn = val.sampleTypeEn
        } else if (node.data.code === '[4]') {
          console.log('node.data---', node.data)
          if (node.data.children!==null && node.data.children.length>0) {
            this.sampleViewEn = val.sampleEn
          }
@@ -1654,7 +1650,6 @@
      },
      tableRowClassName({row, rowIndex}) {
        if (row.state == 1) {
          console.log('row.state---', row.state)
          return 'warning-row';
        } else {
          return '';
@@ -2221,4 +2216,8 @@
>>>.warning-row {
  color: #1890FF;
}
.node_i {
  color: orange;
  font-size: 18px;
}
</style>