el-table-column 的 show-overflow-tooltip属性

在 Element UI 框架中,el-table-column 属性 show-overflow-tooltip 意思是:当内容过长被隐藏时显示 tooltip(默认值为 false)。但是有时候会出现一些莫名其妙的BUG,比如,和 el-form 配合使用时,鼠标碰上去会显示报错的信息而不是内容的信息,还有一些很奇葩的显示。所以本文给大家带来一个替代方案...

 

解决方案:el-tooltip + filter + ellipsis
下面举例一个伪代码(此场景是对el-table可进行编辑单元格),思路看懂了就行,用的也是此框架中的另一个组件——“el-tooltip”。

HTML

 1 <el-table-column>
 2   <template slot-scope="scope">
 3     <el-tooltip effect="dark" :content="scope.row.customparamName" :disabled="scope.row.customparamName | ellipsis" placement="top">
 4       <div>
 5         <span v-if="scope.row.isRead" class="ellipsis diyname-ellipsis-width">{{ scope.row.customparamName }}</span>
 6         <el-form-item v-else :prop="'table.' + scope.$index + '.customparamName'" :rules="rules.customparamName">
 7           <el-input class="edit-input" v-model="scope.row.customparamName" placeholder="输入自定义名称" />
 8         </el-form-item>
 9       </div>
10     </el-tooltip>
11   </template>
12 </el-table-column>

Ps:注意这里 el-tooltip 子节点里只能有一个节点,多个的话会出BUG。

Style

 1 .diyname-ellipsis-width {
 2 display: inline-block;
 3 width: 118px;
 4 }
 5 
 6 .ellipsis {
 7 overflow: hidden;
 8 white-space: nowrap;
 9 text-overflow: ellipsis;
10 }

JS

 1 filters: {
 2   ellipsis (value) {
 3     // console.log('ellipsis value:'+ value)
 4     let width = getTextWidth(value)
 5     // console.log(width)
 6     if (width > 110) {
 7       return false
 8     }
 9     return true
10   }
11 }

 

————————————————
版权声明:本文为CSDN博主「Lux_Sun」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Dream_Weave/java/article/details/99687469

posted @ 2020-04-22 14:32  流水乄心  阅读(7467)  评论(0编辑  收藏  举报