王震
2023-09-12 49a5757c36d73524c74bc27fcecf486368d80311
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<style scoped>
    .standard {
      width: 100%;
      height: 100%;
    }
    .standard * {
      font-size: 14px;
    }
  
    .standard .has-gutter .el-table__cell {
      background-color: #F0F1F5 !important;
      color: #333;
    }
  
    .standard .has-gutter .el-table__cell .cell {
      font-size: 16px;
      font-weight: 500;
    }
  
    .standard .cell {
      color: #333;
      padding-left: 17px !important;
    }
  
    .standard {
      width: 100%;
      height: 100%;
      overflow: auto;
    }
  
    /* .standard .el-table__body-wrapper {
      height: 100%;
    } */
  
    /* .standard .el-table__body {
      height: 100%;
    } */
    .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 ref="multipleTable" :data="tableData" row-key="rowId" border max-height="675"
        @select-all="selectAll" @select="selectTr" 
        @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="工序">
            <template slot-scope="scope">
                <el-tag type="primary" v-if="scope.row.father != null">01</el-tag>
                <span>{{scope.row.father}}</span>
            </template>
        </el-table-column>
        <el-table-column prop="name" label="工艺名称">
            <template slot-scope="scope">
                <el-tag type="success" v-if="scope.row.name != null">02</el-tag>
                <span>{{scope.row.name}}</span>
            </template>  
        </el-table-column>
        <el-table-column prop="device" label="设备名称">
            <template slot-scope="scope">
                <el-tag type="info" color="#faf2ff" v-if="scope.row.device != null">
                    <span style="color: #e1affb">03</span>
                </el-tag>
                <span>{{scope.row.device}}</span>
            </template>
        </el-table-column>
        <el-table-column prop="productFather" label="项目"></el-table-column>
        <el-table-column prop="unit" label="单位"></el-table-column>
        <el-table-column prop="product" label="指标"></el-table-column>
        </el-table>
    </div>
</template>
<script>
export default ({
    data() {
        
    },
    props:['tableData','tableType'],
    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);
          }
        });
      },
      // 表格树全部选中配置  结束
    }
})
</script>