el-table-column中渲染的操作怎么区别
时间: 2023-10-24 20:36:29 浏览: 72
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
在 `el-table-column` 中,渲染的操作可以通过 `scoped slot` 或 `formatter` 属性来实现区别。
1. 使用 `scoped slot`:可以通过 `slot-scope` 属性来获取该列的数据,然后在模板中根据数据的不同进行不同的渲染操作。例如:
```html
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="primary" v-if="scope.row.status === '待审核'">审核</el-button>
<el-button type="success" v-else-if="scope.row.status === '已通过'">查看</el-button>
<el-button type="danger" v-else>删除</el-button>
</template>
</el-table-column>
```
在这个示例中,根据 `scope.row` 中的 `status` 属性的不同,使用不同的 `el-button` 进行渲染。
2. 使用 `formatter` 属性:可以传入一个函数,该函数接收当前列的值和当前行数据作为参数,然后根据数据的不同进行不同的渲染操作。例如:
```html
<el-table-column label="状态" prop="status" :formatter="formatStatus"></el-table-column>
```
```javascript
methods: {
formatStatus(row, column, cellValue) {
if (cellValue === '待审核') {
return '<span class="status-pending">待审核</span>';
} else if (cellValue === '已通过') {
return '<span class="status-passed">已通过</span>';
} else {
return '<span class="status-failed">未通过</span>';
}
}
}
```
在这个示例中,根据当前列的值的不同,使用不同的 `span` 标签进行渲染,并且可以自定义不同的样式类来展示不同的状态。
阅读全文