el-table中超出显示省略号,hover显示所有(两种情况实现)

1,805 阅读1分钟

el-table中超出显示省略号,hover显示所有,可分为两种情况:单元格内为固定文本/插值表达式{{xxx}}和el-input输入框

情况1、单元格内为固定文本/插值表达式{{xxx}}——show-overflow-tooltip

show-overflow-tooltip加在el-table-column上,实现超出部分三点显示,hover显示所有,增强页面美观性

 <el-table-column prop="cooperateStatus" label="状态" min-width="110" align="center" show-overflow-tooltip>
    <template slot-scope="scope">
      <span v-if="scope.row.cooperateStatus == 4">合作中123456789</span>
      <span v-if="scope.row.cooperateStatus == 5">暂停合作123456789</span>
      <span v-if="scope.row.cooperateStatus == 6">终止合作123456789</span>
    </template>
 </el-table-column>
`注意`:如果要使用show-overflow-tooltip,并且要用`<template>`标签,`<template>`标签里面嵌套`<span>标签`才能生效

image.png

情况2、单元格内为el-input输入框——el-popover 或 :title

当单元格内嵌套el-input输入框时,show-overflow-tooltip不生效,此时需要考虑其他方案。element组件库提供了el-popover和el-tooltip,效果如下:
el-tooltip:

<el-table-column label="请求数据" width="300px">
    <template slot-scope="scope">
        <el-tooltip class="item" effect="light" :content="scope.row.reqData" placement="top-start">
          <el-input v-model="scope.row.reqData"></el-input>
        </el-tooltip>
    </template>
</el-table-column>

el-popover:

 <el-table-column label="返回数据" width="300px">
     <template slot-scope="scope">
         <el-popover width="250" placement="top-start" trigger="hover" :content="scope.row.respData">
           <el-input v-model="scope.row.reqData"></el-input>
         </el-popover>
     </template>
 </el-table-column>

image.png

注意: 用以上两种方法虽然可以实现嵌套el-input效果,但是当文本框内为空时,鼠标放入时也会有个空黑框,测试跳起来说能不能超出文本框再提示啊?!终极大法:在el-input中写入 :title属性;效果为超出文本框在文字右下方hover白框提示

 <el-table-column prop="cooperateStatus" label="状态" min-width="110" align="center" show-overflow-tooltip>
    <template slot-scope="scope">
      <el-input v-model="scope.row.state :title="scope.row.state"></el-input>
    </template>
 </el-table-column>

类似bi站的这个效果

QQ图片20221226093755.jpg