zouyu
2023-09-13 0499c5ea96c30fbd58a01b21a1c9faa79f67c273
src/components/view/standard-table/technology.vue
@@ -1,7 +1,159 @@
<template>
  <div class="standard">
    <div>
          <el-table :data="tableData" max-height="675" row-key="rowId" border
          @select-all="selectAll" @select="selectTr" ref="multipleTable"
          :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'left'}"
            @selection-change="handleSelectionChange" default-expand-all
            :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
            <el-table-column type="selection" width="55">
            </el-table-column>
            <el-table-column type="index" width="60" label="序号">
            </el-table-column>
            <el-table-column prop="father" label="工序" sortable width="200px">
              <template slot-scope="scope">
                    <el-tag v-if="scope.row.children" type="primary">01</el-tag>
                    <span style="color: black">
                      {{ scope.row.father }}
                    </span>
            </template>
            </el-table-column>
            <el-table-column sortable label="工艺名称">
              <template slot-scope="scope">
                <el-tag type="success" v-if="!scope.row.children">02</el-tag>
                <span style="color: black">{{ scope.row.name  }}</span>
              </template>
            </el-table-column>
            <el-table-column prop="dg" label="设备组">
              <template slot-scope="scope">
                <div class="showDiv">
                  <span>{{scope.row.dg}}</span>
                  <div @click="showDialog">选择</div>
                </div>
              </template>
            </el-table-column>
            <el-table-column prop="pq" label="生产定额(个/天)">
              <template slot-scope="scope">
                  <el-input v-model="scope.row.pq"
                  v-if="scope.row.dg != null"
                  @blur="updatePq(scope.row)"
                  ></el-input>
              </template>
            </el-table-column>
          </el-table>
        </div>
        <el-dialog
          title="选择设备组"
          :visible.sync="deviceGroupDialog"
          width="30%">
          <span>这是一段信息</span>
          <span slot="footer" class="dialog-footer">
            <el-button type="primary" @click="deviceGroupDialog = false">确 定</el-button>
            <el-button @click="deviceGroupDialog = false">取 消</el-button>
          </span>
        </el-dialog>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        deviceGroupDialog:false,
        selects: [],
        isAllSelect:false,
      }
    },
    props:['tableData','tableType'],
    created() {},
    mounted() {
    },
    methods: {
      // 表格树全部选中配置
      // 全选/取消选操作
      selectAll(val) {
        this.isAllSelect = !this.isAllSelect;
        let data = this.tableData;
        this.toggleSelect(data, this.isAllSelect, "all");
      },
      //选择某行
        selectTr(selection, row) {
        this.$set(row, "isChecked", !row.isChecked);
        this.$nextTick(() => {
          this.isAllSelect = row.isChecked;
          this.toggleSelect(row, row.isChecked, "tr");
        });
      },
      //递归子级
      toggleSelect(data, flag, type) {
        if (type === "all") {
          if (data.length > 0) {
            data.forEach((item) => {
              this.toggleSelection(item, flag);
              if (item.children && item.children.length > 0) {
                this.toggleSelect(item.children, flag, type);
              }
            });
          }
        } else {
          if (data.children && data.children.length > 0) {
            data.children.forEach((item) => {
              item.isChecked = !item.isChecked;
              this.$refs.multipleTable.toggleRowSelection(item, flag);
              this.toggleSelect(item, flag, type);
            });
          }
        }
      },
      handleSelectionChange(val) {
        this.deleteList = [];
        val.forEach((v) => {
          if (v.id !== undefined) {
            this.deleteList.push(v.id);
          }
        });
      },
      // 表格树全部选中配置  结束
      showDialog(){
          this.deviceGroupDialog = true
      },
      updatePq(row){
        this.$axios.post(this.$api.url.technologyWrite,{
            id : row.id,
            productionQuota : row.pq
        }).then(res=>{
          this.$message.success(res.message);
        }).catch(error=>{
          this.$message.error(error.message);
        })
      },
    }
  }
</script>
<style scoped>
  .standard {
    width: 100%;
    height: 100%;
  }
  .standard .showDiv{
    cursor: pointer;
  }
  .standard .showDiv div{
    color:#407ab9;
    display: none;
  }
  .showDiv span{
    cursor: pointer;
    display: block;
    width: 100%;
  }
  .showDiv:hover span{
    display: none;
  }
  .showDiv:hover div{
    display: block;
  }
</style>
<style>
@@ -30,78 +182,14 @@
    overflow: auto;
  }
  .standard .el-table__body-wrapper {
  /* .standard .el-table__body-wrapper {
    height: 100%;
  }
  } */
  .standard .el-table__body {
  /* .standard .el-table__body {
    height: 100%;
  }
  .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){
  } */
  /* .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){
    padding-left: 23px !important;
   }
   } */
</style>
<template>
  <div class="standard">
    <el-table  :data="tableData" border style="width: 100%"  row-key="id"
      :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
      <el-table-column type="selection" width="50">
      </el-table-column>
      <template v-if="tableType==1">
        <el-table-column type="index" label="序号" width="70">
        <template slot-scope="scope">
                {{ scope.row.index }}
        </template>
      </el-table-column>
      <el-table-column prop="name" label="项目">
        <template slot-scope="scope">
                <el-tag size="mini" :type="scope.row.index? '':'success'" :style="{borderRadius: '40%',marginRight: '12px'}">{{ scope.row.index? '01':'02'}}</el-tag>
                {{scope.row.name}}
        </template>
      </el-table-column>
      <el-table-column prop="unit" label="单位">
      </el-table-column>
      <el-table-column prop="required" label="标准值">
      </el-table-column>
      <el-table-column prop="internal" label="内控值">
      </el-table-column>
      </template>
      <template v-else>
        <el-table-column prop="name" label="工艺名称">
        </el-table-column>
        <el-table-column prop="device_group" label="设备组">
        </el-table-column>
        <el-table-column  label="匹配设备">
          <template>
            <el-button type="text">选择</el-button>
          </template>
        </el-table-column>
        <el-table-column prop="quota" label="工时定额">
        </el-table-column>
      </template>
    </el-table>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        selects: []
      }
    },
    props:['tableData','tableType'],
    created() {
      console.log(this.tableData,this.tableType)
    },
    mounted() {
    },
    methods: {
      handleSelectionChange(val) {
        this.selects = val;
      }
    }
  }
</script>