Element ui 动态展示表格列,动态格式化表格列的值

需求

后台配置前端展示的表格列,遇到比如  文件大小这样的值,如果后台存的是纯数字,需要进行格式化展示,并且能控制显示的小数位数,再比如,部分列值需要加单位等信息,此外还有状态类,以及特殊值显示的需求等等。效果如下。

动态列

<el-table-column  v-for="item in dynamicTable" v-bind="{[item.newName.length > 3 || item.oldColumnName=='ztm' || item.oldColumnName=='zrz' || item.oldColumnName=='dh' ? 'width': 'nowidth']:item.oldColumnName=='ztm'|| item.oldColumnName=='zrz'? '250':item.oldColumnName=='dh'?'150':item.newName.length>3?'110':'' }"  :label="item.newName" :prop="item.oldColumnName" :key="item.id" @formatter="formatterValue">
                            <template slot-scope="scope">
                                <div v-if="item.oldColumnName=='ztm'" style="text-align: left" v-html="dealZtm(scope.row)"></div>
                                <div v-else>
                                    <div v-if="item.formatHtml" v-html="formatterValue(scope.row[item.oldColumnName],item.formatHtml)"></div>
                                    <div v-else>{{ scope.row[item.oldColumnName] }}</div>
                                </div>
                            </template>
                        </el-table-column>

动态值方法

formatterValue(v,htmlString) {
            try {
                const func = new Function('v', htmlString);
                const result = func(v);
                return `${result}`;
            } catch (error) {
                return v;
            }
        },

后台存放的值

if(v==="mp4"){return "视频";}else if(v==="mp3"){return "音频";}else{return v;}


if(v!=''){return parseFloat(v/1024/1024).toFixed(6)+'MB';}else{return v;}

if(v!=''){return v+'(秒)';}else{return v;}

注:建议采用密文保存,在解密,防止恶意攻击注入

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ElementUI表格动态是指在表格中可以根据数据动态生成。这种功能可以让表格更加灵活,可以根据不同的数据展示不同的,提高表格的可读性和可用性。在ElementUI中,可以通过设置表格的columns属性为一个数组,数组中的每个元素代表一个,可以根据需要动态添加或删除。同时,还可以通过设置表格的data属性为一个数组,数组中的每个元素代表一行数据,可以根据数据的不同动态生成。 ### 回答2: ElementUIVue.js的一个UI组件库,其中有一个表格组件Table,支持动态动态指的是,在渲染表格时,可以根据需要动态添加、删除、修改动态使用起来十分简便,只需要在定义(Column Definition)中指定v-if或v-show绑定的为true/false,就可以在表格动态控制的显示和隐藏。例如: <el-table :data="tableData"> <el-table-column label="姓名" prop="name"></el-table-column> <el-table-column label="性别" prop="gender"></el-table-column> <el-table-column label="年龄" prop="age" v-if="showAge"></el-table-column> </el-table> 在上面的代码中,tableData是表格数据源,name、gender、age是数据源中的字段,可以通过prop属性指定在表格中显示。在第三中,使用v-if绑定showAge变量,当showAge的为true时,表格中会显示“年龄”这一;当showAge的为false时,表格中不会显示“年龄”这一。 showAge可以在组件的data中初始化为false,然后在需要显示“年龄”这一的时候,通过this.showAge = true来改变它的,即可动态添加该。 类似的,如果需要删除某一,只需要将绑定改为false即可,例如this.showAge = false。如果需要动态修改,可以通过v-bind绑定属性来实现。 总的来说,ElementUITable组件支持动态非常方便,使用起来简单易懂,可以方便地满足各种业务需求。 ### 回答3: elementui table是一种基于Vue.js的组件,它可以在页面上轻松地创建和管理数据表格动态指的是在elementui table中可以根据数据源动态地生成表格。这项功能在需要手动添加和删除或者在多个表格之间切换视图时非常有用。 要创建一个动态elementui table,首先需要将数据源传递给该组件。数据源是一个数组,其中每个元素都表示一个数据行,每个元素的属性名对应着表格中的名。例如: ``` [ { name: 'John', age: 30, gender: 'Male' }, { name: 'Jane', age: 25, gender: 'Female' }, { name: 'Bob', age: 40, gender: 'Male' } ] ``` 在elementui table中,可以使用v-for指令遍历数据源数组来动态生成表格的每一行。要动态生成表格,可以使用遍历数据源数组的方式来自动生成表头和表格内容。这样可以确保表格中的和数据源数组中的属性一一对应,即使数据源的属性发生了变化也不会影响表格的显示。 在使用v-for指令时,可以使用Vue.js的计算属性computed和watch监听数据源数组的变化,以便在数据源发生变化时动态重新生成表格。这可以确保表格和数据源的属性一直保持同步,而不需要手动添加或删除。 除了动态的功能外,elementui table还提供了许多其他功能,如分页,排序,过滤和可编辑表格等。这使得elementui table成为使用Vue.js构建数据驱动应用程序的极佳选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值