vxe-table 3.21.13 → 3.21.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/locale/lang/ar-EG.js +7 -0
- package/es/locale/lang/de-DE.js +7 -0
- package/es/locale/lang/en-US.js +7 -0
- package/es/locale/lang/es-ES.js +7 -0
- package/es/locale/lang/fr-FR.js +7 -0
- package/es/locale/lang/hu-HU.js +7 -0
- package/es/locale/lang/hy-AM.js +7 -0
- package/es/locale/lang/id-ID.js +7 -0
- package/es/locale/lang/it-IT.js +7 -0
- package/es/locale/lang/ja-JP.js +7 -0
- package/es/locale/lang/ko-KR.js +7 -0
- package/es/locale/lang/ms-MY.js +7 -0
- package/es/locale/lang/nb-NO.js +7 -0
- package/es/locale/lang/pt-BR.js +7 -0
- package/es/locale/lang/ru-RU.js +7 -0
- package/es/locale/lang/th-TH.js +7 -0
- package/es/locale/lang/ug-CN.js +7 -0
- package/es/locale/lang/uk-UA.js +7 -0
- package/es/locale/lang/uz-UZ.js +7 -0
- package/es/locale/lang/vi-VN.js +7 -0
- package/es/locale/lang/zh-CHT.js +7 -0
- package/es/locale/lang/zh-CN.js +7 -0
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/edit/mixin.js +5 -5
- package/es/table/render/index.js +46 -18
- package/es/table/src/methods.js +206 -61
- package/es/table/src/table.js +14 -7
- package/es/table/style.css +10 -5
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +10 -5
- 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 +104 -33
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +7 -0
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/ar-EG.umd.js +7 -0
- package/lib/locale/lang/de-DE.js +7 -0
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/de-DE.umd.js +7 -0
- package/lib/locale/lang/en-US.js +7 -0
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +7 -0
- package/lib/locale/lang/es-ES.js +7 -0
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +7 -0
- package/lib/locale/lang/fr-FR.js +7 -0
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/fr-FR.umd.js +7 -0
- package/lib/locale/lang/hu-HU.js +7 -0
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +7 -0
- package/lib/locale/lang/hy-AM.js +7 -0
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/hy-AM.umd.js +7 -0
- package/lib/locale/lang/id-ID.js +7 -0
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/id-ID.umd.js +7 -0
- package/lib/locale/lang/it-IT.js +7 -0
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/it-IT.umd.js +7 -0
- package/lib/locale/lang/ja-JP.js +7 -0
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +7 -0
- package/lib/locale/lang/ko-KR.js +7 -0
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +7 -0
- package/lib/locale/lang/ms-MY.js +7 -0
- package/lib/locale/lang/ms-MY.min.js +1 -1
- package/lib/locale/lang/ms-MY.umd.js +7 -0
- package/lib/locale/lang/nb-NO.js +7 -0
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/nb-NO.umd.js +7 -0
- package/lib/locale/lang/pt-BR.js +7 -0
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +7 -0
- package/lib/locale/lang/ru-RU.js +7 -0
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +7 -0
- package/lib/locale/lang/th-TH.js +7 -0
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/th-TH.umd.js +7 -0
- package/lib/locale/lang/ug-CN.js +7 -0
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/ug-CN.umd.js +7 -0
- package/lib/locale/lang/uk-UA.js +7 -0
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +7 -0
- package/lib/locale/lang/uz-UZ.js +7 -0
- package/lib/locale/lang/uz-UZ.min.js +1 -1
- package/lib/locale/lang/uz-UZ.umd.js +7 -0
- package/lib/locale/lang/vi-VN.js +7 -0
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/vi-VN.umd.js +7 -0
- package/lib/locale/lang/zh-CHT.js +7 -0
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +7 -0
- package/lib/locale/lang/zh-CN.js +7 -0
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +7 -0
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/edit/mixin.js +5 -0
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/render/index.js +62 -18
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/methods.js +14 -7
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +14 -6
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +10 -5
- package/lib/table/style/style.min.css +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/lib/vxe-table/style/style.css +10 -5
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/locale/lang/ar-EG.ts +7 -0
- package/packages/locale/lang/de-DE.ts +7 -0
- package/packages/locale/lang/en-US.ts +7 -0
- package/packages/locale/lang/es-ES.ts +7 -0
- package/packages/locale/lang/fr-FR.ts +7 -0
- package/packages/locale/lang/hu-HU.ts +7 -0
- package/packages/locale/lang/hy-AM.ts +7 -0
- package/packages/locale/lang/id-ID.ts +7 -0
- package/packages/locale/lang/it-IT.ts +7 -0
- package/packages/locale/lang/ja-JP.ts +7 -0
- package/packages/locale/lang/ko-KR.ts +7 -0
- package/packages/locale/lang/ms-MY.ts +7 -0
- package/packages/locale/lang/nb-NO.ts +7 -0
- package/packages/locale/lang/pt-BR.ts +7 -0
- package/packages/locale/lang/ru-RU.ts +7 -0
- package/packages/locale/lang/th-TH.ts +7 -0
- package/packages/locale/lang/ug-CN.ts +7 -0
- package/packages/locale/lang/uk-UA.ts +7 -0
- package/packages/locale/lang/uz-UZ.ts +7 -0
- package/packages/locale/lang/vi-VN.ts +7 -0
- package/packages/locale/lang/zh-CHT.ts +7 -0
- package/packages/locale/lang/zh-CN.ts +7 -0
- package/packages/table/module/edit/mixin.ts +5 -5
- package/packages/table/render/index.ts +46 -18
- package/packages/table/src/methods.ts +210 -60
- package/packages/table/src/table.ts +14 -7
- package/styles/components/table.scss +8 -4
- /package/es/{iconfont.1781229212834.ttf → iconfont.1781675364289.ttf} +0 -0
- /package/es/{iconfont.1781229212834.woff → iconfont.1781675364289.woff} +0 -0
- /package/es/{iconfont.1781229212834.woff2 → iconfont.1781675364289.woff2} +0 -0
- /package/lib/{iconfont.1781229212834.ttf → iconfont.1781675364289.ttf} +0 -0
- /package/lib/{iconfont.1781229212834.woff → iconfont.1781675364289.woff} +0 -0
- /package/lib/{iconfont.1781229212834.woff2 → iconfont.1781675364289.woff2} +0 -0
|
@@ -654,28 +654,66 @@ function handleDefaultRowGroupExpand ($xeTable: VxeTableConstructor & VxeTablePr
|
|
|
654
654
|
}
|
|
655
655
|
}
|
|
656
656
|
|
|
657
|
+
function updateAfterTreeIndex ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
658
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
659
|
+
|
|
660
|
+
const { fullDataRowIdData, fullAllDataRowIdData, afterFullData, afterTreeFullData } = internalData
|
|
661
|
+
const treeOpts = $xeTable.computeTreeOpts
|
|
662
|
+
const { transform, mapChildrenField } = treeOpts
|
|
663
|
+
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
664
|
+
const fullMaps: Record<string, any> = {}
|
|
665
|
+
let rowNum = 0
|
|
666
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
667
|
+
XEUtils.eachTree(afterTreeFullData, (row, index, items, path) => {
|
|
668
|
+
const rowid = handleGetRowId(row)
|
|
669
|
+
const rowRest = fullAllDataRowIdData[rowid]
|
|
670
|
+
const seq = path.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('')
|
|
671
|
+
if (rowRest) {
|
|
672
|
+
rowRest.seq = seq
|
|
673
|
+
rowRest._seq = rowNum
|
|
674
|
+
rowRest.treeIndex = index
|
|
675
|
+
rowRest._tIndex = rowNum
|
|
676
|
+
} else {
|
|
677
|
+
const rest = { row, rowid, _seq: rowNum, seq, index: -1, $index: -1, _index: -1, treeIndex: -1, _tIndex: rowNum, items: [], parent: null, level: 0, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 }
|
|
678
|
+
fullAllDataRowIdData[rowid] = rest
|
|
679
|
+
fullDataRowIdData[rowid] = rest
|
|
680
|
+
}
|
|
681
|
+
rowNum++
|
|
682
|
+
fullMaps[rowid] = row
|
|
683
|
+
}, { children: transform ? mapChildrenField : childrenField })
|
|
684
|
+
if (transform) {
|
|
685
|
+
afterFullData.forEach((row, index) => {
|
|
686
|
+
const rowid = handleGetRowId(row)
|
|
687
|
+
const rowRest = fullAllDataRowIdData[rowid]
|
|
688
|
+
if (rowRest) {
|
|
689
|
+
rowRest._index = index
|
|
690
|
+
}
|
|
691
|
+
})
|
|
692
|
+
}
|
|
693
|
+
internalData.afterFullRowMaps = fullMaps
|
|
694
|
+
}
|
|
695
|
+
|
|
657
696
|
function updateAfterListIndex ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
658
|
-
const props = $xeTable
|
|
659
697
|
const internalData = $xeTable as unknown as TableInternalData
|
|
660
698
|
|
|
661
|
-
const { treeConfig } = props
|
|
662
699
|
const { afterFullData, fullDataRowIdData, fullAllDataRowIdData } = internalData
|
|
663
700
|
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
664
701
|
const fullMaps: Record<string, any> = {}
|
|
702
|
+
let rowNum = 0
|
|
665
703
|
afterFullData.forEach((row, index) => {
|
|
666
704
|
const rowid = handleGetRowId(row)
|
|
667
705
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
668
706
|
const seq = index + 1
|
|
669
707
|
if (rowRest) {
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
}
|
|
708
|
+
rowRest.seq = seq
|
|
709
|
+
rowRest._seq = rowNum
|
|
673
710
|
rowRest._index = index
|
|
674
711
|
} else {
|
|
675
|
-
const rest = { row, rowid, seq, index: -1, $index: -1, _index: index, treeIndex: -1, _tIndex: -1, items: [], parent: null, level: 0, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 }
|
|
712
|
+
const rest = { row, rowid, _seq: rowNum, seq, index: -1, $index: -1, _index: index, treeIndex: -1, _tIndex: -1, items: [], parent: null, level: 0, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 }
|
|
676
713
|
fullAllDataRowIdData[rowid] = rest
|
|
677
714
|
fullDataRowIdData[rowid] = rest
|
|
678
715
|
}
|
|
716
|
+
rowNum++
|
|
679
717
|
fullMaps[rowid] = row
|
|
680
718
|
})
|
|
681
719
|
internalData.afterFullRowMaps = fullMaps
|
|
@@ -687,47 +725,10 @@ function updateAfterListIndex ($xeTable: VxeTableConstructor & VxeTablePrivateMe
|
|
|
687
725
|
*/
|
|
688
726
|
function updateAfterDataIndex ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
689
727
|
const props = $xeTable
|
|
690
|
-
const internalData = $xeTable as unknown as TableInternalData
|
|
691
728
|
|
|
692
729
|
const { treeConfig } = props
|
|
693
|
-
const { fullDataRowIdData, fullAllDataRowIdData, afterFullData, afterTreeFullData } = internalData
|
|
694
|
-
const treeOpts = $xeTable.computeTreeOpts
|
|
695
|
-
const { transform } = treeOpts
|
|
696
|
-
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
697
|
-
const fullMaps: Record<string, any> = {}
|
|
698
730
|
if (treeConfig) {
|
|
699
|
-
|
|
700
|
-
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
701
|
-
XEUtils.eachTree(afterTreeFullData, (row, index, items, path) => {
|
|
702
|
-
const rowid = handleGetRowId(row)
|
|
703
|
-
const rowRest = fullAllDataRowIdData[rowid]
|
|
704
|
-
const seq = path.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('')
|
|
705
|
-
if (rowRest) {
|
|
706
|
-
rowRest.seq = seq
|
|
707
|
-
rowRest.treeIndex = index
|
|
708
|
-
rowRest._tIndex = _treeIndex
|
|
709
|
-
} else {
|
|
710
|
-
const rest = { row, rowid, seq, index: -1, $index: -1, _index: -1, treeIndex: -1, _tIndex: _treeIndex, items: [], parent: null, level: 0, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 }
|
|
711
|
-
fullAllDataRowIdData[rowid] = rest
|
|
712
|
-
fullDataRowIdData[rowid] = rest
|
|
713
|
-
}
|
|
714
|
-
_treeIndex++
|
|
715
|
-
fullMaps[rowid] = row
|
|
716
|
-
}, { children: transform ? treeOpts.mapChildrenField : childrenField })
|
|
717
|
-
if (transform) {
|
|
718
|
-
afterFullData.forEach((row, index) => {
|
|
719
|
-
const rowid = handleGetRowId(row)
|
|
720
|
-
const rowRest = fullAllDataRowIdData[rowid]
|
|
721
|
-
const seq = index + 1
|
|
722
|
-
if (rowRest) {
|
|
723
|
-
if (!treeConfig) {
|
|
724
|
-
rowRest.seq = seq
|
|
725
|
-
}
|
|
726
|
-
rowRest._index = index
|
|
727
|
-
}
|
|
728
|
-
})
|
|
729
|
-
}
|
|
730
|
-
internalData.afterFullRowMaps = fullMaps
|
|
731
|
+
updateAfterTreeIndex($xeTable)
|
|
731
732
|
} else {
|
|
732
733
|
updateAfterListIndex($xeTable)
|
|
733
734
|
}
|
|
@@ -3199,12 +3200,15 @@ function handleRecalculateStyle ($xeTable: VxeTableConstructor & VxeTablePrivate
|
|
|
3199
3200
|
})
|
|
3200
3201
|
}
|
|
3201
3202
|
|
|
3202
|
-
const
|
|
3203
|
+
const defaultMinRunDelay = 50
|
|
3203
3204
|
|
|
3204
|
-
function handleLazyRecalculate ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, reFull: boolean, reWidth: boolean, reHeight: boolean
|
|
3205
|
+
function handleLazyRecalculate ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, reFull: boolean, reWidth: boolean, reHeight: boolean, options?: {
|
|
3206
|
+
minRunDelay?: number // 多少毫秒内至少执行一次
|
|
3207
|
+
}) {
|
|
3205
3208
|
const reactData = $xeTable as unknown as TableReactData
|
|
3206
3209
|
const internalData = $xeTable as unknown as TableInternalData
|
|
3207
3210
|
|
|
3211
|
+
const minRunDelay = (options ? options.minRunDelay : defaultMinRunDelay) || defaultMinRunDelay
|
|
3208
3212
|
return new Promise<void>(resolve => {
|
|
3209
3213
|
const { customStore } = reactData
|
|
3210
3214
|
const { rceTimeout, rceRunTime } = internalData
|
|
@@ -3230,6 +3234,7 @@ function handleLazyRecalculate ($xeTable: VxeTableConstructor & VxeTablePrivateM
|
|
|
3230
3234
|
}
|
|
3231
3235
|
if (rceTimeout) {
|
|
3232
3236
|
clearTimeout(rceTimeout)
|
|
3237
|
+
// 多少毫秒内至少执行一次
|
|
3233
3238
|
if (rceRunTime && rceRunTime + minRunDelay < Date.now()) {
|
|
3234
3239
|
resolve(
|
|
3235
3240
|
handleRecalculateStyle($xeTable, reFull, reWidth, reHeight)
|
|
@@ -3255,7 +3260,19 @@ function handleLazyRecalculate ($xeTable: VxeTableConstructor & VxeTablePrivateM
|
|
|
3255
3260
|
}
|
|
3256
3261
|
|
|
3257
3262
|
function handleResizeEvent ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
3258
|
-
|
|
3263
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
3264
|
+
|
|
3265
|
+
if (internalData.rsePending) {
|
|
3266
|
+
return
|
|
3267
|
+
}
|
|
3268
|
+
internalData.rsePending = true
|
|
3269
|
+
handleLazyRecalculate($xeTable, true, true, true, {
|
|
3270
|
+
minRunDelay: 200
|
|
3271
|
+
}).then(() => {
|
|
3272
|
+
internalData.rsePending = false
|
|
3273
|
+
}).catch(() => {
|
|
3274
|
+
internalData.rsePending = false
|
|
3275
|
+
})
|
|
3259
3276
|
}
|
|
3260
3277
|
|
|
3261
3278
|
function handleUpdateAggValues ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
@@ -5126,17 +5143,19 @@ const tableMethods: any = {
|
|
|
5126
5143
|
|
|
5127
5144
|
const idMaps: Record<string, boolean> = {}
|
|
5128
5145
|
const { handleUpdateRowId } = createHandleUpdateRowId($xeTable)
|
|
5146
|
+
let rowNum = 0
|
|
5129
5147
|
const handleRowCache = (row: any, index: number, items: any, currIndex: number, parentRow: any, rowid: string, level: number, seq: string | number) => {
|
|
5130
5148
|
let rowRest = fullAllDataRowIdMaps[rowid]
|
|
5131
5149
|
if (idMaps[rowid]) {
|
|
5132
5150
|
errLog('vxe.error.repeatKey', [currKeyField, rowid])
|
|
5133
5151
|
}
|
|
5134
5152
|
if (!rowRest) {
|
|
5135
|
-
rowRest = { row, rowid, seq, index: -1, _index: -1, $index: -1, treeIndex: index, _tIndex: -1, items, parent: parentRow, level, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 }
|
|
5153
|
+
rowRest = { row, rowid, _seq: -1, seq, index: -1, _index: -1, $index: -1, treeIndex: index, _tIndex: -1, items, parent: parentRow, level, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 }
|
|
5136
5154
|
}
|
|
5137
5155
|
rowRest.treeLoaded = false
|
|
5138
5156
|
rowRest.expandLoaded = false
|
|
5139
5157
|
|
|
5158
|
+
rowRest._seq = rowNum++
|
|
5140
5159
|
rowRest.row = row
|
|
5141
5160
|
rowRest.items = items
|
|
5142
5161
|
rowRest.parent = parentRow
|
|
@@ -5250,7 +5269,7 @@ const tableMethods: any = {
|
|
|
5250
5269
|
XEUtils.eachTree(rows, (childRow, index, items, path, parentItem, nodes) => {
|
|
5251
5270
|
const rowid = getRowid($xeTable, childRow)
|
|
5252
5271
|
const parentRow = parentItem || parentRest.row
|
|
5253
|
-
const rest = { row: childRow, rowid, seq: -1, index, _index: -1, $index: -1, treeIndex: -1, _tIndex: -1, items, parent: parentRow, level: parentLevel + nodes.length, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 }
|
|
5272
|
+
const rest = { row: childRow, rowid, _seq: -1, seq: -1, index, _index: -1, $index: -1, treeIndex: -1, _tIndex: -1, items, parent: parentRow, level: parentLevel + nodes.length, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 }
|
|
5254
5273
|
fullDataRowIdData[rowid] = rest
|
|
5255
5274
|
fullAllDataRowIdData[rowid] = rest
|
|
5256
5275
|
}, { children: childrenField })
|
|
@@ -8747,31 +8766,162 @@ const tableMethods: any = {
|
|
|
8747
8766
|
const { treeConfig } = props
|
|
8748
8767
|
const { row } = params
|
|
8749
8768
|
const { isRowGroupStatus } = reactData
|
|
8750
|
-
const { afterFullData } = internalData
|
|
8769
|
+
const { fullAllDataRowIdData, afterFullData, afterTreeFullData, afterGroupFullData } = internalData
|
|
8751
8770
|
const checkboxOpts = $xeTable.computeCheckboxOpts
|
|
8752
|
-
const
|
|
8771
|
+
const aggregateOpts = $xeTable.computeAggregateOpts
|
|
8772
|
+
const treeOpts = $xeTable.computeTreeOpts
|
|
8773
|
+
const { checkMethod, trigger, checkStrictly } = checkboxOpts
|
|
8753
8774
|
if (trigger === 'manual') {
|
|
8754
8775
|
return
|
|
8755
8776
|
}
|
|
8756
8777
|
evnt.stopPropagation()
|
|
8757
|
-
|
|
8778
|
+
|
|
8779
|
+
if (checkboxOpts.isShiftKey && evnt.shiftKey) {
|
|
8780
|
+
const { handleGetRowId } = createHandleGetRowId($xeTable)
|
|
8758
8781
|
const checkboxRecords = $xeTable.getCheckboxRecords()
|
|
8759
|
-
|
|
8760
|
-
|
|
8761
|
-
|
|
8762
|
-
|
|
8763
|
-
|
|
8782
|
+
let currSeq = -1
|
|
8783
|
+
let currRow: any = null
|
|
8784
|
+
const currRowid = handleGetRowId(row)
|
|
8785
|
+
const rowRest = fullAllDataRowIdData[currRowid]
|
|
8786
|
+
if (rowRest) {
|
|
8787
|
+
currRow = rowRest.row
|
|
8788
|
+
currSeq = rowRest._seq
|
|
8789
|
+
}
|
|
8790
|
+
if (currRow && checkboxRecords.length) {
|
|
8791
|
+
let rangeRows: any[] = []
|
|
8792
|
+
let firstSeq = -1
|
|
8793
|
+
let firstRow: any = null
|
|
8794
|
+
let firstRowid = ''
|
|
8795
|
+
let lastSeq = -1
|
|
8796
|
+
let lastRow: any = null
|
|
8797
|
+
let lastRowid = ''
|
|
8798
|
+
// 根据序号取出范围最小/最大的行
|
|
8799
|
+
const selectMaps: Record<string, any> = {}
|
|
8800
|
+
checkboxRecords.forEach(item => {
|
|
8801
|
+
const rowid = handleGetRowId(item)
|
|
8802
|
+
const rowRest = fullAllDataRowIdData[rowid]
|
|
8803
|
+
if (rowRest) {
|
|
8804
|
+
if (!firstRow || firstSeq > rowRest._seq) {
|
|
8805
|
+
firstRowid = rowRest.rowid
|
|
8806
|
+
firstRow = rowRest.row
|
|
8807
|
+
firstSeq = rowRest._seq
|
|
8808
|
+
}
|
|
8809
|
+
if (!lastRow || lastSeq < rowRest._seq) {
|
|
8810
|
+
lastRowid = rowRest.rowid
|
|
8811
|
+
lastRow = rowRest.row
|
|
8812
|
+
lastSeq = rowRest._seq
|
|
8813
|
+
}
|
|
8814
|
+
}
|
|
8815
|
+
selectMaps[rowid] = item
|
|
8816
|
+
})
|
|
8817
|
+
// 如果已选只有一条并选择当前则跳过
|
|
8818
|
+
if (firstRow && lastRow && (checkboxRecords.length > 1 || currRowid !== firstRowid) && (Math.abs(firstSeq - lastSeq) > 1 || Math.abs(currSeq - firstSeq) > 1 || Math.abs(currSeq - lastSeq) > 1)) {
|
|
8819
|
+
// 树与分组
|
|
8820
|
+
if (treeConfig || isRowGroupStatus) {
|
|
8821
|
+
const { transform } = treeOpts
|
|
8822
|
+
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
8823
|
+
const iteratorChildField = treeConfig ? (transform ? treeOpts.mapChildrenField : childrenField) : aggregateOpts.mapChildrenField as string
|
|
8824
|
+
let isMatchFirst = false
|
|
8825
|
+
let matchStartRowid = ''
|
|
8826
|
+
let matchEndRowid = ''
|
|
8827
|
+
|
|
8828
|
+
const handleGetChildRowid = (rowid: string, isLast: 0 | 1): string => {
|
|
8829
|
+
const rowRest = fullAllDataRowIdData[rowid]
|
|
8830
|
+
if (rowRest) {
|
|
8831
|
+
const item = rowRest.row
|
|
8832
|
+
const childList = item[iteratorChildField]
|
|
8833
|
+
if (childList && childList.length) {
|
|
8834
|
+
const targetRow = isLast ? XEUtils.last(childList) : XEUtils.first(childList)
|
|
8835
|
+
return handleGetChildRowid(handleGetRowId(targetRow), isLast)
|
|
8836
|
+
}
|
|
8837
|
+
}
|
|
8838
|
+
return rowid
|
|
8839
|
+
}
|
|
8840
|
+
|
|
8841
|
+
const handleGetSelectParentRowid = (rowid: string): string => {
|
|
8842
|
+
const rowRest = fullAllDataRowIdData[rowid]
|
|
8843
|
+
if (rowRest) {
|
|
8844
|
+
const parentItem = rowRest.parent
|
|
8845
|
+
if (parentItem) {
|
|
8846
|
+
const parentRowid = handleGetRowId(parentItem)
|
|
8847
|
+
if (selectMaps[parentRowid]) {
|
|
8848
|
+
return handleGetSelectParentRowid(parentRowid)
|
|
8849
|
+
}
|
|
8850
|
+
}
|
|
8851
|
+
}
|
|
8852
|
+
return rowid
|
|
8853
|
+
}
|
|
8854
|
+
|
|
8855
|
+
const handleGetRootRow = (row: string): VxeTableDefines.RowCacheItem | null => {
|
|
8856
|
+
const rowid = handleGetRowId(row)
|
|
8857
|
+
if (rowid) {
|
|
8858
|
+
const rest = fullAllDataRowIdData[rowid]
|
|
8859
|
+
if (rest) {
|
|
8860
|
+
return rest.parent ? handleGetRootRow(rest.parent) : rest
|
|
8861
|
+
}
|
|
8862
|
+
}
|
|
8863
|
+
return null
|
|
8864
|
+
}
|
|
8865
|
+
|
|
8866
|
+
if (currSeq < firstSeq) {
|
|
8867
|
+
matchStartRowid = handleGetChildRowid(currRowid, 0)
|
|
8868
|
+
matchEndRowid = handleGetChildRowid(firstRowid, 1)
|
|
8869
|
+
} else {
|
|
8870
|
+
if (currSeq > lastSeq) {
|
|
8871
|
+
matchStartRowid = handleGetSelectParentRowid(lastRowid)
|
|
8872
|
+
} else {
|
|
8873
|
+
matchStartRowid = handleGetChildRowid(firstRowid, 0)
|
|
8874
|
+
}
|
|
8875
|
+
matchEndRowid = handleGetChildRowid(currRowid, 1)
|
|
8876
|
+
}
|
|
8877
|
+
|
|
8878
|
+
const handleRangeRow = (item: any) => {
|
|
8879
|
+
const rowid = handleGetRowId(item)
|
|
8880
|
+
const childList = item[iteratorChildField]
|
|
8881
|
+
if (!isMatchFirst && rowid === matchStartRowid) {
|
|
8882
|
+
isMatchFirst = true
|
|
8883
|
+
}
|
|
8884
|
+
// 如果是父子关联,则排除父节点
|
|
8885
|
+
if (isMatchFirst && (checkStrictly || !childList || !childList.length)) {
|
|
8886
|
+
rangeRows.push(item)
|
|
8887
|
+
}
|
|
8888
|
+
// break
|
|
8889
|
+
return rowid === matchEndRowid
|
|
8890
|
+
}
|
|
8891
|
+
if (treeConfig) {
|
|
8892
|
+
const matchStartRowRest = fullAllDataRowIdData[matchStartRowid]
|
|
8893
|
+
const firstRootRowRest = matchStartRowRest ? handleGetRootRow(matchStartRowRest.row) : null
|
|
8894
|
+
if (firstRootRowRest) {
|
|
8895
|
+
// 优化查找复杂度
|
|
8896
|
+
XEUtils.findTree(afterTreeFullData.slice(firstRootRowRest.treeIndex), handleRangeRow, { children: iteratorChildField })
|
|
8897
|
+
} else {
|
|
8898
|
+
XEUtils.findTree(afterTreeFullData, handleRangeRow, { children: iteratorChildField })
|
|
8899
|
+
}
|
|
8900
|
+
} else {
|
|
8901
|
+
XEUtils.findTree(afterGroupFullData, handleRangeRow, { children: iteratorChildField })
|
|
8902
|
+
}
|
|
8903
|
+
} else {
|
|
8904
|
+
const _currRowIndex = $xeTable.getVTRowIndex(currRow)
|
|
8905
|
+
const _firstRowIndex = $xeTable.getVTRowIndex(firstRow)
|
|
8906
|
+
const _lastRowIndex = $xeTable.getVTRowIndex(lastRow)
|
|
8907
|
+
if (_currRowIndex < _firstRowIndex) {
|
|
8908
|
+
rangeRows = afterFullData.slice(_currRowIndex, _firstRowIndex + 1)
|
|
8909
|
+
} else if (_currRowIndex > _lastRowIndex) {
|
|
8910
|
+
rangeRows = afterFullData.slice(_lastRowIndex, _currRowIndex + 1)
|
|
8911
|
+
} else {
|
|
8912
|
+
rangeRows = afterFullData.slice(_firstRowIndex, _currRowIndex + 1)
|
|
8913
|
+
}
|
|
8914
|
+
}
|
|
8764
8915
|
$xeTable.setAllCheckboxRow(false)
|
|
8765
|
-
const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1)
|
|
8766
8916
|
$xeTable.$nextTick(() => {
|
|
8767
8917
|
handleCheckedCheckboxRow($xeTable, rangeRows, true, false)
|
|
8768
8918
|
})
|
|
8769
8919
|
$xeTable.dispatchEvent('checkbox-range-select', Object.assign({ rangeRecords: rangeRows }, params), evnt)
|
|
8770
|
-
return
|
|
8771
8920
|
}
|
|
8772
8921
|
}
|
|
8773
8922
|
}
|
|
8774
|
-
|
|
8923
|
+
|
|
8924
|
+
if (!checkMethod || checkMethod({ $table: $xeTable, row })) {
|
|
8775
8925
|
$xeTable.handleBatchSelectRows([row], checked)
|
|
8776
8926
|
$xeTable.checkSelectionStatus()
|
|
8777
8927
|
$xeTable.dispatchEvent('checkbox-change', Object.assign({
|
|
@@ -1348,22 +1348,32 @@ export default {
|
|
|
1348
1348
|
const { tableFullColumn } = internalData
|
|
1349
1349
|
const { updateColFlag } = reactData
|
|
1350
1350
|
const editDirtyOpts = $xeTable.computeEditDirtyOpts
|
|
1351
|
-
const { includeFields, excludeFields } = editDirtyOpts
|
|
1351
|
+
const { extraFields, includeFields, excludeFields } = editDirtyOpts
|
|
1352
1352
|
const kpFields: string[] = []
|
|
1353
1353
|
if (updateColFlag) {
|
|
1354
1354
|
if (includeFields && includeFields.length) {
|
|
1355
1355
|
return includeFields
|
|
1356
1356
|
}
|
|
1357
|
-
const
|
|
1357
|
+
const excludeFdMaps: Record<string, number> = {}
|
|
1358
1358
|
if (excludeFields && excludeFields.length) {
|
|
1359
1359
|
excludeFields.forEach(field => {
|
|
1360
|
-
|
|
1360
|
+
excludeFdMaps[field] = 1
|
|
1361
|
+
})
|
|
1362
|
+
}
|
|
1363
|
+
const addFdMaps: Record<string, number> = {}
|
|
1364
|
+
if (extraFields && extraFields.length) {
|
|
1365
|
+
extraFields.forEach(field => {
|
|
1366
|
+
if (!addFdMaps[field]) {
|
|
1367
|
+
addFdMaps[field] = 1
|
|
1368
|
+
kpFields.push(field)
|
|
1369
|
+
}
|
|
1361
1370
|
})
|
|
1362
1371
|
}
|
|
1363
1372
|
for (let i = 0; i < tableFullColumn.length; i++) {
|
|
1364
1373
|
const column = tableFullColumn[i]
|
|
1365
1374
|
const { field, type, editRender, cellRender } = column
|
|
1366
|
-
if (field && !type && (editRender || cellRender) && !
|
|
1375
|
+
if (field && !type && (editRender || cellRender) && !addFdMaps[field] && !excludeFdMaps[field]) {
|
|
1376
|
+
addFdMaps[field] = 1
|
|
1367
1377
|
kpFields.push(field)
|
|
1368
1378
|
}
|
|
1369
1379
|
}
|
|
@@ -1862,9 +1872,6 @@ export default {
|
|
|
1862
1872
|
if (props.editConfig && editOpts.activeMethod) {
|
|
1863
1873
|
warnLog('vxe.error.delProp', ['table.edit-config.activeMethod', 'table.edit-config.beforeEditMethod'])
|
|
1864
1874
|
}
|
|
1865
|
-
if (props.treeConfig && checkboxOpts.isShiftKey) {
|
|
1866
|
-
errLog('vxe.error.reqSupportProp', ['tree-config', 'checkbox-config.isShiftKey=false'])
|
|
1867
|
-
}
|
|
1868
1875
|
if (checkboxOpts.halfField) {
|
|
1869
1876
|
warnLog('vxe.error.delProp', ['checkbox-config.halfField', 'checkbox-config.indeterminateField'])
|
|
1870
1877
|
}
|
|
@@ -213,7 +213,8 @@ $btnThemeList: (
|
|
|
213
213
|
.vxe-date-picker,
|
|
214
214
|
.vxe-date-range-picker,
|
|
215
215
|
.vxe-number-input,
|
|
216
|
-
.vxe-ico-picker
|
|
216
|
+
.vxe-ico-picker,
|
|
217
|
+
.vxe-cascader {
|
|
217
218
|
width: 100%;
|
|
218
219
|
}
|
|
219
220
|
}
|
|
@@ -236,7 +237,8 @@ $btnThemeList: (
|
|
|
236
237
|
& > .vxe-date-picker,
|
|
237
238
|
& > .vxe-date-range-picker,
|
|
238
239
|
& > .vxe-number-input,
|
|
239
|
-
& > .vxe-ico-picker
|
|
240
|
+
& > .vxe-ico-picker,
|
|
241
|
+
.vxe-cascader {
|
|
240
242
|
width: 100%;
|
|
241
243
|
}
|
|
242
244
|
& > .vxe-row-group--tree-node,
|
|
@@ -251,7 +253,8 @@ $btnThemeList: (
|
|
|
251
253
|
.vxe-date-picker,
|
|
252
254
|
.vxe-date-range-picker,
|
|
253
255
|
.vxe-number-input,
|
|
254
|
-
.vxe-ico-picker
|
|
256
|
+
.vxe-ico-picker,
|
|
257
|
+
.vxe-cascader {
|
|
255
258
|
width: 100%;
|
|
256
259
|
}
|
|
257
260
|
}
|
|
@@ -272,7 +275,8 @@ $btnThemeList: (
|
|
|
272
275
|
& > .vxe-date-picker,
|
|
273
276
|
& > .vxe-date-range-picker,
|
|
274
277
|
& > .vxe-number-input,
|
|
275
|
-
& > .vxe-ico-picker
|
|
278
|
+
& > .vxe-ico-picker,
|
|
279
|
+
& > .vxe-cascader {
|
|
276
280
|
width: 100%;
|
|
277
281
|
}
|
|
278
282
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|