vxe-table 4.13.0-beta.2 → 4.13.0-beta.4
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/style.css +1 -1
- package/es/table/module/filter/hook.js +11 -38
- package/es/table/src/cell.js +7 -7
- package/es/table/src/emits.js +4 -0
- package/es/table/src/table.js +29 -8
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +20 -48
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/filter/hook.js +10 -39
- package/lib/table/module/filter/hook.min.js +1 -1
- package/lib/table/src/cell.js +4 -4
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/emits.js +1 -1
- package/lib/table/src/emits.min.js +1 -1
- package/lib/table/src/table.js +39 -14
- package/lib/table/src/table.min.js +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/package.json +2 -2
- package/packages/grid/src/grid.ts +1 -1
- package/packages/table/module/filter/hook.ts +10 -34
- package/packages/table/src/cell.ts +7 -7
- package/packages/table/src/emits.ts +7 -1
- package/packages/table/src/table.ts +27 -8
- /package/es/{iconfont.1743992184381.ttf → iconfont.1744095189878.ttf} +0 -0
- /package/es/{iconfont.1743992184381.woff → iconfont.1744095189878.woff} +0 -0
- /package/es/{iconfont.1743992184381.woff2 → iconfont.1744095189878.woff2} +0 -0
- /package/lib/{iconfont.1743992184381.ttf → iconfont.1744095189878.ttf} +0 -0
- /package/lib/{iconfont.1743992184381.woff → iconfont.1744095189878.woff} +0 -0
- /package/lib/{iconfont.1743992184381.woff2 → iconfont.1744095189878.woff2} +0 -0
|
@@ -2,7 +2,7 @@ import { nextTick } from 'vue';
|
|
|
2
2
|
import XEUtils from 'xe-utils';
|
|
3
3
|
import { VxeUI } from '../../../ui';
|
|
4
4
|
import { toFilters, handleFieldOrColumn, getRefElem } from '../../src/util';
|
|
5
|
-
import {
|
|
5
|
+
import { toCssUnit, triggerEvent } from '../../../ui/src/dom';
|
|
6
6
|
import { isEnableConf } from '../../../ui/src/utils';
|
|
7
7
|
const { renderer, hooks } = VxeUI;
|
|
8
8
|
const tableFilterMethodKeys = ['openFilter', 'setFilter', 'clearFilter', 'saveFilterPanel', 'resetFilterPanel', 'getCheckedFilters', 'updateFilterOptionStatus'];
|
|
@@ -66,11 +66,9 @@ hooks.add('tableFilterModule', {
|
|
|
66
66
|
filterStore.visible = false;
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
|
-
const { clientY, pageX } = evnt;
|
|
70
69
|
const el = refElem.value;
|
|
71
70
|
const tableRect = el.getBoundingClientRect();
|
|
72
|
-
const
|
|
73
|
-
const { visibleWidth } = getDomNode();
|
|
71
|
+
const btnElem = evnt.currentTarget;
|
|
74
72
|
const { filters, filterMultiple, filterRender } = column;
|
|
75
73
|
const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
|
|
76
74
|
const frMethod = column.filterRecoverMethod || (compConf ? (compConf.tableFilterRecoverMethod || compConf.filterRecoverMethod) : null);
|
|
@@ -104,44 +102,19 @@ hooks.add('tableFilterModule', {
|
|
|
104
102
|
if (!filterWrapperElem) {
|
|
105
103
|
return;
|
|
106
104
|
}
|
|
105
|
+
const btnRect = btnElem.getBoundingClientRect();
|
|
107
106
|
const filterWidth = filterWrapperElem.offsetWidth;
|
|
108
107
|
const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
|
|
109
108
|
const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
|
|
110
109
|
const centerWidth = filterWidth / 2;
|
|
111
|
-
const
|
|
112
|
-
const
|
|
113
|
-
let left, right;
|
|
114
|
-
const thEl = targetElem.offsetParent;
|
|
115
|
-
const trEl = thEl.offsetParent;
|
|
116
|
-
const style = {
|
|
117
|
-
top: `${targetElem.offsetTop + thEl.offsetTop + targetElem.offsetHeight}px`
|
|
118
|
-
};
|
|
110
|
+
const left = btnRect.left - tableRect.left - centerWidth;
|
|
111
|
+
const top = btnRect.top - tableRect.top + btnElem.clientHeight;
|
|
119
112
|
// 判断面板不能大于表格高度
|
|
120
|
-
const maxHeight = Math.max(40, el.clientHeight -
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
right = (thEl.offsetWidth - targetElem.offsetLeft) + (trEl.offsetWidth - trEl.offsetLeft) - column.renderWidth - centerWidth;
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
left = targetElem.offsetLeft + thEl.offsetLeft - centerWidth - headerScrollElem.scrollLeft;
|
|
129
|
-
}
|
|
130
|
-
if (left) {
|
|
131
|
-
const overflowWidth = (pageX + filterWidth - centerWidth + minMargin) - visibleWidth;
|
|
132
|
-
if (overflowWidth > 0) {
|
|
133
|
-
left -= overflowWidth;
|
|
134
|
-
}
|
|
135
|
-
style.left = `${Math.min(maxLeft, Math.max(minMargin, left))}px`;
|
|
136
|
-
}
|
|
137
|
-
else if (right) {
|
|
138
|
-
const overflowWidth = (pageX + filterWidth - centerWidth + minMargin) - visibleWidth;
|
|
139
|
-
if (overflowWidth > 0) {
|
|
140
|
-
right += overflowWidth;
|
|
141
|
-
}
|
|
142
|
-
style.right = `${Math.max(minMargin, right)}px`;
|
|
143
|
-
}
|
|
144
|
-
filterStore.style = style;
|
|
113
|
+
const maxHeight = Math.max(40, el.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
|
|
114
|
+
filterStore.style = {
|
|
115
|
+
top: toCssUnit(top),
|
|
116
|
+
left: toCssUnit(left)
|
|
117
|
+
};
|
|
145
118
|
filterStore.maxHeight = maxHeight;
|
|
146
119
|
});
|
|
147
120
|
}
|
|
@@ -251,7 +224,7 @@ hooks.add('tableFilterModule', {
|
|
|
251
224
|
return $xeTable.scrollToColumn(column).then(() => {
|
|
252
225
|
const headerWrapperElem = getRefElem(elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper']);
|
|
253
226
|
if (headerWrapperElem) {
|
|
254
|
-
const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-filter
|
|
227
|
+
const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-cell--filter`);
|
|
255
228
|
triggerEvent(filterBtnElem, 'click');
|
|
256
229
|
}
|
|
257
230
|
});
|
package/es/table/src/cell.js
CHANGED
|
@@ -882,16 +882,16 @@ export const Cell = {
|
|
|
882
882
|
h('span', {
|
|
883
883
|
class: ['vxe-cell--filter', {
|
|
884
884
|
'is--active': filterStore.visible && filterStore.column === column
|
|
885
|
-
}]
|
|
885
|
+
}],
|
|
886
|
+
onClick(evnt) {
|
|
887
|
+
if ($table.triggerFilterEvent) {
|
|
888
|
+
$table.triggerFilterEvent(evnt, params.column, params);
|
|
889
|
+
}
|
|
890
|
+
}
|
|
886
891
|
}, [
|
|
887
892
|
h('i', {
|
|
888
893
|
class: ['vxe-filter--btn', hasFilter ? (iconMatch || getIcon().TABLE_FILTER_MATCH) : (iconNone || getIcon().TABLE_FILTER_NONE)],
|
|
889
|
-
title: getI18n('vxe.table.filter')
|
|
890
|
-
onClick(evnt) {
|
|
891
|
-
if ($table.triggerFilterEvent) {
|
|
892
|
-
$table.triggerFilterEvent(evnt, params.column, params);
|
|
893
|
-
}
|
|
894
|
-
}
|
|
894
|
+
title: getI18n('vxe.table.filter')
|
|
895
895
|
})
|
|
896
896
|
])
|
|
897
897
|
];
|
package/es/table/src/emits.js
CHANGED
package/es/table/src/table.js
CHANGED
|
@@ -8105,7 +8105,7 @@ export default defineComponent({
|
|
|
8105
8105
|
isChange = oldValue === newValue;
|
|
8106
8106
|
if (isChange) {
|
|
8107
8107
|
newValue = null;
|
|
8108
|
-
|
|
8108
|
+
$xeTable.clearRadioRow();
|
|
8109
8109
|
}
|
|
8110
8110
|
}
|
|
8111
8111
|
if (isChange) {
|
|
@@ -8113,25 +8113,40 @@ export default defineComponent({
|
|
|
8113
8113
|
}
|
|
8114
8114
|
},
|
|
8115
8115
|
triggerCurrentColumnEvent(evnt, params) {
|
|
8116
|
+
const { currentColumn: oldValue } = reactData;
|
|
8116
8117
|
const columnOpts = computeColumnOpts.value;
|
|
8117
|
-
const
|
|
8118
|
-
const
|
|
8119
|
-
|
|
8120
|
-
|
|
8118
|
+
const currentColumnOpts = computeCurrentColumnOpts.value;
|
|
8119
|
+
const beforeRowMethod = currentColumnOpts.beforeSelectMethod || columnOpts.currentMethod;
|
|
8120
|
+
const { column: newValue } = params;
|
|
8121
|
+
const isChange = oldValue !== newValue;
|
|
8122
|
+
if (!beforeRowMethod || beforeRowMethod({ column: newValue, $table: $xeTable })) {
|
|
8123
|
+
$xeTable.setCurrentColumn(newValue);
|
|
8124
|
+
if (isChange) {
|
|
8125
|
+
dispatchEvent('current-column-change', Object.assign({ oldValue, newValue }, params), evnt);
|
|
8126
|
+
}
|
|
8127
|
+
}
|
|
8128
|
+
else {
|
|
8129
|
+
dispatchEvent('current-column-disabled', params, evnt);
|
|
8121
8130
|
}
|
|
8122
8131
|
},
|
|
8123
8132
|
triggerCurrentRowEvent(evnt, params) {
|
|
8124
8133
|
const { currentRow: oldValue } = reactData;
|
|
8125
8134
|
const rowOpts = computeRowOpts.value;
|
|
8126
|
-
const
|
|
8135
|
+
const currentRowOpts = computeCurrentRowOpts.value;
|
|
8136
|
+
const beforeRowMethod = currentRowOpts.beforeSelectMethod || rowOpts.currentMethod;
|
|
8127
8137
|
const { row: newValue } = params;
|
|
8128
8138
|
const isChange = oldValue !== newValue;
|
|
8129
|
-
if (!
|
|
8130
|
-
|
|
8139
|
+
if (!beforeRowMethod || beforeRowMethod({ row: newValue, $table: $xeTable })) {
|
|
8140
|
+
$xeTable.setCurrentRow(newValue);
|
|
8131
8141
|
if (isChange) {
|
|
8142
|
+
dispatchEvent('current-row-change', Object.assign({ oldValue, newValue }, params), evnt);
|
|
8143
|
+
// 已废弃
|
|
8132
8144
|
dispatchEvent('current-change', Object.assign({ oldValue, newValue }, params), evnt);
|
|
8133
8145
|
}
|
|
8134
8146
|
}
|
|
8147
|
+
else {
|
|
8148
|
+
dispatchEvent('current-row-disabled', params, evnt);
|
|
8149
|
+
}
|
|
8135
8150
|
},
|
|
8136
8151
|
/**
|
|
8137
8152
|
* 展开行事件
|
|
@@ -10527,6 +10542,12 @@ export default defineComponent({
|
|
|
10527
10542
|
if (checkboxOpts.halfField) {
|
|
10528
10543
|
warnLog('vxe.error.delProp', ['checkbox-config.halfField', 'checkbox-config.indeterminateField']);
|
|
10529
10544
|
}
|
|
10545
|
+
if (rowOpts.currentMethod) {
|
|
10546
|
+
warnLog('vxe.error.delProp', ['row-config.currentMethod', 'current-row-config.beforeSelectMethod']);
|
|
10547
|
+
}
|
|
10548
|
+
if (columnOpts.currentMethod) {
|
|
10549
|
+
warnLog('vxe.error.delProp', ['row-config.currentMethod', 'current-column-config.beforeSelectMethod']);
|
|
10550
|
+
}
|
|
10530
10551
|
if ((rowOpts.isCurrent || highlightCurrentRow) && props.keyboardConfig && keyboardOpts.isArrow && !XEUtils.isBoolean(currentRowOpts.isFollowSelected)) {
|
|
10531
10552
|
warnLog('vxe.error.notConflictProp', ['row-config.isCurrent', 'current-row-config.isFollowSelected']);
|
|
10532
10553
|
}
|
package/es/ui/index.js
CHANGED
package/es/ui/src/log.js
CHANGED
package/lib/index.umd.js
CHANGED
|
@@ -3138,7 +3138,7 @@ function eqEmptyValue(cellValue) {
|
|
|
3138
3138
|
;// ./packages/ui/index.ts
|
|
3139
3139
|
|
|
3140
3140
|
|
|
3141
|
-
const version = "4.13.0-beta.
|
|
3141
|
+
const version = "4.13.0-beta.4";
|
|
3142
3142
|
core_.VxeUI.version = version;
|
|
3143
3143
|
core_.VxeUI.tableVersion = version;
|
|
3144
3144
|
core_.VxeUI.setConfig({
|
|
@@ -3587,7 +3587,7 @@ var esnext_iterator_some = __webpack_require__(7550);
|
|
|
3587
3587
|
const {
|
|
3588
3588
|
log: log_log
|
|
3589
3589
|
} = core_.VxeUI;
|
|
3590
|
-
const log_version = `table v${"4.13.0-beta.
|
|
3590
|
+
const log_version = `table v${"4.13.0-beta.4"}`;
|
|
3591
3591
|
const warnLog = log_log.create('warn', log_version);
|
|
3592
3592
|
const errLog = log_log.create('error', log_version);
|
|
3593
3593
|
;// ./packages/table/src/columnInfo.ts
|
|
@@ -5806,15 +5806,15 @@ const Cell = {
|
|
|
5806
5806
|
return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('span', {
|
|
5807
5807
|
class: ['vxe-cell--filter', {
|
|
5808
5808
|
'is--active': filterStore.visible && filterStore.column === column
|
|
5809
|
-
}]
|
|
5810
|
-
}, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('i', {
|
|
5811
|
-
class: ['vxe-filter--btn', hasFilter ? iconMatch || cell_getIcon().TABLE_FILTER_MATCH : iconNone || cell_getIcon().TABLE_FILTER_NONE],
|
|
5812
|
-
title: cell_getI18n('vxe.table.filter'),
|
|
5809
|
+
}],
|
|
5813
5810
|
onClick(evnt) {
|
|
5814
5811
|
if ($table.triggerFilterEvent) {
|
|
5815
5812
|
$table.triggerFilterEvent(evnt, params.column, params);
|
|
5816
5813
|
}
|
|
5817
5814
|
}
|
|
5815
|
+
}, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('i', {
|
|
5816
|
+
class: ['vxe-filter--btn', hasFilter ? iconMatch || cell_getIcon().TABLE_FILTER_MATCH : iconNone || cell_getIcon().TABLE_FILTER_NONE],
|
|
5817
|
+
title: cell_getI18n('vxe.table.filter')
|
|
5818
5818
|
})])];
|
|
5819
5819
|
}
|
|
5820
5820
|
return [];
|
|
@@ -8322,7 +8322,7 @@ const {
|
|
|
8322
8322
|
params: Object
|
|
8323
8323
|
});
|
|
8324
8324
|
;// ./packages/table/src/emits.ts
|
|
8325
|
-
/* harmony default export */ var emits = (['update:data', 'keydown-start', 'keydown', 'keydown-end', 'paste', 'copy', 'cut', 'current-change', 'radio-change', 'checkbox-change', 'checkbox-all', 'checkbox-range-start', 'checkbox-range-change', 'checkbox-range-end', 'checkbox-range-select', 'cell-click', 'cell-dblclick', 'cell-menu', 'cell-mouseenter', 'cell-mouseleave', 'cell-selected', 'cell-delete-value', 'cell-backspace-value', 'header-cell-click', 'header-cell-dblclick', 'header-cell-menu', 'footer-cell-click', 'footer-cell-dblclick', 'footer-cell-menu', 'clear-merge', 'sort-change', 'clear-sort', 'filter-change', 'filter-visible', 'clear-filter', 'resizable-change', 'column-resizable-change', 'row-resizable-change', 'toggle-row-expand', 'toggle-tree-expand', 'menu-click', 'edit-closed', 'row-dragstart', 'row-dragover', 'row-dragend', 'column-dragstart', 'column-dragover', 'column-dragend', 'enter-append-row', 'edit-actived', 'edit-activated', 'edit-disabled', 'valid-error', 'scroll', 'scroll-boundary', 'custom', 'change-fnr', 'open-fnr', 'show-fnr', 'hide-fnr', 'fnr-change', 'fnr-find', 'fnr-find-all', 'fnr-replace', 'fnr-replace-all', 'cell-area-copy', 'cell-area-cut', 'cell-area-paste', 'cell-area-merge', 'clear-cell-area-selection', 'clear-cell-area-merge', 'header-cell-area-selection', 'cell-area-selection-invalid', 'cell-area-selection-start', 'cell-area-selection-drag', 'cell-area-selection-end', 'cell-area-extension-start', 'cell-area-extension-drag', 'cell-area-extension-end', 'cell-area-selection-all-start', 'cell-area-selection-all-end', 'cell-area-arrows-start', 'cell-area-arrows-end', 'active-cell-change-start', 'active-cell-change-end']);
|
|
8325
|
+
/* harmony default export */ var emits = (['update:data', 'keydown-start', 'keydown', 'keydown-end', 'paste', 'copy', 'cut', 'current-change', 'current-row-change', 'current-row-disabled', 'current-column-change', 'current-column-disabled', 'radio-change', 'checkbox-change', 'checkbox-all', 'checkbox-range-start', 'checkbox-range-change', 'checkbox-range-end', 'checkbox-range-select', 'cell-click', 'cell-dblclick', 'cell-menu', 'cell-mouseenter', 'cell-mouseleave', 'cell-selected', 'cell-delete-value', 'cell-backspace-value', 'header-cell-click', 'header-cell-dblclick', 'header-cell-menu', 'footer-cell-click', 'footer-cell-dblclick', 'footer-cell-menu', 'clear-merge', 'sort-change', 'clear-sort', 'filter-change', 'filter-visible', 'clear-filter', 'resizable-change', 'column-resizable-change', 'row-resizable-change', 'toggle-row-expand', 'toggle-tree-expand', 'menu-click', 'edit-closed', 'row-dragstart', 'row-dragover', 'row-dragend', 'column-dragstart', 'column-dragover', 'column-dragend', 'enter-append-row', 'edit-actived', 'edit-activated', 'edit-disabled', 'valid-error', 'scroll', 'scroll-boundary', 'custom', 'change-fnr', 'open-fnr', 'show-fnr', 'hide-fnr', 'fnr-change', 'fnr-find', 'fnr-find-all', 'fnr-replace', 'fnr-replace-all', 'cell-area-copy', 'cell-area-cut', 'cell-area-paste', 'cell-area-merge', 'clear-cell-area-selection', 'clear-cell-area-merge', 'header-cell-area-selection', 'cell-area-selection-invalid', 'cell-area-selection-start', 'cell-area-selection-drag', 'cell-area-selection-end', 'cell-area-extension-start', 'cell-area-extension-drag', 'cell-area-extension-end', 'cell-area-selection-all-start', 'cell-area-selection-all-end', 'cell-area-arrows-start', 'cell-area-arrows-end', 'active-cell-change-start', 'active-cell-change-end']);
|
|
8326
8326
|
;// ./packages/table/module/custom/panel.ts
|
|
8327
8327
|
|
|
8328
8328
|
|
|
@@ -11137,7 +11137,8 @@ if(isEnableConf(editConfig)&&editOpts.trigger==='dblclick'){if(actived.row&&acti
|
|
|
11137
11137
|
* 多选,选中所有事件
|
|
11138
11138
|
*/triggerCheckAllEvent(evnt,value){const checkboxOpts=computeCheckboxOpts.value;const{trigger}=checkboxOpts;if(trigger==='manual'){return;}if(evnt){evnt.stopPropagation();}handleCheckAllEvent(evnt,value);},/**
|
|
11139
11139
|
* 单选,行选中事件
|
|
11140
|
-
*/triggerRadioRowEvent(evnt,params){const{selectRadioRow:oldValue}=reactData;const{row}=params;const radioOpts=computeRadioOpts.value;const{trigger}=radioOpts;if(trigger==='manual'){return;}evnt.stopPropagation();let newValue=row;let isChange=oldValue!==newValue;if(isChange){handleCheckedRadioRow(newValue);}else if(!radioOpts.strict){isChange=oldValue===newValue;if(isChange){newValue=null
|
|
11140
|
+
*/triggerRadioRowEvent(evnt,params){const{selectRadioRow:oldValue}=reactData;const{row}=params;const radioOpts=computeRadioOpts.value;const{trigger}=radioOpts;if(trigger==='manual'){return;}evnt.stopPropagation();let newValue=row;let isChange=oldValue!==newValue;if(isChange){handleCheckedRadioRow(newValue);}else if(!radioOpts.strict){isChange=oldValue===newValue;if(isChange){newValue=null;$xeTable.clearRadioRow();}}if(isChange){dispatchEvent('radio-change',{oldValue,newValue,...params},evnt);}},triggerCurrentColumnEvent(evnt,params){const{currentColumn:oldValue}=reactData;const columnOpts=computeColumnOpts.value;const currentColumnOpts=computeCurrentColumnOpts.value;const beforeRowMethod=currentColumnOpts.beforeSelectMethod||columnOpts.currentMethod;const{column:newValue}=params;const isChange=oldValue!==newValue;if(!beforeRowMethod||beforeRowMethod({column:newValue,$table:$xeTable})){$xeTable.setCurrentColumn(newValue);if(isChange){dispatchEvent('current-column-change',{oldValue,newValue,...params},evnt);}}else{dispatchEvent('current-column-disabled',params,evnt);}},triggerCurrentRowEvent(evnt,params){const{currentRow:oldValue}=reactData;const rowOpts=computeRowOpts.value;const currentRowOpts=computeCurrentRowOpts.value;const beforeRowMethod=currentRowOpts.beforeSelectMethod||rowOpts.currentMethod;const{row:newValue}=params;const isChange=oldValue!==newValue;if(!beforeRowMethod||beforeRowMethod({row:newValue,$table:$xeTable})){$xeTable.setCurrentRow(newValue);if(isChange){dispatchEvent('current-row-change',{oldValue,newValue,...params},evnt);// 已废弃
|
|
11141
|
+
dispatchEvent('current-change',{oldValue,newValue,...params},evnt);}}else{dispatchEvent('current-row-disabled',params,evnt);}},/**
|
|
11141
11142
|
* 展开行事件
|
|
11142
11143
|
*/triggerRowExpandEvent(evnt,params){const{expandColumn:column}=reactData;const{rowExpandLazyLoadedMaps}=internalData;const expandOpts=computeExpandOpts.value;const{row}=params;const{lazy,trigger}=expandOpts;if(trigger==='manual'){return;}evnt.stopPropagation();const rowid=getRowid($xeTable,row);if(!lazy||!rowExpandLazyLoadedMaps[rowid]){const expanded=!$xeTable.isRowExpandByRow(row);const columnIndex=$xeTable.getColumnIndex(column);const $columnIndex=$xeTable.getVMColumnIndex(column);$xeTable.setRowExpand(row,expanded);dispatchEvent('toggle-row-expand',{expanded,column,columnIndex,$columnIndex,row,rowIndex:$xeTable.getRowIndex(row),$rowIndex:$xeTable.getVMRowIndex(row)},evnt);}},/**
|
|
11143
11144
|
* 展开树节点事件
|
|
@@ -11254,7 +11255,7 @@ if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){warnLog(
|
|
|
11254
11255
|
// warnLog('vxe.error.delProp', ['scroll-x', 'virtual-x-config'])
|
|
11255
11256
|
// }
|
|
11256
11257
|
// 检查导入导出类型,如果自定义导入导出方法,则不校验类型
|
|
11257
|
-
if(importConfig&&importOpts.types&&!importOpts.importMethod&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includeArrays(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(importOpts._typeMaps),importOpts.types)){warnLog('vxe.error.errProp',[`export-config.types=${importOpts.types.join(',')}`,importOpts.types.filter(type=>external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includes(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(importOpts._typeMaps),type)).join(',')||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(importOpts._typeMaps).join(',')]);}if(exportConfig&&exportOpts.types&&!exportOpts.exportMethod&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includeArrays(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps),exportOpts.types)){warnLog('vxe.error.errProp',[`export-config.types=${exportOpts.types.join(',')}`,exportOpts.types.filter(type=>external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includes(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps),type)).join(',')||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps).join(',')]);}if(!props.id){if((props.customConfig?isEnableConf(customOpts):customOpts.enabled)&&customOpts.storage){errLog('vxe.error.reqProp',['id']);}}if(props.treeConfig&&checkboxOpts.range){errLog('vxe.error.noTree',['checkbox-config.range']);}if(rowOpts.height&&!props.showOverflow){warnLog('vxe.error.notProp',['table.show-overflow']);}if(!$xeTable.triggerCellAreaMousedownEvent){if(props.areaConfig){warnLog('vxe.error.notProp',['area-config']);}if(props.clipConfig){warnLog('vxe.error.notProp',['clip-config']);}if(props.fnrConfig){warnLog('vxe.error.notProp',['fnr-config']);}if(mouseOpts.area){errLog('vxe.error.notProp',['mouse-config.area']);return;}}if(treeConfig&&rowOpts.drag&&!treeOpts.transform){errLog('vxe.error.notSupportProp',['column-config.drag','tree-config.transform=false','tree-config.transform=true']);}if(props.dragConfig){warnLog('vxe.error.delProp',['drag-config','row-drag-config']);}if(props.treeConfig&&treeOpts.children){warnLog('vxe.error.delProp',['tree-config.children','tree-config.childrenField']);}if(props.treeConfig&&treeOpts.line){warnLog('vxe.error.delProp',['tree-config.line','tree-config.showLine']);}if(mouseOpts.area&&mouseOpts.selected){warnLog('vxe.error.errConflicts',['mouse-config.area','mouse-config.selected']);}if(mouseOpts.area&&props.treeConfig&&!treeOpts.transform){errLog('vxe.error.noTree',['mouse-config.area']);}if(props.editConfig&&editOpts.activeMethod){warnLog('vxe.error.delProp',['edit-config.activeMethod','edit-config.beforeEditMethod']);}if(props.treeConfig&&checkboxOpts.isShiftKey){errLog('vxe.error.errConflicts',['tree-config','checkbox-config.isShiftKey']);}if(checkboxOpts.halfField){warnLog('vxe.error.delProp',['checkbox-config.halfField','checkbox-config.indeterminateField']);}if((rowOpts.isCurrent||highlightCurrentRow)&&props.keyboardConfig&&keyboardOpts.isArrow&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(currentRowOpts.isFollowSelected)){warnLog('vxe.error.notConflictProp',['row-config.isCurrent','current-row-config.isFollowSelected']);}if((columnOpts.isCurrent||highlightCurrentColumn)&&props.keyboardConfig&&keyboardOpts.isArrow&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(currentColumnOpts.isFollowSelected)){warnLog('vxe.error.notConflictProp',['column-config.isCurrent','current-column-config.isFollowSelected']);}// 如果不支持虚拟滚动
|
|
11258
|
+
if(importConfig&&importOpts.types&&!importOpts.importMethod&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includeArrays(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(importOpts._typeMaps),importOpts.types)){warnLog('vxe.error.errProp',[`export-config.types=${importOpts.types.join(',')}`,importOpts.types.filter(type=>external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includes(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(importOpts._typeMaps),type)).join(',')||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(importOpts._typeMaps).join(',')]);}if(exportConfig&&exportOpts.types&&!exportOpts.exportMethod&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includeArrays(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps),exportOpts.types)){warnLog('vxe.error.errProp',[`export-config.types=${exportOpts.types.join(',')}`,exportOpts.types.filter(type=>external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().includes(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps),type)).join(',')||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(exportOpts._typeMaps).join(',')]);}if(!props.id){if((props.customConfig?isEnableConf(customOpts):customOpts.enabled)&&customOpts.storage){errLog('vxe.error.reqProp',['id']);}}if(props.treeConfig&&checkboxOpts.range){errLog('vxe.error.noTree',['checkbox-config.range']);}if(rowOpts.height&&!props.showOverflow){warnLog('vxe.error.notProp',['table.show-overflow']);}if(!$xeTable.triggerCellAreaMousedownEvent){if(props.areaConfig){warnLog('vxe.error.notProp',['area-config']);}if(props.clipConfig){warnLog('vxe.error.notProp',['clip-config']);}if(props.fnrConfig){warnLog('vxe.error.notProp',['fnr-config']);}if(mouseOpts.area){errLog('vxe.error.notProp',['mouse-config.area']);return;}}if(treeConfig&&rowOpts.drag&&!treeOpts.transform){errLog('vxe.error.notSupportProp',['column-config.drag','tree-config.transform=false','tree-config.transform=true']);}if(props.dragConfig){warnLog('vxe.error.delProp',['drag-config','row-drag-config']);}if(props.treeConfig&&treeOpts.children){warnLog('vxe.error.delProp',['tree-config.children','tree-config.childrenField']);}if(props.treeConfig&&treeOpts.line){warnLog('vxe.error.delProp',['tree-config.line','tree-config.showLine']);}if(mouseOpts.area&&mouseOpts.selected){warnLog('vxe.error.errConflicts',['mouse-config.area','mouse-config.selected']);}if(mouseOpts.area&&props.treeConfig&&!treeOpts.transform){errLog('vxe.error.noTree',['mouse-config.area']);}if(props.editConfig&&editOpts.activeMethod){warnLog('vxe.error.delProp',['edit-config.activeMethod','edit-config.beforeEditMethod']);}if(props.treeConfig&&checkboxOpts.isShiftKey){errLog('vxe.error.errConflicts',['tree-config','checkbox-config.isShiftKey']);}if(checkboxOpts.halfField){warnLog('vxe.error.delProp',['checkbox-config.halfField','checkbox-config.indeterminateField']);}if(rowOpts.currentMethod){warnLog('vxe.error.delProp',['row-config.currentMethod','current-row-config.beforeSelectMethod']);}if(columnOpts.currentMethod){warnLog('vxe.error.delProp',['row-config.currentMethod','current-column-config.beforeSelectMethod']);}if((rowOpts.isCurrent||highlightCurrentRow)&&props.keyboardConfig&&keyboardOpts.isArrow&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(currentRowOpts.isFollowSelected)){warnLog('vxe.error.notConflictProp',['row-config.isCurrent','current-row-config.isFollowSelected']);}if((columnOpts.isCurrent||highlightCurrentColumn)&&props.keyboardConfig&&keyboardOpts.isArrow&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(currentColumnOpts.isFollowSelected)){warnLog('vxe.error.notConflictProp',['column-config.isCurrent','current-column-config.isFollowSelected']);}// 如果不支持虚拟滚动
|
|
11258
11259
|
if(props.spanMethod){if(virtualXOpts.enabled){warnLog('vxe.error.notConflictProp',['span-method','virtual-x-config.enabled=false']);}if(virtualYOpts.enabled){warnLog('vxe.error.notConflictProp',['span-method','virtual-y-config.enabled=false']);}}if(props.footerSpanMethod){if(virtualXOpts.enabled){warnLog('vxe.error.notConflictProp',['footer-span-method','virtual-x-config.enabled=false']);}}// 检查是否有安装需要的模块
|
|
11259
11260
|
if(props.editConfig&&!$xeTable.insert){errLog('vxe.error.reqModule',['Edit']);}if(props.editRules&&!$xeTable.validate){errLog('vxe.error.reqModule',['Validator']);}if((checkboxOpts.range||props.keyboardConfig||props.mouseConfig)&&!$xeTable.handleCellMousedownEvent){errLog('vxe.error.reqModule',['Keyboard']);}if((props.printConfig||props.importConfig||props.exportConfig)&&!$xeTable.exportData){errLog('vxe.error.reqModule',['Export']);}Object.assign(scrollYStore,{startIndex:0,endIndex:0,visibleSize:0});Object.assign(scrollXStore,{startIndex:0,endIndex:0,visibleSize:0});loadTableData(data||[],true).then(()=>{if(data&&data.length){internalData.inited=true;internalData.initStatus=true;handleLoadDefaults();}handleInitDefaults();updateStyle();});if(props.autoResize){const el=refElem.value;const parentEl=tablePrivateMethods.getParentElem();resizeObserver=table_globalResize.create(()=>{if(props.autoResize){tableMethods.recalculate(true);}});if(el){resizeObserver.observe(el);}if(parentEl){resizeObserver.observe(parentEl);}}});const tableViewportEl=refTableViewportElem.value;if(tableViewportEl){tableViewportEl.addEventListener('wheel',$xeTable.triggerBodyWheelEvent,{passive:false});}table_globalEvents.on($xeTable,'paste',handleGlobalPasteEvent);table_globalEvents.on($xeTable,'copy',handleGlobalCopyEvent);table_globalEvents.on($xeTable,'cut',handleGlobalCutEvent);table_globalEvents.on($xeTable,'mousedown',handleGlobalMousedownEvent);table_globalEvents.on($xeTable,'blur',handleGlobalBlurEvent);table_globalEvents.on($xeTable,'mousewheel',handleGlobalMousewheelEvent);table_globalEvents.on($xeTable,'keydown',handleGlobalKeydownEvent);table_globalEvents.on($xeTable,'resize',handleGlobalResizeEvent);table_globalEvents.on($xeTable,'contextmenu',$xeTable.handleGlobalContextmenuEvent);tablePrivateMethods.preventEvent(null,'mounted',{$table:$xeTable});});(0,external_commonjs_vue_commonjs2_vue_root_Vue_.onBeforeUnmount)(()=>{const tableViewportEl=refTableViewportElem.value;if(tableViewportEl){tableViewportEl.removeEventListener('wheel',$xeTable.triggerBodyWheelEvent);}if(resizeObserver){resizeObserver.disconnect();}tableMethods.closeFilter();if($xeTable.closeMenu){$xeTable.closeMenu();}tablePrivateMethods.preventEvent(null,'beforeUnmount',{$table:$xeTable});});(0,external_commonjs_vue_commonjs2_vue_root_Vue_.onUnmounted)(()=>{table_globalEvents.off($xeTable,'paste');table_globalEvents.off($xeTable,'copy');table_globalEvents.off($xeTable,'cut');table_globalEvents.off($xeTable,'mousedown');table_globalEvents.off($xeTable,'blur');table_globalEvents.off($xeTable,'mousewheel');table_globalEvents.off($xeTable,'keydown');table_globalEvents.off($xeTable,'resize');table_globalEvents.off($xeTable,'contextmenu');tablePrivateMethods.preventEvent(null,'unmounted',{$table:$xeTable});});(0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(()=>{if(props.loading){if(!VxeUILoadingComponent&&!slots.loading){errLog('vxe.error.reqComp',['vxe-loading']);}}if(props.showOverflow===true||props.showOverflow==='tooltip'||props.showHeaderOverflow===true||props.showHeaderOverflow==='tooltip'||props.showFooterOverflow===true||props.showFooterOverflow==='tooltip'||props.tooltipConfig||props.editRules){if(!VxeUITooltipComponent){errLog('vxe.error.reqComp',['vxe-tooltip']);}}});(0,external_commonjs_vue_commonjs2_vue_root_Vue_.provide)('$xeColgroup',null);(0,external_commonjs_vue_commonjs2_vue_root_Vue_.provide)('$xeTable',$xeTable);$xeTable.renderVN=renderVN;return $xeTable;},render(){return this.renderVN();}}));
|
|
11260
11261
|
;// ./packages/toolbar/src/toolbar.ts
|
|
@@ -13664,16 +13665,9 @@ hook_hooks.add('tableFilterModule', {
|
|
|
13664
13665
|
if (filterStore.column === column && filterStore.visible) {
|
|
13665
13666
|
filterStore.visible = false;
|
|
13666
13667
|
} else {
|
|
13667
|
-
const {
|
|
13668
|
-
clientY,
|
|
13669
|
-
pageX
|
|
13670
|
-
} = evnt;
|
|
13671
13668
|
const el = refElem.value;
|
|
13672
13669
|
const tableRect = el.getBoundingClientRect();
|
|
13673
|
-
const
|
|
13674
|
-
const {
|
|
13675
|
-
visibleWidth
|
|
13676
|
-
} = getDomNode();
|
|
13670
|
+
const btnElem = evnt.currentTarget;
|
|
13677
13671
|
const {
|
|
13678
13672
|
filters,
|
|
13679
13673
|
filterMultiple,
|
|
@@ -13718,41 +13712,19 @@ hook_hooks.add('tableFilterModule', {
|
|
|
13718
13712
|
if (!filterWrapperElem) {
|
|
13719
13713
|
return;
|
|
13720
13714
|
}
|
|
13715
|
+
const btnRect = btnElem.getBoundingClientRect();
|
|
13721
13716
|
const filterWidth = filterWrapperElem.offsetWidth;
|
|
13722
13717
|
const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
|
|
13723
13718
|
const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
|
|
13724
13719
|
const centerWidth = filterWidth / 2;
|
|
13725
|
-
const
|
|
13726
|
-
const
|
|
13727
|
-
let left, right;
|
|
13728
|
-
const thEl = targetElem.offsetParent;
|
|
13729
|
-
const trEl = thEl.offsetParent;
|
|
13730
|
-
const style = {
|
|
13731
|
-
top: `${targetElem.offsetTop + thEl.offsetTop + targetElem.offsetHeight}px`
|
|
13732
|
-
};
|
|
13720
|
+
const left = btnRect.left - tableRect.left - centerWidth;
|
|
13721
|
+
const top = btnRect.top - tableRect.top + btnElem.clientHeight;
|
|
13733
13722
|
// 判断面板不能大于表格高度
|
|
13734
|
-
const maxHeight = Math.max(40, el.clientHeight -
|
|
13735
|
-
|
|
13736
|
-
|
|
13737
|
-
|
|
13738
|
-
|
|
13739
|
-
} else {
|
|
13740
|
-
left = targetElem.offsetLeft + thEl.offsetLeft - centerWidth - headerScrollElem.scrollLeft;
|
|
13741
|
-
}
|
|
13742
|
-
if (left) {
|
|
13743
|
-
const overflowWidth = pageX + filterWidth - centerWidth + minMargin - visibleWidth;
|
|
13744
|
-
if (overflowWidth > 0) {
|
|
13745
|
-
left -= overflowWidth;
|
|
13746
|
-
}
|
|
13747
|
-
style.left = `${Math.min(maxLeft, Math.max(minMargin, left))}px`;
|
|
13748
|
-
} else if (right) {
|
|
13749
|
-
const overflowWidth = pageX + filterWidth - centerWidth + minMargin - visibleWidth;
|
|
13750
|
-
if (overflowWidth > 0) {
|
|
13751
|
-
right += overflowWidth;
|
|
13752
|
-
}
|
|
13753
|
-
style.right = `${Math.max(minMargin, right)}px`;
|
|
13754
|
-
}
|
|
13755
|
-
filterStore.style = style;
|
|
13723
|
+
const maxHeight = Math.max(40, el.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
|
|
13724
|
+
filterStore.style = {
|
|
13725
|
+
top: toCssUnit(top),
|
|
13726
|
+
left: toCssUnit(left)
|
|
13727
|
+
};
|
|
13756
13728
|
filterStore.maxHeight = maxHeight;
|
|
13757
13729
|
});
|
|
13758
13730
|
}
|
|
@@ -13904,7 +13876,7 @@ hook_hooks.add('tableFilterModule', {
|
|
|
13904
13876
|
return $xeTable.scrollToColumn(column).then(() => {
|
|
13905
13877
|
const headerWrapperElem = getRefElem(elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper']);
|
|
13906
13878
|
if (headerWrapperElem) {
|
|
13907
|
-
const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-filter
|
|
13879
|
+
const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-cell--filter`);
|
|
13908
13880
|
triggerEvent(filterBtnElem, 'click');
|
|
13909
13881
|
}
|
|
13910
13882
|
});
|