vxe-table 3.15.13 → 3.15.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/style.css +1 -1
- package/es/table/src/footer.js +1 -1
- package/es/table/src/header.js +1 -1
- package/es/table/src/methods.js +110 -67
- package/es/table/src/table.js +5 -7
- package/es/ui/index.js +1 -1
- package/es/ui/src/dom.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +127 -78
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/src/footer.js +1 -1
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +1 -1
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +118 -67
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +4 -6
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +1 -1
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +2 -2
- package/packages/table/src/footer.ts +1 -1
- package/packages/table/src/header.ts +1 -1
- package/packages/table/src/methods.ts +114 -71
- package/packages/table/src/table.ts +5 -7
- package/packages/ui/src/dom.ts +1 -1
- /package/es/{iconfont.1745800652359.ttf → iconfont.1745889617363.ttf} +0 -0
- /package/es/{iconfont.1745800652359.woff → iconfont.1745889617363.woff} +0 -0
- /package/es/{iconfont.1745800652359.woff2 → iconfont.1745889617363.woff2} +0 -0
- /package/lib/{iconfont.1745800652359.ttf → iconfont.1745889617363.ttf} +0 -0
- /package/lib/{iconfont.1745800652359.woff → iconfont.1745889617363.woff} +0 -0
- /package/lib/{iconfont.1745800652359.woff2 → iconfont.1745889617363.woff2} +0 -0
|
@@ -1076,7 +1076,7 @@ function updateStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
1076
1076
|
if (tableElem) {
|
|
1077
1077
|
tableElem.style.width = tWidth ? `${tWidth}px` : ''
|
|
1078
1078
|
// 兼容性处理
|
|
1079
|
-
tableElem.style.paddingRight = osbWidth && fixedType && (browseObj
|
|
1079
|
+
tableElem.style.paddingRight = osbWidth && fixedType && (browseObj.firefox || browseObj.safari) ? `${osbWidth}px` : ''
|
|
1080
1080
|
}
|
|
1081
1081
|
const emptyBlockElem = getRefElem(elemStore[`${name}-${layout}-emptyBlock`])
|
|
1082
1082
|
if (emptyBlockElem) {
|
|
@@ -3172,45 +3172,45 @@ const createGetColumnCacheProp = (prop: 'index' | '_index' | '$index') => {
|
|
|
3172
3172
|
}
|
|
3173
3173
|
}
|
|
3174
3174
|
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3175
|
+
function lazyScrollXData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
3176
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
3177
|
+
|
|
3178
|
+
const { lxTimeout, lxRunTime, scrollXStore } = internalData
|
|
3179
|
+
const { visibleSize } = scrollXStore
|
|
3180
|
+
const fpsTime = visibleSize > 26 ? 26 : (visibleSize > 16 ? 14 : 6)
|
|
3181
|
+
if (lxTimeout) {
|
|
3182
|
+
clearTimeout(lxTimeout)
|
|
3183
|
+
}
|
|
3184
|
+
if (!lxRunTime || lxRunTime + fpsTime < Date.now()) {
|
|
3185
|
+
internalData.lxRunTime = Date.now()
|
|
3186
|
+
loadScrollXData($xeTable)
|
|
3187
|
+
}
|
|
3188
|
+
internalData.lxTimeout = setTimeout(() => {
|
|
3189
|
+
internalData.lxTimeout = undefined
|
|
3190
|
+
internalData.lxRunTime = undefined
|
|
3191
|
+
loadScrollXData($xeTable)
|
|
3192
|
+
}, fpsTime)
|
|
3193
|
+
}
|
|
3194
|
+
|
|
3195
|
+
function lazyScrollYData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
3196
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
3197
|
+
|
|
3198
|
+
const { lyTimeout, lyRunTime, scrollYStore } = internalData
|
|
3199
|
+
const { visibleSize } = scrollYStore
|
|
3200
|
+
const fpsTime = visibleSize > 30 ? 32 : (visibleSize > 20 ? 18 : 8)
|
|
3201
|
+
if (lyTimeout) {
|
|
3202
|
+
clearTimeout(lyTimeout)
|
|
3203
|
+
}
|
|
3204
|
+
if (!lyRunTime || lyRunTime + fpsTime < Date.now()) {
|
|
3205
|
+
internalData.lyRunTime = Date.now()
|
|
3206
|
+
loadScrollYData($xeTable)
|
|
3207
|
+
}
|
|
3208
|
+
internalData.lyTimeout = setTimeout(() => {
|
|
3209
|
+
internalData.lyTimeout = undefined
|
|
3210
|
+
internalData.lyRunTime = undefined
|
|
3211
|
+
loadScrollYData($xeTable)
|
|
3212
|
+
}, fpsTime)
|
|
3213
|
+
}
|
|
3214
3214
|
|
|
3215
3215
|
function checkLastSyncScroll ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, isRollX: boolean, isRollY: boolean) {
|
|
3216
3216
|
const reactData = $xeTable as unknown as TableReactData
|
|
@@ -9303,12 +9303,12 @@ const Methods = {
|
|
|
9303
9303
|
triggerScrollXEvent () {
|
|
9304
9304
|
const $xeTable = this
|
|
9305
9305
|
|
|
9306
|
-
|
|
9307
|
-
|
|
9308
|
-
|
|
9309
|
-
|
|
9310
|
-
|
|
9311
|
-
|
|
9306
|
+
const virtualXOpts = $xeTable.computeVirtualXOpts
|
|
9307
|
+
if (virtualXOpts.immediate) {
|
|
9308
|
+
loadScrollXData($xeTable)
|
|
9309
|
+
} else {
|
|
9310
|
+
lazyScrollXData($xeTable)
|
|
9311
|
+
}
|
|
9312
9312
|
},
|
|
9313
9313
|
/**
|
|
9314
9314
|
* 纵向 Y 可视渲染事件处理
|
|
@@ -9316,12 +9316,12 @@ const Methods = {
|
|
|
9316
9316
|
triggerScrollYEvent () {
|
|
9317
9317
|
const $xeTable = this
|
|
9318
9318
|
|
|
9319
|
-
|
|
9320
|
-
|
|
9321
|
-
|
|
9322
|
-
|
|
9323
|
-
|
|
9324
|
-
|
|
9319
|
+
const virtualYOpts = $xeTable.computeVirtualYOpts
|
|
9320
|
+
if (virtualYOpts.immediate) {
|
|
9321
|
+
loadScrollYData($xeTable)
|
|
9322
|
+
} else {
|
|
9323
|
+
lazyScrollYData($xeTable)
|
|
9324
|
+
}
|
|
9325
9325
|
},
|
|
9326
9326
|
triggerBodyScrollEvent (evnt: Event, fixedType: '' | 'left' | 'right') {
|
|
9327
9327
|
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
@@ -9550,8 +9550,8 @@ const Methods = {
|
|
|
9550
9550
|
if (isRollX) {
|
|
9551
9551
|
evnt.preventDefault()
|
|
9552
9552
|
internalData.inWheelScroll = true
|
|
9553
|
-
|
|
9554
|
-
const currLeftNum =
|
|
9553
|
+
if (browseObj.firefox || browseObj.safari) {
|
|
9554
|
+
const currLeftNum = scrollLeft
|
|
9555
9555
|
setScrollLeft(xHandleEl, currLeftNum)
|
|
9556
9556
|
setScrollLeft(bodyScrollElem, currLeftNum)
|
|
9557
9557
|
setScrollLeft(headerScrollElem, currLeftNum)
|
|
@@ -9563,13 +9563,27 @@ const Methods = {
|
|
|
9563
9563
|
type: 'table',
|
|
9564
9564
|
fixed: ''
|
|
9565
9565
|
})
|
|
9566
|
-
}
|
|
9566
|
+
} else {
|
|
9567
|
+
wheelScrollLeftTo(scrollLeft, (offsetLeft: number) => {
|
|
9568
|
+
const currLeftNum = offsetLeft
|
|
9569
|
+
setScrollLeft(xHandleEl, currLeftNum)
|
|
9570
|
+
setScrollLeft(bodyScrollElem, currLeftNum)
|
|
9571
|
+
setScrollLeft(headerScrollElem, currLeftNum)
|
|
9572
|
+
setScrollLeft(footerScrollElem, currLeftNum)
|
|
9573
|
+
if (scrollXLoad) {
|
|
9574
|
+
$xeTable.triggerScrollXEvent(evnt)
|
|
9575
|
+
}
|
|
9576
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, bodyScrollElem.scrollTop, currLeftNum, {
|
|
9577
|
+
type: 'table',
|
|
9578
|
+
fixed: ''
|
|
9579
|
+
})
|
|
9580
|
+
})
|
|
9581
|
+
}
|
|
9567
9582
|
}
|
|
9568
9583
|
if (isRollY) {
|
|
9569
9584
|
evnt.preventDefault()
|
|
9570
|
-
|
|
9571
|
-
const currTopNum =
|
|
9572
|
-
internalData.inWheelScroll = true
|
|
9585
|
+
if (browseObj.firefox || browseObj.safari) {
|
|
9586
|
+
const currTopNum = scrollTop
|
|
9573
9587
|
setScrollTop(yHandleEl, currTopNum)
|
|
9574
9588
|
setScrollTop(bodyScrollElem, currTopNum)
|
|
9575
9589
|
setScrollTop(leftScrollElem, currTopNum)
|
|
@@ -9582,7 +9596,24 @@ const Methods = {
|
|
|
9582
9596
|
type: 'table',
|
|
9583
9597
|
fixed: ''
|
|
9584
9598
|
})
|
|
9585
|
-
}
|
|
9599
|
+
} else {
|
|
9600
|
+
wheelScrollTopTo(scrollTop - currScrollTop, (offsetTop: number) => {
|
|
9601
|
+
const currTopNum = bodyScrollElem.scrollTop + offsetTop
|
|
9602
|
+
internalData.inWheelScroll = true
|
|
9603
|
+
setScrollTop(yHandleEl, currTopNum)
|
|
9604
|
+
setScrollTop(bodyScrollElem, currTopNum)
|
|
9605
|
+
setScrollTop(leftScrollElem, currTopNum)
|
|
9606
|
+
setScrollTop(rightScrollElem, currTopNum)
|
|
9607
|
+
setScrollTop(rowExpandEl, currTopNum)
|
|
9608
|
+
if (scrollYLoad) {
|
|
9609
|
+
$xeTable.triggerScrollYEvent(evnt)
|
|
9610
|
+
}
|
|
9611
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, currTopNum, bodyScrollElem.scrollLeft, {
|
|
9612
|
+
type: 'table',
|
|
9613
|
+
fixed: ''
|
|
9614
|
+
})
|
|
9615
|
+
})
|
|
9616
|
+
}
|
|
9586
9617
|
}
|
|
9587
9618
|
},
|
|
9588
9619
|
triggerVirtualScrollXEvent (evnt: Event) {
|
|
@@ -9722,22 +9753,20 @@ const Methods = {
|
|
|
9722
9753
|
isScrollXBig = true
|
|
9723
9754
|
}
|
|
9724
9755
|
|
|
9725
|
-
|
|
9726
|
-
|
|
9727
|
-
marginLeft = `${xSpaceLeft}px`
|
|
9756
|
+
if (!(scrollXLoad && overflowX)) {
|
|
9757
|
+
xSpaceLeft = 0
|
|
9728
9758
|
}
|
|
9759
|
+
|
|
9729
9760
|
if (headerTableElem) {
|
|
9730
|
-
headerTableElem.style.
|
|
9761
|
+
headerTableElem.style.transform = headerTableElem.getAttribute('xvm') ? `translate(${xSpaceLeft}px, 0px)` : ''
|
|
9731
9762
|
}
|
|
9732
9763
|
if (bodyTableElem) {
|
|
9733
|
-
bodyTableElem.style.
|
|
9764
|
+
bodyTableElem.style.transform = `translate(${xSpaceLeft}px, ${reactData.scrollYTop || 0}px)`
|
|
9734
9765
|
}
|
|
9735
9766
|
if (footerTableElem) {
|
|
9736
|
-
footerTableElem.style.
|
|
9767
|
+
footerTableElem.style.transform = footerTableElem.getAttribute('xvm') ? `translate(${xSpaceLeft}px, 0px)` : ''
|
|
9737
9768
|
}
|
|
9738
9769
|
|
|
9739
|
-
reactData.isScrollXBig = isScrollXBig
|
|
9740
|
-
|
|
9741
9770
|
const containerList = ['main']
|
|
9742
9771
|
containerList.forEach(name => {
|
|
9743
9772
|
const layoutList = ['header', 'body', 'footer']
|
|
@@ -9748,6 +9777,10 @@ const Methods = {
|
|
|
9748
9777
|
}
|
|
9749
9778
|
})
|
|
9750
9779
|
})
|
|
9780
|
+
|
|
9781
|
+
reactData.scrollXLeft = xSpaceLeft
|
|
9782
|
+
reactData.scrollXWidth = ySpaceWidth
|
|
9783
|
+
reactData.isScrollXBig = isScrollXBig
|
|
9751
9784
|
const scrollXSpaceEl = $xeTable.$refs.refScrollXSpaceElem as HTMLDivElement
|
|
9752
9785
|
if (scrollXSpaceEl) {
|
|
9753
9786
|
scrollXSpaceEl.style.width = `${ySpaceWidth}px`
|
|
@@ -9788,6 +9821,8 @@ const Methods = {
|
|
|
9788
9821
|
const defaultRowHeight = $xeTable.computeDefaultRowHeight
|
|
9789
9822
|
const bodyScrollElem = getRefElem(elemStore['main-body-scroll'])
|
|
9790
9823
|
const bodyTableElem = getRefElem(elemStore['main-body-table'])
|
|
9824
|
+
const leftBodyTableElem = getRefElem(elemStore['left-body-table'])
|
|
9825
|
+
const rightbodyTableElem = getRefElem(elemStore['right-body-table'])
|
|
9791
9826
|
const containerList = ['main', 'left', 'right']
|
|
9792
9827
|
let ySpaceTop = 0
|
|
9793
9828
|
let scrollYHeight = 0
|
|
@@ -9839,12 +9874,19 @@ const Methods = {
|
|
|
9839
9874
|
}
|
|
9840
9875
|
ySpaceHeight = maxYHeight
|
|
9841
9876
|
}
|
|
9877
|
+
|
|
9878
|
+
if (leftBodyTableElem) {
|
|
9879
|
+
leftBodyTableElem.style.transform = `translate(0px, ${scrollYTop}px)`
|
|
9880
|
+
}
|
|
9881
|
+
if (bodyTableElem) {
|
|
9882
|
+
bodyTableElem.style.transform = `translate(${reactData.scrollXLeft || 0}px, ${scrollYTop}px)`
|
|
9883
|
+
}
|
|
9884
|
+
if (rightbodyTableElem) {
|
|
9885
|
+
rightbodyTableElem.style.transform = `translate(0px, ${scrollYTop}px)`
|
|
9886
|
+
}
|
|
9887
|
+
|
|
9842
9888
|
containerList.forEach(name => {
|
|
9843
9889
|
const layoutList = ['header', 'body', 'footer']
|
|
9844
|
-
const tableElem = getRefElem(elemStore[`${name}-body-table`])
|
|
9845
|
-
if (tableElem) {
|
|
9846
|
-
tableElem.style.marginTop = scrollYTop ? `${scrollYTop}px` : ''
|
|
9847
|
-
}
|
|
9848
9890
|
layoutList.forEach(layout => {
|
|
9849
9891
|
const ySpaceElem = getRefElem(elemStore[`${name}-${layout}-ySpace`])
|
|
9850
9892
|
if (ySpaceElem) {
|
|
@@ -9852,6 +9894,7 @@ const Methods = {
|
|
|
9852
9894
|
}
|
|
9853
9895
|
})
|
|
9854
9896
|
})
|
|
9897
|
+
|
|
9855
9898
|
const scrollYSpaceEl = $xeTable.$refs.refScrollYSpaceElem as HTMLDivElement
|
|
9856
9899
|
if (scrollYSpaceEl) {
|
|
9857
9900
|
scrollYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : ''
|
|
@@ -2,7 +2,7 @@ import { CreateElement } from 'vue'
|
|
|
2
2
|
import XEUtils from 'xe-utils'
|
|
3
3
|
import { getFuncText, isEnableConf } from '../../ui/src/utils'
|
|
4
4
|
import { initTpImg } from '../../ui/src/dom'
|
|
5
|
-
import { createHandleGetRowId } from './util'
|
|
5
|
+
import { createHandleGetRowId, getCellHeight } from './util'
|
|
6
6
|
import { VxeUI } from '../../ui'
|
|
7
7
|
import methods from './methods'
|
|
8
8
|
import TableBodyComponent from './body'
|
|
@@ -844,9 +844,8 @@ export default {
|
|
|
844
844
|
const props = $xeTable
|
|
845
845
|
|
|
846
846
|
const headerCellOpts = Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig)
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
}
|
|
847
|
+
const cellOpts = $xeTable.computeCellOpts
|
|
848
|
+
headerCellOpts.height = XEUtils.toNumber(getCellHeight(headerCellOpts.height || cellOpts.height))
|
|
850
849
|
return headerCellOpts
|
|
851
850
|
},
|
|
852
851
|
computeFooterCellOpts () {
|
|
@@ -854,9 +853,8 @@ export default {
|
|
|
854
853
|
const props = $xeTable
|
|
855
854
|
|
|
856
855
|
const footerCellOpts = Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig)
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
}
|
|
856
|
+
const cellOpts = $xeTable.computeCellOpts
|
|
857
|
+
footerCellOpts.height = XEUtils.toNumber(getCellHeight(footerCellOpts.height || cellOpts.height))
|
|
860
858
|
return footerCellOpts
|
|
861
859
|
},
|
|
862
860
|
rowOpts () {
|
package/packages/ui/src/dom.ts
CHANGED
|
@@ -55,7 +55,7 @@ export function isScale (val: any) {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
export function hasClass (elem: any, cls: any) {
|
|
58
|
-
return elem && elem.className && elem.className.match && elem.className.match(getClsRE(cls))
|
|
58
|
+
return !!(elem && elem.className && elem.className.match && elem.className.match(getClsRE(cls)))
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
export function removeClass (elem: any, cls: any) {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|