vxe-table 3.25.0-beta.0 → 3.25.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/locale/lang/fr-FR.js +29 -29
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/src/methods.js +248 -40
- package/es/table/src/props.js +5 -0
- package/es/table/src/scrollbar.js +54 -0
- package/es/table/src/table.js +292 -73
- package/es/table/src/util.js +11 -2
- package/es/table/style.css +30 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +9 -11
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +30 -0
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +366 -84
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/fr-FR.js +29 -29
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/fr-FR.umd.js +29 -29
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/src/methods.js +21 -11
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/props.js +5 -0
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/scrollbar.js +63 -0
- package/lib/table/src/scrollbar.min.js +1 -0
- package/lib/table/src/table.js +265 -62
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +11 -2
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +30 -0
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +9 -11
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +30 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/locale/lang/fr-FR.ts +903 -903
- package/packages/table/src/methods.ts +260 -40
- package/packages/table/src/props.ts +5 -0
- package/packages/table/src/scrollbar.ts +57 -0
- package/packages/table/src/table.ts +329 -75
- package/packages/table/src/util.ts +15 -2
- package/packages/ui/index.ts +8 -10
- package/styles/components/table.scss +65 -0
- /package/es/{iconfont.1791880417274.ttf → iconfont.1792035018941.ttf} +0 -0
- /package/es/{iconfont.1791880417274.woff → iconfont.1792035018941.woff} +0 -0
- /package/es/{iconfont.1791880417274.woff2 → iconfont.1792035018941.woff2} +0 -0
- /package/lib/{iconfont.1791880417274.ttf → iconfont.1792035018941.ttf} +0 -0
- /package/lib/{iconfont.1791880417274.woff → iconfont.1792035018941.woff} +0 -0
- /package/lib/{iconfont.1791880417274.woff2 → iconfont.1792035018941.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.2";
|
|
3327
3327
|
core_.VxeUI.version = version;
|
|
3328
3328
|
core_.VxeUI.tableVersion = version;
|
|
3329
3329
|
core_.VxeUI.setConfig({
|
|
@@ -3586,16 +3586,14 @@ core_.VxeUI.setConfig({
|
|
|
3586
3586
|
oSize: 0
|
|
3587
3587
|
},
|
|
3588
3588
|
scrollbarConfig: {
|
|
3589
|
-
//
|
|
3590
|
-
//
|
|
3591
|
-
|
|
3592
|
-
|
|
3593
|
-
|
|
3594
|
-
|
|
3595
|
-
|
|
3596
|
-
|
|
3597
|
-
visible: true
|
|
3598
|
-
}
|
|
3589
|
+
// xConfig: {
|
|
3590
|
+
// // position: 'bottom',
|
|
3591
|
+
// // visible: true
|
|
3592
|
+
// },
|
|
3593
|
+
// yConfig: {
|
|
3594
|
+
// // position: 'right',
|
|
3595
|
+
// // visible: true
|
|
3596
|
+
// }
|
|
3599
3597
|
},
|
|
3600
3598
|
undoRedoHistoryConfig: {
|
|
3601
3599
|
stackSize: 50
|
|
@@ -4285,7 +4283,7 @@ function getPopupAppendElement(appendTo) {
|
|
|
4285
4283
|
const {
|
|
4286
4284
|
log: log_log
|
|
4287
4285
|
} = core_.VxeUI;
|
|
4288
|
-
const tableVersion = `table v${"3.25.0-beta.
|
|
4286
|
+
const tableVersion = `table v${"3.25.0-beta.2"}`;
|
|
4289
4287
|
function createComponentLog(name) {
|
|
4290
4288
|
const uiVersion = core_.VxeUI.uiVersion ? `ui v${core_.VxeUI.uiVersion}` : '';
|
|
4291
4289
|
const ganttVersion = core_.VxeUI.ganttVersion ? `gantt v${core_.VxeUI.ganttVersion}` : '';
|
|
@@ -4612,9 +4610,15 @@ function createInternalData() {
|
|
|
4612
4610
|
// 当前行
|
|
4613
4611
|
currentRow: null,
|
|
4614
4612
|
currentCol: null,
|
|
4615
|
-
//
|
|
4616
|
-
|
|
4613
|
+
// resizeObserver: undefined,
|
|
4614
|
+
// 滚动条
|
|
4615
|
+
// scrollObserver: undefined,
|
|
4616
|
+
// isThumbDrag: false,
|
|
4617
|
+
thumbDragOffset: 0,
|
|
4618
|
+
yThumbTop: 0,
|
|
4619
|
+
xThumbLeft: 0,
|
|
4617
4620
|
lastScrollTop: 0,
|
|
4621
|
+
lastScrollLeft: 0,
|
|
4618
4622
|
// 单选框属性,已选中保留的行
|
|
4619
4623
|
radioReserveRow: null,
|
|
4620
4624
|
// 复选框属性,已选中保留的行集合
|
|
@@ -4746,6 +4750,9 @@ function createReactData() {
|
|
|
4746
4750
|
scrollbarWidth: 0,
|
|
4747
4751
|
// 横向滚动条的高度
|
|
4748
4752
|
scrollbarHeight: 0,
|
|
4753
|
+
// 滚动条
|
|
4754
|
+
yThumbHeight: 0,
|
|
4755
|
+
xThumbWidth: 0,
|
|
4749
4756
|
// 行高
|
|
4750
4757
|
rowHeight: 0,
|
|
4751
4758
|
// 表格父容器的高度
|
|
@@ -7658,6 +7665,7 @@ const Colgroup = VxeColgroup;
|
|
|
7658
7665
|
var es_iterator_filter = __webpack_require__(2489);
|
|
7659
7666
|
;// ./packages/table/src/props.ts
|
|
7660
7667
|
|
|
7668
|
+
|
|
7661
7669
|
const {
|
|
7662
7670
|
getConfig: props_getConfig
|
|
7663
7671
|
} = core_.VxeUI;
|
|
@@ -7965,6 +7973,10 @@ const tableProps = {
|
|
|
7965
7973
|
virtualXConfig: Object,
|
|
7966
7974
|
// 纵向虚拟滚动配置项
|
|
7967
7975
|
virtualYConfig: Object,
|
|
7976
|
+
useScrollbar: {
|
|
7977
|
+
type: Boolean,
|
|
7978
|
+
default: () => getDefaultConfig(props_getConfig().table.useScrollbar, props_getConfig().useScrollbar)
|
|
7979
|
+
},
|
|
7968
7980
|
// 滚动条配置项
|
|
7969
7981
|
scrollbarConfig: Object,
|
|
7970
7982
|
// 撤销/恢复历史配置项
|
|
@@ -8042,6 +8054,61 @@ function clearColAnimate(elem, clss) {
|
|
|
8042
8054
|
}
|
|
8043
8055
|
}, 500);
|
|
8044
8056
|
}
|
|
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
|
+
}
|
|
8045
8112
|
;// ./packages/table/src/store.ts
|
|
8046
8113
|
// 跨表拖拽
|
|
8047
8114
|
const crossTableDragRowGlobal = {
|
|
@@ -8116,7 +8183,7 @@ if(sortMultiple){tableData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_
|
|
|
8116
8183
|
if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(firstOrderColumn.sortBy)){sortByConfs=firstOrderColumn.sortBy.map(item=>[item,firstOrderColumn.order]);}tableData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(tableData,sortByConfs||[firstOrderColumn].map(({column,order})=>[getOrderField($xeTable,column),order]));}tableData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(tableData,orderColumns.map(({column,order})=>[getOrderField($xeTable,column),order]));}tableTree=tableData;}}}else{if(isRowGroupStatus){// 还原行分组
|
|
8117
8184
|
// 还原虚拟树
|
|
8118
8185
|
tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullGroupData,()=>true,{original:true,isEvery:true,children:aggregateOpts.mapChildrenField,mapChildren:aggregateOpts.childrenField});tableData=tableTree;}else if(treeConfig&&transform&&isSortDeep!==false){// 还原虚拟树
|
|
8119
|
-
tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullTreeData,()=>true,{original:true,isEvery,children:mapChildrenField,mapChildren:childrenField});tableData=tableTree;}else{tableData=treeConfig?tableFullTreeData.slice(0):tableFullData.slice(0);tableTree=tableData;}}internalData.afterFullData=tableData;internalData.afterTreeFullData=tableTree;internalData.afterGroupFullData=tableTree;updateAfterDataIndex($xeTable);}function updateStyle($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const $xeGantt=$xeTable.$xeGantt;const{mouseConfig}=props;const{isGroup,tableColumn,overflowX,scrollbarWidth,overflowY,scrollbarHeight,scrollXWidth,columnStore,editStore,isColLoading}=reactData;const{visibleColumn,tableHeight,elemStore,currentRow,customHeight,customMinHeight,customMaxHeight,tHeaderHeight,tFooterHeight}=internalData;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;if(!el||internalData.tBodyHeight&&!el.clientHeight){return;}const browseObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().browse();const containerList=['main','left','right'];const{leftList,rightList}=columnStore;let osbWidth=overflowY?scrollbarWidth:0;let osbHeight=overflowX?scrollbarHeight:0;const emptyPlaceholderElem=$xeTable.$refs.refEmptyPlaceholder;const isHeaderRenderOptimize=$xeTable.computeIsHeaderRenderOptimize;const isBodyRenderOptimize=$xeTable.computeIsBodyRenderOptimize;const isFooterRenderOptimize=$xeTable.computeIsFooterRenderOptimize;const
|
|
8186
|
+
tableTree=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(tableFullTreeData,()=>true,{original:true,isEvery,children:mapChildrenField,mapChildren:childrenField});tableData=tableTree;}else{tableData=treeConfig?tableFullTreeData.slice(0):tableFullData.slice(0);tableTree=tableData;}}internalData.afterFullData=tableData;internalData.afterTreeFullData=tableTree;internalData.afterGroupFullData=tableTree;updateAfterDataIndex($xeTable);}function updateStyle($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const $xeGantt=$xeTable.$xeGantt;const{mouseConfig}=props;const{isGroup,tableColumn,overflowX,scrollbarWidth,overflowY,scrollbarHeight,scrollXWidth,columnStore,editStore,isColLoading}=reactData;const{visibleColumn,tableHeight,elemStore,currentRow,customHeight,customMinHeight,customMaxHeight,tHeaderHeight,tFooterHeight}=internalData;const $xeGanttView=internalData.xeGanttView;const el=$xeTable.$refs.refElem;if(!el||internalData.tBodyHeight&&!el.clientHeight){return;}const browseObj=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().browse();const containerList=['main','left','right'];const{leftList,rightList}=columnStore;let osbWidth=overflowY?scrollbarWidth:0;let osbHeight=overflowX?scrollbarHeight:0;const emptyPlaceholderElem=$xeTable.$refs.refEmptyPlaceholder;const isHeaderRenderOptimize=$xeTable.computeIsHeaderRenderOptimize;const isBodyRenderOptimize=$xeTable.computeIsBodyRenderOptimize;const isFooterRenderOptimize=$xeTable.computeIsFooterRenderOptimize;const mouseOpts=$xeTable.computeMouseOpts;const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);const bodyTableElem=getRefElem(elemStore['main-body-table']);if(emptyPlaceholderElem){emptyPlaceholderElem.style.top=`${tHeaderHeight}px`;emptyPlaceholderElem.style.height=bodyWrapperElem?`${bodyWrapperElem.offsetHeight-osbHeight}px`:'';}const scrollXVisible=$xeTable.computeScrollXVisible;const scrollYVisible=$xeTable.computeScrollYVisible;const scrollbarYToLeft=$xeTable.computeScrollbarYToLeft;let xScrollbarVisible=overflowX?'visible':'hidden';const hideXScroll=scrollXVisible===false||scrollXVisible==='hidden';if(scrollXVisible==='visible'||$xeGanttView){osbHeight=scrollbarHeight;xScrollbarVisible='visible';}else if(hideXScroll){osbHeight=0;xScrollbarVisible='hidden';}let yScrollbarVisible=overflowY?'visible':'hidden';const hideYScroll=scrollYVisible===false||scrollYVisible==='hidden';if(hideYScroll||$xeGantt&&$xeGanttView&&$xeGantt.reactData.showRightView&&!scrollbarYToLeft){osbWidth=0;yScrollbarVisible='hidden';}else if(scrollYVisible==='visible'){osbWidth=scrollbarWidth;yScrollbarVisible='visible';}let tbHeight=0;let bodyMaxHeight=0;const bodyMinHeight=customMinHeight-tHeaderHeight-tFooterHeight-osbHeight;if(customMaxHeight){bodyMaxHeight=Math.max(bodyMinHeight,customMaxHeight-tHeaderHeight-tFooterHeight-osbHeight);}if(customHeight){tbHeight=customHeight-tHeaderHeight-tFooterHeight-osbHeight;}if(!tbHeight){if(bodyTableElem){tbHeight=bodyTableElem.clientHeight;}}if(tbHeight){if(bodyMaxHeight){tbHeight=Math.min(bodyMaxHeight,tbHeight);}tbHeight=Math.max(bodyMinHeight,tbHeight);}const xLeftCornerEl=$xeTable.$refs.refScrollXLeftCornerElem;const xRightCornerEl=$xeTable.$refs.refScrollXRightCornerElem;const scrollXVirtualEl=$xeTable.$refs.refScrollXVirtualElem;if(scrollXVirtualEl){scrollXVirtualEl.style.height=`${osbHeight}px`;scrollXVirtualEl.style.visibility=xScrollbarVisible;}const xWrapperEl=$xeTable.$refs.refScrollXWrapperElem;if(xWrapperEl){xWrapperEl.style.width=`${el.clientWidth-osbWidth}px`;if(scrollbarYToLeft){xWrapperEl.style.left=`${osbWidth}px`;}else{xWrapperEl.style.left='';}}if(xLeftCornerEl){if(scrollbarYToLeft){xLeftCornerEl.style.width=`${osbWidth}px`;xLeftCornerEl.style.display=overflowY&&osbWidth?'block':'';}else{xLeftCornerEl.style.display='';}}if(xRightCornerEl){if(scrollbarYToLeft){xRightCornerEl.style.display='';}else{xRightCornerEl.style.width=`${osbWidth}px`;xRightCornerEl.style.display=xScrollbarVisible==='visible'?'block':'';}}const scrollYVirtualEl=$xeTable.$refs.refScrollYVirtualElem;if(scrollYVirtualEl){scrollYVirtualEl.style.width=`${osbWidth}px`;scrollYVirtualEl.style.height=`${tbHeight+tHeaderHeight+tFooterHeight}px`;scrollYVirtualEl.style.visibility=yScrollbarVisible;}const yTopCornerEl=$xeTable.$refs.refScrollYTopCornerElem;if(yTopCornerEl){yTopCornerEl.style.height=`${tHeaderHeight}px`;yTopCornerEl.style.display=tHeaderHeight&&yScrollbarVisible==='visible'?'block':'';}const yWrapperEl=$xeTable.$refs.refScrollYWrapperElem;if(yWrapperEl){yWrapperEl.style.height=`${tbHeight}px`;yWrapperEl.style.top=`${tHeaderHeight}px`;}const yBottomCornerEl=$xeTable.$refs.refScrollYBottomCornerElem;if(yBottomCornerEl){yBottomCornerEl.style.height=`${tFooterHeight}px`;yBottomCornerEl.style.top=`${tHeaderHeight+tbHeight}px`;yBottomCornerEl.style.display=tFooterHeight&&yScrollbarVisible==='visible'?'block':'';}const rowExpandEl=$xeTable.$refs.refRowExpandElem;if(rowExpandEl){rowExpandEl.style.height=`${tbHeight}px`;rowExpandEl.style.top=`${tHeaderHeight}px`;}internalData.tBodyHeight=tbHeight;containerList.forEach((name,index)=>{const fixedType=index>0?name:'';const layoutList=['header','body','footer'];const isFixedLeft=fixedType==='left';let fixedColumn=[];let fixedWrapperElem;if(fixedType){fixedColumn=isFixedLeft?leftList:rightList;fixedWrapperElem=isFixedLeft?$xeTable.$refs.refLeftContainer:$xeTable.$refs.refRightContainer;}layoutList.forEach(layout=>{const wrapperElem=getRefElem(elemStore[`${name}-${layout}-wrapper`]);const currScrollElem=getRefElem(elemStore[`${name}-${layout}-scroll`]);const tableElem=getRefElem(elemStore[`${name}-${layout}-table`]);if(layout==='header'){// 表头体样式处理
|
|
8120
8187
|
// 横向滚动渲染
|
|
8121
8188
|
let renderColumnList=tableColumn;const isOptimizeMode=isHeaderRenderOptimize;if(isGroup){renderColumnList=visibleColumn;}else{if(!isOptimizeMode||!isColLoading&&(fixedType||!overflowX)){renderColumnList=visibleColumn;}if(fixedType){// 如果是使用优化模式
|
|
8122
8189
|
if(isOptimizeMode){renderColumnList=fixedColumn||[];}}}const tWidth=renderColumnList.reduce((previous,column)=>previous+column.renderWidth,0);if(fixedType){if(isGroup){if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}else{if(isOptimizeMode){if(wrapperElem){wrapperElem.style.width=tWidth?`${tWidth}px`:'';}}else{if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}}}if(currScrollElem){currScrollElem.style.height=`${tHeaderHeight}px`;}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';}}else if(layout==='body'){if(currScrollElem){currScrollElem.style.maxHeight=customMaxHeight?`${bodyMaxHeight}px`:'';currScrollElem.style.height=customHeight?`${tbHeight}px`:'';currScrollElem.style.minHeight=`${bodyMinHeight}px`;}// 如果是固定列
|
|
@@ -8186,7 +8253,7 @@ val=144;}}else{val=defMinHeight;}}}let num=0;if(val){if(val==='100%'||val==='aut
|
|
|
8186
8253
|
* 支持动态列表调整分配
|
|
8187
8254
|
* 支持自动分配偏移量
|
|
8188
8255
|
* 支持 width=60 width=60px width=10% min-width=60 min-width=60px min-width=10%
|
|
8189
|
-
*/function autoCellWidth($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);if(!bodyWrapperElem){return;}const
|
|
8256
|
+
*/function autoCellWidth($xeTable){const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const bodyWrapperElem=getRefElem(elemStore['main-body-wrapper']);if(!bodyWrapperElem){return;}const columnOpts=$xeTable.computeColumnOpts;let tWidth=0;const minCellWidth=40;// 列宽最少限制 40px
|
|
8190
8257
|
const bodyWidth=bodyWrapperElem.clientWidth;let remainWidth=bodyWidth;let meanWidth=remainWidth/100;const{fit}=props;const{columnStore}=reactData;const{resizeList,pxMinList,autoMinList,pxList,scaleList,scaleMinList,autoList,remainList}=columnStore;const parseColumnMaxWidth=column=>{const maxWidth=column.maxWidth||columnOpts.maxWidth;if(maxWidth&&maxWidth!=='auto'){if(isScale(maxWidth)){return Math.floor(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(maxWidth)*meanWidth);}return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(maxWidth);}return 0;};// 最小宽
|
|
8191
8258
|
pxMinList.forEach(column=>{let miWidth=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(column.minWidth);const mxWidth=parseColumnMaxWidth(column);if(mxWidth){miWidth=Math.min(miWidth,mxWidth);}tWidth+=miWidth;column.renderWidth=miWidth;});// 最小自适应
|
|
8192
8259
|
autoMinList.forEach(column=>{let caWidth=Math.max(60,external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toInteger(column.renderAutoWidth));const mxWidth=parseColumnMaxWidth(column);if(mxWidth){caWidth=Math.min(caWidth,mxWidth);}tWidth+=caWidth;column.renderWidth=caWidth;});// 最小百分比
|
|
@@ -8216,9 +8283,11 @@ isShow=true;content=customContent;}else{content=cellText;}}if(isShow&&content){c
|
|
|
8216
8283
|
function computeScrollLoad($xeTable){const reactData=$xeTable;const internalData=$xeTable;return $xeTable.$nextTick().then(()=>{const{scrollXLoad,scrollYLoad}=reactData;const{scrollXStore,scrollYStore}=internalData;const virtualYOpts=$xeTable.computeVirtualYOpts;const virtualXOpts=$xeTable.computeVirtualXOpts;// 计算 X 逻辑
|
|
8217
8284
|
if(scrollXLoad){const{toVisibleIndex:toXVisibleIndex,visibleSize:visibleXSize}=handleVirtualXVisible($xeTable);const offsetXSize=Math.max(0,virtualXOpts.oSize?external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualXOpts.oSize):0);scrollXStore.preloadSize=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(virtualXOpts.preSize);scrollXStore.offsetSize=offsetXSize;scrollXStore.visibleSize=visibleXSize;scrollXStore.endIndex=Math.max(scrollXStore.startIndex+scrollXStore.visibleSize+offsetXSize,scrollXStore.endIndex);scrollXStore.visibleStartIndex=Math.max(scrollXStore.startIndex,toXVisibleIndex);scrollXStore.visibleEndIndex=Math.min(scrollXStore.endIndex,toXVisibleIndex+visibleXSize);$xeTable.updateScrollXData().then(()=>{loadScrollXData($xeTable);});}else{$xeTable.updateScrollXSpace();}// 计算 Y 逻辑
|
|
8218
8285
|
const rowHeight=computeRowHeight($xeTable);scrollYStore.rowHeight=rowHeight;// 已废弃
|
|
8219
|
-
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
|
|
8286
|
+
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
|
+
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
|
+
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(()=>{// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
|
|
8220
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毫秒内频繁执行,则执行次数减缓
|
|
8221
|
-
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;if(el&&el.clientWidth){autoCellWidth($xeTable);updateRowExpandStyle($xeTable);}if(customStore.visible&&$xeTable.handleCustomStyle){$xeTable.handleCustomStyle();}const renderCellSize=tableData.length*tableColumn.length;// 渲染量低的场景
|
|
8290
|
+
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;// 渲染量低的场景
|
|
8222
8291
|
if(renderCellSize<400){rceDelay=20;}else if(renderCellSize<600){rceDelay=40;}else if(renderCellSize<800){rceDelay=80;}if(rceTimeout){clearTimeout(rceTimeout);// 多少毫秒内至少执行一次
|
|
8223
8292
|
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,/**
|
|
8224
8293
|
* 已废弃
|
|
@@ -8740,6 +8809,8 @@ if(isEnableConf(editConfig)&&editOpts.autoClear!==false&&editOpts.trigger==='dbl
|
|
|
8740
8809
|
*/triggerCellDblclickEvent(evnt,params){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const{editConfig}=props;const{editStore,isDragResize}=reactData;if(isDragResize){return;}const editOpts=$xeTable.computeEditOpts;const{actived}=editStore;const cell=evnt.currentTarget;params=Object.assign({cell},params);if(isEnableConf(editConfig)&&editOpts.trigger==='dblclick'){if(!actived.args||evnt.currentTarget!==actived.args.cell){if(editOpts.mode==='row'){checkValidate($xeTable,'blur').catch(e=>e).then(()=>{$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);});}else if(editOpts.mode==='cell'){$xeTable.handleEdit(params,evnt).then(()=>checkValidate($xeTable,'change')).catch(e=>e);}}}$xeTable.dispatchEvent('cell-dblclick',params,evnt);},triggerFooterCellClickEvent(evnt,params){const $xeTable=this;const $xeGantt=$xeTable.$xeGantt;const cell=evnt.currentTarget;params=Object.assign({cell},params);if($xeGantt){const ganttReactData=$xeGantt.reactData;ganttReactData.activeBarRowid=null;}$xeTable.dispatchEvent('footer-cell-click',params,evnt);},triggerFooterCellDblclickEvent(evnt,params){const $xeTable=this;const cell=evnt.currentTarget;params=Object.assign({cell},params);$xeTable.dispatchEvent('footer-cell-dblclick',params,evnt);},handleColumnSortEvent(evnt,column){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;const{field,sortable,order}=column;if(sortable){const params={$table:$xeTable,$event:evnt,column,field,property:field,order,sortList:$xeTable.getSortColumns(),sortTime:column.sortTime};if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleSortEvent){$xeTable.handleSortEvent(evnt,params);}if(!order){$xeTable.dispatchEvent('clear-sort',params,evnt);}$xeTable.dispatchEvent('sort-change',params,evnt);}},/**
|
|
8741
8810
|
* 点击排序事件
|
|
8742
8811
|
*/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
|
+
* @private
|
|
8813
|
+
*/updateScrollbar(){const $xeTable=this;$xeTable.updateThumbSize();$xeTable.updateThumbOffset();},/**
|
|
8743
8814
|
* 表头单元格按下事件
|
|
8744
8815
|
*/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();}},/**
|
|
8745
8816
|
* 单元格按下事件
|
|
@@ -8865,14 +8936,14 @@ if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{retur
|
|
|
8865
8936
|
* 获取表格的滚动状态
|
|
8866
8937
|
*/getScroll(){const $xeTable=this;return $xeTable.getScrollData();},/**
|
|
8867
8938
|
* 获取表格的滚动数据
|
|
8868
|
-
*/getScrollData(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,scrollbarHeight,scrollbarWidth}=reactData;const{elemStore}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const scrollTop=bodyScrollElem?bodyScrollElem.scrollTop:0;const scrollLeft=bodyScrollElem?bodyScrollElem.scrollLeft:0;const clientHeight=bodyScrollElem?bodyScrollElem.clientHeight:0;const clientWidth=bodyScrollElem?bodyScrollElem.clientWidth:0;const scrollHeight=bodyScrollElem?bodyScrollElem.scrollHeight:0;const scrollWidth=bodyScrollElem?bodyScrollElem.scrollWidth:0;const isTop=scrollTop<=0;const isBottom=scrollTop+clientHeight>=scrollHeight;const isLeft=scrollLeft<=0;const isRight=scrollLeft+clientWidth>=scrollWidth;return{virtualX:scrollXLoad,virtualY:scrollYLoad,isTop,isBottom,isLeft,isRight,scrollbarHeight,scrollbarWidth,scrollTop,scrollLeft,scrollHeight,scrollWidth,clientHeight,clientWidth};},handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,params){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{highlightHoverRow}=props;const{lastScrollLeft,lastScrollTop}=internalData;const
|
|
8939
|
+
*/getScrollData(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad,scrollYLoad,scrollbarHeight,scrollbarWidth}=reactData;const{elemStore}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const scrollTop=bodyScrollElem?bodyScrollElem.scrollTop:0;const scrollLeft=bodyScrollElem?bodyScrollElem.scrollLeft:0;const clientHeight=bodyScrollElem?bodyScrollElem.clientHeight:0;const clientWidth=bodyScrollElem?bodyScrollElem.clientWidth:0;const scrollHeight=bodyScrollElem?bodyScrollElem.scrollHeight:0;const scrollWidth=bodyScrollElem?bodyScrollElem.scrollWidth:0;const isTop=scrollTop<=0;const isBottom=scrollTop+clientHeight>=scrollHeight;const isLeft=scrollLeft<=0;const isRight=scrollLeft+clientWidth>=scrollWidth;return{virtualX:scrollXLoad,virtualY:scrollYLoad,isTop,isBottom,isLeft,isRight,scrollbarHeight,scrollbarWidth,scrollTop,scrollLeft,scrollHeight,scrollWidth,clientHeight,clientWidth};},handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,params){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;const{highlightHoverRow}=props;const{elemStore,lastScrollLeft,lastScrollTop}=internalData;const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);if(!bodyScrollElem){return;}const rowOpts=$xeTable.computeRowOpts;const validTip=$xeTable.$refs.refValidTooltip;const tooltip=$xeTable.$refs.refTooltip;const bodyHeight=bodyScrollElem.clientHeight;const bodyWidth=bodyScrollElem.clientWidth;const scrollHeight=bodyScrollElem.scrollHeight;const scrollWidth=bodyScrollElem.scrollWidth;let isTop=false;let isBottom=false;let isLeft=false;let isRight=false;let direction='';let isTopBoundary=false;let isBottomBoundary=false;let isLeftBoundary=false;let isRightBoundary=false;if(isRollX){const xThreshold=$xeTable.computeScrollXThreshold;isLeft=scrollLeft<=0;if(!isLeft){isRight=scrollLeft+bodyWidth>=scrollWidth-1;}if(scrollLeft>lastScrollLeft){direction='right';if(scrollLeft+bodyWidth>=scrollWidth-xThreshold){isRightBoundary=true;}}else{direction='left';if(scrollLeft<=xThreshold){isLeftBoundary=true;}}$xeTable.checkScrolling();internalData.lastScrollLeft=scrollLeft;}if(isRollY){const yThreshold=$xeTable.computeScrollYThreshold;isTop=scrollTop<=0;if(!isTop){isBottom=scrollTop+bodyHeight>=scrollHeight-1;}if(scrollTop>lastScrollTop){direction='bottom';if(scrollTop+bodyHeight>=scrollHeight-yThreshold){isBottomBoundary=true;}}else{direction='top';if(scrollTop<=yThreshold){isTopBoundary=true;}}internalData.lastScrollTop=scrollTop;}internalData.lastSTime=Date.now();const evntParams={source:sourceType,scrollTop,scrollLeft,bodyHeight,bodyWidth,scrollHeight,scrollWidth,isX:isRollX,isY:isRollY,isTop,isBottom,isLeft,isRight,direction,...params};$xeTable.updateThumbOffset();updateRowExpandStyle($xeTable);checkLastSyncScroll($xeTable,isRollX,isRollY);if(isRollX){$xeTable.closeFilter();}if(rowOpts.isHover||highlightHoverRow){$xeTable.clearHoverRow();}if(validTip&&validTip.reactData.visible){validTip.close();}if(tooltip&&tooltip.reactData.visible){tooltip.close();}if(isBottomBoundary||isTopBoundary||isRightBoundary||isLeftBoundary){$xeTable.dispatchEvent('scroll-boundary',evntParams,evnt);}$xeTable.dispatchEvent('scroll',evntParams,evnt);},/**
|
|
8869
8940
|
* 横向 X 可视渲染事件处理
|
|
8870
8941
|
*/triggerScrollXEvent(){const $xeTable=this;const virtualXOpts=$xeTable.computeVirtualXOpts;if(virtualXOpts.immediate){loadScrollXData($xeTable);}else{lazyScrollXData($xeTable);}},/**
|
|
8871
8942
|
* 纵向 Y 可视渲染事件处理
|
|
8872
|
-
*/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{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(!xHandleEl){return;}if(!yHandleEl){return;}if(inBodyScroll){if(scrollRenderType!==fixedType){return;}}let scrollTop=
|
|
8873
|
-
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
|
|
8874
|
-
if(
|
|
8875
|
-
if(
|
|
8943
|
+
*/triggerScrollYEvent(){const $xeTable=this;const virtualYOpts=$xeTable.computeVirtualYOpts;if(virtualYOpts.immediate){loadScrollYData($xeTable);}else{lazyScrollYData($xeTable);}},triggerBodyScrollEvent(evnt,fixedType){const $xeTable=this;const props=$xeTable;const reactData=$xeTable;const internalData=$xeTable;const{useScrollbar}=props;const{scrollYLoad,scrollXLoad}=reactData;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(!useScrollbar){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
|
+
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
|
+
if(scrollXVisible===false||scrollXVisible==='hidden'){evnt.preventDefault();return;}}if(isRollY){// 如果禁用滚动
|
|
8946
|
+
if(scrollYVisible===false||scrollYVisible==='hidden'){evnt.preventDefault();return;}const isTopWheel=deltaTop<0;// 如果滚动位置已经是顶部或底部,则不需要触发
|
|
8876
8947
|
if(isTopWheel?currScrollTop<=0:currScrollTop>=bodyScrollElem.scrollHeight-bodyScrollElem.clientHeight){return;}}// 展开行处理,如果展开行嵌入表格中
|
|
8877
8948
|
if($xeParentTable){if(isRollY){if(checkTargetElement(evnt.target,[leftScrollElem,bodyScrollElem,rightScrollElem],evnt.currentTarget)){evnt.stopPropagation();return;}}if(isRollX){if(checkTargetElement(evnt.target,[headerScrollElem,bodyScrollElem,footerScrollElem],evnt.currentTarget)){evnt.stopPropagation();return;}}}if(!(isRollX||leftFixedWidth||rightFixedWidth||expandColumn)){return;}if(rowOpts.isHover||highlightHoverRow){$xeTable.clearHoverRow();}// 用于鼠标纵向滚轮处理
|
|
8878
8949
|
if(isRollX){evnt.preventDefault();internalData.inWheelScroll=true;wheelScrollLeftTo(scrollLeft,offsetLeft=>{const currLeftNum=offsetLeft;setScrollLeft(xHandleEl,currLeftNum);setScrollLeft(bodyScrollElem,currLeftNum);setScrollLeft(headerScrollElem,currLeftNum);setScrollLeft(footerScrollElem,currLeftNum);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,bodyScrollElem.scrollTop,currLeftNum,{type:'table',fixed:''});});}if(isRollY){evnt.preventDefault();wheelScrollTopTo(scrollTop,offsetTop=>{const currTopNum=offsetTop;internalData.inWheelScroll=true;setScrollTop(yHandleEl,currTopNum);setScrollTop(bodyScrollElem,currTopNum);setScrollTop(leftScrollElem,currTopNum);setScrollTop(rightScrollElem,currTopNum);setScrollTop(rowExpandEl,currTopNum);syncGanttScrollTop($xeTable,currTopNum);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,currTopNum,bodyScrollElem.scrollLeft,{type:'table',fixed:''});});}},triggerVirtualScrollXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollXLoad}=reactData;const{elemStore,inWheelScroll,lastScrollTop,inHeaderScroll,inBodyScroll,inFooterScroll}=internalData;if(inHeaderScroll||inBodyScroll||inFooterScroll){return;}if(inWheelScroll){return;}const headerScrollElem=getRefElem(elemStore['main-header-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const footerScrollElem=getRefElem(elemStore['main-footer-scroll']);const yHandleEl=$xeTable.$refs.refScrollYHandleElem;const wrapperEl=evnt.currentTarget;const{scrollLeft}=wrapperEl;const yBodyEl=yHandleEl||bodyScrollElem;let scrollTop=0;if(yBodyEl){scrollTop=yBodyEl.scrollTop;}const isRollX=true;const isRollY=scrollTop!==lastScrollTop;internalData.inVirtualScroll=true;setScrollLeft(bodyScrollElem,scrollLeft);setScrollLeft(headerScrollElem,scrollLeft);setScrollLeft(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'table',fixed:''});},triggerVirtualScrollYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{scrollYLoad}=reactData;const{elemStore,inWheelScroll,lastScrollLeft,inHeaderScroll,inBodyScroll,inFooterScroll}=internalData;if(inHeaderScroll||inBodyScroll||inFooterScroll){return;}if(inWheelScroll){return;}const leftScrollElem=getRefElem(elemStore['left-body-scroll']);const bodyScrollElem=getRefElem(elemStore['main-body-scroll']);const rightScrollElem=getRefElem(elemStore['right-body-scroll']);const rowExpandEl=$xeTable.$refs.refRowExpandElem;const xHandleEl=$xeTable.$refs.refScrollXHandleElem;const wrapperEl=evnt.currentTarget;const{scrollTop}=wrapperEl;const xBodyEl=xHandleEl||bodyScrollElem;let scrollLeft=0;if(xBodyEl){scrollLeft=xBodyEl.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=true;internalData.inVirtualScroll=true;setScrollTop(bodyScrollElem,scrollTop);setScrollTop(leftScrollElem,scrollTop);setScrollTop(rightScrollElem,scrollTop);setScrollTop(rowExpandEl,scrollTop);syncGanttScrollTop($xeTable,scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'table',fixed:''});},updateScrollXData(){const $xeTable=this;const reactData=$xeTable;const{isAllOverflow}=reactData;handleTableColumn($xeTable);$xeTable.updateScrollXSpace();return $xeTable.$nextTick().then(()=>{handleTableColumn($xeTable);$xeTable.updateScrollXSpace();if(!isAllOverflow){$xeTable.updateScrollYSpace();}});},// 更新横向 X 可视渲染上下剩余空间大小
|
|
@@ -8934,7 +9005,13 @@ return $xeTable.removeMergeFooterCells(merges);},/**
|
|
|
8934
9005
|
return $xeTable.getMergeFooterCells();},/**
|
|
8935
9006
|
* 清除所有表尾合并
|
|
8936
9007
|
*/clearMergeFooterCells(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;internalData.mergeFooterList=[];internalData.mergeFooterMaps={};internalData.mergeFooterCellMaps={};internalData.mergeFooterRowMaps={};internalData.mergeFooterColMaps={};reactData.mergeFootFlag++;return $xeTable.$nextTick().then(()=>{return updateStyle($xeTable);});},clearMergeFooterItems(){const $xeTable=this;// errLog('vxe.error.delFunc', ['clearMergeFooterItems', 'clearMergeFooterCells'])
|
|
8937
|
-
return $xeTable.clearMergeFooterCells();},handleUpdateAggData(){const $xeTable=this;const internalData=$xeTable;return loadTableData($xeTable,internalData.tableSynchData,false,true);},handlePushStack(){const $xeTable=this;const internalData=$xeTable;const keyboardOpts=$xeTable.computeKeyboardOpts;if(!keyboardOpts.isUndoRedo){return;}const{stackHistoryStore}=internalData;const stackObj=getSnapshotStackData($xeTable);stackHistoryStore.undoStacks.push(stackObj);stackHistoryStore.redoStacks=[];truncateStackHistory($xeTable);},handleUndoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(undoStacks.length){const stackObj=getSnapshotStackData($xeTable);redoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,undoStacks.pop());if(evnt){$xeTable.dispatchEvent('undo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleRedoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(redoStacks.length){const stackObj=getSnapshotStackData($xeTable);undoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,redoStacks.pop());if(evnt){$xeTable.dispatchEvent('redo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleClearStack(){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;stackHistoryStore.undoStacks=[];stackHistoryStore.redoStacks=[];return $xeTable.$nextTick();},updateZindex(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;if(props.zIndex){internalData.tZindex=props.zIndex;}else if(internalData.tZindex<getLastZIndex()){internalData.tZindex=nextZIndex();}},updateCellAreas(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleRecalculateCellAreaEvent){return $xeTable.handleRecalculateCellAreaEvent();}return $xeTable.$nextTick();},undo(){const $xeTable=this;return $xeTable.handleUndoStackEvent(null);},redo(){const $xeTable=this;return $xeTable.handleRedoStackEvent(null);},clearHistory(){const $xeTable=this;return $xeTable.handleClearStack();}
|
|
9008
|
+
return $xeTable.clearMergeFooterCells();},handleUpdateAggData(){const $xeTable=this;const internalData=$xeTable;return loadTableData($xeTable,internalData.tableSynchData,false,true);},handlePushStack(){const $xeTable=this;const internalData=$xeTable;const keyboardOpts=$xeTable.computeKeyboardOpts;if(!keyboardOpts.isUndoRedo){return;}const{stackHistoryStore}=internalData;const stackObj=getSnapshotStackData($xeTable);stackHistoryStore.undoStacks.push(stackObj);stackHistoryStore.redoStacks=[];truncateStackHistory($xeTable);},handleUndoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(undoStacks.length){const stackObj=getSnapshotStackData($xeTable);redoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,undoStacks.pop());if(evnt){$xeTable.dispatchEvent('undo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleRedoStackEvent(evnt){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;const{undoStacks,redoStacks}=stackHistoryStore;if(redoStacks.length){const stackObj=getSnapshotStackData($xeTable);undoStacks.push(stackObj);handleUpdateSnapshotStackData($xeTable,redoStacks.pop());if(evnt){$xeTable.dispatchEvent('redo',{},evnt);}return $xeTable.$nextTick(()=>{return{status:true};});}return Promise.resolve({status:false});},handleClearStack(){const $xeTable=this;const internalData=$xeTable;const{stackHistoryStore}=internalData;stackHistoryStore.undoStacks=[];stackHistoryStore.redoStacks=[];return $xeTable.$nextTick();},updateZindex(){const $xeTable=this;const props=$xeTable;const internalData=$xeTable;if(props.zIndex){internalData.tZindex=props.zIndex;}else if(internalData.tZindex<getLastZIndex()){internalData.tZindex=nextZIndex();}},updateCellAreas(){const $xeTable=this;const props=$xeTable;const{mouseConfig}=props;const mouseOpts=$xeTable.computeMouseOpts;if(hasEnableConf(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleRecalculateCellAreaEvent){return $xeTable.handleRecalculateCellAreaEvent();}return $xeTable.$nextTick();},undo(){const $xeTable=this;return $xeTable.handleUndoStackEvent(null);},redo(){const $xeTable=this;return $xeTable.handleRedoStackEvent(null);},clearHistory(){const $xeTable=this;return $xeTable.handleClearStack();},// 滚动条
|
|
9009
|
+
updateThumbSize(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}if(!viewEl.clientHeight||!viewEl.clientHeight){return;}const trackXEl=$xeTable.$refs.refTrackXElem;const xThumbWidth=trackXEl?getThumbSize(viewEl.clientWidth,viewEl.scrollWidth,trackXEl.clientWidth):0;const thumbXElem=$xeTable.$refs.refThumbXElem;if(thumbXElem){thumbXElem.style.width=xThumbWidth+'px';}reactData.xThumbWidth=xThumbWidth;const trackYEl=$xeTable.$refs.refTrackYElem;const yThumbHeight=trackYEl?getThumbSize(viewEl.clientHeight,viewEl.scrollHeight,trackYEl.clientHeight):0;const thumbYElem=$xeTable.$refs.refThumbYElem;if(thumbYElem){thumbYElem.style.height=yThumbHeight+'px';}reactData.yThumbHeight=yThumbHeight;},updateThumbOffset(){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}if(!viewEl.clientHeight||!viewEl.clientHeight){return;}const{xThumbWidth,yThumbHeight}=reactData;const trackXEl=$xeTable.$refs.refTrackXElem;const thumbXElem=$xeTable.$refs.refThumbXElem;const xThumbLeft=trackXEl&&xThumbWidth?getThumbOffsetSize(viewEl.scrollLeft,viewEl.clientWidth,viewEl.scrollWidth,trackXEl.clientWidth,xThumbWidth):0;internalData.xThumbLeft=xThumbLeft;if(thumbXElem&&xThumbWidth){thumbXElem.style.width=xThumbWidth+'px';thumbXElem.style.transform=`translateX(${xThumbLeft}px)`;}const trackYEl=$xeTable.$refs.refTrackYElem;const thumbYElem=$xeTable.$refs.refThumbYElem;const yThumbTop=trackYEl&&yThumbHeight?getThumbOffsetSize(viewEl.scrollTop,viewEl.clientHeight,viewEl.scrollHeight,trackYEl.clientHeight,yThumbHeight):0;internalData.yThumbTop=yThumbTop;if(thumbYElem&&yThumbHeight){thumbYElem.style.height=yThumbHeight+'px';thumbYElem.style.transform=`translateY(${yThumbTop}px)`;}},clickTrackXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const trackEl=evnt.currentTarget;if(trackEl!==evnt.target){return;}const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const trackRect=trackEl.getBoundingClientRect();viewEl.scrollTo({left:getScrollFromClick(evnt.clientX-trackRect.left,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth),behavior:'auto'});},clickTrackYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const trackEl=evnt.currentTarget;if(trackEl!==evnt.target){return;}const{elemStore}=internalData;const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const trackRect=trackEl.getBoundingClientRect();viewEl.scrollTo({top:getScrollFromClick(evnt.clientY-trackRect.top,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight),behavior:'auto'});},pointerdownThumbXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const thumbEl=evnt.currentTarget;internalData.isThumbDrag=true;thumbEl.setPointerCapture(evnt.pointerId);const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();const pointerPosition=evnt.clientX-trackRect.left;// 记录 thumb 的偏移
|
|
9010
|
+
const thumbOffset=getThumbOffsetSize(viewEl.scrollLeft,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth);internalData.thumbDragOffset=pointerPosition-thumbOffset;},pointermoveThumbXEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const thumbEl=evnt.currentTarget;if(!thumbEl.hasPointerCapture(evnt.pointerId)){return;}const{elemStore,isThumbDrag,thumbDragOffset}=internalData;if(isThumbDrag){const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const thumbEl=evnt.currentTarget;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();// 更新偏移
|
|
9011
|
+
viewEl.scrollLeft=getScrollFromDrag(evnt.clientX-trackRect.left,thumbDragOffset,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth);}},cleatPointerThumbEvent(evnt){const $xeTable=this;const internalData=$xeTable;const thumbEl=evnt.currentTarget;thumbEl.releasePointerCapture(evnt.pointerId);internalData.isThumbDrag=false;},pointerdownThumbYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const{elemStore}=internalData;const thumbEl=evnt.currentTarget;internalData.isThumbDrag=true;thumbEl.setPointerCapture(evnt.pointerId);const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();const pointerPosition=evnt.clientY-trackRect.top;// 记录 thumb 的偏移
|
|
9012
|
+
const thumbOffset=getThumbOffsetSize(viewEl.scrollTop,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight);internalData.thumbDragOffset=pointerPosition-thumbOffset;},pointermoveThumbYEvent(evnt){const $xeTable=this;const reactData=$xeTable;const internalData=$xeTable;const thumbEl=evnt.currentTarget;if(!thumbEl.hasPointerCapture(evnt.pointerId)){return;}const{elemStore,isThumbDrag,thumbDragOffset}=internalData;if(isThumbDrag){const viewEl=getRefElem(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const thumbEl=evnt.currentTarget;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();// 更新偏移
|
|
9013
|
+
viewEl.scrollTop=getScrollFromDrag(evnt.clientY-trackRect.top,thumbDragOffset,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight);}},// 滚动条
|
|
9014
|
+
dispatchEvent(type,params,evnt){const $xeTable=this;const $xeGrid=$xeTable.$xeGrid;const $xeGantt=$xeTable.$xeGantt;$xeTable.$emit(type,createEvent(evnt,{$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt},params));},// 已废弃,使用 dispatchEvent
|
|
8938
9015
|
emitEvent(type,params,evnt){const $xeTable=this;$xeTable.dispatchEvent(type,params,evnt);},focus(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=true;return $xeTable.$nextTick();},blur(){const $xeTable=this;const internalData=$xeTable;internalData.isActivated=false;return $xeTable.$nextTick();},/**
|
|
8939
9016
|
* 已废弃,被 connectToolbar 替换
|
|
8940
9017
|
* @deprecated
|
|
@@ -21240,6 +21317,7 @@ const {
|
|
|
21240
21317
|
renderer: table_renderer,
|
|
21241
21318
|
globalResize: table_globalResize,
|
|
21242
21319
|
globalEvents: table_globalEvents,
|
|
21320
|
+
domUtils,
|
|
21243
21321
|
globalMixins: table_globalMixins,
|
|
21244
21322
|
renderEmptyElement: table_renderEmptyElement
|
|
21245
21323
|
} = core_.VxeUI;
|
|
@@ -21329,6 +21407,8 @@ function renderViewFixed(h, $xeTable, fixedType) {
|
|
|
21329
21407
|
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
21330
21408
|
const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
|
|
21331
21409
|
const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
|
|
21410
|
+
const scrollXVisible = $xeTable.computeScrollXVisible;
|
|
21411
|
+
const scrollYVisible = $xeTable.computeScrollYVisible;
|
|
21332
21412
|
const {
|
|
21333
21413
|
overscrollBehavior: overscrollXBehavior
|
|
21334
21414
|
} = scrollbarXOpts;
|
|
@@ -21341,7 +21421,7 @@ function renderViewFixed(h, $xeTable, fixedType) {
|
|
|
21341
21421
|
const osYBehavior = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
|
|
21342
21422
|
return h('div', {
|
|
21343
21423
|
ref: isFixedLeft ? 'refLeftContainer' : 'refRightContainer',
|
|
21344
|
-
class: [`vxe-table--fixed-${fixedType}-wrapper`, `sx--${
|
|
21424
|
+
class: [`vxe-table--fixed-${fixedType}-wrapper`, `sx--${scrollXVisible === false || scrollXVisible === 'hidden' ? 'hidden' : 'visible'}`, `sy--${scrollYVisible === false || scrollYVisible === 'hidden' ? 'hidden' : 'visible'}`, {
|
|
21345
21425
|
[`x-ob--${osXBehavior}`]: osXBehavior,
|
|
21346
21426
|
[`y-ob--${osYBehavior}`]: osYBehavior
|
|
21347
21427
|
}]
|
|
@@ -21633,6 +21713,7 @@ function renderScrollX(h, $xeTable) {
|
|
|
21633
21713
|
}
|
|
21634
21714
|
function renderScrollY(h, $xeTable) {
|
|
21635
21715
|
return h('div', {
|
|
21716
|
+
key: 'vsy',
|
|
21636
21717
|
ref: 'refScrollYVirtualElem',
|
|
21637
21718
|
class: 'vxe-table--scroll-y-virtual'
|
|
21638
21719
|
}, [h('div', {
|
|
@@ -21673,6 +21754,8 @@ function renderViewport(h, $xeTable) {
|
|
|
21673
21754
|
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
21674
21755
|
const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
|
|
21675
21756
|
const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
|
|
21757
|
+
const scrollXVisible = $xeTable.computeScrollXVisible;
|
|
21758
|
+
const scrollYVisible = $xeTable.computeScrollYVisible;
|
|
21676
21759
|
const {
|
|
21677
21760
|
overscrollBehavior: overscrollXBehavior
|
|
21678
21761
|
} = scrollbarXOpts;
|
|
@@ -21686,13 +21769,14 @@ function renderViewport(h, $xeTable) {
|
|
|
21686
21769
|
const osXBehavior = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(overscrollXBehavior) ? scrollbarOpts.overscrollBehavior : overscrollXBehavior;
|
|
21687
21770
|
const osYBehavior = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
|
|
21688
21771
|
return h('div', {
|
|
21772
|
+
key: 'tvw',
|
|
21689
21773
|
ref: 'refTableViewportElem',
|
|
21690
21774
|
class: ['vxe-table--viewport-wrapper', {
|
|
21691
21775
|
[`x-ob--${osXBehavior}`]: osXBehavior,
|
|
21692
21776
|
[`y-ob--${osYBehavior}`]: osYBehavior
|
|
21693
21777
|
}]
|
|
21694
21778
|
}, [h('div', {
|
|
21695
|
-
class: ['vxe-table--main-wrapper', `sx--${
|
|
21779
|
+
class: ['vxe-table--main-wrapper', `sx--${scrollXVisible === false || scrollXVisible === 'hidden' ? 'hidden' : 'visible'}`, `sy--${scrollYVisible === false || scrollYVisible === 'hidden' ? 'hidden' : 'visible'}`]
|
|
21696
21780
|
}, [
|
|
21697
21781
|
/**
|
|
21698
21782
|
* 表头
|
|
@@ -21728,12 +21812,82 @@ function renderViewport(h, $xeTable) {
|
|
|
21728
21812
|
class: 'vxe-table--fixed-wrapper'
|
|
21729
21813
|
}, [leftList && leftList.length && overflowX ? renderViewFixed(h, $xeTable, 'left') : table_renderEmptyElement($xeTable), rightList && rightList.length && overflowX ? renderViewFixed(h, $xeTable, 'right') : table_renderEmptyElement($xeTable)]), renderRowExpandedVNs(h, $xeTable)]);
|
|
21730
21814
|
}
|
|
21731
|
-
function
|
|
21815
|
+
function renderNativeBody(h, $xeTable) {
|
|
21732
21816
|
const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
|
|
21733
21817
|
return h('div', {
|
|
21818
|
+
key: 'lnb',
|
|
21734
21819
|
class: 'vxe-table--layout-wrapper'
|
|
21735
21820
|
}, scrollbarYToLeft ? [renderScrollY(h, $xeTable), renderViewport(h, $xeTable)] : [renderViewport(h, $xeTable), renderScrollY(h, $xeTable)]);
|
|
21736
21821
|
}
|
|
21822
|
+
function renderVirtualBody(h, $xeTable) {
|
|
21823
|
+
const props = $xeTable;
|
|
21824
|
+
const reactData = $xeTable;
|
|
21825
|
+
const internalData = $xeTable;
|
|
21826
|
+
const $xeGantt = $xeTable.$xeGantt;
|
|
21827
|
+
const $xeGanttView = internalData.xeGanttView;
|
|
21828
|
+
const {
|
|
21829
|
+
useScrollbar
|
|
21830
|
+
} = props;
|
|
21831
|
+
const {
|
|
21832
|
+
xThumbWidth,
|
|
21833
|
+
yThumbHeight
|
|
21834
|
+
} = reactData;
|
|
21835
|
+
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
21836
|
+
const scrollXAutoHide = $xeTable.computeScrollXAutoHide;
|
|
21837
|
+
const scrollYAutoHide = $xeTable.computeScrollYAutoHide;
|
|
21838
|
+
const scrollXVisible = $xeTable.computeScrollXVisible;
|
|
21839
|
+
const scrollYVisible = $xeTable.computeScrollYVisible;
|
|
21840
|
+
const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
|
|
21841
|
+
const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
|
|
21842
|
+
const scrollbarWrapperClss = $xeTable.computeScrollbarWrapperClss;
|
|
21843
|
+
const hideXScroll = scrollXVisible === false || scrollXVisible === 'hidden';
|
|
21844
|
+
const hideYScroll = scrollYVisible === false || scrollYVisible === 'hidden';
|
|
21845
|
+
return h('div', {
|
|
21846
|
+
key: 'lvb',
|
|
21847
|
+
class: ['vxe-table--layout-wrapper', `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
|
|
21848
|
+
'is--virtual-scrollbar': useScrollbar,
|
|
21849
|
+
'ov-padding': useScrollbar && scrollbarOpts.padding,
|
|
21850
|
+
'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
|
|
21851
|
+
'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
|
|
21852
|
+
'overflow-y': yThumbHeight,
|
|
21853
|
+
'overflow-x': xThumbWidth
|
|
21854
|
+
}]
|
|
21855
|
+
}, [renderViewport(h, $xeTable), h('div', {
|
|
21856
|
+
class: scrollbarWrapperClss
|
|
21857
|
+
}, [hideXScroll ? table_renderEmptyElement($xeTable) : h('div', {
|
|
21858
|
+
ref: 'refTrackXElem',
|
|
21859
|
+
class: 'vxe-scrollbar--track-x',
|
|
21860
|
+
on: {
|
|
21861
|
+
click: $xeTable.clickTrackXEvent
|
|
21862
|
+
}
|
|
21863
|
+
}, [h('div', {
|
|
21864
|
+
ref: 'refThumbXElem',
|
|
21865
|
+
class: 'vxe-scrollbar--thumb-x',
|
|
21866
|
+
on: {
|
|
21867
|
+
pointerdown: $xeTable.pointerdownThumbXEvent,
|
|
21868
|
+
pointermove: $xeTable.pointermoveThumbXEvent,
|
|
21869
|
+
pointerup: $xeTable.cleatPointerThumbEvent,
|
|
21870
|
+
pointercancel: $xeTable.cleatPointerThumbEvent,
|
|
21871
|
+
lostpointercapture: $xeTable.cleatPointerThumbEvent
|
|
21872
|
+
}
|
|
21873
|
+
})]), hideYScroll || $xeGantt && $xeGanttView && $xeGantt.reactData.showRightView && !scrollbarYToLeft ? table_renderEmptyElement($xeTable) : h('div', {
|
|
21874
|
+
ref: 'refTrackYElem',
|
|
21875
|
+
class: 'vxe-scrollbar--track-y',
|
|
21876
|
+
on: {
|
|
21877
|
+
click: $xeTable.clickTrackYEvent
|
|
21878
|
+
}
|
|
21879
|
+
}, [h('div', {
|
|
21880
|
+
ref: 'refThumbYElem',
|
|
21881
|
+
class: 'vxe-scrollbar--thumb-y',
|
|
21882
|
+
on: {
|
|
21883
|
+
pointerdown: $xeTable.pointerdownThumbYEvent,
|
|
21884
|
+
pointermove: $xeTable.pointermoveThumbYEvent,
|
|
21885
|
+
pointerup: $xeTable.cleatPointerThumbEvent,
|
|
21886
|
+
pointercancel: $xeTable.cleatPointerThumbEvent,
|
|
21887
|
+
lostpointercapture: $xeTable.cleatPointerThumbEvent
|
|
21888
|
+
}
|
|
21889
|
+
})])])]);
|
|
21890
|
+
}
|
|
21737
21891
|
/* harmony default export */ var table = ({
|
|
21738
21892
|
name: 'VxeTable',
|
|
21739
21893
|
mixins: [table_globalMixins.sizeMixin, mixin, menu_mixin, edit_mixin, export_mixin, keyboard_mixin, validator_mixin, custom_mixin],
|
|
@@ -21776,7 +21930,8 @@ function renderBody(h, $xeTable) {
|
|
|
21776
21930
|
kfFlag: 0,
|
|
21777
21931
|
layoutReFlag: 0,
|
|
21778
21932
|
mergeFooteCellFlag: 0,
|
|
21779
|
-
crossTableDragRowInfo: crossTableDragRowGlobal
|
|
21933
|
+
crossTableDragRowInfo: crossTableDragRowGlobal,
|
|
21934
|
+
scrollDefaultConf: Object.assign({}, table_getConfig().scrollbar)
|
|
21780
21935
|
};
|
|
21781
21936
|
},
|
|
21782
21937
|
computed: {
|
|
@@ -21897,15 +22052,53 @@ function renderBody(h, $xeTable) {
|
|
|
21897
22052
|
},
|
|
21898
22053
|
computeScrollbarXOpts() {
|
|
21899
22054
|
const $xeTable = this;
|
|
21900
|
-
const props = $xeTable;
|
|
21901
22055
|
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
21902
|
-
return Object.assign({}, scrollbarOpts.x,
|
|
22056
|
+
return scrollbarOpts.x ? Object.assign({}, scrollbarOpts.x, scrollbarOpts.xConfig) : scrollbarOpts.xConfig || {};
|
|
21903
22057
|
},
|
|
21904
22058
|
computeScrollbarYOpts() {
|
|
21905
22059
|
const $xeTable = this;
|
|
21906
|
-
const props = $xeTable;
|
|
21907
22060
|
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
21908
|
-
return Object.assign({}, scrollbarOpts.y,
|
|
22061
|
+
return scrollbarOpts.y ? Object.assign({}, scrollbarOpts.y, scrollbarOpts.yConfig) : scrollbarOpts.yConfig || {};
|
|
22062
|
+
},
|
|
22063
|
+
computeScrollXHeight() {
|
|
22064
|
+
const $xeTable = this;
|
|
22065
|
+
const scrollDefaultConf = $xeTable.scrollDefaultConf;
|
|
22066
|
+
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
22067
|
+
const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
|
|
22068
|
+
return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), scrollDefaultConf.height));
|
|
22069
|
+
},
|
|
22070
|
+
computeScrollYWidth() {
|
|
22071
|
+
const $xeTable = this;
|
|
22072
|
+
const scrollDefaultConf = $xeTable.scrollDefaultConf;
|
|
22073
|
+
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
22074
|
+
const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
|
|
22075
|
+
return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), scrollDefaultConf.width));
|
|
22076
|
+
},
|
|
22077
|
+
computeScrollXVisible() {
|
|
22078
|
+
const $xeTable = this;
|
|
22079
|
+
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
22080
|
+
const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
|
|
22081
|
+
return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
|
|
22082
|
+
},
|
|
22083
|
+
computeScrollYVisible() {
|
|
22084
|
+
const $xeTable = this;
|
|
22085
|
+
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
22086
|
+
const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
|
|
22087
|
+
return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
|
|
22088
|
+
},
|
|
22089
|
+
computeScrollXAutoHide() {
|
|
22090
|
+
const $xeTable = this;
|
|
22091
|
+
const scrollDefaultConf = $xeTable.scrollDefaultConf;
|
|
22092
|
+
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
22093
|
+
const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
|
|
22094
|
+
return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), scrollDefaultConf.autoHide);
|
|
22095
|
+
},
|
|
22096
|
+
computeScrollYAutoHide() {
|
|
22097
|
+
const $xeTable = this;
|
|
22098
|
+
const scrollDefaultConf = $xeTable.scrollDefaultConf;
|
|
22099
|
+
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
22100
|
+
const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
|
|
22101
|
+
return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), scrollDefaultConf.autoHide);
|
|
21909
22102
|
},
|
|
21910
22103
|
computeScrollbarXToTop() {
|
|
21911
22104
|
const $xeTable = this;
|
|
@@ -21917,6 +22110,22 @@ function renderBody(h, $xeTable) {
|
|
|
21917
22110
|
const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
|
|
21918
22111
|
return scrollbarYOpts.position === 'left';
|
|
21919
22112
|
},
|
|
22113
|
+
computeScrollbarWrapperClss() {
|
|
22114
|
+
const $xeTable = this;
|
|
22115
|
+
const reactData = $xeTable;
|
|
22116
|
+
const {
|
|
22117
|
+
yThumbHeight,
|
|
22118
|
+
xThumbWidth
|
|
22119
|
+
} = reactData;
|
|
22120
|
+
const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
|
|
22121
|
+
const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
|
|
22122
|
+
const scrollXVisible = $xeTable.computeScrollXVisible;
|
|
22123
|
+
const scrollYVisible = $xeTable.computeScrollYVisible;
|
|
22124
|
+
return domUtils.buildClass(['vxe-scrollbar is--virtual', `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`, `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`], {
|
|
22125
|
+
'overflow-y': yThumbHeight,
|
|
22126
|
+
'overflow-x': xThumbWidth
|
|
22127
|
+
});
|
|
22128
|
+
},
|
|
21920
22129
|
computeScrollYThreshold() {
|
|
21921
22130
|
const $xeTable = this;
|
|
21922
22131
|
const virtualYOpts = $xeTable.computeVirtualYOpts;
|
|
@@ -21964,6 +22173,11 @@ function renderBody(h, $xeTable) {
|
|
|
21964
22173
|
}
|
|
21965
22174
|
return cellOpts;
|
|
21966
22175
|
},
|
|
22176
|
+
computeCellHeitht() {
|
|
22177
|
+
const $xeTable = this;
|
|
22178
|
+
const cellOpts = $xeTable.computeCellOpts;
|
|
22179
|
+
return cellOpts.height;
|
|
22180
|
+
},
|
|
21967
22181
|
computeHeaderCellOpts() {
|
|
21968
22182
|
const $xeTable = this;
|
|
21969
22183
|
const $xeGantt = $xeTable.$xeGantt;
|
|
@@ -22486,19 +22700,16 @@ function renderBody(h, $xeTable) {
|
|
|
22486
22700
|
},
|
|
22487
22701
|
computeTableStyle() {
|
|
22488
22702
|
const $xeTable = this;
|
|
22489
|
-
const
|
|
22490
|
-
const
|
|
22491
|
-
|
|
22492
|
-
|
|
22493
|
-
|
|
22494
|
-
|
|
22495
|
-
|
|
22496
|
-
|
|
22497
|
-
}
|
|
22498
|
-
if (height) {
|
|
22499
|
-
tStys['--vxe-ui-table-view-scrollbar-height'] = toCssUnit(height);
|
|
22703
|
+
const barWidth = $xeTable.computeScrollYWidth;
|
|
22704
|
+
const barHeight = $xeTable.computeScrollXHeight;
|
|
22705
|
+
const stys = {};
|
|
22706
|
+
if (barWidth || barHeight) {
|
|
22707
|
+
stys['--vxe-ui-table-view-scrollbar-width'] = toCssUnit(barWidth || barHeight);
|
|
22708
|
+
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
|
|
22709
|
+
stys['--vxe-ui-table-view-scrollbar-height'] = toCssUnit(barHeight || barWidth);
|
|
22710
|
+
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
|
|
22500
22711
|
}
|
|
22501
|
-
return
|
|
22712
|
+
return stys;
|
|
22502
22713
|
},
|
|
22503
22714
|
computeTableRowExpandedList() {
|
|
22504
22715
|
const $xeTable = this;
|
|
@@ -22756,17 +22967,6 @@ function renderBody(h, $xeTable) {
|
|
|
22756
22967
|
},
|
|
22757
22968
|
computeVxeLanguage() {
|
|
22758
22969
|
return core_.VxeUI.getLanguage();
|
|
22759
|
-
},
|
|
22760
|
-
computeScrollbarVisible() {
|
|
22761
|
-
const $xeTable = this;
|
|
22762
|
-
const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
|
|
22763
|
-
const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
|
|
22764
|
-
return `${scrollbarXOpts.visible}${scrollbarYOpts.visible}`;
|
|
22765
|
-
},
|
|
22766
|
-
computeCellConfHeitht() {
|
|
22767
|
-
const $xeTable = this;
|
|
22768
|
-
const cellOpts = $xeTable.computeCellOpts;
|
|
22769
|
-
return cellOpts.height;
|
|
22770
22970
|
}
|
|
22771
22971
|
},
|
|
22772
22972
|
watch: {
|
|
@@ -22814,55 +23014,98 @@ function renderBody(h, $xeTable) {
|
|
|
22814
23014
|
this.$nextTick().then(() => this.refreshColumn());
|
|
22815
23015
|
},
|
|
22816
23016
|
computeSize() {
|
|
22817
|
-
this
|
|
23017
|
+
const $xeTable = this;
|
|
23018
|
+
$xeTable.reLayoutFlag++;
|
|
22818
23019
|
},
|
|
22819
23020
|
showHeader() {
|
|
22820
|
-
this
|
|
23021
|
+
const $xeTable = this;
|
|
23022
|
+
$xeTable.reLayoutFlag++;
|
|
22821
23023
|
},
|
|
22822
23024
|
showFooter() {
|
|
22823
|
-
this
|
|
23025
|
+
const $xeTable = this;
|
|
23026
|
+
$xeTable.reLayoutFlag++;
|
|
22824
23027
|
},
|
|
22825
23028
|
showHeaderOverflow() {
|
|
22826
|
-
this
|
|
23029
|
+
const $xeTable = this;
|
|
23030
|
+
$xeTable.reLayoutFlag++;
|
|
22827
23031
|
},
|
|
22828
23032
|
showOverflow() {
|
|
22829
23033
|
const $xeTable = this;
|
|
22830
23034
|
updateColumnAllOverflow($xeTable);
|
|
22831
|
-
|
|
23035
|
+
$xeTable.reLayoutFlag++;
|
|
22832
23036
|
},
|
|
22833
23037
|
showFooterOverflow() {
|
|
22834
|
-
this
|
|
23038
|
+
const $xeTable = this;
|
|
23039
|
+
$xeTable.reLayoutFlag++;
|
|
22835
23040
|
},
|
|
22836
23041
|
overflowX() {
|
|
22837
|
-
this
|
|
23042
|
+
const $xeTable = this;
|
|
23043
|
+
$xeTable.reLayoutFlag++;
|
|
22838
23044
|
},
|
|
22839
23045
|
overflowY() {
|
|
22840
|
-
this
|
|
23046
|
+
const $xeTable = this;
|
|
23047
|
+
$xeTable.reLayoutFlag++;
|
|
22841
23048
|
},
|
|
22842
23049
|
height() {
|
|
22843
|
-
this
|
|
23050
|
+
const $xeTable = this;
|
|
23051
|
+
$xeTable.reLayoutFlag++;
|
|
22844
23052
|
},
|
|
22845
23053
|
maxHeight() {
|
|
22846
|
-
this
|
|
23054
|
+
const $xeTable = this;
|
|
23055
|
+
$xeTable.reLayoutFlag++;
|
|
23056
|
+
},
|
|
23057
|
+
computeVxeLanguage() {
|
|
23058
|
+
const $xeTable = this;
|
|
23059
|
+
$xeTable.reLayoutFlag++;
|
|
22847
23060
|
},
|
|
22848
23061
|
computeScrollbarXToTop() {
|
|
22849
|
-
this
|
|
23062
|
+
const $xeTable = this;
|
|
23063
|
+
$xeTable.reScrollFlag++;
|
|
23064
|
+
$xeTable.reLayoutFlag++;
|
|
22850
23065
|
},
|
|
22851
23066
|
computeScrollbarYToLeft() {
|
|
22852
|
-
this
|
|
23067
|
+
const $xeTable = this;
|
|
23068
|
+
$xeTable.reScrollFlag++;
|
|
23069
|
+
$xeTable.reLayoutFlag++;
|
|
22853
23070
|
},
|
|
22854
|
-
|
|
22855
|
-
this
|
|
23071
|
+
computeScrollXVisible() {
|
|
23072
|
+
const $xeTable = this;
|
|
23073
|
+
$xeTable.reScrollFlag++;
|
|
23074
|
+
$xeTable.reLayoutFlag++;
|
|
22856
23075
|
},
|
|
22857
|
-
|
|
22858
|
-
this
|
|
23076
|
+
computeScrollYVisible() {
|
|
23077
|
+
const $xeTable = this;
|
|
23078
|
+
$xeTable.reScrollFlag++;
|
|
23079
|
+
$xeTable.reLayoutFlag++;
|
|
22859
23080
|
},
|
|
22860
|
-
|
|
22861
|
-
this
|
|
23081
|
+
computeScrollXHeight() {
|
|
23082
|
+
const $xeTable = this;
|
|
23083
|
+
$xeTable.reScrollFlag++;
|
|
23084
|
+
$xeTable.reLayoutFlag++;
|
|
23085
|
+
},
|
|
23086
|
+
computeScrollYWidth() {
|
|
23087
|
+
const $xeTable = this;
|
|
23088
|
+
$xeTable.reScrollFlag++;
|
|
23089
|
+
$xeTable.reLayoutFlag++;
|
|
23090
|
+
},
|
|
23091
|
+
computeCellHeitht() {
|
|
23092
|
+
const $xeTable = this;
|
|
23093
|
+
$xeTable.reLayoutFlag++;
|
|
22862
23094
|
},
|
|
22863
23095
|
reLayoutFlag() {
|
|
22864
23096
|
const $xeTable = this;
|
|
22865
|
-
$xeTable.$nextTick(() =>
|
|
23097
|
+
$xeTable.$nextTick(() => {
|
|
23098
|
+
$xeTable.recalculate(true);
|
|
23099
|
+
});
|
|
23100
|
+
},
|
|
23101
|
+
reScrollFlag() {
|
|
23102
|
+
const $xeTable = this;
|
|
23103
|
+
$xeTable.$nextTick(() => {
|
|
23104
|
+
$xeTable.updateScrollbar();
|
|
23105
|
+
$xeTable.$nextTick(() => {
|
|
23106
|
+
$xeTable.updateScrollbar();
|
|
23107
|
+
});
|
|
23108
|
+
});
|
|
22866
23109
|
},
|
|
22867
23110
|
footerData() {
|
|
22868
23111
|
this.footFlag++;
|
|
@@ -23000,6 +23243,7 @@ function renderBody(h, $xeTable) {
|
|
|
23000
23243
|
const areaOpts = $xeTable.computeAreaOpts;
|
|
23001
23244
|
const sortOpts = $xeTable.computeSortOpts;
|
|
23002
23245
|
const filterOpts = $xeTable.computeFilterOpts;
|
|
23246
|
+
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
23003
23247
|
const {
|
|
23004
23248
|
groupFields
|
|
23005
23249
|
} = aggregateOpts;
|
|
@@ -23250,6 +23494,12 @@ function renderBody(h, $xeTable) {
|
|
|
23250
23494
|
// if ((hasEnableConf(printConfig, printOpts) || hasEnableConf(importConfig, importOpts) || hasEnableConf(exportConfig, exportOpts)) && !$xeTable.exportData) {
|
|
23251
23495
|
// errLog('vxe.error.reqModule', ['Export'])
|
|
23252
23496
|
// }
|
|
23497
|
+
if (scrollbarOpts.x) {
|
|
23498
|
+
table_warnLog('vxe.error.delProp', ['scrollbar-config.x', 'scrollbar-config.xConfig']);
|
|
23499
|
+
}
|
|
23500
|
+
if (scrollbarOpts.y) {
|
|
23501
|
+
table_warnLog('vxe.error.delProp', ['scrollbar-config.y', 'scrollbar-config.yConfig']);
|
|
23502
|
+
}
|
|
23253
23503
|
Object.assign(scrollYStore, {
|
|
23254
23504
|
startIndex: 0,
|
|
23255
23505
|
endIndex: 1,
|
|
@@ -23318,6 +23568,13 @@ function renderBody(h, $xeTable) {
|
|
|
23318
23568
|
table_warnLog('vxe.error.reqProp', ['tooltip-config']);
|
|
23319
23569
|
}
|
|
23320
23570
|
$xeTable.$nextTick(() => {
|
|
23571
|
+
const {
|
|
23572
|
+
useScrollbar,
|
|
23573
|
+
autoResize
|
|
23574
|
+
} = props;
|
|
23575
|
+
const {
|
|
23576
|
+
elemStore
|
|
23577
|
+
} = internalData;
|
|
23321
23578
|
// 使用已安装的组件,如果未安装则不渲染
|
|
23322
23579
|
const VxeUILoadingComponent = core_.VxeUI.getComponent('VxeLoading');
|
|
23323
23580
|
const VxeUITooltipComponent = core_.VxeUI.getComponent('VxeTooltip');
|
|
@@ -23365,15 +23622,34 @@ function renderBody(h, $xeTable) {
|
|
|
23365
23622
|
table_errLog('vxe.error.reqComp', ['vxe-tooltip']);
|
|
23366
23623
|
}
|
|
23367
23624
|
}
|
|
23368
|
-
|
|
23625
|
+
const el = $xeTable.$refs.refElem;
|
|
23626
|
+
if (useScrollbar) {
|
|
23627
|
+
const viewInnerEl = getRefElem(elemStore['main-body-table']);
|
|
23628
|
+
const scrollObserver = table_globalResize.create(() => {
|
|
23629
|
+
$xeTable.reScrollFlag++;
|
|
23630
|
+
});
|
|
23631
|
+
if (el) {
|
|
23632
|
+
scrollObserver.observe(el);
|
|
23633
|
+
}
|
|
23634
|
+
if (viewInnerEl) {
|
|
23635
|
+
scrollObserver.observe(viewInnerEl);
|
|
23636
|
+
}
|
|
23637
|
+
internalData.scrollObserver = scrollObserver;
|
|
23638
|
+
}
|
|
23639
|
+
if (autoResize) {
|
|
23640
|
+
const parentEl = $xeTable.getParentElem();
|
|
23369
23641
|
const resizeObserver = table_globalResize.create(() => {
|
|
23370
|
-
if (
|
|
23371
|
-
|
|
23642
|
+
if (props.autoResize) {
|
|
23643
|
+
$xeTable.handleResizeEvent();
|
|
23372
23644
|
}
|
|
23373
23645
|
});
|
|
23374
|
-
|
|
23375
|
-
|
|
23376
|
-
|
|
23646
|
+
if (el) {
|
|
23647
|
+
resizeObserver.observe(el);
|
|
23648
|
+
}
|
|
23649
|
+
if (parentEl) {
|
|
23650
|
+
resizeObserver.observe(parentEl);
|
|
23651
|
+
}
|
|
23652
|
+
internalData.resizeObserver = resizeObserver;
|
|
23377
23653
|
}
|
|
23378
23654
|
});
|
|
23379
23655
|
if (virtualYOpts.mode !== 'scroll') {
|
|
@@ -23409,6 +23685,8 @@ function renderBody(h, $xeTable) {
|
|
|
23409
23685
|
const reactData = $xeTable;
|
|
23410
23686
|
const internalData = $xeTable;
|
|
23411
23687
|
const {
|
|
23688
|
+
scrollObserver,
|
|
23689
|
+
resizeObserver,
|
|
23412
23690
|
_sToTime
|
|
23413
23691
|
} = internalData;
|
|
23414
23692
|
if (_sToTime) {
|
|
@@ -23430,8 +23708,11 @@ function renderBody(h, $xeTable) {
|
|
|
23430
23708
|
if (tableViewportEl) {
|
|
23431
23709
|
tableViewportEl.removeEventListener('wheel', $xeTable.triggerBodyWheelEvent);
|
|
23432
23710
|
}
|
|
23433
|
-
if (
|
|
23434
|
-
|
|
23711
|
+
if (scrollObserver) {
|
|
23712
|
+
scrollObserver.disconnect();
|
|
23713
|
+
}
|
|
23714
|
+
if (resizeObserver) {
|
|
23715
|
+
resizeObserver.disconnect();
|
|
23435
23716
|
}
|
|
23436
23717
|
$xeTable.closeTooltip();
|
|
23437
23718
|
$xeTable.closeFilter();
|
|
@@ -23470,6 +23751,7 @@ function renderBody(h, $xeTable) {
|
|
|
23470
23751
|
const {
|
|
23471
23752
|
loading,
|
|
23472
23753
|
stripe,
|
|
23754
|
+
useScrollbar,
|
|
23473
23755
|
showHeader,
|
|
23474
23756
|
height,
|
|
23475
23757
|
treeConfig,
|
|
@@ -23545,7 +23827,7 @@ function renderBody(h, $xeTable) {
|
|
|
23545
23827
|
}
|
|
23546
23828
|
return h('div', {
|
|
23547
23829
|
ref: 'refElem',
|
|
23548
|
-
class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
|
|
23830
|
+
class: ['vxe-table', 'vxe-table--render-default', `tid_${xID}`, `border--${tableBorder}`, useScrollbar ? 'is--virtual-scrollbar' : 'is--native-scrollbar', `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`, {
|
|
23549
23831
|
[`size--${vSize}`]: vSize,
|
|
23550
23832
|
[`valid-msg--${validOpts.msgMode}`]: !!editRules,
|
|
23551
23833
|
'vxe-editable': !!editConfig,
|
|
@@ -23606,7 +23888,7 @@ function renderBody(h, $xeTable) {
|
|
|
23606
23888
|
})]), h('div', {
|
|
23607
23889
|
key: 'tw',
|
|
23608
23890
|
class: 'vxe-table--render-wrapper'
|
|
23609
|
-
}, scrollbarXToTop ? [renderScrollX(h, $xeTable),
|
|
23891
|
+
}, useScrollbar ? [renderVirtualBody(h, $xeTable)] : scrollbarXToTop ? [renderScrollX(h, $xeTable), renderNativeBody(h, $xeTable)] : [renderNativeBody(h, $xeTable), renderScrollX(h, $xeTable)]),
|
|
23610
23892
|
/**
|
|
23611
23893
|
* 空数据
|
|
23612
23894
|
*/
|