vxe-table 3.25.0-beta.1 → 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/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/src/methods.js +246 -44
- package/es/table/src/props.js +2 -1
- package/es/table/src/scrollbar.js +54 -0
- package/es/table/src/table.js +266 -64
- 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 +1 -1
- 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 +337 -66
- package/lib/index.umd.min.js +1 -1
- 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 +2 -1
- 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 +249 -52
- 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 +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +30 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/src/methods.ts +258 -44
- package/packages/table/src/props.ts +2 -1
- package/packages/table/src/scrollbar.ts +57 -0
- package/packages/table/src/table.ts +300 -69
- package/packages/table/src/util.ts +15 -2
- package/styles/components/table.scss +65 -0
- /package/es/{iconfont.1791954189007.ttf → iconfont.1792035018941.ttf} +0 -0
- /package/es/{iconfont.1791954189007.woff → iconfont.1792035018941.woff} +0 -0
- /package/es/{iconfont.1791954189007.woff2 → iconfont.1792035018941.woff2} +0 -0
- /package/lib/{iconfont.1791954189007.ttf → iconfont.1792035018941.ttf} +0 -0
- /package/lib/{iconfont.1791954189007.woff → iconfont.1792035018941.woff} +0 -0
- /package/lib/{iconfont.1791954189007.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({
|
|
@@ -4283,7 +4283,7 @@ function getPopupAppendElement(appendTo) {
|
|
|
4283
4283
|
const {
|
|
4284
4284
|
log: log_log
|
|
4285
4285
|
} = core_.VxeUI;
|
|
4286
|
-
const tableVersion = `table v${"3.25.0-beta.
|
|
4286
|
+
const tableVersion = `table v${"3.25.0-beta.2"}`;
|
|
4287
4287
|
function createComponentLog(name) {
|
|
4288
4288
|
const uiVersion = core_.VxeUI.uiVersion ? `ui v${core_.VxeUI.uiVersion}` : '';
|
|
4289
4289
|
const ganttVersion = core_.VxeUI.ganttVersion ? `gantt v${core_.VxeUI.ganttVersion}` : '';
|
|
@@ -4610,9 +4610,15 @@ function createInternalData() {
|
|
|
4610
4610
|
// 当前行
|
|
4611
4611
|
currentRow: null,
|
|
4612
4612
|
currentCol: null,
|
|
4613
|
-
//
|
|
4614
|
-
|
|
4613
|
+
// resizeObserver: undefined,
|
|
4614
|
+
// 滚动条
|
|
4615
|
+
// scrollObserver: undefined,
|
|
4616
|
+
// isThumbDrag: false,
|
|
4617
|
+
thumbDragOffset: 0,
|
|
4618
|
+
yThumbTop: 0,
|
|
4619
|
+
xThumbLeft: 0,
|
|
4615
4620
|
lastScrollTop: 0,
|
|
4621
|
+
lastScrollLeft: 0,
|
|
4616
4622
|
// 单选框属性,已选中保留的行
|
|
4617
4623
|
radioReserveRow: null,
|
|
4618
4624
|
// 复选框属性,已选中保留的行集合
|
|
@@ -4744,6 +4750,9 @@ function createReactData() {
|
|
|
4744
4750
|
scrollbarWidth: 0,
|
|
4745
4751
|
// 横向滚动条的高度
|
|
4746
4752
|
scrollbarHeight: 0,
|
|
4753
|
+
// 滚动条
|
|
4754
|
+
yThumbHeight: 0,
|
|
4755
|
+
xThumbWidth: 0,
|
|
4747
4756
|
// 行高
|
|
4748
4757
|
rowHeight: 0,
|
|
4749
4758
|
// 表格父容器的高度
|
|
@@ -7656,6 +7665,7 @@ const Colgroup = VxeColgroup;
|
|
|
7656
7665
|
var es_iterator_filter = __webpack_require__(2489);
|
|
7657
7666
|
;// ./packages/table/src/props.ts
|
|
7658
7667
|
|
|
7668
|
+
|
|
7659
7669
|
const {
|
|
7660
7670
|
getConfig: props_getConfig
|
|
7661
7671
|
} = core_.VxeUI;
|
|
@@ -7965,7 +7975,7 @@ const tableProps = {
|
|
|
7965
7975
|
virtualYConfig: Object,
|
|
7966
7976
|
useScrollbar: {
|
|
7967
7977
|
type: Boolean,
|
|
7968
|
-
default: () => props_getConfig().table.useScrollbar
|
|
7978
|
+
default: () => getDefaultConfig(props_getConfig().table.useScrollbar, props_getConfig().useScrollbar)
|
|
7969
7979
|
},
|
|
7970
7980
|
// 滚动条配置项
|
|
7971
7981
|
scrollbarConfig: Object,
|
|
@@ -8044,6 +8054,61 @@ function clearColAnimate(elem, clss) {
|
|
|
8044
8054
|
}
|
|
8045
8055
|
}, 500);
|
|
8046
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
|
+
}
|
|
8047
8112
|
;// ./packages/table/src/store.ts
|
|
8048
8113
|
// 跨表拖拽
|
|
8049
8114
|
const crossTableDragRowGlobal = {
|
|
@@ -8118,7 +8183,7 @@ if(sortMultiple){tableData=external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_
|
|
|
8118
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){// 还原行分组
|
|
8119
8184
|
// 还原虚拟树
|
|
8120
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){// 还原虚拟树
|
|
8121
|
-
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
|
|
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'){// 表头体样式处理
|
|
8122
8187
|
// 横向滚动渲染
|
|
8123
8188
|
let renderColumnList=tableColumn;const isOptimizeMode=isHeaderRenderOptimize;if(isGroup){renderColumnList=visibleColumn;}else{if(!isOptimizeMode||!isColLoading&&(fixedType||!overflowX)){renderColumnList=visibleColumn;}if(fixedType){// 如果是使用优化模式
|
|
8124
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`;}// 如果是固定列
|
|
@@ -8188,7 +8253,7 @@ val=144;}}else{val=defMinHeight;}}}let num=0;if(val){if(val==='100%'||val==='aut
|
|
|
8188
8253
|
* 支持动态列表调整分配
|
|
8189
8254
|
* 支持自动分配偏移量
|
|
8190
8255
|
* 支持 width=60 width=60px width=10% min-width=60 min-width=60px min-width=10%
|
|
8191
|
-
*/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
|
|
8192
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;};// 最小宽
|
|
8193
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;});// 最小自适应
|
|
8194
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;});// 最小百分比
|
|
@@ -8218,9 +8283,11 @@ isShow=true;content=customContent;}else{content=cellText;}}if(isShow&&content){c
|
|
|
8218
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 逻辑
|
|
8219
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 逻辑
|
|
8220
8285
|
const rowHeight=computeRowHeight($xeTable);scrollYStore.rowHeight=rowHeight;// 已废弃
|
|
8221
|
-
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
|
|
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(()=>{// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
|
|
8222
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毫秒内频繁执行,则执行次数减缓
|
|
8223
|
-
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;// 渲染量低的场景
|
|
8224
8291
|
if(renderCellSize<400){rceDelay=20;}else if(renderCellSize<600){rceDelay=40;}else if(renderCellSize<800){rceDelay=80;}if(rceTimeout){clearTimeout(rceTimeout);// 多少毫秒内至少执行一次
|
|
8225
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,/**
|
|
8226
8293
|
* 已废弃
|
|
@@ -8742,6 +8809,8 @@ if(isEnableConf(editConfig)&&editOpts.autoClear!==false&&editOpts.trigger==='dbl
|
|
|
8742
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);}},/**
|
|
8743
8810
|
* 点击排序事件
|
|
8744
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();},/**
|
|
8745
8814
|
* 表头单元格按下事件
|
|
8746
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();}},/**
|
|
8747
8816
|
* 单元格按下事件
|
|
@@ -8867,14 +8936,14 @@ if(transform){return handleVirtualTreeExpand($xeTable,rows,expanded);}else{retur
|
|
|
8867
8936
|
* 获取表格的滚动状态
|
|
8868
8937
|
*/getScroll(){const $xeTable=this;return $xeTable.getScrollData();},/**
|
|
8869
8938
|
* 获取表格的滚动数据
|
|
8870
|
-
*/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);},/**
|
|
8871
8940
|
* 横向 X 可视渲染事件处理
|
|
8872
8941
|
*/triggerScrollXEvent(){const $xeTable=this;const virtualXOpts=$xeTable.computeVirtualXOpts;if(virtualXOpts.immediate){loadScrollXData($xeTable);}else{lazyScrollXData($xeTable);}},/**
|
|
8873
8942
|
* 纵向 Y 可视渲染事件处理
|
|
8874
|
-
*/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=
|
|
8875
|
-
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
|
|
8876
|
-
if(
|
|
8877
|
-
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;// 如果滚动位置已经是顶部或底部,则不需要触发
|
|
8878
8947
|
if(isTopWheel?currScrollTop<=0:currScrollTop>=bodyScrollElem.scrollHeight-bodyScrollElem.clientHeight){return;}}// 展开行处理,如果展开行嵌入表格中
|
|
8879
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();}// 用于鼠标纵向滚轮处理
|
|
8880
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 可视渲染上下剩余空间大小
|
|
@@ -8936,7 +9005,13 @@ return $xeTable.removeMergeFooterCells(merges);},/**
|
|
|
8936
9005
|
return $xeTable.getMergeFooterCells();},/**
|
|
8937
9006
|
* 清除所有表尾合并
|
|
8938
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'])
|
|
8939
|
-
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
|
|
8940
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();},/**
|
|
8941
9016
|
* 已废弃,被 connectToolbar 替换
|
|
8942
9017
|
* @deprecated
|
|
@@ -21242,6 +21317,7 @@ const {
|
|
|
21242
21317
|
renderer: table_renderer,
|
|
21243
21318
|
globalResize: table_globalResize,
|
|
21244
21319
|
globalEvents: table_globalEvents,
|
|
21320
|
+
domUtils,
|
|
21245
21321
|
globalMixins: table_globalMixins,
|
|
21246
21322
|
renderEmptyElement: table_renderEmptyElement
|
|
21247
21323
|
} = core_.VxeUI;
|
|
@@ -21331,6 +21407,8 @@ function renderViewFixed(h, $xeTable, fixedType) {
|
|
|
21331
21407
|
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
21332
21408
|
const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
|
|
21333
21409
|
const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
|
|
21410
|
+
const scrollXVisible = $xeTable.computeScrollXVisible;
|
|
21411
|
+
const scrollYVisible = $xeTable.computeScrollYVisible;
|
|
21334
21412
|
const {
|
|
21335
21413
|
overscrollBehavior: overscrollXBehavior
|
|
21336
21414
|
} = scrollbarXOpts;
|
|
@@ -21343,7 +21421,7 @@ function renderViewFixed(h, $xeTable, fixedType) {
|
|
|
21343
21421
|
const osYBehavior = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
|
|
21344
21422
|
return h('div', {
|
|
21345
21423
|
ref: isFixedLeft ? 'refLeftContainer' : 'refRightContainer',
|
|
21346
|
-
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'}`, {
|
|
21347
21425
|
[`x-ob--${osXBehavior}`]: osXBehavior,
|
|
21348
21426
|
[`y-ob--${osYBehavior}`]: osYBehavior
|
|
21349
21427
|
}]
|
|
@@ -21635,6 +21713,7 @@ function renderScrollX(h, $xeTable) {
|
|
|
21635
21713
|
}
|
|
21636
21714
|
function renderScrollY(h, $xeTable) {
|
|
21637
21715
|
return h('div', {
|
|
21716
|
+
key: 'vsy',
|
|
21638
21717
|
ref: 'refScrollYVirtualElem',
|
|
21639
21718
|
class: 'vxe-table--scroll-y-virtual'
|
|
21640
21719
|
}, [h('div', {
|
|
@@ -21675,6 +21754,8 @@ function renderViewport(h, $xeTable) {
|
|
|
21675
21754
|
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
21676
21755
|
const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
|
|
21677
21756
|
const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
|
|
21757
|
+
const scrollXVisible = $xeTable.computeScrollXVisible;
|
|
21758
|
+
const scrollYVisible = $xeTable.computeScrollYVisible;
|
|
21678
21759
|
const {
|
|
21679
21760
|
overscrollBehavior: overscrollXBehavior
|
|
21680
21761
|
} = scrollbarXOpts;
|
|
@@ -21688,13 +21769,14 @@ function renderViewport(h, $xeTable) {
|
|
|
21688
21769
|
const osXBehavior = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(overscrollXBehavior) ? scrollbarOpts.overscrollBehavior : overscrollXBehavior;
|
|
21689
21770
|
const osYBehavior = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(overscrollYBehavior) ? scrollbarOpts.overscrollBehavior : overscrollYBehavior;
|
|
21690
21771
|
return h('div', {
|
|
21772
|
+
key: 'tvw',
|
|
21691
21773
|
ref: 'refTableViewportElem',
|
|
21692
21774
|
class: ['vxe-table--viewport-wrapper', {
|
|
21693
21775
|
[`x-ob--${osXBehavior}`]: osXBehavior,
|
|
21694
21776
|
[`y-ob--${osYBehavior}`]: osYBehavior
|
|
21695
21777
|
}]
|
|
21696
21778
|
}, [h('div', {
|
|
21697
|
-
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'}`]
|
|
21698
21780
|
}, [
|
|
21699
21781
|
/**
|
|
21700
21782
|
* 表头
|
|
@@ -21730,12 +21812,82 @@ function renderViewport(h, $xeTable) {
|
|
|
21730
21812
|
class: 'vxe-table--fixed-wrapper'
|
|
21731
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)]);
|
|
21732
21814
|
}
|
|
21733
|
-
function
|
|
21815
|
+
function renderNativeBody(h, $xeTable) {
|
|
21734
21816
|
const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
|
|
21735
21817
|
return h('div', {
|
|
21818
|
+
key: 'lnb',
|
|
21736
21819
|
class: 'vxe-table--layout-wrapper'
|
|
21737
21820
|
}, scrollbarYToLeft ? [renderScrollY(h, $xeTable), renderViewport(h, $xeTable)] : [renderViewport(h, $xeTable), renderScrollY(h, $xeTable)]);
|
|
21738
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
|
+
}
|
|
21739
21891
|
/* harmony default export */ var table = ({
|
|
21740
21892
|
name: 'VxeTable',
|
|
21741
21893
|
mixins: [table_globalMixins.sizeMixin, mixin, menu_mixin, edit_mixin, export_mixin, keyboard_mixin, validator_mixin, custom_mixin],
|
|
@@ -21769,7 +21921,6 @@ function renderBody(h, $xeTable) {
|
|
|
21769
21921
|
const xID = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId();
|
|
21770
21922
|
const reactData = createReactData();
|
|
21771
21923
|
return {
|
|
21772
|
-
...{},
|
|
21773
21924
|
xID,
|
|
21774
21925
|
...reactData,
|
|
21775
21926
|
// 私有属性
|
|
@@ -21779,7 +21930,8 @@ function renderBody(h, $xeTable) {
|
|
|
21779
21930
|
kfFlag: 0,
|
|
21780
21931
|
layoutReFlag: 0,
|
|
21781
21932
|
mergeFooteCellFlag: 0,
|
|
21782
|
-
crossTableDragRowInfo: crossTableDragRowGlobal
|
|
21933
|
+
crossTableDragRowInfo: crossTableDragRowGlobal,
|
|
21934
|
+
scrollDefaultConf: Object.assign({}, table_getConfig().scrollbar)
|
|
21783
21935
|
};
|
|
21784
21936
|
},
|
|
21785
21937
|
computed: {
|
|
@@ -21908,6 +22060,46 @@ function renderBody(h, $xeTable) {
|
|
|
21908
22060
|
const scrollbarOpts = $xeTable.computeScrollbarOpts;
|
|
21909
22061
|
return scrollbarOpts.y ? Object.assign({}, scrollbarOpts.y, scrollbarOpts.yConfig) : scrollbarOpts.yConfig || {};
|
|
21910
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);
|
|
22102
|
+
},
|
|
21911
22103
|
computeScrollbarXToTop() {
|
|
21912
22104
|
const $xeTable = this;
|
|
21913
22105
|
const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
|
|
@@ -21918,6 +22110,22 @@ function renderBody(h, $xeTable) {
|
|
|
21918
22110
|
const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
|
|
21919
22111
|
return scrollbarYOpts.position === 'left';
|
|
21920
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
|
+
},
|
|
21921
22129
|
computeScrollYThreshold() {
|
|
21922
22130
|
const $xeTable = this;
|
|
21923
22131
|
const virtualYOpts = $xeTable.computeVirtualYOpts;
|
|
@@ -21965,6 +22173,11 @@ function renderBody(h, $xeTable) {
|
|
|
21965
22173
|
}
|
|
21966
22174
|
return cellOpts;
|
|
21967
22175
|
},
|
|
22176
|
+
computeCellHeitht() {
|
|
22177
|
+
const $xeTable = this;
|
|
22178
|
+
const cellOpts = $xeTable.computeCellOpts;
|
|
22179
|
+
return cellOpts.height;
|
|
22180
|
+
},
|
|
21968
22181
|
computeHeaderCellOpts() {
|
|
21969
22182
|
const $xeTable = this;
|
|
21970
22183
|
const $xeGantt = $xeTable.$xeGantt;
|
|
@@ -22487,12 +22700,8 @@ function renderBody(h, $xeTable) {
|
|
|
22487
22700
|
},
|
|
22488
22701
|
computeTableStyle() {
|
|
22489
22702
|
const $xeTable = this;
|
|
22490
|
-
const
|
|
22491
|
-
const
|
|
22492
|
-
const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
|
|
22493
|
-
const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
|
|
22494
|
-
const barWidth = getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), scrollDefaultConf.width);
|
|
22495
|
-
const barHeight = getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), scrollDefaultConf.height);
|
|
22703
|
+
const barWidth = $xeTable.computeScrollYWidth;
|
|
22704
|
+
const barHeight = $xeTable.computeScrollXHeight;
|
|
22496
22705
|
const stys = {};
|
|
22497
22706
|
if (barWidth || barHeight) {
|
|
22498
22707
|
stys['--vxe-ui-table-view-scrollbar-width'] = toCssUnit(barWidth || barHeight);
|
|
@@ -22758,17 +22967,6 @@ function renderBody(h, $xeTable) {
|
|
|
22758
22967
|
},
|
|
22759
22968
|
computeVxeLanguage() {
|
|
22760
22969
|
return core_.VxeUI.getLanguage();
|
|
22761
|
-
},
|
|
22762
|
-
computeScrollbarVisible() {
|
|
22763
|
-
const $xeTable = this;
|
|
22764
|
-
const scrollbarXOpts = $xeTable.computeScrollbarXOpts;
|
|
22765
|
-
const scrollbarYOpts = $xeTable.computeScrollbarYOpts;
|
|
22766
|
-
return `${scrollbarXOpts.visible}${scrollbarYOpts.visible}`;
|
|
22767
|
-
},
|
|
22768
|
-
computeCellConfHeitht() {
|
|
22769
|
-
const $xeTable = this;
|
|
22770
|
-
const cellOpts = $xeTable.computeCellOpts;
|
|
22771
|
-
return cellOpts.height;
|
|
22772
22970
|
}
|
|
22773
22971
|
},
|
|
22774
22972
|
watch: {
|
|
@@ -22816,55 +23014,98 @@ function renderBody(h, $xeTable) {
|
|
|
22816
23014
|
this.$nextTick().then(() => this.refreshColumn());
|
|
22817
23015
|
},
|
|
22818
23016
|
computeSize() {
|
|
22819
|
-
this
|
|
23017
|
+
const $xeTable = this;
|
|
23018
|
+
$xeTable.reLayoutFlag++;
|
|
22820
23019
|
},
|
|
22821
23020
|
showHeader() {
|
|
22822
|
-
this
|
|
23021
|
+
const $xeTable = this;
|
|
23022
|
+
$xeTable.reLayoutFlag++;
|
|
22823
23023
|
},
|
|
22824
23024
|
showFooter() {
|
|
22825
|
-
this
|
|
23025
|
+
const $xeTable = this;
|
|
23026
|
+
$xeTable.reLayoutFlag++;
|
|
22826
23027
|
},
|
|
22827
23028
|
showHeaderOverflow() {
|
|
22828
|
-
this
|
|
23029
|
+
const $xeTable = this;
|
|
23030
|
+
$xeTable.reLayoutFlag++;
|
|
22829
23031
|
},
|
|
22830
23032
|
showOverflow() {
|
|
22831
23033
|
const $xeTable = this;
|
|
22832
23034
|
updateColumnAllOverflow($xeTable);
|
|
22833
|
-
|
|
23035
|
+
$xeTable.reLayoutFlag++;
|
|
22834
23036
|
},
|
|
22835
23037
|
showFooterOverflow() {
|
|
22836
|
-
this
|
|
23038
|
+
const $xeTable = this;
|
|
23039
|
+
$xeTable.reLayoutFlag++;
|
|
22837
23040
|
},
|
|
22838
23041
|
overflowX() {
|
|
22839
|
-
this
|
|
23042
|
+
const $xeTable = this;
|
|
23043
|
+
$xeTable.reLayoutFlag++;
|
|
22840
23044
|
},
|
|
22841
23045
|
overflowY() {
|
|
22842
|
-
this
|
|
23046
|
+
const $xeTable = this;
|
|
23047
|
+
$xeTable.reLayoutFlag++;
|
|
22843
23048
|
},
|
|
22844
23049
|
height() {
|
|
22845
|
-
this
|
|
23050
|
+
const $xeTable = this;
|
|
23051
|
+
$xeTable.reLayoutFlag++;
|
|
22846
23052
|
},
|
|
22847
23053
|
maxHeight() {
|
|
22848
|
-
this
|
|
23054
|
+
const $xeTable = this;
|
|
23055
|
+
$xeTable.reLayoutFlag++;
|
|
23056
|
+
},
|
|
23057
|
+
computeVxeLanguage() {
|
|
23058
|
+
const $xeTable = this;
|
|
23059
|
+
$xeTable.reLayoutFlag++;
|
|
22849
23060
|
},
|
|
22850
23061
|
computeScrollbarXToTop() {
|
|
22851
|
-
this
|
|
23062
|
+
const $xeTable = this;
|
|
23063
|
+
$xeTable.reScrollFlag++;
|
|
23064
|
+
$xeTable.reLayoutFlag++;
|
|
22852
23065
|
},
|
|
22853
23066
|
computeScrollbarYToLeft() {
|
|
22854
|
-
this
|
|
23067
|
+
const $xeTable = this;
|
|
23068
|
+
$xeTable.reScrollFlag++;
|
|
23069
|
+
$xeTable.reLayoutFlag++;
|
|
22855
23070
|
},
|
|
22856
|
-
|
|
22857
|
-
this
|
|
23071
|
+
computeScrollXVisible() {
|
|
23072
|
+
const $xeTable = this;
|
|
23073
|
+
$xeTable.reScrollFlag++;
|
|
23074
|
+
$xeTable.reLayoutFlag++;
|
|
23075
|
+
},
|
|
23076
|
+
computeScrollYVisible() {
|
|
23077
|
+
const $xeTable = this;
|
|
23078
|
+
$xeTable.reScrollFlag++;
|
|
23079
|
+
$xeTable.reLayoutFlag++;
|
|
22858
23080
|
},
|
|
22859
|
-
|
|
22860
|
-
this
|
|
23081
|
+
computeScrollXHeight() {
|
|
23082
|
+
const $xeTable = this;
|
|
23083
|
+
$xeTable.reScrollFlag++;
|
|
23084
|
+
$xeTable.reLayoutFlag++;
|
|
22861
23085
|
},
|
|
22862
|
-
|
|
22863
|
-
this
|
|
23086
|
+
computeScrollYWidth() {
|
|
23087
|
+
const $xeTable = this;
|
|
23088
|
+
$xeTable.reScrollFlag++;
|
|
23089
|
+
$xeTable.reLayoutFlag++;
|
|
23090
|
+
},
|
|
23091
|
+
computeCellHeitht() {
|
|
23092
|
+
const $xeTable = this;
|
|
23093
|
+
$xeTable.reLayoutFlag++;
|
|
22864
23094
|
},
|
|
22865
23095
|
reLayoutFlag() {
|
|
22866
23096
|
const $xeTable = this;
|
|
22867
|
-
$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
|
+
});
|
|
22868
23109
|
},
|
|
22869
23110
|
footerData() {
|
|
22870
23111
|
this.footFlag++;
|
|
@@ -22967,7 +23208,6 @@ function renderBody(h, $xeTable) {
|
|
|
22967
23208
|
const $xeTable = this;
|
|
22968
23209
|
const props = $xeTable;
|
|
22969
23210
|
const internalData = $xeTable;
|
|
22970
|
-
$xeTable.scrollDefaultConf = Object.assign({}, table_getConfig().scrollbar);
|
|
22971
23211
|
external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, createInternalData());
|
|
22972
23212
|
handleKeyField($xeTable);
|
|
22973
23213
|
const {
|
|
@@ -23328,6 +23568,13 @@ function renderBody(h, $xeTable) {
|
|
|
23328
23568
|
table_warnLog('vxe.error.reqProp', ['tooltip-config']);
|
|
23329
23569
|
}
|
|
23330
23570
|
$xeTable.$nextTick(() => {
|
|
23571
|
+
const {
|
|
23572
|
+
useScrollbar,
|
|
23573
|
+
autoResize
|
|
23574
|
+
} = props;
|
|
23575
|
+
const {
|
|
23576
|
+
elemStore
|
|
23577
|
+
} = internalData;
|
|
23331
23578
|
// 使用已安装的组件,如果未安装则不渲染
|
|
23332
23579
|
const VxeUILoadingComponent = core_.VxeUI.getComponent('VxeLoading');
|
|
23333
23580
|
const VxeUITooltipComponent = core_.VxeUI.getComponent('VxeTooltip');
|
|
@@ -23375,15 +23622,34 @@ function renderBody(h, $xeTable) {
|
|
|
23375
23622
|
table_errLog('vxe.error.reqComp', ['vxe-tooltip']);
|
|
23376
23623
|
}
|
|
23377
23624
|
}
|
|
23378
|
-
|
|
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();
|
|
23379
23641
|
const resizeObserver = table_globalResize.create(() => {
|
|
23380
|
-
if (
|
|
23381
|
-
|
|
23642
|
+
if (props.autoResize) {
|
|
23643
|
+
$xeTable.handleResizeEvent();
|
|
23382
23644
|
}
|
|
23383
23645
|
});
|
|
23384
|
-
|
|
23385
|
-
|
|
23386
|
-
|
|
23646
|
+
if (el) {
|
|
23647
|
+
resizeObserver.observe(el);
|
|
23648
|
+
}
|
|
23649
|
+
if (parentEl) {
|
|
23650
|
+
resizeObserver.observe(parentEl);
|
|
23651
|
+
}
|
|
23652
|
+
internalData.resizeObserver = resizeObserver;
|
|
23387
23653
|
}
|
|
23388
23654
|
});
|
|
23389
23655
|
if (virtualYOpts.mode !== 'scroll') {
|
|
@@ -23419,6 +23685,8 @@ function renderBody(h, $xeTable) {
|
|
|
23419
23685
|
const reactData = $xeTable;
|
|
23420
23686
|
const internalData = $xeTable;
|
|
23421
23687
|
const {
|
|
23688
|
+
scrollObserver,
|
|
23689
|
+
resizeObserver,
|
|
23422
23690
|
_sToTime
|
|
23423
23691
|
} = internalData;
|
|
23424
23692
|
if (_sToTime) {
|
|
@@ -23440,8 +23708,11 @@ function renderBody(h, $xeTable) {
|
|
|
23440
23708
|
if (tableViewportEl) {
|
|
23441
23709
|
tableViewportEl.removeEventListener('wheel', $xeTable.triggerBodyWheelEvent);
|
|
23442
23710
|
}
|
|
23443
|
-
if (
|
|
23444
|
-
|
|
23711
|
+
if (scrollObserver) {
|
|
23712
|
+
scrollObserver.disconnect();
|
|
23713
|
+
}
|
|
23714
|
+
if (resizeObserver) {
|
|
23715
|
+
resizeObserver.disconnect();
|
|
23445
23716
|
}
|
|
23446
23717
|
$xeTable.closeTooltip();
|
|
23447
23718
|
$xeTable.closeFilter();
|
|
@@ -23617,7 +23888,7 @@ function renderBody(h, $xeTable) {
|
|
|
23617
23888
|
})]), h('div', {
|
|
23618
23889
|
key: 'tw',
|
|
23619
23890
|
class: 'vxe-table--render-wrapper'
|
|
23620
|
-
}, scrollbarXToTop ? [renderScrollX(h, $xeTable),
|
|
23891
|
+
}, useScrollbar ? [renderVirtualBody(h, $xeTable)] : scrollbarXToTop ? [renderScrollX(h, $xeTable), renderNativeBody(h, $xeTable)] : [renderNativeBody(h, $xeTable), renderScrollX(h, $xeTable)]),
|
|
23621
23892
|
/**
|
|
23622
23893
|
* 空数据
|
|
23623
23894
|
*/
|