一、想要实现的效果,
单元格溢出显示省略号,鼠标移入显示全部(如下图)
1、功能实现:
溢出显示省略号,鼠标移入出现悬浮框,这两个功能其实很容易实现,antdv已经有现成属性 ellipsis 。
{
title: '申请人',
dataIndex: 'applicant_cn',
key: 'applicant_cn',
ellipsis: true,
},
2、 出现的问题:
(1)当后端的数据和页面展示数据保持一致时,不会有问题;
(2)当数据需要经过计算或者转换再进行展示时,需要用到scopedSlots 这个属性,
例如:申请日期需要转换成 年-月-日 的格式
{
title: '申请日期',
dataIndex: 'apply_day',
key: 'apply_day',
ellipsis: true,
scopedSlots: { customRender: 'apply_day' },
},
<a-table :columns="tmColumns" :data-source="similarNameData" >
<span slot="apply_day" slot-scope="text, record">
<span>
{{$moment((record.apply_day)*1000).format('YYYY-MM-DD')}}
</span>
</span>
</a-table>
此时的鼠标移入悬浮框就不出现了…
二、思路
1、 a-tooltip 组件
使用 a-tooltip 组件,自己实现一个悬浮框。代码如下,可以解决问题,
但是有个问题,样式和组件自带的样式不同,如果想要都保持一致,就要把表格中所有属性都要按如下格式写一遍,比较麻烦。
<span slot="applicant_cn" slot-scope="text, record">
<a-tooltip placement="topLeft">
<template slot="title">
<span>{{record.applicant_cn}}</span>
</template>
{{record.applicant_cn}}
</a-tooltip>
</span>
2、 title属性
发现可以正常显示悬浮框的单元格,比不显示的多一个title属性,
<span slot="apply_day" slot-scope="text, record">
<span :title="$moment((record.apply_day)*1000).format('YYYY-MM-DD')">
{{$moment((record.apply_day)*1000).format('YYYY-MM-DD')}}
</span>
</span>
加上title,问题就解决了。