vxe-table 4.13.12 → 4.13.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/menu/panel.js +8 -4
- package/es/table/src/cell.js +2 -2
- package/es/table/src/table.js +73 -24
- package/es/table/style.css +24 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +4 -4
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +24 -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 +24 -20
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/menu/panel.js +8 -4
- package/lib/table/module/menu/panel.min.js +1 -1
- package/lib/table/src/cell.js +2 -2
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/table.js +9 -9
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +24 -0
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +4 -4
- 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 +24 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/module/menu/panel.ts +8 -4
- package/packages/table/src/cell.ts +2 -2
- package/packages/table/src/table.ts +80 -25
- package/packages/ui/index.ts +3 -3
- package/styles/components/table.scss +35 -0
- /package/es/{iconfont.1745723959074.ttf → iconfont.1745827953655.ttf} +0 -0
- /package/es/{iconfont.1745723959074.woff → iconfont.1745827953655.woff} +0 -0
- /package/es/{iconfont.1745723959074.woff2 → iconfont.1745827953655.woff2} +0 -0
- /package/lib/{iconfont.1745723959074.ttf → iconfont.1745827953655.ttf} +0 -0
- /package/lib/{iconfont.1745723959074.woff → iconfont.1745827953655.woff} +0 -0
- /package/lib/{iconfont.1745723959074.woff2 → iconfont.1745827953655.woff2} +0 -0
|
@@ -400,6 +400,8 @@ export default defineComponent({
|
|
|
400
400
|
// 已删除行
|
|
401
401
|
removeRowMaps: {},
|
|
402
402
|
|
|
403
|
+
cvCacheMaps: {},
|
|
404
|
+
|
|
403
405
|
inited: false,
|
|
404
406
|
tooltipTimeout: null,
|
|
405
407
|
initStatus: false,
|
|
@@ -2931,13 +2933,13 @@ export default defineComponent({
|
|
|
2931
2933
|
if (bodyWrapperElem) {
|
|
2932
2934
|
overflowY = scrollYHeight > bodyWrapperElem.clientHeight
|
|
2933
2935
|
if (yHandleEl) {
|
|
2934
|
-
reactData.scrollbarWidth =
|
|
2936
|
+
reactData.scrollbarWidth = scrollbarOpts.width || (yHandleEl.offsetWidth - yHandleEl.clientWidth) || 14
|
|
2935
2937
|
}
|
|
2936
2938
|
reactData.overflowY = overflowY
|
|
2937
2939
|
|
|
2938
2940
|
overflowX = scrollXWidth > bodyWrapperElem.clientWidth
|
|
2939
2941
|
if (xHandleEl) {
|
|
2940
|
-
reactData.scrollbarHeight =
|
|
2942
|
+
reactData.scrollbarHeight = scrollbarOpts.height || (xHandleEl.offsetHeight - xHandleEl.clientHeight) || 14
|
|
2941
2943
|
}
|
|
2942
2944
|
|
|
2943
2945
|
const headerHeight = headerTableElem ? headerTableElem.clientHeight : 0
|
|
@@ -3134,6 +3136,7 @@ export default defineComponent({
|
|
|
3134
3136
|
scrollYStore.endIndex = 1
|
|
3135
3137
|
scrollXStore.startIndex = 0
|
|
3136
3138
|
scrollXStore.endIndex = 1
|
|
3139
|
+
internalData.cvCacheMaps = {}
|
|
3137
3140
|
reactData.isRowLoading = true
|
|
3138
3141
|
reactData.scrollVMLoading = false
|
|
3139
3142
|
internalData.treeExpandedMaps = {}
|
|
@@ -3744,7 +3747,7 @@ export default defineComponent({
|
|
|
3744
3747
|
const lazyScrollXData = () => {
|
|
3745
3748
|
const { lxTimeout, lxRunTime, scrollXStore } = internalData
|
|
3746
3749
|
const { visibleSize } = scrollXStore
|
|
3747
|
-
const fpsTime =
|
|
3750
|
+
const fpsTime = visibleSize > 26 ? 26 : (visibleSize > 16 ? 14 : 6)
|
|
3748
3751
|
if (lxTimeout) {
|
|
3749
3752
|
clearTimeout(lxTimeout)
|
|
3750
3753
|
}
|
|
@@ -3762,7 +3765,7 @@ export default defineComponent({
|
|
|
3762
3765
|
const lazyScrollYData = () => {
|
|
3763
3766
|
const { lyTimeout, lyRunTime, scrollYStore } = internalData
|
|
3764
3767
|
const { visibleSize } = scrollYStore
|
|
3765
|
-
const fpsTime =
|
|
3768
|
+
const fpsTime = visibleSize > 30 ? 32 : (visibleSize > 20 ? 18 : 8)
|
|
3766
3769
|
if (lyTimeout) {
|
|
3767
3770
|
clearTimeout(lyTimeout)
|
|
3768
3771
|
}
|
|
@@ -9850,12 +9853,14 @@ export default defineComponent({
|
|
|
9850
9853
|
if (!bodyScrollElem) {
|
|
9851
9854
|
return
|
|
9852
9855
|
}
|
|
9856
|
+
|
|
9853
9857
|
const wheelSpeed = getWheelSpeed(reactData.lastScrollTime)
|
|
9854
9858
|
const deltaTop = shiftKey ? 0 : Math.ceil(deltaY * wheelSpeed)
|
|
9855
9859
|
const deltaLeft = shiftKey ? Math.ceil((shiftKey ? (deltaY || deltaX) : deltaX) * wheelSpeed) : 0
|
|
9856
9860
|
|
|
9857
9861
|
const isTopWheel = deltaTop < 0
|
|
9858
9862
|
const currScrollTop = bodyScrollElem.scrollTop
|
|
9863
|
+
|
|
9859
9864
|
// 如果滚动位置已经是顶部或底部,则不需要触发
|
|
9860
9865
|
if (isTopWheel ? currScrollTop <= 0 : currScrollTop >= bodyScrollElem.scrollHeight - bodyScrollElem.clientHeight) {
|
|
9861
9866
|
return
|
|
@@ -9872,9 +9877,8 @@ export default defineComponent({
|
|
|
9872
9877
|
if (isRollX) {
|
|
9873
9878
|
evnt.preventDefault()
|
|
9874
9879
|
internalData.inWheelScroll = true
|
|
9875
|
-
|
|
9876
|
-
|
|
9877
|
-
const currLeftNum = offsetLeft
|
|
9880
|
+
if (browseObj['-moz'] || browseObj.safari) {
|
|
9881
|
+
const currLeftNum = scrollLeft
|
|
9878
9882
|
setScrollLeft(xHandleEl, currLeftNum)
|
|
9879
9883
|
setScrollLeft(bodyScrollElem, currLeftNum)
|
|
9880
9884
|
setScrollLeft(headerScrollElem, currLeftNum)
|
|
@@ -9886,14 +9890,29 @@ export default defineComponent({
|
|
|
9886
9890
|
type: 'table',
|
|
9887
9891
|
fixed: ''
|
|
9888
9892
|
})
|
|
9889
|
-
}
|
|
9893
|
+
} else {
|
|
9894
|
+
wheelScrollLeftTo(scrollLeft, (offsetLeft: number) => {
|
|
9895
|
+
internalData.inWheelScroll = true
|
|
9896
|
+
const currLeftNum = offsetLeft
|
|
9897
|
+
setScrollLeft(xHandleEl, currLeftNum)
|
|
9898
|
+
setScrollLeft(bodyScrollElem, currLeftNum)
|
|
9899
|
+
setScrollLeft(headerScrollElem, currLeftNum)
|
|
9900
|
+
setScrollLeft(footerScrollElem, currLeftNum)
|
|
9901
|
+
if (scrollXLoad) {
|
|
9902
|
+
$xeTable.triggerScrollXEvent(evnt)
|
|
9903
|
+
}
|
|
9904
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, bodyScrollElem.scrollTop, currLeftNum, {
|
|
9905
|
+
type: 'table',
|
|
9906
|
+
fixed: ''
|
|
9907
|
+
})
|
|
9908
|
+
})
|
|
9909
|
+
}
|
|
9890
9910
|
}
|
|
9891
9911
|
if (isRollY) {
|
|
9892
9912
|
evnt.preventDefault()
|
|
9893
9913
|
internalData.inWheelScroll = true
|
|
9894
|
-
|
|
9895
|
-
|
|
9896
|
-
const currTopNum = bodyScrollElem.scrollTop + offsetTop
|
|
9914
|
+
if (browseObj['-moz'] || browseObj.safari) {
|
|
9915
|
+
const currTopNum = scrollTop
|
|
9897
9916
|
setScrollTop(yHandleEl, currTopNum)
|
|
9898
9917
|
setScrollTop(bodyScrollElem, currTopNum)
|
|
9899
9918
|
setScrollTop(leftScrollElem, currTopNum)
|
|
@@ -9906,7 +9925,24 @@ export default defineComponent({
|
|
|
9906
9925
|
type: 'table',
|
|
9907
9926
|
fixed: ''
|
|
9908
9927
|
})
|
|
9909
|
-
}
|
|
9928
|
+
} else {
|
|
9929
|
+
wheelScrollTopTo(scrollTop - currScrollTop, (offsetTop: number) => {
|
|
9930
|
+
internalData.inWheelScroll = true
|
|
9931
|
+
const currTopNum = bodyScrollElem.scrollTop + offsetTop
|
|
9932
|
+
setScrollTop(yHandleEl, currTopNum)
|
|
9933
|
+
setScrollTop(bodyScrollElem, currTopNum)
|
|
9934
|
+
setScrollTop(leftScrollElem, currTopNum)
|
|
9935
|
+
setScrollTop(rightScrollElem, currTopNum)
|
|
9936
|
+
setScrollTop(rowExpandEl, currTopNum)
|
|
9937
|
+
if (scrollYLoad) {
|
|
9938
|
+
$xeTable.triggerScrollYEvent(evnt)
|
|
9939
|
+
}
|
|
9940
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, currTopNum, bodyScrollElem.scrollLeft, {
|
|
9941
|
+
type: 'table',
|
|
9942
|
+
fixed: ''
|
|
9943
|
+
})
|
|
9944
|
+
})
|
|
9945
|
+
}
|
|
9910
9946
|
}
|
|
9911
9947
|
},
|
|
9912
9948
|
triggerVirtualScrollXEvent (evnt) {
|
|
@@ -10045,22 +10081,20 @@ export default defineComponent({
|
|
|
10045
10081
|
isScrollXBig = true
|
|
10046
10082
|
}
|
|
10047
10083
|
|
|
10048
|
-
|
|
10049
|
-
|
|
10050
|
-
marginLeft = `${xSpaceLeft}px`
|
|
10084
|
+
if (!(scrollXLoad && overflowX)) {
|
|
10085
|
+
xSpaceLeft = 0
|
|
10051
10086
|
}
|
|
10087
|
+
|
|
10052
10088
|
if (headerTableElem) {
|
|
10053
|
-
headerTableElem.style.
|
|
10089
|
+
headerTableElem.style.transform = headerTableElem.getAttribute('xvm') ? `translate(${xSpaceLeft}px, 0px)` : ''
|
|
10054
10090
|
}
|
|
10055
10091
|
if (bodyTableElem) {
|
|
10056
|
-
bodyTableElem.style.
|
|
10092
|
+
bodyTableElem.style.transform = `translate(${xSpaceLeft}px, ${reactData.scrollYTop || 0}px)`
|
|
10057
10093
|
}
|
|
10058
10094
|
if (footerTableElem) {
|
|
10059
|
-
footerTableElem.style.
|
|
10095
|
+
footerTableElem.style.transform = footerTableElem.getAttribute('xvm') ? `translate(${xSpaceLeft}px, 0px)` : ''
|
|
10060
10096
|
}
|
|
10061
10097
|
|
|
10062
|
-
reactData.isScrollXBig = isScrollXBig
|
|
10063
|
-
|
|
10064
10098
|
const containerList = ['main']
|
|
10065
10099
|
containerList.forEach(name => {
|
|
10066
10100
|
const layoutList = ['header', 'body', 'footer']
|
|
@@ -10071,6 +10105,11 @@ export default defineComponent({
|
|
|
10071
10105
|
}
|
|
10072
10106
|
})
|
|
10073
10107
|
})
|
|
10108
|
+
|
|
10109
|
+
reactData.scrollXLeft = xSpaceLeft
|
|
10110
|
+
reactData.scrollXWidth = ySpaceWidth
|
|
10111
|
+
reactData.isScrollXBig = isScrollXBig
|
|
10112
|
+
|
|
10074
10113
|
const scrollXSpaceEl = refScrollXSpaceElem.value
|
|
10075
10114
|
if (scrollXSpaceEl) {
|
|
10076
10115
|
scrollXSpaceEl.style.width = `${ySpaceWidth}px`
|
|
@@ -10087,7 +10126,7 @@ export default defineComponent({
|
|
|
10087
10126
|
},
|
|
10088
10127
|
// 更新纵向 Y 可视渲染上下剩余空间大小
|
|
10089
10128
|
updateScrollYSpace () {
|
|
10090
|
-
const { isAllOverflow, scrollYLoad, expandColumn } = reactData
|
|
10129
|
+
const { isAllOverflow, overflowY, scrollYLoad, expandColumn } = reactData
|
|
10091
10130
|
const { scrollYStore, elemStore, isResizeCellHeight, afterFullData, fullAllDataRowIdData, rowExpandedMaps } = internalData
|
|
10092
10131
|
const { startIndex } = scrollYStore
|
|
10093
10132
|
const mouseOpts = computeMouseOpts.value
|
|
@@ -10097,6 +10136,8 @@ export default defineComponent({
|
|
|
10097
10136
|
const defaultRowHeight = computeDefaultRowHeight.value
|
|
10098
10137
|
const bodyScrollElem = getRefElem(elemStore['main-body-scroll'])
|
|
10099
10138
|
const bodyTableElem = getRefElem(elemStore['main-body-table'])
|
|
10139
|
+
const leftBodyTableElem = getRefElem(elemStore['left-body-table'])
|
|
10140
|
+
const rightbodyTableElem = getRefElem(elemStore['right-body-table'])
|
|
10100
10141
|
const containerList = ['main', 'left', 'right']
|
|
10101
10142
|
let ySpaceTop = 0
|
|
10102
10143
|
let scrollYHeight = 0
|
|
@@ -10148,12 +10189,22 @@ export default defineComponent({
|
|
|
10148
10189
|
}
|
|
10149
10190
|
ySpaceHeight = maxYHeight
|
|
10150
10191
|
}
|
|
10192
|
+
if (!(scrollYLoad && overflowY)) {
|
|
10193
|
+
scrollYTop = 0
|
|
10194
|
+
}
|
|
10195
|
+
|
|
10196
|
+
if (leftBodyTableElem) {
|
|
10197
|
+
leftBodyTableElem.style.transform = `translate(0px, ${scrollYTop}px)`
|
|
10198
|
+
}
|
|
10199
|
+
if (bodyTableElem) {
|
|
10200
|
+
bodyTableElem.style.transform = `translate(${reactData.scrollXLeft || 0}px, ${scrollYTop}px)`
|
|
10201
|
+
}
|
|
10202
|
+
if (rightbodyTableElem) {
|
|
10203
|
+
rightbodyTableElem.style.transform = `translate(0px, ${scrollYTop}px)`
|
|
10204
|
+
}
|
|
10205
|
+
|
|
10151
10206
|
containerList.forEach(name => {
|
|
10152
10207
|
const layoutList = ['header', 'body', 'footer']
|
|
10153
|
-
const tableElem = getRefElem(elemStore[`${name}-body-table`])
|
|
10154
|
-
if (tableElem) {
|
|
10155
|
-
tableElem.style.marginTop = scrollYTop ? `${scrollYTop}px` : ''
|
|
10156
|
-
}
|
|
10157
10208
|
layoutList.forEach(layout => {
|
|
10158
10209
|
const ySpaceElem = getRefElem(elemStore[`${name}-${layout}-ySpace`])
|
|
10159
10210
|
if (ySpaceElem) {
|
|
@@ -10161,6 +10212,7 @@ export default defineComponent({
|
|
|
10161
10212
|
}
|
|
10162
10213
|
})
|
|
10163
10214
|
})
|
|
10215
|
+
|
|
10164
10216
|
const scrollYSpaceEl = refScrollYSpaceElem.value
|
|
10165
10217
|
if (scrollYSpaceEl) {
|
|
10166
10218
|
scrollYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : ''
|
|
@@ -11358,6 +11410,9 @@ export default defineComponent({
|
|
|
11358
11410
|
if (tableViewportEl) {
|
|
11359
11411
|
tableViewportEl.removeEventListener('wheel', $xeTable.triggerBodyWheelEvent)
|
|
11360
11412
|
}
|
|
11413
|
+
internalData.cvCacheMaps = {}
|
|
11414
|
+
internalData.prevDragRow = null
|
|
11415
|
+
internalData.prevDragCol = null
|
|
11361
11416
|
if (resizeObserver) {
|
|
11362
11417
|
resizeObserver.disconnect()
|
|
11363
11418
|
}
|
package/packages/ui/index.ts
CHANGED
|
@@ -208,7 +208,7 @@ VxeUI.setConfig({
|
|
|
208
208
|
},
|
|
209
209
|
virtualXConfig: {
|
|
210
210
|
enabled: true,
|
|
211
|
-
gt:
|
|
211
|
+
gt: 24,
|
|
212
212
|
preSize: 1,
|
|
213
213
|
oSize: 0
|
|
214
214
|
},
|
|
@@ -219,8 +219,8 @@ VxeUI.setConfig({
|
|
|
219
219
|
oSize: 0
|
|
220
220
|
},
|
|
221
221
|
scrollbarConfig: {
|
|
222
|
-
width: 14,
|
|
223
|
-
height: 14
|
|
222
|
+
// width: 14,
|
|
223
|
+
// height: 14
|
|
224
224
|
}
|
|
225
225
|
},
|
|
226
226
|
// export: {
|
|
@@ -1,7 +1,36 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "sass:list";
|
|
1
3
|
@use '../helpers/baseMixin.scss';
|
|
2
4
|
@use './icon.scss';
|
|
3
5
|
@use './table-module/all.scss';
|
|
4
6
|
|
|
7
|
+
$btnThemeList: (
|
|
8
|
+
(
|
|
9
|
+
name: "primary",
|
|
10
|
+
textColor: var(--vxe-ui-font-primary-color),
|
|
11
|
+
),
|
|
12
|
+
(
|
|
13
|
+
name: "success",
|
|
14
|
+
textColor: var(--vxe-ui-status-success-color),
|
|
15
|
+
),
|
|
16
|
+
(
|
|
17
|
+
name: "info",
|
|
18
|
+
textColor: var(--vxe-ui-status-info-color),
|
|
19
|
+
),
|
|
20
|
+
(
|
|
21
|
+
name: "warning",
|
|
22
|
+
textColor: var(--vxe-ui-status-warning-color),
|
|
23
|
+
),
|
|
24
|
+
(
|
|
25
|
+
name: "danger",
|
|
26
|
+
textColor: var(--vxe-ui-status-danger-color),
|
|
27
|
+
),
|
|
28
|
+
(
|
|
29
|
+
name: "error",
|
|
30
|
+
textColor: var(--vxe-ui-status-error-color),
|
|
31
|
+
)
|
|
32
|
+
);
|
|
33
|
+
|
|
5
34
|
.vxe-table-slots,
|
|
6
35
|
.vxe-table--file-form {
|
|
7
36
|
display: none;
|
|
@@ -792,6 +821,12 @@
|
|
|
792
821
|
.vxe-cell-title-prefix-icon,
|
|
793
822
|
.vxe-cell-title-suffix-icon {
|
|
794
823
|
cursor: help;
|
|
824
|
+
@for $index from 0 to list.length($btnThemeList) {
|
|
825
|
+
$item: list.nth($btnThemeList, $index + 1);
|
|
826
|
+
&.theme--#{map.get($item, name)} {
|
|
827
|
+
color: map.get($item, textColor);
|
|
828
|
+
}
|
|
829
|
+
}
|
|
795
830
|
}
|
|
796
831
|
}
|
|
797
832
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|