vxe-table 3.15.12 → 3.15.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 +12 -4
- package/es/table/src/cell.js +2 -2
- package/es/table/src/methods.js +64 -22
- package/es/table/src/table.js +5 -0
- 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 +86 -33
- 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 +12 -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/methods.js +62 -22
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +5 -0
- 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 +12 -4
- package/packages/table/src/cell.ts +2 -2
- package/packages/table/src/methods.ts +67 -23
- package/packages/table/src/table.ts +6 -0
- package/packages/ui/index.ts +3 -3
- package/styles/components/table.scss +35 -0
- /package/es/{iconfont.1745723938260.ttf → iconfont.1745827933282.ttf} +0 -0
- /package/es/{iconfont.1745723938260.woff → iconfont.1745827933282.woff} +0 -0
- /package/es/{iconfont.1745723938260.woff2 → iconfont.1745827933282.woff2} +0 -0
- /package/lib/{iconfont.1745723938260.ttf → iconfont.1745827933282.ttf} +0 -0
- /package/lib/{iconfont.1745723938260.woff → iconfont.1745827933282.woff} +0 -0
- /package/lib/{iconfont.1745723938260.woff2 → iconfont.1745827933282.woff2} +0 -0
|
@@ -40,6 +40,7 @@ export default {
|
|
|
40
40
|
const hasChildMenus = item.children && item.children.some((child: any) => child.visible !== false)
|
|
41
41
|
const prefixOpts = Object.assign({}, item.prefixConfig)
|
|
42
42
|
const suffixOpts = Object.assign({}, item.suffixConfig)
|
|
43
|
+
const menuContent = getFuncText(item.name)
|
|
43
44
|
return item.visible === false
|
|
44
45
|
? null
|
|
45
46
|
: h('li', {
|
|
@@ -72,8 +73,11 @@ export default {
|
|
|
72
73
|
prefixOpts.content ? h('span', {}, `${prefixOpts.content}`) : _e()
|
|
73
74
|
]),
|
|
74
75
|
h('span', {
|
|
75
|
-
class: 'vxe-context-menu--link-content'
|
|
76
|
-
|
|
76
|
+
class: 'vxe-context-menu--link-content',
|
|
77
|
+
attrs: {
|
|
78
|
+
title: menuContent
|
|
79
|
+
}
|
|
80
|
+
}, menuContent),
|
|
77
81
|
h('div', {
|
|
78
82
|
class: ['vxe-context-menu--link-suffix', suffixOpts.className || '']
|
|
79
83
|
}, [
|
|
@@ -91,6 +95,7 @@ export default {
|
|
|
91
95
|
}, item.children.map((child: any, cIndex: any) => {
|
|
92
96
|
const childPrefixOpts = Object.assign({}, child.prefixConfig)
|
|
93
97
|
const childSuffixOpts = Object.assign({}, child.suffixConfig)
|
|
98
|
+
const childMenuContent = getFuncText(child.name)
|
|
94
99
|
return child.visible === false
|
|
95
100
|
? null
|
|
96
101
|
: h('li', {
|
|
@@ -123,8 +128,11 @@ export default {
|
|
|
123
128
|
childPrefixOpts.content ? h('span', `${childPrefixOpts.content}`) : _e()
|
|
124
129
|
]),
|
|
125
130
|
h('span', {
|
|
126
|
-
class: 'vxe-context-menu--link-content'
|
|
127
|
-
|
|
131
|
+
class: 'vxe-context-menu--link-content',
|
|
132
|
+
attrs: {
|
|
133
|
+
title: childMenuContent
|
|
134
|
+
}
|
|
135
|
+
}, childMenuContent),
|
|
128
136
|
h('div', {
|
|
129
137
|
class: ['vxe-context-menu--link-suffix', childSuffixOpts.className || '']
|
|
130
138
|
}, [
|
|
@@ -15,7 +15,7 @@ function renderTitlePrefixIcon (h: CreateElement, params: VxeTableDefines.CellRe
|
|
|
15
15
|
const titlePrefix = column.titlePrefix || column.titleHelp
|
|
16
16
|
if (titlePrefix) {
|
|
17
17
|
return h('i', {
|
|
18
|
-
class: ['vxe-cell-title-prefix-icon', titlePrefix.icon || getIcon().TABLE_TITLE_PREFIX],
|
|
18
|
+
class: ['vxe-cell-title-prefix-icon', titlePrefix.iconStatus ? `theme--${titlePrefix.iconStatus}` : '', titlePrefix.icon || getIcon().TABLE_TITLE_PREFIX],
|
|
19
19
|
on: {
|
|
20
20
|
mouseenter (evnt: any) {
|
|
21
21
|
$table.triggerHeaderTitleEvent(evnt, titlePrefix, params)
|
|
@@ -34,7 +34,7 @@ function renderTitleSuffixIcon (h: CreateElement, params: VxeTableDefines.CellRe
|
|
|
34
34
|
const titleSuffix = column.titleSuffix
|
|
35
35
|
if (titleSuffix) {
|
|
36
36
|
return h('i', {
|
|
37
|
-
class: ['vxe-cell-title-suffix-icon', titleSuffix.icon || getIcon().TABLE_TITLE_SUFFIX],
|
|
37
|
+
class: ['vxe-cell-title-suffix-icon', titleSuffix.iconStatus ? `theme--${titleSuffix.iconStatus}` : '', titleSuffix.icon || getIcon().TABLE_TITLE_SUFFIX],
|
|
38
38
|
on: {
|
|
39
39
|
mouseenter (evnt: any) {
|
|
40
40
|
$table.triggerHeaderTitleEvent(evnt, titleSuffix, params)
|
|
@@ -2513,13 +2513,13 @@ function calcScrollbar ($xeTable: VxeTableConstructor & VxeTablePrivateMethods)
|
|
|
2513
2513
|
if (bodyWrapperElem) {
|
|
2514
2514
|
overflowY = scrollYHeight > bodyWrapperElem.clientHeight
|
|
2515
2515
|
if (yHandleEl) {
|
|
2516
|
-
reactData.scrollbarWidth =
|
|
2516
|
+
reactData.scrollbarWidth = scrollbarOpts.width || (yHandleEl.offsetWidth - yHandleEl.clientWidth) || 14
|
|
2517
2517
|
}
|
|
2518
2518
|
reactData.overflowY = overflowY
|
|
2519
2519
|
|
|
2520
2520
|
overflowX = scrollXWidth > bodyWrapperElem.clientWidth
|
|
2521
2521
|
if (xHandleEl) {
|
|
2522
|
-
reactData.scrollbarHeight =
|
|
2522
|
+
reactData.scrollbarHeight = scrollbarOpts.height || (xHandleEl.offsetHeight - xHandleEl.clientHeight) || 14
|
|
2523
2523
|
}
|
|
2524
2524
|
reactData.overflowX = overflowX
|
|
2525
2525
|
|
|
@@ -2724,6 +2724,7 @@ function loadTableData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods,
|
|
|
2724
2724
|
scrollYStore.endIndex = 1
|
|
2725
2725
|
scrollXStore.startIndex = 0
|
|
2726
2726
|
scrollXStore.endIndex = 1
|
|
2727
|
+
internalData.cvCacheMaps = {}
|
|
2727
2728
|
reactData.isRowLoading = true
|
|
2728
2729
|
reactData.scrollVMLoading = false
|
|
2729
2730
|
internalData.treeExpandedMaps = {}
|
|
@@ -3176,7 +3177,7 @@ function lazyScrollXData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
|
|
|
3176
3177
|
|
|
3177
3178
|
const { lxTimeout, lxRunTime, scrollXStore } = internalData
|
|
3178
3179
|
const { visibleSize } = scrollXStore
|
|
3179
|
-
const fpsTime =
|
|
3180
|
+
const fpsTime = visibleSize > 26 ? 26 : (visibleSize > 16 ? 14 : 6)
|
|
3180
3181
|
if (lxTimeout) {
|
|
3181
3182
|
clearTimeout(lxTimeout)
|
|
3182
3183
|
}
|
|
@@ -3196,7 +3197,7 @@ function lazyScrollYData ($xeTable: VxeTableConstructor & VxeTablePrivateMethods
|
|
|
3196
3197
|
|
|
3197
3198
|
const { lyTimeout, lyRunTime, scrollYStore } = internalData
|
|
3198
3199
|
const { visibleSize } = scrollYStore
|
|
3199
|
-
const fpsTime =
|
|
3200
|
+
const fpsTime = visibleSize > 30 ? 32 : (visibleSize > 20 ? 18 : 8)
|
|
3200
3201
|
if (lyTimeout) {
|
|
3201
3202
|
clearTimeout(lyTimeout)
|
|
3202
3203
|
}
|
|
@@ -9549,8 +9550,8 @@ const Methods = {
|
|
|
9549
9550
|
if (isRollX) {
|
|
9550
9551
|
evnt.preventDefault()
|
|
9551
9552
|
internalData.inWheelScroll = true
|
|
9552
|
-
|
|
9553
|
-
const currLeftNum =
|
|
9553
|
+
if (browseObj['-moz'] || browseObj.safari) {
|
|
9554
|
+
const currLeftNum = scrollLeft
|
|
9554
9555
|
setScrollLeft(xHandleEl, currLeftNum)
|
|
9555
9556
|
setScrollLeft(bodyScrollElem, currLeftNum)
|
|
9556
9557
|
setScrollLeft(headerScrollElem, currLeftNum)
|
|
@@ -9562,13 +9563,27 @@ const Methods = {
|
|
|
9562
9563
|
type: 'table',
|
|
9563
9564
|
fixed: ''
|
|
9564
9565
|
})
|
|
9565
|
-
}
|
|
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
|
+
}
|
|
9566
9582
|
}
|
|
9567
9583
|
if (isRollY) {
|
|
9568
9584
|
evnt.preventDefault()
|
|
9569
|
-
|
|
9570
|
-
const currTopNum =
|
|
9571
|
-
internalData.inWheelScroll = true
|
|
9585
|
+
if (browseObj['-moz'] || browseObj.safari) {
|
|
9586
|
+
const currTopNum = scrollTop
|
|
9572
9587
|
setScrollTop(yHandleEl, currTopNum)
|
|
9573
9588
|
setScrollTop(bodyScrollElem, currTopNum)
|
|
9574
9589
|
setScrollTop(leftScrollElem, currTopNum)
|
|
@@ -9581,7 +9596,24 @@ const Methods = {
|
|
|
9581
9596
|
type: 'table',
|
|
9582
9597
|
fixed: ''
|
|
9583
9598
|
})
|
|
9584
|
-
}
|
|
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
|
+
}
|
|
9585
9617
|
}
|
|
9586
9618
|
},
|
|
9587
9619
|
triggerVirtualScrollXEvent (evnt: Event) {
|
|
@@ -9721,22 +9753,20 @@ const Methods = {
|
|
|
9721
9753
|
isScrollXBig = true
|
|
9722
9754
|
}
|
|
9723
9755
|
|
|
9724
|
-
|
|
9725
|
-
|
|
9726
|
-
marginLeft = `${xSpaceLeft}px`
|
|
9756
|
+
if (!(scrollXLoad && overflowX)) {
|
|
9757
|
+
xSpaceLeft = 0
|
|
9727
9758
|
}
|
|
9759
|
+
|
|
9728
9760
|
if (headerTableElem) {
|
|
9729
|
-
headerTableElem.style.
|
|
9761
|
+
headerTableElem.style.transform = headerTableElem.getAttribute('xvm') ? `translate(${xSpaceLeft}px, 0px)` : ''
|
|
9730
9762
|
}
|
|
9731
9763
|
if (bodyTableElem) {
|
|
9732
|
-
bodyTableElem.style.
|
|
9764
|
+
bodyTableElem.style.transform = `translate(${xSpaceLeft}px, ${reactData.scrollYTop || 0}px)`
|
|
9733
9765
|
}
|
|
9734
9766
|
if (footerTableElem) {
|
|
9735
|
-
footerTableElem.style.
|
|
9767
|
+
footerTableElem.style.transform = footerTableElem.getAttribute('xvm') ? `translate(${xSpaceLeft}px, 0px)` : ''
|
|
9736
9768
|
}
|
|
9737
9769
|
|
|
9738
|
-
reactData.isScrollXBig = isScrollXBig
|
|
9739
|
-
|
|
9740
9770
|
const containerList = ['main']
|
|
9741
9771
|
containerList.forEach(name => {
|
|
9742
9772
|
const layoutList = ['header', 'body', 'footer']
|
|
@@ -9747,6 +9777,10 @@ const Methods = {
|
|
|
9747
9777
|
}
|
|
9748
9778
|
})
|
|
9749
9779
|
})
|
|
9780
|
+
|
|
9781
|
+
reactData.scrollXLeft = xSpaceLeft
|
|
9782
|
+
reactData.scrollXWidth = ySpaceWidth
|
|
9783
|
+
reactData.isScrollXBig = isScrollXBig
|
|
9750
9784
|
const scrollXSpaceEl = $xeTable.$refs.refScrollXSpaceElem as HTMLDivElement
|
|
9751
9785
|
if (scrollXSpaceEl) {
|
|
9752
9786
|
scrollXSpaceEl.style.width = `${ySpaceWidth}px`
|
|
@@ -9787,6 +9821,8 @@ const Methods = {
|
|
|
9787
9821
|
const defaultRowHeight = $xeTable.computeDefaultRowHeight
|
|
9788
9822
|
const bodyScrollElem = getRefElem(elemStore['main-body-scroll'])
|
|
9789
9823
|
const bodyTableElem = getRefElem(elemStore['main-body-table'])
|
|
9824
|
+
const leftBodyTableElem = getRefElem(elemStore['left-body-table'])
|
|
9825
|
+
const rightbodyTableElem = getRefElem(elemStore['right-body-table'])
|
|
9790
9826
|
const containerList = ['main', 'left', 'right']
|
|
9791
9827
|
let ySpaceTop = 0
|
|
9792
9828
|
let scrollYHeight = 0
|
|
@@ -9838,12 +9874,19 @@ const Methods = {
|
|
|
9838
9874
|
}
|
|
9839
9875
|
ySpaceHeight = maxYHeight
|
|
9840
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
|
+
|
|
9841
9888
|
containerList.forEach(name => {
|
|
9842
9889
|
const layoutList = ['header', 'body', 'footer']
|
|
9843
|
-
const tableElem = getRefElem(elemStore[`${name}-body-table`])
|
|
9844
|
-
if (tableElem) {
|
|
9845
|
-
tableElem.style.marginTop = scrollYTop ? `${scrollYTop}px` : ''
|
|
9846
|
-
}
|
|
9847
9890
|
layoutList.forEach(layout => {
|
|
9848
9891
|
const ySpaceElem = getRefElem(elemStore[`${name}-${layout}-ySpace`])
|
|
9849
9892
|
if (ySpaceElem) {
|
|
@@ -9851,6 +9894,7 @@ const Methods = {
|
|
|
9851
9894
|
}
|
|
9852
9895
|
})
|
|
9853
9896
|
})
|
|
9897
|
+
|
|
9854
9898
|
const scrollYSpaceEl = $xeTable.$refs.refScrollYSpaceElem as HTMLDivElement
|
|
9855
9899
|
if (scrollYSpaceEl) {
|
|
9856
9900
|
scrollYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : ''
|
|
@@ -1509,6 +1509,8 @@ export default {
|
|
|
1509
1509
|
// 已删除行
|
|
1510
1510
|
removeRowMaps: {},
|
|
1511
1511
|
|
|
1512
|
+
cvCacheMaps: {},
|
|
1513
|
+
|
|
1512
1514
|
swYSize: 0,
|
|
1513
1515
|
swYInterval: 0,
|
|
1514
1516
|
swYTotal: 0
|
|
@@ -1821,11 +1823,15 @@ export default {
|
|
|
1821
1823
|
},
|
|
1822
1824
|
beforeDestroy () {
|
|
1823
1825
|
const $xeTable = this
|
|
1826
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
1824
1827
|
|
|
1825
1828
|
const tableViewportEl = $xeTable.$refs.refTableViewportElem as HTMLDivElement
|
|
1826
1829
|
if (tableViewportEl) {
|
|
1827
1830
|
tableViewportEl.removeEventListener('wheel', $xeTable.triggerBodyWheelEvent)
|
|
1828
1831
|
}
|
|
1832
|
+
internalData.cvCacheMaps = {}
|
|
1833
|
+
internalData.prevDragRow = null
|
|
1834
|
+
internalData.prevDragCol = null
|
|
1829
1835
|
if (this.$resize) {
|
|
1830
1836
|
this.$resize.disconnect()
|
|
1831
1837
|
}
|
package/packages/ui/index.ts
CHANGED
|
@@ -209,7 +209,7 @@ VxeUI.setConfig({
|
|
|
209
209
|
},
|
|
210
210
|
virtualXConfig: {
|
|
211
211
|
enabled: true,
|
|
212
|
-
gt:
|
|
212
|
+
gt: 24,
|
|
213
213
|
preSize: 0,
|
|
214
214
|
oSize: 1
|
|
215
215
|
},
|
|
@@ -220,8 +220,8 @@ VxeUI.setConfig({
|
|
|
220
220
|
oSize: 2
|
|
221
221
|
},
|
|
222
222
|
scrollbarConfig: {
|
|
223
|
-
width: 14,
|
|
224
|
-
height: 14
|
|
223
|
+
// width: 14,
|
|
224
|
+
// height: 14
|
|
225
225
|
}
|
|
226
226
|
},
|
|
227
227
|
// 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
|