vxe-table 3.13.5 → 3.13.6
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 +2 -1
- package/es/locale/lang/de-DE.js +2 -1
- package/es/locale/lang/en-US.js +2 -1
- package/es/locale/lang/es-ES.js +2 -1
- package/es/locale/lang/fr-FR.js +2 -1
- package/es/locale/lang/hu-HU.js +2 -1
- package/es/locale/lang/hy-AM.js +2 -1
- package/es/locale/lang/id-ID.js +2 -1
- package/es/locale/lang/it-IT.js +2 -1
- package/es/locale/lang/ja-JP.js +2 -1
- package/es/locale/lang/ko-KR.js +2 -1
- package/es/locale/lang/nb-NO.js +2 -1
- package/es/locale/lang/pt-BR.js +2 -1
- package/es/locale/lang/ru-RU.js +2 -1
- package/es/locale/lang/th-TH.js +2 -1
- package/es/locale/lang/ug-CN.js +2 -1
- package/es/locale/lang/uk-UA.js +2 -1
- package/es/locale/lang/vi-VN.js +2 -1
- package/es/locale/lang/zh-CHT.js +2 -1
- package/es/locale/lang/zh-CN.js +2 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/export/export-panel.js +7 -4
- package/es/table/module/export/mixin.js +2 -2
- package/es/table/src/methods.js +247 -215
- package/es/table/style.css +1 -1
- 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 +1 -1
- 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 +296 -271
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +2 -1
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +2 -1
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +2 -1
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +2 -1
- package/lib/locale/lang/es-ES.js +2 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +2 -1
- package/lib/locale/lang/fr-FR.js +2 -1
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +2 -1
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +2 -1
- package/lib/locale/lang/hy-AM.js +2 -1
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/id-ID.js +2 -1
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/it-IT.js +2 -1
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +2 -1
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +2 -1
- package/lib/locale/lang/ko-KR.js +2 -1
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +2 -1
- package/lib/locale/lang/nb-NO.js +2 -1
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +2 -1
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +2 -1
- package/lib/locale/lang/ru-RU.js +2 -1
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +2 -1
- package/lib/locale/lang/th-TH.js +2 -1
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +2 -1
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +2 -1
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +2 -1
- package/lib/locale/lang/vi-VN.js +2 -1
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +2 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +2 -1
- package/lib/locale/lang/zh-CN.js +2 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +2 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/export/export-panel.js +7 -4
- package/lib/table/module/export/export-panel.min.js +1 -1
- package/lib/table/module/export/mixin.js +2 -2
- package/lib/table/module/export/mixin.min.js +1 -1
- package/lib/table/src/methods.js +283 -262
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/style/style.css +1 -1
- 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 +1 -1
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/locale/lang/ar-EG.ts +2 -1
- package/packages/locale/lang/de-DE.ts +2 -1
- package/packages/locale/lang/en-US.ts +2 -1
- package/packages/locale/lang/es-ES.ts +2 -1
- package/packages/locale/lang/fr-FR.ts +2 -1
- package/packages/locale/lang/hu-HU.ts +2 -1
- package/packages/locale/lang/hy-AM.ts +2 -1
- package/packages/locale/lang/id-ID.ts +2 -1
- package/packages/locale/lang/it-IT.ts +2 -1
- package/packages/locale/lang/ja-JP.ts +2 -1
- package/packages/locale/lang/ko-KR.ts +2 -1
- package/packages/locale/lang/nb-NO.ts +2 -1
- package/packages/locale/lang/pt-BR.ts +2 -1
- package/packages/locale/lang/ru-RU.ts +2 -1
- package/packages/locale/lang/th-TH.ts +2 -1
- package/packages/locale/lang/ug-CN.ts +2 -1
- package/packages/locale/lang/uk-UA.ts +2 -1
- package/packages/locale/lang/vi-VN.ts +2 -1
- package/packages/locale/lang/zh-CHT.ts +2 -1
- package/packages/locale/lang/zh-CN.ts +2 -1
- package/packages/table/module/export/export-panel.ts +7 -4
- package/packages/table/module/export/mixin.ts +2 -2
- package/packages/table/src/methods.ts +264 -216
- package/styles/components/table.scss +1 -1
- /package/es/{iconfont.1740038065641.ttf → iconfont.1740103990490.ttf} +0 -0
- /package/es/{iconfont.1740038065641.woff → iconfont.1740103990490.woff} +0 -0
- /package/es/{iconfont.1740038065641.woff2 → iconfont.1740103990490.woff2} +0 -0
- /package/lib/{iconfont.1740038065641.ttf → iconfont.1740103990490.ttf} +0 -0
- /package/lib/{iconfont.1740038065641.woff → iconfont.1740103990490.woff} +0 -0
- /package/lib/{iconfont.1740038065641.woff2 → iconfont.1740103990490.woff2} +0 -0
|
@@ -47,8 +47,10 @@ const setCustomStorageMap = (id: any, data: any) => {
|
|
|
47
47
|
localStorage.setItem(customStorageKey, XEUtils.toJSONString(maps))
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
const getRecoverRowMaps = (
|
|
51
|
-
const
|
|
50
|
+
const getRecoverRowMaps = ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, keyMaps: any) => {
|
|
51
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
52
|
+
|
|
53
|
+
const { fullAllDataRowIdData } = internalData
|
|
52
54
|
const restKeys: any = {}
|
|
53
55
|
XEUtils.each(keyMaps, (row, rowid) => {
|
|
54
56
|
if (fullAllDataRowIdData[rowid]) {
|
|
@@ -58,8 +60,10 @@ const getRecoverRowMaps = (_vm: any, keyMaps: any) => {
|
|
|
58
60
|
return restKeys
|
|
59
61
|
}
|
|
60
62
|
|
|
61
|
-
function handleReserveRow (
|
|
62
|
-
const
|
|
63
|
+
function handleReserveRow ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, reserveRowMap: any) {
|
|
64
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
65
|
+
|
|
66
|
+
const { fullDataRowIdData } = internalData
|
|
63
67
|
const reserveList: any[] = []
|
|
64
68
|
XEUtils.each(reserveRowMap, (item, rowid) => {
|
|
65
69
|
if (fullDataRowIdData[rowid] && reserveList.indexOf(fullDataRowIdData[rowid].row) === -1) {
|
|
@@ -762,6 +766,219 @@ function updateStyle ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
|
762
766
|
return $xeTable.$nextTick()
|
|
763
767
|
}
|
|
764
768
|
|
|
769
|
+
function handleRadioReserveRow ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, row: any) {
|
|
770
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
771
|
+
|
|
772
|
+
const radioOpts = $xeTable.computeRadioOpts
|
|
773
|
+
if (radioOpts.reserve) {
|
|
774
|
+
internalData.radioReserveRow = row
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
function handleCheckboxReserveRow ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, row: any, checked: boolean) {
|
|
779
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
780
|
+
|
|
781
|
+
const { checkboxReserveRowMap } = internalData
|
|
782
|
+
const checkboxOpts = $xeTable.computeCheckboxOpts
|
|
783
|
+
if (checkboxOpts.reserve) {
|
|
784
|
+
const rowid = getRowid($xeTable, row)
|
|
785
|
+
if (checked) {
|
|
786
|
+
checkboxReserveRowMap[rowid] = row
|
|
787
|
+
} else if (checkboxReserveRowMap[rowid]) {
|
|
788
|
+
delete checkboxReserveRowMap[rowid]
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
function handleCheckedRadioRow ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, row: any, isForce?: boolean) {
|
|
794
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
795
|
+
|
|
796
|
+
const radioOpts = $xeTable.computeRadioOpts
|
|
797
|
+
const { checkMethod } = radioOpts
|
|
798
|
+
if (row && (isForce || (!checkMethod || checkMethod({ row })))) {
|
|
799
|
+
reactData.selectRadioRow = row
|
|
800
|
+
handleRadioReserveRow($xeTable, row)
|
|
801
|
+
}
|
|
802
|
+
return $xeTable.$nextTick()
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
function handleCheckedCheckboxRow ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, rows: any[], value: boolean, isForce?: boolean) {
|
|
806
|
+
if (rows && !XEUtils.isArray(rows)) {
|
|
807
|
+
rows = [rows]
|
|
808
|
+
}
|
|
809
|
+
$xeTable.handleBatchSelectRows(rows, !!value, isForce)
|
|
810
|
+
$xeTable.checkSelectionStatus()
|
|
811
|
+
return $xeTable.$nextTick()
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
function handleCheckedAllCheckboxRow ($xeTable: VxeTableConstructor & VxeTablePrivateMethods, checked: boolean, isForce?: boolean) {
|
|
815
|
+
const props = $xeTable
|
|
816
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
817
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
818
|
+
|
|
819
|
+
const { treeConfig } = props
|
|
820
|
+
const { selectCheckboxMaps } = reactData
|
|
821
|
+
const { afterFullData, checkboxReserveRowMap } = internalData
|
|
822
|
+
const treeOpts = $xeTable.computeTreeOpts
|
|
823
|
+
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
824
|
+
const checkboxOpts = $xeTable.computeCheckboxOpts
|
|
825
|
+
const { checkField, reserve, checkMethod } = checkboxOpts
|
|
826
|
+
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
|
|
827
|
+
const selectRowMaps: Record<string, any> = {}
|
|
828
|
+
/**
|
|
829
|
+
* 绑定属性方式(高性能,有污染)
|
|
830
|
+
* 必须在行数据存在对应的属性,否则将不响应
|
|
831
|
+
*/
|
|
832
|
+
if (checkField) {
|
|
833
|
+
const checkValFn = (row: any) => {
|
|
834
|
+
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
835
|
+
if (checked) {
|
|
836
|
+
selectRowMaps[getRowid($xeTable, row)] = row
|
|
837
|
+
}
|
|
838
|
+
XEUtils.set(row, checkField, checked)
|
|
839
|
+
}
|
|
840
|
+
if (treeConfig && indeterminateField) {
|
|
841
|
+
XEUtils.set(row, indeterminateField, false)
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
// 如果存在选中方法
|
|
845
|
+
// 如果方法成立,则更新值,否则忽略该数据
|
|
846
|
+
if (treeConfig) {
|
|
847
|
+
XEUtils.eachTree(afterFullData, checkValFn, { children: childrenField })
|
|
848
|
+
} else {
|
|
849
|
+
afterFullData.forEach(checkValFn)
|
|
850
|
+
}
|
|
851
|
+
} else {
|
|
852
|
+
/**
|
|
853
|
+
* 默认方式(低性能,无污染)
|
|
854
|
+
* 无需任何属性,直接绑定
|
|
855
|
+
*/
|
|
856
|
+
if (treeConfig) {
|
|
857
|
+
if (checked) {
|
|
858
|
+
/**
|
|
859
|
+
* 如果是树勾选
|
|
860
|
+
* 如果方法成立,则添加到临时集合中
|
|
861
|
+
*/
|
|
862
|
+
XEUtils.eachTree(afterFullData, (row) => {
|
|
863
|
+
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
864
|
+
selectRowMaps[getRowid($xeTable, row)] = row
|
|
865
|
+
}
|
|
866
|
+
}, { children: childrenField })
|
|
867
|
+
} else {
|
|
868
|
+
/**
|
|
869
|
+
* 如果是树取消
|
|
870
|
+
* 如果方法成立,则不添加到临时集合中
|
|
871
|
+
*/
|
|
872
|
+
if (!isForce && checkMethod) {
|
|
873
|
+
XEUtils.eachTree(afterFullData, (row) => {
|
|
874
|
+
const rowid = getRowid($xeTable, row)
|
|
875
|
+
if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
|
|
876
|
+
selectRowMaps[rowid] = row
|
|
877
|
+
}
|
|
878
|
+
}, { children: childrenField })
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
} else {
|
|
882
|
+
if (checked) {
|
|
883
|
+
/**
|
|
884
|
+
* 如果是行勾选
|
|
885
|
+
* 如果存在选中方法且成立或者本身已勾选,则添加到临时集合中
|
|
886
|
+
* 如果不存在选中方法,则添加所有数据到临时集合中
|
|
887
|
+
*/
|
|
888
|
+
if (!isForce && checkMethod) {
|
|
889
|
+
afterFullData.forEach((row) => {
|
|
890
|
+
const rowid = getRowid($xeTable, row)
|
|
891
|
+
if (selectCheckboxMaps[rowid] || checkMethod({ row })) {
|
|
892
|
+
selectRowMaps[rowid] = row
|
|
893
|
+
}
|
|
894
|
+
})
|
|
895
|
+
} else {
|
|
896
|
+
afterFullData.forEach(row => {
|
|
897
|
+
selectRowMaps[getRowid($xeTable, row)] = row
|
|
898
|
+
})
|
|
899
|
+
}
|
|
900
|
+
} else {
|
|
901
|
+
/**
|
|
902
|
+
* 如果是行取消
|
|
903
|
+
* 如果方法成立,则不添加到临时集合中;如果方法不成立则判断当前是否已勾选,如果已被勾选则添加到新集合中
|
|
904
|
+
* 如果不存在选中方法,无需处理,临时集合默认为空
|
|
905
|
+
*/
|
|
906
|
+
if (!isForce && checkMethod) {
|
|
907
|
+
afterFullData.forEach((row) => {
|
|
908
|
+
const rowid = getRowid($xeTable, row)
|
|
909
|
+
if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
|
|
910
|
+
selectRowMaps[rowid] = row
|
|
911
|
+
}
|
|
912
|
+
})
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
if (reserve) {
|
|
918
|
+
if (checked) {
|
|
919
|
+
XEUtils.each(selectRowMaps, (row, rowid) => {
|
|
920
|
+
checkboxReserveRowMap[rowid] = row
|
|
921
|
+
})
|
|
922
|
+
} else {
|
|
923
|
+
afterFullData.forEach((row) => handleCheckboxReserveRow($xeTable, row, false))
|
|
924
|
+
}
|
|
925
|
+
}
|
|
926
|
+
reactData.selectCheckboxMaps = checkField ? {} : selectRowMaps
|
|
927
|
+
|
|
928
|
+
reactData.isAllSelected = checked
|
|
929
|
+
reactData.isIndeterminate = false
|
|
930
|
+
reactData.treeIndeterminateMaps = {}
|
|
931
|
+
internalData.treeIndeterminateRowMaps = {}
|
|
932
|
+
$xeTable.checkSelectionStatus()
|
|
933
|
+
return $xeTable.$nextTick()
|
|
934
|
+
}
|
|
935
|
+
|
|
936
|
+
// 还原展开、选中等相关状态
|
|
937
|
+
function handleReserveStatus ($xeTable: VxeTableConstructor & VxeTablePrivateMethods) {
|
|
938
|
+
const props = $xeTable
|
|
939
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
940
|
+
const internalData = $xeTable as unknown as TableInternalData
|
|
941
|
+
|
|
942
|
+
const { treeConfig } = props
|
|
943
|
+
const { expandColumn, currentRow, selectCheckboxMaps, selectRadioRow, rowExpandedMaps, treeExpandedMaps } = reactData
|
|
944
|
+
const { fullDataRowIdData, fullAllDataRowIdData, radioReserveRow } = internalData
|
|
945
|
+
const expandOpts = $xeTable.computeExpandOpts
|
|
946
|
+
const treeOpts = $xeTable.computeTreeOpts
|
|
947
|
+
const radioOpts = $xeTable.computeRadioOpts
|
|
948
|
+
const checkboxOpts = $xeTable.computeCheckboxOpts
|
|
949
|
+
// 单选框
|
|
950
|
+
if (selectRadioRow && !fullAllDataRowIdData[getRowid($xeTable, selectRadioRow)]) {
|
|
951
|
+
reactData.selectRadioRow = null // 刷新单选行状态
|
|
952
|
+
}
|
|
953
|
+
// 还原保留选中状态
|
|
954
|
+
if (radioOpts.reserve && radioReserveRow) {
|
|
955
|
+
const rowid = getRowid($xeTable, radioReserveRow)
|
|
956
|
+
if (fullDataRowIdData[rowid]) {
|
|
957
|
+
handleCheckedRadioRow($xeTable, fullDataRowIdData[rowid].row, true)
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
// 复选框
|
|
961
|
+
reactData.selectCheckboxMaps = getRecoverRowMaps($xeTable, selectCheckboxMaps) // 刷新多选行状态
|
|
962
|
+
// 还原保留选中状态
|
|
963
|
+
if (checkboxOpts.reserve) {
|
|
964
|
+
handleCheckedCheckboxRow($xeTable, handleReserveRow($xeTable, internalData.checkboxReserveRowMap), true, true)
|
|
965
|
+
}
|
|
966
|
+
if (currentRow && !fullAllDataRowIdData[getRowid($xeTable, currentRow)]) {
|
|
967
|
+
reactData.currentRow = null // 刷新当前行状态
|
|
968
|
+
}
|
|
969
|
+
// 行展开
|
|
970
|
+
reactData.rowExpandedMaps = expandColumn ? getRecoverRowMaps($xeTable, rowExpandedMaps) : {} // 刷新行展开状态
|
|
971
|
+
// 还原保留状态
|
|
972
|
+
if (expandColumn && expandOpts.reserve) {
|
|
973
|
+
$xeTable.setRowExpand(handleReserveRow($xeTable, internalData.rowExpandedReserveRowMap), true)
|
|
974
|
+
}
|
|
975
|
+
// 树展开
|
|
976
|
+
reactData.treeExpandedMaps = treeConfig ? getRecoverRowMaps($xeTable, treeExpandedMaps) : {} // 刷新树展开状态
|
|
977
|
+
if (treeConfig && treeOpts.reserve) {
|
|
978
|
+
$xeTable.setTreeExpand(handleReserveRow($xeTable, internalData.treeExpandedReserveRowMap), true)
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
|
|
765
982
|
function calcVarRowHeightConfig ($xeTable: VxeTableConstructor, sizeKey: 'default' | 'medium' | 'small' | 'mini', sizeEl: Element) {
|
|
766
983
|
const reactData = $xeTable as unknown as TableReactData
|
|
767
984
|
|
|
@@ -2262,7 +2479,7 @@ const Methods = {
|
|
|
2262
2479
|
}
|
|
2263
2480
|
}
|
|
2264
2481
|
|
|
2265
|
-
|
|
2482
|
+
handleReserveStatus($xeTable)
|
|
2266
2483
|
this.checkSelectionStatus()
|
|
2267
2484
|
return new Promise<void>(resolve => {
|
|
2268
2485
|
this.$nextTick()
|
|
@@ -5084,10 +5301,12 @@ const Methods = {
|
|
|
5084
5301
|
* 处理默认勾选
|
|
5085
5302
|
*/
|
|
5086
5303
|
handleDefaultSelectionChecked () {
|
|
5304
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
5305
|
+
|
|
5087
5306
|
const { fullDataRowIdData, checkboxOpts } = this
|
|
5088
5307
|
const { checkAll, checkRowKeys } = checkboxOpts
|
|
5089
5308
|
if (checkAll) {
|
|
5090
|
-
|
|
5309
|
+
handleCheckedAllCheckboxRow($xeTable, true, true)
|
|
5091
5310
|
} else if (checkRowKeys) {
|
|
5092
5311
|
const defSelection: any[] = []
|
|
5093
5312
|
checkRowKeys.forEach((rowid: any) => {
|
|
@@ -5095,18 +5314,13 @@ const Methods = {
|
|
|
5095
5314
|
defSelection.push(fullDataRowIdData[rowid].row)
|
|
5096
5315
|
}
|
|
5097
5316
|
})
|
|
5098
|
-
|
|
5317
|
+
handleCheckedCheckboxRow($xeTable, defSelection, true, true)
|
|
5099
5318
|
}
|
|
5100
5319
|
},
|
|
5101
|
-
handleCheckedCheckboxRow (rows: any, value:
|
|
5320
|
+
handleCheckedCheckboxRow (rows: any[], value: boolean, isForce?: boolean) {
|
|
5102
5321
|
const $xeTable = this
|
|
5103
5322
|
|
|
5104
|
-
|
|
5105
|
-
rows = [rows]
|
|
5106
|
-
}
|
|
5107
|
-
$xeTable.handleBatchSelectRows(rows, !!value, isForce)
|
|
5108
|
-
$xeTable.checkSelectionStatus()
|
|
5109
|
-
return this.$nextTick()
|
|
5323
|
+
return handleCheckedCheckboxRow($xeTable, rows, value, isForce)
|
|
5110
5324
|
},
|
|
5111
5325
|
/**
|
|
5112
5326
|
* 用于多选行,设置行为选中状态,第二个参数为选中与否
|
|
@@ -5119,7 +5333,7 @@ const Methods = {
|
|
|
5119
5333
|
if (rows && !XEUtils.isArray(rows)) {
|
|
5120
5334
|
rows = [rows]
|
|
5121
5335
|
}
|
|
5122
|
-
return $xeTable
|
|
5336
|
+
return handleCheckedCheckboxRow($xeTable, rows, checked, true)
|
|
5123
5337
|
},
|
|
5124
5338
|
setCheckboxRowKey (keys: any, checked: boolean) {
|
|
5125
5339
|
const $xeTable = this
|
|
@@ -5136,7 +5350,7 @@ const Methods = {
|
|
|
5136
5350
|
rows.push(rowRest.row)
|
|
5137
5351
|
}
|
|
5138
5352
|
})
|
|
5139
|
-
return $xeTable
|
|
5353
|
+
return handleCheckedCheckboxRow($xeTable, rows, checked, true)
|
|
5140
5354
|
},
|
|
5141
5355
|
isCheckedByCheckboxRow (row: any) {
|
|
5142
5356
|
const $xeTable = this
|
|
@@ -5187,9 +5401,9 @@ const Methods = {
|
|
|
5187
5401
|
* 多选,行选中事件
|
|
5188
5402
|
*/
|
|
5189
5403
|
handleBatchSelectRows (rows: any[], checked: boolean, isForce?: boolean) {
|
|
5190
|
-
const $xeTable = this
|
|
5404
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
5191
5405
|
const props = $xeTable
|
|
5192
|
-
const reactData = $xeTable
|
|
5406
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
5193
5407
|
|
|
5194
5408
|
const { treeConfig } = props
|
|
5195
5409
|
const { selectCheckboxMaps } = reactData
|
|
@@ -5210,7 +5424,7 @@ const Methods = {
|
|
|
5210
5424
|
if (indeterminateField) {
|
|
5211
5425
|
XEUtils.set(row, indeterminateField, false)
|
|
5212
5426
|
}
|
|
5213
|
-
$xeTable
|
|
5427
|
+
handleCheckboxReserveRow($xeTable, row, checked)
|
|
5214
5428
|
}
|
|
5215
5429
|
}, { children: transform ? mapChildrenField : childrenField })
|
|
5216
5430
|
reactData.selectCheckboxMaps = selectRowMaps
|
|
@@ -5220,7 +5434,7 @@ const Methods = {
|
|
|
5220
5434
|
rows.forEach(row => {
|
|
5221
5435
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
5222
5436
|
XEUtils.set(row, checkField, checked)
|
|
5223
|
-
$xeTable
|
|
5437
|
+
handleCheckboxReserveRow($xeTable, row, checked)
|
|
5224
5438
|
}
|
|
5225
5439
|
})
|
|
5226
5440
|
}
|
|
@@ -5241,7 +5455,7 @@ const Methods = {
|
|
|
5241
5455
|
delete selectRowMaps[rowid]
|
|
5242
5456
|
}
|
|
5243
5457
|
}
|
|
5244
|
-
$xeTable
|
|
5458
|
+
handleCheckboxReserveRow($xeTable, row, checked)
|
|
5245
5459
|
}
|
|
5246
5460
|
}, { children: transform ? mapChildrenField : childrenField })
|
|
5247
5461
|
reactData.selectCheckboxMaps = selectRowMaps
|
|
@@ -5261,7 +5475,7 @@ const Methods = {
|
|
|
5261
5475
|
delete selectRowMaps[rowid]
|
|
5262
5476
|
}
|
|
5263
5477
|
}
|
|
5264
|
-
$xeTable
|
|
5478
|
+
handleCheckboxReserveRow($xeTable, row, checked)
|
|
5265
5479
|
}
|
|
5266
5480
|
})
|
|
5267
5481
|
reactData.selectCheckboxMaps = selectRowMaps
|
|
@@ -5296,6 +5510,8 @@ const Methods = {
|
|
|
5296
5510
|
}
|
|
5297
5511
|
},
|
|
5298
5512
|
triggerCheckRowEvent (evnt: any, params: any, checked: any) {
|
|
5513
|
+
const $xeTable = this
|
|
5514
|
+
|
|
5299
5515
|
const { checkboxOpts, afterFullData } = this
|
|
5300
5516
|
const { checkMethod, trigger } = checkboxOpts
|
|
5301
5517
|
const { row } = params
|
|
@@ -5312,7 +5528,7 @@ const Methods = {
|
|
|
5312
5528
|
if (_rowIndex !== _firstRowIndex) {
|
|
5313
5529
|
this.setAllCheckboxRow(false)
|
|
5314
5530
|
const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1)
|
|
5315
|
-
|
|
5531
|
+
handleCheckedCheckboxRow($xeTable, rangeRows, true, false)
|
|
5316
5532
|
this.emitEvent('checkbox-range-select', Object.assign({ rangeRecords: rangeRows }, params), evnt)
|
|
5317
5533
|
return
|
|
5318
5534
|
}
|
|
@@ -5342,143 +5558,14 @@ const Methods = {
|
|
|
5342
5558
|
$xeTable.checkSelectionStatus()
|
|
5343
5559
|
return $xeTable.$nextTick()
|
|
5344
5560
|
},
|
|
5345
|
-
handleCheckedAllCheckboxRow (checked: any, isForce: any) {
|
|
5346
|
-
const $xeTable = this
|
|
5347
|
-
const reactData = $xeTable
|
|
5348
|
-
|
|
5349
|
-
const { afterFullData, treeConfig, treeOpts, selectCheckboxMaps, checkboxReserveRowMap, checkboxOpts, afterFullRowMaps } = this
|
|
5350
|
-
const { checkField, reserve, checkStrictly, checkMethod } = checkboxOpts
|
|
5351
|
-
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
|
|
5352
|
-
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
5353
|
-
const selectRowMaps: any = {}
|
|
5354
|
-
|
|
5355
|
-
// 疑惑!
|
|
5356
|
-
if (!treeConfig) {
|
|
5357
|
-
XEUtils.each(selectCheckboxMaps, (row, rowid) => {
|
|
5358
|
-
if (!afterFullRowMaps[rowid]) {
|
|
5359
|
-
selectRowMaps[rowid] = row
|
|
5360
|
-
}
|
|
5361
|
-
})
|
|
5362
|
-
}
|
|
5363
|
-
// 疑惑!
|
|
5364
|
-
|
|
5365
|
-
if (checkStrictly) {
|
|
5366
|
-
this.isAllSelected = checked
|
|
5367
|
-
} else {
|
|
5368
|
-
/**
|
|
5369
|
-
* 绑定属性方式(高性能,有污染)
|
|
5370
|
-
* 必须在行数据存在对应的属性,否则将不响应
|
|
5371
|
-
*/
|
|
5372
|
-
if (checkField) {
|
|
5373
|
-
const checkValFn = (row: any) => {
|
|
5374
|
-
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
5375
|
-
if (checked) {
|
|
5376
|
-
selectRowMaps[getRowid(this, row)] = row
|
|
5377
|
-
}
|
|
5378
|
-
XEUtils.set(row, checkField, checked)
|
|
5379
|
-
}
|
|
5380
|
-
if (treeConfig && indeterminateField) {
|
|
5381
|
-
XEUtils.set(row, indeterminateField, false)
|
|
5382
|
-
}
|
|
5383
|
-
}
|
|
5384
|
-
// 如果存在选中方法
|
|
5385
|
-
// 如果方法成立,则更新值,否则忽略该数据
|
|
5386
|
-
if (treeConfig) {
|
|
5387
|
-
XEUtils.eachTree(afterFullData, checkValFn, { children: childrenField })
|
|
5388
|
-
} else {
|
|
5389
|
-
afterFullData.forEach(checkValFn)
|
|
5390
|
-
}
|
|
5391
|
-
} else {
|
|
5392
|
-
/**
|
|
5393
|
-
* 默认方式(低性能,无污染)
|
|
5394
|
-
* 无需任何属性,直接绑定
|
|
5395
|
-
*/
|
|
5396
|
-
if (treeConfig) {
|
|
5397
|
-
if (checked) {
|
|
5398
|
-
/**
|
|
5399
|
-
* 如果是树勾选
|
|
5400
|
-
* 如果方法成立,则添加到临时集合中
|
|
5401
|
-
*/
|
|
5402
|
-
XEUtils.eachTree(afterFullData, (row) => {
|
|
5403
|
-
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
5404
|
-
selectRowMaps[getRowid(this, row)] = row
|
|
5405
|
-
}
|
|
5406
|
-
}, { children: childrenField })
|
|
5407
|
-
} else {
|
|
5408
|
-
/**
|
|
5409
|
-
* 如果是树取消
|
|
5410
|
-
* 如果方法成立,则不添加到临时集合中
|
|
5411
|
-
*/
|
|
5412
|
-
if (!isForce && checkMethod) {
|
|
5413
|
-
XEUtils.eachTree(afterFullData, (row) => {
|
|
5414
|
-
const rowid = getRowid(this, row)
|
|
5415
|
-
if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
|
|
5416
|
-
selectRowMaps[rowid] = row
|
|
5417
|
-
}
|
|
5418
|
-
}, { children: childrenField })
|
|
5419
|
-
}
|
|
5420
|
-
}
|
|
5421
|
-
} else {
|
|
5422
|
-
if (checked) {
|
|
5423
|
-
/**
|
|
5424
|
-
* 如果是行勾选
|
|
5425
|
-
* 如果存在选中方法且成立或者本身已勾选,则添加到临时集合中
|
|
5426
|
-
* 如果不存在选中方法,则添加所有数据到临时集合中
|
|
5427
|
-
*/
|
|
5428
|
-
if (!isForce && checkMethod) {
|
|
5429
|
-
afterFullData.forEach((row: any) => {
|
|
5430
|
-
const rowid = getRowid(this, row)
|
|
5431
|
-
if (selectCheckboxMaps[rowid] || checkMethod({ row })) {
|
|
5432
|
-
selectRowMaps[rowid] = row
|
|
5433
|
-
}
|
|
5434
|
-
})
|
|
5435
|
-
} else {
|
|
5436
|
-
afterFullData.forEach((row: any) => {
|
|
5437
|
-
selectRowMaps[getRowid(this, row)] = row
|
|
5438
|
-
})
|
|
5439
|
-
}
|
|
5440
|
-
} else {
|
|
5441
|
-
/**
|
|
5442
|
-
* 如果是行取消
|
|
5443
|
-
* 如果方法成立,则不添加到临时集合中;如果方法不成立则判断当前是否已勾选,如果已被勾选则添加到新集合中
|
|
5444
|
-
* 如果不存在选中方法,无需处理,临时集合默认为空
|
|
5445
|
-
*/
|
|
5446
|
-
if (!isForce && checkMethod) {
|
|
5447
|
-
afterFullData.forEach((row: any) => {
|
|
5448
|
-
const rowid = getRowid(this, row)
|
|
5449
|
-
if (checkMethod({ row }) ? 0 : selectCheckboxMaps[rowid]) {
|
|
5450
|
-
selectRowMaps[rowid] = row
|
|
5451
|
-
}
|
|
5452
|
-
})
|
|
5453
|
-
}
|
|
5454
|
-
}
|
|
5455
|
-
}
|
|
5456
|
-
}
|
|
5457
|
-
if (reserve) {
|
|
5458
|
-
if (checked) {
|
|
5459
|
-
XEUtils.each(selectRowMaps, (row, rowid) => {
|
|
5460
|
-
checkboxReserveRowMap[rowid] = row
|
|
5461
|
-
})
|
|
5462
|
-
} else {
|
|
5463
|
-
afterFullData.forEach((row: any) => this.handleCheckboxReserveRow(row, false))
|
|
5464
|
-
}
|
|
5465
|
-
}
|
|
5466
|
-
this.selectCheckboxMaps = checkField ? {} : selectRowMaps
|
|
5467
|
-
}
|
|
5468
|
-
|
|
5469
|
-
reactData.isAllSelected = checked
|
|
5470
|
-
reactData.isIndeterminate = false
|
|
5471
|
-
this.treeIndeterminateMaps = {}
|
|
5472
|
-
this.treeIndeterminateRowMaps = {}
|
|
5473
|
-
this.checkSelectionStatus()
|
|
5474
|
-
return this.$nextTick()
|
|
5475
|
-
},
|
|
5476
5561
|
/**
|
|
5477
5562
|
* 用于多选行,设置所有行的选中状态
|
|
5478
5563
|
* @param {Boolean} value 是否选中
|
|
5479
5564
|
*/
|
|
5480
|
-
setAllCheckboxRow (value:
|
|
5481
|
-
|
|
5565
|
+
setAllCheckboxRow (value: boolean) {
|
|
5566
|
+
const $xeTable = this
|
|
5567
|
+
|
|
5568
|
+
return handleCheckedAllCheckboxRow($xeTable, value, true)
|
|
5482
5569
|
},
|
|
5483
5570
|
updateCheckboxStatus () {
|
|
5484
5571
|
const $xeTable = this
|
|
@@ -5639,43 +5726,6 @@ const Methods = {
|
|
|
5639
5726
|
$xeTable.updateCheckboxStatus()
|
|
5640
5727
|
$xeTable.updateAllCheckboxStatus()
|
|
5641
5728
|
},
|
|
5642
|
-
// 还原展开、选中等相关状态
|
|
5643
|
-
handleReserveStatus () {
|
|
5644
|
-
const $xeTable = this
|
|
5645
|
-
|
|
5646
|
-
const { expandColumn, treeOpts, treeConfig, fullDataRowIdData, fullAllDataRowIdData, currentRow, selectRadioRow, radioReserveRow, radioOpts, checkboxOpts, selectCheckboxMaps, rowExpandedMaps, treeExpandedMaps, expandOpts } = this
|
|
5647
|
-
// 单选框
|
|
5648
|
-
if (selectRadioRow && !fullAllDataRowIdData[getRowid($xeTable, selectRadioRow)]) {
|
|
5649
|
-
this.selectRadioRow = null // 刷新单选行状态
|
|
5650
|
-
}
|
|
5651
|
-
// 还原保留选中状态
|
|
5652
|
-
if (radioOpts.reserve && radioReserveRow) {
|
|
5653
|
-
const rowid = getRowid(this, radioReserveRow)
|
|
5654
|
-
if (fullDataRowIdData[rowid]) {
|
|
5655
|
-
this.handleCheckedRadioRow(fullDataRowIdData[rowid].row, true)
|
|
5656
|
-
}
|
|
5657
|
-
}
|
|
5658
|
-
// 复选框
|
|
5659
|
-
this.selectCheckboxMaps = getRecoverRowMaps(this, selectCheckboxMaps) // 刷新多选行状态
|
|
5660
|
-
// 还原保留选中状态
|
|
5661
|
-
if (checkboxOpts.reserve) {
|
|
5662
|
-
this.handleCheckedCheckboxRow(handleReserveRow(this, this.checkboxReserveRowMap), true, true)
|
|
5663
|
-
}
|
|
5664
|
-
if (currentRow && !this.fullAllDataRowIdData[getRowid($xeTable, currentRow)]) {
|
|
5665
|
-
this.currentRow = null // 刷新当前行状态
|
|
5666
|
-
}
|
|
5667
|
-
// 行展开
|
|
5668
|
-
this.rowExpandedMaps = expandColumn ? getRecoverRowMaps(this, rowExpandedMaps) : [] // 刷新行展开状态
|
|
5669
|
-
// 还原保留状态
|
|
5670
|
-
if (expandColumn && expandOpts.reserve) {
|
|
5671
|
-
this.setRowExpand(handleReserveRow(this, this.rowExpandedReserveRowMap), true)
|
|
5672
|
-
}
|
|
5673
|
-
// 树展开
|
|
5674
|
-
this.treeExpandedMaps = treeConfig ? getRecoverRowMaps(this, treeExpandedMaps) : [] // 刷新树展开状态
|
|
5675
|
-
if (treeConfig && treeOpts.reserve) {
|
|
5676
|
-
this.setTreeExpand(handleReserveRow(this, this.treeExpandedReserveRowMap), true)
|
|
5677
|
-
}
|
|
5678
|
-
},
|
|
5679
5729
|
/**
|
|
5680
5730
|
* 获取单选框保留选中的行
|
|
5681
5731
|
*/
|
|
@@ -5708,12 +5758,6 @@ const Methods = {
|
|
|
5708
5758
|
this.radioReserveRow = null
|
|
5709
5759
|
return this.$nextTick()
|
|
5710
5760
|
},
|
|
5711
|
-
handleRadioReserveRow (row: any) {
|
|
5712
|
-
const { radioOpts } = this
|
|
5713
|
-
if (radioOpts.reserve) {
|
|
5714
|
-
this.radioReserveRow = row
|
|
5715
|
-
}
|
|
5716
|
-
},
|
|
5717
5761
|
/**
|
|
5718
5762
|
* 获取复选框保留选中的行
|
|
5719
5763
|
*/
|
|
@@ -5764,15 +5808,24 @@ const Methods = {
|
|
|
5764
5808
|
}
|
|
5765
5809
|
},
|
|
5766
5810
|
handleCheckAllEvent (evnt: any, value: any) {
|
|
5767
|
-
this
|
|
5811
|
+
const $xeTable = this
|
|
5812
|
+
|
|
5813
|
+
handleCheckedAllCheckboxRow($xeTable, value)
|
|
5768
5814
|
if (evnt) {
|
|
5769
|
-
|
|
5815
|
+
$xeTable.dispatchEvent('checkbox-all', {
|
|
5816
|
+
records: $xeTable.getCheckboxRecords(),
|
|
5817
|
+
reserves: $xeTable.getCheckboxReserveRecords(),
|
|
5818
|
+
indeterminates: $xeTable.getCheckboxIndeterminateRecords(),
|
|
5819
|
+
checked: value
|
|
5820
|
+
}, evnt)
|
|
5770
5821
|
}
|
|
5771
5822
|
},
|
|
5772
5823
|
/**
|
|
5773
5824
|
* 多选,选中所有事件
|
|
5774
5825
|
*/
|
|
5775
5826
|
triggerCheckAllEvent (evnt: any, value: any) {
|
|
5827
|
+
const $xeTable = this
|
|
5828
|
+
|
|
5776
5829
|
const { checkboxOpts } = this
|
|
5777
5830
|
const { trigger } = checkboxOpts
|
|
5778
5831
|
if (trigger === 'manual') {
|
|
@@ -5781,7 +5834,7 @@ const Methods = {
|
|
|
5781
5834
|
if (evnt) {
|
|
5782
5835
|
evnt.stopPropagation()
|
|
5783
5836
|
}
|
|
5784
|
-
|
|
5837
|
+
$xeTable.handleCheckAllEvent(evnt, value)
|
|
5785
5838
|
},
|
|
5786
5839
|
/**
|
|
5787
5840
|
* 多选,切换所有行的选中状态
|
|
@@ -5825,11 +5878,13 @@ const Methods = {
|
|
|
5825
5878
|
* 处理单选框默认勾选
|
|
5826
5879
|
*/
|
|
5827
5880
|
handleDefaultRadioChecked () {
|
|
5881
|
+
const $xeTable = this
|
|
5882
|
+
|
|
5828
5883
|
const { radioOpts, fullDataRowIdData } = this
|
|
5829
5884
|
const { checkRowKey: rowid, reserve } = radioOpts
|
|
5830
5885
|
if (rowid) {
|
|
5831
5886
|
if (fullDataRowIdData[rowid]) {
|
|
5832
|
-
|
|
5887
|
+
handleCheckedRadioRow($xeTable, fullDataRowIdData[rowid].row, true)
|
|
5833
5888
|
}
|
|
5834
5889
|
if (reserve) {
|
|
5835
5890
|
const rowkey = getRowkey(this)
|
|
@@ -5843,6 +5898,8 @@ const Methods = {
|
|
|
5843
5898
|
triggerRadioRowEvent (evnt: Event, params: {
|
|
5844
5899
|
row: any
|
|
5845
5900
|
}) {
|
|
5901
|
+
const $xeTable = this
|
|
5902
|
+
|
|
5846
5903
|
const { selectRadioRow: oldValue, radioOpts } = this
|
|
5847
5904
|
const { row } = params
|
|
5848
5905
|
const { trigger } = radioOpts
|
|
@@ -5853,7 +5910,7 @@ const Methods = {
|
|
|
5853
5910
|
let newValue = row
|
|
5854
5911
|
let isChange = oldValue !== newValue
|
|
5855
5912
|
if (isChange) {
|
|
5856
|
-
|
|
5913
|
+
handleCheckedRadioRow($xeTable, newValue)
|
|
5857
5914
|
} else if (!radioOpts.strict) {
|
|
5858
5915
|
isChange = oldValue === newValue
|
|
5859
5916
|
if (isChange) {
|
|
@@ -5929,15 +5986,6 @@ const Methods = {
|
|
|
5929
5986
|
}
|
|
5930
5987
|
return false
|
|
5931
5988
|
},
|
|
5932
|
-
handleCheckedRadioRow (row: any, isForce?: boolean) {
|
|
5933
|
-
const { radioOpts } = this
|
|
5934
|
-
const { checkMethod } = radioOpts
|
|
5935
|
-
if (row && (isForce || (!checkMethod || checkMethod({ row })))) {
|
|
5936
|
-
this.selectRadioRow = row
|
|
5937
|
-
this.handleRadioReserveRow(row)
|
|
5938
|
-
}
|
|
5939
|
-
return this.$nextTick()
|
|
5940
|
-
},
|
|
5941
5989
|
/**
|
|
5942
5990
|
* 用于单选行,设置某一行为选中状态
|
|
5943
5991
|
* @param {Row} row 行对象
|
|
@@ -5945,7 +5993,7 @@ const Methods = {
|
|
|
5945
5993
|
setRadioRow (row: any) {
|
|
5946
5994
|
const $xeTable = this
|
|
5947
5995
|
|
|
5948
|
-
return $xeTable
|
|
5996
|
+
return handleCheckedRadioRow($xeTable, row, true)
|
|
5949
5997
|
},
|
|
5950
5998
|
/**
|
|
5951
5999
|
* 用于单选行,设置某一行为选中状态
|
|
@@ -5958,7 +6006,7 @@ const Methods = {
|
|
|
5958
6006
|
const { fullAllDataRowIdData } = internalData
|
|
5959
6007
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
5960
6008
|
if (rowRest) {
|
|
5961
|
-
return $xeTable
|
|
6009
|
+
return handleCheckedRadioRow($xeTable, rowRest.row, true)
|
|
5962
6010
|
}
|
|
5963
6011
|
return $xeTable.$nextTick()
|
|
5964
6012
|
},
|
|
@@ -7744,7 +7792,7 @@ const Methods = {
|
|
|
7744
7792
|
}
|
|
7745
7793
|
// 如果当前节点已选中,则展开后子节点也被选中
|
|
7746
7794
|
if (!checkStrictly && this.isCheckedByCheckboxRow(row)) {
|
|
7747
|
-
|
|
7795
|
+
handleCheckedCheckboxRow($xeTable, childRows, true)
|
|
7748
7796
|
}
|
|
7749
7797
|
return this.$nextTick().then(() => {
|
|
7750
7798
|
if (transform) {
|
|
@@ -831,7 +831,7 @@
|
|
|
831
831
|
background-color: var(--vxe-ui-layout-background-color);
|
|
832
832
|
}
|
|
833
833
|
.vxe-table--footer-wrapper {
|
|
834
|
-
margin-top: -
|
|
834
|
+
margin-top: calc(var(--vxe-ui-table-border-width) * -1);
|
|
835
835
|
background-color: var(--vxe-ui-table-footer-background-color);
|
|
836
836
|
}
|
|
837
837
|
.vxe-table--header,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|