element-ui table formatter 为html

需求

状态类的展示字体颜色要有变化,比如成功绿色,失败红色等。

之前用table,数据只要格式化就行,全部用的formatter。懒人不想大改,想试试有没有法子可以formathtml呢?官网的例子都是格式化数字字符串等,只返回一个简单类型,没有返回html的。想着反正vue支持 [jsx]语法,干脆试一下:

                {
                    label: "状态",
                    prop: "status",
                    formatter: (row, column, cellValue, index) => {
                        const value =
                            cellValue &&
                            ["待支付", "处理中", "已完成"][cellValue];
                        const stateClass = ["status_error","status_warning","status_success"][
                            cellValue
                        ];
                        return <span class={stateClass}>{value}</span>;
                    },
                }

居然成功了,哈哈哈哈,太开心了。

想搜一下有没有其他的方法,结果大部分都是data formatv-html并行,并没有上面的 jsx方便。

后面想试一下formattertemplate的效果,发现他俩一起使用不生效。

  <el-table-column
                v-for="item in columns"
                :key="item.prop"
                :label="item.label"
                :prop="item.prop"
                :width="item.width"
                :formatter="item.formatter"
            >
                <template slot-scope="scope">
                    <span
                        v-html="scope.row.status"
                        v-if="item.prop === 'status'"
                    >
                    </span>
                    <span v-else> {{ scope.row[item.prop] }} </span>
                </template>
            </el-table-column>

scope.row.status 取的是原始值!!!

总结
  • element-ui table formatter支持jsx语法,可以格式化为html
  • formattertemplate 一起使用不生效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土豆片片

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值