vxe-table 3.15.0 → 3.15.2
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/module/filter/mixin.js +31 -6
- package/es/table/module/filter/panel.js +173 -142
- package/es/table/src/methods.js +38 -13
- package/es/table/src/table.js +1 -0
- package/es/table/src/util.js +2 -1
- package/es/table/style.css +18 -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 +18 -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 +237 -145
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/filter/mixin.js +34 -5
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/module/filter/panel.js +153 -122
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/src/methods.js +43 -13
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +1 -0
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +2 -1
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +18 -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 +18 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/module/filter/mixin.ts +28 -6
- package/packages/table/module/filter/panel.ts +178 -143
- package/packages/table/src/methods.ts +38 -13
- package/packages/table/src/table.ts +1 -0
- package/packages/table/src/util.ts +2 -1
- package/styles/components/table-module/filter.scss +16 -0
- package/styles/components/table.scss +6 -1
- /package/es/{iconfont.1744252945243.ttf → iconfont.1744428010256.ttf} +0 -0
- /package/es/{iconfont.1744252945243.woff → iconfont.1744428010256.woff} +0 -0
- /package/es/{iconfont.1744252945243.woff2 → iconfont.1744428010256.woff2} +0 -0
- /package/lib/{iconfont.1744252945243.ttf → iconfont.1744428010256.ttf} +0 -0
- /package/lib/{iconfont.1744252945243.woff → iconfont.1744428010256.woff} +0 -0
- /package/lib/{iconfont.1744252945243.woff2 → iconfont.1744428010256.woff2} +0 -0
package/lib/index.umd.js
CHANGED
|
@@ -2220,7 +2220,7 @@ function getClass(property, params) {
|
|
|
2220
2220
|
;// CONCATENATED MODULE: ./packages/ui/index.ts
|
|
2221
2221
|
|
|
2222
2222
|
|
|
2223
|
-
const version = "3.15.
|
|
2223
|
+
const version = "3.15.2";
|
|
2224
2224
|
core_.VxeUI.version = version;
|
|
2225
2225
|
core_.VxeUI.tableVersion = version;
|
|
2226
2226
|
core_.VxeUI.setConfig({
|
|
@@ -2843,7 +2843,7 @@ function isNodeElement(elem) {
|
|
|
2843
2843
|
const {
|
|
2844
2844
|
log: log_log
|
|
2845
2845
|
} = core_.VxeUI;
|
|
2846
|
-
const log_version = `table v${"3.15.
|
|
2846
|
+
const log_version = `table v${"3.15.2"}`;
|
|
2847
2847
|
const warnLog = log_log.create('warn', log_version);
|
|
2848
2848
|
const errLog = log_log.create('error', log_version);
|
|
2849
2849
|
;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
|
|
@@ -3357,7 +3357,8 @@ function getColReMinWidth(params) {
|
|
|
3357
3357
|
const lineOffsetSizes = {
|
|
3358
3358
|
mini: 3,
|
|
3359
3359
|
small: 2,
|
|
3360
|
-
medium: 1
|
|
3360
|
+
medium: 1,
|
|
3361
|
+
large: 0
|
|
3361
3362
|
};
|
|
3362
3363
|
function countTreeExpand(prevRow, params) {
|
|
3363
3364
|
let count = 1;
|
|
@@ -8475,7 +8476,11 @@ const Methods = {
|
|
|
8475
8476
|
handleReserveStatus($xeTable);
|
|
8476
8477
|
$xeTable.checkSelectionStatus();
|
|
8477
8478
|
return new Promise(resolve => {
|
|
8478
|
-
this.$nextTick().then(() => $xeTable
|
|
8479
|
+
this.$nextTick().then(() => handleRecalculateLayout($xeTable, false)).then(() => {
|
|
8480
|
+
calcCellHeight($xeTable);
|
|
8481
|
+
updateRowOffsetTop($xeTable);
|
|
8482
|
+
return handleRecalculateLayout($xeTable, false);
|
|
8483
|
+
}).then(() => {
|
|
8479
8484
|
let targetScrollLeft = lastScrollLeft;
|
|
8480
8485
|
let targetScrollTop = lastScrollTop;
|
|
8481
8486
|
const virtualXOpts = $xeTable.computeVirtualXOpts;
|
|
@@ -8488,8 +8493,7 @@ const Methods = {
|
|
|
8488
8493
|
targetScrollTop = 0;
|
|
8489
8494
|
}
|
|
8490
8495
|
reactData.isRowLoading = false;
|
|
8491
|
-
|
|
8492
|
-
updateRowOffsetTop($xeTable);
|
|
8496
|
+
handleRecalculateLayout($xeTable, false);
|
|
8493
8497
|
// 是否变更虚拟滚动
|
|
8494
8498
|
if (oldScrollYLoad === sYLoad) {
|
|
8495
8499
|
restoreScrollLocation($xeTable, targetScrollLeft, targetScrollTop).then(() => {
|
|
@@ -12644,6 +12648,12 @@ const Methods = {
|
|
|
12644
12648
|
const {
|
|
12645
12649
|
column: newValue
|
|
12646
12650
|
} = params;
|
|
12651
|
+
const {
|
|
12652
|
+
trigger
|
|
12653
|
+
} = currentColumnOpts;
|
|
12654
|
+
if (trigger === 'manual') {
|
|
12655
|
+
return;
|
|
12656
|
+
}
|
|
12647
12657
|
const isChange = oldValue !== newValue;
|
|
12648
12658
|
if (!beforeRowMethod || beforeRowMethod({
|
|
12649
12659
|
column: newValue,
|
|
@@ -12673,6 +12683,12 @@ const Methods = {
|
|
|
12673
12683
|
const {
|
|
12674
12684
|
row: newValue
|
|
12675
12685
|
} = params;
|
|
12686
|
+
const {
|
|
12687
|
+
trigger
|
|
12688
|
+
} = currentRowOpts;
|
|
12689
|
+
if (trigger === 'manual') {
|
|
12690
|
+
return;
|
|
12691
|
+
}
|
|
12676
12692
|
const isChange = oldValue !== newValue;
|
|
12677
12693
|
if (!beforeRowMethod || beforeRowMethod({
|
|
12678
12694
|
row: newValue,
|
|
@@ -14253,12 +14269,10 @@ const Methods = {
|
|
|
14253
14269
|
column,
|
|
14254
14270
|
visible
|
|
14255
14271
|
} = filterStore;
|
|
14256
|
-
|
|
14257
|
-
|
|
14258
|
-
|
|
14259
|
-
|
|
14260
|
-
visible: false
|
|
14261
|
-
});
|
|
14272
|
+
filterStore.isAllSelected = false;
|
|
14273
|
+
filterStore.isIndeterminate = false;
|
|
14274
|
+
filterStore.options = [];
|
|
14275
|
+
filterStore.visible = false;
|
|
14262
14276
|
if (visible) {
|
|
14263
14277
|
$xeTable.dispatchEvent('filter-visible', {
|
|
14264
14278
|
column,
|
|
@@ -14692,7 +14706,8 @@ const Methods = {
|
|
|
14692
14706
|
const $xeTable = this;
|
|
14693
14707
|
const internalData = $xeTable;
|
|
14694
14708
|
const {
|
|
14695
|
-
treeExpandLazyLoadedMaps
|
|
14709
|
+
treeExpandLazyLoadedMaps,
|
|
14710
|
+
treeEATime
|
|
14696
14711
|
} = internalData;
|
|
14697
14712
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
14698
14713
|
const {
|
|
@@ -14701,7 +14716,8 @@ const Methods = {
|
|
|
14701
14716
|
} = params;
|
|
14702
14717
|
const {
|
|
14703
14718
|
lazy,
|
|
14704
|
-
trigger
|
|
14719
|
+
trigger,
|
|
14720
|
+
accordion
|
|
14705
14721
|
} = treeOpts;
|
|
14706
14722
|
if (trigger === 'manual') {
|
|
14707
14723
|
return;
|
|
@@ -14712,7 +14728,17 @@ const Methods = {
|
|
|
14712
14728
|
const expanded = !$xeTable.isTreeExpandByRow(row);
|
|
14713
14729
|
const columnIndex = $xeTable.getColumnIndex(column);
|
|
14714
14730
|
const $columnIndex = $xeTable.getVMColumnIndex(column);
|
|
14715
|
-
|
|
14731
|
+
if (treeEATime) {
|
|
14732
|
+
clearTimeout(treeEATime);
|
|
14733
|
+
}
|
|
14734
|
+
$xeTable.setTreeExpand(row, expanded).then(() => {
|
|
14735
|
+
if (accordion) {
|
|
14736
|
+
internalData.treeEATime = setTimeout(() => {
|
|
14737
|
+
internalData.treeEATime = undefined;
|
|
14738
|
+
$xeTable.scrollToRow(row);
|
|
14739
|
+
}, 20);
|
|
14740
|
+
}
|
|
14741
|
+
});
|
|
14716
14742
|
$xeTable.dispatchEvent('toggle-tree-expand', {
|
|
14717
14743
|
expanded,
|
|
14718
14744
|
column,
|
|
@@ -15062,6 +15088,9 @@ const Methods = {
|
|
|
15062
15088
|
};
|
|
15063
15089
|
updateRowExpandStyle($xeTable);
|
|
15064
15090
|
checkLastSyncScroll($xeTable, isRollX, isRollY);
|
|
15091
|
+
if (isRollX) {
|
|
15092
|
+
$xeTable.closeFilter();
|
|
15093
|
+
}
|
|
15065
15094
|
if (rowOpts.isHover || highlightHoverRow) {
|
|
15066
15095
|
$xeTable.clearHoverRow();
|
|
15067
15096
|
}
|
|
@@ -15592,7 +15621,8 @@ const Methods = {
|
|
|
15592
15621
|
if (isScrollXBig && mouseOpts.area) {
|
|
15593
15622
|
errLog('vxe.error.notProp', ['mouse-config.area']);
|
|
15594
15623
|
}
|
|
15595
|
-
$xeTable
|
|
15624
|
+
calcScrollbar($xeTable);
|
|
15625
|
+
return $xeTable.$nextTick(() => {
|
|
15596
15626
|
updateStyle($xeTable);
|
|
15597
15627
|
});
|
|
15598
15628
|
}
|
|
@@ -15711,6 +15741,7 @@ const Methods = {
|
|
|
15711
15741
|
if (isScrollYBig && mouseOpts.area) {
|
|
15712
15742
|
errLog('vxe.error.notProp', ['mouse-config.area']);
|
|
15713
15743
|
}
|
|
15744
|
+
calcScrollbar($xeTable);
|
|
15714
15745
|
return $xeTable.$nextTick().then(() => {
|
|
15715
15746
|
updateStyle($xeTable);
|
|
15716
15747
|
});
|
|
@@ -19491,28 +19522,169 @@ const renderPopupPanel = (h, _vm) => {
|
|
|
19491
19522
|
const {
|
|
19492
19523
|
getI18n: filter_panel_getI18n,
|
|
19493
19524
|
getIcon: filter_panel_getIcon,
|
|
19494
|
-
renderer: panel_renderer
|
|
19525
|
+
renderer: panel_renderer,
|
|
19526
|
+
globalMixins
|
|
19495
19527
|
} = core_.VxeUI;
|
|
19528
|
+
function renderOptions($xeFilterPanel, h, filterRender, compConf) {
|
|
19529
|
+
const props = $xeFilterPanel;
|
|
19530
|
+
const $xeTable = $xeFilterPanel.$xeTable;
|
|
19531
|
+
const tableInternalData = $xeTable;
|
|
19532
|
+
const {
|
|
19533
|
+
filterStore
|
|
19534
|
+
} = props;
|
|
19535
|
+
const {
|
|
19536
|
+
column,
|
|
19537
|
+
multiple,
|
|
19538
|
+
maxHeight
|
|
19539
|
+
} = filterStore;
|
|
19540
|
+
const slots = column ? column.slots : null;
|
|
19541
|
+
const filterSlot = slots ? slots.filter : null;
|
|
19542
|
+
const params = Object.assign({}, tableInternalData._currFilterParams, {
|
|
19543
|
+
$panel: $xeFilterPanel,
|
|
19544
|
+
$table: $xeTable
|
|
19545
|
+
});
|
|
19546
|
+
const rtFilter = compConf ? compConf.renderTableFilter || compConf.renderFilter : null;
|
|
19547
|
+
if (filterSlot) {
|
|
19548
|
+
return [h('div', {
|
|
19549
|
+
class: 'vxe-table--filter-template',
|
|
19550
|
+
style: maxHeight ? {
|
|
19551
|
+
maxHeight: `${maxHeight}px`
|
|
19552
|
+
} : {}
|
|
19553
|
+
}, $xeTable.callSlot(filterSlot, params, h))];
|
|
19554
|
+
} else if (rtFilter) {
|
|
19555
|
+
return [h('div', {
|
|
19556
|
+
class: 'vxe-table--filter-template',
|
|
19557
|
+
style: maxHeight ? {
|
|
19558
|
+
maxHeight: `${maxHeight}px`
|
|
19559
|
+
} : {}
|
|
19560
|
+
}, getSlotVNs(rtFilter.call($xeTable, h, filterRender, params)))];
|
|
19561
|
+
}
|
|
19562
|
+
const isAllChecked = multiple ? filterStore.isAllSelected : !filterStore.options.some(item => item._checked);
|
|
19563
|
+
const isAllIndeterminate = multiple && filterStore.isIndeterminate;
|
|
19564
|
+
return [h('ul', {
|
|
19565
|
+
class: 'vxe-table--filter-header'
|
|
19566
|
+
}, [h('li', {
|
|
19567
|
+
class: ['vxe-table--filter-option', {
|
|
19568
|
+
'is--checked': isAllChecked,
|
|
19569
|
+
'is--indeterminate': isAllIndeterminate
|
|
19570
|
+
}],
|
|
19571
|
+
attrs: {
|
|
19572
|
+
title: filter_panel_getI18n(multiple ? 'vxe.table.allTitle' : 'vxe.table.allFilter')
|
|
19573
|
+
},
|
|
19574
|
+
on: {
|
|
19575
|
+
click: evnt => {
|
|
19576
|
+
$xeFilterPanel.changeAllOption(evnt, !filterStore.isAllSelected);
|
|
19577
|
+
}
|
|
19578
|
+
}
|
|
19579
|
+
}, (multiple ? [h('span', {
|
|
19580
|
+
class: ['vxe-checkbox--icon', isAllIndeterminate ? filter_panel_getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? filter_panel_getIcon().TABLE_CHECKBOX_CHECKED : filter_panel_getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
19581
|
+
})] : []).concat([h('span', {
|
|
19582
|
+
class: 'vxe-checkbox--label'
|
|
19583
|
+
}, filter_panel_getI18n('vxe.table.allFilter'))]))]), h('ul', {
|
|
19584
|
+
class: 'vxe-table--filter-body',
|
|
19585
|
+
style: maxHeight ? {
|
|
19586
|
+
maxHeight: `${maxHeight}px`
|
|
19587
|
+
} : {}
|
|
19588
|
+
}, filterStore.options.map(item => {
|
|
19589
|
+
const isChecked = item._checked;
|
|
19590
|
+
const isIndeterminate = false;
|
|
19591
|
+
return h('li', {
|
|
19592
|
+
class: ['vxe-table--filter-option', {
|
|
19593
|
+
'is--checked': isChecked
|
|
19594
|
+
}],
|
|
19595
|
+
attrs: {
|
|
19596
|
+
title: item.label
|
|
19597
|
+
},
|
|
19598
|
+
on: {
|
|
19599
|
+
click: evnt => {
|
|
19600
|
+
$xeFilterPanel.changeOption(evnt, !item._checked, item);
|
|
19601
|
+
}
|
|
19602
|
+
}
|
|
19603
|
+
}, (multiple ? [h('span', {
|
|
19604
|
+
class: ['vxe-checkbox--icon', isIndeterminate ? filter_panel_getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? filter_panel_getIcon().TABLE_CHECKBOX_CHECKED : filter_panel_getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
19605
|
+
})] : []).concat([h('span', {
|
|
19606
|
+
class: 'vxe-checkbox--label'
|
|
19607
|
+
}, formatText(item.label, 1))]));
|
|
19608
|
+
}))];
|
|
19609
|
+
}
|
|
19610
|
+
function renderFooter($xeFilterPanel, h) {
|
|
19611
|
+
const props = $xeFilterPanel;
|
|
19612
|
+
const $xeTable = $xeFilterPanel.$xeTable;
|
|
19613
|
+
const {
|
|
19614
|
+
filterStore
|
|
19615
|
+
} = props;
|
|
19616
|
+
const {
|
|
19617
|
+
column,
|
|
19618
|
+
multiple
|
|
19619
|
+
} = filterStore;
|
|
19620
|
+
const filterOpts = $xeTable.computeFilterOpts;
|
|
19621
|
+
const hasCheckOption = $xeFilterPanel.computeHasCheckOption;
|
|
19622
|
+
const filterRender = column.filterRender;
|
|
19623
|
+
const compConf = isEnableConf(filterRender) ? panel_renderer.get(filterRender.name) : null;
|
|
19624
|
+
const isDisabled = !hasCheckOption && !filterStore.isAllSelected && !filterStore.isIndeterminate;
|
|
19625
|
+
return multiple && (compConf ? !(compConf.showTableFilterFooter === false || compConf.showFilterFooter === false || compConf.isFooter === false) : true) ? [h('div', {
|
|
19626
|
+
class: 'vxe-table--filter-footer'
|
|
19627
|
+
}, [h('button', {
|
|
19628
|
+
class: {
|
|
19629
|
+
'is--disabled': isDisabled
|
|
19630
|
+
},
|
|
19631
|
+
attrs: {
|
|
19632
|
+
disabled: isDisabled
|
|
19633
|
+
},
|
|
19634
|
+
on: {
|
|
19635
|
+
click: $xeFilterPanel.confirmFilter
|
|
19636
|
+
}
|
|
19637
|
+
}, filterOpts.confirmButtonText || filter_panel_getI18n('vxe.table.confirmFilter')), h('button', {
|
|
19638
|
+
on: {
|
|
19639
|
+
click: $xeFilterPanel.resetFilter
|
|
19640
|
+
}
|
|
19641
|
+
}, filterOpts.resetButtonText || filter_panel_getI18n('vxe.table.resetFilter'))])] : [];
|
|
19642
|
+
}
|
|
19496
19643
|
/* harmony default export */ var filter_panel = ({
|
|
19497
19644
|
name: 'VxeTableFilterPanel',
|
|
19645
|
+
mixins: [globalMixins.sizeMixin],
|
|
19498
19646
|
props: {
|
|
19499
19647
|
filterStore: Object
|
|
19500
19648
|
},
|
|
19649
|
+
inject: {
|
|
19650
|
+
$xeTable: {
|
|
19651
|
+
default: null
|
|
19652
|
+
}
|
|
19653
|
+
},
|
|
19501
19654
|
computed: {
|
|
19502
|
-
|
|
19655
|
+
computeHasCheckOption() {
|
|
19503
19656
|
const {
|
|
19504
19657
|
filterStore
|
|
19505
19658
|
} = this;
|
|
19506
19659
|
return filterStore && filterStore.options.some(option => option.checked);
|
|
19507
19660
|
}
|
|
19508
19661
|
},
|
|
19662
|
+
mounted() {
|
|
19663
|
+
const $xeFilterPanel = this;
|
|
19664
|
+
const $xeTable = $xeFilterPanel.$xeTable;
|
|
19665
|
+
const filterOpts = $xeTable.computeFilterOpts;
|
|
19666
|
+
const {
|
|
19667
|
+
transfer
|
|
19668
|
+
} = filterOpts;
|
|
19669
|
+
const el = this.$refs.refElem;
|
|
19670
|
+
if (transfer && el) {
|
|
19671
|
+
document.body.appendChild(el);
|
|
19672
|
+
}
|
|
19673
|
+
},
|
|
19674
|
+
beforeDestroy() {
|
|
19675
|
+
const el = this.$refs.refElem;
|
|
19676
|
+
if (el && el.parentNode) {
|
|
19677
|
+
el.parentNode.removeChild(el);
|
|
19678
|
+
}
|
|
19679
|
+
},
|
|
19509
19680
|
render(h) {
|
|
19510
|
-
const $
|
|
19511
|
-
const
|
|
19681
|
+
const $xeFilterPanel = this;
|
|
19682
|
+
const props = $xeFilterPanel;
|
|
19683
|
+
const $xeTable = $xeFilterPanel.$xeTable;
|
|
19512
19684
|
const tableInternalData = $xeTable;
|
|
19513
19685
|
const {
|
|
19514
19686
|
filterStore
|
|
19515
|
-
} =
|
|
19687
|
+
} = props;
|
|
19516
19688
|
const {
|
|
19517
19689
|
visible,
|
|
19518
19690
|
multiple,
|
|
@@ -19522,137 +19694,27 @@ const {
|
|
|
19522
19694
|
const compConf = isEnableConf(filterRender) ? panel_renderer.get(filterRender.name) : null;
|
|
19523
19695
|
const filterClassName = compConf ? compConf.tableFilterClassName || compConf.filterClassName : '';
|
|
19524
19696
|
const params = Object.assign({}, tableInternalData._currFilterParams, {
|
|
19525
|
-
$panel,
|
|
19697
|
+
$panel: $xeFilterPanel,
|
|
19526
19698
|
$table: $xeTable
|
|
19527
19699
|
});
|
|
19700
|
+
const tableProps = $xeTable;
|
|
19701
|
+
const vSize = $xeFilterPanel.computeSize;
|
|
19528
19702
|
const filterOpts = $xeTable.computeFilterOpts;
|
|
19529
19703
|
const {
|
|
19530
19704
|
destroyOnClose
|
|
19531
19705
|
} = filterOpts;
|
|
19532
19706
|
return h('div', {
|
|
19707
|
+
ref: 'refElem',
|
|
19533
19708
|
class: ['vxe-table--filter-wrapper', 'filter--prevent-default', compConf && compConf.className ? compConf.className : '', getClass(filterClassName, params), {
|
|
19534
|
-
|
|
19709
|
+
[`size--${vSize}`]: vSize,
|
|
19710
|
+
'is--animat': tableProps.animat,
|
|
19535
19711
|
'is--multiple': multiple,
|
|
19536
19712
|
'is--active': visible
|
|
19537
19713
|
}],
|
|
19538
19714
|
style: filterStore.style
|
|
19539
|
-
}, filterStore.visible && (destroyOnClose ? visible : true) && column ?
|
|
19715
|
+
}, filterStore.visible && (destroyOnClose ? visible : true) && column ? renderOptions($xeFilterPanel, h, filterRender, compConf).concat(renderFooter($xeFilterPanel, h)) : []);
|
|
19540
19716
|
},
|
|
19541
19717
|
methods: {
|
|
19542
|
-
renderOptions(h, filterRender, compConf) {
|
|
19543
|
-
const $panel = this;
|
|
19544
|
-
const $xeTable = this.$parent;
|
|
19545
|
-
const tableInternalData = $xeTable;
|
|
19546
|
-
const {
|
|
19547
|
-
filterStore
|
|
19548
|
-
} = this;
|
|
19549
|
-
const {
|
|
19550
|
-
column,
|
|
19551
|
-
multiple,
|
|
19552
|
-
maxHeight
|
|
19553
|
-
} = filterStore;
|
|
19554
|
-
const slots = column ? column.slots : null;
|
|
19555
|
-
const filterSlot = slots ? slots.filter : null;
|
|
19556
|
-
const params = Object.assign({}, tableInternalData._currFilterParams, {
|
|
19557
|
-
$panel,
|
|
19558
|
-
$table: $xeTable
|
|
19559
|
-
});
|
|
19560
|
-
const rtFilter = compConf ? compConf.renderTableFilter || compConf.renderFilter : null;
|
|
19561
|
-
if (filterSlot) {
|
|
19562
|
-
return [h('div', {
|
|
19563
|
-
class: 'vxe-table--filter-template',
|
|
19564
|
-
style: maxHeight ? {
|
|
19565
|
-
maxHeight: `${maxHeight}px`
|
|
19566
|
-
} : {}
|
|
19567
|
-
}, $xeTable.callSlot(filterSlot, params, h))];
|
|
19568
|
-
} else if (rtFilter) {
|
|
19569
|
-
return [h('div', {
|
|
19570
|
-
class: 'vxe-table--filter-template',
|
|
19571
|
-
style: maxHeight ? {
|
|
19572
|
-
maxHeight: `${maxHeight}px`
|
|
19573
|
-
} : {}
|
|
19574
|
-
}, getSlotVNs(rtFilter.call($xeTable, h, filterRender, params)))];
|
|
19575
|
-
}
|
|
19576
|
-
const isAllChecked = multiple ? filterStore.isAllSelected : !filterStore.options.some(item => item._checked);
|
|
19577
|
-
const isAllIndeterminate = multiple && filterStore.isIndeterminate;
|
|
19578
|
-
return [h('ul', {
|
|
19579
|
-
class: 'vxe-table--filter-header'
|
|
19580
|
-
}, [h('li', {
|
|
19581
|
-
class: ['vxe-table--filter-option', {
|
|
19582
|
-
'is--checked': isAllChecked,
|
|
19583
|
-
'is--indeterminate': isAllIndeterminate
|
|
19584
|
-
}],
|
|
19585
|
-
attrs: {
|
|
19586
|
-
title: filter_panel_getI18n(multiple ? 'vxe.table.allTitle' : 'vxe.table.allFilter')
|
|
19587
|
-
},
|
|
19588
|
-
on: {
|
|
19589
|
-
click: evnt => {
|
|
19590
|
-
this.changeAllOption(evnt, !filterStore.isAllSelected);
|
|
19591
|
-
}
|
|
19592
|
-
}
|
|
19593
|
-
}, (multiple ? [h('span', {
|
|
19594
|
-
class: ['vxe-checkbox--icon', isAllIndeterminate ? filter_panel_getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? filter_panel_getIcon().TABLE_CHECKBOX_CHECKED : filter_panel_getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
19595
|
-
})] : []).concat([h('span', {
|
|
19596
|
-
class: 'vxe-checkbox--label'
|
|
19597
|
-
}, filter_panel_getI18n('vxe.table.allFilter'))]))]), h('ul', {
|
|
19598
|
-
class: 'vxe-table--filter-body',
|
|
19599
|
-
style: maxHeight ? {
|
|
19600
|
-
maxHeight: `${maxHeight}px`
|
|
19601
|
-
} : {}
|
|
19602
|
-
}, filterStore.options.map(item => {
|
|
19603
|
-
const isChecked = item._checked;
|
|
19604
|
-
const isIndeterminate = false;
|
|
19605
|
-
return h('li', {
|
|
19606
|
-
class: ['vxe-table--filter-option', {
|
|
19607
|
-
'is--checked': isChecked
|
|
19608
|
-
}],
|
|
19609
|
-
attrs: {
|
|
19610
|
-
title: item.label
|
|
19611
|
-
},
|
|
19612
|
-
on: {
|
|
19613
|
-
click: evnt => {
|
|
19614
|
-
this.changeOption(evnt, !item._checked, item);
|
|
19615
|
-
}
|
|
19616
|
-
}
|
|
19617
|
-
}, (multiple ? [h('span', {
|
|
19618
|
-
class: ['vxe-checkbox--icon', isIndeterminate ? filter_panel_getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? filter_panel_getIcon().TABLE_CHECKBOX_CHECKED : filter_panel_getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
19619
|
-
})] : []).concat([h('span', {
|
|
19620
|
-
class: 'vxe-checkbox--label'
|
|
19621
|
-
}, formatText(item.label, 1))]));
|
|
19622
|
-
}))];
|
|
19623
|
-
},
|
|
19624
|
-
renderFooter(h) {
|
|
19625
|
-
const $xeTable = this.$parent;
|
|
19626
|
-
const {
|
|
19627
|
-
hasCheckOption,
|
|
19628
|
-
filterStore
|
|
19629
|
-
} = this;
|
|
19630
|
-
const {
|
|
19631
|
-
column,
|
|
19632
|
-
multiple
|
|
19633
|
-
} = filterStore;
|
|
19634
|
-
const filterOpts = $xeTable.computeFilterOpts;
|
|
19635
|
-
const filterRender = column.filterRender;
|
|
19636
|
-
const compConf = isEnableConf(filterRender) ? panel_renderer.get(filterRender.name) : null;
|
|
19637
|
-
const isDisabled = !hasCheckOption && !filterStore.isAllSelected && !filterStore.isIndeterminate;
|
|
19638
|
-
return multiple && (compConf ? !(compConf.showTableFilterFooter === false || compConf.showFilterFooter === false || compConf.isFooter === false) : true) ? [h('div', {
|
|
19639
|
-
class: 'vxe-table--filter-footer'
|
|
19640
|
-
}, [h('button', {
|
|
19641
|
-
class: {
|
|
19642
|
-
'is--disabled': isDisabled
|
|
19643
|
-
},
|
|
19644
|
-
attrs: {
|
|
19645
|
-
disabled: isDisabled
|
|
19646
|
-
},
|
|
19647
|
-
on: {
|
|
19648
|
-
click: this.confirmFilter
|
|
19649
|
-
}
|
|
19650
|
-
}, filterOpts.confirmButtonText || filter_panel_getI18n('vxe.table.confirmFilter')), h('button', {
|
|
19651
|
-
on: {
|
|
19652
|
-
click: this.resetFilter
|
|
19653
|
-
}
|
|
19654
|
-
}, filterOpts.resetButtonText || filter_panel_getI18n('vxe.table.resetFilter'))])] : [];
|
|
19655
|
-
},
|
|
19656
19718
|
// 全部筛选事件
|
|
19657
19719
|
filterCheckAllEvent(evnt, value) {
|
|
19658
19720
|
const filterStore = this.filterStore;
|
|
@@ -19723,12 +19785,12 @@ const {
|
|
|
19723
19785
|
const {
|
|
19724
19786
|
getI18n: import_panel_getI18n,
|
|
19725
19787
|
getIcon: import_panel_getIcon,
|
|
19726
|
-
globalMixins,
|
|
19788
|
+
globalMixins: import_panel_globalMixins,
|
|
19727
19789
|
renderEmptyElement: import_panel_renderEmptyElement
|
|
19728
19790
|
} = core_.VxeUI;
|
|
19729
19791
|
/* harmony default export */ var import_panel = ({
|
|
19730
19792
|
name: 'VxeTableImportPanel',
|
|
19731
|
-
mixins: [
|
|
19793
|
+
mixins: [import_panel_globalMixins.sizeMixin],
|
|
19732
19794
|
props: {
|
|
19733
19795
|
defaultOptions: Object,
|
|
19734
19796
|
storeData: Object
|
|
@@ -20666,6 +20728,16 @@ const {
|
|
|
20666
20728
|
filterStore.visible = false;
|
|
20667
20729
|
} else {
|
|
20668
20730
|
const el = $xeTable.$refs.refElem;
|
|
20731
|
+
const {
|
|
20732
|
+
scrollTop,
|
|
20733
|
+
scrollLeft,
|
|
20734
|
+
visibleHeight,
|
|
20735
|
+
visibleWidth
|
|
20736
|
+
} = getDomNode();
|
|
20737
|
+
const filterOpts = $xeTable.computeFilterOpts;
|
|
20738
|
+
const {
|
|
20739
|
+
transfer
|
|
20740
|
+
} = filterOpts;
|
|
20669
20741
|
const tableRect = el.getBoundingClientRect();
|
|
20670
20742
|
const btnElem = evnt.currentTarget;
|
|
20671
20743
|
const {
|
|
@@ -20713,18 +20785,37 @@ const {
|
|
|
20713
20785
|
return;
|
|
20714
20786
|
}
|
|
20715
20787
|
const btnRect = btnElem.getBoundingClientRect();
|
|
20716
|
-
const filterWidth = filterWrapperElem.offsetWidth;
|
|
20717
20788
|
const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
|
|
20718
20789
|
const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
|
|
20790
|
+
const filterWidth = filterWrapperElem.offsetWidth;
|
|
20719
20791
|
const centerWidth = filterWidth / 2;
|
|
20720
|
-
|
|
20721
|
-
|
|
20722
|
-
|
|
20723
|
-
|
|
20792
|
+
let left = 0;
|
|
20793
|
+
let top = 0;
|
|
20794
|
+
let maxHeight = 0;
|
|
20795
|
+
if (transfer) {
|
|
20796
|
+
left = btnRect.left - centerWidth + scrollLeft;
|
|
20797
|
+
top = btnRect.top + btnElem.clientHeight + scrollTop;
|
|
20798
|
+
maxHeight = Math.min(Math.max(tableRect.height, Math.floor(visibleHeight / 2)), Math.max(80, visibleHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 28));
|
|
20799
|
+
if (left < 16) {
|
|
20800
|
+
left = 16;
|
|
20801
|
+
} else if (left > visibleWidth - filterWidth - 16) {
|
|
20802
|
+
left = visibleWidth - filterWidth - 16;
|
|
20803
|
+
}
|
|
20804
|
+
} else {
|
|
20805
|
+
left = btnRect.left - tableRect.left - centerWidth;
|
|
20806
|
+
top = btnRect.top - tableRect.top + btnElem.clientHeight;
|
|
20807
|
+
maxHeight = Math.max(40, el.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
|
|
20808
|
+
if (left < 1) {
|
|
20809
|
+
left = 1;
|
|
20810
|
+
} else if (left > el.clientWidth - filterWidth - 1) {
|
|
20811
|
+
left = el.clientWidth - filterWidth - 1;
|
|
20812
|
+
}
|
|
20813
|
+
}
|
|
20724
20814
|
filterStore.style = {
|
|
20725
20815
|
top: toCssUnit(top),
|
|
20726
20816
|
left: toCssUnit(left)
|
|
20727
20817
|
};
|
|
20818
|
+
// 判断面板不能大于表格高度
|
|
20728
20819
|
filterStore.maxHeight = maxHeight;
|
|
20729
20820
|
});
|
|
20730
20821
|
}
|
|
@@ -26619,6 +26710,7 @@ function renderBody(h, $xeTable) {
|
|
|
26619
26710
|
mergeBodyFlag: 1,
|
|
26620
26711
|
mergeFootFlag: 1,
|
|
26621
26712
|
rowHeightStore: {
|
|
26713
|
+
large: 52,
|
|
26622
26714
|
default: 48,
|
|
26623
26715
|
medium: 44,
|
|
26624
26716
|
small: 40,
|