value
2024-06-13 86180d1e80a0cc6faf147495d7e78bfeaf329214
小功能修复
已修改3个文件
270 ■■■■ 文件已修改
src/components/do/b1-ins-order/add.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-ins-order/cable-config.vue 255 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/a5-capacity-scope.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-ins-order/add.vue
@@ -957,7 +957,7 @@
              return a
            })),
            pairing: JSON.stringify(this.bsm2Val2)
          })
            })
          }).then(res => {
            this.saveLoad = false
            if (res.code == 201) return
@@ -1113,6 +1113,8 @@
          this.sample.insProduct = []
          this.sample.id = this.count
          this.sample.childSampleList = []
          this.sample.insulating = null
          this.sample.sheath = null
          this.sampleList.push(this.HaveJson(this.sample))
          this.count++
        }
src/components/do/b1-ins-order/cable-config.vue
@@ -7,47 +7,67 @@
          <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;">
      <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 class="search_thing" v-if="currentTab=='绝缘'">
        <div class="search_label">芯数:</div>
        <el-input size="small" placeholder="请输入" clearable
                        v-model="vaule0"></el-input>
                        v-model="insulating.num"></el-input>
      </div>
      <el-button size="small" type="primary"@click="openAdd" style="margin-left: 20px;margin-right: 20px;" v-if="currentTab=='绝缘'">
        确 定</el-button>
      <div class="search_thing">
      <div class="search_thing" v-if="currentTab=='绝缘'">
        <div class="search_label">检验标准:</div>
        <el-select v-model="vaule0" placeholder="请选择检验标准" size="small"
        clearable>
          <el-option v-for="item in standardList" :key="item.value" :label="item.label" :value="item.value">
        <el-select v-model="insulating.standardMethodListId" 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>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" type="primary"@click="openAdd">保 存</el-button>
      <div class="search_thing" v-if="currentTab=='护套'">
        <div class="search_label">检验标准:</div>
        <el-select v-model="sheath.standardMethodListId" 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>
    </div>
    <div class="table">
      <ValueTable ref="ValueTable"
                :url="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours"
                :componentData="componentData" :key="upIndex" />
      <el-table class="el-table" ref="productTable" :data="productList" height="100%" tooltip-effect="dark" border
        @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect"
        :row-class-name="tableRowClassName" @select-all="handleAll">
        <el-table-column type="selection" width="65" :selectable="selectable"></el-table-column>
        <el-table-column prop="inspectionItem" label="检验项" min-width="140" show-overflow-tooltip></el-table-column>
        <el-table-column prop="inspectionItemSubclass" label="检验项子项" min-width="140"
          show-overflow-tooltip></el-table-column>
        <el-table-column prop="sonLaboratory" label="子实验室" min-width="130" show-overflow-tooltip></el-table-column>
        <el-table-column prop="methodS" label="试验方法" min-width="120" show-overflow-tooltip>
        </el-table-column>
        <el-table-column prop="unit" label="计量单位" width="100" show-overflow-tooltip></el-table-column>
        <el-table-column prop="price" label="单价" width="100" show-overflow-tooltip></el-table-column>
        <el-table-column prop="section" label="区间" min-width="120" show-overflow-tooltip></el-table-column>
        <el-table-column prop="ask" label="要求值" min-width="220px">
          <template slot-scope="scope">
            <el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable type="textarea"
              :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)"
              v-if="active==1&&isAskOnlyRead"></el-input>
            <span v-else>{{ scope.row.ask }}</span>
          </template>
        </el-table-column>
      </el-table>
    </div>
  </div>
</template>
<script>
import ValueTable from '../../tool/value-table.vue'
import { Tree } from 'element-ui'
export default {
  components: {
    ValueTable
  },
  props: {
    active: {
      type: Number,
@@ -59,42 +79,167 @@
        standardList:[],
        vaule0:'',
        currentTab:'绝缘',
        componentData: {
                    entity: {
                        number: null,
                        department: null,
                        laboratory: null,
                        orderBy: {
                            field: 'id',
                            order: 'desc'
                        }
                    },
                    isIndex: true,
                    showSelect: true,
                    select: true,
                    do: [],
                    tagField: {},
                    linkEvent: {
                    },
                    selectField: {
                        laboratory: {
                            select: []
                        },
                        unit: {
                            select: []
                        },
                    },
                    requiredAdd: [],
                    requiredUp: []
              },
        upIndex:0,
        productList: [],
        productIds: [],
        sample: [],
        tree: '',
        standards: [],
        insulating: {
          standardMethodListId: null,
          insProduct: [],
          num: 1
        },
        sheath: {
          standardMethodListId: null,
          insProduct: []
        },
        isAskOnlyRead: false
      }
  },
  mounted() {
    this.$parent.sampleIds.forEach(a => {
      for (var i = 0; i < this.$parent.sampleList.length; i++) {
        if (this.$parent.sampleList[i].id == a) {
          this.sample.push(this.$parent.sampleList[i])
          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
        }
      }
    })
    let obj = this.$parent.addObj
    this.tree = obj.factory + ' - ' + obj.laboratory + ' - ' + obj.sampleType + ' - ' + obj.sample
    this.selectsStandardMethodByFLSSM2()
    this.productList = this.insulating.insProduct
    setTimeout(() => {
      this.productList.forEach(a => {
        if (a.state == 1) this.toggleSelection(a)
      })
    }, 200)
  },
  methods: {
    outConfig() {
      this.$parent.cableConfigShow = false
    },
    selectProduct(val) {
      this.productIds = []
      val.forEach(a => {
        this.productIds.push(a.id)
      })
    },
    upProductSelect(selection, row) {
      row.state = row.state == 1 ? 0 : 1
    },
    handleAll(e) {
      if (e.length > 0) {
        this.productList.map(m => {
          m.state = 1
          return m
        })
      } else {
        this.productList.map(m => {
          m.state = 0
          return m
        })
      }
      this.$nextTick(() => {
        this.$refs.productTable.doLayout()
      })
    },
    tableRowClassName({
      row,
      rowIndex
    }) {
      if (row.state === 0) {
        return 'warning-row';
      }
      return '';
    },
    selectable() {
      if (this.active > 1) {
        return false
      } else {
        return true
      }
    },
    selectsStandardMethodByFLSSM2() {
      this.standards = []
      this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
        tree: this.tree
      }).then(res => {
        this.standards = res.data.standardMethodList
      })
    },
    methodChange(val) {
      if (val === null || val === '') return
      let standard = this.standards.find(a => a.id === val)
      if(standard!=null && standard.code==='委托要求'){
        this.isAskOnlyRead = true
      }else{
        this.isAskOnlyRead = false
      }
      this.$axios.post(this.$api.standardTree.selectStandardProductList, {
        model: this.$parent.addObj.model,
        standardMethodListId: val,
        factory: this.tree + ' - '
      }, {
        headers: {
          'Content-Type': 'application/json'
        }
      }).then(res => {
        res.data.forEach(a => {
          a.state = 0
        })
        if(this.currentTab==='绝缘'){
          this.insulating.insProduct = res.data
        }else if(this.currentTab==='护套'){
          this.sheath.insProduct = res.data
        }
        this.productList = res.data
        setTimeout(() => {
          this.productList.forEach(a => {
            if (a.state == 1) this.toggleSelection(a)
          })
        }, 200)
      })
    },
    toggleSelection(row) {
      this.$refs.productTable.toggleRowSelection(row, true);
    },
    save(){
      if(this.insulating.insProduct.length === 0 && this.sheath.insProduct.length === 0){
        this.$message.error('缺少配置无法保存')
        return
      }
      if(this.insulating.insProduct.length !== 0){
        if(this.insulating.num === null || this.insulating.num === '' || this.insulating.num <= 0){
          this.$message.error('缺少芯数无法保存')
          return
        }
      }
      this.sample.forEach(a=>{
        a.insulating = this.insulating
        a.sheath = this.sheath
      })
      this.$message.success('已保存')
    },
    changeTab(val){
      if(val==='绝缘'){
        this.productList = this.insulating.insProduct
      }else if(val==='护套'){
        this.productList = this.sheath.insProduct
      }
      setTimeout(() => {
        this.productList.forEach(a => {
          if (a.state == 1) this.toggleSelection(a)
        })
      }, 200)
    }
  }
}
</script>
@@ -146,3 +291,21 @@
        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: #bababa;
  }
</style>
src/components/view/a5-capacity-scope.vue
@@ -516,7 +516,7 @@
          if (power[i].menuMethod == 'selectTestObjectList') {
            select += 2
          }
          if (this.radio === '0') {
          if (radio === '0') {
            if (power[i].menuMethod == 'upItemParameter') {
              up = true
            }
@@ -526,7 +526,9 @@
            if (power[i].menuMethod == 'addItemParameter') {
              add = true
            }
            if (power[i].menuMethod == 'importData') {
              inPower = true
            }
          } else {
            if (power[i].menuMethod == 'upTestObject') {
              up = true
@@ -540,12 +542,9 @@
            if (power[i].menuMethod == 'selectProductListByObjectId') {
              product = true
            }
            if (power[i].menuMethod == 'importData') {
              inPower = true
            }
          }
        }
        if (this.radio === '0') {
        if (radio === '0') {
          if (!del) {
            this.itemParameterData.do.splice(1, 1)
          }