Vue 给el-table的某一行添加样式

背景

最近在遇到一个需求:一个列表,每一条数据都有一个status状态,只有status完成,才能点击展开expand,否则不能出现expand

在这里插入图片描述
详见示例:https://codepen.io/shunzizhan/pen/YbMOwK

代码实现

可以通过指定 Table 组件的 row-class-name 属性来为 Table 中的某一行添加 class,表明该行处于某种状态。

设置拥有该样式的行,expand为display:none

.not-finish .el-table__expand-column .cell{
   display: none;
}

给行添加样式

<el-table
    :data="tableData"
    :row-class-name="tableRowClassName"
    style="width: 100%">
    ...
</el-table>

调用行回调,结合对应的状态,给行添加样式

tableRowClassName({ row }) {
  if (row.status !== 0) {
    return 'not-finish';
  }
  return '';
},

参考文件

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现点击el-table中的某一行后改变该行的颜色,你可以使用Vue的事件处理和样式绑定。 首先,你需要为el-table的每一行添加一个点击事件处理方法。在该方法中,你可以改变该行的颜色。可以在每一行的template中添加@click事件监听器,例如: ```html <el-table v-for="item in tableData" :key="item.id" :data="tableData"> <el-table-column prop="name" label="Name"></el-table-column> <el-table-column prop="age" label="Age"></el-table-column> <!-- 其他列 --> <el-table-column label="操作"> <template slot-scope="scope"> <el-button @click="changeRowColor(scope.row)">改变颜色</el-button> </template> </el-table-column> </el-table> ``` 然后,在Vue实例中定义changeRowColor方法来改变行的颜色。你可以使用一个data属性来记录当前选中的行的索引或其他标识符,然后在样式绑定中根据该属性来设置行的颜色。例如: ```javascript data() { return { tableData: [...], // 表格数据 selectedRowIndex: -1 // 记录选中的行索引,默认为-1 }; }, methods: { changeRowColor(row) { this.selectedRowIndex = row.$index; // 记录选中的行索引 } } ``` 最后,在el-table的行模板中使用样式绑定来根据选中的行索引来设置行的颜色。例如: ```html <el-table-row :style="{'background-color': selectedRowIndex === $index ? 'red' : ''}" > <!-- 行内容 --> </el-table-row> ``` 这样,当你点击"改变颜色"按钮时,对应行的背景色将会变为红色。你可以根据需要自行调整样式和更新逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值