UNPKG

vxe-table

Version:

一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、模态窗口、自定义模板、渲染器、贼灵活的配置项、扩展接口等...

1 lines 4.74 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _ctor=_interopRequireDefault(require("xe-utils/ctor")),_conf=_interopRequireDefault(require("../../conf")),_size=_interopRequireDefault(require("../../mixins/size")),_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}function updateTipStyle(e){var t=e.$el,i=e.tipTarget,o=e.tipStore,n=_tools.DomTools.getDomNode(),s=n.scrollTop,r=n.scrollLeft,l=n.visibleWidth,a=_tools.DomTools.getAbsolutePos(i),u=a.top,c=a.left,h=t.offsetHeight,p=t.offsetWidth,f=c,d=u-h-6;r+l<(f=Math.max(6,c+Math.floor((i.offsetWidth-p)/2)))+p+6&&(f=r+l-p-6),u-h<s+6&&(o.placement="bottom",d=u+i.offsetHeight+6),o.style.top="".concat(d,"px"),o.style.left="".concat(f,"px"),o.arrowStyle.left="".concat(c-f+i.offsetWidth/2,"px")}var _default2={name:"VxeTooltip",mixins:[_size.default],props:{value:Boolean,size:{type:String,default:function(){return _conf.default.tooltip.size||_conf.default.size}},trigger:{type:String,default:function(){return _conf.default.tooltip.trigger}},theme:{type:String,default:function(){return _conf.default.tooltip.theme}},content:[String,Number],zIndex:[String,Number],isArrow:{type:Boolean,default:!0},enterable:Boolean,leaveDelay:{type:Number,default:_conf.default.tooltip.leaveDelay},leaveMethod:Function},data:function(){return{isUpdate:!1,isHover:!1,visible:!1,message:"",tipTarget:null,tipZindex:0,tipStore:{style:{},placement:"",arrowStyle:null}}},watch:{content:function(e){this.message=e},value:function(e){this.isUpdate||this[e?"open":"close"](),this.isUpdate=!1}},mounted:function(){var i,o=this.$el,e=this.trigger,t=this.content,n=this.value,s=o.parentNode;this.message=t,this.tipZindex=_tools.UtilTools.nextZIndex(),_ctor.default.arrayEach(o.children,function(e,t){1<t&&(s.insertBefore(e,o),i||(i=e))}),s.removeChild(o),(this.target=i)&&("hover"===e?(i.onmouseleave=this.targetMouseleaveEvent,i.onmouseenter=this.targetMouseenterEvent):"click"===e&&(i.onclick=this.clickEvent)),n&&this.open()},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,n=this.theme,s=this.message,r=this.isHover,l=this.isArrow,a=this.visible,u=this.tipStore,c=this.enterable;return c&&(i={mouseenter:this.wrapperMouseenterEvent,mouseleave:this.wrapperMouseleaveEvent}),e("div",{class:["vxe-table--tooltip-wrapper","theme--".concat(n),"placement--".concat(u.placement),(t={},_defineProperty(t,"size--".concat(o),o),_defineProperty(t,"is--enterable",c),_defineProperty(t,"is--visible",a),_defineProperty(t,"is--arrow",l),_defineProperty(t,"is--hover",r),t)],style:u.style,ref:"tipWrapper",on:i},[e("div",{class:"vxe-table--tooltip-content"},this.$slots.content||s),e("div",{class:"vxe-table--tooltip-arrow",style:u.arrowStyle})].concat(this.$slots.default))},methods:{open:function(e,t){return this.toVisible(e||this.target,t)},close:function(){return this.tipTarget=null,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(e,t){if(this.targetActive=!0,e){var i=this.$el,o=this.tipStore,n=this.zIndex;return i.parentNode||document.body.appendChild(i),t&&(this.message=t),this.tipTarget=e,this.update(!0),this.updateZindex(),o.placement="top",o.style={width:"auto",left:0,top:0,zIndex:n||this.tipZindex},o.arrowStyle={left:"50%"},this.updatePlacement()}return this.$nextTick()},updatePlacement:function(){var t=this;return this.$nextTick().then(function(){var e=t.$el;if(t.tipTarget&&e)return updateTipStyle(t),t.$nextTick().then(function(){return updateTipStyle(t)})})},clickEvent:function(){this[this.visible?"close":"open"]()},targetMouseenterEvent:function(){this.open()},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.leaveMethod,o=this.trigger,n=this.enterable,s=this.leaveDelay;this.isHover=!1,i&&!1===i({$event:e})||n&&"hover"===o&&setTimeout(function(){t.targetActive||t.close()},s)}}};exports.default=_default2;