vxe-table 3.13.5 → 3.13.7
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 +4 -2
- package/es/locale/lang/de-DE.js +4 -2
- package/es/locale/lang/en-US.js +4 -2
- package/es/locale/lang/es-ES.js +4 -2
- package/es/locale/lang/fr-FR.js +4 -2
- package/es/locale/lang/hu-HU.js +4 -2
- package/es/locale/lang/hy-AM.js +4 -2
- package/es/locale/lang/id-ID.js +4 -2
- package/es/locale/lang/it-IT.js +4 -2
- package/es/locale/lang/ja-JP.js +4 -2
- package/es/locale/lang/ko-KR.js +4 -2
- package/es/locale/lang/nb-NO.js +4 -2
- package/es/locale/lang/pt-BR.js +4 -2
- package/es/locale/lang/ru-RU.js +4 -2
- package/es/locale/lang/th-TH.js +4 -2
- package/es/locale/lang/ug-CN.js +4 -2
- package/es/locale/lang/uk-UA.js +4 -2
- package/es/locale/lang/vi-VN.js +4 -2
- package/es/locale/lang/zh-CHT.js +4 -2
- package/es/locale/lang/zh-CN.js +4 -2
- 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/module/filter/mixin.js +87 -79
- package/es/table/module/menu/mixin.js +2 -1
- package/es/table/src/methods.js +254 -220
- package/es/table/src/table.js +1 -1
- 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 +412 -379
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +4 -2
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/de-DE.js +4 -2
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/en-US.js +4 -2
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +4 -2
- package/lib/locale/lang/es-ES.js +4 -2
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +4 -2
- package/lib/locale/lang/fr-FR.js +4 -2
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/hu-HU.js +4 -2
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +4 -2
- package/lib/locale/lang/hy-AM.js +4 -2
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/id-ID.js +4 -2
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/it-IT.js +4 -2
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +4 -2
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +4 -2
- package/lib/locale/lang/ko-KR.js +4 -2
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +4 -2
- package/lib/locale/lang/nb-NO.js +4 -2
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/pt-BR.js +4 -2
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +4 -2
- package/lib/locale/lang/ru-RU.js +4 -2
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +4 -2
- package/lib/locale/lang/th-TH.js +4 -2
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/ug-CN.js +4 -2
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/uk-UA.js +4 -2
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +4 -2
- package/lib/locale/lang/vi-VN.js +4 -2
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +4 -2
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +4 -2
- package/lib/locale/lang/zh-CN.js +4 -2
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +4 -2
- 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/module/filter/mixin.js +105 -99
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/module/menu/mixin.js +2 -1
- package/lib/table/module/menu/mixin.min.js +1 -1
- package/lib/table/src/methods.js +289 -268
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +1 -1
- package/lib/table/src/table.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 +4 -2
- package/packages/locale/lang/de-DE.ts +4 -2
- package/packages/locale/lang/en-US.ts +4 -2
- package/packages/locale/lang/es-ES.ts +4 -2
- package/packages/locale/lang/fr-FR.ts +4 -2
- package/packages/locale/lang/hu-HU.ts +4 -2
- package/packages/locale/lang/hy-AM.ts +4 -2
- package/packages/locale/lang/id-ID.ts +4 -2
- package/packages/locale/lang/it-IT.ts +4 -2
- package/packages/locale/lang/ja-JP.ts +4 -2
- package/packages/locale/lang/ko-KR.ts +4 -2
- package/packages/locale/lang/nb-NO.ts +4 -2
- package/packages/locale/lang/pt-BR.ts +4 -2
- package/packages/locale/lang/ru-RU.ts +4 -2
- package/packages/locale/lang/th-TH.ts +4 -2
- package/packages/locale/lang/ug-CN.ts +4 -2
- package/packages/locale/lang/uk-UA.ts +4 -2
- package/packages/locale/lang/vi-VN.ts +4 -2
- package/packages/locale/lang/zh-CHT.ts +4 -2
- package/packages/locale/lang/zh-CN.ts +4 -2
- package/packages/table/module/export/export-panel.ts +7 -4
- package/packages/table/module/export/mixin.ts +2 -2
- package/packages/table/module/filter/mixin.ts +85 -77
- package/packages/table/module/menu/mixin.ts +2 -1
- package/packages/table/src/methods.ts +271 -221
- package/packages/table/src/table.ts +1 -1
- package/styles/components/table.scss +1 -1
- /package/es/{iconfont.1740038065641.ttf → iconfont.1740188839037.ttf} +0 -0
- /package/es/{iconfont.1740038065641.woff → iconfont.1740188839037.woff} +0 -0
- /package/es/{iconfont.1740038065641.woff2 → iconfont.1740188839037.woff2} +0 -0
- /package/lib/{iconfont.1740038065641.ttf → iconfont.1740188839037.ttf} +0 -0
- /package/lib/{iconfont.1740038065641.woff → iconfont.1740188839037.woff} +0 -0
- /package/lib/{iconfont.1740038065641.woff2 → iconfont.1740188839037.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()
|
|
@@ -4426,12 +4643,14 @@ const Methods = {
|
|
|
4426
4643
|
handleGlobalMousedownEvent (evnt: any) {
|
|
4427
4644
|
const { $el, $refs, $xegrid, $toolbar, mouseConfig, editStore, ctxMenuStore, editRules, editOpts, validOpts, areaOpts, filterStore, customStore, getRowNode } = this
|
|
4428
4645
|
const { actived } = editStore
|
|
4429
|
-
const {
|
|
4646
|
+
const { customWrapper, refValidTooltip } = $refs
|
|
4647
|
+
const tableFilter = $refs.refTableFilter
|
|
4648
|
+
const tableMenu = $refs.refTableMenu
|
|
4430
4649
|
// 筛选
|
|
4431
|
-
if (
|
|
4650
|
+
if (tableFilter) {
|
|
4432
4651
|
if (getEventTargetNode(evnt, $el, 'vxe-cell--filter').flag) {
|
|
4433
4652
|
// 如果点击了筛选按钮
|
|
4434
|
-
} else if (getEventTargetNode(evnt,
|
|
4653
|
+
} else if (getEventTargetNode(evnt, tableFilter.$el).flag) {
|
|
4435
4654
|
// 如果点击筛选容器
|
|
4436
4655
|
} else {
|
|
4437
4656
|
if (!getEventTargetNode(evnt, document.body, 'vxe-table--ignore-clear').flag) {
|
|
@@ -4508,7 +4727,7 @@ const Methods = {
|
|
|
4508
4727
|
}
|
|
4509
4728
|
}
|
|
4510
4729
|
} else if (mouseConfig) {
|
|
4511
|
-
if (!getEventTargetNode(evnt, $el).flag && !($xegrid && getEventTargetNode(evnt, $xegrid.$el).flag) && !(
|
|
4730
|
+
if (!getEventTargetNode(evnt, $el).flag && !($xegrid && getEventTargetNode(evnt, $xegrid.$el).flag) && !(tableMenu && getEventTargetNode(evnt, tableMenu.$el).flag) && !($toolbar && getEventTargetNode(evnt, $toolbar.$el).flag)) {
|
|
4512
4731
|
if (this.clearSelected) {
|
|
4513
4732
|
this.clearSelected()
|
|
4514
4733
|
}
|
|
@@ -4527,7 +4746,7 @@ const Methods = {
|
|
|
4527
4746
|
}
|
|
4528
4747
|
}
|
|
4529
4748
|
// 如果配置了快捷菜单且,点击了其他地方则关闭
|
|
4530
|
-
if (ctxMenuStore.visible &&
|
|
4749
|
+
if (ctxMenuStore.visible && tableMenu && !getEventTargetNode(evnt, tableMenu.$el).flag) {
|
|
4531
4750
|
this.closeMenu()
|
|
4532
4751
|
}
|
|
4533
4752
|
const isActivated = getEventTargetNode(evnt, ($xegrid || this).$el).flag
|
|
@@ -5084,10 +5303,12 @@ const Methods = {
|
|
|
5084
5303
|
* 处理默认勾选
|
|
5085
5304
|
*/
|
|
5086
5305
|
handleDefaultSelectionChecked () {
|
|
5306
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
5307
|
+
|
|
5087
5308
|
const { fullDataRowIdData, checkboxOpts } = this
|
|
5088
5309
|
const { checkAll, checkRowKeys } = checkboxOpts
|
|
5089
5310
|
if (checkAll) {
|
|
5090
|
-
|
|
5311
|
+
handleCheckedAllCheckboxRow($xeTable, true, true)
|
|
5091
5312
|
} else if (checkRowKeys) {
|
|
5092
5313
|
const defSelection: any[] = []
|
|
5093
5314
|
checkRowKeys.forEach((rowid: any) => {
|
|
@@ -5095,18 +5316,13 @@ const Methods = {
|
|
|
5095
5316
|
defSelection.push(fullDataRowIdData[rowid].row)
|
|
5096
5317
|
}
|
|
5097
5318
|
})
|
|
5098
|
-
|
|
5319
|
+
handleCheckedCheckboxRow($xeTable, defSelection, true, true)
|
|
5099
5320
|
}
|
|
5100
5321
|
},
|
|
5101
|
-
handleCheckedCheckboxRow (rows: any, value:
|
|
5322
|
+
handleCheckedCheckboxRow (rows: any[], value: boolean, isForce?: boolean) {
|
|
5102
5323
|
const $xeTable = this
|
|
5103
5324
|
|
|
5104
|
-
|
|
5105
|
-
rows = [rows]
|
|
5106
|
-
}
|
|
5107
|
-
$xeTable.handleBatchSelectRows(rows, !!value, isForce)
|
|
5108
|
-
$xeTable.checkSelectionStatus()
|
|
5109
|
-
return this.$nextTick()
|
|
5325
|
+
return handleCheckedCheckboxRow($xeTable, rows, value, isForce)
|
|
5110
5326
|
},
|
|
5111
5327
|
/**
|
|
5112
5328
|
* 用于多选行,设置行为选中状态,第二个参数为选中与否
|
|
@@ -5119,7 +5335,7 @@ const Methods = {
|
|
|
5119
5335
|
if (rows && !XEUtils.isArray(rows)) {
|
|
5120
5336
|
rows = [rows]
|
|
5121
5337
|
}
|
|
5122
|
-
return $xeTable
|
|
5338
|
+
return handleCheckedCheckboxRow($xeTable, rows, checked, true)
|
|
5123
5339
|
},
|
|
5124
5340
|
setCheckboxRowKey (keys: any, checked: boolean) {
|
|
5125
5341
|
const $xeTable = this
|
|
@@ -5136,7 +5352,7 @@ const Methods = {
|
|
|
5136
5352
|
rows.push(rowRest.row)
|
|
5137
5353
|
}
|
|
5138
5354
|
})
|
|
5139
|
-
return $xeTable
|
|
5355
|
+
return handleCheckedCheckboxRow($xeTable, rows, checked, true)
|
|
5140
5356
|
},
|
|
5141
5357
|
isCheckedByCheckboxRow (row: any) {
|
|
5142
5358
|
const $xeTable = this
|
|
@@ -5187,9 +5403,9 @@ const Methods = {
|
|
|
5187
5403
|
* 多选,行选中事件
|
|
5188
5404
|
*/
|
|
5189
5405
|
handleBatchSelectRows (rows: any[], checked: boolean, isForce?: boolean) {
|
|
5190
|
-
const $xeTable = this
|
|
5406
|
+
const $xeTable = this as VxeTableConstructor & VxeTablePrivateMethods
|
|
5191
5407
|
const props = $xeTable
|
|
5192
|
-
const reactData = $xeTable
|
|
5408
|
+
const reactData = $xeTable as unknown as TableReactData
|
|
5193
5409
|
|
|
5194
5410
|
const { treeConfig } = props
|
|
5195
5411
|
const { selectCheckboxMaps } = reactData
|
|
@@ -5210,7 +5426,7 @@ const Methods = {
|
|
|
5210
5426
|
if (indeterminateField) {
|
|
5211
5427
|
XEUtils.set(row, indeterminateField, false)
|
|
5212
5428
|
}
|
|
5213
|
-
$xeTable
|
|
5429
|
+
handleCheckboxReserveRow($xeTable, row, checked)
|
|
5214
5430
|
}
|
|
5215
5431
|
}, { children: transform ? mapChildrenField : childrenField })
|
|
5216
5432
|
reactData.selectCheckboxMaps = selectRowMaps
|
|
@@ -5220,7 +5436,7 @@ const Methods = {
|
|
|
5220
5436
|
rows.forEach(row => {
|
|
5221
5437
|
if (isForce || (!checkMethod || checkMethod({ row }))) {
|
|
5222
5438
|
XEUtils.set(row, checkField, checked)
|
|
5223
|
-
$xeTable
|
|
5439
|
+
handleCheckboxReserveRow($xeTable, row, checked)
|
|
5224
5440
|
}
|
|
5225
5441
|
})
|
|
5226
5442
|
}
|
|
@@ -5241,7 +5457,7 @@ const Methods = {
|
|
|
5241
5457
|
delete selectRowMaps[rowid]
|
|
5242
5458
|
}
|
|
5243
5459
|
}
|
|
5244
|
-
$xeTable
|
|
5460
|
+
handleCheckboxReserveRow($xeTable, row, checked)
|
|
5245
5461
|
}
|
|
5246
5462
|
}, { children: transform ? mapChildrenField : childrenField })
|
|
5247
5463
|
reactData.selectCheckboxMaps = selectRowMaps
|
|
@@ -5261,7 +5477,7 @@ const Methods = {
|
|
|
5261
5477
|
delete selectRowMaps[rowid]
|
|
5262
5478
|
}
|
|
5263
5479
|
}
|
|
5264
|
-
$xeTable
|
|
5480
|
+
handleCheckboxReserveRow($xeTable, row, checked)
|
|
5265
5481
|
}
|
|
5266
5482
|
})
|
|
5267
5483
|
reactData.selectCheckboxMaps = selectRowMaps
|
|
@@ -5296,6 +5512,8 @@ const Methods = {
|
|
|
5296
5512
|
}
|
|
5297
5513
|
},
|
|
5298
5514
|
triggerCheckRowEvent (evnt: any, params: any, checked: any) {
|
|
5515
|
+
const $xeTable = this
|
|
5516
|
+
|
|
5299
5517
|
const { checkboxOpts, afterFullData } = this
|
|
5300
5518
|
const { checkMethod, trigger } = checkboxOpts
|
|
5301
5519
|
const { row } = params
|
|
@@ -5312,7 +5530,7 @@ const Methods = {
|
|
|
5312
5530
|
if (_rowIndex !== _firstRowIndex) {
|
|
5313
5531
|
this.setAllCheckboxRow(false)
|
|
5314
5532
|
const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1)
|
|
5315
|
-
|
|
5533
|
+
handleCheckedCheckboxRow($xeTable, rangeRows, true, false)
|
|
5316
5534
|
this.emitEvent('checkbox-range-select', Object.assign({ rangeRecords: rangeRows }, params), evnt)
|
|
5317
5535
|
return
|
|
5318
5536
|
}
|
|
@@ -5342,143 +5560,14 @@ const Methods = {
|
|
|
5342
5560
|
$xeTable.checkSelectionStatus()
|
|
5343
5561
|
return $xeTable.$nextTick()
|
|
5344
5562
|
},
|
|
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
5563
|
/**
|
|
5477
5564
|
* 用于多选行,设置所有行的选中状态
|
|
5478
5565
|
* @param {Boolean} value 是否选中
|
|
5479
5566
|
*/
|
|
5480
|
-
setAllCheckboxRow (value:
|
|
5481
|
-
|
|
5567
|
+
setAllCheckboxRow (value: boolean) {
|
|
5568
|
+
const $xeTable = this
|
|
5569
|
+
|
|
5570
|
+
return handleCheckedAllCheckboxRow($xeTable, value, true)
|
|
5482
5571
|
},
|
|
5483
5572
|
updateCheckboxStatus () {
|
|
5484
5573
|
const $xeTable = this
|
|
@@ -5639,43 +5728,6 @@ const Methods = {
|
|
|
5639
5728
|
$xeTable.updateCheckboxStatus()
|
|
5640
5729
|
$xeTable.updateAllCheckboxStatus()
|
|
5641
5730
|
},
|
|
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
5731
|
/**
|
|
5680
5732
|
* 获取单选框保留选中的行
|
|
5681
5733
|
*/
|
|
@@ -5708,12 +5760,6 @@ const Methods = {
|
|
|
5708
5760
|
this.radioReserveRow = null
|
|
5709
5761
|
return this.$nextTick()
|
|
5710
5762
|
},
|
|
5711
|
-
handleRadioReserveRow (row: any) {
|
|
5712
|
-
const { radioOpts } = this
|
|
5713
|
-
if (radioOpts.reserve) {
|
|
5714
|
-
this.radioReserveRow = row
|
|
5715
|
-
}
|
|
5716
|
-
},
|
|
5717
5763
|
/**
|
|
5718
5764
|
* 获取复选框保留选中的行
|
|
5719
5765
|
*/
|
|
@@ -5764,15 +5810,24 @@ const Methods = {
|
|
|
5764
5810
|
}
|
|
5765
5811
|
},
|
|
5766
5812
|
handleCheckAllEvent (evnt: any, value: any) {
|
|
5767
|
-
this
|
|
5813
|
+
const $xeTable = this
|
|
5814
|
+
|
|
5815
|
+
handleCheckedAllCheckboxRow($xeTable, value)
|
|
5768
5816
|
if (evnt) {
|
|
5769
|
-
|
|
5817
|
+
$xeTable.dispatchEvent('checkbox-all', {
|
|
5818
|
+
records: $xeTable.getCheckboxRecords(),
|
|
5819
|
+
reserves: $xeTable.getCheckboxReserveRecords(),
|
|
5820
|
+
indeterminates: $xeTable.getCheckboxIndeterminateRecords(),
|
|
5821
|
+
checked: value
|
|
5822
|
+
}, evnt)
|
|
5770
5823
|
}
|
|
5771
5824
|
},
|
|
5772
5825
|
/**
|
|
5773
5826
|
* 多选,选中所有事件
|
|
5774
5827
|
*/
|
|
5775
5828
|
triggerCheckAllEvent (evnt: any, value: any) {
|
|
5829
|
+
const $xeTable = this
|
|
5830
|
+
|
|
5776
5831
|
const { checkboxOpts } = this
|
|
5777
5832
|
const { trigger } = checkboxOpts
|
|
5778
5833
|
if (trigger === 'manual') {
|
|
@@ -5781,7 +5836,7 @@ const Methods = {
|
|
|
5781
5836
|
if (evnt) {
|
|
5782
5837
|
evnt.stopPropagation()
|
|
5783
5838
|
}
|
|
5784
|
-
|
|
5839
|
+
$xeTable.handleCheckAllEvent(evnt, value)
|
|
5785
5840
|
},
|
|
5786
5841
|
/**
|
|
5787
5842
|
* 多选,切换所有行的选中状态
|
|
@@ -5825,11 +5880,13 @@ const Methods = {
|
|
|
5825
5880
|
* 处理单选框默认勾选
|
|
5826
5881
|
*/
|
|
5827
5882
|
handleDefaultRadioChecked () {
|
|
5883
|
+
const $xeTable = this
|
|
5884
|
+
|
|
5828
5885
|
const { radioOpts, fullDataRowIdData } = this
|
|
5829
5886
|
const { checkRowKey: rowid, reserve } = radioOpts
|
|
5830
5887
|
if (rowid) {
|
|
5831
5888
|
if (fullDataRowIdData[rowid]) {
|
|
5832
|
-
|
|
5889
|
+
handleCheckedRadioRow($xeTable, fullDataRowIdData[rowid].row, true)
|
|
5833
5890
|
}
|
|
5834
5891
|
if (reserve) {
|
|
5835
5892
|
const rowkey = getRowkey(this)
|
|
@@ -5843,6 +5900,8 @@ const Methods = {
|
|
|
5843
5900
|
triggerRadioRowEvent (evnt: Event, params: {
|
|
5844
5901
|
row: any
|
|
5845
5902
|
}) {
|
|
5903
|
+
const $xeTable = this
|
|
5904
|
+
|
|
5846
5905
|
const { selectRadioRow: oldValue, radioOpts } = this
|
|
5847
5906
|
const { row } = params
|
|
5848
5907
|
const { trigger } = radioOpts
|
|
@@ -5853,7 +5912,7 @@ const Methods = {
|
|
|
5853
5912
|
let newValue = row
|
|
5854
5913
|
let isChange = oldValue !== newValue
|
|
5855
5914
|
if (isChange) {
|
|
5856
|
-
|
|
5915
|
+
handleCheckedRadioRow($xeTable, newValue)
|
|
5857
5916
|
} else if (!radioOpts.strict) {
|
|
5858
5917
|
isChange = oldValue === newValue
|
|
5859
5918
|
if (isChange) {
|
|
@@ -5929,15 +5988,6 @@ const Methods = {
|
|
|
5929
5988
|
}
|
|
5930
5989
|
return false
|
|
5931
5990
|
},
|
|
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
5991
|
/**
|
|
5942
5992
|
* 用于单选行,设置某一行为选中状态
|
|
5943
5993
|
* @param {Row} row 行对象
|
|
@@ -5945,7 +5995,7 @@ const Methods = {
|
|
|
5945
5995
|
setRadioRow (row: any) {
|
|
5946
5996
|
const $xeTable = this
|
|
5947
5997
|
|
|
5948
|
-
return $xeTable
|
|
5998
|
+
return handleCheckedRadioRow($xeTable, row, true)
|
|
5949
5999
|
},
|
|
5950
6000
|
/**
|
|
5951
6001
|
* 用于单选行,设置某一行为选中状态
|
|
@@ -5958,7 +6008,7 @@ const Methods = {
|
|
|
5958
6008
|
const { fullAllDataRowIdData } = internalData
|
|
5959
6009
|
const rowRest = fullAllDataRowIdData[rowid]
|
|
5960
6010
|
if (rowRest) {
|
|
5961
|
-
return $xeTable
|
|
6011
|
+
return handleCheckedRadioRow($xeTable, rowRest.row, true)
|
|
5962
6012
|
}
|
|
5963
6013
|
return $xeTable.$nextTick()
|
|
5964
6014
|
},
|
|
@@ -7744,7 +7794,7 @@ const Methods = {
|
|
|
7744
7794
|
}
|
|
7745
7795
|
// 如果当前节点已选中,则展开后子节点也被选中
|
|
7746
7796
|
if (!checkStrictly && this.isCheckedByCheckboxRow(row)) {
|
|
7747
|
-
|
|
7797
|
+
handleCheckedCheckboxRow($xeTable, childRows, true)
|
|
7748
7798
|
}
|
|
7749
7799
|
return this.$nextTick().then(() => {
|
|
7750
7800
|
if (transform) {
|