在 Element UI Table 的官网上,有一个“筛选”功能,里面可以利用 slot-scope,给表格记录打标签。
关键代码为:
<template slot-scope="scope">
<el-tag
:type="scope.row.tag === '家' ? 'primary' : 'success'"
disable-transitions>{{scope.row.tag}}</el-tag>
</template>
- 这里首先利用 slot-scope 属性(Vue 2.6.0 已废弃)将子组件的数据(row.tag)传递给了父组件。
- 利用三元表达式为
<el-tag>
标签设定样式。
实践过程中,发现这个三元表达式没法应用。因为实际业务场景,记录类型肯定不止两个啊!
这时,就该条件渲染指令出场了:
<el-tag v-if="scope.row.state === '已完成'" :type="'success'"
disable-transitions>{{scope.row.state}}
</el-tag>
<el-tag v-else-if="scope.row.state === '未开始'" :type="'danger'"
disable-transitions>{{scope.row.state}}
</el-tag>
<el-tag v-else-if="scope.row.state === '进行中'" :type="'warning'"
disable-transitions>{{scope.row.state}}
</el-tag>
运行结果:
官网只是基本用法,真正实践还是要靠积累与总结哦O(∩_∩)O哈哈~