spring
2025-04-16 3a05fd672f3cf6fcd847e28d93ad3e3b9c01fea2
src/views/business/productOrder/components/addInspectionDia.vue
@@ -1,13 +1,9 @@
<template>
  <div>
    <el-dialog
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      :visible.sync="dialogVisible"
      title="添加检验项"
    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="dialogVisible" title="添加检验项"
      width="80%">
      <el-table ref="sampleTable" :data="sampleList" border class="el-table sampleTable" highlight-current-row
                max-height="400px" tooltip-effect="dark">
        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" max-height="400px" tooltip-effect="dark">
        <el-table-column align="center" label="序号" type="index" width="65"></el-table-column>
        <el-table-column align="center" label="样品名称" min-width="100" prop="sample">
          <template slot-scope="scope">
@@ -17,19 +13,18 @@
        <el-table-column align="center" label="样品编号" min-width="100" prop="sampleCode">
          <template slot-scope="scope">
            <el-input v-model="scope.row.sampleCode" clearable disabled placeholder="不填写则系统自动生成"
                      size="small"></el-input>
              size="small"></el-input>
          </template>
        </el-table-column>
        <el-table-column align="center" label="样品型号" min-width="60" prop="model">
          <template slot-scope="scope">
            <el-input v-model="scope.row.model" clearable disabled placeholder="不填写则系统自动生成"
                      size="small"></el-input>
            <el-input v-model="scope.row.model" clearable disabled placeholder="不填写则系统自动生成" size="small"></el-input>
          </template>
        </el-table-column>
        <el-table-column align="center" label="检验标准" min-width="100" prop="standardMethodListId">
          <template slot-scope="scope">
            <el-input v-model="scope.row.standardMethodListId" clearable disabled placeholder="不填写则系统自动生成"
                      size="small"></el-input>
              size="small"></el-input>
          </template>
        </el-table-column>
        <el-table-column label="操作" min-width="120">
@@ -39,65 +34,63 @@
        </el-table-column>
      </el-table>
    </el-dialog>
    <el-dialog
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      :visible.sync="itemDialogVisible"
      title="添加检验项"
      width="90%">
      <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName" border class="el-table"
                max-height="700px" style="margin-bottom: 10px;" tooltip-effect="dark"
                @selection-change="selectProduct">
    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="itemDialogVisible"
      title="添加检验项" width="90%">
      <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName"
        border class="el-table" :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" max-height="580px"
        tooltip-effect="dark" @selection-change="selectProduct">
        <el-table-column 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="inspectionItemClass"
          show-overflow-tooltip></el-table-column>
        <el-table-column label="检验项" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column>
        <el-table-column label="检验项子项" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip></el-table-column>
        <el-table-column label="检验项子项" min-width="140" prop="inspectionItemSubclass"
          show-overflow-tooltip></el-table-column>
        <el-table-column label="要求值" min-width="220px" prop="ask">
          <template slot-scope="scope">
            <el-input v-if="active==1&&scope.row.inspectionValueType!='5'" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="要求值"
                      size="small" type="textarea"></el-input>
            <el-input v-if="active == 1 && scope.row.inspectionValueType != '5'" v-model="scope.row.ask"
              :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求值" size="small"
              type="textarea"></el-input>
            <span v-else>
                <template >{{ scope.row.ask }}</template>
              </span>
              <template>{{ scope.row.ask }}</template>
            </span>
          </template>
        </el-table-column>
        <el-table-column label="要求描述" min-width="220px" prop="tell">
          <template slot-scope="scope">
            <el-input v-if="active==1" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="要求描述"
                      size="small" type="textarea"></el-input>
            <el-input v-if="active == 1" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" clearable
              placeholder="要求描述" size="small" type="textarea"></el-input>
            <span v-else>
                <template >{{ scope.row.tell }}</template>
              </span>
              <template>{{ scope.row.tell }}</template>
            </span>
          </template>
        </el-table-column>
        <el-table-column label="条件" min-width="140" prop="radius" show-overflow-tooltip>
          <template slot-scope="scope">
            <el-input v-if="active==1&&!scope.row.inspectionItem.includes('高温压力试验')" v-model="scope.row.radius" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="条件"
                      size="small" type="textarea">
            <el-input v-if="active == 1 && !scope.row.inspectionItem.includes('高温压力试验')" v-model="scope.row.radius"
              :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="试验条件" size="small" type="textarea">
            </el-input>
            <el-select v-else-if="scope.row.inspectionItem.includes('高温压力试验') && active==1" v-model="scope.row.radius" clearable
                       placeholder="条件"
                       size="small">
              <el-option v-for="(a,i) in JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option>
            <el-select v-else-if="scope.row.inspectionItem.includes('高温压力试验') && active == 1" v-model="scope.row.radius"
              clearable placeholder="条件" size="small">
              <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>
            <span v-else>{{ scope.row.radius }}</span>
          </template>
        </el-table-column>
        <el-table-column label="线芯" min-width="120" prop="cableTag" show-overflow-tooltip>
          <template slot-scope="scope">
            <el-input v-if="active==1" v-model="scope.row.cableTag" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="线芯"
                      size="small" type="textarea"></el-input>
            <el-input v-if="active == 1" v-model="scope.row.cableTag" :autosize="{ minRows: 1, maxRows: 3 }" clearable
              placeholder="线芯" size="small" type="textarea"></el-input>
          </template>
        </el-table-column>
        <el-table-column label="试验方法" min-width="120" prop="methodS" show-overflow-tooltip></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 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 :filter-method="filterHandler" :filters="filters" label="子实验室" min-width="130"
          prop="sonLaboratory" show-overflow-tooltip></el-table-column>
      </el-table>
      <span slot="footer" class="dialog-footer">
            <el-button @click="itemDialogVisible = false">取 消</el-button>
        <el-button @click="itemDialogVisible = false">取 消</el-button>
        <el-button :loading="upLoad" type="primary" @click="submitList">确 定</el-button>
      </span>
    </el-dialog>
@@ -105,6 +98,8 @@
</template>
<script>
import { addOmitOrderProduct, getProductTreeBySampleId, getSampleByOrderId } from "@/api/business/productOrder";
export default {
  name: "addInspectionDia",
  // import 引入的组件需要注入到对象中才能使用
@@ -119,8 +114,8 @@
      productList: [], // 检验项表格数据
      productListSelected: [], // 选择的检验项表格
      active: 1,
      methodS:null,
      id:null,
      methodS: null,
      id: null,
      filters: [],
      upLoad: false,
    }
@@ -132,22 +127,16 @@
  methods: {
    getDataList(row) {
      this.dialogVisible = true
      this.$axios.get(this.$api.insOrder.getSampleByOrderId + '?insOrderId=' + row.id).then(res => {
        if (res.code === 201) {
          return
        }
      getSampleByOrderId({ insOrderId: row.id }).then(res => {
        this.sampleList = res.data
      })
    },
    openAddItemDia (row) {
    openAddItemDia(row) {
      this.itemDialogVisible = true
      this.getProductLoad = true
      this.id=row.id
      this.$axios.get(this.$api.insOrder.getProductTreeBySampleId + '?insSampleId=' + row.id).then(res => {
      this.id = row.id
      getProductTreeBySampleId({ insSampleId: row.id }).then(res => {
        this.getProductLoad = false
        if (res.code === 201) {
          return
        }
        this.productList = res.data
      }).catch(err => {
        this.getProductLoad = false
@@ -163,23 +152,15 @@
      }
      this.productListSelected = val
    },
    submitList () {
    submitList() {
      this.$confirm('确认添加此检验项?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.upLoad = true
        this.$axios.post(this.$api.insOrder.addOmitOrderProduct,{insProductBindingList:this.productListSelected,insSampleId:this.id}, {
          headers: {
            "Content-Type": "application/json"
          },
          noQs: true
        } ).then(res => {
        addOmitOrderProduct({ insProductBindingList: this.productListSelected, insSampleId: this.id }).then(res => {
          this.upLoad = false
          if (res.code === 201) {
            return
          }
          this.$message.success('添加成功!')
          this.itemDialogVisible = false
        }).catch(err => {
@@ -188,11 +169,11 @@
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消删除'
          message: '已取消添加'
        });
      });
    },
    tableRowClassName({row, rowIndex}) {
    tableRowClassName({ row, rowIndex }) {
      if (row.state === 0) {
        return '';
      }