Blame view
src/views/table/dynamic-table/components/FixedThead.vue
1.63 KB
d7d9c38c2 auto commit the c... |
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 |
<template> <div class="app-container"> <div class="filter-container"> <el-checkbox-group v-model="checkboxVal"> <el-checkbox label="apple"> apple </el-checkbox> <el-checkbox label="banana"> banana </el-checkbox> <el-checkbox label="orange"> orange </el-checkbox> </el-checkbox-group> </div> <el-table :key="key" :data="tableData" border fit highlight-current-row style="width: 100%"> <el-table-column prop="name" label="fruitName" width="180" /> <el-table-column v-for="fruit in formThead" :key="fruit" :label="fruit"> <template slot-scope="scope"> {{ scope.row[fruit] }} </template> </el-table-column> </el-table> </div> </template> <script> const defaultFormThead = ['apple', 'banana'] export default { data() { return { tableData: [ { name: 'fruit-1', apple: 'apple-10', banana: 'banana-10', orange: 'orange-10' }, { name: 'fruit-2', apple: 'apple-20', banana: 'banana-20', orange: 'orange-20' } ], key: 1, // table key formTheadOptions: ['apple', 'banana', 'orange'], checkboxVal: defaultFormThead, // checkboxVal formThead: defaultFormThead // 默认表头 Default header } }, watch: { checkboxVal(valArr) { this.formThead = this.formTheadOptions.filter(i => valArr.indexOf(i) >= 0) this.key = this.key + 1// 为了保证table 每次都会重渲 In order to ensure the table will be re-rendered each time } } } </script> |