想根据data中tableKey的值动态自定义渲染表格中列的内容, 不同的列生成不同的内容, 包含不同的HTML标签 , 不知道怎么弄,例如下面怎么使表格中的性别值从1,0替换成中文汉字的男女, 并加上标签el-tag, 代码如下:
<div id="app">
<el-table :data="items" border>
<el-table-column v-for="(item,key) in tableKey"
:key="key"
:prop="item.value"
:label="item.label" v-if="!item.tp">
</el-table-column>
<el-table-column :key="key" :prop="item.value" :label="item.label" v-else>
<template slot-scope="scope" :render="item.render(scope.row)">
</template>
</el-table-column>
</el-table>
</div>
<script>
new Vue({
el: "#app",
data:{
items: [{ name: "steven", age: 36, sex: 1},
{name: "xixi", age: 5, sex: 0}
],
visible : false,
value1: '',
tableKey: [
{ label: "名字", value: "name", tp: false },
{ label: "年龄", value: "age", tp: false },
{ label: "性别", value: "sex", tp: true,
render: (h, parms) => {
return h('el-tag', {
props: {
type: 'success',
size: 'mini',
},
}, parms.row.status === 1 ? '男' : '女')
},
},
],
},
})
</script>
没查到template有render这个属性,这个渲染函数应该不能直接在模板中使用吧
如果是不同的列显示不同的内容的话,可以使用动态组件
实现效果:
