vxe-table 3.15.1 → 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 +29 -10
- package/es/table/module/filter/panel.js +173 -142
- package/es/table/src/methods.js +31 -7
- 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 +226 -142
- 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 +33 -9
- 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 +36 -7
- package/lib/table/src/methods.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 +27 -10
- package/packages/table/module/filter/panel.ts +178 -143
- package/packages/table/src/methods.ts +31 -7
- package/styles/components/table-module/filter.scss +16 -0
- package/styles/components/table.scss +6 -1
- /package/es/{iconfont.1744336394111.ttf → iconfont.1744428010256.ttf} +0 -0
- /package/es/{iconfont.1744336394111.woff → iconfont.1744428010256.woff} +0 -0
- /package/es/{iconfont.1744336394111.woff2 → iconfont.1744428010256.woff2} +0 -0
- /package/lib/{iconfont.1744336394111.ttf → iconfont.1744428010256.ttf} +0 -0
- /package/lib/{iconfont.1744336394111.woff → iconfont.1744428010256.woff} +0 -0
- /package/lib/{iconfont.1744336394111.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
|
|
@@ -8476,7 +8476,11 @@ const Methods = {
|
|
|
8476
8476
|
handleReserveStatus($xeTable);
|
|
8477
8477
|
$xeTable.checkSelectionStatus();
|
|
8478
8478
|
return new Promise(resolve => {
|
|
8479
|
-
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(() => {
|
|
8480
8484
|
let targetScrollLeft = lastScrollLeft;
|
|
8481
8485
|
let targetScrollTop = lastScrollTop;
|
|
8482
8486
|
const virtualXOpts = $xeTable.computeVirtualXOpts;
|
|
@@ -8489,8 +8493,7 @@ const Methods = {
|
|
|
8489
8493
|
targetScrollTop = 0;
|
|
8490
8494
|
}
|
|
8491
8495
|
reactData.isRowLoading = false;
|
|
8492
|
-
|
|
8493
|
-
updateRowOffsetTop($xeTable);
|
|
8496
|
+
handleRecalculateLayout($xeTable, false);
|
|
8494
8497
|
// 是否变更虚拟滚动
|
|
8495
8498
|
if (oldScrollYLoad === sYLoad) {
|
|
8496
8499
|
restoreScrollLocation($xeTable, targetScrollLeft, targetScrollTop).then(() => {
|
|
@@ -12645,6 +12648,12 @@ const Methods = {
|
|
|
12645
12648
|
const {
|
|
12646
12649
|
column: newValue
|
|
12647
12650
|
} = params;
|
|
12651
|
+
const {
|
|
12652
|
+
trigger
|
|
12653
|
+
} = currentColumnOpts;
|
|
12654
|
+
if (trigger === 'manual') {
|
|
12655
|
+
return;
|
|
12656
|
+
}
|
|
12648
12657
|
const isChange = oldValue !== newValue;
|
|
12649
12658
|
if (!beforeRowMethod || beforeRowMethod({
|
|
12650
12659
|
column: newValue,
|
|
@@ -12674,6 +12683,12 @@ const Methods = {
|
|
|
12674
12683
|
const {
|
|
12675
12684
|
row: newValue
|
|
12676
12685
|
} = params;
|
|
12686
|
+
const {
|
|
12687
|
+
trigger
|
|
12688
|
+
} = currentRowOpts;
|
|
12689
|
+
if (trigger === 'manual') {
|
|
12690
|
+
return;
|
|
12691
|
+
}
|
|
12677
12692
|
const isChange = oldValue !== newValue;
|
|
12678
12693
|
if (!beforeRowMethod || beforeRowMethod({
|
|
12679
12694
|
row: newValue,
|
|
@@ -14691,7 +14706,8 @@ const Methods = {
|
|
|
14691
14706
|
const $xeTable = this;
|
|
14692
14707
|
const internalData = $xeTable;
|
|
14693
14708
|
const {
|
|
14694
|
-
treeExpandLazyLoadedMaps
|
|
14709
|
+
treeExpandLazyLoadedMaps,
|
|
14710
|
+
treeEATime
|
|
14695
14711
|
} = internalData;
|
|
14696
14712
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
14697
14713
|
const {
|
|
@@ -14700,7 +14716,8 @@ const Methods = {
|
|
|
14700
14716
|
} = params;
|
|
14701
14717
|
const {
|
|
14702
14718
|
lazy,
|
|
14703
|
-
trigger
|
|
14719
|
+
trigger,
|
|
14720
|
+
accordion
|
|
14704
14721
|
} = treeOpts;
|
|
14705
14722
|
if (trigger === 'manual') {
|
|
14706
14723
|
return;
|
|
@@ -14711,7 +14728,17 @@ const Methods = {
|
|
|
14711
14728
|
const expanded = !$xeTable.isTreeExpandByRow(row);
|
|
14712
14729
|
const columnIndex = $xeTable.getColumnIndex(column);
|
|
14713
14730
|
const $columnIndex = $xeTable.getVMColumnIndex(column);
|
|
14714
|
-
|
|
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
|
+
});
|
|
14715
14742
|
$xeTable.dispatchEvent('toggle-tree-expand', {
|
|
14716
14743
|
expanded,
|
|
14717
14744
|
column,
|
|
@@ -15594,7 +15621,8 @@ const Methods = {
|
|
|
15594
15621
|
if (isScrollXBig && mouseOpts.area) {
|
|
15595
15622
|
errLog('vxe.error.notProp', ['mouse-config.area']);
|
|
15596
15623
|
}
|
|
15597
|
-
$xeTable
|
|
15624
|
+
calcScrollbar($xeTable);
|
|
15625
|
+
return $xeTable.$nextTick(() => {
|
|
15598
15626
|
updateStyle($xeTable);
|
|
15599
15627
|
});
|
|
15600
15628
|
}
|
|
@@ -15713,6 +15741,7 @@ const Methods = {
|
|
|
15713
15741
|
if (isScrollYBig && mouseOpts.area) {
|
|
15714
15742
|
errLog('vxe.error.notProp', ['mouse-config.area']);
|
|
15715
15743
|
}
|
|
15744
|
+
calcScrollbar($xeTable);
|
|
15716
15745
|
return $xeTable.$nextTick().then(() => {
|
|
15717
15746
|
updateStyle($xeTable);
|
|
15718
15747
|
});
|
|
@@ -19493,28 +19522,169 @@ const renderPopupPanel = (h, _vm) => {
|
|
|
19493
19522
|
const {
|
|
19494
19523
|
getI18n: filter_panel_getI18n,
|
|
19495
19524
|
getIcon: filter_panel_getIcon,
|
|
19496
|
-
renderer: panel_renderer
|
|
19525
|
+
renderer: panel_renderer,
|
|
19526
|
+
globalMixins
|
|
19497
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
|
+
}
|
|
19498
19643
|
/* harmony default export */ var filter_panel = ({
|
|
19499
19644
|
name: 'VxeTableFilterPanel',
|
|
19645
|
+
mixins: [globalMixins.sizeMixin],
|
|
19500
19646
|
props: {
|
|
19501
19647
|
filterStore: Object
|
|
19502
19648
|
},
|
|
19649
|
+
inject: {
|
|
19650
|
+
$xeTable: {
|
|
19651
|
+
default: null
|
|
19652
|
+
}
|
|
19653
|
+
},
|
|
19503
19654
|
computed: {
|
|
19504
|
-
|
|
19655
|
+
computeHasCheckOption() {
|
|
19505
19656
|
const {
|
|
19506
19657
|
filterStore
|
|
19507
19658
|
} = this;
|
|
19508
19659
|
return filterStore && filterStore.options.some(option => option.checked);
|
|
19509
19660
|
}
|
|
19510
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
|
+
},
|
|
19511
19680
|
render(h) {
|
|
19512
|
-
const $
|
|
19513
|
-
const
|
|
19681
|
+
const $xeFilterPanel = this;
|
|
19682
|
+
const props = $xeFilterPanel;
|
|
19683
|
+
const $xeTable = $xeFilterPanel.$xeTable;
|
|
19514
19684
|
const tableInternalData = $xeTable;
|
|
19515
19685
|
const {
|
|
19516
19686
|
filterStore
|
|
19517
|
-
} =
|
|
19687
|
+
} = props;
|
|
19518
19688
|
const {
|
|
19519
19689
|
visible,
|
|
19520
19690
|
multiple,
|
|
@@ -19524,137 +19694,27 @@ const {
|
|
|
19524
19694
|
const compConf = isEnableConf(filterRender) ? panel_renderer.get(filterRender.name) : null;
|
|
19525
19695
|
const filterClassName = compConf ? compConf.tableFilterClassName || compConf.filterClassName : '';
|
|
19526
19696
|
const params = Object.assign({}, tableInternalData._currFilterParams, {
|
|
19527
|
-
$panel,
|
|
19697
|
+
$panel: $xeFilterPanel,
|
|
19528
19698
|
$table: $xeTable
|
|
19529
19699
|
});
|
|
19700
|
+
const tableProps = $xeTable;
|
|
19701
|
+
const vSize = $xeFilterPanel.computeSize;
|
|
19530
19702
|
const filterOpts = $xeTable.computeFilterOpts;
|
|
19531
19703
|
const {
|
|
19532
19704
|
destroyOnClose
|
|
19533
19705
|
} = filterOpts;
|
|
19534
19706
|
return h('div', {
|
|
19707
|
+
ref: 'refElem',
|
|
19535
19708
|
class: ['vxe-table--filter-wrapper', 'filter--prevent-default', compConf && compConf.className ? compConf.className : '', getClass(filterClassName, params), {
|
|
19536
|
-
|
|
19709
|
+
[`size--${vSize}`]: vSize,
|
|
19710
|
+
'is--animat': tableProps.animat,
|
|
19537
19711
|
'is--multiple': multiple,
|
|
19538
19712
|
'is--active': visible
|
|
19539
19713
|
}],
|
|
19540
19714
|
style: filterStore.style
|
|
19541
|
-
}, filterStore.visible && (destroyOnClose ? visible : true) && column ?
|
|
19715
|
+
}, filterStore.visible && (destroyOnClose ? visible : true) && column ? renderOptions($xeFilterPanel, h, filterRender, compConf).concat(renderFooter($xeFilterPanel, h)) : []);
|
|
19542
19716
|
},
|
|
19543
19717
|
methods: {
|
|
19544
|
-
renderOptions(h, filterRender, compConf) {
|
|
19545
|
-
const $panel = this;
|
|
19546
|
-
const $xeTable = this.$parent;
|
|
19547
|
-
const tableInternalData = $xeTable;
|
|
19548
|
-
const {
|
|
19549
|
-
filterStore
|
|
19550
|
-
} = this;
|
|
19551
|
-
const {
|
|
19552
|
-
column,
|
|
19553
|
-
multiple,
|
|
19554
|
-
maxHeight
|
|
19555
|
-
} = filterStore;
|
|
19556
|
-
const slots = column ? column.slots : null;
|
|
19557
|
-
const filterSlot = slots ? slots.filter : null;
|
|
19558
|
-
const params = Object.assign({}, tableInternalData._currFilterParams, {
|
|
19559
|
-
$panel,
|
|
19560
|
-
$table: $xeTable
|
|
19561
|
-
});
|
|
19562
|
-
const rtFilter = compConf ? compConf.renderTableFilter || compConf.renderFilter : null;
|
|
19563
|
-
if (filterSlot) {
|
|
19564
|
-
return [h('div', {
|
|
19565
|
-
class: 'vxe-table--filter-template',
|
|
19566
|
-
style: maxHeight ? {
|
|
19567
|
-
maxHeight: `${maxHeight}px`
|
|
19568
|
-
} : {}
|
|
19569
|
-
}, $xeTable.callSlot(filterSlot, params, h))];
|
|
19570
|
-
} else if (rtFilter) {
|
|
19571
|
-
return [h('div', {
|
|
19572
|
-
class: 'vxe-table--filter-template',
|
|
19573
|
-
style: maxHeight ? {
|
|
19574
|
-
maxHeight: `${maxHeight}px`
|
|
19575
|
-
} : {}
|
|
19576
|
-
}, getSlotVNs(rtFilter.call($xeTable, h, filterRender, params)))];
|
|
19577
|
-
}
|
|
19578
|
-
const isAllChecked = multiple ? filterStore.isAllSelected : !filterStore.options.some(item => item._checked);
|
|
19579
|
-
const isAllIndeterminate = multiple && filterStore.isIndeterminate;
|
|
19580
|
-
return [h('ul', {
|
|
19581
|
-
class: 'vxe-table--filter-header'
|
|
19582
|
-
}, [h('li', {
|
|
19583
|
-
class: ['vxe-table--filter-option', {
|
|
19584
|
-
'is--checked': isAllChecked,
|
|
19585
|
-
'is--indeterminate': isAllIndeterminate
|
|
19586
|
-
}],
|
|
19587
|
-
attrs: {
|
|
19588
|
-
title: filter_panel_getI18n(multiple ? 'vxe.table.allTitle' : 'vxe.table.allFilter')
|
|
19589
|
-
},
|
|
19590
|
-
on: {
|
|
19591
|
-
click: evnt => {
|
|
19592
|
-
this.changeAllOption(evnt, !filterStore.isAllSelected);
|
|
19593
|
-
}
|
|
19594
|
-
}
|
|
19595
|
-
}, (multiple ? [h('span', {
|
|
19596
|
-
class: ['vxe-checkbox--icon', isAllIndeterminate ? filter_panel_getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? filter_panel_getIcon().TABLE_CHECKBOX_CHECKED : filter_panel_getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
19597
|
-
})] : []).concat([h('span', {
|
|
19598
|
-
class: 'vxe-checkbox--label'
|
|
19599
|
-
}, filter_panel_getI18n('vxe.table.allFilter'))]))]), h('ul', {
|
|
19600
|
-
class: 'vxe-table--filter-body',
|
|
19601
|
-
style: maxHeight ? {
|
|
19602
|
-
maxHeight: `${maxHeight}px`
|
|
19603
|
-
} : {}
|
|
19604
|
-
}, filterStore.options.map(item => {
|
|
19605
|
-
const isChecked = item._checked;
|
|
19606
|
-
const isIndeterminate = false;
|
|
19607
|
-
return h('li', {
|
|
19608
|
-
class: ['vxe-table--filter-option', {
|
|
19609
|
-
'is--checked': isChecked
|
|
19610
|
-
}],
|
|
19611
|
-
attrs: {
|
|
19612
|
-
title: item.label
|
|
19613
|
-
},
|
|
19614
|
-
on: {
|
|
19615
|
-
click: evnt => {
|
|
19616
|
-
this.changeOption(evnt, !item._checked, item);
|
|
19617
|
-
}
|
|
19618
|
-
}
|
|
19619
|
-
}, (multiple ? [h('span', {
|
|
19620
|
-
class: ['vxe-checkbox--icon', isIndeterminate ? filter_panel_getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? filter_panel_getIcon().TABLE_CHECKBOX_CHECKED : filter_panel_getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
19621
|
-
})] : []).concat([h('span', {
|
|
19622
|
-
class: 'vxe-checkbox--label'
|
|
19623
|
-
}, formatText(item.label, 1))]));
|
|
19624
|
-
}))];
|
|
19625
|
-
},
|
|
19626
|
-
renderFooter(h) {
|
|
19627
|
-
const $xeTable = this.$parent;
|
|
19628
|
-
const {
|
|
19629
|
-
hasCheckOption,
|
|
19630
|
-
filterStore
|
|
19631
|
-
} = this;
|
|
19632
|
-
const {
|
|
19633
|
-
column,
|
|
19634
|
-
multiple
|
|
19635
|
-
} = filterStore;
|
|
19636
|
-
const filterOpts = $xeTable.computeFilterOpts;
|
|
19637
|
-
const filterRender = column.filterRender;
|
|
19638
|
-
const compConf = isEnableConf(filterRender) ? panel_renderer.get(filterRender.name) : null;
|
|
19639
|
-
const isDisabled = !hasCheckOption && !filterStore.isAllSelected && !filterStore.isIndeterminate;
|
|
19640
|
-
return multiple && (compConf ? !(compConf.showTableFilterFooter === false || compConf.showFilterFooter === false || compConf.isFooter === false) : true) ? [h('div', {
|
|
19641
|
-
class: 'vxe-table--filter-footer'
|
|
19642
|
-
}, [h('button', {
|
|
19643
|
-
class: {
|
|
19644
|
-
'is--disabled': isDisabled
|
|
19645
|
-
},
|
|
19646
|
-
attrs: {
|
|
19647
|
-
disabled: isDisabled
|
|
19648
|
-
},
|
|
19649
|
-
on: {
|
|
19650
|
-
click: this.confirmFilter
|
|
19651
|
-
}
|
|
19652
|
-
}, filterOpts.confirmButtonText || filter_panel_getI18n('vxe.table.confirmFilter')), h('button', {
|
|
19653
|
-
on: {
|
|
19654
|
-
click: this.resetFilter
|
|
19655
|
-
}
|
|
19656
|
-
}, filterOpts.resetButtonText || filter_panel_getI18n('vxe.table.resetFilter'))])] : [];
|
|
19657
|
-
},
|
|
19658
19718
|
// 全部筛选事件
|
|
19659
19719
|
filterCheckAllEvent(evnt, value) {
|
|
19660
19720
|
const filterStore = this.filterStore;
|
|
@@ -19725,12 +19785,12 @@ const {
|
|
|
19725
19785
|
const {
|
|
19726
19786
|
getI18n: import_panel_getI18n,
|
|
19727
19787
|
getIcon: import_panel_getIcon,
|
|
19728
|
-
globalMixins,
|
|
19788
|
+
globalMixins: import_panel_globalMixins,
|
|
19729
19789
|
renderEmptyElement: import_panel_renderEmptyElement
|
|
19730
19790
|
} = core_.VxeUI;
|
|
19731
19791
|
/* harmony default export */ var import_panel = ({
|
|
19732
19792
|
name: 'VxeTableImportPanel',
|
|
19733
|
-
mixins: [
|
|
19793
|
+
mixins: [import_panel_globalMixins.sizeMixin],
|
|
19734
19794
|
props: {
|
|
19735
19795
|
defaultOptions: Object,
|
|
19736
19796
|
storeData: Object
|
|
@@ -20668,6 +20728,16 @@ const {
|
|
|
20668
20728
|
filterStore.visible = false;
|
|
20669
20729
|
} else {
|
|
20670
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;
|
|
20671
20741
|
const tableRect = el.getBoundingClientRect();
|
|
20672
20742
|
const btnElem = evnt.currentTarget;
|
|
20673
20743
|
const {
|
|
@@ -20715,23 +20785,37 @@ const {
|
|
|
20715
20785
|
return;
|
|
20716
20786
|
}
|
|
20717
20787
|
const btnRect = btnElem.getBoundingClientRect();
|
|
20718
|
-
const filterWidth = filterWrapperElem.offsetWidth;
|
|
20719
20788
|
const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
|
|
20720
20789
|
const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
|
|
20790
|
+
const filterWidth = filterWrapperElem.offsetWidth;
|
|
20721
20791
|
const centerWidth = filterWidth / 2;
|
|
20722
|
-
let left =
|
|
20723
|
-
|
|
20724
|
-
|
|
20725
|
-
|
|
20726
|
-
|
|
20727
|
-
|
|
20728
|
-
|
|
20729
|
-
left
|
|
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
|
+
}
|
|
20730
20813
|
}
|
|
20731
20814
|
filterStore.style = {
|
|
20732
20815
|
top: toCssUnit(top),
|
|
20733
20816
|
left: toCssUnit(left)
|
|
20734
20817
|
};
|
|
20818
|
+
// 判断面板不能大于表格高度
|
|
20735
20819
|
filterStore.maxHeight = maxHeight;
|
|
20736
20820
|
});
|
|
20737
20821
|
}
|