el-table 点击单元格修改该单元格颜色

在项目中使用el-table要求:点击单元格,该单元格边框和字体颜色修改。

<el-table :data="AccountInfo" :border="true" :header-cell-style="{ background: `${headerColor}`, }" :cell-style="cellStyle"  :cell-class-name="tableCellClassName" @cell-click="cellClick">
</el-table>
  data() {
        return {
            AccountInfo: [ ],
            headerColor: 'linear-gradient(180deg, rgba(17, 27, 43, 0.8) -106.45%, rgba(41, 48, 66, 0.8) 161.19%)',
            clickedRow: '', // 点击的单元格行号
            clickedColumn: '', // 点击的单元格列名
        }
    },
 methods: {
        tableCellClassName({ row, column, rowIndex, columnIndex }) {
            //注意这里是解构
            //利用单元格的 className 的回调方法,给行列索引赋值
            row.index = rowIndex;
            column.index = columnIndex;
        },
        cellClick(row, column, cell, event) {
            console.log(row.index);
            console.log(column.index);
            this.clickedRow = row.index
            this.clickedColumn = column.index
        },
        cellStyle({ row, column, rowIndex, columnIndex }) {
            if (row.index === this.clickedRow && column.index === this.clickedColumn) {
                return 'border:1px solid #2C89E5;color:#2C89E5'
            }else if(columnIndex === 0){
                return 'background:linear-gradient(180deg, rgba(17, 27, 43, 0.8) -106.45%, rgba(41, 48, 66, 0.8) 161.19%);color: #B3C0C9;'
            } else {
                return ''
            }
        }
    },

在这里插入图片描述

`el-table` 是 Element UI 中的一个表格组件,它提供了丰富的功能和自定义选项,包括点击单元格事件处理。如果你想要获取多级表头(即嵌套的表头或树形结构),你需要利用它的 `row-header` 和 `children` 属性,以及 `expand-row-keys` 或者 `tree-props` 来实现展开和折叠的功能。 具体步骤如下: 1. **设置 row-header**: 在 `el-table-column` 中添加 `row-header` 属性,定义每个行的表头内容。例如,对于一级表头: ```html <el-table-column type="index" label="索引"></el-table-column> <el-table-column prop="header1" label="一级表头1" row-header></el-table-column> ``` 2. **管理多级表头**: 如果有多级,可以在每个节点的 `children` 数组中包含子节点。在每个子节点的 `el-table-column` 中也可以添加 `row-header` 属性,表示二级表头: ```html <el-table-column prop="subHeader1" label="二级表头1" row-header></el-table-column> ``` 3. **展开/折叠行**: 使用 `expand-row-keys` 或者 `tree-props` 根据实际数据结构配置展开折叠规则。比如,你可以为每一项数据添加一个 `expanded` 属性来控制是否展开: ```javascript data() { return { tableData: [ { id: '1', header1: '父级1', children: [{ id: '1-1', subHeader1: '子级1' }] }, // ... ], expandRowKeys: [] // 初始不展开任何行 } }, methods: { toggleExpand(row) { this.expandRowKeys = [...this.expandRowKeys, row.id]; // 展开 // this.expandRowKeys.filter(key => key !== row.id); // 收缩 } } ``` 当你在表格中点击一个单元格,可以通过监听 `@row-click` 事件,然后判断当前行是否可展开来进一步操作: ```javascript <template> <el-table :data="tableData" @row-click="handleRowClick"> <!-- 表格列 --> </el-table> </template> <script> export default { methods: { handleRowClick(row) { if (row.children && !row.expanded) { this.toggleExpand(row); } else if (row.expanded) { // 处理收起操作 } } } }; </script> ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值