vue使用element-ui中el-table实现点击表头或点击一列选中全列的功能

现在有这么个需求,点击表格一列的表头或其中一列,选中全列,ux如下,默认选第一列
直接上代码
<!--表格--><el-table
:data="tableData"
@cell-click="(row, column) => handleClick({column})">
<el-table-column
v-for="(item,i) in columnList"
:key="i"
:prop="item.prop"
:class-name="item.current ? 'cellSelected' : ''">
<template #header="data">
<div @click="handleClick(data)">{{ item.prop }}</div>
</template>
</el-table-column>
</el-table>
js部分
export default {  data() {
    return {
      columnList: [
        { current: true, prop: 'name' },
        { current: false, prop: 'age' },
        { current: false, prop: 'tall' },
        { current: false, prop: 'class' }
      ],
      tableData: [
        { name: '张三丰', age: 32, tall: 176, class: 4 },
        { name: '张翠山', age: 22, tall: 176, class: 3 },
        { name: '张无极', age: 12, tall: 176, class: 2 },
      ]
    };
  },
  methods: {
    handleClick({ column }) {
      this.columnList.forEach(item => {
        if (item.prop === column.property) {
          item.current = true;
        } else {
          item.current = false;
        }
      });
    },
  }
};
css部分
.cellSelected {  border-color: #409EFF !important;
  border-left:1px solid;
  border-right:1px solid;
  background: #ecf5ff !important;
  color: #409EFF !important;
  font-weight: 600;
}
th.cellSelected {
  border-top:1px solid;
}
后面如果想要获取整列的值,可以通过prop值去table的数据数组里取
以上是 vue使用element-ui中el-table实现点击表头或点击一列选中全列的功能 的全部内容, 来源链接: utcz.com/z/380446.html

