vxe-table 3.15.27 → 3.15.29
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.
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/index.js +11 -3
- package/es/table/module/filter/mixin.js +20 -8
- package/es/table/src/methods.js +192 -55
- package/es/table/src/table.js +6 -3
- package/es/table/style.css +6 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +6 -0
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +264 -79
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/index.js +10 -3
- package/lib/table/index.min.js +1 -1
- package/lib/table/module/filter/mixin.js +26 -8
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/src/methods.js +218 -61
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +8 -5
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +6 -0
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +6 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/table/index.ts +10 -3
- package/packages/table/module/filter/mixin.ts +27 -12
- package/packages/table/src/methods.ts +196 -57
- package/packages/table/src/table.ts +6 -3
- package/styles/components/table.scss +14 -0
- /package/es/{iconfont.1747094784148.ttf → iconfont.1747286367921.ttf} +0 -0
- /package/es/{iconfont.1747094784148.woff → iconfont.1747286367921.woff} +0 -0
- /package/es/{iconfont.1747094784148.woff2 → iconfont.1747286367921.woff2} +0 -0
- /package/lib/{iconfont.1747094784148.ttf → iconfont.1747286367921.ttf} +0 -0
- /package/lib/{iconfont.1747094784148.woff → iconfont.1747286367921.woff} +0 -0
- /package/lib/{iconfont.1747094784148.woff2 → iconfont.1747286367921.woff2} +0 -0
|
@@ -49,6 +49,7 @@ var _default = exports.default = {
|
|
|
49
49
|
if (column && column.filters) {
|
|
50
50
|
column.filters = (0, _util.toFilters)(options || []);
|
|
51
51
|
if (isUpdate) {
|
|
52
|
+
// 已废弃,即将去掉事件触发 new Event('click') -> null
|
|
52
53
|
return $xeTable.handleColumnConfirmFilter(column, new Event('click'));
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -372,8 +373,18 @@ var _default = exports.default = {
|
|
|
372
373
|
* @param {Event} evnt 事件
|
|
373
374
|
*/
|
|
374
375
|
handleFilterResetFilter(evnt) {
|
|
375
|
-
this
|
|
376
|
-
|
|
376
|
+
const $xeTable = this;
|
|
377
|
+
const reactData = $xeTable;
|
|
378
|
+
const {
|
|
379
|
+
filterStore
|
|
380
|
+
} = reactData;
|
|
381
|
+
$xeTable.handleClearFilter(filterStore.column);
|
|
382
|
+
$xeTable.confirmFilterEvent(evnt);
|
|
383
|
+
if (evnt) {
|
|
384
|
+
$xeTable.dispatchEvent('clear-filter', {
|
|
385
|
+
filterList: []
|
|
386
|
+
}, evnt);
|
|
387
|
+
}
|
|
377
388
|
},
|
|
378
389
|
/**
|
|
379
390
|
* 清空指定列的筛选条件
|
|
@@ -381,17 +392,23 @@ var _default = exports.default = {
|
|
|
381
392
|
* @param {String} fieldOrColumn 列
|
|
382
393
|
*/
|
|
383
394
|
_clearFilter(fieldOrColumn) {
|
|
395
|
+
const $xeTable = this;
|
|
396
|
+
const reactData = $xeTable;
|
|
397
|
+
const internalData = $xeTable;
|
|
384
398
|
const {
|
|
385
399
|
filterStore
|
|
386
|
-
} =
|
|
400
|
+
} = reactData;
|
|
401
|
+
const {
|
|
402
|
+
tableFullColumn
|
|
403
|
+
} = internalData;
|
|
387
404
|
let column;
|
|
388
405
|
if (fieldOrColumn) {
|
|
389
|
-
column = (0, _util.handleFieldOrColumn)(
|
|
406
|
+
column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
|
|
390
407
|
if (column) {
|
|
391
|
-
|
|
408
|
+
$xeTable.handleClearFilter(column);
|
|
392
409
|
}
|
|
393
410
|
} else {
|
|
394
|
-
|
|
411
|
+
tableFullColumn.forEach($xeTable.handleClearFilter);
|
|
395
412
|
}
|
|
396
413
|
if (!fieldOrColumn || column !== filterStore.column) {
|
|
397
414
|
Object.assign(filterStore, {
|
|
@@ -404,12 +421,13 @@ var _default = exports.default = {
|
|
|
404
421
|
visible: false
|
|
405
422
|
});
|
|
406
423
|
}
|
|
407
|
-
return
|
|
424
|
+
return $xeTable.updateData();
|
|
408
425
|
},
|
|
409
426
|
_updateFilterOptionStatus(item, checked) {
|
|
427
|
+
const $xeTable = this;
|
|
410
428
|
item._checked = checked;
|
|
411
429
|
item.checked = checked;
|
|
412
|
-
return
|
|
430
|
+
return $xeTable.$nextTick();
|
|
413
431
|
}
|
|
414
432
|
}
|
|
415
433
|
};
|
|
@@ -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,
|
|
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()}}};
|
package/lib/table/src/methods.js
CHANGED
|
@@ -37,8 +37,11 @@ function eqCellValue(row1, row2, field) {
|
|
|
37
37
|
}
|
|
38
38
|
return _xeUtils.default.isEqual(val1, val2);
|
|
39
39
|
}
|
|
40
|
-
function getNextSortOrder(
|
|
41
|
-
const
|
|
40
|
+
function getNextSortOrder($xeTable, column) {
|
|
41
|
+
const sortOpts = $xeTable.computeSortOpts;
|
|
42
|
+
const {
|
|
43
|
+
orders = []
|
|
44
|
+
} = sortOpts;
|
|
42
45
|
const currOrder = column.order || null;
|
|
43
46
|
const oIndex = orders.indexOf(currOrder) + 1;
|
|
44
47
|
return orders[oIndex < orders.length ? oIndex : 0];
|
|
@@ -2395,8 +2398,66 @@ function removeFooterMerges($xeTable, merges) {
|
|
|
2395
2398
|
}
|
|
2396
2399
|
return rest;
|
|
2397
2400
|
}
|
|
2398
|
-
function
|
|
2399
|
-
|
|
2401
|
+
function handleSortEvent($xeTable, evnt, sortConfs, isUpdate) {
|
|
2402
|
+
const sortOpts = $xeTable.computeSortOpts;
|
|
2403
|
+
const {
|
|
2404
|
+
multiple,
|
|
2405
|
+
remote,
|
|
2406
|
+
orders
|
|
2407
|
+
} = sortOpts;
|
|
2408
|
+
if (!_xeUtils.default.isArray(sortConfs)) {
|
|
2409
|
+
sortConfs = [sortConfs];
|
|
2410
|
+
}
|
|
2411
|
+
if (sortConfs && sortConfs.length) {
|
|
2412
|
+
if (!multiple) {
|
|
2413
|
+
sortConfs = [sortConfs[0]];
|
|
2414
|
+
clearAllSort($xeTable);
|
|
2415
|
+
}
|
|
2416
|
+
let firstColumn = null;
|
|
2417
|
+
sortConfs.forEach((confs, index) => {
|
|
2418
|
+
let {
|
|
2419
|
+
field,
|
|
2420
|
+
order
|
|
2421
|
+
} = confs;
|
|
2422
|
+
let column = field;
|
|
2423
|
+
if (_xeUtils.default.isString(field)) {
|
|
2424
|
+
column = $xeTable.getColumnByField(field);
|
|
2425
|
+
}
|
|
2426
|
+
if (!firstColumn) {
|
|
2427
|
+
firstColumn = column;
|
|
2428
|
+
}
|
|
2429
|
+
if (column && column.sortable) {
|
|
2430
|
+
if (orders && orders.indexOf(order) === -1) {
|
|
2431
|
+
order = getNextSortOrder($xeTable, column);
|
|
2432
|
+
}
|
|
2433
|
+
if (column.order !== order) {
|
|
2434
|
+
column.order = order;
|
|
2435
|
+
}
|
|
2436
|
+
column.sortTime = Date.now() + index;
|
|
2437
|
+
}
|
|
2438
|
+
});
|
|
2439
|
+
if (isUpdate) {
|
|
2440
|
+
if (!remote) {
|
|
2441
|
+
$xeTable.handleTableData(true);
|
|
2442
|
+
}
|
|
2443
|
+
}
|
|
2444
|
+
if (evnt) {
|
|
2445
|
+
$xeTable.handleColumnSortEvent(evnt, firstColumn);
|
|
2446
|
+
}
|
|
2447
|
+
return $xeTable.$nextTick().then(() => {
|
|
2448
|
+
updateRowOffsetTop($xeTable);
|
|
2449
|
+
$xeTable.updateCellAreas();
|
|
2450
|
+
return updateStyle($xeTable);
|
|
2451
|
+
});
|
|
2452
|
+
}
|
|
2453
|
+
return $xeTable.$nextTick();
|
|
2454
|
+
}
|
|
2455
|
+
function clearAllSort($xeTable) {
|
|
2456
|
+
const internalData = $xeTable;
|
|
2457
|
+
const {
|
|
2458
|
+
tableFullColumn
|
|
2459
|
+
} = internalData;
|
|
2460
|
+
tableFullColumn.forEach(column => {
|
|
2400
2461
|
column.order = null;
|
|
2401
2462
|
});
|
|
2402
2463
|
}
|
|
@@ -3761,7 +3822,8 @@ function checkLastSyncScroll($xeTable, isRollX, isRollY) {
|
|
|
3761
3822
|
const internalData = $xeTable;
|
|
3762
3823
|
const {
|
|
3763
3824
|
scrollXLoad,
|
|
3764
|
-
scrollYLoad
|
|
3825
|
+
scrollYLoad,
|
|
3826
|
+
isAllOverflow
|
|
3765
3827
|
} = reactData;
|
|
3766
3828
|
const {
|
|
3767
3829
|
lcsTimeout
|
|
@@ -3779,13 +3841,19 @@ function checkLastSyncScroll($xeTable, isRollX, isRollY) {
|
|
|
3779
3841
|
internalData.inBodyScroll = false;
|
|
3780
3842
|
internalData.inFooterScroll = false;
|
|
3781
3843
|
internalData.scrollRenderType = '';
|
|
3782
|
-
|
|
3844
|
+
if (!isAllOverflow) {
|
|
3845
|
+
calcCellHeight($xeTable);
|
|
3846
|
+
updateRowOffsetTop($xeTable);
|
|
3847
|
+
}
|
|
3783
3848
|
if (isRollX && scrollXLoad) {
|
|
3784
3849
|
$xeTable.updateScrollXData();
|
|
3785
3850
|
}
|
|
3786
3851
|
if (isRollY && scrollYLoad) {
|
|
3787
3852
|
$xeTable.updateScrollYData().then(() => {
|
|
3788
|
-
|
|
3853
|
+
if (!isAllOverflow) {
|
|
3854
|
+
calcCellHeight($xeTable);
|
|
3855
|
+
updateRowOffsetTop($xeTable);
|
|
3856
|
+
}
|
|
3789
3857
|
$xeTable.updateScrollYSpace();
|
|
3790
3858
|
});
|
|
3791
3859
|
}
|
|
@@ -5436,6 +5504,7 @@ const Methods = {
|
|
|
5436
5504
|
}
|
|
5437
5505
|
_xeUtils.default.eachTree([targetColumn], column => {
|
|
5438
5506
|
column.fixed = fixed;
|
|
5507
|
+
column.renderFixed = fixed;
|
|
5439
5508
|
});
|
|
5440
5509
|
$xeTable.saveCustomStore('update:fixed');
|
|
5441
5510
|
if (!status) {
|
|
@@ -5461,6 +5530,7 @@ const Methods = {
|
|
|
5461
5530
|
if (targetColumn && targetColumn.fixed) {
|
|
5462
5531
|
_xeUtils.default.eachTree([targetColumn], column => {
|
|
5463
5532
|
column.fixed = null;
|
|
5533
|
+
column.renderFixed = null;
|
|
5464
5534
|
});
|
|
5465
5535
|
$xeTable.saveCustomStore('update:fixed');
|
|
5466
5536
|
if (!status) {
|
|
@@ -7236,7 +7306,16 @@ const Methods = {
|
|
|
7236
7306
|
}
|
|
7237
7307
|
}
|
|
7238
7308
|
if (tooltipStore.column !== column || tooltipStore.row !== row || !tooltipStore.visible) {
|
|
7239
|
-
|
|
7309
|
+
const ctEl = tdEl.querySelector('.vxe-cell--wrapper');
|
|
7310
|
+
let ovEl = null;
|
|
7311
|
+
let tipEl = tdEl.querySelector(column.type === 'html' ? '.vxe-cell--html' : '.vxe-cell--label');
|
|
7312
|
+
if (column.treeNode) {
|
|
7313
|
+
ovEl = tdEl.querySelector('.vxe-tree-cell');
|
|
7314
|
+
}
|
|
7315
|
+
if (!tipEl) {
|
|
7316
|
+
tipEl = ctEl;
|
|
7317
|
+
}
|
|
7318
|
+
handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tipEl, params);
|
|
7240
7319
|
}
|
|
7241
7320
|
},
|
|
7242
7321
|
/**
|
|
@@ -7254,7 +7333,16 @@ const Methods = {
|
|
|
7254
7333
|
const tdEl = evnt.currentTarget;
|
|
7255
7334
|
handleTargetEnterEvent($xeTable, tooltipStore.column !== column || !!tooltipStore.row);
|
|
7256
7335
|
if (tooltipStore.column !== column || !tooltipStore.visible) {
|
|
7257
|
-
|
|
7336
|
+
const ctEl = tdEl.querySelector('.vxe-cell--wrapper');
|
|
7337
|
+
let ovEl = null;
|
|
7338
|
+
let tipEl = tdEl.querySelector(column.type === 'html' ? '.vxe-cell--html' : '.vxe-cell--label');
|
|
7339
|
+
if (column.type === 'html') {
|
|
7340
|
+
ovEl = tdEl.querySelector('.vxe-cell--html');
|
|
7341
|
+
}
|
|
7342
|
+
if (!tipEl) {
|
|
7343
|
+
tipEl = ctEl;
|
|
7344
|
+
}
|
|
7345
|
+
handleTooltip($xeTable, evnt, tdEl, ovEl || ctEl, tipEl, params);
|
|
7258
7346
|
}
|
|
7259
7347
|
},
|
|
7260
7348
|
openTooltip(target, content) {
|
|
@@ -8622,7 +8710,8 @@ const Methods = {
|
|
|
8622
8710
|
const mouseOpts = $xeTable.computeMouseOpts;
|
|
8623
8711
|
const {
|
|
8624
8712
|
field,
|
|
8625
|
-
sortable
|
|
8713
|
+
sortable,
|
|
8714
|
+
order
|
|
8626
8715
|
} = column;
|
|
8627
8716
|
if (sortable) {
|
|
8628
8717
|
const params = {
|
|
@@ -8631,13 +8720,16 @@ const Methods = {
|
|
|
8631
8720
|
column,
|
|
8632
8721
|
field,
|
|
8633
8722
|
property: field,
|
|
8634
|
-
order
|
|
8723
|
+
order,
|
|
8635
8724
|
sortList: $xeTable.getSortColumns(),
|
|
8636
8725
|
sortTime: column.sortTime
|
|
8637
8726
|
};
|
|
8638
8727
|
if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
|
|
8639
8728
|
$xeTable.handleSortEvent(evnt, params);
|
|
8640
8729
|
}
|
|
8730
|
+
if (!order) {
|
|
8731
|
+
$xeTable.dispatchEvent('clear-sort', params, evnt);
|
|
8732
|
+
}
|
|
8641
8733
|
$xeTable.dispatchEvent('sort-change', params, evnt);
|
|
8642
8734
|
}
|
|
8643
8735
|
},
|
|
@@ -9662,56 +9754,12 @@ const Methods = {
|
|
|
9662
9754
|
},
|
|
9663
9755
|
setSort(sortConfs, isUpdate) {
|
|
9664
9756
|
const $xeTable = this;
|
|
9665
|
-
|
|
9666
|
-
|
|
9667
|
-
|
|
9668
|
-
|
|
9669
|
-
|
|
9670
|
-
|
|
9671
|
-
if (!_xeUtils.default.isArray(sortConfs)) {
|
|
9672
|
-
sortConfs = [sortConfs];
|
|
9673
|
-
}
|
|
9674
|
-
if (sortConfs && sortConfs.length) {
|
|
9675
|
-
if (!multiple) {
|
|
9676
|
-
sortConfs = [sortConfs[0]];
|
|
9677
|
-
clearAllSort($xeTable);
|
|
9678
|
-
}
|
|
9679
|
-
let firstColumn = null;
|
|
9680
|
-
sortConfs.forEach((confs, index) => {
|
|
9681
|
-
let {
|
|
9682
|
-
field,
|
|
9683
|
-
order
|
|
9684
|
-
} = confs;
|
|
9685
|
-
let column = field;
|
|
9686
|
-
if (_xeUtils.default.isString(field)) {
|
|
9687
|
-
column = $xeTable.getColumnByField(field);
|
|
9688
|
-
}
|
|
9689
|
-
if (!firstColumn) {
|
|
9690
|
-
firstColumn = column;
|
|
9691
|
-
}
|
|
9692
|
-
if (column && column.sortable) {
|
|
9693
|
-
if (orders && orders.indexOf(order) === -1) {
|
|
9694
|
-
order = getNextSortOrder($xeTable, column);
|
|
9695
|
-
}
|
|
9696
|
-
if (column.order !== order) {
|
|
9697
|
-
column.order = order;
|
|
9698
|
-
}
|
|
9699
|
-
column.sortTime = Date.now() + index;
|
|
9700
|
-
}
|
|
9701
|
-
});
|
|
9702
|
-
if (isUpdate) {
|
|
9703
|
-
if (!remote) {
|
|
9704
|
-
$xeTable.handleTableData(true);
|
|
9705
|
-
}
|
|
9706
|
-
$xeTable.handleColumnSortEvent(new Event('click'), firstColumn);
|
|
9707
|
-
}
|
|
9708
|
-
return $xeTable.$nextTick().then(() => {
|
|
9709
|
-
updateRowOffsetTop($xeTable);
|
|
9710
|
-
$xeTable.updateCellAreas();
|
|
9711
|
-
return updateStyle($xeTable);
|
|
9712
|
-
});
|
|
9713
|
-
}
|
|
9714
|
-
return $xeTable.$nextTick();
|
|
9757
|
+
// 已废弃,即将去掉事件触发 new Event('click') -> null
|
|
9758
|
+
return handleSortEvent($xeTable, new Event('click'), sortConfs, isUpdate);
|
|
9759
|
+
},
|
|
9760
|
+
setSortByEvent(evnt, sortConfs, isUpdate) {
|
|
9761
|
+
const $xeTable = this;
|
|
9762
|
+
return handleSortEvent($xeTable, evnt, sortConfs, isUpdate);
|
|
9715
9763
|
},
|
|
9716
9764
|
/**
|
|
9717
9765
|
* 清空指定列的排序条件
|
|
@@ -9737,6 +9785,49 @@ const Methods = {
|
|
|
9737
9785
|
return updateStyle($xeTable);
|
|
9738
9786
|
});
|
|
9739
9787
|
},
|
|
9788
|
+
clearSortByEvent(evnt, fieldOrColumn) {
|
|
9789
|
+
const $xeTable = this;
|
|
9790
|
+
const internalData = $xeTable;
|
|
9791
|
+
const {
|
|
9792
|
+
tableFullColumn
|
|
9793
|
+
} = internalData;
|
|
9794
|
+
const sortOpts = $xeTable.computeSortOpts;
|
|
9795
|
+
const sortCols = [];
|
|
9796
|
+
let column = null;
|
|
9797
|
+
if (evnt) {
|
|
9798
|
+
if (fieldOrColumn) {
|
|
9799
|
+
column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
|
|
9800
|
+
if (column) {
|
|
9801
|
+
column.order = null;
|
|
9802
|
+
}
|
|
9803
|
+
} else {
|
|
9804
|
+
tableFullColumn.forEach(column => {
|
|
9805
|
+
if (column.order) {
|
|
9806
|
+
column.order = null;
|
|
9807
|
+
sortCols.push(column);
|
|
9808
|
+
}
|
|
9809
|
+
});
|
|
9810
|
+
}
|
|
9811
|
+
if (!sortOpts.remote) {
|
|
9812
|
+
$xeTable.handleTableData(true);
|
|
9813
|
+
}
|
|
9814
|
+
if (sortCols.length) {
|
|
9815
|
+
const params = {
|
|
9816
|
+
$table: $xeTable,
|
|
9817
|
+
$event: evnt,
|
|
9818
|
+
cols: sortCols,
|
|
9819
|
+
sortList: []
|
|
9820
|
+
};
|
|
9821
|
+
$xeTable.dispatchEvent('clear-all-sort', params, evnt);
|
|
9822
|
+
} else if (column) {
|
|
9823
|
+
$xeTable.handleColumnSortEvent(evnt, column);
|
|
9824
|
+
}
|
|
9825
|
+
}
|
|
9826
|
+
return $xeTable.$nextTick().then(() => {
|
|
9827
|
+
updateRowOffsetTop($xeTable);
|
|
9828
|
+
return updateStyle($xeTable);
|
|
9829
|
+
});
|
|
9830
|
+
},
|
|
9740
9831
|
// 在 v3 中废弃
|
|
9741
9832
|
getSortColumn() {
|
|
9742
9833
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -9777,6 +9868,17 @@ const Methods = {
|
|
|
9777
9868
|
}
|
|
9778
9869
|
return sortList;
|
|
9779
9870
|
},
|
|
9871
|
+
setFilterByEvent(evnt, fieldOrColumn, options, isUpdate) {
|
|
9872
|
+
const $xeTable = this;
|
|
9873
|
+
const column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
|
|
9874
|
+
if (column && column.filters) {
|
|
9875
|
+
column.filters = (0, _util.toFilters)(options || []);
|
|
9876
|
+
if (isUpdate) {
|
|
9877
|
+
return $xeTable.handleColumnConfirmFilter(column, evnt);
|
|
9878
|
+
}
|
|
9879
|
+
}
|
|
9880
|
+
return $xeTable.$nextTick();
|
|
9881
|
+
},
|
|
9780
9882
|
/**
|
|
9781
9883
|
* 关闭筛选
|
|
9782
9884
|
* @param {Event} evnt 事件
|
|
@@ -9821,6 +9923,61 @@ const Methods = {
|
|
|
9821
9923
|
isFilter(fieldOrColumn) {
|
|
9822
9924
|
return this.isActiveFilterByColumn(fieldOrColumn);
|
|
9823
9925
|
},
|
|
9926
|
+
clearFilterByEvent(evnt, fieldOrColumn) {
|
|
9927
|
+
const $xeTable = this;
|
|
9928
|
+
const reactData = $xeTable;
|
|
9929
|
+
const internalData = $xeTable;
|
|
9930
|
+
const {
|
|
9931
|
+
filterStore
|
|
9932
|
+
} = reactData;
|
|
9933
|
+
const {
|
|
9934
|
+
tableFullColumn
|
|
9935
|
+
} = internalData;
|
|
9936
|
+
const filterOpts = $xeTable.computeFilterOpts;
|
|
9937
|
+
const filterCols = [];
|
|
9938
|
+
let column = null;
|
|
9939
|
+
if (fieldOrColumn) {
|
|
9940
|
+
column = (0, _util.handleFieldOrColumn)($xeTable, fieldOrColumn);
|
|
9941
|
+
if (column) {
|
|
9942
|
+
$xeTable.handleClearFilter(column);
|
|
9943
|
+
}
|
|
9944
|
+
} else {
|
|
9945
|
+
tableFullColumn.forEach(column => {
|
|
9946
|
+
if (column.filters) {
|
|
9947
|
+
filterCols.push(column);
|
|
9948
|
+
$xeTable.handleClearFilter(column);
|
|
9949
|
+
}
|
|
9950
|
+
});
|
|
9951
|
+
}
|
|
9952
|
+
if (!fieldOrColumn || column !== filterStore.column) {
|
|
9953
|
+
Object.assign(filterStore, {
|
|
9954
|
+
isAllSelected: false,
|
|
9955
|
+
isIndeterminate: false,
|
|
9956
|
+
style: null,
|
|
9957
|
+
options: [],
|
|
9958
|
+
column: null,
|
|
9959
|
+
multiple: false,
|
|
9960
|
+
visible: false
|
|
9961
|
+
});
|
|
9962
|
+
}
|
|
9963
|
+
if (!filterOpts.remote) {
|
|
9964
|
+
$xeTable.updateData();
|
|
9965
|
+
}
|
|
9966
|
+
if (filterCols.length) {
|
|
9967
|
+
const params = {
|
|
9968
|
+
$table: $xeTable,
|
|
9969
|
+
$event: evnt,
|
|
9970
|
+
cols: filterCols,
|
|
9971
|
+
filterList: []
|
|
9972
|
+
};
|
|
9973
|
+
$xeTable.dispatchEvent('clear-all-filter', params, evnt);
|
|
9974
|
+
} else if (column) {
|
|
9975
|
+
$xeTable.dispatchEvent('clear-filter', {
|
|
9976
|
+
filterList: () => $xeTable.getCheckedFilters()
|
|
9977
|
+
}, evnt);
|
|
9978
|
+
}
|
|
9979
|
+
return $xeTable.$nextTick();
|
|
9980
|
+
},
|
|
9824
9981
|
/**
|
|
9825
9982
|
* 判断展开行是否懒加载完成
|
|
9826
9983
|
* @param {Row} row 行对象
|