问题描述
项目中使用的是And Design Vue
组件库,表格使用的是a-table
组件。需求提出鼠标移入表头的时候,表头内容要悬浮展示。在API找了半天也没有找到相关设置的API,于是决定自己手动实现。
此表格为例: 操作栏设置的是右固定
且每行数据可选
解决方案:
为每一个
th
设置title属性,但是代码中没有th
标签,
我们只能手动去获取DOM
元素th
,只需要给每个th
标签添加title
属性即可。
mounted() {
// 当我们打印 domList 时会发现它的长度为8
// 可table只有6个标头,在加上可选框才7个
// 因为我们设置`操作栏`为右固定,所以就多了个重复的`操作栏`
const domList = document.querySelectorAll('.ant-table-thead th')
console.log(domList)
// domList是一个类数组,先把它转为数组
const newThead = [...domList]
// 删除数组第一项'可选框'
newThead.shift()
// 删除数组最后一项重复的`操作栏`
newThead.pop()
// 为剩下的每一个th设置title属性
// this.columns是table的配置项
newThead.forEach((item,idx)=>{
item.setAttribute('title',this.columns[idx].title)
})
},
效果如下
最后也是如愿的实现了我们的需求!!!