vxe-table 4.16.0 → 4.16.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/grid/src/grid.js +1 -1
- 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/edit/hook.js +55 -17
- package/es/table/src/column.js +2 -0
- package/es/table/src/columnInfo.js +1 -0
- package/es/table/src/emits.js +5 -0
- package/es/table/src/header.js +47 -16
- package/es/table/src/props.js +11 -3
- package/es/table/src/store.js +8 -0
- package/es/table/src/table.js +579 -87
- package/es/table/src/util.js +70 -2
- package/es/table/style.css +11 -17
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +2 -2
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +11 -17
- package/es/vxe-table/style.min.css +1 -1
- package/lib/grid/src/grid.js +1 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +265 -65
- 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/edit/hook.js +54 -15
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/src/column.js +2 -0
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +1 -0
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/emits.js +1 -1
- package/lib/table/src/emits.min.js +1 -1
- package/lib/table/src/header.js +62 -13
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/props.js +11 -3
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/store.js +15 -0
- package/lib/table/src/store.min.js +1 -0
- package/lib/table/src/table.js +45 -25
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +74 -2
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +11 -17
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +2 -2
- 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 +11 -17
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +1 -1
- package/packages/table/module/edit/hook.ts +55 -19
- package/packages/table/src/column.ts +2 -0
- package/packages/table/src/columnInfo.ts +1 -0
- package/packages/table/src/emits.ts +6 -0
- package/packages/table/src/header.ts +49 -17
- package/packages/table/src/props.ts +11 -3
- package/packages/table/src/store.ts +14 -0
- package/packages/table/src/table.ts +583 -83
- package/packages/table/src/util.ts +76 -2
- package/packages/ui/index.ts +1 -1
- package/styles/components/table.scss +33 -55
- /package/es/{iconfont.1756083655214.ttf → iconfont.1756452373591.ttf} +0 -0
- /package/es/{iconfont.1756083655214.woff → iconfont.1756452373591.woff} +0 -0
- /package/es/{iconfont.1756083655214.woff2 → iconfont.1756452373591.woff2} +0 -0
- /package/lib/{iconfont.1756083655214.ttf → iconfont.1756452373591.ttf} +0 -0
- /package/lib/{iconfont.1756083655214.woff → iconfont.1756452373591.woff} +0 -0
- /package/lib/{iconfont.1756083655214.woff2 → iconfont.1756452373591.woff2} +0 -0
|
@@ -73,6 +73,7 @@ export function createInternalData (): TableInternalData {
|
|
|
73
73
|
tableFullColumn: [],
|
|
74
74
|
// 渲染所有列
|
|
75
75
|
visibleColumn: [],
|
|
76
|
+
|
|
76
77
|
// 全量数据集(包括当前和已删除)
|
|
77
78
|
fullAllDataRowIdData: {},
|
|
78
79
|
// 数据集(仅当前)
|
|
@@ -84,16 +85,22 @@ export function createInternalData (): TableInternalData {
|
|
|
84
85
|
fullColumnIdData: {},
|
|
85
86
|
fullColumnFieldData: {},
|
|
86
87
|
|
|
88
|
+
// 合并表头单元格的数据
|
|
89
|
+
mergeHeaderList: [],
|
|
90
|
+
mergeHeaderMaps: {},
|
|
91
|
+
// 已合并单元格数据集合
|
|
92
|
+
mergeHeaderCellMaps: {},
|
|
87
93
|
// 合并单元格的数据
|
|
88
94
|
mergeBodyList: [],
|
|
89
95
|
mergeBodyMaps: {},
|
|
96
|
+
// 已合并单元格数据集合
|
|
97
|
+
mergeBodyCellMaps: {},
|
|
90
98
|
// 合并表尾的数据
|
|
91
99
|
mergeFooterList: [],
|
|
92
100
|
mergeFooterMaps: {},
|
|
93
|
-
// 已合并单元格数据集合
|
|
94
|
-
mergeBodyCellMaps: {},
|
|
95
101
|
// 已合并表尾数据集合
|
|
96
102
|
mergeFooterCellMaps: {},
|
|
103
|
+
|
|
97
104
|
// 已展开的行集合
|
|
98
105
|
rowExpandedMaps: {},
|
|
99
106
|
// 懒加载中的展开行的集合
|
|
@@ -194,6 +201,73 @@ export const convertHeaderColumnToRows = (originColumns: any): any[][] => {
|
|
|
194
201
|
return rows
|
|
195
202
|
}
|
|
196
203
|
|
|
204
|
+
export function convertHeaderToGridRows (spanColumns: VxeTableDefines.ColumnInfo[][]) {
|
|
205
|
+
const rSize = spanColumns.length
|
|
206
|
+
const cSize = spanColumns[0].reduce((sum, cell) => sum + cell.colSpan, 0)
|
|
207
|
+
|
|
208
|
+
const occupiedRows: boolean[][] = []
|
|
209
|
+
const fullRows: any[][] = []
|
|
210
|
+
for (let rIndex = 0; rIndex < rSize; rIndex++) {
|
|
211
|
+
const oCols: boolean[] = []
|
|
212
|
+
const dCols: string[] = []
|
|
213
|
+
for (let cIndex = 0; cIndex < cSize; cIndex++) {
|
|
214
|
+
oCols.push(false)
|
|
215
|
+
dCols.push('')
|
|
216
|
+
}
|
|
217
|
+
occupiedRows.push(oCols)
|
|
218
|
+
fullRows.push(dCols)
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
for (let rIndex = 0; rIndex < rSize; rIndex++) {
|
|
222
|
+
let currColIndex = 0
|
|
223
|
+
for (const column of spanColumns[rIndex]) {
|
|
224
|
+
const { colSpan, rowSpan } = column
|
|
225
|
+
let startColIndex = -1
|
|
226
|
+
for (let ccIndex = currColIndex; ccIndex <= cSize - colSpan; ccIndex++) {
|
|
227
|
+
let oFlag = true
|
|
228
|
+
for (let csIndex = 0; csIndex < colSpan; csIndex++) {
|
|
229
|
+
if (occupiedRows[rIndex][ccIndex + csIndex]) {
|
|
230
|
+
oFlag = false
|
|
231
|
+
break
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
if (oFlag) {
|
|
235
|
+
startColIndex = ccIndex
|
|
236
|
+
break
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
if (startColIndex === -1) {
|
|
240
|
+
for (let j = 0; j <= cSize - colSpan; j++) {
|
|
241
|
+
let oFlag = true
|
|
242
|
+
for (let k = 0; k < colSpan; k++) {
|
|
243
|
+
if (occupiedRows[rIndex][j + k]) {
|
|
244
|
+
oFlag = false
|
|
245
|
+
break
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (oFlag) {
|
|
249
|
+
startColIndex = j
|
|
250
|
+
break
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
if (startColIndex === -1) {
|
|
254
|
+
// error
|
|
255
|
+
break
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
for (let srIndex = rIndex; srIndex < rIndex + rowSpan; srIndex++) {
|
|
260
|
+
for (let scIndex = startColIndex; scIndex < startColIndex + colSpan; scIndex++) {
|
|
261
|
+
occupiedRows[srIndex][scIndex] = true
|
|
262
|
+
fullRows[srIndex][scIndex] = column
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
currColIndex = startColIndex + colSpan
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return fullRows
|
|
269
|
+
}
|
|
270
|
+
|
|
197
271
|
export function restoreScrollLocation ($xeTable: VxeTableConstructor, scrollLeft: number, scrollTop: number) {
|
|
198
272
|
const internalData = $xeTable.internalData
|
|
199
273
|
|
package/packages/ui/index.ts
CHANGED
|
@@ -645,9 +645,6 @@ $btnThemeList: (
|
|
|
645
645
|
overflow-x: scroll;
|
|
646
646
|
height: 18px;
|
|
647
647
|
}
|
|
648
|
-
.vxe-table--scroll-x-wrapper {
|
|
649
|
-
height: 100%;
|
|
650
|
-
}
|
|
651
648
|
.vxe-table--scroll-y-handle,
|
|
652
649
|
.vxe-table--scroll-y-wrapper {
|
|
653
650
|
width: 100%;
|
|
@@ -891,13 +888,6 @@ $btnThemeList: (
|
|
|
891
888
|
right: auto;
|
|
892
889
|
left: -0.3em;
|
|
893
890
|
}
|
|
894
|
-
.vxe-header--column {
|
|
895
|
-
&:last-child {
|
|
896
|
-
& > .vxe-cell--col-resizable {
|
|
897
|
-
left: 0;
|
|
898
|
-
}
|
|
899
|
-
}
|
|
900
|
-
}
|
|
901
891
|
}
|
|
902
892
|
|
|
903
893
|
.vxe-body--column {
|
|
@@ -1415,32 +1405,25 @@ $btnThemeList: (
|
|
|
1415
1405
|
.vxe-table--scroll-y-bottom-corner {
|
|
1416
1406
|
border-top: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
|
|
1417
1407
|
}
|
|
1418
|
-
.vxe-table--scroll-x-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
z-index: 1;
|
|
1426
|
-
pointer-events: none;
|
|
1427
|
-
}
|
|
1408
|
+
.vxe-table--scroll-x-handle-appearance {
|
|
1409
|
+
position: absolute;
|
|
1410
|
+
left: 0;
|
|
1411
|
+
width: 100%;
|
|
1412
|
+
height: 100%;
|
|
1413
|
+
z-index: 1;
|
|
1414
|
+
pointer-events: none;
|
|
1428
1415
|
}
|
|
1429
1416
|
&.sx-pos--top {
|
|
1430
|
-
.vxe-table--scroll-x-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
border-bottom: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
|
|
1434
|
-
}
|
|
1417
|
+
.vxe-table--scroll-x-handle-appearance {
|
|
1418
|
+
top: 0;
|
|
1419
|
+
border-bottom: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
|
|
1435
1420
|
}
|
|
1436
1421
|
}
|
|
1437
1422
|
&.sx-pos--bottom {
|
|
1438
|
-
.vxe-table--scroll-x-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
border-top: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
|
|
1443
|
-
}
|
|
1423
|
+
.vxe-table--scroll-x-handle-appearance {
|
|
1424
|
+
bottom: 0;
|
|
1425
|
+
height: calc(100% + var(--vxe-ui-table-border-width));
|
|
1426
|
+
border-top: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
|
|
1444
1427
|
}
|
|
1445
1428
|
}
|
|
1446
1429
|
}
|
|
@@ -1514,32 +1497,25 @@ $btnThemeList: (
|
|
|
1514
1497
|
}
|
|
1515
1498
|
}
|
|
1516
1499
|
}
|
|
1517
|
-
.vxe-table--scroll-y-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
z-index: 1;
|
|
1525
|
-
pointer-events: none;
|
|
1526
|
-
}
|
|
1500
|
+
.vxe-table--scroll-y-handle-appearance {
|
|
1501
|
+
position: absolute;
|
|
1502
|
+
top: 0;
|
|
1503
|
+
width: 100%;
|
|
1504
|
+
height: 100%;
|
|
1505
|
+
z-index: 1;
|
|
1506
|
+
pointer-events: none;
|
|
1527
1507
|
}
|
|
1528
1508
|
&.sy-pos--left {
|
|
1529
|
-
.vxe-table--scroll-y-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
border-right: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
|
|
1533
|
-
}
|
|
1509
|
+
.vxe-table--scroll-y-handle-appearance {
|
|
1510
|
+
left: 0;
|
|
1511
|
+
border-right: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
|
|
1534
1512
|
}
|
|
1535
1513
|
}
|
|
1536
1514
|
&.sy-pos--right {
|
|
1537
|
-
.vxe-table--scroll-y-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
border-left: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
|
|
1542
|
-
}
|
|
1515
|
+
.vxe-table--scroll-y-handle-appearance {
|
|
1516
|
+
right: 0;
|
|
1517
|
+
width: calc(100% + var(--vxe-ui-table-border-width));
|
|
1518
|
+
border-left: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
|
|
1543
1519
|
}
|
|
1544
1520
|
}
|
|
1545
1521
|
}
|
|
@@ -2159,8 +2135,8 @@ $btnThemeList: (
|
|
|
2159
2135
|
position: absolute;
|
|
2160
2136
|
left: 50%;
|
|
2161
2137
|
font-size: 12px;
|
|
2162
|
-
line-height:
|
|
2163
|
-
transform:
|
|
2138
|
+
line-height: 1em;
|
|
2139
|
+
transform: translate(-50%, -50%);
|
|
2164
2140
|
text-align: left;
|
|
2165
2141
|
z-index: 4;
|
|
2166
2142
|
padding: 0 var(--vxe-ui-table-cell-padding-default);
|
|
@@ -2172,7 +2148,7 @@ $btnThemeList: (
|
|
|
2172
2148
|
pointer-events: auto;
|
|
2173
2149
|
}
|
|
2174
2150
|
.vxe-cell--valid-error-theme-beautify {
|
|
2175
|
-
padding: 0.2em 0.6em 0.
|
|
2151
|
+
padding: 0.2em 0.6em 0.25em 0.6em;
|
|
2176
2152
|
color: #fff;
|
|
2177
2153
|
background-color: var(--vxe-ui-table-validate-error-color);
|
|
2178
2154
|
.vxe-cell--valid-error-msg {
|
|
@@ -2204,10 +2180,12 @@ $btnThemeList: (
|
|
|
2204
2180
|
&:last-child {
|
|
2205
2181
|
.vxe-cell--valid-error-tip {
|
|
2206
2182
|
bottom: calc(100%);
|
|
2183
|
+
transform: translate(-50%, 50%);
|
|
2207
2184
|
}
|
|
2208
2185
|
&:first-child {
|
|
2209
2186
|
.vxe-cell--valid-error-tip {
|
|
2210
2187
|
bottom: auto;
|
|
2188
|
+
transform: translate(-50%, -50%);
|
|
2211
2189
|
}
|
|
2212
2190
|
}
|
|
2213
2191
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|