vue-element-admin项目表格单元格多行文字单独做省略并文字提示组件

本文介绍了如何在vue-element-admin项目中解决element表格使用el-tooltip时,无论文字是否省略都显示提示的问题。通过创建TextTips.vue组件,并在需要的页面引入和使用,实现了仅在文字省略时才显示提示的功能。

针对element表格使用el-tooltip时不管文字是否省略都会提示的解决

首先创建TextTips.vue文件,直接上代码:

<template>
  <!-- 文字提示 -->
  <div class="TextTips">
    <el-tooltip placement="top" v-if="TextWidth > TotalWidth">
      <div slot="content">
        <span>{{TextTitle}}</span>
      </div>
      <div class="ellipsis">
        <p>{{TextTitle}}</p>
      </div>
    </el-tooltip>
    <span v-else>{{TextTitle}}</span>
  </div>
</template>

<script>
export default {
  name:"TextTips",
  props:{
    Text:{
      type: String || Number,
      default: '',
    }
  },
  watch:{
    Text:{
      handler(val){
        this.TextTitle = val
      },
      immediate: true,
    }
  },
  data(){
    return{
      TextTitle:"",
      TotalWidth: null,
      TextWidth: null,
    }
  },
  mounted(){
    let TextTipsWidth = document.querySelector('.TextTips')
    this.TotalWidth = TextTipsWidth.offsetWidth; //盒子的总长度
    // 获取文字的实际长度(直接在页面写标签无法读取到准确文字所占宽度)
    let DomText = document.createElement('span');
    DomText.style.display = 'inline-block'
    DomText.style.visibility = 'hidden';
    DomText.textContent = this.TextTitle;
    document.body.appendChild(DomText);
    // console.log(DomText.clientWidth)
    this.TextWidth = DomText.clientWidth; // 文字的实际长度
    document.body.removeChild(DomText);
  },
}
</script>

<style lang="scss" scoped>
.TextTips{
  width: 100%;
  .ellipsis{
    p{
      margin: 0;
      width: 99%;
      overflow: hidden;
      text-overflow:ellipsis;
      white-space: nowrap;
    }
  }
}
</style>

完事之后在要使用的页面引入

import TextTips from '@/pageCommon/TextTips.vue' // 文字提示组件;
components: {
    TextTips
  },

在需要用到的地方这么用:

<text-tips :Text="`采购方:${scope.row.buying_name}`"></text-tips>

最后看效果图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值