iview在table中某一列添加图片

我们知道iview的table封装的太好,如果只是展示数据简直不要太简单,但是比如合并单元格就很麻烦,而我要做的是在table中添加图片
建议大家先看一下这个:https://www.iviewui.com/components/table#column
我们要用的是render函数,因为我用了很多表格,所以我把表头的加载封装了一下,大家也可以试用一下
首先是从数据库中读出来的表头title和key数组(单独写一张表)
iview在table中某一列添加图片_第1张图片
这里先看一下我调用后台接口收到的数据类型:
iview在table中某一列添加图片_第2张图片
是一个List集合,可以看到属性名和前面得到的key数组是包含的关系,这样我们在表头封装的时候就能合理控制哪些需要展示,不展示的直接在数据库中修改状态值
好了,下面是表头封装的函数:

function showCol(title,key){
    var col = new Array()
    // 字段名
    for(var i=0;i<title.length;i++){
        var json
        if(key[i]=="fileUrl"){
            json = {
                title : title[i],
                key : key[i],
                align: 'center',
                render:(h,params)=>{
                    return h('img',{
                        attrs:{
                            src: params.row.fileUrl, style: 'width: 100px;border-radius: 2px;'
                        },
                    })
                }
            }
        }else{
            json = {
                title : title[i],
                key : key[i],
                align: 'center',
            }
        }
        col.push(json)
    }
    return col
}

根据传进来的表头数组逻辑判断哪一列需要利用render函数进行渲染,在这里一般需要配置一下Tomcat的虚拟目录,当然也可以使用使用本地文件目录。
这样只要后台传过来的文件路径没问题就能展示出来图片,但是要注意一下图片的大小。

你可能感兴趣的:(Vue)