在 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