antdv中table组件 scopedSlots 和 ellipsis 属性一起使用,悬浮框失效问题

一、想要实现的效果,

单元格溢出显示省略号,鼠标移入显示全部(如下图)
在这里插入图片描述

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,问题就解决了。


版权声明:本文为qq_42067121原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。