12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // 长度溢出显示ToolTip 请绑定的标签元素包裹住 element-plus的el-tooltip。
- /**
- * binding.value 为长度溢出的元素的css选择器,没有请设置
- */
- import { ElMessage } from 'element-plus'
- let mainElement
- let tooltipNode
- export const overflowTooltip={
- created(el,binding,vnode) {
- try {
- let {value} = binding
- tooltipNode = vnode.children.find((childrenCmpt) => childrenCmpt.component?.type.name == 'ElTooltip')
- setTimeout(()=>{
- mainElement = el.querySelector(value)
- if(!mainElement){
- throw new Error('找不到指定css选择器的元素')
- }
- if(mainElement?.scrollWidth > mainElement?.clientWidth){
- // 超出
- tooltipNode.component.props.disabled=false
- }else{
- tooltipNode.component.props.disabled=true
- }
- },0)
- if(!value){
- throw new Error('请设置长度溢出的元素的css选择器')
- }
- // console.log(tooltipNode);
- if(!tooltipNode){
- throw new Error('找不到el-tooltip组件')
- }
- } catch (error) {
- ElMessage.error(error.message)
- // console.log(error.message);
- }
- },
- updated() {
- if(mainElement?.scrollWidth > mainElement?.clientWidth){
- // 超出
- tooltipNode.component.props.disabled=false
- }else{
- tooltipNode.component.props.disabled=true
- }
- },
- }
|