vxe-table-demonic
Version:
一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...
1 lines • 5.08 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vXETable=require("../../v-x-e-table"),_util=require("../../table/src/util"),_dom=require("../../tools/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,l=1,r=arguments.length;l<r;l++)for(var i in t=arguments[l])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},tableFilterMethodKeys=["setFilter","clearFilter","getCheckedFilters"],tableFilterHook={setupTable:function(s){var d=s.props,_=s.reactData,a=s.internalData,e=s.getRefMaps(),b=e.refTableBody,g=e.refTableFilter,e=s.getComputeMaps(),h=e.computeFilterOpts,p=e.computeMouseOpts,n={checkFilterOptions:function(){var e=_.filterStore;e.isAllSelected=e.options.every(function(e){return e._checked}),e.isIndeterminate=!e.isAllSelected&&e.options.some(function(e){return e._checked})},triggerFilterEvent:function(e,d,t){var h,p,v,l,r,i,n,o=_.initStore,m=_.filterStore;m.column===d&&m.visible?m.visible=!1:(h=e.target,p=e.pageX,v=(0,_dom.getDomNode)().visibleWidth,l=d.filters,r=d.filterMultiple,i=(i=d.filterRender)?_vXETable.VXETable.renderer.get(i.name):null,n=d.filterRecoverMethod||(i?i.filterRecoverMethod:null),a._currFilterParams=t,Object.assign(m,{multiple:r,options:l,column:d,style:null}),m.options.forEach(function(e){var t=e._checked,l=e.checked;(e._checked=l)||t===l||n&&n({option:e,column:d,$table:s})}),this.checkFilterOptions(),m.visible=!0,o.filter=!0,(0,_vue.nextTick)(function(){var e,t,l,r=b.value.$el,i=g.value,i=i?i.$el:null,n=0,o=0,a=null,u=null,i=(i&&(n=i.offsetWidth,o=i.offsetHeight,a=i.querySelector(".vxe-table--filter-header"),u=i.querySelector(".vxe-table--filter-footer")),n/2),f=r.clientWidth-n-10,c={top:"".concat(h.offsetTop+h.offsetParent.offsetTop+h.offsetHeight+8,"px")},s=null;o>=r.clientHeight&&(s=Math.max(60,r.clientHeight-(u?u.offsetHeight:0)-(a?a.offsetHeight:0))),"left"===d.fixed?e=h.offsetLeft+h.offsetParent.offsetLeft-i:"right"===d.fixed?t=h.offsetParent.offsetWidth-h.offsetLeft+(h.offsetParent.offsetParent.offsetWidth-h.offsetParent.offsetLeft)-d.renderWidth-i:e=h.offsetLeft+h.offsetParent.offsetLeft-i-r.scrollLeft,e?(0<(l=p+n-i+10-v)&&(e-=l),c.left="".concat(Math.min(f,Math.max(10,e)),"px")):t&&(0<(l=p+n-i+10-v)&&(t+=l),c.right="".concat(Math.max(10,t),"px")),m.style=c,m.maxHeight=s})),s.dispatchEvent("filter-visible",{column:d,field:d.field,property:d.field,filterList:s.getCheckedFilters(),visible:m.visible},e)},handleClearFilter:function(e){var t,l,r;e&&(t=e.filters,l=e.filterRender,t)&&(l=l?_vXETable.VXETable.renderer.get(l.name):null,r=e.filterResetMethod||(l?l.filterResetMethod:null),t.forEach(function(e){e._checked=!1,e.checked=!1,r||(e.data=_xeUtils.default.clone(e.resetValue,!0))}),r)&&r({options:t,column:e,$table:s})},confirmFilterEvent:function(e){var t=d.mouseConfig,l=_.filterStore,r=_.scrollXLoad,i=_.scrollYLoad,n=h.value,o=p.value,l=l.column,a=l.field,u=[],f=[],c=(l.filters.forEach(function(e){e.checked&&(u.push(e.value),f.push(e.data))}),s.getCheckedFilters()),l={$table:s,$event:e,column:l,field:a,property:a,values:u,datas:f,filters:c,filterList:c};n.remote||(s.handleTableData(!0),s.checkSelectionStatus()),t&&o.area&&s.handleFilterEvent&&s.handleFilterEvent(e,l),s.dispatchEvent("filter-change",l,e),s.closeFilter(),s.updateFooter().then(function(){var e=_.scrollXLoad,t=_.scrollYLoad;if(r||e||i||t)return(r||e)&&s.updateScrollXSpace(),(i||t)&&s.updateScrollYSpace(),s.refreshScroll()}).then(function(){return s.updateCellAreas(),s.recalculate(!0)}).then(function(){setTimeout(function(){return s.recalculate()},50)})}};return __assign(__assign({},{openFilter:function(e){var t,l,r=(0,_util.handleFieldOrColumn)(s,e);return r&&r.filters?(t=a.elemStore,l=r.fixed,s.scrollToColumn(r).then(function(){var e=t["".concat(l||"main","-header-wrapper")]||t["main-header-wrapper"],e=e?e.value:null;e&&(e=e.querySelector(".vxe-header--column.".concat(r.id," .vxe-filter--btn")),(0,_dom.triggerEvent)(e,"click"))})):(0,_vue.nextTick)()},setFilter:function(e,t){e=(0,_util.handleFieldOrColumn)(s,e);return e&&e.filters&&(e.filters=(0,_util.toFilters)(t||[])),(0,_vue.nextTick)()},clearFilter:function(e){var t,l=_.filterStore,r=a.tableFullColumn,i=h.value;return e?(t=(0,_util.handleFieldOrColumn)(s,e))&&n.handleClearFilter(t):r.forEach(n.handleClearFilter),e&&t===l.column||Object.assign(l,{isAllSelected:!1,isIndeterminate:!1,style:null,options:[],column:null,multiple:!1,visible:!1}),i.remote?(0,_vue.nextTick)():s.updateData()},getCheckedFilters:function(){var e=a.tableFullColumn,n=[];return e.forEach(function(e){var t=e.field,l=e.filters,r=[],i=[];l&&l.length&&(l.forEach(function(e){e.checked&&(r.push(e.value),i.push(e.data))}),r.length)&&n.push({column:e,field:t,property:t,values:r,datas:i})}),n}}),n)},setupGrid:function(e){return e.extendTableMethods(tableFilterMethodKeys)}},_default=tableFilterHook;exports.default=_default;