Vue实现简单的动态表头

关键代码:放入你项目中合适的位置
    <el-popover ref="checkPop" placement="bottom" width="200" trigger="click">
      <el-checkbox-group v-model="colCheckList">
        <el-checkbox
          :label="item.value"
          v-for="item in colList"
          :disabled="item.disabled"
          :key="item.value"
          class="checkbox"
        >
          {{ item.name }}
        </el-checkbox>
      </el-checkbox-group>
      <el-button content="查询字段筛选" effect="" slot="reference">
        <div class="el-icon-setting"></div>
      </el-button>
    </el-popover> 
需要操作的字段
 // 所有表格列
      colList: [
        { name: '在运台区总数', value: 'runDistCnt', disabled: false },
        { name: '可算台区总数', value: 'calcDistCnt', disabled: false },
        { name: '系统可算率', value: 'sysCalcRate', disabled: false },
        { name: '压降法可算台区数', value: 'volCalcCnt', disabled: false },
        { name: '压降法可算率', value: 'volCalcRate', disabled: false },
        { name: '大数据可算台区数', value: 'bdCalcCnt', disabled: false },
        { name: '大数据可算率', value: 'bdCalcRate', disabled: false },
        { name: '不可算台区数', value: 'uncalcDistCnt', disabled: false },
        { name: '不可算率', value: 'uncalcDistRate', disabled: false }
      ],
      // 选中表格列
      colCheckList: [
        'runDistCnt',
        'calcDistCnt',
        'sysCalcRate',
        'volCalcCnt',
        'volCalcRate',
        'bdCalcCnt',
        'bdCalcRate',
        'uncalcDistCnt',
        'uncalcDistRate'
      ],
      // 默认列
      defaultColCheckList: [
        'runDistCnt',
        'calcDistCnt',
        'sysCalcRate',
        'volCalcCnt',
        'volCalcRate',
        'bdCalcCnt',
        'bdCalcRate',
        'uncalcDistCnt',
        'uncalcDistRate'
      ], 
在所有需要操作的字段上,加入v-if判断
        <el-table-column prop="sysCalcRate" label="系统可算率" :align="tableAlign" :key="5"
                         v-if="checkStatus('sysCalcRate')">
        </el-table-column> 
判断方法:
    checkStatus(el) {
      return this.colCheckList.includes(el)
    }, 
                
                    
                
                
            
        
浙公网安备 33010602011771号