vxe-table 3.15.27 → 3.15.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -372,8 +372,18 @@ var _default = exports.default = {
372
372
  * @param {Event} evnt 事件
373
373
  */
374
374
  handleFilterResetFilter(evnt) {
375
- this.handleClearFilter(this.filterStore.column);
376
- this.confirmFilterEvent(evnt);
375
+ const $xeTable = this;
376
+ const reactData = $xeTable;
377
+ const {
378
+ filterStore
379
+ } = reactData;
380
+ $xeTable.handleClearFilter(filterStore.column);
381
+ $xeTable.confirmFilterEvent(evnt);
382
+ if (evnt) {
383
+ $xeTable.dispatchEvent('clear-filter', {
384
+ filterList: []
385
+ }, evnt);
386
+ }
377
387
  },
378
388
  /**
379
389
  * 清空指定列的筛选条件
@@ -381,17 +391,23 @@ var _default = exports.default = {
381
391
  * @param {String} fieldOrColumn 列
382
392
  */
383
393
  _clearFilter(fieldOrColumn) {
394
+ const $xeTable = this;
395
+ const reactData = $xeTable;
396
+ const internalData = $xeTable;
384
397
  const {
385
398
  filterStore
386
- } = this;
399
+ } = reactData;
400
+ const {
401
+ tableFullColumn
402
+ } = internalData;
387
403
  let column;
388
404
  if (fieldOrColumn) {
389
- column = (0, _util.handleFieldOrColumn)(this, fieldOrColumn);
405
+ column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
390
406
  if (column) {
391
- this.handleClearFilter(column);
407
+ $xeTable.handleClearFilter(column);
392
408
  }
393
409
  } else {
394
- this.visibleColumn.forEach(this.handleClearFilter);
410
+ tableFullColumn.forEach($xeTable.handleClearFilter);
395
411
  }
396
412
  if (!fieldOrColumn || column !== filterStore.column) {
397
413
  Object.assign(filterStore, {
@@ -404,12 +420,13 @@ var _default = exports.default = {
404
420
  visible: false
405
421
  });
406
422
  }
407
- return this.updateData();
423
+ return $xeTable.updateData();
408
424
  },
409
425
  _updateFilterOptionStatus(item, checked) {
426
+ const $xeTable = this;
410
427
  item._checked = checked;
411
428
  item.checked = checked;
412
- return this.$nextTick();
429
+ return $xeTable.$nextTick();
413
430
  }
414
431
  }
415
432
  };
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderer=_ui.VxeUI.renderer;var _default=exports.default={methods:{_openFilter(e){let i=(0,_util.handleFieldOrColumn)(this,e);if(i&&i.filters){let t=this.elemStore,l=i.fixed;return this.scrollToColumn(i).then(()=>{var e=t[`${l||"main"}-header-wrapper`]||t["main-header-wrapper"];e&&(e=e.querySelector(`.vxe-header--column.${i.id} .vxe-cell--filter`),(0,_dom.triggerEvent)(e,"click"))})}return this.$nextTick()},_setFilter(e,t,l){e=(0,_util.handleFieldOrColumn)(this,e);return e&&e.filters&&(e.filters=(0,_util.toFilters)(t||[]),l)?this.handleColumnConfirmFilter(e,new Event("click")):this.$nextTick()},checkFilterOptions(){var e=this.filterStore;e.isAllSelected=e.options.every(e=>e._checked),e.isIndeterminate=!e.isAllSelected&&e.options.some(e=>e._checked)},triggerFilterEvent(l,r,n){let F=this;var s=F,o=F;let e=this.filterStore;if(e.column===r&&e.visible)e.visible=!1;else{let{initStore:e,filterStore:p}=s,t=o.elemStore;if(p.column===r&&p.visible)p.visible=!1;else{let a=F.$refs.refElem,{scrollTop:h,scrollLeft:c,visibleHeight:u,visibleWidth:d}=(0,_dom.getDomNode)();let f=F.computeFilterOpts.transfer,m=a.getBoundingClientRect(),v=l.currentTarget;var{filters:s,filterMultiple:_,filterRender:g}=r,g=(0,_utils.isEnableConf)(g)?renderer.get(g.name):null;let i=r.filterRecoverMethod||(g?g.tableFilterRecoverMethod||g.filterRecoverMethod:null);o._currFilterParams=n,Object.assign(p,{multiple:_,options:s,column:r,style:null}),p.options.forEach(e=>{var{_checked:t,checked:l}=e;(e._checked=l)||t===l||i&&i({option:e,column:r,$table:F})}),this.checkFilterOptions(),p.visible=!0,e.filter=!0,F.$nextTick(()=>{if((0,_util.getRefElem)(t["main-header-scroll"])){var i=F.$refs.refTableFilter,i=i?i.$el:null;if(i){var r=v.getBoundingClientRect(),n=i.querySelector(".vxe-table--filter-header"),s=i.querySelector(".vxe-table--filter-footer"),i=i.offsetWidth,o=i/2;let e=0,t=0,l=0;f?(e=r.left-o+c,t=r.top+v.clientHeight+h,l=Math.min(Math.max(m.height,Math.floor(u/2)),Math.max(80,u-t-(n?n.clientHeight:0)-(s?s.clientHeight:0)-28)),e<16?e=16:e>d-i-16&&(e=d-i-16)):(e=r.left-m.left-o,t=r.top-m.top+v.clientHeight,l=Math.max(40,a.clientHeight-t-(n?n.clientHeight:0)-(s?s.clientHeight:0)-14),e<1?e=1:e>a.clientWidth-i-1&&(e=a.clientWidth-i-1)),p.style={top:(0,_dom.toCssUnit)(t),left:(0,_dom.toCssUnit)(e)},p.maxHeight=l}}})}F.dispatchEvent("filter-visible",{column:r,field:r.field,property:r.field,filterList:F.getCheckedFilters(),visible:p.visible},l)}},handleFilterConfirmFilter(e){var t=this.filterStore;t.options.forEach(e=>{e.checked=e._checked}),this.confirmFilterEvent(e)},_saveFilterPanel(){return this.handleFilterConfirmFilter(null),this.$nextTick()},_saveFilterPanelByEvent(e){return this.handleFilterConfirmFilter(e),this.$nextTick()},_resetFilterPanel(){return this.handleFilterResetFilter(null),this.$nextTick()},_resetFilterPanelByEvent(e){return this.handleFilterResetFilter(e),this.$nextTick()},_getCheckedFilters(){var e=this.tableFullColumn;let n=[];return e.forEach(e=>{var{field:t,filters:l}=e;let i=[],r=[];l&&l.length&&(l.forEach(e=>{e.checked&&(i.push(e.value),r.push(e.data))}),i.length)&&n.push({column:e,field:t,property:t,values:i,datas:r})}),n},handleColumnConfirmFilter(e,t){let l=this;var i=l.mouseConfig;let{scrollXLoad:r,scrollYLoad:n}=l;var s=l.computeFilterOpts,o=l.computeMouseOpts,a=e.field;let h=[],c=[];e.filters.forEach(e=>{e.checked&&(h.push(e.value),c.push(e.data))});var u=this.getCheckedFilters(),e={$table:this,$event:t,column:e,field:a,property:a,values:h,datas:c,filters:u,filterList:u};return s.remote||(this.handleTableData(!0),this.checkSelectionStatus()),i&&o.area&&this.handleFilterEvent&&l.handleFilterEvent(t,e),t&&l.emitEvent("filter-change",e,t),l.closeFilter(),l.updateFooter().then(()=>{var{scrollXLoad:e,scrollYLoad:t}=this;if(r||e||n||t)return(r||e)&&l.updateScrollXSpace(),(n||t)&&l.updateScrollYSpace(),l.refreshScroll()}).then(()=>(l.updateCellAreas(),l.recalculate(!0))).then(()=>{setTimeout(()=>l.recalculate(),50)})},confirmFilterEvent(e){var t=this.filterStore,t=t.column;this.handleColumnConfirmFilter(t,e)},handleClearFilter(e){if(e){var{filters:l,filterRender:i}=e;if(l){i=(0,_utils.isEnableConf)(i)?renderer.get(i.name):null;let t=e.filterResetMethod||(i?i.tableFilterResetMethod||i.filterResetMethod:null);l.forEach(e=>{e._checked=!1,e.checked=!1,t||(e.data=_xeUtils.default.clone(e.resetValue,!0))}),t&&t({options:l,column:e,$table:this})}}},handleFilterResetFilter(e){this.handleClearFilter(this.filterStore.column),this.confirmFilterEvent(e)},_clearFilter(e){var t=this.filterStore;let l;return e?(l=(0,_util.handleFieldOrColumn)(this,e))&&this.handleClearFilter(l):this.visibleColumn.forEach(this.handleClearFilter),e&&l===t.column||Object.assign(t,{isAllSelected:!1,isIndeterminate:!1,style:null,options:[],column:null,multiple:!1,visible:!1}),this.updateData()},_updateFilterOptionStatus(e,t){return e._checked=t,e.checked=t,this.$nextTick()}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderer=_ui.VxeUI.renderer;var _default=exports.default={methods:{_openFilter(e){let i=(0,_util.handleFieldOrColumn)(this,e);if(i&&i.filters){let t=this.elemStore,l=i.fixed;return this.scrollToColumn(i).then(()=>{var e=t[`${l||"main"}-header-wrapper`]||t["main-header-wrapper"];e&&(e=e.querySelector(`.vxe-header--column.${i.id} .vxe-cell--filter`),(0,_dom.triggerEvent)(e,"click"))})}return this.$nextTick()},_setFilter(e,t,l){e=(0,_util.handleFieldOrColumn)(this,e);return e&&e.filters&&(e.filters=(0,_util.toFilters)(t||[]),l)?this.handleColumnConfirmFilter(e,new Event("click")):this.$nextTick()},checkFilterOptions(){var e=this.filterStore;e.isAllSelected=e.options.every(e=>e._checked),e.isIndeterminate=!e.isAllSelected&&e.options.some(e=>e._checked)},triggerFilterEvent(l,r,n){let F=this;var s=F,a=F;let e=this.filterStore;if(e.column===r&&e.visible)e.visible=!1;else{let{initStore:e,filterStore:p}=s,t=a.elemStore;if(p.column===r&&p.visible)p.visible=!1;else{let o=F.$refs.refElem,{scrollTop:h,scrollLeft:c,visibleHeight:u,visibleWidth:d}=(0,_dom.getDomNode)();let f=F.computeFilterOpts.transfer,m=o.getBoundingClientRect(),v=l.currentTarget;var{filters:s,filterMultiple:_,filterRender:g}=r,g=(0,_utils.isEnableConf)(g)?renderer.get(g.name):null;let i=r.filterRecoverMethod||(g?g.tableFilterRecoverMethod||g.filterRecoverMethod:null);a._currFilterParams=n,Object.assign(p,{multiple:_,options:s,column:r,style:null}),p.options.forEach(e=>{var{_checked:t,checked:l}=e;(e._checked=l)||t===l||i&&i({option:e,column:r,$table:F})}),this.checkFilterOptions(),p.visible=!0,e.filter=!0,F.$nextTick(()=>{if((0,_util.getRefElem)(t["main-header-scroll"])){var i=F.$refs.refTableFilter,i=i?i.$el:null;if(i){var r=v.getBoundingClientRect(),n=i.querySelector(".vxe-table--filter-header"),s=i.querySelector(".vxe-table--filter-footer"),i=i.offsetWidth,a=i/2;let e=0,t=0,l=0;f?(e=r.left-a+c,t=r.top+v.clientHeight+h,l=Math.min(Math.max(m.height,Math.floor(u/2)),Math.max(80,u-t-(n?n.clientHeight:0)-(s?s.clientHeight:0)-28)),e<16?e=16:e>d-i-16&&(e=d-i-16)):(e=r.left-m.left-a,t=r.top-m.top+v.clientHeight,l=Math.max(40,o.clientHeight-t-(n?n.clientHeight:0)-(s?s.clientHeight:0)-14),e<1?e=1:e>o.clientWidth-i-1&&(e=o.clientWidth-i-1)),p.style={top:(0,_dom.toCssUnit)(t),left:(0,_dom.toCssUnit)(e)},p.maxHeight=l}}})}F.dispatchEvent("filter-visible",{column:r,field:r.field,property:r.field,filterList:F.getCheckedFilters(),visible:p.visible},l)}},handleFilterConfirmFilter(e){var t=this.filterStore;t.options.forEach(e=>{e.checked=e._checked}),this.confirmFilterEvent(e)},_saveFilterPanel(){return this.handleFilterConfirmFilter(null),this.$nextTick()},_saveFilterPanelByEvent(e){return this.handleFilterConfirmFilter(e),this.$nextTick()},_resetFilterPanel(){return this.handleFilterResetFilter(null),this.$nextTick()},_resetFilterPanelByEvent(e){return this.handleFilterResetFilter(e),this.$nextTick()},_getCheckedFilters(){var e=this.tableFullColumn;let n=[];return e.forEach(e=>{var{field:t,filters:l}=e;let i=[],r=[];l&&l.length&&(l.forEach(e=>{e.checked&&(i.push(e.value),r.push(e.data))}),i.length)&&n.push({column:e,field:t,property:t,values:i,datas:r})}),n},handleColumnConfirmFilter(e,t){let l=this;var i=l.mouseConfig;let{scrollXLoad:r,scrollYLoad:n}=l;var s=l.computeFilterOpts,a=l.computeMouseOpts,o=e.field;let h=[],c=[];e.filters.forEach(e=>{e.checked&&(h.push(e.value),c.push(e.data))});var u=this.getCheckedFilters(),e={$table:this,$event:t,column:e,field:o,property:o,values:h,datas:c,filters:u,filterList:u};return s.remote||(this.handleTableData(!0),this.checkSelectionStatus()),i&&a.area&&this.handleFilterEvent&&l.handleFilterEvent(t,e),t&&l.emitEvent("filter-change",e,t),l.closeFilter(),l.updateFooter().then(()=>{var{scrollXLoad:e,scrollYLoad:t}=this;if(r||e||n||t)return(r||e)&&l.updateScrollXSpace(),(n||t)&&l.updateScrollYSpace(),l.refreshScroll()}).then(()=>(l.updateCellAreas(),l.recalculate(!0))).then(()=>{setTimeout(()=>l.recalculate(),50)})},confirmFilterEvent(e){var t=this.filterStore,t=t.column;this.handleColumnConfirmFilter(t,e)},handleClearFilter(e){if(e){var{filters:l,filterRender:i}=e;if(l){i=(0,_utils.isEnableConf)(i)?renderer.get(i.name):null;let t=e.filterResetMethod||(i?i.tableFilterResetMethod||i.filterResetMethod:null);l.forEach(e=>{e._checked=!1,e.checked=!1,t||(e.data=_xeUtils.default.clone(e.resetValue,!0))}),t&&t({options:l,column:e,$table:this})}}},handleFilterResetFilter(e){var t=this.filterStore;this.handleClearFilter(t.column),this.confirmFilterEvent(e),e&&this.dispatchEvent("clear-filter",{filterList:[]},e)},_clearFilter(e){var t=this,l=t.filterStore,i=t.tableFullColumn;let r;return e?(r=(0,_util.handleFieldOrColumn)(t,e))&&t.handleClearFilter(r):i.forEach(t.handleClearFilter),e&&r===l.column||Object.assign(l,{isAllSelected:!1,isIndeterminate:!1,style:null,options:[],column:null,multiple:!1,visible:!1}),t.updateData()},_updateFilterOptionStatus(e,t){return e._checked=t,e.checked=t,this.$nextTick()}}};
@@ -7236,7 +7236,12 @@ const Methods = {
7236
7236
  }
7237
7237
  }
7238
7238
  if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
7239
- handleTooltip($xeTable, evnt, tdEl, tdEl.querySelector('.vxe-cell--wrapper'), tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
7239
+ const ctEl = tdEl.querySelector('.vxe-cell--wrapper');
7240
+ let ovEl = null;
7241
+ if (column.treeNode) {
7242
+ ovEl = tdEl.querySelector('.vxe-tree-cell');
7243
+ }
7244
+ handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tdEl.querySelector('.vxe-cell--label') || tdEl.querySelector('.vxe-cell--wrapper'), params);
7240
7245
  }
7241
7246
  },
7242
7247
  /**
@@ -8622,7 +8627,8 @@ const Methods = {
8622
8627
  const mouseOpts = $xeTable.computeMouseOpts;
8623
8628
  const {
8624
8629
  field,
8625
- sortable
8630
+ sortable,
8631
+ order
8626
8632
  } = column;
8627
8633
  if (sortable) {
8628
8634
  const params = {
@@ -8631,13 +8637,16 @@ const Methods = {
8631
8637
  column,
8632
8638
  field,
8633
8639
  property: field,
8634
- order: column.order,
8640
+ order,
8635
8641
  sortList: $xeTable.getSortColumns(),
8636
8642
  sortTime: column.sortTime
8637
8643
  };
8638
8644
  if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
8639
8645
  $xeTable.handleSortEvent(evnt, params);
8640
8646
  }
8647
+ if (!order) {
8648
+ $xeTable.dispatchEvent('clear-sort', params, evnt);
8649
+ }
8641
8650
  $xeTable.dispatchEvent('sort-change', params, evnt);
8642
8651
  }
8643
8652
  },
@@ -9737,6 +9746,49 @@ const Methods = {
9737
9746
  return updateStyle($xeTable);
9738
9747
  });
9739
9748
  },
9749
+ clearSortByEvent(evnt, fieldOrColumn) {
9750
+ const $xeTable = this;
9751
+ const internalData = $xeTable;
9752
+ const {
9753
+ tableFullColumn
9754
+ } = internalData;
9755
+ const sortOpts = $xeTable.computeSortOpts;
9756
+ const sortCols = [];
9757
+ let column = null;
9758
+ if (evnt) {
9759
+ if (fieldOrColumn) {
9760
+ column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
9761
+ if (column) {
9762
+ column.order = null;
9763
+ }
9764
+ } else {
9765
+ tableFullColumn.forEach(column => {
9766
+ if (column.order) {
9767
+ column.order = null;
9768
+ sortCols.push(column);
9769
+ }
9770
+ });
9771
+ }
9772
+ if (!sortOpts.remote) {
9773
+ $xeTable.handleTableData(true);
9774
+ }
9775
+ if (sortCols.length) {
9776
+ const params = {
9777
+ $table: $xeTable,
9778
+ $event: evnt,
9779
+ cols: sortCols,
9780
+ sortList: []
9781
+ };
9782
+ $xeTable.dispatchEvent('clear-all-sort', params, evnt);
9783
+ } else if (column) {
9784
+ $xeTable.handleColumnSortEvent(evnt, column);
9785
+ }
9786
+ }
9787
+ return $xeTable.$nextTick().then(() => {
9788
+ updateRowOffsetTop($xeTable);
9789
+ return updateStyle($xeTable);
9790
+ });
9791
+ },
9740
9792
  // 在 v3 中废弃
9741
9793
  getSortColumn() {
9742
9794
  if (process.env.NODE_ENV === 'development') {
@@ -9821,6 +9873,61 @@ const Methods = {
9821
9873
  isFilter(fieldOrColumn) {
9822
9874
  return this.isActiveFilterByColumn(fieldOrColumn);
9823
9875
  },
9876
+ clearFilterByEvent(evnt, fieldOrColumn) {
9877
+ const $xeTable = this;
9878
+ const reactData = $xeTable;
9879
+ const internalData = $xeTable;
9880
+ const {
9881
+ filterStore
9882
+ } = reactData;
9883
+ const {
9884
+ tableFullColumn
9885
+ } = internalData;
9886
+ const filterOpts = $xeTable.computeFilterOpts;
9887
+ const filterCols = [];
9888
+ let column = null;
9889
+ if (fieldOrColumn) {
9890
+ column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
9891
+ if (column) {
9892
+ $xeTable.handleClearFilter(column);
9893
+ }
9894
+ } else {
9895
+ tableFullColumn.forEach(column => {
9896
+ if (column.filters) {
9897
+ filterCols.push(column);
9898
+ $xeTable.handleClearFilter(column);
9899
+ }
9900
+ });
9901
+ }
9902
+ if (!fieldOrColumn || column !== filterStore.column) {
9903
+ Object.assign(filterStore, {
9904
+ isAllSelected: false,
9905
+ isIndeterminate: false,
9906
+ style: null,
9907
+ options: [],
9908
+ column: null,
9909
+ multiple: false,
9910
+ visible: false
9911
+ });
9912
+ }
9913
+ if (!filterOpts.remote) {
9914
+ $xeTable.updateData();
9915
+ }
9916
+ if (filterCols.length) {
9917
+ const params = {
9918
+ $table: $xeTable,
9919
+ $event: evnt,
9920
+ cols: filterCols,
9921
+ filterList: []
9922
+ };
9923
+ $xeTable.dispatchEvent('clear-all-filter', params, evnt);
9924
+ } else if (column) {
9925
+ $xeTable.dispatchEvent('clear-filter', {
9926
+ filterList: () => $xeTable.getCheckedFilters()
9927
+ }, evnt);
9928
+ }
9929
+ return $xeTable.$nextTick();
9930
+ },
9824
9931
  /**
9825
9932
  * 判断展开行是否懒加载完成
9826
9933
  * @param {Row} row 行对象