vxe-table 4.16.9 → 4.16.11
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/README.en.md +1 -1
- package/README.ja-JP.md +1 -1
- package/README.md +1 -1
- package/README.zh-TW.md +1 -1
- package/es/grid/src/grid.js +1 -1
- package/es/style.css +1 -1
- package/es/table/module/menu/hook.js +3 -3
- package/es/table/src/body.js +2 -1
- package/es/table/src/cell.js +43 -25
- package/es/table/src/footer.js +3 -3
- package/es/table/src/header.js +2 -1
- package/es/table/src/props.js +4 -0
- package/es/table/src/table.js +49 -15
- package/es/ui/index.js +7 -1
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +1 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +100 -59
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/menu/hook.js +3 -3
- package/lib/table/module/menu/hook.min.js +1 -1
- package/lib/table/src/body.js +2 -1
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +60 -32
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/footer.js +3 -3
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +2 -1
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/props.js +4 -0
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +14 -14
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +7 -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/package.json +2 -2
- package/packages/grid/src/grid.ts +1 -1
- package/packages/table/module/menu/hook.ts +3 -3
- package/packages/table/src/body.ts +2 -1
- package/packages/table/src/cell.ts +41 -25
- package/packages/table/src/footer.ts +3 -3
- package/packages/table/src/header.ts +2 -1
- package/packages/table/src/props.ts +4 -0
- package/packages/table/src/table.ts +48 -15
- package/packages/ui/index.ts +6 -0
- /package/es/{iconfont.1757392740800.ttf → iconfont.1757578456216.ttf} +0 -0
- /package/es/{iconfont.1757392740800.woff → iconfont.1757578456216.woff} +0 -0
- /package/es/{iconfont.1757392740800.woff2 → iconfont.1757578456216.woff2} +0 -0
- /package/lib/{iconfont.1757392740800.ttf → iconfont.1757578456216.ttf} +0 -0
- /package/lib/{iconfont.1757392740800.woff → iconfont.1757578456216.woff} +0 -0
- /package/lib/{iconfont.1757392740800.woff2 → iconfont.1757578456216.woff2} +0 -0
|
@@ -9,7 +9,7 @@ hooks.add('tableMenuModule', {
|
|
|
9
9
|
setupTable($xeTable) {
|
|
10
10
|
const { xID, props, reactData, internalData } = $xeTable;
|
|
11
11
|
const { refElem, refTableFilter, refTableMenu } = $xeTable.getRefMaps();
|
|
12
|
-
const { computeMouseOpts,
|
|
12
|
+
const { computeMouseOpts, computeIsContentMenu, computeMenuOpts } = $xeTable.getComputeMaps();
|
|
13
13
|
let menuMethods = {};
|
|
14
14
|
let menuPrivateMethods = {};
|
|
15
15
|
/**
|
|
@@ -17,7 +17,7 @@ hooks.add('tableMenuModule', {
|
|
|
17
17
|
*/
|
|
18
18
|
const handleOpenMenuEvent = (evnt, type, params) => {
|
|
19
19
|
const { ctxMenuStore } = reactData;
|
|
20
|
-
const
|
|
20
|
+
const isContentMenu = computeIsContentMenu.value;
|
|
21
21
|
const menuOpts = computeMenuOpts.value;
|
|
22
22
|
const config = menuOpts[type];
|
|
23
23
|
const visibleMethod = menuOpts.visibleMethod;
|
|
@@ -26,7 +26,7 @@ hooks.add('tableMenuModule', {
|
|
|
26
26
|
if (disabled) {
|
|
27
27
|
evnt.preventDefault();
|
|
28
28
|
}
|
|
29
|
-
else if (
|
|
29
|
+
else if (isContentMenu && options && options.length) {
|
|
30
30
|
params.options = options;
|
|
31
31
|
$xeTable.preventEvent(evnt, 'event.showMenu', params, () => {
|
|
32
32
|
if (!visibleMethod || visibleMethod(params)) {
|
package/es/table/src/body.js
CHANGED
package/es/table/src/cell.js
CHANGED
|
@@ -161,12 +161,12 @@ function renderTitleContent(params, content) {
|
|
|
161
161
|
const { $table, column } = params;
|
|
162
162
|
const tableProps = $table.props;
|
|
163
163
|
const tableReactData = $table.reactData;
|
|
164
|
-
const {
|
|
164
|
+
const { computeHeaderTooltipOpts } = $table.getComputeMaps();
|
|
165
165
|
const { showHeaderOverflow: allColumnHeaderOverflow } = tableProps;
|
|
166
166
|
const { isRowGroupStatus } = tableReactData;
|
|
167
167
|
const { showHeaderOverflow } = column;
|
|
168
|
-
const
|
|
169
|
-
const showAllTip =
|
|
168
|
+
const headerTooltipOpts = computeHeaderTooltipOpts.value;
|
|
169
|
+
const showAllTip = headerTooltipOpts.showAll;
|
|
170
170
|
const headOverflow = XEUtils.eqNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
|
|
171
171
|
const showTitle = headOverflow === 'title';
|
|
172
172
|
const showTooltip = headOverflow === true || headOverflow === 'tooltip';
|
|
@@ -759,7 +759,9 @@ export const Cell = {
|
|
|
759
759
|
const { treeConfig } = tableProps;
|
|
760
760
|
const { updateCheckboxFlag, isRowGroupStatus } = tableReactData;
|
|
761
761
|
const { selectCheckboxMaps, treeIndeterminateRowMaps } = tableInternalData;
|
|
762
|
-
const { computeCheckboxOpts } = $table.getComputeMaps();
|
|
762
|
+
const { computeCheckboxOpts, computeAggregateOpts } = $table.getComputeMaps();
|
|
763
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
764
|
+
const { mapChildrenField } = aggregateOpts;
|
|
763
765
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
764
766
|
const { labelField, checkMethod, visibleMethod } = checkboxOpts;
|
|
765
767
|
const { slots } = column;
|
|
@@ -767,23 +769,30 @@ export const Cell = {
|
|
|
767
769
|
const checkboxSlot = slots ? slots.checkbox : null;
|
|
768
770
|
let indeterminate = false;
|
|
769
771
|
let isChecked = false;
|
|
770
|
-
|
|
771
|
-
let isDisabled =
|
|
772
|
+
let isVisible = true;
|
|
773
|
+
let isDisabled = false;
|
|
772
774
|
const ons = {};
|
|
773
775
|
if (!isHidden) {
|
|
774
776
|
const rowid = getRowid($table, row);
|
|
775
777
|
isChecked = !!updateCheckboxFlag && !!selectCheckboxMaps[rowid];
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
778
|
+
if (checkMethod && isRowGroupStatus && $table.isAggregateRecord(row)) {
|
|
779
|
+
const childList = row[mapChildrenField || ''];
|
|
780
|
+
if (!childList || !childList.length || childList.every(item => !checkMethod({ $table, row: item }))) {
|
|
781
|
+
isDisabled = true;
|
|
779
782
|
}
|
|
780
|
-
}
|
|
781
|
-
|
|
782
|
-
|
|
783
|
+
}
|
|
784
|
+
else {
|
|
785
|
+
isVisible = !visibleMethod || visibleMethod({ $table, row });
|
|
786
|
+
isDisabled = checkMethod ? !checkMethod({ $table, row }) : !!checkMethod;
|
|
783
787
|
}
|
|
784
788
|
if (treeConfig || isRowGroupStatus) {
|
|
785
789
|
indeterminate = !!treeIndeterminateRowMaps[rowid];
|
|
786
790
|
}
|
|
791
|
+
ons.onClick = (evnt) => {
|
|
792
|
+
if (!isDisabled && isVisible) {
|
|
793
|
+
$table.triggerCheckRowEvent(evnt, params, !isChecked);
|
|
794
|
+
}
|
|
795
|
+
};
|
|
787
796
|
}
|
|
788
797
|
const checkboxParams = Object.assign(Object.assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate });
|
|
789
798
|
if (checkboxSlot) {
|
|
@@ -820,41 +829,50 @@ export const Cell = {
|
|
|
820
829
|
const { treeConfig } = tableProps;
|
|
821
830
|
const { updateCheckboxFlag, isRowGroupStatus } = tableReactData;
|
|
822
831
|
const { treeIndeterminateRowMaps } = tableInternalData;
|
|
823
|
-
const { computeCheckboxOpts } = $table.getComputeMaps();
|
|
832
|
+
const { computeCheckboxOpts, computeAggregateOpts } = $table.getComputeMaps();
|
|
833
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
834
|
+
const { mapChildrenField } = aggregateOpts;
|
|
824
835
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
825
836
|
const { labelField, checkField, checkMethod, visibleMethod } = checkboxOpts;
|
|
826
837
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
|
|
827
838
|
const { slots } = column;
|
|
828
839
|
const defaultSlot = slots ? slots.default : null;
|
|
829
840
|
const checkboxSlot = slots ? slots.checkbox : null;
|
|
830
|
-
let
|
|
841
|
+
let indeterminate = false;
|
|
831
842
|
let isChecked = false;
|
|
832
|
-
|
|
833
|
-
let isDisabled =
|
|
843
|
+
let isVisible = true;
|
|
844
|
+
let isDisabled = false;
|
|
834
845
|
const ons = {};
|
|
835
846
|
if (!isHidden) {
|
|
836
847
|
const rowid = getRowid($table, row);
|
|
837
848
|
isChecked = !!updateCheckboxFlag && XEUtils.get(row, checkField);
|
|
849
|
+
if (checkMethod && isRowGroupStatus && $table.isAggregateRecord(row)) {
|
|
850
|
+
const childList = row[mapChildrenField || ''];
|
|
851
|
+
if (!childList || !childList.length || childList.every(item => !checkMethod({ $table, row: item }))) {
|
|
852
|
+
isDisabled = true;
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
else {
|
|
856
|
+
isVisible = !visibleMethod || visibleMethod({ $table, row });
|
|
857
|
+
isDisabled = checkMethod ? !checkMethod({ $table, row }) : !!checkMethod;
|
|
858
|
+
}
|
|
859
|
+
if (treeConfig || isRowGroupStatus) {
|
|
860
|
+
indeterminate = !!treeIndeterminateRowMaps[rowid];
|
|
861
|
+
}
|
|
838
862
|
ons.onClick = (evnt) => {
|
|
839
863
|
if (!isDisabled && isVisible) {
|
|
840
864
|
$table.triggerCheckRowEvent(evnt, params, !isChecked);
|
|
841
865
|
}
|
|
842
866
|
};
|
|
843
|
-
if (checkMethod) {
|
|
844
|
-
isDisabled = !checkMethod({ $table, row });
|
|
845
|
-
}
|
|
846
|
-
if (treeConfig || isRowGroupStatus) {
|
|
847
|
-
isIndeterminate = !!treeIndeterminateRowMaps[rowid];
|
|
848
|
-
}
|
|
849
867
|
}
|
|
850
|
-
const checkboxParams = Object.assign(Object.assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate
|
|
868
|
+
const checkboxParams = Object.assign(Object.assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate });
|
|
851
869
|
if (checkboxSlot) {
|
|
852
870
|
return renderCellBaseVNs(params, $table.callSlot(checkboxSlot, checkboxParams));
|
|
853
871
|
}
|
|
854
872
|
const checkVNs = [];
|
|
855
873
|
if (isVisible) {
|
|
856
874
|
checkVNs.push(h('span', {
|
|
857
|
-
class: ['vxe-checkbox--icon',
|
|
875
|
+
class: ['vxe-checkbox--icon', indeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : (isDisabled ? getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED))]
|
|
858
876
|
}));
|
|
859
877
|
if (defaultSlot || labelField) {
|
|
860
878
|
checkVNs.push(h('span', {
|
|
@@ -866,7 +884,7 @@ export const Cell = {
|
|
|
866
884
|
h('span', Object.assign({ class: ['vxe-cell--checkbox', {
|
|
867
885
|
'is--checked': isChecked,
|
|
868
886
|
'is--disabled': isDisabled,
|
|
869
|
-
'is--indeterminate': indeterminateField && !isChecked ? row[indeterminateField] :
|
|
887
|
+
'is--indeterminate': indeterminateField && !isChecked ? row[indeterminateField] : indeterminate,
|
|
870
888
|
'is--hidden': !isVisible
|
|
871
889
|
}] }, ons), checkVNs)
|
|
872
890
|
]);
|
package/es/table/src/footer.js
CHANGED
|
@@ -29,7 +29,7 @@ export default defineVxeComponent({
|
|
|
29
29
|
setup(props) {
|
|
30
30
|
const $xeTable = inject('$xeTable', {});
|
|
31
31
|
const { xID, props: tableProps, reactData: tableReactData, internalData: tableInternalData } = $xeTable;
|
|
32
|
-
const {
|
|
32
|
+
const { computeFooterTooltipOpts, computeColumnOpts, computeCellOpts, computeFooterCellOpts, computeDefaultRowHeight, computeResizableOpts, computeVirtualXOpts } = $xeTable.getComputeMaps();
|
|
33
33
|
const refElem = ref();
|
|
34
34
|
const refFooterScroll = ref();
|
|
35
35
|
const refFooterTable = ref();
|
|
@@ -44,7 +44,7 @@ export default defineVxeComponent({
|
|
|
44
44
|
const { scrollXLoad, scrollYLoad, overflowX, currentColumn, mergeFootFlag } = tableReactData;
|
|
45
45
|
const { fullColumnIdData, mergeFooterList, mergeFooterCellMaps, scrollXStore } = tableInternalData;
|
|
46
46
|
const virtualXOpts = computeVirtualXOpts.value;
|
|
47
|
-
const
|
|
47
|
+
const footerTooltipOpts = computeFooterTooltipOpts.value;
|
|
48
48
|
const resizableOpts = computeResizableOpts.value;
|
|
49
49
|
const { isAllColumnDrag } = resizableOpts;
|
|
50
50
|
const columnOpts = computeColumnOpts.value;
|
|
@@ -58,7 +58,7 @@ export default defineVxeComponent({
|
|
|
58
58
|
const colRest = fullColumnIdData[colid] || {};
|
|
59
59
|
const renderOpts = editRender || cellRender;
|
|
60
60
|
const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
|
|
61
|
-
const showAllTip =
|
|
61
|
+
const showAllTip = footerTooltipOpts.showAll;
|
|
62
62
|
const fixedHiddenColumn = overflowX && (fixedType ? column.fixed !== fixedType : !!column.fixed);
|
|
63
63
|
const isPadding = XEUtils.isBoolean(footerCellOpts.padding) ? footerCellOpts.padding : cellOpts.padding;
|
|
64
64
|
const footOverflow = XEUtils.eqNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
|
package/es/table/src/header.js
CHANGED
package/es/table/src/props.js
CHANGED
|
@@ -241,6 +241,10 @@ export const tableProps = {
|
|
|
241
241
|
checkboxConfig: Object,
|
|
242
242
|
// tooltip 配置项
|
|
243
243
|
tooltipConfig: Object,
|
|
244
|
+
// 表头 tooltip 配置项
|
|
245
|
+
headerTooltipConfig: Object,
|
|
246
|
+
// 表尾 tooltip 配置项
|
|
247
|
+
footerTooltipConfig: Object,
|
|
244
248
|
// 导出配置项
|
|
245
249
|
exportConfig: Object,
|
|
246
250
|
// 导入配置项
|
package/es/table/src/table.js
CHANGED
|
@@ -509,6 +509,12 @@ export default defineVxeComponent({
|
|
|
509
509
|
const computeTooltipOpts = computed(() => {
|
|
510
510
|
return Object.assign({}, getConfig().tooltip, getConfig().table.tooltipConfig, props.tooltipConfig);
|
|
511
511
|
});
|
|
512
|
+
const computeHeaderTooltipOpts = computed(() => {
|
|
513
|
+
return Object.assign({}, getConfig().tooltip, getConfig().table.headerTooltipConfig, props.headerTooltipConfig);
|
|
514
|
+
});
|
|
515
|
+
const computeFooterTooltipOpts = computed(() => {
|
|
516
|
+
return Object.assign({}, getConfig().tooltip, getConfig().table.footerTooltipConfig, props.footerTooltipConfig);
|
|
517
|
+
});
|
|
512
518
|
const computeTableTipConfig = computed(() => {
|
|
513
519
|
const { tooltipStore } = reactData;
|
|
514
520
|
const tooltipOpts = computeTooltipOpts.value;
|
|
@@ -585,6 +591,10 @@ export default defineVxeComponent({
|
|
|
585
591
|
return footerOpts && footerOpts.options ? footerOpts.options : [];
|
|
586
592
|
});
|
|
587
593
|
const computeIsMenu = computed(() => {
|
|
594
|
+
const isContentMenu = computeIsContentMenu.value;
|
|
595
|
+
return isContentMenu;
|
|
596
|
+
});
|
|
597
|
+
const computeIsContentMenu = computed(() => {
|
|
588
598
|
const menuOpts = computeMenuOpts.value;
|
|
589
599
|
const headerMenu = computeHeaderMenu.value;
|
|
590
600
|
const bodyMenu = computeBodyMenu.value;
|
|
@@ -781,6 +791,8 @@ export default defineVxeComponent({
|
|
|
781
791
|
computeRadioOpts,
|
|
782
792
|
computeCheckboxOpts,
|
|
783
793
|
computeTooltipOpts,
|
|
794
|
+
computeHeaderTooltipOpts,
|
|
795
|
+
computeFooterTooltipOpts,
|
|
784
796
|
computeEditOpts,
|
|
785
797
|
computeSortOpts,
|
|
786
798
|
computeFilterOpts,
|
|
@@ -793,6 +805,7 @@ export default defineVxeComponent({
|
|
|
793
805
|
computeBodyMenu,
|
|
794
806
|
computeFooterMenu,
|
|
795
807
|
computeIsMenu,
|
|
808
|
+
computeIsContentMenu,
|
|
796
809
|
computeMenuList,
|
|
797
810
|
computeMenuOpts,
|
|
798
811
|
computeExportOpts,
|
|
@@ -7459,7 +7472,7 @@ export default defineVxeComponent({
|
|
|
7459
7472
|
const { mouseConfig, keyboardConfig, treeConfig, editConfig, highlightCurrentRow, highlightCurrentColumn } = props;
|
|
7460
7473
|
const { ctxMenuStore, editStore, currentRow } = reactData;
|
|
7461
7474
|
const { afterFullData } = internalData;
|
|
7462
|
-
const
|
|
7475
|
+
const isContentMenu = computeIsContentMenu.value;
|
|
7463
7476
|
const bodyMenu = computeBodyMenu.value;
|
|
7464
7477
|
const keyboardOpts = computeKeyboardOpts.value;
|
|
7465
7478
|
const mouseOpts = computeMouseOpts.value;
|
|
@@ -7487,7 +7500,7 @@ export default defineVxeComponent({
|
|
|
7487
7500
|
const hasShiftKey = evnt.shiftKey;
|
|
7488
7501
|
const isAltKey = evnt.altKey;
|
|
7489
7502
|
const operArrow = isLeftArrow || isUpArrow || isRightArrow || isDwArrow;
|
|
7490
|
-
const operCtxMenu =
|
|
7503
|
+
const operCtxMenu = isContentMenu && ctxMenuStore.visible && (isEnter || isSpacebar || operArrow);
|
|
7491
7504
|
const isEditStatus = isEnableConf(editConfig) && actived.column && actived.row;
|
|
7492
7505
|
const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
|
|
7493
7506
|
if (operCtxMenu) {
|
|
@@ -8063,16 +8076,15 @@ export default defineVxeComponent({
|
|
|
8063
8076
|
* @param {Event} evnt 事件
|
|
8064
8077
|
* @param {Row} row 行对象
|
|
8065
8078
|
*/
|
|
8066
|
-
const handleTooltip = (evnt, type, tdEl, overflowElem, tipElem, params) => {
|
|
8079
|
+
const handleTooltip = (evnt, tipOpts, type, tdEl, overflowElem, tipElem, params) => {
|
|
8067
8080
|
const tipOverEl = overflowElem || tdEl;
|
|
8068
8081
|
if (!tipOverEl) {
|
|
8069
8082
|
return nextTick();
|
|
8070
8083
|
}
|
|
8071
8084
|
params.cell = tdEl;
|
|
8072
8085
|
const { tooltipStore } = reactData;
|
|
8073
|
-
const tooltipOpts = computeTooltipOpts.value;
|
|
8074
8086
|
const { column, row } = params;
|
|
8075
|
-
const { showAll, contentMethod } =
|
|
8087
|
+
const { showAll, contentMethod } = tipOpts;
|
|
8076
8088
|
const customContent = contentMethod ? contentMethod(params) : null;
|
|
8077
8089
|
const useCustom = contentMethod && !XEUtils.eqNull(customContent);
|
|
8078
8090
|
const content = useCustom ? customContent : XEUtils.toString(column.type === 'html' ? tipOverEl.innerText : tipOverEl.textContent).trim();
|
|
@@ -8085,7 +8097,7 @@ export default defineVxeComponent({
|
|
|
8085
8097
|
visible: true,
|
|
8086
8098
|
content: tipContent,
|
|
8087
8099
|
type,
|
|
8088
|
-
currOpts:
|
|
8100
|
+
currOpts: tipOpts
|
|
8089
8101
|
});
|
|
8090
8102
|
nextTick(() => {
|
|
8091
8103
|
const $tooltip = refTooltip.value;
|
|
@@ -8141,8 +8153,11 @@ export default defineVxeComponent({
|
|
|
8141
8153
|
const parentPaddingSize = height === '100%' || height === 'auto' ? getPaddingTopBottomSize(parentElem) : 0;
|
|
8142
8154
|
let parentWrapperHeight = 0;
|
|
8143
8155
|
if (parentElem) {
|
|
8144
|
-
if ($
|
|
8145
|
-
parentWrapperHeight = $
|
|
8156
|
+
if ($xeGantt && hasClass(parentElem, 'vxe-gantt--table-wrapper')) {
|
|
8157
|
+
parentWrapperHeight = $xeGantt.getParentHeight();
|
|
8158
|
+
}
|
|
8159
|
+
else if ($xeGrid && hasClass(parentElem, 'vxe-grid--table-wrapper')) {
|
|
8160
|
+
parentWrapperHeight = $xeGrid.getParentHeight();
|
|
8146
8161
|
}
|
|
8147
8162
|
else {
|
|
8148
8163
|
parentWrapperHeight = parentElem.clientHeight;
|
|
@@ -8989,6 +9004,8 @@ export default defineVxeComponent({
|
|
|
8989
9004
|
const { treeConfig } = props;
|
|
8990
9005
|
const { isRowGroupStatus } = reactData;
|
|
8991
9006
|
const { afterFullData, afterTreeFullData, afterGroupFullData, checkboxReserveRowMap, selectCheckboxMaps, treeIndeterminateRowMaps } = internalData;
|
|
9007
|
+
const aggregateOpts = computeAggregateOpts.value;
|
|
9008
|
+
const { mapChildrenField } = aggregateOpts;
|
|
8992
9009
|
const checkboxOpts = computeCheckboxOpts.value;
|
|
8993
9010
|
const { checkField, checkMethod, showReserveStatus } = checkboxOpts;
|
|
8994
9011
|
const { handleGetRowId } = createHandleGetRowId($xeTable);
|
|
@@ -9002,7 +9019,21 @@ export default defineVxeComponent({
|
|
|
9002
9019
|
? row => {
|
|
9003
9020
|
const childRowid = handleGetRowId(row);
|
|
9004
9021
|
const selected = checkField ? XEUtils.get(row, checkField) : selectCheckboxMaps[childRowid];
|
|
9005
|
-
if (
|
|
9022
|
+
if (isRowGroupStatus && $xeTable.isAggregateRecord(row)) {
|
|
9023
|
+
const childList = row[mapChildrenField || ''];
|
|
9024
|
+
if (selected) {
|
|
9025
|
+
vLen++;
|
|
9026
|
+
sLen++;
|
|
9027
|
+
}
|
|
9028
|
+
else if (treeIndeterminateRowMaps[childRowid]) {
|
|
9029
|
+
vLen++;
|
|
9030
|
+
hLen++;
|
|
9031
|
+
}
|
|
9032
|
+
else if (childList && childList.length && childList.some(item => checkMethod({ $table: $xeTable, row: item }))) {
|
|
9033
|
+
vLen++;
|
|
9034
|
+
}
|
|
9035
|
+
}
|
|
9036
|
+
else if (checkMethod({ $table: $xeTable, row })) {
|
|
9006
9037
|
if (selected) {
|
|
9007
9038
|
sLen++;
|
|
9008
9039
|
}
|
|
@@ -9199,6 +9230,7 @@ export default defineVxeComponent({
|
|
|
9199
9230
|
*/
|
|
9200
9231
|
triggerHeaderTooltipEvent(evnt, params) {
|
|
9201
9232
|
const { tooltipStore } = reactData;
|
|
9233
|
+
const headerTooltipOpts = computeHeaderTooltipOpts.value;
|
|
9202
9234
|
const { column } = params;
|
|
9203
9235
|
handleTargetEnterEvent(true);
|
|
9204
9236
|
const titleElem = evnt.currentTarget;
|
|
@@ -9219,7 +9251,7 @@ export default defineVxeComponent({
|
|
|
9219
9251
|
}
|
|
9220
9252
|
if (tooltipStore.column !== column || !tooltipStore.visible) {
|
|
9221
9253
|
const ctEl = thEl.querySelector('.vxe-cell--title');
|
|
9222
|
-
handleTooltip(evnt, 'header', thEl, (hasClass(thEl, 'col--ellipsis') ? ctEl : cWrapperEl) || cWrapperEl, ctEl || cellEl, params);
|
|
9254
|
+
handleTooltip(evnt, headerTooltipOpts, 'header', thEl, (hasClass(thEl, 'col--ellipsis') ? ctEl : cWrapperEl) || cWrapperEl, ctEl || cellEl, params);
|
|
9223
9255
|
}
|
|
9224
9256
|
},
|
|
9225
9257
|
/**
|
|
@@ -9229,6 +9261,7 @@ export default defineVxeComponent({
|
|
|
9229
9261
|
const { editConfig } = props;
|
|
9230
9262
|
const { editStore } = reactData;
|
|
9231
9263
|
const { tooltipStore } = reactData;
|
|
9264
|
+
const tooltipOpts = computeTooltipOpts.value;
|
|
9232
9265
|
const editOpts = computeEditOpts.value;
|
|
9233
9266
|
const { actived } = editStore;
|
|
9234
9267
|
const { row, column } = params;
|
|
@@ -9255,7 +9288,7 @@ export default defineVxeComponent({
|
|
|
9255
9288
|
if (!tipEl) {
|
|
9256
9289
|
tipEl = ctEl;
|
|
9257
9290
|
}
|
|
9258
|
-
handleTooltip(evnt, 'body', tdEl, ovEl || ctEl, tipEl, params);
|
|
9291
|
+
handleTooltip(evnt, tooltipOpts, 'body', tdEl, ovEl || ctEl, tipEl, params);
|
|
9259
9292
|
}
|
|
9260
9293
|
},
|
|
9261
9294
|
/**
|
|
@@ -9264,6 +9297,7 @@ export default defineVxeComponent({
|
|
|
9264
9297
|
triggerFooterTooltipEvent(evnt, params) {
|
|
9265
9298
|
const { column } = params;
|
|
9266
9299
|
const { tooltipStore } = reactData;
|
|
9300
|
+
const footerTooltipOpts = computeFooterTooltipOpts.value;
|
|
9267
9301
|
const tdEl = evnt.currentTarget;
|
|
9268
9302
|
handleTargetEnterEvent(tooltipStore.column !== column || !!tooltipStore.row);
|
|
9269
9303
|
if (tooltipStore.column !== column || !tooltipStore.visible) {
|
|
@@ -9276,7 +9310,7 @@ export default defineVxeComponent({
|
|
|
9276
9310
|
if (!tipEl) {
|
|
9277
9311
|
tipEl = ctEl;
|
|
9278
9312
|
}
|
|
9279
|
-
handleTooltip(evnt, 'footer', tdEl, ovEl || ctEl, tipEl, params);
|
|
9313
|
+
handleTooltip(evnt, footerTooltipOpts, 'footer', tdEl, ovEl || ctEl, tipEl, params);
|
|
9280
9314
|
}
|
|
9281
9315
|
},
|
|
9282
9316
|
handleTargetLeaveEvent() {
|
|
@@ -9516,7 +9550,7 @@ export default defineVxeComponent({
|
|
|
9516
9550
|
}
|
|
9517
9551
|
}
|
|
9518
9552
|
}
|
|
9519
|
-
if (!checkMethod || checkMethod({ $table: $xeTable, row })) {
|
|
9553
|
+
if (isRowGroupStatus || !checkMethod || checkMethod({ $table: $xeTable, row })) {
|
|
9520
9554
|
$xeTable.handleBatchSelectRows([row], checked);
|
|
9521
9555
|
$xeTable.checkSelectionStatus();
|
|
9522
9556
|
dispatchEvent('checkbox-change', Object.assign({
|
|
@@ -12070,7 +12104,7 @@ export default defineVxeComponent({
|
|
|
12070
12104
|
const mouseOpts = computeMouseOpts.value;
|
|
12071
12105
|
const areaOpts = computeAreaOpts.value;
|
|
12072
12106
|
const loadingOpts = computeLoadingOpts.value;
|
|
12073
|
-
const
|
|
12107
|
+
const isContentMenu = computeIsContentMenu.value;
|
|
12074
12108
|
const currLoading = reactData.isColLoading || reactData.isRowLoading || loading;
|
|
12075
12109
|
const resizableOpts = computeResizableOpts.value;
|
|
12076
12110
|
const isArea = mouseConfig && mouseOpts.area;
|
|
@@ -12279,7 +12313,7 @@ export default defineVxeComponent({
|
|
|
12279
12313
|
/**
|
|
12280
12314
|
* 快捷菜单
|
|
12281
12315
|
*/
|
|
12282
|
-
|
|
12316
|
+
isContentMenu
|
|
12283
12317
|
? h(TableMenuPanelComponent, {
|
|
12284
12318
|
key: 'tm',
|
|
12285
12319
|
ref: refTableMenu
|
package/es/ui/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VxeUI } from '@vxe-ui/core';
|
|
2
2
|
import { getFuncText } from './src/utils';
|
|
3
|
-
export const version = "4.16.
|
|
3
|
+
export const version = "4.16.11";
|
|
4
4
|
VxeUI.version = version;
|
|
5
5
|
VxeUI.tableVersion = version;
|
|
6
6
|
VxeUI.setConfig({
|
|
@@ -62,6 +62,12 @@ VxeUI.setConfig({
|
|
|
62
62
|
tooltipConfig: {
|
|
63
63
|
enterable: true
|
|
64
64
|
},
|
|
65
|
+
headerTooltipConfig: {
|
|
66
|
+
enterable: true
|
|
67
|
+
},
|
|
68
|
+
footerTooltipConfig: {
|
|
69
|
+
enterable: true
|
|
70
|
+
},
|
|
65
71
|
validConfig: {
|
|
66
72
|
showMessage: true,
|
|
67
73
|
autoClear: true,
|
package/es/ui/src/log.js
CHANGED
package/lib/grid/src/grid.js
CHANGED
|
@@ -31,7 +31,7 @@ const {
|
|
|
31
31
|
renderEmptyElement
|
|
32
32
|
} = _ui.VxeUI;
|
|
33
33
|
const tableComponentPropKeys = Object.keys(_props2.tableProps);
|
|
34
|
-
const tableComponentMethodKeys = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'setRow', 'createData', 'createRow', 'revertData', 'clearData', 'isRemoveByRow', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getFullColumns', 'getData', 'getCheckboxRecords', 'getParentRow', 'getTreeRowChildren', 'getTreeParentRow', 'getRowSeq', 'getRowById', 'getRowid', 'getTableData', 'getFullData', 'setColumnFixed', 'clearColumnFixed', 'setColumnWidth', 'getColumnWidth', 'recalcRowHeight', 'setRowHeightConf', 'getRowHeightConf', 'setRowHeight', 'getRowHeight', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'setCheckboxRowKey', 'isCheckedByCheckboxRow', 'isCheckedByCheckboxRowKey', 'isIndeterminateByCheckboxRow', 'isIndeterminateByCheckboxRowKey', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'isCheckedByRadioRowKey', 'setRadioRow', 'setRadioRowKey', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'setPendingRow', 'togglePendingRow', 'hasPendingByRow', 'isPendingByRow', 'getPendingRecords', 'clearPendingRow', 'setFilterByEvent', 'sort', 'setSort', 'setSortByEvent', 'clearSort', 'clearSortByEvent', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'clearFilterByEvent', 'isActiveFilterByColumn', 'isRowExpandLoaded', 'clearRowExpandLoaded', 'reloadRowExpand', 'reloadRowExpand', 'toggleRowExpand', 'setAllRowExpand', 'setRowExpand', 'isExpandByRow', 'isRowExpandByRow', 'clearRowExpand', 'clearRowExpandReserve', 'getRowExpandRecords', 'getTreeExpandRecords', 'isTreeExpandLoaded', 'clearTreeExpandLoaded', 'reloadTreeExpand', 'reloadTreeChilds', 'toggleTreeExpand', 'setAllTreeExpand', 'setTreeExpand', 'isTreeExpandByRow', 'clearTreeExpand', 'clearTreeExpandReserve', 'getScroll', 'scrollTo', 'scrollToRow', 'scrollToColumn', 'clearScroll', 'updateFooter', 'updateStatus', 'setMergeCells', 'removeInsertRow', 'removeMergeCells', 'getMergeCells', 'setMergeHeaderCells', 'removeMergeHeaderCells', 'getMergeHeaderCells', 'clearMergeHeaderCells', 'clearMergeCells', 'setMergeFooterItems', 'removeMergeFooterItems', 'getMergeFooterItems', 'clearMergeFooterItems', 'getCustomStoreData', 'setRowGroupExpand', 'setRowGroupExpandByField', 'setAllRowGroupExpand', 'clearRowGroupExpand', 'isRowGroupExpandByRow', 'isRowGroupRecord', 'isAggregateRecord', 'isAggregateExpandByRow', 'getAggregateContentByRow', 'getAggregateRowChildren', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect', 'connectToolbar'];
|
|
34
|
+
const tableComponentMethodKeys = ['clearAll', 'syncData', 'updateData', 'loadData', 'reloadData', 'reloadRow', 'loadColumn', 'reloadColumn', 'getRowNode', 'getColumnNode', 'getRowIndex', 'getVTRowIndex', 'getVMRowIndex', 'getColumnIndex', 'getVTColumnIndex', 'getVMColumnIndex', 'setRow', 'createData', 'createRow', 'revertData', 'clearData', 'isRemoveByRow', 'isInsertByRow', 'isUpdateByRow', 'getColumns', 'getColumnById', 'getColumnByField', 'getTableColumn', 'getFullColumns', 'getData', 'getCheckboxRecords', 'getParentRow', 'getTreeRowChildren', 'getTreeRowLevel', 'getTreeParentRow', 'getRowSeq', 'getRowById', 'getRowid', 'getTableData', 'getFullData', 'setColumnFixed', 'clearColumnFixed', 'setColumnWidth', 'getColumnWidth', 'recalcRowHeight', 'setRowHeightConf', 'getRowHeightConf', 'setRowHeight', 'getRowHeight', 'hideColumn', 'showColumn', 'resetColumn', 'refreshColumn', 'refreshScroll', 'recalculate', 'closeTooltip', 'isAllCheckboxChecked', 'isAllCheckboxIndeterminate', 'getCheckboxIndeterminateRecords', 'setCheckboxRow', 'setCheckboxRowKey', 'isCheckedByCheckboxRow', 'isCheckedByCheckboxRowKey', 'isIndeterminateByCheckboxRow', 'isIndeterminateByCheckboxRowKey', 'toggleCheckboxRow', 'setAllCheckboxRow', 'getRadioReserveRecord', 'clearRadioReserve', 'getCheckboxReserveRecords', 'clearCheckboxReserve', 'toggleAllCheckboxRow', 'clearCheckboxRow', 'setCurrentRow', 'isCheckedByRadioRow', 'isCheckedByRadioRowKey', 'setRadioRow', 'setRadioRowKey', 'clearCurrentRow', 'clearRadioRow', 'getCurrentRecord', 'getRadioRecord', 'getCurrentColumn', 'setCurrentColumn', 'clearCurrentColumn', 'setPendingRow', 'togglePendingRow', 'hasPendingByRow', 'isPendingByRow', 'getPendingRecords', 'clearPendingRow', 'setFilterByEvent', 'sort', 'setSort', 'setSortByEvent', 'clearSort', 'clearSortByEvent', 'isSort', 'getSortColumns', 'closeFilter', 'isFilter', 'clearFilterByEvent', 'isActiveFilterByColumn', 'isRowExpandLoaded', 'clearRowExpandLoaded', 'reloadRowExpand', 'reloadRowExpand', 'toggleRowExpand', 'setAllRowExpand', 'setRowExpand', 'isExpandByRow', 'isRowExpandByRow', 'clearRowExpand', 'clearRowExpandReserve', 'getRowExpandRecords', 'getTreeExpandRecords', 'isTreeExpandLoaded', 'clearTreeExpandLoaded', 'reloadTreeExpand', 'reloadTreeChilds', 'toggleTreeExpand', 'setAllTreeExpand', 'setTreeExpand', 'isTreeExpandByRow', 'clearTreeExpand', 'clearTreeExpandReserve', 'getScroll', 'scrollTo', 'scrollToRow', 'scrollToColumn', 'clearScroll', 'updateFooter', 'updateStatus', 'setMergeCells', 'removeInsertRow', 'removeMergeCells', 'getMergeCells', 'setMergeHeaderCells', 'removeMergeHeaderCells', 'getMergeHeaderCells', 'clearMergeHeaderCells', 'clearMergeCells', 'setMergeFooterItems', 'removeMergeFooterItems', 'getMergeFooterItems', 'clearMergeFooterItems', 'getCustomStoreData', 'setRowGroupExpand', 'setRowGroupExpandByField', 'setAllRowGroupExpand', 'clearRowGroupExpand', 'isRowGroupExpandByRow', 'isRowGroupRecord', 'isAggregateRecord', 'isAggregateExpandByRow', 'getAggregateContentByRow', 'getAggregateRowChildren', 'setRowGroups', 'clearRowGroups', 'openTooltip', 'moveColumnTo', 'moveRowTo', 'getCellLabel', 'getCellElement', 'focus', 'blur', 'connect', 'connectToolbar'];
|
|
35
35
|
function createInternalData() {
|
|
36
36
|
return {};
|
|
37
37
|
}
|