mirror of
https://gitee.com/xuliangzhan_admin/vxe-table.git
synced 2026-01-21 05:27:57 +08:00
1 line
4.6 KiB
JavaScript
1 line
4.6 KiB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils/methods/xe-utils")),_conf=_interopRequireDefault(require("../../conf")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var _default2={name:"VxeTooltip",props:{value:Boolean,size:String,trigger:{type:String,default:function(){return _conf.default.tooltip.trigger}},theme:{type:String,default:function(){return _conf.default.tooltip.theme}},content:[String,Function],zIndex:[String,Number],isArrow:{type:Boolean,default:!0},enterable:Boolean,leaveDelay:{type:Number,default:_conf.default.tooltip.leaveDelay}},data:function(){return{isUpdate:!1,isHover:!1,visible:!1,message:"",tipZindex:0,tipStore:{style:{},placement:"",arrowStyle:null}}},computed:{vSize:function(){return this.size||this.$parent.size||this.$parent.vSize}},watch:{content:function(e){this.message=e},value:function(e){this.isUpdate||this[e?"show":"close"](),this.isUpdate=!1}},mounted:function(){var i,o=this.$el,e=this.trigger,t=this.content,s=this.value,n=o.parentNode;this.message=t,this.tipZindex=_tools.UtilTools.nextZIndex(),_xeUtils.default.arrayEach(o.children,function(e,t){1<t&&(n.insertBefore(e,o),i||(i=e))}),n.removeChild(o),(this.target=i)&&("hover"===e?(i.onmouseleave=this.targetMouseleaveEvent,i.onmouseenter=this.targetMouseenterEvent):"click"===e&&(i.onclick=this.clickEvent)),s&&this.show()},beforeDestroy:function(){var e=this.$el,t=this.target,i=this.trigger,o=e.parentNode;o&&o.removeChild(e),t&&("hover"===i?(t.onmouseenter=null,t.onmouseleave=null):"click"===i&&(t.onclick=null))},render:function(e){var t,i,o=this.vSize,s=this.theme,n=this.message,r=this.isHover,l=this.isArrow,a=this.visible,c=this.tipStore,u=this.enterable;return u&&(i={mouseenter:this.wrapperMouseenterEvent,mouseleave:this.wrapperMouseleaveEvent}),e("div",{class:["vxe-table--tooltip-wrapper","theme--".concat(s),"placement--".concat(c.placement),(t={},_defineProperty(t,"size--".concat(o),o),_defineProperty(t,"is--enterable",u),_defineProperty(t,"is--visible",a),_defineProperty(t,"is--arrow",l),_defineProperty(t,"is--hover",r),t)],style:c.style,ref:"tipWrapper",on:i},[e("div",{class:"vxe-table--tooltip-content"},this.$slots.content||n),e("div",{class:"vxe-table--tooltip-arrow",style:c.arrowStyle})].concat(this.$slots.default))},methods:{show:function(){return this.toVisible(this.target)},close:function(){return Object.assign(this.tipStore,{style:{},placement:"",arrowStyle:null}),this.update(!1),this.$nextTick()},update:function(e){e!==this.visible&&(this.visible=e,this.isUpdate=!0,this.$listeners.input&&this.$emit("input",this.visible))},updateZindex:function(){this.tipZindex<_tools.UtilTools.getLastZIndex()&&(this.tipZindex=_tools.UtilTools.nextZIndex())},toVisible:function(o,e){var s=this;if(this.targetActive=!0,o){var n=this.$el,r=this.tipStore,l=this.zIndex,t=_tools.DomTools.getAbsolutePos(o),a=t.top,c=t.left,i=_tools.DomTools.getDomNode(),u=i.scrollTop,h=i.scrollLeft,p=i.visibleWidth,f=n.parentNode,d=c;return r.placement="top",r.style={width:"auto"},r.arrowStyle={left:"50%"},f||document.body.appendChild(n),e&&(this.message=e),this.update(!0),this.updateZindex(),this.$nextTick().then(function(){var e=n;if(e){var t=e.clientHeight,i=_xeUtils.default.toNumber(getComputedStyle(e).width);return d=c+Math.floor((o.offsetWidth-i)/2),r.style={zIndex:l||s.tipZindex,width:"".concat(i,"px"),top:"".concat(a-t-6,"px"),left:"".concat(d,"px")},s.$nextTick()}}).then(function(){var e=n;if(e){var t=e.clientHeight,i=e.clientWidth;Object.assign(r.style,{top:"".concat(a-t-6,"px"),left:"".concat(d,"px")}),a-t<u+6&&(r.placement="bottom",r.style.top="".concat(a+o.offsetHeight+6,"px")),d<h+6?(d=h+6,r.arrowStyle.left="".concat(d+16<c?c-d+16:16,"px"),r.style.left="".concat(d,"px")):h+p<d+i&&(d=h+p-i-6,r.arrowStyle.left="".concat(i-Math.max(Math.floor((d+i-c)/2),22),"px"),r.style.left="".concat(d,"px"))}})}return this.$nextTick()},clickEvent:function(){this[this.visible?"close":"show"]()},targetMouseenterEvent:function(){this.show()},targetMouseleaveEvent:function(){var e=this,t=this.trigger,i=this.enterable,o=this.leaveDelay;this.targetActive=!1,i&&"hover"===t?setTimeout(function(){e.isHover||e.close()},o):this.close()},wrapperMouseenterEvent:function(){this.isHover=!0},wrapperMouseleaveEvent:function(e){var t=this,i=this.$listeners,o=this.trigger,s=this.enterable,n=this.leaveDelay;this.isHover=!1,i.leave?this.$emit("leave",e):s&&"hover"===o&&setTimeout(function(){t.targetActive||t.close()},n)}}};exports.default=_default2; |