在Vue中用el-tabel写一个点击第一列打开页面,第一列高亮显示
时间: 2024-03-17 07:45:23 浏览: 96
你可以通过以下步骤来实现:
1. 在表格数据中添加一个属性用于记录第一列是否被点击
2. 在el-table组件中添加一个slot插槽,用于自定义第一列的内容,并且绑定点击事件
3. 在点击事件中修改表格数据中第一列的状态,同时将当前行的数据传递给父组件
4. 在el-table-column中通过v-bind:class绑定class,根据第一列的状态来决定是否高亮显示
以下是示例代码:
```html
<template>
<el-table :data="tableData" style="width: 100%">
<el-table-column type="index" width="50"></el-table-column>
<el-table-column label="姓名" width="180">
<template slot-scope="scope">
<div class="name" @click="handleClick(scope.row)">
{{ scope.row.name }}
</div>
</template>
</el-table-column>
<el-table-column label="年龄" prop="age" width="180"></el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [
{ name: '张三', age: 18, clicked: false },
{ name: '李四', age: 22, clicked: false },
{ name: '王五', age: 30, clicked: false }
]
}
},
methods: {
handleClick(row) {
// 修改表格数据中第一列的状态
this.tableData.forEach(item => {
item.clicked = false
})
row.clicked = true
// 将当前行的数据传递给父组件
this.$emit('row-click', row)
}
}
}
</script>
<style>
.name.clicked {
color: red;
}
</style>
```
在父组件中可以通过监听row-click事件来获取当前行的数据,并且根据数据中clicked属性的值来决定是否高亮显示第一列。
阅读全文