gaoluyang
2025-02-24 7cafed0404a6fa12ef56d85d08da7bf5115ba7e5
src/views/business/productOrder/components/cable-config.vue
@@ -1,56 +1,40 @@
<template>
  <div class="ins_order_config">
    <div>
      <el-row class="title">
        <el-col :span="6" style="padding-left: 20px;text-align: left;">电缆配置</el-col>
        <el-col :span="18" style="text-align: right;">
          <el-button size="medium" @click="outConfig">
            <span style="color: #3A7BFA;">返 回</span>
          </el-button>
          <el-button size="medium" type="primary" @click="save">保 存</el-button>
        </el-col>
      </el-row>
    </div>
    <div class="search">
      <el-radio-group v-model="currentTab" size="small" style="margin-left: 20px;" @input="changeTab">
        <el-radio-button label="绝缘">绝 缘</el-radio-button>
<!--        <el-radio-button label="护套">护 套</el-radio-button>-->
      </el-radio-group>
      <div v-if="currentTab=='绝缘'" class="search_thing">
        <div class="search_label">芯数:</div>
        <el-select v-model="insulating.num" allow-create
                   clearable
                   default-first-option
                   filterable
                   multiple
                   size="small">
          <el-option v-for="item in quantityList" :key="item.value" :label="item.label" :value="item.value"></el-option>
        </el-select>
  <div>
    <div class="search_form">
      <div v-if="currentTab=='绝缘'">
        <el-radio-group v-model="currentTab" size="small" style="margin-right: 20px;" @input="changeTab">
          <el-radio-button label="绝缘">绝 缘</el-radio-button>
        </el-radio-group>
        <el-form :model="insulating" ref="entity" size="small" :inline="true">
          <el-form-item label="芯数" prop="num">
            <el-select v-model="insulating.num" allow-create
                       clearable
                       default-first-option
                       filterable
                       multiple
                       size="small">
              <el-option v-for="item in quantityList" :key="item.value" :label="item.label" :value="item.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="检验标准" prop="standardMethodListId">
            <el-select v-model="insulating.standardMethodListId" disabled placeholder="请选择检验标准"
                       size="small"
                       @change="(value)=>methodChange(value)">
              <el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
              </el-option>
            </el-select>
          </el-form-item>
        </el-form>
      </div>
      <div v-if="currentTab=='绝缘'" class="search_thing">
        <div class="search_label">检验标准:</div>
        <el-select v-model="insulating.standardMethodListId" disabled placeholder="请选择检验标准"
                   size="small"
        @change="(value)=>methodChange(value)">
          <el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
          </el-option>
        </el-select>
      <div>
        <el-button size="small" @click="outConfig">返 回</el-button>
        <el-button size="small" type="primary" @click="save">保 存</el-button>
      </div>
<!--      <div class="search_thing" v-if="currentTab=='护套'">-->
<!--        <div class="search_label">检验标准:</div>-->
<!--        <el-select v-model="sheath.standardMethodListId" placeholder="请选择检验标准" size="small"-->
<!--                   disabled-->
<!--        @change="(value)=>methodChange(value)">-->
<!--          <el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">-->
<!--          </el-option>-->
<!--        </el-select>-->
<!--      </div>-->
    </div>
    <div class="table">
      <el-table ref="productTable" :data="productList" :row-class-name="tableRowClassName"
                border class="el-table" height="100%"
        style="margin-bottom: 10px;" tooltip-effect="dark" @select="upProductSelect"
        @selection-change="selectProduct" @select-all="handleAll">
      <el-table ref="productTable" :data="productList" :row-class-name="tableRowClassName" border
                class="el-table" :height="'calc(100vh - 200px)'" tooltip-effect="dark" @select="upProductSelect"
                @selection-change="selectProduct" @select-all="handleAll">
        <el-table-column :selectable="selectable" type="selection" width="65"></el-table-column>
        <el-table-column label="检验项分类" min-width="140" prop="inspectionItemClass" show-overflow-tooltip></el-table-column>
        <el-table-column label="检验项" min-width="140" prop="inspectionItem" show-overflow-tooltip>
@@ -142,12 +126,13 @@
</template>
<script>
import { Tree } from 'element-ui'
import {selectsStandardMethodByFLSSM, selectStandardProductList} from "@/api/business/rawMaterialOrder";
export default {
  props: {
    active: {
      type: Number,
      default: () => 0
      type: String,
      default: () => '0'
    },
    sampleSelectionList: {
      type: Array,
@@ -174,10 +159,6 @@
          insProduct: [],
          num: []
        },
        // sheath: {
        //   standardMethodListId: null,
        //   insProduct: []
        // },
        isAskOnlyRead: false,
        inspectionItem:null,
        inspectionItemSubclass:null,
@@ -194,9 +175,6 @@
          if(this.$parent.sampleList[i].insulating !== undefined && this.$parent.sampleList[i].insulating !== null){
            this.insulating = this.$parent.sampleList[i].insulating
          }
          // if(this.$parent.sampleList[i].sheath !== undefined && this.$parent.sampleList[i].sheath !== null){
          //   this.sheath = this.$parent.sampleList[i].sheath
          // }
          break
        }
      }
@@ -227,28 +205,6 @@
        this.productList = this.productList0
      }
    },
    // 要求值变化时
    requestChange(e, row,type) {
      this.sampleList.map(item => {
        if (this.sampleIds.indexOf(item.id) > -1) {
          item.insProduct.map(i => {
            if(i.id == row.id){
              if(row.repetitionTag){
                if(row.repetitionTag==i.repetitionTag){
                  i[type] = e
                }
              }else{
                if(!i.repetitionTag){
                  i[type] = e
                }
              }
            }
            return i
          })
        }
        return item
      })
    },
    outConfig() {
      this.$parent.cableConfigShow = false
    },
@@ -277,10 +233,7 @@
        this.$refs.productTable.doLayout()
      })
    },
    tableRowClassName({
      row,
      rowIndex
    }) {
    tableRowClassName({row, rowIndex}) {
      if (row.state === 0) {
        return '';
      }
@@ -295,7 +248,7 @@
    },
    selectsStandardMethodByFLSSM2() {
      this.standards = []
      this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
      selectsStandardMethodByFLSSM({
        tree: this.$parent.selectTree
      }).then(res => {
        try {
@@ -303,7 +256,7 @@
            let arr = this.selectTree.split('-')
            let arr0 = arr.slice(0, arr.length - 1)
            let selectTree = arr0.join('-').substring(0, arr0.join('-').length - 1)
            this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
            selectsStandardMethodByFLSSM({
              tree: selectTree
            }).then(ress => {
              this.standards = ress.data.standardMethodList
@@ -341,7 +294,7 @@
      const cores = this.sampleSelectionList[0].cores
      const conductorMaterial = this.sampleSelectionList[0].conductorMaterial
      const conductorType = this.sampleSelectionList[0].conductorType
      this.$axios.post(this.$api.standardTree.selectStandardProductList, {
      selectStandardProductList({
        model: this.$parent.addObj.model?this.$parent.addObj.model:model,
        modelNum: modelNum,
        cores: cores,
@@ -358,8 +311,6 @@
        res.data.forEach(a => {
          a.state = 0
        })
        // this.insulating.insProduct = res.data
        // this.sheath.insProduct = res.data
        this.productList = res.data
      })
    },
@@ -367,21 +318,16 @@
      this.$refs.productTable.toggleRowSelection(row, true);
    },
    save(){
      // if(this.insulating.insProduct.length === 0 && this.sheath.insProduct.length === 0){
      //   this.$message.error('缺少配置无法保存')
      //   return
      // }
      this.insulating.insProduct = this.productList
      this.insulating.insProduct = this.HaveJson(this.productList)
      if(this.insulating.insProduct.length !== 0){
        if(this.insulating.num.length === 0){
          this.$message.error('缺少芯数无法保存')
          return
        }
      }
      // this.sample.forEach(a=>{
      //   a.insulating = this.insulating
      //   a.sheath = this.sheath
      // })
      this.insulating.insProduct.forEach(a => {
        delete a.id
      })
      if (this.currentTab === '绝缘') {
        this.sample.forEach(a => {
          a.insulating = this.insulating
@@ -429,67 +375,15 @@
</script>
<style scoped>
.ins_order_config {
    width: 100%;
    height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
  }
  .ins_order_config::-webkit-scrollbar {
    width: 0;
  }
  .title {
    height: 60px;
    line-height: 60px;
  }
  .search {
      background-color: #fff;
      height: 80px;
      display: flex;
      align-items: center;
   }
   .search_thing {
      width: 300px;
      display: flex;
      align-items: center;
   }
   .search_label {
      width: 100px;
      font-size: 14px;
      text-align: right;
   }
   .search_input {
      width: calc(100% - 70px);
   }
  .table {
      margin-top: 10px;
      background-color: #fff;
      width: calc(100% - 40px);
      height: calc(100% - 60px - 80px - 26px - 24px);
      padding: 20px;
   }
</style>
<style>
  .ins_order_config .has-gutter .el-table__cell .cell {
    line-height: 30px;
    background-color: #fafafa;
  }
  .ins_order_config .has-gutter .el-table__cell {
    background-color: #fafafa !important;
  }
  .ins_order_config .el-table__row .cell {
    font-size: 12px;
  }
  .ins_order_config .el-table .warning-row .cell {
    color: #3A7BFA;
  }
.search_form {
  display: flex;
  justify-content: space-between;
}
.search_input {
  display: flex;
  justify-content: space-between;
}
.el-table .warning-row .cell {
  color: #3A7BFA;
}
</style>