licp
2024-03-20 15fc2eb2a1e0a92efb877d96f7c72ba7fbed3ecd
src/components/view/b2-standard.vue
@@ -54,6 +54,7 @@
      height: calc(100% - 275px);
      margin-top: 5px;
      background-color: white;
      user-select: none;
   }
   .product_table .el-table {
@@ -83,6 +84,10 @@
   .standard .standard_table .el-table__row .cell {
      font-size: 14px;
   }
   .standard .el-table .warning-row .cell {
      color: #bababa;
   }
</style>
<template>
@@ -97,9 +102,10 @@
               <el-button type="primary" icon="el-icon-plus" size="mini" circle @click="addDia = true"></el-button>
            </el-col>
         </el-row>
         <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }"
            node-key="label" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current
            @node-expand="nodeOpen" @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="true" :default-expanded-keys="expandedKeys">
         <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label"
            :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen"
            @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false"
            :default-expanded-keys="expandedKeys">
            <div class="custom-tree-node" slot-scope="{ node, data }">
               <el-row>
                  <el-col :span="21">
@@ -120,17 +126,18 @@
         <el-row class="title">
            <el-col :span="10" style="font-size: 14px;color: #999;">{{selectTree}}</el-col>
            <el-col :span="selectTree==''?24:14" style="text-align: right;" v-if="selectTree!=''">
               <el-button size="small" type="primary" @click="addStandardDia = true"
               <!-- <el-button size="small" type="primary" @click="addStandardDia = true"
                  v-if="addStandardMethod">新增标准</el-button>
               <el-button size="small" type="primary" @click="addProductDia = true" v-if="addStandardProduct">新增项目</el-button>
               <el-button size="small" @click="delStandardProductByIds" v-if="delStandardProduct">
                  <i class="el-icon-delete" style="color: #3A7BFA;"></i>
                  <span style="color: #3A7BFA;">删除</span>
               </el-button>
               </el-button> -->
            </el-col>
         </el-row>
         <el-row class="standard_table" v-loading="tableLoad">
            <el-table class="el-table" :data="standardList" style="width: 100%;" height="220px" tooltip-effect="dark">
            <el-table class="el-table" :data="standardList" style="width: 100%;" height="220px" tooltip-effect="dark"
               highlight-current-row @row-click="rowClick">
               <el-table-column prop="code" label="标准编号" show-overflow-tooltip>
                  <template slot-scope="scope">
                     <span style="color: red;font-size: 14px;">{{scope.row['code']}}</span>
@@ -140,34 +147,45 @@
               <el-table-column prop="remark" label="备注" show-overflow-tooltip></el-table-column>
               <el-table-column prop="createUserName" label="创建人"></el-table-column>
               <el-table-column prop="createTime" label="创建时间" width="250px"></el-table-column>
               <el-table-column label="操作" width="100" align="center" v-if="delStandardMethod">
               <!-- <el-table-column label="操作" width="100" align="center" v-if="delStandardMethod">
                  <template slot-scope="scope">
                     <el-button type="text" size="small" @click="delStandardMethodByFLSSM(scope.row.id)">删除</el-button>
                  </template>
               </el-table-column>
               </el-table-column> -->
            </el-table>
         </el-row>
         <el-row class="product_table" v-loading="tableLoad">
            <el-table :data="productList" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border
               @selection-change="handleSelectionChange">
         <el-row class="product_table" v-loading="tableLoad2">
            <el-table :data="productList" ref="productTable" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border
               @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" @select="upProductSelect">
               <el-table-column type="selection" width="65"></el-table-column>
               <el-table-column prop="inspectionItem" label="检验项" min-width="140" show-overflow-tooltip></el-table-column>
               <!-- <el-table-column prop="inspectionItemClassify" label="检验项类型" width="120" 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="inspectionItemSubclass" label="检验项子项" min-width="140"
                  show-overflow-tooltip></el-table-column>
               <el-table-column prop="sonLaboratory" label="子实验室" width="130" 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="manHour" label="工时" width="80" show-overflow-tooltip></el-table-column>
               <el-table-column prop="manHourGroup" 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 prop="section" label="区间" width="120" show-overflow-tooltip></el-table-column>
               <el-table-column prop="ask" label="要求值" min-width="220px">
               <el-table-column prop="ask" label="要求值" min-width="200px">
                  <template slot-scope="scope">
                     <el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable
                        @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct" type="textarea" :autosize="{ minRows: 1, maxRows: 3}"></el-input>
                        @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct" type="textarea"
                        :autosize="{ minRows: 1, maxRows: 3}"></el-input>
                     <span v-else>{{scope.row.ask}}</span>
                  </template>
               </el-table-column>
               <el-table-column prop="tell" label="要求描述" min-width="220px">
                  <template slot-scope="scope">
                     <el-input size="small" placeholder="要求描述" v-model="scope.row.tell" clearable
                        @change="(value)=>upStandardProductListOfTell(value,scope.row.id)" v-if="upStandardProduct" type="textarea"
                        :autosize="{ minRows: 1, maxRows: 3}"></el-input>
                     <span v-else>{{scope.row.ask}}</span>
                  </template>
               </el-table-column>
               <el-table-column prop="method" label="试验方法" width="100" 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="90" show-overflow-tooltip></el-table-column>
               <el-table-column prop="manHour" label="工时(H)" width="90" show-overflow-tooltip></el-table-column>
               <el-table-column prop="manHourGroup" 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 prop="section" label="区间" width="120" show-overflow-tooltip></el-table-column>
            </el-table>
         </el-row>
      </div>
@@ -289,6 +307,7 @@
            addLoad2: false,
            productList: [],
            tableLoad: false,
            tableLoad2: false,
            upStandardProduct: false,
            delStandardMethod: false,
            selects: [],
@@ -322,7 +341,9 @@
                  inspectionValueType:{
                     select:[]
                  },
                  deviceGroup:{select:[]}
                  deviceGroup: {
                     select: []
                  }
               },
               selectField: {},
            },
@@ -465,10 +486,10 @@
               this.list = res.data
               this.list.forEach(a=>{
                  a.children.forEach(b=>{
                     /* b.children.forEach(c=>{
                     b.children.forEach(c => {
                        this.expandedKeys.push(c.label)
                     }) */
                     this.expandedKeys.push(b.label)
                     })
                     // this.expandedKeys.push(b.label)
                  })
               })
               this.treeLoad = false
@@ -569,7 +590,6 @@
            }).then(res => {
               this.tableLoad = false
               this.standardList = res.data.standardMethodList
               this.productList = res.data.standardProductList
            })
         },
         getPower() {
@@ -616,6 +636,22 @@
            this.$axios.post(this.$api.standardTree.upStandardProductList, {
               id: index,
               ask: value
            }, {
               headers: {
                  'Content-Type': 'application/json'
               }
            }).then(res => {
               if (res.code == 201) {
                  this.$message.error('未保存')
                  return
               }
               this.$message.success('已保存')
            })
         },
         upStandardProductListOfTell(value, index) {
            this.$axios.post(this.$api.standardTree.upStandardProductList, {
               id: index,
               tell: value
            }, {
               headers: {
                  'Content-Type': 'application/json'
@@ -696,7 +732,50 @@
               this.selectsStandardMethodByFLSSM()
            })
            this.addProductDia = false
         },
         rowClick(row, column, event) {
            this.tableLoad2 = true
            this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, {
               id: row.id
            }).then(res => {
               this.productList = res.data
               setTimeout(() => {
                  this.productList.forEach(a => {
                     if (a.state == 1) this.toggleSelection(a)
                  })
               }, 300)
               this.tableLoad2 = false
            })
         },
         toggleSelection(row) {
            this.$refs.productTable.toggleRowSelection(row, true);
         },
         tableRowClassName({
            row,
            rowIndex
         }) {
            if (row.state === 0) {
               return 'warning-row';
         }
            return '';
         },
         upProductSelect(selection, row) {
            row.state = row.state == 1 ? 0 : 1
            this.$axios.post(this.$api.standardTree.upStandardProductList, {
               id: row.id,
               state: row.state
            }, {
               headers: {
                  'Content-Type': 'application/json'
               }
            }).then(res => {
               if (res.code == 201) {
                  this.$message.error('未保存')
                  return
               }
               this.$message.success('已保存')
            })
         },
      }
   }
</script>