我们知道iview的table封装的太好,如果只是展示数据简直不要太简单,但是比如合并单元格就很麻烦,而我要做的是在table中添加图片
建议大家先看一下这个:https://www.iviewui.com/components/table#column
我们要用的是render函数,因为我用了很多表格,所以我把表头的加载封装了一下,大家也可以试用一下
首先是从数据库中读出来的表头title和key数组(单独写一张表)
这里先看一下我调用后台接口收到的数据类型:
是一个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的虚拟目录,当然也可以使用使用本地文件目录。
这样只要后台传过来的文件路径没问题就能展示出来图片,但是要注意一下图片的大小。