vxe-table 3.25.0-beta.2 → 3.25.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/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/custom/panel.js +2 -2
- package/es/table/module/filter/mixin.js +5 -7
- package/es/table/module/filter/panel.js +47 -48
- package/es/table/src/methods.js +13 -7
- package/es/table/src/table.js +52 -27
- package/es/table/src/util.js +1 -2
- package/es/table/style.css +31 -12
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +2 -2
- package/es/ui/src/dom.js +11 -8
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +31 -12
- 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 +126 -149
- 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/custom/panel.js +2 -2
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/filter/mixin.js +6 -7
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/module/filter/panel.js +41 -37
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/src/methods.js +9 -9
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +56 -29
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +1 -2
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +31 -12
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +2 -2
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +11 -7
- package/lib/ui/src/dom.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 +31 -12
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +2 -1
- package/packages/table/module/custom/panel.ts +2 -2
- package/packages/table/module/filter/mixin.ts +5 -7
- package/packages/table/module/filter/panel.ts +50 -48
- package/packages/table/src/methods.ts +15 -7
- package/packages/table/src/table.ts +55 -27
- package/packages/table/src/util.ts +1 -2
- package/packages/ui/index.ts +1 -1
- package/packages/ui/src/dom.ts +12 -8
- package/styles/components/table-module/filter.scss +25 -14
- package/es/table/src/scrollbar.js +0 -54
- package/lib/table/src/scrollbar.js +0 -63
- package/lib/table/src/scrollbar.min.js +0 -1
- package/packages/table/src/scrollbar.ts +0 -57
- /package/es/{iconfont.1792035018941.ttf → iconfont.1792139868734.ttf} +0 -0
- /package/es/{iconfont.1792035018941.woff → iconfont.1792139868734.woff} +0 -0
- /package/es/{iconfont.1792035018941.woff2 → iconfont.1792139868734.woff2} +0 -0
- /package/lib/{iconfont.1792035018941.ttf → iconfont.1792139868734.ttf} +0 -0
- /package/lib/{iconfont.1792035018941.woff → iconfont.1792139868734.woff} +0 -0
- /package/lib/{iconfont.1792035018941.woff2 → iconfont.1792139868734.woff2} +0 -0
package/lib/index.umd.js
CHANGED
|
@@ -3323,7 +3323,7 @@ function getDefaultConfig(val1, def1) {
|
|
|
3323
3323
|
/* unused harmony import specifier */ var VxeUI;
|
|
3324
3324
|
|
|
3325
3325
|
|
|
3326
|
-
const version = "3.25.0-beta.
|
|
3326
|
+
const version = "3.25.0-beta.4";
|
|
3327
3327
|
core_.VxeUI.version = version;
|
|
3328
3328
|
core_.VxeUI.tableVersion = version;
|
|
3329
3329
|
core_.VxeUI.setConfig({
|
|
@@ -3487,7 +3487,7 @@ core_.VxeUI.setConfig({
|
|
|
3487
3487
|
destroyOnClose: true,
|
|
3488
3488
|
multiple: true,
|
|
3489
3489
|
showIcon: true,
|
|
3490
|
-
maxHeight:
|
|
3490
|
+
maxHeight: 320
|
|
3491
3491
|
},
|
|
3492
3492
|
floatingFilterConfig: {
|
|
3493
3493
|
// enabled: false
|
|
@@ -3865,7 +3865,6 @@ var es_iterator_reduce = __webpack_require__(8237);
|
|
|
3865
3865
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.some.js
|
|
3866
3866
|
var es_iterator_some = __webpack_require__(3579);
|
|
3867
3867
|
;// ./packages/ui/src/dom.ts
|
|
3868
|
-
/* unused harmony import specifier */ var XEUtils;
|
|
3869
3868
|
|
|
3870
3869
|
|
|
3871
3870
|
const reClsMap = {};
|
|
@@ -4124,10 +4123,12 @@ function updatePanelPlacement(targetElem, panelElem, options) {
|
|
|
4124
4123
|
defaultLeft,
|
|
4125
4124
|
placement,
|
|
4126
4125
|
defaultPlacement,
|
|
4126
|
+
appendTo,
|
|
4127
4127
|
teleportTo,
|
|
4128
4128
|
marginSize,
|
|
4129
4129
|
isMinWidth
|
|
4130
4130
|
} = Object.assign({
|
|
4131
|
+
appendTo: '',
|
|
4131
4132
|
teleportTo: false,
|
|
4132
4133
|
marginSize: 18,
|
|
4133
4134
|
isMinWidth: true
|
|
@@ -4141,7 +4142,7 @@ function updatePanelPlacement(targetElem, panelElem, options) {
|
|
|
4141
4142
|
const stys = {};
|
|
4142
4143
|
if (panelElem && targetElem) {
|
|
4143
4144
|
const bodyEl = document.body;
|
|
4144
|
-
const parentWrapperEl = getPopupWrapperElement(panelElem);
|
|
4145
|
+
const parentWrapperEl = getPopupWrapperElement(teleportTo ? getPopupAppendElement(appendTo) : panelElem);
|
|
4145
4146
|
if (parentWrapperEl) {
|
|
4146
4147
|
const targetWidth = targetElem.offsetWidth;
|
|
4147
4148
|
const targetHeight = targetElem.offsetHeight;
|
|
@@ -4152,14 +4153,16 @@ function updatePanelPlacement(targetElem, panelElem, options) {
|
|
|
4152
4153
|
const targetRect = targetElem.getBoundingClientRect();
|
|
4153
4154
|
const visibleHeight = bodyEl.clientHeight;
|
|
4154
4155
|
const visibleWidth = bodyEl.clientWidth;
|
|
4155
|
-
const
|
|
4156
|
-
const
|
|
4156
|
+
const parentWrapperScrollLeft = parentWrapperEl.scrollLeft;
|
|
4157
|
+
const parentWrapperScrollTop = parentWrapperEl.scrollTop;
|
|
4158
|
+
const parentWrapperOffsetLeft = parentWrapperRect.left;
|
|
4159
|
+
const parentWrapperOffsetTop = parentWrapperRect.top;
|
|
4157
4160
|
const targetLeft = targetRect.left;
|
|
4158
4161
|
const targetTop = targetRect.top;
|
|
4159
4162
|
minWidth = targetElem.offsetWidth;
|
|
4160
4163
|
if (teleportTo) {
|
|
4161
|
-
left = defaultLeft || targetLeft - (panelWidth - targetWidth) / 2;
|
|
4162
|
-
top = defaultTop || targetTop + targetHeight;
|
|
4164
|
+
left = (defaultLeft || targetLeft - (panelWidth - targetWidth) / 2) - parentWrapperScrollLeft;
|
|
4165
|
+
top = (defaultTop || targetTop + targetHeight) - parentWrapperScrollTop;
|
|
4163
4166
|
if (placement === 'top') {
|
|
4164
4167
|
panelPlacement = 'top';
|
|
4165
4168
|
top = targetTop - panelHeight;
|
|
@@ -4201,8 +4204,8 @@ function updatePanelPlacement(targetElem, panelElem, options) {
|
|
|
4201
4204
|
left = marginSize;
|
|
4202
4205
|
}
|
|
4203
4206
|
// 偏移
|
|
4204
|
-
top -=
|
|
4205
|
-
left -=
|
|
4207
|
+
top -= parentWrapperOffsetTop;
|
|
4208
|
+
left -= parentWrapperOffsetLeft;
|
|
4206
4209
|
} else {
|
|
4207
4210
|
if (placement === 'top') {
|
|
4208
4211
|
panelPlacement = 'top';
|
|
@@ -4268,12 +4271,12 @@ function getPopupWrapperElement(panelElem) {
|
|
|
4268
4271
|
return (parentEl === bodyEl ? document.documentElement : parentEl) || null;
|
|
4269
4272
|
}
|
|
4270
4273
|
function getPopupContainer(appendTo) {
|
|
4271
|
-
const selectElem = appendTo &&
|
|
4274
|
+
const selectElem = appendTo && external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(appendTo) ? appendTo({}) : appendTo;
|
|
4272
4275
|
return selectElem || 'body';
|
|
4273
4276
|
}
|
|
4274
4277
|
function getPopupAppendElement(appendTo) {
|
|
4275
4278
|
const selectElem = getPopupContainer(appendTo);
|
|
4276
|
-
if (
|
|
4279
|
+
if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(selectElem)) {
|
|
4277
4280
|
return document.querySelector(selectElem) || document.body;
|
|
4278
4281
|
}
|
|
4279
4282
|
return selectElem;
|
|
@@ -4283,7 +4286,7 @@ function getPopupAppendElement(appendTo) {
|
|
|
4283
4286
|
const {
|
|
4284
4287
|
log: log_log
|
|
4285
4288
|
} = core_.VxeUI;
|
|
4286
|
-
const tableVersion = `table v${"3.25.0-beta.
|
|
4289
|
+
const tableVersion = `table v${"3.25.0-beta.4"}`;
|
|
4287
4290
|
function createComponentLog(name) {
|
|
4288
4291
|
const uiVersion = core_.VxeUI.uiVersion ? `ui v${core_.VxeUI.uiVersion}` : '';
|
|
4289
4292
|
const ganttVersion = core_.VxeUI.ganttVersion ? `gantt v${core_.VxeUI.ganttVersion}` : '';
|
|
@@ -4811,8 +4814,7 @@ function createReactData() {
|
|
|
4811
4814
|
isIndeterminate: false,
|
|
4812
4815
|
style: null,
|
|
4813
4816
|
column: null,
|
|
4814
|
-
visible: false
|
|
4815
|
-
maxHeight: null
|
|
4817
|
+
visible: false
|
|
4816
4818
|
},
|
|
4817
4819
|
// 存放列相关的信息
|
|
4818
4820
|
columnStore: {
|
|
@@ -8054,61 +8056,6 @@ function clearColAnimate(elem, clss) {
|
|
|
8054
8056
|
}
|
|
8055
8057
|
}, 500);
|
|
8056
8058
|
}
|
|
8057
|
-
;// ./packages/table/src/scrollbar.ts
|
|
8058
|
-
/**
|
|
8059
|
-
* 计算滚动条滑块的长度
|
|
8060
|
-
*/
|
|
8061
|
-
function getThumbSize(viewportSize, contentSize, trackSize) {
|
|
8062
|
-
if (contentSize <= viewportSize) {
|
|
8063
|
-
return 0;
|
|
8064
|
-
}
|
|
8065
|
-
const ratio = viewportSize / contentSize;
|
|
8066
|
-
const ideal = trackSize * ratio;
|
|
8067
|
-
return Math.max(20, Math.min(ideal, trackSize));
|
|
8068
|
-
}
|
|
8069
|
-
/**
|
|
8070
|
-
* 计算滚动条滑块的偏移位置
|
|
8071
|
-
*/
|
|
8072
|
-
function getThumbOffsetSize(offsetSize, viewportSize, contentSize, trackSize, thumbSize) {
|
|
8073
|
-
const maxScroll = contentSize - viewportSize;
|
|
8074
|
-
if (maxScroll <= 0) {
|
|
8075
|
-
return 0;
|
|
8076
|
-
}
|
|
8077
|
-
const maxThumbOffset = trackSize - thumbSize;
|
|
8078
|
-
if (maxThumbOffset <= 0) {
|
|
8079
|
-
return 0;
|
|
8080
|
-
}
|
|
8081
|
-
const clamped = Math.min(Math.max(offsetSize, 0), maxScroll);
|
|
8082
|
-
const ratio = clamped / maxScroll;
|
|
8083
|
-
return ratio * maxThumbOffset;
|
|
8084
|
-
}
|
|
8085
|
-
/**
|
|
8086
|
-
* 根据点击轨道的位置,计算滑块的偏移位置
|
|
8087
|
-
*/
|
|
8088
|
-
function getScrollFromClick(clickPosition, viewportSize, contentSize, trackSize, thumbSize) {
|
|
8089
|
-
const maxThumbOffset = trackSize - thumbSize;
|
|
8090
|
-
const maxScroll = contentSize - viewportSize;
|
|
8091
|
-
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
8092
|
-
return 0;
|
|
8093
|
-
}
|
|
8094
|
-
let thumbOffset = clickPosition - thumbSize / 2;
|
|
8095
|
-
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
|
|
8096
|
-
const scrollOffset = thumbOffset / maxThumbOffset * maxScroll;
|
|
8097
|
-
return scrollOffset;
|
|
8098
|
-
}
|
|
8099
|
-
/**
|
|
8100
|
-
* 拖拽 thumb 时,根据鼠标位置计算滑块的偏移位置
|
|
8101
|
-
*/
|
|
8102
|
-
function getScrollFromDrag(pointerPosition, dragOffset, viewportSize, contentSize, trackSize, thumbSize) {
|
|
8103
|
-
const maxScroll = contentSize - viewportSize;
|
|
8104
|
-
const maxThumbOffset = trackSize - thumbSize;
|
|
8105
|
-
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
8106
|
-
return 0;
|
|
8107
|
-
}
|
|
8108
|
-
let thumbOffset = pointerPosition - dragOffset;
|
|
8109
|
-
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
|
|
8110
|
-
return thumbOffset / maxThumbOffset * maxScroll;
|
|
8111
|
-
}
|
|
8112
8059
|
;// ./packages/table/src/store.ts
|
|
8113
8060
|
// 跨表拖拽
|
|
8114
8061
|
const crossTableDragRowGlobal = {
|
|
@@ -8119,7 +8066,7 @@ function getCrossTableDragRowInfo($xeTable) {
|
|
|
8119
8066
|
return crossTableDragRowInfo;
|
|
8120
8067
|
}
|
|
8121
8068
|
;// ./packages/table/src/methods.ts
|
|
8122
|
-
const{warnLog: methods_warnLog,errLog: methods_errLog}=createComponentLog('table');const{getConfig: methods_getConfig,getI18n: methods_getI18n,renderer: methods_renderer,formats: methods_formats,interceptor: methods_interceptor,createEvent,globalEvents: methods_globalEvents,GLOBAL_EVENT_KEYS}=core_.VxeUI;const supportMaxRow=5e6;const customStorageKey='VXE_CUSTOM_STORE';const maxYHeight=5e6;const maxXWidth=5e6;const sourceType='table';let crossTableDragRowObj=null;function eqCellValue(newRow,oldRow,field){const val1=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(newRow,field);const val2=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(oldRow,field);let result=false;if(eqEmptyValue(val1)&&eqEmptyValue(val2)){result=true;}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(val1)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(val1)){result=''+val1===''+val2;}else{result=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isEqual(val1,val2);}return{newValue:val1,oldValue:val2,result};}function getNextSortOrder($xeTable,column){const sortOpts=$xeTable.computeSortOpts;const{orders=[]}=sortOpts;const currOrder=column.order||null;const oIndex=orders.indexOf(currOrder)+1;return orders[oIndex<orders.length?oIndex:0];}const getCustomStorageMap=id=>{const version=methods_getConfig().version;const rest=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toStringJSON(localStorage.getItem(customStorageKey)||'');const maps=rest&&rest._v===version?rest:{_v:version};return(id?maps[id]:maps)||{};};const setCustomStorageMap=(id,data)=>{const version=methods_getConfig().version;const maps=getCustomStorageMap();maps[id]=data||undefined;maps._v=version;localStorage.setItem(customStorageKey,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toJSONString(maps));};const getRecoverRowMaps=($xeTable,keyMaps)=>{const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const restKeys={};external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(keyMaps,(row,rowid)=>{if(fullAllDataRowIdData[rowid]){restKeys[rowid]=row;}});return restKeys;};function handleReserveRow($xeTable,reserveRowMap){const internalData=$xeTable;const{fullDataRowIdData}=internalData;const reserveList=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(reserveRowMap,(item,rowid)=>{if(fullDataRowIdData[rowid]&&reserveList.indexOf(fullDataRowIdData[rowid].row)===-1){reserveList.push(fullDataRowIdData[rowid].row);}});return reserveList;}function handleVirtualXVisible($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isScrollXBig,scrollXWidth}=reactData;const{elemStore,visibleColumn,fullColumnIdData}=internalData;const leftFixedWidth=$xeTable.computeLeftFixedWidth;const rightFixedWidth=$xeTable.computeRightFixedWidth;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(bodyScrollElem){const clientWidth=bodyScrollElem.clientWidth;let scrollLeft=bodyScrollElem.scrollLeft;if(isScrollXBig){scrollLeft=Math.ceil((scrollXWidth-clientWidth)*Math.min(1,scrollLeft/(maxXWidth-clientWidth)));}const startLeft=scrollLeft+leftFixedWidth;const endLeft=scrollLeft+clientWidth-rightFixedWidth;let leftIndex=0;let rightIndex=visibleColumn.length;while(leftIndex<rightIndex){const cIndex=Math.floor((leftIndex+rightIndex)/2);const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};if(colRest.oLeft<=startLeft){leftIndex=cIndex+1;}else{rightIndex=cIndex;}}let visibleSize=0;const toVisibleIndex=leftIndex===visibleColumn.length?leftIndex:Math.max(0,leftIndex<visibleColumn.length?leftIndex-2:0);for(let cIndex=toVisibleIndex,cLen=visibleColumn.length;cIndex<cLen;cIndex++){const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};visibleSize++;if(colRest.oLeft>endLeft||visibleSize>=60){break;}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(6,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};}function handleCustomRestore($xeTable,storeData){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;const{aggregateConfig,rowGroupConfig}=props;const{collectColumn}=internalData;const{isCustomAlign,isCustomHeaderAlign,isCustomFooterAlign,isCustomResizable,isCustomVisible,isCustomFixed,isCustomSort,isCustomAggGroup,isCustomAggFunc,isCustomPager}=handleCustomStoreConfig($xeTable);let{alignData,headerAlignData,footerAlignData,resizableData,sortData,visibleData,fixedData,aggGroupData,aggFuncData,pagerData}=storeData;// 处理还原
|
|
8069
|
+
const{warnLog: methods_warnLog,errLog: methods_errLog}=createComponentLog('table');const{getConfig: methods_getConfig,getI18n: methods_getI18n,renderer: methods_renderer,scrollbarUtils,formats: methods_formats,interceptor: methods_interceptor,createEvent,globalEvents: methods_globalEvents,GLOBAL_EVENT_KEYS}=core_.VxeUI;const{getThumbOffsetSize,getThumbSize,getScrollFromClick,getScrollFromDrag}=scrollbarUtils||{};const supportMaxRow=5e6;const customStorageKey='VXE_CUSTOM_STORE';const maxYHeight=5e6;const maxXWidth=5e6;const sourceType='table';let crossTableDragRowObj=null;function eqCellValue(newRow,oldRow,field){const val1=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(newRow,field);const val2=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(oldRow,field);let result=false;if(eqEmptyValue(val1)&&eqEmptyValue(val2)){result=true;}else if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(val1)||external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(val1)){result=''+val1===''+val2;}else{result=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isEqual(val1,val2);}return{newValue:val1,oldValue:val2,result};}function getNextSortOrder($xeTable,column){const sortOpts=$xeTable.computeSortOpts;const{orders=[]}=sortOpts;const currOrder=column.order||null;const oIndex=orders.indexOf(currOrder)+1;return orders[oIndex<orders.length?oIndex:0];}const getCustomStorageMap=id=>{const version=methods_getConfig().version;const rest=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toStringJSON(localStorage.getItem(customStorageKey)||'');const maps=rest&&rest._v===version?rest:{_v:version};return(id?maps[id]:maps)||{};};const setCustomStorageMap=(id,data)=>{const version=methods_getConfig().version;const maps=getCustomStorageMap();maps[id]=data||undefined;maps._v=version;localStorage.setItem(customStorageKey,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toJSONString(maps));};const getRecoverRowMaps=($xeTable,keyMaps)=>{const internalData=$xeTable;const{fullAllDataRowIdData}=internalData;const restKeys={};external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(keyMaps,(row,rowid)=>{if(fullAllDataRowIdData[rowid]){restKeys[rowid]=row;}});return restKeys;};function handleReserveRow($xeTable,reserveRowMap){const internalData=$xeTable;const{fullDataRowIdData}=internalData;const reserveList=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(reserveRowMap,(item,rowid)=>{if(fullDataRowIdData[rowid]&&reserveList.indexOf(fullDataRowIdData[rowid].row)===-1){reserveList.push(fullDataRowIdData[rowid].row);}});return reserveList;}function handleVirtualXVisible($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{isScrollXBig,scrollXWidth}=reactData;const{elemStore,visibleColumn,fullColumnIdData}=internalData;const leftFixedWidth=$xeTable.computeLeftFixedWidth;const rightFixedWidth=$xeTable.computeRightFixedWidth;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(bodyScrollElem){const clientWidth=bodyScrollElem.clientWidth;let scrollLeft=bodyScrollElem.scrollLeft;if(isScrollXBig){scrollLeft=Math.ceil((scrollXWidth-clientWidth)*Math.min(1,scrollLeft/(maxXWidth-clientWidth)));}const startLeft=scrollLeft+leftFixedWidth;const endLeft=scrollLeft+clientWidth-rightFixedWidth;let leftIndex=0;let rightIndex=visibleColumn.length;while(leftIndex<rightIndex){const cIndex=Math.floor((leftIndex+rightIndex)/2);const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};if(colRest.oLeft<=startLeft){leftIndex=cIndex+1;}else{rightIndex=cIndex;}}let visibleSize=0;const toVisibleIndex=leftIndex===visibleColumn.length?leftIndex:Math.max(0,leftIndex<visibleColumn.length?leftIndex-2:0);for(let cIndex=toVisibleIndex,cLen=visibleColumn.length;cIndex<cLen;cIndex++){const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};visibleSize++;if(colRest.oLeft>endLeft||visibleSize>=60){break;}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(6,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};}function handleCustomRestore($xeTable,storeData){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;const $xeGGWrapper=$xeGrid||$xeGantt;const{aggregateConfig,rowGroupConfig}=props;const{collectColumn}=internalData;const{isCustomAlign,isCustomHeaderAlign,isCustomFooterAlign,isCustomResizable,isCustomVisible,isCustomFixed,isCustomSort,isCustomAggGroup,isCustomAggFunc,isCustomPager}=handleCustomStoreConfig($xeTable);let{alignData,headerAlignData,footerAlignData,resizableData,sortData,visibleData,fixedData,aggGroupData,aggFuncData,pagerData}=storeData;// 处理还原
|
|
8123
8070
|
if(isCustomAlign&&alignData||isCustomHeaderAlign&&headerAlignData||isCustomFooterAlign&&footerAlignData||isCustomResizable&&resizableData||isCustomSort&&sortData||isCustomVisible&&visibleData||isCustomFixed&&fixedData||isCustomAggGroup&&aggGroupData||isCustomAggFunc&&aggFuncData||isCustomPager&&pagerData&&$xeGGWrapper){const sortColMaps={};if(isCustomSort&&sortData){// 转换兼容老版本数据,即将废弃兼容
|
|
8124
8071
|
if(!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(sortData)){const sortRests=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(sortData,(index,colKey)=>{sortRests.push({key:colKey,index});});sortData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(sortRests,{field:'index',order:'asc'}).map(item=>({k:item.key}));}let colNum=1;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(sortData,(sObj,index,sOjs,path,pSObj)=>{sortColMaps[sObj.k]={key:sObj.k,sNum:colNum++,pKey:pSObj?pSObj.k:null};},{children:'c'});}const colKeyMaps={};const allCols=[];const aggGroupConfs=[];external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const colKey=column.getKey();// 支持一级
|
|
8125
8072
|
if(!parentColumn){if(isCustomFixed&&fixedData&&fixedData[colKey]!==undefined){column.fixed=fixedData[colKey];}}if(isCustomResizable&&resizableData&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(resizableData[colKey])){column.resizeWidth=resizableData[colKey];}if(isCustomVisible&&visibleData&&external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(visibleData[colKey])){column.visible=visibleData[colKey];}if(isCustomAggFunc&&aggFuncData&&(aggregateConfig||rowGroupConfig)&&aggFuncData[colKey]){column.aggFunc=aggFuncData[colKey];}if(isCustomAggGroup&&aggGroupData&&aggGroupData[colKey]){aggGroupConfs.push({field:column.field});}colKeyMaps[colKey]=column;allCols.push(column);});if((aggregateConfig||rowGroupConfig)&&aggGroupConfs.length){const groupRest=handleGroupData($xeTable,internalData.tableFullData,aggGroupConfs);internalData.tableFullTreeData=[];internalData.tableFullGroupData=groupRest.treeData;reactData.isRowGroupStatus=true;reactData.rowGroupList=aggGroupConfs;$xeTable.cacheRowMap(false);}// 如果自定义了顺序
|
|
@@ -8286,7 +8233,7 @@ const rowHeight=computeRowHeight($xeTable);scrollYStore.rowHeight=rowHeight;//
|
|
|
8286
8233
|
reactData.rowHeight=rowHeight;const{toVisibleIndex:toYVisibleIndex,visibleSize:visibleYSize}=handleVirtualYVisible($xeTable);if(scrollYLoad){const offsetYSize=Math.max(0,virtualYOpts.oSize?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualYOpts.oSize):0);scrollYStore.preloadSize=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualYOpts.preSize);scrollYStore.offsetSize=offsetYSize;scrollYStore.visibleSize=visibleYSize;scrollYStore.endIndex=Math.max(scrollYStore.startIndex+visibleYSize+offsetYSize,scrollYStore.endIndex);scrollYStore.visibleStartIndex=Math.max(scrollYStore.startIndex,toYVisibleIndex);scrollYStore.visibleEndIndex=Math.min(scrollYStore.endIndex,toYVisibleIndex+visibleYSize);$xeTable.updateScrollYData().then(()=>{loadScrollYData($xeTable);});}else{$xeTable.updateScrollYSpace();}});}function calcScrollbar($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{scrollXWidth,scrollYHeight}=reactData;const{elemStore}=internalData;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return;}const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);const headerTableElem=getRefElem(elemStore['main-header-table']);const footerTableElem=getRefElem(elemStore['main-footer-table']);const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const thumbXElem=$xeTable.$refs.refThumbXElem;const thumbYElem=$xeTable.$refs.refThumbYElem;let overflowY=false;let overflowX=false;if(bodyWrapperElem){const scrollbarOpts=$xeTable.computeScrollbarOpts;const barWidth=$xeTable.computeScrollYWidth;const barHeight=$xeTable.computeScrollXHeight;overflowY=scrollYHeight>bodyWrapperElem.clientHeight;// 如果是虚拟滚动条
|
|
8287
8234
|
if(thumbYElem){reactData.scrollbarHeight=scrollbarOpts.padding?thumbYElem.offsetWidth:0;}else if(yHandleEl){reactData.scrollbarWidth=barWidth||barHeight||yHandleEl.offsetWidth-yHandleEl.clientWidth||14;}reactData.overflowY=overflowY;overflowX=scrollXWidth>bodyWrapperElem.clientWidth;// 如果是虚拟滚动条
|
|
8288
8235
|
if(thumbXElem){reactData.scrollbarHeight=scrollbarOpts.padding?thumbXElem.offsetHeight:0;}else if(xHandleEl){reactData.scrollbarHeight=barHeight||barWidth||xHandleEl.offsetHeight-xHandleEl.clientHeight||14;}const hHeight=headerTableElem?headerTableElem.clientHeight:0;const fHeight=footerTableElem?footerTableElem.clientHeight:0;internalData.tableHeight=bodyWrapperElem.offsetHeight;internalData.tHeaderHeight=hHeight;internalData.tFooterHeight=fHeight;reactData.overflowX=overflowX;reactData.parentHeight=Math.max(hHeight+fHeight+20,$xeTable.getParentHeight());}if(overflowX){$xeTable.checkScrolling();}}function handleRecalculateStyle($xeTable,reFull,reWidth,reHeight){const internalData=$xeTable;const el=$xeTable.$refs.refElem;if(!el||!el.clientWidth){return $xeTable.$nextTick();}const varEl=$xeTable.$refs.refVarElem;if(varEl){const[defEl,mediumEl,smallEl,miniEl]=varEl.children;calcVarRowHeightConfig($xeTable,'default',defEl);calcVarRowHeightConfig($xeTable,'medium',mediumEl);calcVarRowHeightConfig($xeTable,'small',smallEl);calcVarRowHeightConfig($xeTable,'mini',miniEl);}if(reWidth){calcCellWidth($xeTable);}if(reFull){autoCellWidth($xeTable);}calcScrollbar($xeTable);updateStyle($xeTable);updateRowExpandStyle($xeTable);if(reFull){updateTreeLineStyle($xeTable);}internalData.rceRunTime=Date.now();return computeScrollLoad($xeTable).then(()=>{// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
|
|
8289
|
-
if(reWidth){calcCellWidth($xeTable);}if(reFull){autoCellWidth($xeTable);}if(reHeight){calcCellHeight($xeTable);}updateStyle($xeTable);calcScrollbar($xeTable);if(reFull){updateRowOffsetTop($xeTable);}updateRowExpandStyle($xeTable);if(reFull){updateTreeLineStyle($xeTable);}internalData.rceRunTime=Date.now();if(reFull){return computeScrollLoad($xeTable);}});}const defaultMinRunDelay=50;function handleLazyRecalculate($xeTable,reFull,reWidth,reHeight,options){const reactData=$xeTable;const internalData=$xeTable;const minRunDelay=(options?options.minRunDelay:defaultMinRunDelay)||defaultMinRunDelay;return new Promise(resolve=>{const{customStore,tableData,tableColumn}=reactData;const{rceTimeout,rceRunTime}=internalData;const $xeGanttView=internalData.xeGanttView;const resizeOpts=$xeTable.computeResizeOpts;let rceDelay=internalData.rceDelay;// 如果在500毫秒内频繁执行,则执行次数减缓
|
|
8236
|
+
if(reWidth){calcCellWidth($xeTable);}if(reFull){autoCellWidth($xeTable);}if(reHeight){calcCellHeight($xeTable);}updateStyle($xeTable);calcScrollbar($xeTable);if(reFull){updateRowOffsetTop($xeTable);}updateRowExpandStyle($xeTable);if(reFull){updateTreeLineStyle($xeTable);}$xeTable.updateScrollbar();internalData.rceRunTime=Date.now();if(reFull){return computeScrollLoad($xeTable);}});}const defaultMinRunDelay=50;function handleLazyRecalculate($xeTable,reFull,reWidth,reHeight,options){const reactData=$xeTable;const internalData=$xeTable;const minRunDelay=(options?options.minRunDelay:defaultMinRunDelay)||defaultMinRunDelay;return new Promise(resolve=>{const{customStore,tableData,tableColumn}=reactData;const{rceTimeout,rceRunTime}=internalData;const $xeGanttView=internalData.xeGanttView;const resizeOpts=$xeTable.computeResizeOpts;let rceDelay=internalData.rceDelay;// 如果在500毫秒内频繁执行,则执行次数减缓
|
|
8290
8237
|
if(rceRunTime&&rceRunTime>Date.now()-500){rceDelay=Math.min(Math.max(60,Math.min(800,tableData.length/8)),rceDelay+50);}else{rceDelay=0;}internalData.rceDelay=rceDelay;const refreshDelay=resizeOpts.refreshDelay||30;const reDelay=rceDelay+refreshDelay;const el=$xeTable.$refs.refElem;$xeTable.updateScrollbar();if(el&&el.clientWidth){autoCellWidth($xeTable);updateRowExpandStyle($xeTable);}if(customStore.visible&&$xeTable.handleCustomStyle){$xeTable.handleCustomStyle();}const renderCellSize=tableData.length*tableColumn.length;// 渲染量低的场景
|
|
8291
8238
|
if(renderCellSize<400){rceDelay=20;}else if(renderCellSize<600){rceDelay=40;}else if(renderCellSize<800){rceDelay=80;}if(rceTimeout){clearTimeout(rceTimeout);// 多少毫秒内至少执行一次
|
|
8292
8239
|
if(rceRunTime&&rceRunTime+minRunDelay<Date.now()){resolve(handleRecalculateStyle($xeTable,reFull,reWidth,reHeight));}else{$xeTable.$nextTick(()=>{resolve();});}}else{resolve(handleRecalculateStyle($xeTable,reFull,reWidth,reHeight));}if($xeGanttView&&$xeGanttView.handleLazyRecalculate){$xeGanttView.handleLazyRecalculate();}internalData.rceTimeout=setTimeout(()=>{internalData.rceDelay=0;internalData.rceTimeout=undefined;handleRecalculateStyle($xeTable,reFull,reWidth,reHeight);if($xeGanttView&&$xeGanttView.handleLazyRecalculate){$xeGanttView.handleLazyRecalculate();}},reDelay);});}function handleResizeEvent($xeTable){const internalData=$xeTable;if(internalData.rsePending){return;}internalData.rsePending=true;handleLazyRecalculate($xeTable,true,true,true,{minRunDelay:200}).then(()=>{internalData.rsePending=false;}).catch(()=>{internalData.rsePending=false;});}function handleUpdateAggValues($xeTable){const reactData=$xeTable;const internalData=$xeTable;const{visibleColumn}=internalData;const aggCols=[];visibleColumn.forEach(column=>{if(column.aggFunc){aggCols.push(column);}});reactData.aggHandleAggColumns=aggCols;}function handleUpdateRowGroup($xeTable,groupFields){const reactData=$xeTable;const aggGroupFields=[];const aggGroupConfs=[];if(groupFields){(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(groupFields)?groupFields:[groupFields]).forEach(field=>{aggGroupFields.push(field);aggGroupConfs.push({field});});}reactData.rowGroupList=aggGroupConfs;reactData.aggHandleFields=aggGroupFields;handleUpdateAggValues($xeTable);}function handleeGroupSummary($xeTable,aggList){const internalData=$xeTable;const{fullColumnFieldData}=internalData;const aggregateOpts=$xeTable.computeAggregateOpts;const aggFuncColumns=$xeTable.computeAggFuncColumns;const{mapChildrenField}=aggregateOpts;const aggCalcMethod=aggregateOpts.calcValuesMethod||aggregateOpts.countMethod||aggregateOpts.aggregateMethod;if(mapChildrenField){external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().lastEach(aggList,aggRow=>{let count=0;external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().each(aggRow[mapChildrenField],row=>{if(row.isAggregate){count+=row.childCount||0;}else{count++;}});aggRow.childCount=count;});if($xeTable.handlePivotTableAggData){$xeTable.handlePivotTableAggData(aggList);}else{external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().lastEach(aggList,aggRow=>{const aggDtObj={};const aggData=aggRow.aggData;const groupField=aggRow.groupField;const groupContent=aggRow.groupContent;const childList=mapChildrenField?aggRow[mapChildrenField]||[]:[];const childCount=aggRow.childCount;const colRest=fullColumnFieldData[groupField]||{};aggFuncColumns.forEach(column=>{const{field}=column;const currAggData=aggData?aggData[field]:null;const ctParams={$table:$xeTable,groupField,groupColumn:colRest?colRest.column:null,column,groupValue:groupContent,childList,childCount,aggValue:currAggData?currAggData.value:0,/**
|
|
@@ -8810,7 +8757,7 @@ if(isEnableConf(editConfig)&&editOpts.autoClear!==false&&editOpts.trigger==='dbl
|
|
|
8810
8757
|
* 点击排序事件
|
|
8811
8758
|
*/triggerSortEvent(evnt,column,order){const $xeTable=this;const sortOpts=$xeTable.computeSortOpts;const{multiple,allowClear}=sortOpts;const{field,sortable}=column;if(sortable||column.remoteSort){if(!order||column.order===order){if(allowClear){$xeTable.clearSort(multiple?column:null);}}else{$xeTable.sort({field,order});}$xeTable.handleColumnSortEvent(evnt,column);}},handleCellRuleUpdateStatus(type,cellParams,cellValue){const $xeTable=this;const reactData=$xeTable;const{validStore}=reactData;const{row,column}=cellParams;if($xeTable.hasCellRules){if($xeTable.hasCellRules(type,row,column)){const cell=$xeTable.getCellElement(row,column);if(cell){const customVal=!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isUndefined(cellValue);return $xeTable.validCellRules(type,row,column,cellValue).then(()=>{if(customVal&&validStore.visible){setCellValue(row,column,cellValue);}$xeTable.clearValidate(row,column);}).catch(({rule})=>{if(customVal){setCellValue(row,column,cellValue);}$xeTable.showValidTooltip({rule,row,column,cell});});}}}return $xeTable.$nextTick();},/**
|
|
8812
8759
|
* @private
|
|
8813
|
-
*/updateScrollbar(){const $xeTable=this
|
|
8760
|
+
*/updateScrollbar(){const $xeTable=this;const isVScrollbar=$xeTable.computeIsVScrollbar;if(isVScrollbar){return $xeTable.$nextTick().then(()=>{$xeTable.updateThumbSize();$xeTable.updateThumbOffset();});}return Promise.resolve();},/**
|
|
8814
8761
|
* 表头单元格按下事件
|
|
8815
8762
|
*/triggerHeaderCellMousedownEvent(evnt,params){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const columnOpts=$xeTable.computeColumnOpts;const columnDragOpts=$xeTable.computeColumnDragOpts;const{trigger,isCrossDrag,isPeerDrag,disabledMethod}=columnDragOpts;const cell=evnt.currentTarget;const triggerInput=cell&&cell.tagName&&cell.tagName.toLowerCase()==='input';const triggerCheckbox=getEventTargetNode(evnt,cell,'vxe-cell--checkbox').flag;const triggerSort=getEventTargetNode(evnt,cell,'vxe-cell--sort').flag;const triggerFilter=getEventTargetNode(evnt,cell,'vxe-cell--filter').flag;let triggerDrag=false;const isColDragCell=columnOpts.drag&&trigger==='cell';if(!(triggerInput||triggerCheckbox||triggerSort||triggerFilter)){const{column}=params;if(isColDragCell&&!column.fixed&&(isCrossDrag||isPeerDrag||!column.parentId)&&!(disabledMethod&&disabledMethod(params))){triggerDrag=true;$xeTable.handleHeaderCellDragMousedownEvent(evnt,params);}}if(!triggerDrag&&hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleHeaderCellAreaMouseDnEvent){$xeTable.handleHeaderCellAreaMouseDnEvent(evnt,Object.assign({cell,triggerSort,triggerFilter},params));}$xeTable.focus();if($xeTable.closeMenu){$xeTable.closeMenu();}},/**
|
|
8816
8763
|
* 单元格按下事件
|
|
@@ -8940,7 +8887,7 @@ if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{retur
|
|
|
8940
8887
|
* 横向 X 可视渲染事件处理
|
|
8941
8888
|
*/triggerScrollXEvent(){const $xeTable=this;const virtualXOpts=$xeTable.computeVirtualXOpts;if(virtualXOpts.immediate){loadScrollXData($xeTable);}else{lazyScrollXData($xeTable);}},/**
|
|
8942
8889
|
* 纵向 Y 可视渲染事件处理
|
|
8943
|
-
*/triggerScrollYEvent(){const $xeTable=this;const virtualYOpts=$xeTable.computeVirtualYOpts;if(virtualYOpts.immediate){loadScrollYData($xeTable);}else{lazyScrollYData($xeTable);}},triggerBodyScrollEvent(evnt,fixedType){const $xeTable=this;const
|
|
8890
|
+
*/triggerScrollYEvent(){const $xeTable=this;const virtualYOpts=$xeTable.computeVirtualYOpts;if(virtualYOpts.immediate){loadScrollYData($xeTable);}else{lazyScrollYData($xeTable);}},triggerBodyScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollYLoad,scrollXLoad}=reactData;const isVScrollbar=$xeTable.computeIsVScrollbar;const{elemStore,intoRunScroll,lastScrollTop,lastScrollLeft,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll,scrollRenderType,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inFooterScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(intoRunScroll){return;}if(!bodyScrollElem){return;}if(!isVScrollbar){if(!xHandleEl){return;}if(!yHandleEl){return;}}if(inBodyScroll){if(scrollRenderType!==fixedType){return;}}let scrollTop=0;let scrollLeft=0;if(leftScrollElem&&fixedType==='left'){scrollTop=leftScrollElem.scrollTop;}else if(rightScrollElem&&fixedType==='right'){scrollTop=rightScrollElem.scrollTop;}else{scrollTop=bodyScrollElem.scrollTop;scrollLeft=bodyScrollElem.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=scrollTop!==lastScrollTop;internalData.inBodyScroll=true;internalData.scrollRenderType=fixedType;if(isRollY){if(fixedType==='left'){setScrollTop(bodyScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);}else if(fixedType==='right'){setScrollTop(bodyScrollElem,scrollTop);setScrollTop(leftScrollElem,scrollTop);}else{setScrollTop(leftScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);}setScrollTop(yHandleEl,scrollTop);setScrollTop(rowExpandEl,scrollTop);syncGanttScrollTop($xeTable,scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}}if(isRollX){setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'body',fixed:fixedType});},triggerHeaderScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inBodyScroll,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inBodyScroll||inFooterScroll){return;}if(intoRunScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);if(!headerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=headerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inHeaderScroll=true;setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);setScrollLeft(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'header',fixed:fixedType});},triggerFooterScrollEvent(evnt,fixedType){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inBodyScroll){return;}const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);if(intoRunScroll){return;}if(!footerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=footerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inFooterScroll=true;setScrollLeft(xHandleEl,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'footer',fixed:fixedType});},triggerBodyWheelEvent(evnt){const $xeTable=this;const $xeParentTable=$xeTable.$xeParentTable;const tableProps=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{target,deltaY,deltaX,shiftKey}=evnt;if(target&&/^textarea$/i.test(target.tagName)){return;}// 如果滚轮未移动或者触摸板未变化位置
|
|
8944
8891
|
if(!deltaY&&!deltaX){return;}const{highlightHoverRow}=tableProps;const{scrollXLoad,scrollYLoad,overflowX,overflowY,expandColumn}=reactData;const leftFixedWidth=$xeTable.computeLeftFixedWidth;const rightFixedWidth=$xeTable.computeRightFixedWidth;const{elemStore,lastScrollTop,lastScrollLeft}=internalData;const rowOpts=$xeTable.computeRowOpts;const scrollXVisible=$xeTable.computeScrollXVisible;const scrollYVisible=$xeTable.computeScrollYVisible;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(!bodyScrollElem){return;}const wheelSpeed=getWheelSpeed(internalData.lastSTime);const deltaTop=shiftKey?0:deltaY*wheelSpeed;const deltaLeft=(shiftKey?deltaX||deltaY:deltaX)*wheelSpeed;const currScrollTop=bodyScrollElem.scrollTop;const currScrollLeft=bodyScrollElem.scrollLeft;const scrollTop=Math.max(0,currScrollTop+deltaTop);const scrollLeft=Math.max(0,currScrollLeft+deltaLeft);const isRollX=overflowX&&scrollLeft!==lastScrollLeft;const isRollY=overflowY&&scrollTop!==lastScrollTop;if(isRollX){// 如果禁用滚动
|
|
8945
8892
|
if(scrollXVisible===false||scrollXVisible==='hidden'){evnt.preventDefault();return;}}if(isRollY){// 如果禁用滚动
|
|
8946
8893
|
if(scrollYVisible===false||scrollYVisible==='hidden'){evnt.preventDefault();return;}const isTopWheel=deltaTop<0;// 如果滚动位置已经是顶部或底部,则不需要触发
|
|
@@ -11676,8 +11623,8 @@ function panel_hideDropTip($xeTableCustomPanel) {
|
|
|
11676
11623
|
} = customPanelInternalData;
|
|
11677
11624
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
11678
11625
|
if (prevDragGroupField || prevDragAggFnColid) {
|
|
11679
|
-
if ($xeTable.
|
|
11680
|
-
$xeTable.
|
|
11626
|
+
if ($xeTable.handlePivotTableAggPanelDragendEvent) {
|
|
11627
|
+
$xeTable.handlePivotTableAggPanelDragendEvent(evnt);
|
|
11681
11628
|
}
|
|
11682
11629
|
} else if (prevDragCol && dragCol) {
|
|
11683
11630
|
// 判断是否有拖动
|
|
@@ -13166,6 +13113,7 @@ function filterCheckAllEvent($xeFilterPanel, evnt, value) {
|
|
|
13166
13113
|
* Publish methods
|
|
13167
13114
|
*************************/
|
|
13168
13115
|
renderOptions(h, filterRender, compConf) {
|
|
13116
|
+
const VxeUIScrollbarComponent = core_.VxeUI.getComponent('VxeScrollbar');
|
|
13169
13117
|
const $xeFilterPanel = this;
|
|
13170
13118
|
const props = $xeFilterPanel;
|
|
13171
13119
|
const $xeTable = $xeFilterPanel.$xeTable;
|
|
@@ -13174,12 +13122,15 @@ function filterCheckAllEvent($xeFilterPanel, evnt, value) {
|
|
|
13174
13122
|
filterStore
|
|
13175
13123
|
} = props;
|
|
13176
13124
|
const {
|
|
13177
|
-
column
|
|
13178
|
-
maxHeight
|
|
13125
|
+
column
|
|
13179
13126
|
} = filterStore;
|
|
13180
13127
|
if (!column) {
|
|
13181
13128
|
return [];
|
|
13182
13129
|
}
|
|
13130
|
+
const filterOpts = $xeTable.computeFilterOpts;
|
|
13131
|
+
const {
|
|
13132
|
+
useScrollbar
|
|
13133
|
+
} = filterOpts;
|
|
13183
13134
|
const {
|
|
13184
13135
|
filterMultiple,
|
|
13185
13136
|
filters,
|
|
@@ -13195,49 +13146,19 @@ function filterCheckAllEvent($xeFilterPanel, evnt, value) {
|
|
|
13195
13146
|
const rtFilter = compConf ? compConf.renderTableFilter || compConf.renderFilter : null;
|
|
13196
13147
|
if (filterSlot) {
|
|
13197
13148
|
return [h('div', {
|
|
13198
|
-
class: 'vxe-table--filter-template'
|
|
13199
|
-
style: maxHeight ? {
|
|
13200
|
-
maxHeight: toCssUnit(maxHeight)
|
|
13201
|
-
} : {}
|
|
13149
|
+
class: 'vxe-table--filter-template'
|
|
13202
13150
|
}, $xeTable.callSlot(filterSlot, params, h))];
|
|
13203
13151
|
} else if (filterRender && rtFilter) {
|
|
13204
13152
|
return [h('div', {
|
|
13205
|
-
class: 'vxe-table--filter-template'
|
|
13206
|
-
style: maxHeight ? {
|
|
13207
|
-
maxHeight: toCssUnit(maxHeight)
|
|
13208
|
-
} : {}
|
|
13153
|
+
class: 'vxe-table--filter-template'
|
|
13209
13154
|
}, getSlotVNs(rtFilter.call($xeTable, h, filterRender, params)))];
|
|
13210
13155
|
}
|
|
13211
13156
|
const isAllChecked = filterMultiple ? filterStore.isAllSelected : !filterOptions.some(item => item._checked);
|
|
13212
13157
|
const isAllIndeterminate = filterMultiple && filterStore.isIndeterminate;
|
|
13213
|
-
|
|
13214
|
-
class: 'vxe-table--filter-header'
|
|
13215
|
-
}, [h('li', {
|
|
13216
|
-
class: ['vxe-table--filter-option', {
|
|
13217
|
-
'is--checked': isAllChecked,
|
|
13218
|
-
'is--indeterminate': isAllIndeterminate
|
|
13219
|
-
}],
|
|
13220
|
-
attrs: {
|
|
13221
|
-
title: filter_panel_getI18n(filterMultiple ? 'vxe.table.allTitle' : 'vxe.table.allFilter')
|
|
13222
|
-
},
|
|
13223
|
-
on: {
|
|
13224
|
-
click: evnt => {
|
|
13225
|
-
$xeFilterPanel.changeAllOption(evnt, !filterStore.isAllSelected);
|
|
13226
|
-
}
|
|
13227
|
-
}
|
|
13228
|
-
}, (filterMultiple ? [h('span', {
|
|
13229
|
-
class: ['vxe-checkbox--icon', isAllIndeterminate ? filter_panel_getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? filter_panel_getIcon().TABLE_CHECKBOX_CHECKED : filter_panel_getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
13230
|
-
})] : []).concat([h('span', {
|
|
13231
|
-
class: 'vxe-checkbox--label'
|
|
13232
|
-
}, filter_panel_getI18n('vxe.table.allFilter'))]))]), h('ul', {
|
|
13233
|
-
class: 'vxe-table--filter-body',
|
|
13234
|
-
style: maxHeight ? {
|
|
13235
|
-
maxHeight: toCssUnit(maxHeight)
|
|
13236
|
-
} : {}
|
|
13237
|
-
}, filterOptions.map(item => {
|
|
13158
|
+
const optVNs = filterOptions.map(item => {
|
|
13238
13159
|
const isChecked = item._checked;
|
|
13239
13160
|
const isIndeterminate = false;
|
|
13240
|
-
return h('
|
|
13161
|
+
return h('div', {
|
|
13241
13162
|
class: ['vxe-table--filter-option', {
|
|
13242
13163
|
'is--checked': isChecked
|
|
13243
13164
|
}],
|
|
@@ -13254,7 +13175,37 @@ function filterCheckAllEvent($xeFilterPanel, evnt, value) {
|
|
|
13254
13175
|
})] : []).concat([h('span', {
|
|
13255
13176
|
class: 'vxe-checkbox--label'
|
|
13256
13177
|
}, formatText(item.label, 1))]));
|
|
13257
|
-
})
|
|
13178
|
+
});
|
|
13179
|
+
return [h('div', {
|
|
13180
|
+
class: 'vxe-table--filter-header'
|
|
13181
|
+
}, [h('div', {
|
|
13182
|
+
class: ['vxe-table--filter-option', {
|
|
13183
|
+
'is--checked': isAllChecked,
|
|
13184
|
+
'is--indeterminate': isAllIndeterminate
|
|
13185
|
+
}],
|
|
13186
|
+
attrs: {
|
|
13187
|
+
title: filter_panel_getI18n(filterMultiple ? 'vxe.table.allTitle' : 'vxe.table.allFilter')
|
|
13188
|
+
},
|
|
13189
|
+
on: {
|
|
13190
|
+
click: evnt => {
|
|
13191
|
+
$xeFilterPanel.changeAllOption(evnt, !filterStore.isAllSelected);
|
|
13192
|
+
}
|
|
13193
|
+
}
|
|
13194
|
+
}, (filterMultiple ? [h('span', {
|
|
13195
|
+
class: ['vxe-checkbox--icon', isAllIndeterminate ? filter_panel_getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllChecked ? filter_panel_getIcon().TABLE_CHECKBOX_CHECKED : filter_panel_getIcon().TABLE_CHECKBOX_UNCHECKED]
|
|
13196
|
+
})] : []).concat([h('span', {
|
|
13197
|
+
class: 'vxe-checkbox--label'
|
|
13198
|
+
}, filter_panel_getI18n('vxe.table.allFilter'))]))]), useScrollbar ? h(VxeUIScrollbarComponent, {
|
|
13199
|
+
class: 'vxe-table--scrollbar-filter-body',
|
|
13200
|
+
props: {
|
|
13201
|
+
viewClassName: 'vxe-table--scrollbar-filter-body-view'
|
|
13202
|
+
},
|
|
13203
|
+
scopedSlots: {
|
|
13204
|
+
default: () => optVNs
|
|
13205
|
+
}
|
|
13206
|
+
}) : h('div', {
|
|
13207
|
+
class: 'vxe-table--filter-body'
|
|
13208
|
+
}, optVNs)];
|
|
13258
13209
|
},
|
|
13259
13210
|
renderFooter(h) {
|
|
13260
13211
|
const $xeFilterPanel = this;
|
|
@@ -14473,7 +14424,8 @@ function updatePopupStyle($xeTable) {
|
|
|
14473
14424
|
const internalData = $xeTable;
|
|
14474
14425
|
const $xeGGWrapper = $xeGrid || $xeGantt;
|
|
14475
14426
|
const {
|
|
14476
|
-
filterStore
|
|
14427
|
+
filterStore,
|
|
14428
|
+
scrollbarHeight
|
|
14477
14429
|
} = reactData;
|
|
14478
14430
|
const {
|
|
14479
14431
|
elemStore
|
|
@@ -14504,8 +14456,6 @@ function updatePopupStyle($xeTable) {
|
|
|
14504
14456
|
if (!filterWrapperElem) {
|
|
14505
14457
|
return $xeTable.$nextTick();
|
|
14506
14458
|
}
|
|
14507
|
-
const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
|
|
14508
|
-
const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
|
|
14509
14459
|
/**
|
|
14510
14460
|
* 是否显示筛选按钮图标
|
|
14511
14461
|
* 如果不存在图标,则相对单元格居中显示
|
|
@@ -14535,6 +14485,7 @@ function updatePopupStyle($xeTable) {
|
|
|
14535
14485
|
if (transfer) {
|
|
14536
14486
|
const ppObj = updatePanelPlacement(currEl, filterWrapperElem, {
|
|
14537
14487
|
defaultPlacement: 'bottom',
|
|
14488
|
+
appendTo: '',
|
|
14538
14489
|
isMinWidth: false,
|
|
14539
14490
|
teleportTo: transfer
|
|
14540
14491
|
});
|
|
@@ -14542,9 +14493,9 @@ function updatePopupStyle($xeTable) {
|
|
|
14542
14493
|
} else {
|
|
14543
14494
|
const filterWidth = filterWrapperElem.offsetWidth;
|
|
14544
14495
|
const centerWidth = targetEl ? filterWidth / 2 : (filterWidth - column.renderWidth) / 2;
|
|
14545
|
-
maxHeight = Math.max(40, tableEl.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
|
|
14546
14496
|
left = btnRect.left - tableRect.left - centerWidth;
|
|
14547
14497
|
top = btnRect.top - tableRect.top + currEl.clientHeight;
|
|
14498
|
+
maxHeight = Math.max(40, tableEl.clientHeight - top - scrollbarHeight);
|
|
14548
14499
|
if (left < 1) {
|
|
14549
14500
|
left = 1;
|
|
14550
14501
|
} else if (left > tableEl.clientWidth - filterWidth - 1) {
|
|
@@ -14565,7 +14516,6 @@ function updatePopupStyle($xeTable) {
|
|
|
14565
14516
|
if (zIndex) {
|
|
14566
14517
|
panelStyle.zIndex = zIndex;
|
|
14567
14518
|
}
|
|
14568
|
-
filterStore.style = panelStyle;
|
|
14569
14519
|
// 筛选面板是自适应表格高度
|
|
14570
14520
|
if (compConf ? !compConf.tableFilterAutoHeight : false) {
|
|
14571
14521
|
maxHeight = 0;
|
|
@@ -14574,8 +14524,8 @@ function updatePopupStyle($xeTable) {
|
|
|
14574
14524
|
maxHeight = customMaxHeight > maxHeight ? maxHeight : customMaxHeight;
|
|
14575
14525
|
}
|
|
14576
14526
|
}
|
|
14577
|
-
|
|
14578
|
-
filterStore.
|
|
14527
|
+
panelStyle['--vxe-ui-vxe-table-filter-default-max-height'] = maxHeight ? toCssUnit(maxHeight) : 'none';
|
|
14528
|
+
filterStore.style = panelStyle;
|
|
14579
14529
|
};
|
|
14580
14530
|
handleStyle();
|
|
14581
14531
|
return $xeTable.$nextTick().then(() => {
|
|
@@ -21321,6 +21271,27 @@ const {
|
|
|
21321
21271
|
globalMixins: table_globalMixins,
|
|
21322
21272
|
renderEmptyElement: table_renderEmptyElement
|
|
21323
21273
|
} = core_.VxeUI;
|
|
21274
|
+
function bindScrollbarResize($xeTable) {
|
|
21275
|
+
const internalData = $xeTable;
|
|
21276
|
+
const {
|
|
21277
|
+
elemStore
|
|
21278
|
+
} = internalData;
|
|
21279
|
+
const isVScrollbar = $xeTable.computeIsVScrollbar;
|
|
21280
|
+
if (isVScrollbar) {
|
|
21281
|
+
const el = $xeTable.$refs.refElem;
|
|
21282
|
+
const viewInnerEl = getRefElem(elemStore['main-body-table']);
|
|
21283
|
+
const scrollObserver = table_globalResize.create(() => {
|
|
21284
|
+
$xeTable.reScrollFlag++;
|
|
21285
|
+
});
|
|
21286
|
+
if (el) {
|
|
21287
|
+
scrollObserver.observe(el);
|
|
21288
|
+
}
|
|
21289
|
+
if (viewInnerEl) {
|
|
21290
|
+
scrollObserver.observe(viewInnerEl);
|
|
21291
|
+
}
|
|
21292
|
+
internalData.scrollObserver = scrollObserver;
|
|
21293
|
+
}
|
|
21294
|
+
}
|
|
21324
21295
|
function handleUpdateMergeBodyCells($xeTable, merges) {
|
|
21325
21296
|
const internalData = $xeTable;
|
|
21326
21297
|
internalData.mergeBodyList = [];
|
|
@@ -21820,18 +21791,15 @@ function renderNativeBody(h, $xeTable) {
|
|
|
21820
21791
|
}, scrollbarYToLeft ? [renderScrollY(h, $xeTable), renderViewport(h, $xeTable)] : [renderViewport(h, $xeTable), renderScrollY(h, $xeTable)]);
|
|
21821
21792
|
}
|
|
21822
21793
|
function renderVirtualBody(h, $xeTable) {
|
|
21823
|
-
const props = $xeTable;
|
|
21824
21794
|
const reactData = $xeTable;
|
|
21825
21795
|
const internalData = $xeTable;
|
|
21826
21796
|
const $xeGantt = $xeTable.$xeGantt;
|
|
21827
21797
|
const $xeGanttView = internalData.xeGanttView;
|
|
21828
|
-
const {
|
|
21829
|
-
useScrollbar
|
|
21830
|
-
} = props;
|
|
21831
21798
|
const {
|
|
21832
21799
|
xThumbWidth,
|
|
21833
21800
|
yThumbHeight
|
|
21834
21801
|
} = reactData;
|
|
21802
|
+
const isVScrollbar = $xeTable.computeIsVScrollbar;
|
|
21835
21803
|
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
21836
21804
|
const scrollXAutoHide = $xeTable.computeScrollXAutoHide;
|
|
21837
21805
|
const scrollYAutoHide = $xeTable.computeScrollYAutoHide;
|
|
@@ -21845,10 +21813,10 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
21845
21813
|
return h('div', {
|
|
21846
21814
|
key: 'lvb',
|
|
21847
21815
|
class: ['vxe-table--layout-wrapper', `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
|
|
21848
|
-
'is--virtual-scrollbar':
|
|
21849
|
-
'ov-padding':
|
|
21850
|
-
'ov-x--auto-hide':
|
|
21851
|
-
'ov-y--auto-hide':
|
|
21816
|
+
'is--virtual-scrollbar': isVScrollbar,
|
|
21817
|
+
'ov-padding': isVScrollbar && scrollbarOpts.padding,
|
|
21818
|
+
'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
|
|
21819
|
+
'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
|
|
21852
21820
|
'overflow-y': yThumbHeight,
|
|
21853
21821
|
'overflow-x': xThumbWidth
|
|
21854
21822
|
}]
|
|
@@ -22294,7 +22262,10 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
22294
22262
|
computeTooltipOpts() {
|
|
22295
22263
|
const $xeTable = this;
|
|
22296
22264
|
const props = $xeTable;
|
|
22297
|
-
|
|
22265
|
+
const isVScrollbar = $xeTable.computeIsVScrollbar;
|
|
22266
|
+
return Object.assign({
|
|
22267
|
+
useScrollbar: isVScrollbar
|
|
22268
|
+
}, table_getConfig().tooltip, table_getConfig().table.tooltipConfig, props.tooltipConfig);
|
|
22298
22269
|
},
|
|
22299
22270
|
tipConfig() {
|
|
22300
22271
|
return {
|
|
@@ -22365,7 +22336,10 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
22365
22336
|
computeFilterOpts() {
|
|
22366
22337
|
const $xeTable = this;
|
|
22367
22338
|
const props = $xeTable;
|
|
22368
|
-
|
|
22339
|
+
const isVScrollbar = $xeTable.computeIsVScrollbar;
|
|
22340
|
+
return Object.assign({
|
|
22341
|
+
useScrollbar: isVScrollbar
|
|
22342
|
+
}, table_getConfig().table.filterConfig, props.filterConfig);
|
|
22369
22343
|
},
|
|
22370
22344
|
computeFloatingFilterOpts() {
|
|
22371
22345
|
const $xeTable = this;
|
|
@@ -23058,34 +23032,37 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
23058
23032
|
const $xeTable = this;
|
|
23059
23033
|
$xeTable.reLayoutFlag++;
|
|
23060
23034
|
},
|
|
23035
|
+
computeIsVScrollbar() {
|
|
23036
|
+
const $xeTable = this;
|
|
23037
|
+
$xeTable.$nextTick(() => {
|
|
23038
|
+
bindScrollbarResize($xeTable);
|
|
23039
|
+
$xeTable.$nextTick(() => {
|
|
23040
|
+
$xeTable.reLayoutFlag++;
|
|
23041
|
+
});
|
|
23042
|
+
});
|
|
23043
|
+
},
|
|
23061
23044
|
computeScrollbarXToTop() {
|
|
23062
23045
|
const $xeTable = this;
|
|
23063
|
-
$xeTable.reScrollFlag++;
|
|
23064
23046
|
$xeTable.reLayoutFlag++;
|
|
23065
23047
|
},
|
|
23066
23048
|
computeScrollbarYToLeft() {
|
|
23067
23049
|
const $xeTable = this;
|
|
23068
|
-
$xeTable.reScrollFlag++;
|
|
23069
23050
|
$xeTable.reLayoutFlag++;
|
|
23070
23051
|
},
|
|
23071
23052
|
computeScrollXVisible() {
|
|
23072
23053
|
const $xeTable = this;
|
|
23073
|
-
$xeTable.reScrollFlag++;
|
|
23074
23054
|
$xeTable.reLayoutFlag++;
|
|
23075
23055
|
},
|
|
23076
23056
|
computeScrollYVisible() {
|
|
23077
23057
|
const $xeTable = this;
|
|
23078
|
-
$xeTable.reScrollFlag++;
|
|
23079
23058
|
$xeTable.reLayoutFlag++;
|
|
23080
23059
|
},
|
|
23081
23060
|
computeScrollXHeight() {
|
|
23082
23061
|
const $xeTable = this;
|
|
23083
|
-
$xeTable.reScrollFlag++;
|
|
23084
23062
|
$xeTable.reLayoutFlag++;
|
|
23085
23063
|
},
|
|
23086
23064
|
computeScrollYWidth() {
|
|
23087
23065
|
const $xeTable = this;
|
|
23088
|
-
$xeTable.reScrollFlag++;
|
|
23089
23066
|
$xeTable.reLayoutFlag++;
|
|
23090
23067
|
},
|
|
23091
23068
|
computeCellHeitht() {
|
|
@@ -23094,17 +23071,14 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
23094
23071
|
},
|
|
23095
23072
|
reLayoutFlag() {
|
|
23096
23073
|
const $xeTable = this;
|
|
23097
|
-
$xeTable.$nextTick(() => {
|
|
23074
|
+
$xeTable.$nextTick().then(() => {
|
|
23098
23075
|
$xeTable.recalculate(true);
|
|
23099
23076
|
});
|
|
23100
23077
|
},
|
|
23101
23078
|
reScrollFlag() {
|
|
23102
23079
|
const $xeTable = this;
|
|
23103
|
-
$xeTable
|
|
23080
|
+
$xeTable.updateScrollbar().then(() => {
|
|
23104
23081
|
$xeTable.updateScrollbar();
|
|
23105
|
-
$xeTable.$nextTick(() => {
|
|
23106
|
-
$xeTable.updateScrollbar();
|
|
23107
|
-
});
|
|
23108
23082
|
});
|
|
23109
23083
|
},
|
|
23110
23084
|
footerData() {
|
|
@@ -23569,7 +23543,6 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
23569
23543
|
}
|
|
23570
23544
|
$xeTable.$nextTick(() => {
|
|
23571
23545
|
const {
|
|
23572
|
-
useScrollbar,
|
|
23573
23546
|
autoResize
|
|
23574
23547
|
} = props;
|
|
23575
23548
|
const {
|
|
@@ -23583,6 +23556,7 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
23583
23556
|
showHeaderOverflow,
|
|
23584
23557
|
showFooterOverflow
|
|
23585
23558
|
} = props;
|
|
23559
|
+
const isVScrollbar = $xeTable.computeIsVScrollbar;
|
|
23586
23560
|
const tooltipOpts = $xeTable.computeTooltipOpts;
|
|
23587
23561
|
const headerTooltipOpts = $xeTable.computeHeaderTooltipOpts;
|
|
23588
23562
|
const footerTooltipOpts = $xeTable.computeFooterTooltipOpts;
|
|
@@ -23623,7 +23597,7 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
23623
23597
|
}
|
|
23624
23598
|
}
|
|
23625
23599
|
const el = $xeTable.$refs.refElem;
|
|
23626
|
-
if (
|
|
23600
|
+
if (isVScrollbar) {
|
|
23627
23601
|
const viewInnerEl = getRefElem(elemStore['main-body-table']);
|
|
23628
23602
|
const scrollObserver = table_globalResize.create(() => {
|
|
23629
23603
|
$xeTable.reScrollFlag++;
|
|
@@ -23751,7 +23725,6 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
23751
23725
|
const {
|
|
23752
23726
|
loading,
|
|
23753
23727
|
stripe,
|
|
23754
|
-
useScrollbar,
|
|
23755
23728
|
showHeader,
|
|
23756
23729
|
height,
|
|
23757
23730
|
treeConfig,
|
|
@@ -23784,6 +23757,7 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
23784
23757
|
leftList,
|
|
23785
23758
|
rightList
|
|
23786
23759
|
} = columnStore;
|
|
23760
|
+
const isVScrollbar = $xeTable.computeIsVScrollbar;
|
|
23787
23761
|
const loadingSlot = slots.loading;
|
|
23788
23762
|
const tipSlots = {
|
|
23789
23763
|
header: slots.headerTooltip || slots['header-tooltip'],
|
|
@@ -23827,7 +23801,7 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
23827
23801
|
}
|
|
23828
23802
|
return h('div', {
|
|
23829
23803
|
ref: 'refElem',
|
|
23830
|
-
class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`,
|
|
23804
|
+
class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, isVScrollbar ? 'is--virtual-scrollbar' : 'is--native-scrollbar', `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
|
|
23831
23805
|
[`size--${vSize}`]: vSize,
|
|
23832
23806
|
[`valid-msg--${validOpts.msgMode}`]: !!editRules,
|
|
23833
23807
|
'vxe-editable': !!editConfig,
|
|
@@ -23888,7 +23862,7 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
23888
23862
|
})]), h('div', {
|
|
23889
23863
|
key: 'tw',
|
|
23890
23864
|
class: 'vxe-table--render-wrapper'
|
|
23891
|
-
},
|
|
23865
|
+
}, isVScrollbar ? [renderVirtualBody(h, $xeTable)] : scrollbarXToTop ? [renderScrollX(h, $xeTable), renderNativeBody(h, $xeTable)] : [renderNativeBody(h, $xeTable), renderScrollX(h, $xeTable)]),
|
|
23892
23866
|
/**
|
|
23893
23867
|
* 空数据
|
|
23894
23868
|
*/
|
|
@@ -24033,7 +24007,8 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
24033
24007
|
ref: 'refCommTooltip',
|
|
24034
24008
|
props: {
|
|
24035
24009
|
isArrow: false,
|
|
24036
|
-
enterable: false
|
|
24010
|
+
enterable: false,
|
|
24011
|
+
useScrollbar: isVScrollbar
|
|
24037
24012
|
}
|
|
24038
24013
|
}) : table_renderEmptyElement($xeTable),
|
|
24039
24014
|
/**
|
|
@@ -24058,7 +24033,8 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
24058
24033
|
maxHeight: tableTipConfig.maxHeight,
|
|
24059
24034
|
placement: tableTipConfig.placement,
|
|
24060
24035
|
defaultPlacement: tableTipConfig.defaultPlacement,
|
|
24061
|
-
popupClassName: tableTipConfig.popupClassName
|
|
24036
|
+
popupClassName: tableTipConfig.popupClassName,
|
|
24037
|
+
useScrollbar: tableTipConfig.useScrollbar
|
|
24062
24038
|
},
|
|
24063
24039
|
scopedSlots: currTooltipSlot ? {
|
|
24064
24040
|
content: () => {
|
|
@@ -24122,7 +24098,8 @@ function renderVirtualBody(h, $xeTable) {
|
|
|
24122
24098
|
theme: validTipConfig.theme,
|
|
24123
24099
|
enterable: validTipConfig.enterable,
|
|
24124
24100
|
enterDelay: validTipConfig.enterDelay,
|
|
24125
|
-
leaveDelay: validTipConfig.leaveDelay
|
|
24101
|
+
leaveDelay: validTipConfig.leaveDelay,
|
|
24102
|
+
useScrollbar: validTipConfig.useScrollbar
|
|
24126
24103
|
}
|
|
24127
24104
|
}) : table_renderEmptyElement($xeTable)])]);
|
|
24128
24105
|
},
|