vxe-table 4.12.0-beta.2 → 4.12.0-beta.20
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 +61 -44
- package/es/locale/lang/ar-EG.js +7 -1
- package/es/locale/lang/de-DE.js +7 -1
- package/es/locale/lang/en-US.js +7 -1
- package/es/locale/lang/es-ES.js +7 -1
- package/es/locale/lang/fr-FR.js +7 -1
- package/es/locale/lang/hu-HU.js +7 -1
- package/es/locale/lang/hy-AM.js +7 -1
- package/es/locale/lang/id-ID.js +7 -1
- package/es/locale/lang/it-IT.js +7 -1
- package/es/locale/lang/ja-JP.js +7 -1
- package/es/locale/lang/ko-KR.js +7 -1
- package/es/locale/lang/nb-NO.js +7 -1
- package/es/locale/lang/pt-BR.js +7 -1
- package/es/locale/lang/ru-RU.js +7 -1
- package/es/locale/lang/th-TH.js +7 -1
- package/es/locale/lang/ug-CN.js +7 -1
- package/es/locale/lang/uk-UA.js +7 -1
- package/es/locale/lang/vi-VN.js +7 -1
- package/es/locale/lang/zh-CHT.js +7 -1
- package/es/locale/lang/zh-CN.js +7 -1
- package/es/style.css +1 -1
- package/es/table/module/filter/panel.js +12 -2
- package/es/table/module/keyboard/hook.js +47 -4
- package/es/table/render/index.js +91 -60
- package/es/table/src/body.js +12 -7
- package/es/table/src/cell.js +10 -9
- package/es/table/src/footer.js +9 -4
- package/es/table/src/header.js +2 -2
- package/es/table/src/props.js +4 -0
- package/es/table/src/table.js +366 -182
- package/es/table/src/util.js +58 -3
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/helper/vetur/attributes.json +1 -1
- package/helper/vetur/tags.json +1 -1
- package/lib/grid/src/grid.js +58 -48
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +1245 -12123
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +7 -1
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +7 -1
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +7 -1
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +7 -1
- package/lib/locale/lang/es-ES.js +7 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +7 -1
- package/lib/locale/lang/fr-FR.js +7 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +7 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +7 -1
- package/lib/locale/lang/hy-AM.js +7 -1
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/id-ID.js +7 -1
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/it-IT.js +7 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +7 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +7 -1
- package/lib/locale/lang/ko-KR.js +7 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +7 -1
- package/lib/locale/lang/nb-NO.js +7 -1
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +7 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +7 -1
- package/lib/locale/lang/ru-RU.js +7 -1
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +7 -1
- package/lib/locale/lang/th-TH.js +7 -1
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +7 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +7 -1
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +7 -1
- package/lib/locale/lang/vi-VN.js +7 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +7 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CN.js +7 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +7 -1
- package/lib/style.css +1 -1
- package/lib/table/module/filter/panel.js +8 -2
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/module/keyboard/hook.js +51 -4
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/render/index.js +100 -65
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +11 -6
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +15 -8
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/footer.js +9 -3
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +2 -1
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/props.js +4 -0
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +402 -188
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +65 -6
- package/lib/table/src/util.min.js +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/package.json +2 -2
- package/packages/grid/src/grid.ts +65 -50
- package/packages/locale/lang/ar-EG.ts +7 -1
- package/packages/locale/lang/de-DE.ts +7 -1
- package/packages/locale/lang/en-US.ts +7 -1
- package/packages/locale/lang/es-ES.ts +7 -1
- package/packages/locale/lang/fr-FR.ts +7 -1
- package/packages/locale/lang/hu-HU.ts +7 -1
- package/packages/locale/lang/hy-AM.ts +7 -1
- package/packages/locale/lang/id-ID.ts +7 -1
- package/packages/locale/lang/it-IT.ts +7 -1
- package/packages/locale/lang/ja-JP.ts +7 -1
- package/packages/locale/lang/ko-KR.ts +7 -1
- package/packages/locale/lang/nb-NO.ts +7 -1
- package/packages/locale/lang/pt-BR.ts +7 -1
- package/packages/locale/lang/ru-RU.ts +7 -1
- package/packages/locale/lang/th-TH.ts +7 -1
- package/packages/locale/lang/ug-CN.ts +7 -1
- package/packages/locale/lang/uk-UA.ts +7 -1
- package/packages/locale/lang/vi-VN.ts +7 -1
- package/packages/locale/lang/zh-CHT.ts +7 -1
- package/packages/locale/lang/zh-CN.ts +7 -1
- package/packages/table/module/filter/panel.ts +12 -2
- package/packages/table/module/keyboard/hook.ts +47 -6
- package/packages/table/render/index.ts +90 -59
- package/packages/table/src/body.ts +11 -6
- package/packages/table/src/cell.ts +10 -9
- package/packages/table/src/footer.ts +9 -4
- package/packages/table/src/header.ts +2 -2
- package/packages/table/src/props.ts +4 -0
- package/packages/table/src/table.ts +373 -183
- package/packages/table/src/util.ts +66 -3
- /package/es/{iconfont.1741080000843.ttf → iconfont.1742353689933.ttf} +0 -0
- /package/es/{iconfont.1741080000843.woff → iconfont.1742353689933.woff} +0 -0
- /package/es/{iconfont.1741080000843.woff2 → iconfont.1742353689933.woff2} +0 -0
- /package/lib/{iconfont.1741080000843.ttf → iconfont.1742353689933.ttf} +0 -0
- /package/lib/{iconfont.1741080000843.woff → iconfont.1742353689933.woff} +0 -0
- /package/lib/{iconfont.1741080000843.woff2 → iconfont.1742353689933.woff2} +0 -0
|
@@ -9,7 +9,7 @@ import TableHeaderComponent from './header'
|
|
|
9
9
|
import TableFooterComponent from './footer'
|
|
10
10
|
import tableProps from './props'
|
|
11
11
|
import tableEmits from './emits'
|
|
12
|
-
import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth } from './util'
|
|
12
|
+
import { getRowUniqueId, clearTableAllStatus, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, createHandleUpdateRowId, createHandleGetRowId } from './util'
|
|
13
13
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
14
14
|
import { warnLog, errLog } from '../../ui/src/log'
|
|
15
15
|
import TableCustomPanelComponent from '../module/custom/panel'
|
|
@@ -23,6 +23,7 @@ import type { VxeGridConstructor, VxeGridPrivateMethods, VxeTableConstructor, Ta
|
|
|
23
23
|
|
|
24
24
|
const { getConfig, getIcon, getI18n, renderer, formats, createEvent, globalResize, interceptor, hooks, globalEvents, GLOBAL_EVENT_KEYS, useFns, renderEmptyElement } = VxeUI
|
|
25
25
|
|
|
26
|
+
const supportMaxRow = 5e6
|
|
26
27
|
const customStorageKey = 'VXE_CUSTOM_STORE'
|
|
27
28
|
const maxYHeight = 5e6
|
|
28
29
|
const maxXWidth = 5e6
|
|
@@ -506,6 +507,10 @@ export default defineComponent({
|
|
|
506
507
|
return Object.assign({}, getConfig().table.columnConfig, props.columnConfig) as VxeTablePropTypes.ColumnOpts
|
|
507
508
|
})
|
|
508
509
|
|
|
510
|
+
const computeCurrentColumnOpts = computed(() => {
|
|
511
|
+
return Object.assign({}, getConfig().table.currentColumnConfig, props.currentColumnConfig)
|
|
512
|
+
})
|
|
513
|
+
|
|
509
514
|
const computeCellOpts = computed(() => {
|
|
510
515
|
return Object.assign({}, getConfig().table.cellConfig, props.cellConfig)
|
|
511
516
|
})
|
|
@@ -519,7 +524,11 @@ export default defineComponent({
|
|
|
519
524
|
})
|
|
520
525
|
|
|
521
526
|
const computeRowOpts = computed(() => {
|
|
522
|
-
return Object.assign({}, getConfig().table.rowConfig, props.rowConfig)
|
|
527
|
+
return Object.assign({}, getConfig().table.rowConfig, props.rowConfig)
|
|
528
|
+
})
|
|
529
|
+
|
|
530
|
+
const computeCurrentRowOpts = computed(() => {
|
|
531
|
+
return Object.assign({}, getConfig().table.currentRowConfig, props.currentRowConfig)
|
|
523
532
|
})
|
|
524
533
|
|
|
525
534
|
const computeRowDragOpts = computed(() => {
|
|
@@ -823,6 +832,7 @@ export default defineComponent({
|
|
|
823
832
|
computeScrollbarXToTop,
|
|
824
833
|
computeScrollbarYToLeft,
|
|
825
834
|
computeColumnOpts,
|
|
835
|
+
computeCurrentColumnOpts,
|
|
826
836
|
computeScrollXThreshold,
|
|
827
837
|
computeScrollYThreshold,
|
|
828
838
|
computeDefaultRowHeight,
|
|
@@ -830,6 +840,7 @@ export default defineComponent({
|
|
|
830
840
|
computeHeaderCellOpts,
|
|
831
841
|
computeFooterCellOpts,
|
|
832
842
|
computeRowOpts,
|
|
843
|
+
computeCurrentRowOpts,
|
|
833
844
|
computeRowDragOpts,
|
|
834
845
|
computeColumnDragOpts,
|
|
835
846
|
computeResizeOpts,
|
|
@@ -1300,7 +1311,7 @@ export default defineComponent({
|
|
|
1300
1311
|
fullColumnFieldData[field] = rest
|
|
1301
1312
|
} else {
|
|
1302
1313
|
if ((storage && !type) || (columnOpts.drag && (isCrossDrag || isSelfToChildDrag))) {
|
|
1303
|
-
errLog('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field
|
|
1314
|
+
errLog('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field=?`])
|
|
1304
1315
|
}
|
|
1305
1316
|
}
|
|
1306
1317
|
if (!hasFixed && fixed) {
|
|
@@ -2367,8 +2378,11 @@ export default defineComponent({
|
|
|
2367
2378
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
2368
2379
|
const checkboxOpts = computeCheckboxOpts.value
|
|
2369
2380
|
const { checkField, reserve, checkMethod } = checkboxOpts
|
|
2381
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
2382
|
+
// indeterminateField 仅支持读取
|
|
2370
2383
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
|
|
2371
2384
|
const selectRowMaps: Record<string, any> = {}
|
|
2385
|
+
|
|
2372
2386
|
/**
|
|
2373
2387
|
* 绑定属性方式(高性能,有污染)
|
|
2374
2388
|
* 必须在行数据存在对应的属性,否则将不响应
|
|
@@ -2405,7 +2419,8 @@ export default defineComponent({
|
|
|
2405
2419
|
*/
|
|
2406
2420
|
XEUtils.eachTree(afterFullData, (row) => {
|
|
2407
2421
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
2408
|
-
|
|
2422
|
+
const rowid = handleGetRowId(row)
|
|
2423
|
+
selectRowMaps[rowid] = row
|
|
2409
2424
|
}
|
|
2410
2425
|
}, { children: childrenField })
|
|
2411
2426
|
} else {
|
|
@@ -2415,7 +2430,7 @@ export default defineComponent({
|
|
|
2415
2430
|
*/
|
|
2416
2431
|
if (!isForce && checkMethod) {
|
|
2417
2432
|
XEUtils.eachTree(afterFullData, (row) => {
|
|
2418
|
-
const rowid =
|
|
2433
|
+
const rowid = handleGetRowId(row)
|
|
2419
2434
|
if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
|
|
2420
2435
|
selectRowMaps[rowid] = row
|
|
2421
2436
|
}
|
|
@@ -2431,14 +2446,15 @@ export default defineComponent({
|
|
|
2431
2446
|
*/
|
|
2432
2447
|
if (!isForce && checkMethod) {
|
|
2433
2448
|
afterFullData.forEach((row) => {
|
|
2434
|
-
const rowid =
|
|
2449
|
+
const rowid = handleGetRowId(row)
|
|
2435
2450
|
if (selectCheckboxMaps[rowid] || checkMethod({ row })) {
|
|
2436
2451
|
selectRowMaps[rowid] = row
|
|
2437
2452
|
}
|
|
2438
2453
|
})
|
|
2439
2454
|
} else {
|
|
2440
2455
|
afterFullData.forEach(row => {
|
|
2441
|
-
|
|
2456
|
+
const rowid = handleGetRowId(row)
|
|
2457
|
+
selectRowMaps[rowid] = row
|
|
2442
2458
|
})
|
|
2443
2459
|
}
|
|
2444
2460
|
} else {
|
|
@@ -2449,7 +2465,7 @@ export default defineComponent({
|
|
|
2449
2465
|
*/
|
|
2450
2466
|
if (!isForce && checkMethod) {
|
|
2451
2467
|
afterFullData.forEach((row) => {
|
|
2452
|
-
const rowid =
|
|
2468
|
+
const rowid = handleGetRowId(row)
|
|
2453
2469
|
if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
|
|
2454
2470
|
selectRowMaps[rowid] = row
|
|
2455
2471
|
}
|
|
@@ -2780,7 +2796,10 @@ export default defineComponent({
|
|
|
2780
2796
|
const { transform } = treeOpts
|
|
2781
2797
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
2782
2798
|
let treeData = []
|
|
2783
|
-
let fullData = reactive(datas ? datas.slice(0) : []) //
|
|
2799
|
+
let fullData = reactive(datas ? datas.slice(0) : []) // 转为响应式数据
|
|
2800
|
+
if (fullData.length > supportMaxRow) {
|
|
2801
|
+
errLog('vxe.error.errMaxRow', [supportMaxRow])
|
|
2802
|
+
}
|
|
2784
2803
|
if (treeConfig) {
|
|
2785
2804
|
if (transform) {
|
|
2786
2805
|
// 树结构自动转换
|
|
@@ -2876,7 +2895,7 @@ export default defineComponent({
|
|
|
2876
2895
|
// warnLog('vxe.error.reqProp', ['table.show-overflow'])
|
|
2877
2896
|
// }
|
|
2878
2897
|
if (props.spanMethod) {
|
|
2879
|
-
|
|
2898
|
+
errLog('vxe.error.scrollErrProp', ['table.span-method'])
|
|
2880
2899
|
}
|
|
2881
2900
|
}
|
|
2882
2901
|
|
|
@@ -3275,9 +3294,9 @@ export default defineComponent({
|
|
|
3275
3294
|
handleCheckedAllCheckboxRow(value)
|
|
3276
3295
|
if (evnt) {
|
|
3277
3296
|
dispatchEvent('checkbox-all', {
|
|
3278
|
-
records: $xeTable.getCheckboxRecords(),
|
|
3279
|
-
reserves: $xeTable.getCheckboxReserveRecords(),
|
|
3280
|
-
indeterminates: $xeTable.getCheckboxIndeterminateRecords(),
|
|
3297
|
+
records: () => $xeTable.getCheckboxRecords(),
|
|
3298
|
+
reserves: () => $xeTable.getCheckboxReserveRecords(),
|
|
3299
|
+
indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
|
|
3281
3300
|
checked: value
|
|
3282
3301
|
}, evnt)
|
|
3283
3302
|
}
|
|
@@ -3589,6 +3608,9 @@ export default defineComponent({
|
|
|
3589
3608
|
|
|
3590
3609
|
tableMethods = {
|
|
3591
3610
|
dispatchEvent,
|
|
3611
|
+
getEl () {
|
|
3612
|
+
return refElem.value
|
|
3613
|
+
},
|
|
3592
3614
|
/**
|
|
3593
3615
|
* 重置表格的一切数据状态
|
|
3594
3616
|
*/
|
|
@@ -3889,12 +3911,14 @@ export default defineComponent({
|
|
|
3889
3911
|
*/
|
|
3890
3912
|
revertData (rows: any, field) {
|
|
3891
3913
|
const { keepSource, treeConfig } = props
|
|
3892
|
-
const {
|
|
3914
|
+
const { editStore } = reactData
|
|
3915
|
+
const { fullAllDataRowIdData, fullDataRowIdData, tableSourceData, sourceDataRowIdData, tableFullData, afterFullData } = internalData
|
|
3916
|
+
const removeTempMaps = { ...editStore.removeMaps }
|
|
3893
3917
|
const treeOpts = computeTreeOpts.value
|
|
3894
3918
|
const { transform } = treeOpts
|
|
3895
3919
|
if (!keepSource) {
|
|
3896
3920
|
if (process.env.VUE_APP_VXE_ENV === 'development') {
|
|
3897
|
-
|
|
3921
|
+
errLog('vxe.error.reqProp', ['keep-source'])
|
|
3898
3922
|
}
|
|
3899
3923
|
return nextTick()
|
|
3900
3924
|
}
|
|
@@ -3908,22 +3932,23 @@ export default defineComponent({
|
|
|
3908
3932
|
}
|
|
3909
3933
|
let reDelFlag = false
|
|
3910
3934
|
if (targetRows.length) {
|
|
3911
|
-
targetRows.forEach((
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3935
|
+
targetRows.forEach((item: any) => {
|
|
3936
|
+
const rowid = getRowid($xeTable, item)
|
|
3937
|
+
const rowRest = fullAllDataRowIdData[rowid]
|
|
3938
|
+
if (rowRest) {
|
|
3939
|
+
const row = rowRest.row
|
|
3940
|
+
if (!$xeTable.isInsertByRow(row)) {
|
|
3941
|
+
const oRow = sourceDataRowIdData[rowid]
|
|
3942
|
+
if (oRow && row) {
|
|
3943
|
+
if (field) {
|
|
3944
|
+
XEUtils.set(row, field, XEUtils.clone(XEUtils.get(oRow, field), true))
|
|
3945
|
+
} else {
|
|
3946
|
+
XEUtils.destructuring(row, XEUtils.clone(oRow, true))
|
|
3947
|
+
}
|
|
3948
|
+
if (!fullDataRowIdData[rowid] && $xeTable.isRemoveByRow(row)) {
|
|
3949
|
+
delete removeTempMaps[rowid]
|
|
3950
|
+
tableFullData.unshift(row)
|
|
3951
|
+
afterFullData.unshift(row)
|
|
3927
3952
|
reDelFlag = true
|
|
3928
3953
|
}
|
|
3929
3954
|
}
|
|
@@ -3933,6 +3958,7 @@ export default defineComponent({
|
|
|
3933
3958
|
}
|
|
3934
3959
|
if (rows) {
|
|
3935
3960
|
if (reDelFlag) {
|
|
3961
|
+
editStore.removeMaps = removeTempMaps
|
|
3936
3962
|
$xeTable.updateFooter()
|
|
3937
3963
|
$xeTable.cacheRowMap(false)
|
|
3938
3964
|
$xeTable.handleTableData(treeConfig && transform)
|
|
@@ -4080,18 +4106,20 @@ export default defineComponent({
|
|
|
4080
4106
|
},
|
|
4081
4107
|
/**
|
|
4082
4108
|
* 检查行或列数据是否发生改变
|
|
4083
|
-
* @param {Row}
|
|
4109
|
+
* @param {Row} rowidOrRow 行对象、行主键
|
|
4084
4110
|
* @param {String} field 字段名
|
|
4085
4111
|
*/
|
|
4086
|
-
isUpdateByRow (
|
|
4112
|
+
isUpdateByRow (rowidOrRow, field) {
|
|
4087
4113
|
const { keepSource } = props
|
|
4088
4114
|
const { tableFullColumn, fullDataRowIdData, sourceDataRowIdData } = internalData
|
|
4089
4115
|
if (keepSource) {
|
|
4090
|
-
const rowid = getRowid($xeTable,
|
|
4116
|
+
const rowid = XEUtils.isString(rowidOrRow) || XEUtils.isNumber(rowidOrRow) ? rowidOrRow : getRowid($xeTable, rowidOrRow)
|
|
4117
|
+
const rowRest = fullDataRowIdData[rowid]
|
|
4091
4118
|
// 新增的数据不需要检测
|
|
4092
|
-
if (!
|
|
4119
|
+
if (!rowRest) {
|
|
4093
4120
|
return false
|
|
4094
4121
|
}
|
|
4122
|
+
const row = rowRest.row
|
|
4095
4123
|
const oRow = sourceDataRowIdData[rowid]
|
|
4096
4124
|
if (oRow) {
|
|
4097
4125
|
if (arguments.length > 1) {
|
|
@@ -4155,6 +4183,92 @@ export default defineComponent({
|
|
|
4155
4183
|
tableColumn: reactData.tableColumn.slice(0)
|
|
4156
4184
|
}
|
|
4157
4185
|
},
|
|
4186
|
+
/**
|
|
4187
|
+
* 移动列到指定列的位置
|
|
4188
|
+
* @param fieldOrColumn
|
|
4189
|
+
* @param targetFieldOrColumn
|
|
4190
|
+
* @param options
|
|
4191
|
+
*/
|
|
4192
|
+
moveColumnTo (fieldOrColumn, targetFieldOrColumn, options) {
|
|
4193
|
+
const { fullColumnIdData, visibleColumn } = internalData
|
|
4194
|
+
const { dragToChild, dragPos, isCrossDrag } = Object.assign({}, options)
|
|
4195
|
+
const dragCol = handleFieldOrColumn($xeTable, fieldOrColumn)
|
|
4196
|
+
let prevDragCol: VxeTableDefines.ColumnInfo | null = null
|
|
4197
|
+
const colRest = dragCol ? fullColumnIdData[dragCol.id] : null
|
|
4198
|
+
let defPos: 'left' | 'right' = 'left'
|
|
4199
|
+
if (XEUtils.isNumber(targetFieldOrColumn)) {
|
|
4200
|
+
if (colRest && targetFieldOrColumn) {
|
|
4201
|
+
let currList = colRest.items
|
|
4202
|
+
let offsetIndex = colRest._index + targetFieldOrColumn
|
|
4203
|
+
if (isCrossDrag) {
|
|
4204
|
+
currList = visibleColumn
|
|
4205
|
+
offsetIndex = colRest._index + targetFieldOrColumn
|
|
4206
|
+
}
|
|
4207
|
+
if (offsetIndex > 0 && offsetIndex < currList.length - 1) {
|
|
4208
|
+
prevDragCol = currList[offsetIndex]
|
|
4209
|
+
}
|
|
4210
|
+
if (targetFieldOrColumn > 0) {
|
|
4211
|
+
defPos = 'right'
|
|
4212
|
+
}
|
|
4213
|
+
}
|
|
4214
|
+
} else {
|
|
4215
|
+
prevDragCol = handleFieldOrColumn($xeTable, targetFieldOrColumn)
|
|
4216
|
+
const targetColRest = prevDragCol ? fullColumnIdData[prevDragCol.id] : null
|
|
4217
|
+
if (colRest && targetColRest) {
|
|
4218
|
+
if (targetColRest._index > colRest._index) {
|
|
4219
|
+
defPos = 'right'
|
|
4220
|
+
}
|
|
4221
|
+
}
|
|
4222
|
+
}
|
|
4223
|
+
return $xeTable.handleColDragSwapEvent(null, true, dragCol, prevDragCol, dragPos || defPos, dragToChild === true)
|
|
4224
|
+
},
|
|
4225
|
+
/**
|
|
4226
|
+
* 移动行到指定行的位置
|
|
4227
|
+
* @param rowidOrRow
|
|
4228
|
+
* @param targetRowidOrRow
|
|
4229
|
+
* @param options
|
|
4230
|
+
*/
|
|
4231
|
+
moveRowTo (rowidOrRow, targetRowidOrRow, options) {
|
|
4232
|
+
const { treeConfig } = props
|
|
4233
|
+
const { fullAllDataRowIdData, afterFullData } = internalData
|
|
4234
|
+
const { dragToChild, dragPos, isCrossDrag } = Object.assign({}, options)
|
|
4235
|
+
const treeOpts = computeTreeOpts.value
|
|
4236
|
+
const dragRow = handleRowidOrRow($xeTable, rowidOrRow)
|
|
4237
|
+
let prevDragRow: any = null
|
|
4238
|
+
let defPos: 'top' | 'bottom' = 'top'
|
|
4239
|
+
const rowRest = dragRow ? fullAllDataRowIdData[getRowid($xeTable, dragRow)] : null
|
|
4240
|
+
if (XEUtils.isNumber(targetRowidOrRow)) {
|
|
4241
|
+
if (rowRest && targetRowidOrRow) {
|
|
4242
|
+
let currList = afterFullData
|
|
4243
|
+
let offsetIndex = rowRest._index + targetRowidOrRow
|
|
4244
|
+
if (treeConfig) {
|
|
4245
|
+
currList = rowRest.items
|
|
4246
|
+
if (treeOpts.transform) {
|
|
4247
|
+
offsetIndex = rowRest.treeIndex + targetRowidOrRow
|
|
4248
|
+
if (isCrossDrag) {
|
|
4249
|
+
currList = afterFullData
|
|
4250
|
+
offsetIndex = rowRest._index + targetRowidOrRow
|
|
4251
|
+
}
|
|
4252
|
+
}
|
|
4253
|
+
}
|
|
4254
|
+
if (offsetIndex >= 0 && offsetIndex <= currList.length - 1) {
|
|
4255
|
+
prevDragRow = currList[offsetIndex]
|
|
4256
|
+
}
|
|
4257
|
+
if (targetRowidOrRow > 0) {
|
|
4258
|
+
defPos = 'bottom'
|
|
4259
|
+
}
|
|
4260
|
+
}
|
|
4261
|
+
} else {
|
|
4262
|
+
prevDragRow = handleRowidOrRow($xeTable, targetRowidOrRow)
|
|
4263
|
+
const targetRowRest = prevDragRow ? fullAllDataRowIdData[getRowid($xeTable, prevDragRow)] : null
|
|
4264
|
+
if (rowRest && targetRowRest) {
|
|
4265
|
+
if (targetRowRest._index > rowRest._index) {
|
|
4266
|
+
defPos = 'bottom'
|
|
4267
|
+
}
|
|
4268
|
+
}
|
|
4269
|
+
}
|
|
4270
|
+
return $xeTable.handleRowDragSwapEvent(null, true, dragRow, prevDragRow, dragPos || defPos, dragToChild === true)
|
|
4271
|
+
},
|
|
4158
4272
|
/**
|
|
4159
4273
|
* 获取表格的全量列
|
|
4160
4274
|
*/
|
|
@@ -4174,6 +4288,7 @@ export default defineComponent({
|
|
|
4174
4288
|
*/
|
|
4175
4289
|
getCheckboxRecords (isFull) {
|
|
4176
4290
|
const { treeConfig } = props
|
|
4291
|
+
const { selectCheckboxMaps } = reactData
|
|
4177
4292
|
const { tableFullData, afterFullData, afterTreeFullData, tableFullTreeData, fullDataRowIdData, afterFullRowMaps } = internalData
|
|
4178
4293
|
const treeOpts = computeTreeOpts.value
|
|
4179
4294
|
const checkboxOpts = computeCheckboxOpts.value
|
|
@@ -4181,15 +4296,15 @@ export default defineComponent({
|
|
|
4181
4296
|
const { checkField } = checkboxOpts
|
|
4182
4297
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
4183
4298
|
let rowList: any[] = []
|
|
4184
|
-
const currTableData = isFull ? (transform ? tableFullTreeData : tableFullData) : (transform ? afterTreeFullData : afterFullData)
|
|
4185
4299
|
if (checkField) {
|
|
4186
4300
|
if (treeConfig) {
|
|
4301
|
+
const currTableData = isFull ? (transform ? tableFullTreeData : tableFullData) : (transform ? afterTreeFullData : afterFullData)
|
|
4187
4302
|
rowList = XEUtils.filterTree(currTableData, row => XEUtils.get(row, checkField), { children: transform ? mapChildrenField : childrenField })
|
|
4188
4303
|
} else {
|
|
4304
|
+
const currTableData = isFull ? tableFullData : afterFullData
|
|
4189
4305
|
rowList = currTableData.filter((row) => XEUtils.get(row, checkField))
|
|
4190
4306
|
}
|
|
4191
4307
|
} else {
|
|
4192
|
-
const { selectCheckboxMaps } = reactData
|
|
4193
4308
|
XEUtils.each(selectCheckboxMaps, (row, rowid) => {
|
|
4194
4309
|
if (isFull) {
|
|
4195
4310
|
if (fullDataRowIdData[rowid]) {
|
|
@@ -4873,6 +4988,7 @@ export default defineComponent({
|
|
|
4873
4988
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
4874
4989
|
const checkboxOpts = computeCheckboxOpts.value
|
|
4875
4990
|
const { checkField, reserve } = checkboxOpts
|
|
4991
|
+
// indeterminateField 仅支持读取
|
|
4876
4992
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
|
|
4877
4993
|
if (checkField) {
|
|
4878
4994
|
const handleClearChecked = (item: any) => {
|
|
@@ -5000,13 +5116,20 @@ export default defineComponent({
|
|
|
5000
5116
|
* 用于当前列,设置某列行为高亮状态
|
|
5001
5117
|
*/
|
|
5002
5118
|
setCurrentColumn (fieldOrColumn) {
|
|
5119
|
+
const { mouseConfig } = props
|
|
5120
|
+
const mouseOpts = computeMouseOpts.value
|
|
5121
|
+
const isMouseSelected = mouseConfig && mouseOpts.selected
|
|
5003
5122
|
const column = handleFieldOrColumn($xeTable, fieldOrColumn)
|
|
5004
5123
|
if (column) {
|
|
5005
|
-
|
|
5006
|
-
tableMethods.clearCurrentColumn()
|
|
5124
|
+
$xeTable.clearCurrentColumn()
|
|
5007
5125
|
reactData.currentColumn = column
|
|
5008
5126
|
}
|
|
5009
|
-
return nextTick()
|
|
5127
|
+
return nextTick().then(() => {
|
|
5128
|
+
// 更新状选中态
|
|
5129
|
+
if (isMouseSelected) {
|
|
5130
|
+
$xeTable.addCellSelectedClass()
|
|
5131
|
+
}
|
|
5132
|
+
})
|
|
5010
5133
|
},
|
|
5011
5134
|
/**
|
|
5012
5135
|
* 用于当前列,手动清空当前高亮的状态
|
|
@@ -5224,7 +5347,13 @@ export default defineComponent({
|
|
|
5224
5347
|
visible: false
|
|
5225
5348
|
})
|
|
5226
5349
|
if (visible) {
|
|
5227
|
-
dispatchEvent('filter-visible', {
|
|
5350
|
+
dispatchEvent('filter-visible', {
|
|
5351
|
+
column,
|
|
5352
|
+
property: column.field,
|
|
5353
|
+
field: column.field,
|
|
5354
|
+
filterList: () => $xeTable.getCheckedFilters(),
|
|
5355
|
+
visible: false
|
|
5356
|
+
}, null)
|
|
5228
5357
|
}
|
|
5229
5358
|
return nextTick()
|
|
5230
5359
|
},
|
|
@@ -5847,7 +5976,13 @@ export default defineComponent({
|
|
|
5847
5976
|
const { id } = props
|
|
5848
5977
|
const customOpts = computeCustomOpts.value
|
|
5849
5978
|
const { collectColumn } = internalData
|
|
5850
|
-
const { checkMethod } = customOpts
|
|
5979
|
+
const { storage, checkMethod } = customOpts
|
|
5980
|
+
const isAllCustom = storage === true
|
|
5981
|
+
const storageOpts: VxeTableDefines.VxeTableCustomStorageObj = isAllCustom ? {} : Object.assign({}, storage || {})
|
|
5982
|
+
const isCustomResizable = isAllCustom || storageOpts.resizable
|
|
5983
|
+
const isCustomVisible = isAllCustom || storageOpts.visible
|
|
5984
|
+
const isCustomFixed = isAllCustom || storageOpts.fixed
|
|
5985
|
+
const isCustomSort = isAllCustom || storageOpts.sort
|
|
5851
5986
|
const resizableData: Record<string, number> = {}
|
|
5852
5987
|
const sortData: Record<string, number> = {}
|
|
5853
5988
|
const visibleData: Record<string, boolean> = {}
|
|
@@ -5867,43 +6002,33 @@ export default defineComponent({
|
|
|
5867
6002
|
let hasFixed = 0
|
|
5868
6003
|
let hasVisible = 0
|
|
5869
6004
|
XEUtils.eachTree(collectColumn, (column, index, items, path, parentColumn) => {
|
|
6005
|
+
const colKey = column.getKey()
|
|
6006
|
+
if (!colKey) {
|
|
6007
|
+
errLog('vxe.error.reqProp', [`${column.getTitle() || column.type || ''} -> column.field=?`])
|
|
6008
|
+
return
|
|
6009
|
+
}
|
|
5870
6010
|
// 只支持一级
|
|
5871
6011
|
if (!parentColumn) {
|
|
5872
|
-
|
|
5873
|
-
|
|
5874
|
-
|
|
5875
|
-
hasSort = 1
|
|
5876
|
-
sortData[colKey] = column.renderSortNumber
|
|
5877
|
-
}
|
|
5878
|
-
})
|
|
5879
|
-
if (column.fixed !== column.defaultFixed) {
|
|
5880
|
-
const colKey = column.getKey()
|
|
5881
|
-
if (colKey) {
|
|
5882
|
-
hasFixed = 1
|
|
5883
|
-
fixedData[colKey] = column.fixed
|
|
5884
|
-
}
|
|
6012
|
+
if (isCustomSort) {
|
|
6013
|
+
hasSort = 1
|
|
6014
|
+
sortData[colKey] = column.renderSortNumber
|
|
5885
6015
|
}
|
|
5886
|
-
|
|
5887
|
-
|
|
5888
|
-
|
|
5889
|
-
if (colKey) {
|
|
5890
|
-
hasResizable = 1
|
|
5891
|
-
resizableData[colKey] = column.renderWidth
|
|
6016
|
+
if (isCustomFixed && column.fixed !== column.defaultFixed) {
|
|
6017
|
+
hasFixed = 1
|
|
6018
|
+
fixedData[colKey] = column.fixed
|
|
5892
6019
|
}
|
|
5893
6020
|
}
|
|
5894
|
-
if (
|
|
6021
|
+
if (isCustomResizable && column.resizeWidth) {
|
|
6022
|
+
hasResizable = 1
|
|
6023
|
+
resizableData[colKey] = column.renderWidth
|
|
6024
|
+
}
|
|
6025
|
+
if (isCustomVisible && (!checkMethod || checkMethod({ column }))) {
|
|
5895
6026
|
if (!column.visible && column.defaultVisible) {
|
|
5896
|
-
|
|
5897
|
-
|
|
5898
|
-
hasVisible = 1
|
|
5899
|
-
visibleData[colKey] = false
|
|
5900
|
-
}
|
|
6027
|
+
hasVisible = 1
|
|
6028
|
+
visibleData[colKey] = false
|
|
5901
6029
|
} else if (column.visible && !column.defaultVisible) {
|
|
5902
|
-
|
|
5903
|
-
|
|
5904
|
-
hasVisible = 1
|
|
5905
|
-
visibleData[colKey] = true
|
|
5906
|
-
}
|
|
6030
|
+
hasVisible = 1
|
|
6031
|
+
visibleData[colKey] = true
|
|
5907
6032
|
}
|
|
5908
6033
|
}
|
|
5909
6034
|
})
|
|
@@ -6146,7 +6271,7 @@ export default defineComponent({
|
|
|
6146
6271
|
// 该行为只对当前激活的表格有效
|
|
6147
6272
|
if (internalData.isActivated) {
|
|
6148
6273
|
tablePrivateMethods.preventEvent(evnt, 'event.keydown', null, () => {
|
|
6149
|
-
const { mouseConfig, keyboardConfig, treeConfig, editConfig, highlightCurrentRow } = props
|
|
6274
|
+
const { mouseConfig, keyboardConfig, treeConfig, editConfig, highlightCurrentRow, highlightCurrentColumn } = props
|
|
6150
6275
|
const { ctxMenuStore, editStore, currentRow } = reactData
|
|
6151
6276
|
const { afterFullData } = internalData
|
|
6152
6277
|
const isMenu = computeIsMenu.value
|
|
@@ -6157,6 +6282,7 @@ export default defineComponent({
|
|
|
6157
6282
|
const treeOpts = computeTreeOpts.value
|
|
6158
6283
|
const menuList = computeMenuList.value
|
|
6159
6284
|
const rowOpts = computeRowOpts.value
|
|
6285
|
+
const columnOpts = computeColumnOpts.value
|
|
6160
6286
|
const { selected, actived } = editStore
|
|
6161
6287
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
6162
6288
|
const keyCode = evnt.keyCode
|
|
@@ -6315,10 +6441,15 @@ export default defineComponent({
|
|
|
6315
6441
|
// 如果按下了方向键
|
|
6316
6442
|
if (selected.row && selected.column) {
|
|
6317
6443
|
$xeTable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt)
|
|
6318
|
-
}
|
|
6319
|
-
|
|
6444
|
+
}
|
|
6445
|
+
// 当前行按键上下移动
|
|
6446
|
+
if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
6320
6447
|
$xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt)
|
|
6321
6448
|
}
|
|
6449
|
+
// 当前行按键左右移动
|
|
6450
|
+
if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
|
|
6451
|
+
$xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt)
|
|
6452
|
+
}
|
|
6322
6453
|
}
|
|
6323
6454
|
} else if (isTab && keyboardConfig && keyboardOpts.isTab) {
|
|
6324
6455
|
// 如果按下了 Tab 键切换
|
|
@@ -6766,7 +6897,15 @@ export default defineComponent({
|
|
|
6766
6897
|
if (el) {
|
|
6767
6898
|
const parentElem = el.parentNode as HTMLElement
|
|
6768
6899
|
const parentPaddingSize = height === '100%' || height === 'auto' ? getPaddingTopBottomSize(parentElem) : 0
|
|
6769
|
-
|
|
6900
|
+
let parentWrapperHeight = 0
|
|
6901
|
+
if (parentElem) {
|
|
6902
|
+
if ($xeGrid && hasClass(parentElem, 'vxe-grid--table-wrapper')) {
|
|
6903
|
+
parentWrapperHeight = $xeGrid.getParentHeight()
|
|
6904
|
+
} else {
|
|
6905
|
+
parentWrapperHeight = parentElem.clientHeight
|
|
6906
|
+
}
|
|
6907
|
+
}
|
|
6908
|
+
return Math.floor(parentWrapperHeight - parentPaddingSize)
|
|
6770
6909
|
}
|
|
6771
6910
|
return 0
|
|
6772
6911
|
},
|
|
@@ -6857,32 +6996,18 @@ export default defineComponent({
|
|
|
6857
6996
|
const treeOpts = computeTreeOpts.value
|
|
6858
6997
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
6859
6998
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
|
|
6860
|
-
const
|
|
6999
|
+
const { lazy } = treeOpts
|
|
6861
7000
|
const fullAllDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = { ...fullAllDataRowIdData } // 存在已删除数据
|
|
6862
7001
|
const fullDataRowIdMaps: Record<string, VxeTableDefines.RowCacheItem> = {}
|
|
6863
7002
|
const treeTempExpandedMaps = { ...treeExpandedMaps }
|
|
6864
|
-
|
|
6865
|
-
|
|
6866
|
-
|
|
6867
|
-
|
|
6868
|
-
if (eqEmptyValue(rowid)) {
|
|
6869
|
-
rowid = getRowUniqueId()
|
|
6870
|
-
XEUtils.set(row, rowkey, rowid)
|
|
6871
|
-
}
|
|
6872
|
-
if (treeConfig && treeOpts.lazy) {
|
|
6873
|
-
const treeExpRest = treeExpandedMaps[rowid]
|
|
6874
|
-
if (row[hasChildField] && XEUtils.isUndefined(row[childrenField])) {
|
|
6875
|
-
row[childrenField] = null
|
|
6876
|
-
}
|
|
6877
|
-
if (treeExpRest) {
|
|
6878
|
-
if (!row[childrenField] || !row[childrenField].length) {
|
|
6879
|
-
delete treeTempExpandedMaps[rowid]
|
|
6880
|
-
}
|
|
6881
|
-
}
|
|
6882
|
-
}
|
|
6883
|
-
let rowRest = fullAllDataRowIdData[rowid]
|
|
7003
|
+
|
|
7004
|
+
const { handleUpdateRowId } = createHandleUpdateRowId($xeTable)
|
|
7005
|
+
const handleRowCache = (row: any, index: number, items: any, currIndex: number, parentRow: any, rowid: string, level: number, seq: string | number) => {
|
|
7006
|
+
let rowRest = fullAllDataRowIdMaps[rowid]
|
|
6884
7007
|
if (!rowRest) {
|
|
6885
7008
|
rowRest = { row, rowid, seq, index: -1, _index: -1, $index: -1, treeIndex: index, items, parent: parentRow, level, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 }
|
|
7009
|
+
fullDataRowIdMaps[rowid] = rowRest
|
|
7010
|
+
fullAllDataRowIdMaps[rowid] = rowRest
|
|
6886
7011
|
}
|
|
6887
7012
|
rowRest.treeLoaded = false
|
|
6888
7013
|
rowRest.expandLoaded = false
|
|
@@ -6891,15 +7016,35 @@ export default defineComponent({
|
|
|
6891
7016
|
rowRest.items = items
|
|
6892
7017
|
rowRest.parent = parentRow
|
|
6893
7018
|
rowRest.level = level
|
|
6894
|
-
rowRest.index =
|
|
7019
|
+
rowRest.index = currIndex
|
|
7020
|
+
rowRest.treeIndex = index
|
|
7021
|
+
|
|
6895
7022
|
fullDataRowIdMaps[rowid] = rowRest
|
|
6896
7023
|
fullAllDataRowIdMaps[rowid] = rowRest
|
|
6897
7024
|
}
|
|
7025
|
+
|
|
6898
7026
|
if (treeConfig) {
|
|
6899
|
-
XEUtils.eachTree(tableFullTreeData,
|
|
7027
|
+
XEUtils.eachTree(tableFullTreeData, (row, index, items, path, parentRow, nodes) => {
|
|
7028
|
+
const rowid = handleUpdateRowId(row)
|
|
7029
|
+
if (treeConfig && lazy) {
|
|
7030
|
+
const treeExpRest = treeTempExpandedMaps[rowid]
|
|
7031
|
+
if (row[hasChildField] && row[childrenField] === undefined) {
|
|
7032
|
+
row[childrenField] = null
|
|
7033
|
+
}
|
|
7034
|
+
if (treeExpRest) {
|
|
7035
|
+
if (!row[childrenField] || !row[childrenField].length) {
|
|
7036
|
+
delete treeTempExpandedMaps[rowid]
|
|
7037
|
+
}
|
|
7038
|
+
}
|
|
7039
|
+
}
|
|
7040
|
+
handleRowCache(row, index, items, parentRow ? -1 : index, parentRow, rowid, nodes.length - 1, toTreePathSeq(path))
|
|
7041
|
+
}, { children: childrenField })
|
|
6900
7042
|
} else {
|
|
6901
|
-
tableFullData.forEach(
|
|
7043
|
+
tableFullData.forEach((row, index, items) => {
|
|
7044
|
+
handleRowCache(row, index, items, index, null, handleUpdateRowId(row), 0, index + 1)
|
|
7045
|
+
})
|
|
6902
7046
|
}
|
|
7047
|
+
|
|
6903
7048
|
internalData.fullDataRowIdData = fullDataRowIdMaps
|
|
6904
7049
|
internalData.fullAllDataRowIdData = fullAllDataRowIdMaps
|
|
6905
7050
|
reactData.treeExpandedMaps = treeTempExpandedMaps
|
|
@@ -6907,17 +7052,12 @@ export default defineComponent({
|
|
|
6907
7052
|
cacheSourceMap (fullData) {
|
|
6908
7053
|
const { treeConfig } = props
|
|
6909
7054
|
const treeOpts = computeTreeOpts.value
|
|
6910
|
-
let { sourceDataRowIdData } = internalData
|
|
6911
7055
|
const sourceData = XEUtils.clone(fullData, true)
|
|
6912
|
-
const
|
|
6913
|
-
|
|
7056
|
+
const { handleUpdateRowId } = createHandleUpdateRowId($xeTable)
|
|
7057
|
+
const sourceRowIdData: Record<string, any> = {}
|
|
6914
7058
|
const handleSourceRow = (row: any) => {
|
|
6915
|
-
|
|
6916
|
-
|
|
6917
|
-
rowid = getRowUniqueId()
|
|
6918
|
-
XEUtils.set(row, rowkey, rowid)
|
|
6919
|
-
}
|
|
6920
|
-
sourceDataRowIdData[rowid] = row
|
|
7059
|
+
const rowid = handleUpdateRowId(row)
|
|
7060
|
+
sourceRowIdData[rowid] = row
|
|
6921
7061
|
}
|
|
6922
7062
|
// 源数据缓存
|
|
6923
7063
|
if (treeConfig) {
|
|
@@ -6926,6 +7066,7 @@ export default defineComponent({
|
|
|
6926
7066
|
} else {
|
|
6927
7067
|
sourceData.forEach(handleSourceRow)
|
|
6928
7068
|
}
|
|
7069
|
+
internalData.sourceDataRowIdData = sourceRowIdData
|
|
6929
7070
|
internalData.tableSourceData = sourceData
|
|
6930
7071
|
},
|
|
6931
7072
|
/**
|
|
@@ -7372,8 +7513,21 @@ export default defineComponent({
|
|
|
7372
7513
|
}
|
|
7373
7514
|
// 兼容老版本
|
|
7374
7515
|
|
|
7375
|
-
let rest
|
|
7376
|
-
|
|
7516
|
+
let rest = null
|
|
7517
|
+
let isStop = false
|
|
7518
|
+
for (let i = 0; i < evntList.length; i++) {
|
|
7519
|
+
const func = evntList[i]
|
|
7520
|
+
const fnRest = func(Object.assign({ $grid: $xeGrid, $table: $xeTable, $event: evnt }, args))
|
|
7521
|
+
if (fnRest === false) {
|
|
7522
|
+
isStop = true
|
|
7523
|
+
break
|
|
7524
|
+
} else if (fnRest && fnRest.status === false) {
|
|
7525
|
+
rest = fnRest.result
|
|
7526
|
+
isStop = true
|
|
7527
|
+
break
|
|
7528
|
+
}
|
|
7529
|
+
}
|
|
7530
|
+
if (!isStop) {
|
|
7377
7531
|
if (next) {
|
|
7378
7532
|
rest = next()
|
|
7379
7533
|
}
|
|
@@ -7399,10 +7553,11 @@ export default defineComponent({
|
|
|
7399
7553
|
}
|
|
7400
7554
|
// 树结构
|
|
7401
7555
|
if (treeConfig) {
|
|
7556
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
7402
7557
|
const childRowMaps: Record<string, number> = {}
|
|
7403
7558
|
const childRowList: any[][] = []
|
|
7404
7559
|
XEUtils.eachTree(afterTreeFullData, (row) => {
|
|
7405
|
-
const rowid =
|
|
7560
|
+
const rowid = handleGetRowId(row)
|
|
7406
7561
|
const childList = row[transform ? mapChildrenField : childrenField]
|
|
7407
7562
|
if (childList && childList.length && !childRowMaps[rowid]) {
|
|
7408
7563
|
childRowMaps[rowid] = 1
|
|
@@ -7419,7 +7574,7 @@ export default defineComponent({
|
|
|
7419
7574
|
childList.forEach(
|
|
7420
7575
|
checkMethod
|
|
7421
7576
|
? (item) => {
|
|
7422
|
-
const childRowid =
|
|
7577
|
+
const childRowid = handleGetRowId(item)
|
|
7423
7578
|
const isSelect = checkField ? XEUtils.get(item, checkField) : selectRowMaps[childRowid]
|
|
7424
7579
|
if (checkMethod({ row: item })) {
|
|
7425
7580
|
if (isSelect) {
|
|
@@ -7437,7 +7592,7 @@ export default defineComponent({
|
|
|
7437
7592
|
}
|
|
7438
7593
|
}
|
|
7439
7594
|
: item => {
|
|
7440
|
-
const childRowid =
|
|
7595
|
+
const childRowid = handleGetRowId(item)
|
|
7441
7596
|
const isSelect = checkField ? XEUtils.get(item, checkField) : selectRowMaps[childRowid]
|
|
7442
7597
|
if (isSelect) {
|
|
7443
7598
|
sLen++
|
|
@@ -7484,6 +7639,7 @@ export default defineComponent({
|
|
|
7484
7639
|
const checkboxOpts = computeCheckboxOpts.value
|
|
7485
7640
|
const { checkField, checkMethod, showReserveStatus } = checkboxOpts
|
|
7486
7641
|
const { afterFullData, afterTreeFullData, checkboxReserveRowMap } = internalData
|
|
7642
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
7487
7643
|
|
|
7488
7644
|
let sLen = 0 // 已选
|
|
7489
7645
|
let hLen = 0 // 半选
|
|
@@ -7492,7 +7648,7 @@ export default defineComponent({
|
|
|
7492
7648
|
const rootList = (treeConfig ? afterTreeFullData : afterFullData)
|
|
7493
7649
|
rootList.forEach(checkMethod
|
|
7494
7650
|
? row => {
|
|
7495
|
-
const childRowid =
|
|
7651
|
+
const childRowid = handleGetRowId(row)
|
|
7496
7652
|
const selected = checkField ? XEUtils.get(row, checkField) : selectCheckboxMaps[childRowid]
|
|
7497
7653
|
if (checkMethod({ row })) {
|
|
7498
7654
|
if (selected) {
|
|
@@ -7510,7 +7666,7 @@ export default defineComponent({
|
|
|
7510
7666
|
}
|
|
7511
7667
|
}
|
|
7512
7668
|
: row => {
|
|
7513
|
-
const childRowid =
|
|
7669
|
+
const childRowid = handleGetRowId(row)
|
|
7514
7670
|
const selected = checkField ? XEUtils.get(row, checkField) : selectCheckboxMaps[childRowid]
|
|
7515
7671
|
if (selected) {
|
|
7516
7672
|
sLen++
|
|
@@ -7548,6 +7704,8 @@ export default defineComponent({
|
|
|
7548
7704
|
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
7549
7705
|
const checkboxOpts = computeCheckboxOpts.value
|
|
7550
7706
|
const { checkField, checkStrictly, checkMethod } = checkboxOpts
|
|
7707
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
7708
|
+
// indeterminateField 仅支持读取
|
|
7551
7709
|
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
|
|
7552
7710
|
if (checkField) {
|
|
7553
7711
|
// 树结构
|
|
@@ -7581,7 +7739,7 @@ export default defineComponent({
|
|
|
7581
7739
|
if (treeConfig && !checkStrictly) {
|
|
7582
7740
|
// 更新子节点状态
|
|
7583
7741
|
XEUtils.eachTree(rows, (row) => {
|
|
7584
|
-
const rowid =
|
|
7742
|
+
const rowid = handleGetRowId(row)
|
|
7585
7743
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
7586
7744
|
if (checked) {
|
|
7587
7745
|
selectRowMaps[rowid] = row
|
|
@@ -7599,7 +7757,7 @@ export default defineComponent({
|
|
|
7599
7757
|
|
|
7600
7758
|
// 列表
|
|
7601
7759
|
rows.forEach(row => {
|
|
7602
|
-
const rowid =
|
|
7760
|
+
const rowid = handleGetRowId(row)
|
|
7603
7761
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
7604
7762
|
if (checked) {
|
|
7605
7763
|
if (!selectRowMaps[rowid]) {
|
|
@@ -7724,17 +7882,18 @@ export default defineComponent({
|
|
|
7724
7882
|
const { _lastResizeTime } = internalData
|
|
7725
7883
|
const sortOpts = computeSortOpts.value
|
|
7726
7884
|
const columnOpts = computeColumnOpts.value
|
|
7885
|
+
const currentColumnOpts = computeCurrentColumnOpts.value
|
|
7727
7886
|
const { column } = params
|
|
7728
7887
|
const cell = evnt.currentTarget
|
|
7729
7888
|
const triggerResizable = _lastResizeTime && _lastResizeTime > Date.now() - 300
|
|
7730
7889
|
const triggerSort = getEventTargetNode(evnt, cell, 'vxe-cell--sort').flag
|
|
7731
7890
|
const triggerFilter = getEventTargetNode(evnt, cell, 'vxe-cell--filter').flag
|
|
7732
7891
|
if (sortOpts.trigger === 'cell' && !(triggerResizable || triggerSort || triggerFilter)) {
|
|
7733
|
-
|
|
7892
|
+
$xeTable.triggerSortEvent(evnt, column, getNextSortOrder(column))
|
|
7734
7893
|
}
|
|
7735
7894
|
dispatchEvent('header-cell-click', Object.assign({ triggerResizable, triggerSort, triggerFilter, cell }, params), evnt)
|
|
7736
|
-
if (columnOpts.isCurrent || props.highlightCurrentColumn) {
|
|
7737
|
-
|
|
7895
|
+
if ((columnOpts.isCurrent || props.highlightCurrentColumn) && (!currentColumnOpts.trigger || ['header', 'default'].includes(currentColumnOpts.trigger))) {
|
|
7896
|
+
$xeTable.triggerCurrentColumnEvent(evnt, params)
|
|
7738
7897
|
}
|
|
7739
7898
|
},
|
|
7740
7899
|
triggerHeaderCellDblclickEvent (evnt, params) {
|
|
@@ -7746,7 +7905,7 @@ export default defineComponent({
|
|
|
7746
7905
|
* 如果是双击模式,则单击后选中状态
|
|
7747
7906
|
*/
|
|
7748
7907
|
triggerCellClickEvent (evnt, params) {
|
|
7749
|
-
const { highlightCurrentRow, editConfig } = props
|
|
7908
|
+
const { highlightCurrentRow, highlightCurrentColumn, editConfig } = props
|
|
7750
7909
|
const { editStore, isDragResize } = reactData
|
|
7751
7910
|
if (isDragResize) {
|
|
7752
7911
|
return
|
|
@@ -7758,6 +7917,8 @@ export default defineComponent({
|
|
|
7758
7917
|
const checkboxOpts = computeCheckboxOpts.value
|
|
7759
7918
|
const keyboardOpts = computeKeyboardOpts.value
|
|
7760
7919
|
const rowOpts = computeRowOpts.value
|
|
7920
|
+
const columnOpts = computeColumnOpts.value
|
|
7921
|
+
const currentColumnOpts = computeCurrentColumnOpts.value
|
|
7761
7922
|
const { actived, focused } = editStore
|
|
7762
7923
|
const { row, column } = params
|
|
7763
7924
|
const { type, treeNode } = column
|
|
@@ -7773,29 +7934,35 @@ export default defineComponent({
|
|
|
7773
7934
|
if (!triggerCheckbox && !triggerRadio) {
|
|
7774
7935
|
// 如果是展开行
|
|
7775
7936
|
if (!triggerExpandNode && (expandOpts.trigger === 'row' || (isExpandType && expandOpts.trigger === 'cell'))) {
|
|
7776
|
-
|
|
7937
|
+
$xeTable.triggerRowExpandEvent(evnt, params)
|
|
7777
7938
|
}
|
|
7778
7939
|
// 如果是树形表格
|
|
7779
7940
|
if ((treeOpts.trigger === 'row' || (treeNode && treeOpts.trigger === 'cell'))) {
|
|
7780
|
-
|
|
7941
|
+
$xeTable.triggerTreeExpandEvent(evnt, params)
|
|
7781
7942
|
}
|
|
7782
7943
|
}
|
|
7783
7944
|
// 如果点击了树节点
|
|
7784
7945
|
if (!triggerTreeNode) {
|
|
7785
7946
|
if (!triggerExpandNode) {
|
|
7786
|
-
//
|
|
7947
|
+
// 如果是当前行
|
|
7787
7948
|
if (rowOpts.isCurrent || highlightCurrentRow) {
|
|
7788
7949
|
if (!triggerCheckbox && !triggerRadio) {
|
|
7789
|
-
|
|
7950
|
+
$xeTable.triggerCurrentRowEvent(evnt, params)
|
|
7951
|
+
}
|
|
7952
|
+
}
|
|
7953
|
+
// 如果是当前列
|
|
7954
|
+
if ((columnOpts.isCurrent || highlightCurrentColumn) && (!currentColumnOpts.trigger || ['cell', 'default'].includes(currentColumnOpts.trigger))) {
|
|
7955
|
+
if (!triggerCheckbox && !triggerRadio) {
|
|
7956
|
+
$xeTable.triggerCurrentColumnEvent(evnt, params)
|
|
7790
7957
|
}
|
|
7791
7958
|
}
|
|
7792
7959
|
// 如果是单选框
|
|
7793
7960
|
if (!triggerRadio && (radioOpts.trigger === 'row' || (isRadioType && radioOpts.trigger === 'cell'))) {
|
|
7794
|
-
|
|
7961
|
+
$xeTable.triggerRadioRowEvent(evnt, params)
|
|
7795
7962
|
}
|
|
7796
7963
|
// 如果是复选框
|
|
7797
7964
|
if (!triggerCheckbox && (checkboxOpts.trigger === 'row' || (isCheckboxType && checkboxOpts.trigger === 'cell'))) {
|
|
7798
|
-
|
|
7965
|
+
$xeTable.handleToggleCheckRowEvent(evnt, params)
|
|
7799
7966
|
}
|
|
7800
7967
|
}
|
|
7801
7968
|
// 如果设置了单元格选中功能,则不会使用点击事件去处理(只能支持双击模式)
|
|
@@ -7891,36 +8058,38 @@ export default defineComponent({
|
|
|
7891
8058
|
}
|
|
7892
8059
|
},
|
|
7893
8060
|
triggerCheckRowEvent (evnt: MouseEvent, params, checked) {
|
|
7894
|
-
const checkboxOpts = computeCheckboxOpts.value
|
|
7895
8061
|
const { row } = params
|
|
7896
8062
|
const { afterFullData } = internalData
|
|
8063
|
+
const checkboxOpts = computeCheckboxOpts.value
|
|
7897
8064
|
const { checkMethod, trigger } = checkboxOpts
|
|
7898
8065
|
if (trigger === 'manual') {
|
|
7899
8066
|
return
|
|
7900
8067
|
}
|
|
7901
8068
|
evnt.stopPropagation()
|
|
7902
8069
|
if (checkboxOpts.isShiftKey && evnt.shiftKey && !props.treeConfig) {
|
|
7903
|
-
const checkboxRecords =
|
|
8070
|
+
const checkboxRecords = $xeTable.getCheckboxRecords()
|
|
7904
8071
|
if (checkboxRecords.length) {
|
|
7905
8072
|
const firstRow = checkboxRecords[0]
|
|
7906
|
-
const _rowIndex =
|
|
7907
|
-
const _firstRowIndex =
|
|
8073
|
+
const _rowIndex = $xeTable.getVTRowIndex(row)
|
|
8074
|
+
const _firstRowIndex = $xeTable.getVTRowIndex(firstRow)
|
|
7908
8075
|
if (_rowIndex !== _firstRowIndex) {
|
|
7909
|
-
|
|
8076
|
+
$xeTable.setAllCheckboxRow(false)
|
|
7910
8077
|
const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1)
|
|
7911
|
-
|
|
8078
|
+
nextTick(() => {
|
|
8079
|
+
handleCheckedCheckboxRow(rangeRows, true, false)
|
|
8080
|
+
})
|
|
7912
8081
|
dispatchEvent('checkbox-range-select', Object.assign({ rangeRecords: rangeRows }, params), evnt)
|
|
7913
8082
|
return
|
|
7914
8083
|
}
|
|
7915
8084
|
}
|
|
7916
8085
|
}
|
|
7917
8086
|
if (!checkMethod || checkMethod({ row })) {
|
|
7918
|
-
|
|
7919
|
-
|
|
8087
|
+
$xeTable.handleBatchSelectRows([row], checked)
|
|
8088
|
+
$xeTable.checkSelectionStatus()
|
|
7920
8089
|
dispatchEvent('checkbox-change', Object.assign({
|
|
7921
|
-
records:
|
|
7922
|
-
reserves:
|
|
7923
|
-
indeterminates:
|
|
8090
|
+
records: () => $xeTable.getCheckboxRecords(),
|
|
8091
|
+
reserves: () => $xeTable.getCheckboxReserveRecords(),
|
|
8092
|
+
indeterminates: () => $xeTable.getCheckboxIndeterminateRecords(),
|
|
7924
8093
|
checked
|
|
7925
8094
|
}, params), evnt)
|
|
7926
8095
|
}
|
|
@@ -8185,6 +8354,9 @@ export default defineComponent({
|
|
|
8185
8354
|
const { afterFullData, tableFullData } = internalData
|
|
8186
8355
|
const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null)
|
|
8187
8356
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0
|
|
8357
|
+
const errRest = {
|
|
8358
|
+
status: false
|
|
8359
|
+
}
|
|
8188
8360
|
if (prevDragRow && dragRow) {
|
|
8189
8361
|
// 判断是否有拖动
|
|
8190
8362
|
if (prevDragRow !== dragRow) {
|
|
@@ -8199,7 +8371,7 @@ export default defineComponent({
|
|
|
8199
8371
|
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild
|
|
8200
8372
|
return Promise.resolve(dEndMethod ? dEndMethod(dragParams) : true).then((status) => {
|
|
8201
8373
|
if (!status) {
|
|
8202
|
-
return
|
|
8374
|
+
return errRest
|
|
8203
8375
|
}
|
|
8204
8376
|
|
|
8205
8377
|
let oafIndex = -1
|
|
@@ -8230,11 +8402,11 @@ export default defineComponent({
|
|
|
8230
8402
|
if (isPeerDrag && !isCrossDrag) {
|
|
8231
8403
|
if (oldRest.row[parentField] !== newRest.row[parentField]) {
|
|
8232
8404
|
// 非同级
|
|
8233
|
-
return
|
|
8405
|
+
return errRest
|
|
8234
8406
|
}
|
|
8235
8407
|
} else {
|
|
8236
8408
|
if (!isCrossDrag) {
|
|
8237
|
-
return
|
|
8409
|
+
return errRest
|
|
8238
8410
|
}
|
|
8239
8411
|
if (oldAllMaps[newRowid]) {
|
|
8240
8412
|
isSelfToChildStatus = true
|
|
@@ -8245,7 +8417,7 @@ export default defineComponent({
|
|
|
8245
8417
|
content: getI18n('vxe.error.treeDragChild')
|
|
8246
8418
|
})
|
|
8247
8419
|
}
|
|
8248
|
-
return
|
|
8420
|
+
return errRest
|
|
8249
8421
|
}
|
|
8250
8422
|
}
|
|
8251
8423
|
}
|
|
@@ -8253,13 +8425,13 @@ export default defineComponent({
|
|
|
8253
8425
|
// 子到根
|
|
8254
8426
|
|
|
8255
8427
|
if (!isCrossDrag) {
|
|
8256
|
-
return
|
|
8428
|
+
return errRest
|
|
8257
8429
|
}
|
|
8258
8430
|
} else if (newLevel) {
|
|
8259
8431
|
// 根到子
|
|
8260
8432
|
|
|
8261
8433
|
if (!isCrossDrag) {
|
|
8262
|
-
return
|
|
8434
|
+
return errRest
|
|
8263
8435
|
}
|
|
8264
8436
|
if (oldAllMaps[newRowid]) {
|
|
8265
8437
|
isSelfToChildStatus = true
|
|
@@ -8270,7 +8442,7 @@ export default defineComponent({
|
|
|
8270
8442
|
content: getI18n('vxe.error.treeDragChild')
|
|
8271
8443
|
})
|
|
8272
8444
|
}
|
|
8273
|
-
return
|
|
8445
|
+
return errRest
|
|
8274
8446
|
}
|
|
8275
8447
|
}
|
|
8276
8448
|
} else {
|
|
@@ -8334,28 +8506,36 @@ export default defineComponent({
|
|
|
8334
8506
|
if (reactData.scrollYLoad) {
|
|
8335
8507
|
$xeTable.updateScrollYSpace()
|
|
8336
8508
|
}
|
|
8337
|
-
|
|
8509
|
+
|
|
8510
|
+
if (evnt) {
|
|
8511
|
+
dispatchEvent('row-dragend', {
|
|
8512
|
+
oldRow: dragRow,
|
|
8513
|
+
newRow: prevDragRow,
|
|
8514
|
+
dragRow,
|
|
8515
|
+
dragPos: prevDragPos as any,
|
|
8516
|
+
dragToChild: isDragToChildFlag,
|
|
8517
|
+
offsetIndex: dragOffsetIndex,
|
|
8518
|
+
_index: {
|
|
8519
|
+
newIndex: nafIndex,
|
|
8520
|
+
oldIndex: oafIndex
|
|
8521
|
+
}
|
|
8522
|
+
}, evnt)
|
|
8523
|
+
}
|
|
8524
|
+
|
|
8525
|
+
return nextTick().then(() => {
|
|
8338
8526
|
$xeTable.updateCellAreas()
|
|
8339
8527
|
$xeTable.recalculate()
|
|
8340
|
-
})
|
|
8341
|
-
|
|
8342
|
-
|
|
8343
|
-
oldRow: dragRow,
|
|
8344
|
-
newRow: prevDragRow,
|
|
8345
|
-
dragRow,
|
|
8346
|
-
dragPos: prevDragPos as any,
|
|
8347
|
-
dragToChild: isDragToChildFlag,
|
|
8348
|
-
offsetIndex: dragOffsetIndex,
|
|
8349
|
-
_index: {
|
|
8350
|
-
newIndex: nafIndex,
|
|
8351
|
-
oldIndex: oafIndex
|
|
8528
|
+
}).then(() => {
|
|
8529
|
+
return {
|
|
8530
|
+
status: true
|
|
8352
8531
|
}
|
|
8353
|
-
}
|
|
8532
|
+
})
|
|
8354
8533
|
}).catch(() => {
|
|
8534
|
+
return errRest
|
|
8355
8535
|
})
|
|
8356
8536
|
}
|
|
8357
8537
|
}
|
|
8358
|
-
return Promise.resolve()
|
|
8538
|
+
return Promise.resolve(errRest)
|
|
8359
8539
|
},
|
|
8360
8540
|
handleRowDragDragendEvent (evnt) {
|
|
8361
8541
|
const { treeConfig } = props
|
|
@@ -8480,6 +8660,9 @@ export default defineComponent({
|
|
|
8480
8660
|
const { isPeerDrag, isCrossDrag, isSelfToChildDrag, isToChildDrag, dragEndMethod, dragToChildMethod } = columnDragOpts
|
|
8481
8661
|
const { collectColumn } = internalData
|
|
8482
8662
|
const dragOffsetIndex = prevDragPos === 'right' ? 1 : 0
|
|
8663
|
+
const errRest = {
|
|
8664
|
+
status: false
|
|
8665
|
+
}
|
|
8483
8666
|
if (prevDragCol && dragCol) {
|
|
8484
8667
|
// 判断是否有拖动
|
|
8485
8668
|
if (prevDragCol !== dragCol) {
|
|
@@ -8496,7 +8679,7 @@ export default defineComponent({
|
|
|
8496
8679
|
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild
|
|
8497
8680
|
return Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then((status) => {
|
|
8498
8681
|
if (!status) {
|
|
8499
|
-
return
|
|
8682
|
+
return errRest
|
|
8500
8683
|
}
|
|
8501
8684
|
|
|
8502
8685
|
let oafIndex = -1
|
|
@@ -8515,11 +8698,11 @@ export default defineComponent({
|
|
|
8515
8698
|
if (isPeerDrag && !isCrossDrag) {
|
|
8516
8699
|
if (dragColumn.parentId !== newColumn.parentId) {
|
|
8517
8700
|
// 非同级
|
|
8518
|
-
return
|
|
8701
|
+
return errRest
|
|
8519
8702
|
}
|
|
8520
8703
|
} else {
|
|
8521
8704
|
if (!isCrossDrag) {
|
|
8522
|
-
return
|
|
8705
|
+
return errRest
|
|
8523
8706
|
}
|
|
8524
8707
|
|
|
8525
8708
|
if (oldAllMaps[newColumn.id]) {
|
|
@@ -8531,7 +8714,7 @@ export default defineComponent({
|
|
|
8531
8714
|
content: getI18n('vxe.error.treeDragChild')
|
|
8532
8715
|
})
|
|
8533
8716
|
}
|
|
8534
|
-
return
|
|
8717
|
+
return errRest
|
|
8535
8718
|
}
|
|
8536
8719
|
}
|
|
8537
8720
|
}
|
|
@@ -8539,13 +8722,13 @@ export default defineComponent({
|
|
|
8539
8722
|
// 子到根
|
|
8540
8723
|
|
|
8541
8724
|
if (!isCrossDrag) {
|
|
8542
|
-
return
|
|
8725
|
+
return errRest
|
|
8543
8726
|
}
|
|
8544
8727
|
} else if (newColumn.parentId) {
|
|
8545
8728
|
// 根到子
|
|
8546
8729
|
|
|
8547
8730
|
if (!isCrossDrag) {
|
|
8548
|
-
return
|
|
8731
|
+
return errRest
|
|
8549
8732
|
}
|
|
8550
8733
|
if (oldAllMaps[newColumn.id]) {
|
|
8551
8734
|
isSelfToChildStatus = true
|
|
@@ -8556,7 +8739,7 @@ export default defineComponent({
|
|
|
8556
8739
|
content: getI18n('vxe.error.treeDragChild')
|
|
8557
8740
|
})
|
|
8558
8741
|
}
|
|
8559
|
-
return
|
|
8742
|
+
return errRest
|
|
8560
8743
|
}
|
|
8561
8744
|
}
|
|
8562
8745
|
} else {
|
|
@@ -8620,27 +8803,34 @@ export default defineComponent({
|
|
|
8620
8803
|
}
|
|
8621
8804
|
}
|
|
8622
8805
|
|
|
8623
|
-
|
|
8624
|
-
|
|
8625
|
-
|
|
8626
|
-
|
|
8627
|
-
|
|
8628
|
-
|
|
8629
|
-
|
|
8630
|
-
|
|
8631
|
-
|
|
8632
|
-
|
|
8633
|
-
|
|
8634
|
-
|
|
8806
|
+
if (evnt) {
|
|
8807
|
+
dispatchEvent('column-dragend', {
|
|
8808
|
+
oldColumn: dragColumn,
|
|
8809
|
+
newColumn,
|
|
8810
|
+
dragColumn,
|
|
8811
|
+
dragPos: prevDragPos,
|
|
8812
|
+
dragToChild: isDragToChildFlag,
|
|
8813
|
+
offsetIndex: dragOffsetIndex,
|
|
8814
|
+
_index: {
|
|
8815
|
+
newIndex: nafIndex,
|
|
8816
|
+
oldIndex: oafIndex
|
|
8817
|
+
}
|
|
8818
|
+
}, evnt)
|
|
8819
|
+
}
|
|
8635
8820
|
|
|
8636
8821
|
if (isSyncColumn) {
|
|
8637
8822
|
$xeTable.handleColDragSwapColumn()
|
|
8638
8823
|
}
|
|
8824
|
+
|
|
8825
|
+
return {
|
|
8826
|
+
status: true
|
|
8827
|
+
}
|
|
8639
8828
|
}).catch(() => {
|
|
8829
|
+
return errRest
|
|
8640
8830
|
})
|
|
8641
8831
|
}
|
|
8642
8832
|
}
|
|
8643
|
-
return Promise.resolve()
|
|
8833
|
+
return Promise.resolve(errRest)
|
|
8644
8834
|
},
|
|
8645
8835
|
handleHeaderCellDragDragendEvent (evnt) {
|
|
8646
8836
|
const { dragCol } = reactData
|
|
@@ -9033,10 +9223,10 @@ export default defineComponent({
|
|
|
9033
9223
|
}
|
|
9034
9224
|
|
|
9035
9225
|
const { highlightHoverRow } = tableProps
|
|
9036
|
-
const { scrollXLoad, scrollYLoad } = reactData
|
|
9226
|
+
const { scrollXLoad, scrollYLoad, expandColumn } = reactData
|
|
9037
9227
|
const leftFixedWidth = computeLeftFixedWidth.value
|
|
9038
9228
|
const rightFixedWidth = computeRightFixedWidth.value
|
|
9039
|
-
if (!(scrollYLoad || leftFixedWidth || rightFixedWidth)) {
|
|
9229
|
+
if (!(scrollYLoad || leftFixedWidth || rightFixedWidth || expandColumn)) {
|
|
9040
9230
|
return
|
|
9041
9231
|
}
|
|
9042
9232
|
|