vxe-pc-ui 4.15.13 → 4.15.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/dist/all.esm.js +709 -140
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/button/style.css +42 -72
- package/es/button/style.min.css +1 -1
- package/es/cascader/style.css +29 -33
- package/es/cascader/style.min.css +1 -1
- package/es/checkbox/src/button.js +3 -1
- package/es/checkbox/src/group.js +6 -1
- package/es/checkbox/style.css +22 -28
- package/es/checkbox/style.min.css +1 -1
- package/es/checkbox-button/style.css +151 -8
- package/es/checkbox-button/style.min.css +1 -1
- package/es/context-menu/style.css +14 -13
- package/es/context-menu/style.min.css +1 -1
- package/es/date-picker/src/date-picker.js +1 -1
- package/es/form/style.css +45 -95
- package/es/form/style.min.css +1 -1
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +145 -46
- package/es/icon-picker/style.css +49 -23
- package/es/icon-picker/style.min.css +1 -1
- package/es/language/ar-EG.js +3 -0
- package/es/language/de-DE.js +3 -0
- package/es/language/en-US.js +3 -0
- package/es/language/es-ES.js +3 -0
- package/es/language/fr-FR.js +3 -0
- package/es/language/hu-HU.js +3 -0
- package/es/language/hy-AM.js +3 -0
- package/es/language/id-ID.js +3 -0
- package/es/language/it-IT.js +3 -0
- package/es/language/ja-JP.js +3 -0
- package/es/language/ko-KR.js +3 -0
- package/es/language/ms-MY.js +3 -0
- package/es/language/nb-NO.js +3 -0
- package/es/language/pt-BR.js +3 -0
- package/es/language/ru-RU.js +3 -0
- package/es/language/th-TH.js +3 -0
- package/es/language/ug-CN.js +3 -0
- package/es/language/uk-UA.js +3 -0
- package/es/language/uz-UZ.js +3 -0
- package/es/language/vi-VN.js +3 -0
- package/es/language/zh-CHT.js +3 -0
- package/es/language/zh-CN.js +3 -0
- package/es/list/src/list.js +14 -1
- package/es/list/style.css +26 -28
- package/es/list/style.min.css +1 -1
- package/es/menu/style.css +22 -29
- package/es/menu/style.min.css +1 -1
- package/es/notice-bar/style.css +14 -10
- package/es/notice-bar/style.min.css +1 -1
- package/es/radio/src/button.js +3 -1
- package/es/radio/src/group.js +6 -1
- package/es/radio/style.css +22 -30
- package/es/radio/style.min.css +1 -1
- package/es/radio-button/style.css +151 -8
- package/es/radio-button/style.min.css +1 -1
- package/es/select/style.css +42 -59
- package/es/select/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tree/src/tree.js +441 -18
- package/es/tree/src/util.js +15 -0
- package/es/tree/style.css +26 -25
- package/es/tree/style.min.css +1 -1
- package/es/tree-select/style.css +27 -31
- package/es/tree-select/style.min.css +1 -1
- package/es/ui/index.js +5 -2
- package/es/ui/src/log.js +1 -1
- package/es/upload/style.css +30 -41
- package/es/upload/style.min.css +1 -1
- package/es/vxe-button/style.css +42 -72
- package/es/vxe-button/style.min.css +1 -1
- package/es/vxe-cascader/style.css +29 -33
- package/es/vxe-cascader/style.min.css +1 -1
- package/es/vxe-checkbox/style.css +22 -28
- package/es/vxe-checkbox/style.min.css +1 -1
- package/es/vxe-checkbox-button/style.css +151 -8
- package/es/vxe-checkbox-button/style.min.css +1 -1
- package/es/vxe-context-menu/style.css +14 -13
- package/es/vxe-context-menu/style.min.css +1 -1
- package/es/vxe-form/style.css +45 -95
- package/es/vxe-form/style.min.css +1 -1
- package/es/vxe-icon-picker/style.css +49 -23
- package/es/vxe-icon-picker/style.min.css +1 -1
- package/es/vxe-list/style.css +26 -28
- package/es/vxe-list/style.min.css +1 -1
- package/es/vxe-menu/style.css +22 -29
- package/es/vxe-menu/style.min.css +1 -1
- package/es/vxe-notice-bar/style.css +14 -10
- package/es/vxe-notice-bar/style.min.css +1 -1
- package/es/vxe-radio/style.css +22 -30
- package/es/vxe-radio/style.min.css +1 -1
- package/es/vxe-radio-button/style.css +151 -8
- package/es/vxe-radio-button/style.min.css +1 -1
- package/es/vxe-select/style.css +42 -59
- package/es/vxe-select/style.min.css +1 -1
- package/es/vxe-tree/style.css +26 -25
- package/es/vxe-tree/style.min.css +1 -1
- package/es/vxe-tree-select/style.css +27 -31
- package/es/vxe-tree-select/style.min.css +1 -1
- package/es/vxe-upload/style.css +30 -41
- package/es/vxe-upload/style.min.css +1 -1
- package/lib/button/style/style.css +42 -72
- package/lib/button/style/style.min.css +1 -1
- package/lib/cascader/style/style.css +29 -33
- package/lib/cascader/style/style.min.css +1 -1
- package/lib/checkbox/src/button.js +3 -1
- package/lib/checkbox/src/button.min.js +1 -1
- package/lib/checkbox/src/group.js +6 -0
- package/lib/checkbox/src/group.min.js +1 -1
- package/lib/checkbox/style/style.css +22 -28
- package/lib/checkbox/style/style.min.css +1 -1
- package/lib/checkbox-button/style/style.css +151 -8
- package/lib/checkbox-button/style/style.min.css +1 -1
- package/lib/context-menu/style/style.css +14 -13
- package/lib/context-menu/style/style.min.css +1 -1
- package/lib/date-picker/src/date-picker.js +1 -1
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/form/style/style.css +45 -95
- package/lib/form/style/style.min.css +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +143 -29
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/icon-picker/style/style.css +49 -23
- package/lib/icon-picker/style/style.min.css +1 -1
- package/lib/index.umd.js +732 -50
- package/lib/index.umd.min.js +1 -1
- package/lib/language/ar-EG.js +3 -0
- package/lib/language/ar-EG.min.js +1 -1
- package/lib/language/ar-EG.umd.js +3 -0
- package/lib/language/de-DE.js +3 -0
- package/lib/language/de-DE.min.js +1 -1
- package/lib/language/de-DE.umd.js +3 -0
- package/lib/language/en-US.js +3 -0
- package/lib/language/en-US.min.js +1 -1
- package/lib/language/en-US.umd.js +3 -0
- package/lib/language/es-ES.js +3 -0
- package/lib/language/es-ES.min.js +1 -1
- package/lib/language/es-ES.umd.js +3 -0
- package/lib/language/fr-FR.js +3 -0
- package/lib/language/fr-FR.min.js +1 -1
- package/lib/language/fr-FR.umd.js +3 -0
- package/lib/language/hu-HU.js +3 -0
- package/lib/language/hu-HU.min.js +1 -1
- package/lib/language/hu-HU.umd.js +3 -0
- package/lib/language/hy-AM.js +3 -0
- package/lib/language/hy-AM.min.js +1 -1
- package/lib/language/hy-AM.umd.js +3 -0
- package/lib/language/id-ID.js +3 -0
- package/lib/language/id-ID.min.js +1 -1
- package/lib/language/id-ID.umd.js +3 -0
- package/lib/language/it-IT.js +3 -0
- package/lib/language/it-IT.min.js +1 -1
- package/lib/language/it-IT.umd.js +3 -0
- package/lib/language/ja-JP.js +3 -0
- package/lib/language/ja-JP.min.js +1 -1
- package/lib/language/ja-JP.umd.js +3 -0
- package/lib/language/ko-KR.js +3 -0
- package/lib/language/ko-KR.min.js +1 -1
- package/lib/language/ko-KR.umd.js +3 -0
- package/lib/language/ms-MY.js +3 -0
- package/lib/language/ms-MY.min.js +1 -1
- package/lib/language/ms-MY.umd.js +3 -0
- package/lib/language/nb-NO.js +3 -0
- package/lib/language/nb-NO.min.js +1 -1
- package/lib/language/nb-NO.umd.js +3 -0
- package/lib/language/pt-BR.js +3 -0
- package/lib/language/pt-BR.min.js +1 -1
- package/lib/language/pt-BR.umd.js +3 -0
- package/lib/language/ru-RU.js +3 -0
- package/lib/language/ru-RU.min.js +1 -1
- package/lib/language/ru-RU.umd.js +3 -0
- package/lib/language/th-TH.js +3 -0
- package/lib/language/th-TH.min.js +1 -1
- package/lib/language/th-TH.umd.js +3 -0
- package/lib/language/ug-CN.js +3 -0
- package/lib/language/ug-CN.min.js +1 -1
- package/lib/language/ug-CN.umd.js +3 -0
- package/lib/language/uk-UA.js +3 -0
- package/lib/language/uk-UA.min.js +1 -1
- package/lib/language/uk-UA.umd.js +3 -0
- package/lib/language/uz-UZ.js +3 -0
- package/lib/language/uz-UZ.min.js +1 -1
- package/lib/language/uz-UZ.umd.js +3 -0
- package/lib/language/vi-VN.js +3 -0
- package/lib/language/vi-VN.min.js +1 -1
- package/lib/language/vi-VN.umd.js +3 -0
- package/lib/language/zh-CHT.js +3 -0
- package/lib/language/zh-CHT.min.js +1 -1
- package/lib/language/zh-CHT.umd.js +3 -0
- package/lib/language/zh-CN.js +3 -0
- package/lib/language/zh-CN.min.js +1 -1
- package/lib/language/zh-CN.umd.js +3 -0
- package/lib/list/src/list.js +19 -1
- package/lib/list/src/list.min.js +1 -1
- package/lib/list/style/style.css +26 -28
- package/lib/list/style/style.min.css +1 -1
- package/lib/menu/style/style.css +22 -29
- package/lib/menu/style/style.min.css +1 -1
- package/lib/notice-bar/style/style.css +14 -10
- package/lib/notice-bar/style/style.min.css +1 -1
- package/lib/radio/src/button.js +3 -1
- package/lib/radio/src/button.min.js +1 -1
- package/lib/radio/src/group.js +7 -1
- package/lib/radio/src/group.min.js +1 -1
- package/lib/radio/style/style.css +22 -30
- package/lib/radio/style/style.min.css +1 -1
- package/lib/radio-button/style/style.css +151 -8
- package/lib/radio-button/style/style.min.css +1 -1
- package/lib/select/style/style.css +42 -59
- package/lib/select/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tree/src/tree.js +525 -14
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree/src/util.js +16 -0
- package/lib/tree/src/util.min.js +1 -1
- package/lib/tree/style/style.css +26 -25
- package/lib/tree/style/style.min.css +1 -1
- package/lib/tree-select/style/style.css +27 -31
- package/lib/tree-select/style/style.min.css +1 -1
- package/lib/ui/index.js +5 -2
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/upload/style/style.css +30 -41
- package/lib/upload/style/style.min.css +1 -1
- package/lib/vxe-button/style/style.css +42 -72
- package/lib/vxe-button/style/style.min.css +1 -1
- package/lib/vxe-cascader/style/style.css +29 -33
- package/lib/vxe-cascader/style/style.min.css +1 -1
- package/lib/vxe-checkbox/style/style.css +22 -28
- package/lib/vxe-checkbox/style/style.min.css +1 -1
- package/lib/vxe-checkbox-button/style/style.css +151 -8
- package/lib/vxe-checkbox-button/style/style.min.css +1 -1
- package/lib/vxe-context-menu/style/style.css +14 -13
- package/lib/vxe-context-menu/style/style.min.css +1 -1
- package/lib/vxe-form/style/style.css +45 -95
- package/lib/vxe-form/style/style.min.css +1 -1
- package/lib/vxe-icon-picker/style/style.css +49 -23
- package/lib/vxe-icon-picker/style/style.min.css +1 -1
- package/lib/vxe-list/style/style.css +26 -28
- package/lib/vxe-list/style/style.min.css +1 -1
- package/lib/vxe-menu/style/style.css +22 -29
- package/lib/vxe-menu/style/style.min.css +1 -1
- package/lib/vxe-notice-bar/style/style.css +14 -10
- package/lib/vxe-notice-bar/style/style.min.css +1 -1
- package/lib/vxe-radio/style/style.css +22 -30
- package/lib/vxe-radio/style/style.min.css +1 -1
- package/lib/vxe-radio-button/style/style.css +151 -8
- package/lib/vxe-radio-button/style/style.min.css +1 -1
- package/lib/vxe-select/style/style.css +42 -59
- package/lib/vxe-select/style/style.min.css +1 -1
- package/lib/vxe-tree/style/style.css +26 -25
- package/lib/vxe-tree/style/style.min.css +1 -1
- package/lib/vxe-tree-select/style/style.css +27 -31
- package/lib/vxe-tree-select/style/style.min.css +1 -1
- package/lib/vxe-upload/style/style.css +30 -41
- package/lib/vxe-upload/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/checkbox/src/button.ts +3 -1
- package/packages/checkbox/src/group.ts +6 -1
- package/packages/date-picker/src/date-picker.ts +1 -1
- package/packages/icon-picker/src/icon-picker.ts +157 -48
- package/packages/language/ar-EG.ts +3 -0
- package/packages/language/de-DE.ts +3 -0
- package/packages/language/en-US.ts +3 -0
- package/packages/language/es-ES.ts +3 -0
- package/packages/language/fr-FR.ts +3 -0
- package/packages/language/hu-HU.ts +3 -0
- package/packages/language/hy-AM.ts +3 -0
- package/packages/language/id-ID.ts +3 -0
- package/packages/language/it-IT.ts +3 -0
- package/packages/language/ja-JP.ts +3 -0
- package/packages/language/ko-KR.ts +3 -0
- package/packages/language/ms-MY.ts +3 -0
- package/packages/language/nb-NO.ts +3 -0
- package/packages/language/pt-BR.ts +3 -0
- package/packages/language/ru-RU.ts +3 -0
- package/packages/language/th-TH.ts +3 -0
- package/packages/language/ug-CN.ts +3 -0
- package/packages/language/uk-UA.ts +3 -0
- package/packages/language/uz-UZ.ts +3 -0
- package/packages/language/vi-VN.ts +3 -0
- package/packages/language/zh-CHT.ts +3 -0
- package/packages/language/zh-CN.ts +3 -0
- package/packages/list/src/list.ts +14 -1
- package/packages/radio/src/button.ts +3 -1
- package/packages/radio/src/group.ts +6 -1
- package/packages/tree/src/tree.ts +443 -14
- package/packages/tree/src/util.ts +17 -1
- package/packages/ui/index.ts +4 -1
- package/styles/components/button.scss +56 -137
- package/styles/components/cascader.scss +25 -27
- package/styles/components/checkbox-button.scss +65 -13
- package/styles/components/checkbox.scss +22 -24
- package/styles/components/context-menu.scss +15 -13
- package/styles/components/form.scss +57 -134
- package/styles/components/icon-picker.scss +56 -27
- package/styles/components/link.scss +1 -1
- package/styles/components/list.scss +24 -26
- package/styles/components/menu.scss +23 -25
- package/styles/components/notice-bar.scss +15 -13
- package/styles/components/radio-button.scss +65 -13
- package/styles/components/radio.scss +22 -23
- package/styles/components/select.scss +36 -62
- package/styles/components/tree-select.scss +26 -27
- package/styles/components/tree.scss +16 -14
- package/styles/components/upload.scss +28 -30
- package/styles/helpers/baseMixin.scss +2 -2
- package/styles/helpers/themeStatus.scss +58 -0
- package/styles/theme/base.scss +11 -3
- package/types/all.d.ts +205 -0
- package/types/components/checkbox-group.d.ts +3 -1
- package/types/components/checkbox.d.ts +1 -1
- package/types/components/icon-picker.d.ts +28 -4
- package/types/components/list.d.ts +2 -2
- package/types/components/radio-group.d.ts +3 -1
- package/types/components/tree.d.ts +36 -0
- /package/es/icon/{iconfont.1782658269305.ttf → iconfont.1782810550462.ttf} +0 -0
- /package/es/icon/{iconfont.1782658269305.woff → iconfont.1782810550462.woff} +0 -0
- /package/es/icon/{iconfont.1782658269305.woff2 → iconfont.1782810550462.woff2} +0 -0
- /package/es/{iconfont.1782658269305.ttf → iconfont.1782810550462.ttf} +0 -0
- /package/es/{iconfont.1782658269305.woff → iconfont.1782810550462.woff} +0 -0
- /package/es/{iconfont.1782658269305.woff2 → iconfont.1782810550462.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1782658269305.ttf → iconfont.1782810550462.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1782658269305.woff → iconfont.1782810550462.woff} +0 -0
- /package/lib/icon/style/{iconfont.1782658269305.woff2 → iconfont.1782810550462.woff2} +0 -0
- /package/lib/{iconfont.1782658269305.ttf → iconfont.1782810550462.ttf} +0 -0
- /package/lib/{iconfont.1782658269305.woff → iconfont.1782810550462.woff} +0 -0
- /package/lib/{iconfont.1782658269305.woff2 → iconfont.1782810550462.woff2} +0 -0
package/lib/tree/src/tree.js
CHANGED
|
@@ -18,6 +18,7 @@ var _anime = require("../../ui/src/anime");
|
|
|
18
18
|
var _loading = _interopRequireDefault(require("../../loading"));
|
|
19
19
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
20
|
const {
|
|
21
|
+
warnLog,
|
|
21
22
|
errLog
|
|
22
23
|
} = (0, _log.createComponentLog)('tree');
|
|
23
24
|
const {
|
|
@@ -53,6 +54,8 @@ function createInternalData() {
|
|
|
53
54
|
offsetSize: 0,
|
|
54
55
|
rowHeight: 0
|
|
55
56
|
},
|
|
57
|
+
removeRowMaps: {},
|
|
58
|
+
insertRowMaps: {},
|
|
56
59
|
// prevDragNode: null,
|
|
57
60
|
// prevDragToChild: false,
|
|
58
61
|
// prevDragPos: ''
|
|
@@ -74,14 +77,13 @@ function createReactData() {
|
|
|
74
77
|
treeList: [],
|
|
75
78
|
updateExpandedFlag: 1,
|
|
76
79
|
updateCheckboxFlag: 1,
|
|
80
|
+
insertRowFlag: 1,
|
|
81
|
+
removeRowFlag: 1,
|
|
77
82
|
dragNode: null,
|
|
78
83
|
dragTipText: ''
|
|
79
84
|
};
|
|
80
85
|
}
|
|
81
|
-
|
|
82
|
-
// $oldTree: VxeTreeConstructor & VxeTreePrivateMethods
|
|
83
|
-
// $newTree: (VxeTreeConstructor & VxeTreePrivateMethods) | null
|
|
84
|
-
// } | null = null
|
|
86
|
+
let crossTreeDragNodeObj = null;
|
|
85
87
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
86
88
|
name: 'VxeTree',
|
|
87
89
|
props: {
|
|
@@ -203,7 +205,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
203
205
|
},
|
|
204
206
|
virtualYConfig: Object
|
|
205
207
|
},
|
|
206
|
-
emits: ['update:modelValue', 'update:checkNodeKey', 'update:checkNodeKeys', 'node-click', 'node-dblclick', 'current-change', 'radio-change', 'checkbox-change', 'load-success', 'load-error', 'scroll', 'node-dragstart', 'node-dragover', 'node-dragend', 'node-expand', 'node-menu', 'menu-click'],
|
|
208
|
+
emits: ['update:modelValue', 'update:checkNodeKey', 'update:checkNodeKeys', 'node-click', 'node-dblclick', 'current-change', 'radio-change', 'checkbox-change', 'load-success', 'load-error', 'scroll', 'node-dragstart', 'node-dragover', 'node-dragend', 'node-remove-dragend', 'node-insert-dragend', 'node-expand', 'node-menu', 'menu-click'],
|
|
207
209
|
setup(props, context) {
|
|
208
210
|
const {
|
|
209
211
|
emit,
|
|
@@ -1560,6 +1562,177 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1560
1562
|
}
|
|
1561
1563
|
recalculate();
|
|
1562
1564
|
};
|
|
1565
|
+
const insertTreeNode = (newRecords, isAppend) => {
|
|
1566
|
+
const {
|
|
1567
|
+
treeFullData,
|
|
1568
|
+
nodeMaps
|
|
1569
|
+
} = internalData;
|
|
1570
|
+
const keyField = computeKeyField.value;
|
|
1571
|
+
const parentField = computeParentField.value;
|
|
1572
|
+
const childrenField = computeChildrenField.value;
|
|
1573
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
1574
|
+
const funcName = isAppend ? 'push' : 'unshift';
|
|
1575
|
+
newRecords.forEach(item => {
|
|
1576
|
+
const parentRowId = item[parentField];
|
|
1577
|
+
const nodeid = getNodeId(item);
|
|
1578
|
+
const matchObj = parentRowId ? _xeUtils.default.findTree(treeFullData, item => parentRowId === item[keyField], {
|
|
1579
|
+
children: mapChildrenField
|
|
1580
|
+
}) : null;
|
|
1581
|
+
const itemRest = (0, _util.getItemCacheObj)(item);
|
|
1582
|
+
if (matchObj) {
|
|
1583
|
+
const {
|
|
1584
|
+
item: parentItem
|
|
1585
|
+
} = matchObj;
|
|
1586
|
+
const parentRest = nodeMaps[getNodeId(parentItem)];
|
|
1587
|
+
const parentLevel = parentRest ? parentRest.level : 0;
|
|
1588
|
+
let pChilds = parentItem[childrenField];
|
|
1589
|
+
let pMapChilds = parentItem[mapChildrenField];
|
|
1590
|
+
if (!_xeUtils.default.isArray(pChilds)) {
|
|
1591
|
+
pChilds = parentItem[childrenField] = [];
|
|
1592
|
+
}
|
|
1593
|
+
if (!_xeUtils.default.isArray(pMapChilds)) {
|
|
1594
|
+
pMapChilds = parentItem[mapChildrenField] = [];
|
|
1595
|
+
}
|
|
1596
|
+
itemRest.parent = parentItem;
|
|
1597
|
+
itemRest.items = pChilds;
|
|
1598
|
+
itemRest.level = parentLevel;
|
|
1599
|
+
pChilds[funcName](item);
|
|
1600
|
+
pMapChilds[funcName](item);
|
|
1601
|
+
} else {
|
|
1602
|
+
if (parentRowId) {
|
|
1603
|
+
warnLog('vxe.error.unableInsert');
|
|
1604
|
+
}
|
|
1605
|
+
treeFullData[funcName](item);
|
|
1606
|
+
}
|
|
1607
|
+
nodeMaps[nodeid] = itemRest;
|
|
1608
|
+
});
|
|
1609
|
+
};
|
|
1610
|
+
const handleInsertNodeAt = (records, targetNodeOrNodeid, isInsertNextNode) => {
|
|
1611
|
+
const {
|
|
1612
|
+
transform
|
|
1613
|
+
} = props;
|
|
1614
|
+
const {
|
|
1615
|
+
treeFullData,
|
|
1616
|
+
nodeMaps
|
|
1617
|
+
} = internalData;
|
|
1618
|
+
const keyField = computeKeyField.value;
|
|
1619
|
+
const parentField = computeParentField.value;
|
|
1620
|
+
const childrenField = computeChildrenField.value;
|
|
1621
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
1622
|
+
if (!transform) {
|
|
1623
|
+
errLog('vxe.error.reqSupportProp', ['insert() | insertAt() | insertNextAt()', 'transform']);
|
|
1624
|
+
return Promise.resolve({
|
|
1625
|
+
node: null,
|
|
1626
|
+
nodes: []
|
|
1627
|
+
});
|
|
1628
|
+
}
|
|
1629
|
+
if (!_xeUtils.default.isArray(records)) {
|
|
1630
|
+
records = [records];
|
|
1631
|
+
}
|
|
1632
|
+
let targetNode = targetNodeOrNodeid;
|
|
1633
|
+
if (_xeUtils.default.isString(targetNodeOrNodeid) || _xeUtils.default.isNumber(targetNodeOrNodeid)) {
|
|
1634
|
+
const nodeRest = nodeMaps[targetNodeOrNodeid];
|
|
1635
|
+
if (nodeRest) {
|
|
1636
|
+
targetNode = nodeRest.item;
|
|
1637
|
+
}
|
|
1638
|
+
}
|
|
1639
|
+
if (!records.length) {
|
|
1640
|
+
return Promise.resolve({
|
|
1641
|
+
node: null,
|
|
1642
|
+
nodes: []
|
|
1643
|
+
});
|
|
1644
|
+
}
|
|
1645
|
+
const newRecords = records.map(record => _xeUtils.default.assign({
|
|
1646
|
+
[mapChildrenField]: [],
|
|
1647
|
+
[childrenField]: []
|
|
1648
|
+
}, record));
|
|
1649
|
+
const treeRecords = _xeUtils.default.toArrayTree(newRecords, {
|
|
1650
|
+
key: keyField,
|
|
1651
|
+
parentKey: parentField,
|
|
1652
|
+
children: childrenField
|
|
1653
|
+
});
|
|
1654
|
+
if (_xeUtils.default.eqNull(targetNode)) {
|
|
1655
|
+
insertTreeNode(newRecords, false);
|
|
1656
|
+
} else {
|
|
1657
|
+
if (targetNode === -1) {
|
|
1658
|
+
insertTreeNode(newRecords, true);
|
|
1659
|
+
} else {
|
|
1660
|
+
const matchMapObj = _xeUtils.default.findTree(treeFullData, item => targetNode[keyField] === item[keyField], {
|
|
1661
|
+
children: mapChildrenField
|
|
1662
|
+
});
|
|
1663
|
+
if (matchMapObj) {
|
|
1664
|
+
const {
|
|
1665
|
+
parent: parentNode
|
|
1666
|
+
} = matchMapObj;
|
|
1667
|
+
const parentMapChilds = parentNode ? parentNode[mapChildrenField] : treeFullData;
|
|
1668
|
+
const parentRest = nodeMaps[getNodeId(parentNode)];
|
|
1669
|
+
const parentLevel = parentRest ? parentRest.level : 0;
|
|
1670
|
+
treeRecords.forEach((row, i) => {
|
|
1671
|
+
if (parentNode) {
|
|
1672
|
+
if (row[parentField] !== parentNode[keyField]) {
|
|
1673
|
+
errLog('vxe.error.errProp', [`${parentField}=${row[parentField]}`, `${parentField}=${parentNode[keyField]}`]);
|
|
1674
|
+
row[parentField] = parentNode[keyField];
|
|
1675
|
+
}
|
|
1676
|
+
} else {
|
|
1677
|
+
if (row[parentField] !== null) {
|
|
1678
|
+
if (!_xeUtils.default.eqNull(row[parentField])) {
|
|
1679
|
+
errLog('vxe.error.errProp', [`${parentField}=${row[parentField]}`, 'null']);
|
|
1680
|
+
}
|
|
1681
|
+
row[parentField] = null;
|
|
1682
|
+
}
|
|
1683
|
+
}
|
|
1684
|
+
let targetIndex = matchMapObj.index + i;
|
|
1685
|
+
if (isInsertNextNode) {
|
|
1686
|
+
targetIndex = targetIndex + 1;
|
|
1687
|
+
}
|
|
1688
|
+
parentMapChilds.splice(targetIndex, 0, row);
|
|
1689
|
+
});
|
|
1690
|
+
_xeUtils.default.eachTree(treeRecords, item => {
|
|
1691
|
+
const nodeid = getNodeId(item);
|
|
1692
|
+
const nodeRest = (0, _util.getItemCacheObj)(item);
|
|
1693
|
+
nodeRest.level = parentLevel;
|
|
1694
|
+
if (item[childrenField]) {
|
|
1695
|
+
item[mapChildrenField] = item[childrenField];
|
|
1696
|
+
}
|
|
1697
|
+
nodeMaps[nodeid] = nodeRest;
|
|
1698
|
+
}, {
|
|
1699
|
+
children: childrenField
|
|
1700
|
+
});
|
|
1701
|
+
// 源
|
|
1702
|
+
if (parentNode) {
|
|
1703
|
+
const matchObj = _xeUtils.default.findTree(treeFullData, item => targetNode[keyField] === item[keyField], {
|
|
1704
|
+
children: childrenField
|
|
1705
|
+
});
|
|
1706
|
+
if (matchObj) {
|
|
1707
|
+
const parentChilds = matchObj.items;
|
|
1708
|
+
let targetIndex = matchObj.index;
|
|
1709
|
+
if (isInsertNextNode) {
|
|
1710
|
+
targetIndex = targetIndex + 1;
|
|
1711
|
+
}
|
|
1712
|
+
parentChilds.splice(targetIndex, 0, ...treeRecords);
|
|
1713
|
+
}
|
|
1714
|
+
}
|
|
1715
|
+
} else {
|
|
1716
|
+
warnLog('vxe.error.unableInsert');
|
|
1717
|
+
insertTreeNode(newRecords, true);
|
|
1718
|
+
}
|
|
1719
|
+
}
|
|
1720
|
+
}
|
|
1721
|
+
reactData.insertRowFlag++;
|
|
1722
|
+
cacheNodeMap();
|
|
1723
|
+
handleData(true);
|
|
1724
|
+
updateAfterDataIndex();
|
|
1725
|
+
updateCheckboxStatus();
|
|
1726
|
+
if (reactData.scrollYLoad) {
|
|
1727
|
+
updateYSpace();
|
|
1728
|
+
}
|
|
1729
|
+
return (0, _vue.nextTick)().then(() => {
|
|
1730
|
+
return {
|
|
1731
|
+
node: newRecords.length ? newRecords[newRecords.length - 1] : null,
|
|
1732
|
+
nodes: newRecords
|
|
1733
|
+
};
|
|
1734
|
+
});
|
|
1735
|
+
};
|
|
1563
1736
|
const treeMethods = {
|
|
1564
1737
|
dispatchEvent,
|
|
1565
1738
|
getNodeId,
|
|
@@ -2041,7 +2214,110 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
2041
2214
|
}
|
|
2042
2215
|
return recalculate();
|
|
2043
2216
|
},
|
|
2044
|
-
clearScroll
|
|
2217
|
+
clearScroll,
|
|
2218
|
+
insert(records) {
|
|
2219
|
+
return handleInsertNodeAt(records, null);
|
|
2220
|
+
},
|
|
2221
|
+
insertAt(records, targetNodeOrNodeid) {
|
|
2222
|
+
return handleInsertNodeAt(records, targetNodeOrNodeid);
|
|
2223
|
+
},
|
|
2224
|
+
insertNextAt(records, targetNodeOrNodeid) {
|
|
2225
|
+
return handleInsertNodeAt(records, targetNodeOrNodeid, true);
|
|
2226
|
+
},
|
|
2227
|
+
remove(nodes) {
|
|
2228
|
+
const {
|
|
2229
|
+
transform
|
|
2230
|
+
} = props;
|
|
2231
|
+
const {
|
|
2232
|
+
treeFullData
|
|
2233
|
+
} = internalData;
|
|
2234
|
+
const childrenField = computeChildrenField.value;
|
|
2235
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
2236
|
+
if (!transform) {
|
|
2237
|
+
errLog('vxe.error.reqSupportProp', ['remove()', 'transform']);
|
|
2238
|
+
return Promise.resolve({
|
|
2239
|
+
node: null,
|
|
2240
|
+
nodes: []
|
|
2241
|
+
});
|
|
2242
|
+
}
|
|
2243
|
+
let delList = [];
|
|
2244
|
+
if (!nodes) {
|
|
2245
|
+
nodes = treeFullData;
|
|
2246
|
+
} else if (!_xeUtils.default.isArray(nodes)) {
|
|
2247
|
+
nodes = [nodes];
|
|
2248
|
+
}
|
|
2249
|
+
if (!nodes.length) {
|
|
2250
|
+
return Promise.resolve({
|
|
2251
|
+
node: null,
|
|
2252
|
+
nodes: []
|
|
2253
|
+
});
|
|
2254
|
+
}
|
|
2255
|
+
// 从数据源中移除
|
|
2256
|
+
if (treeFullData === nodes) {
|
|
2257
|
+
nodes = delList = treeFullData.slice(0);
|
|
2258
|
+
internalData.treeFullData = [];
|
|
2259
|
+
} else {
|
|
2260
|
+
nodes.forEach(item => {
|
|
2261
|
+
const nodeid = getNodeId(item);
|
|
2262
|
+
const matchMapObj = _xeUtils.default.findTree(treeFullData, item => nodeid === getNodeId(item), {
|
|
2263
|
+
children: mapChildrenField
|
|
2264
|
+
});
|
|
2265
|
+
if (matchMapObj) {
|
|
2266
|
+
const rItems = matchMapObj.items.splice(matchMapObj.index, 1);
|
|
2267
|
+
delList.push(rItems[0]);
|
|
2268
|
+
}
|
|
2269
|
+
const matchObj = _xeUtils.default.findTree(treeFullData, item => nodeid === getNodeId(item), {
|
|
2270
|
+
children: childrenField
|
|
2271
|
+
});
|
|
2272
|
+
if (matchObj) {
|
|
2273
|
+
const rItems = matchObj.items.splice(matchObj.index, 1);
|
|
2274
|
+
delList.push(rItems[0]);
|
|
2275
|
+
}
|
|
2276
|
+
});
|
|
2277
|
+
}
|
|
2278
|
+
reactData.removeRowFlag++;
|
|
2279
|
+
reactData.insertRowFlag++;
|
|
2280
|
+
cacheNodeMap();
|
|
2281
|
+
handleData(true);
|
|
2282
|
+
updateAfterDataIndex();
|
|
2283
|
+
updateCheckboxStatus();
|
|
2284
|
+
if (reactData.scrollYLoad) {
|
|
2285
|
+
updateYSpace();
|
|
2286
|
+
}
|
|
2287
|
+
return (0, _vue.nextTick)().then(() => {
|
|
2288
|
+
return recalculate();
|
|
2289
|
+
}).then(() => {
|
|
2290
|
+
return {
|
|
2291
|
+
node: delList.length ? delList[delList.length - 1] : null,
|
|
2292
|
+
nodes: delList
|
|
2293
|
+
};
|
|
2294
|
+
});
|
|
2295
|
+
},
|
|
2296
|
+
getInsertRecords() {
|
|
2297
|
+
const {
|
|
2298
|
+
insertRowMaps
|
|
2299
|
+
} = internalData;
|
|
2300
|
+
const insertRecords = [];
|
|
2301
|
+
_xeUtils.default.each(insertRowMaps, row => {
|
|
2302
|
+
insertRecords.push(row);
|
|
2303
|
+
});
|
|
2304
|
+
return insertRecords;
|
|
2305
|
+
},
|
|
2306
|
+
getRemoveRecords() {
|
|
2307
|
+
const {
|
|
2308
|
+
removeRowMaps
|
|
2309
|
+
} = internalData;
|
|
2310
|
+
const removeRecords = [];
|
|
2311
|
+
_xeUtils.default.each(removeRowMaps, row => {
|
|
2312
|
+
removeRecords.push(row);
|
|
2313
|
+
});
|
|
2314
|
+
return removeRecords;
|
|
2315
|
+
}
|
|
2316
|
+
};
|
|
2317
|
+
const handleNodeDragEndClearStatus = () => {
|
|
2318
|
+
clearNodeDragData();
|
|
2319
|
+
clearCrossTreeDragStatus();
|
|
2320
|
+
recalculate();
|
|
2045
2321
|
};
|
|
2046
2322
|
const clearNodeDropOrigin = () => {
|
|
2047
2323
|
const el = refElem.value;
|
|
@@ -2095,7 +2371,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
2095
2371
|
}
|
|
2096
2372
|
};
|
|
2097
2373
|
const clearCrossTreeDragStatus = () => {
|
|
2098
|
-
|
|
2374
|
+
crossTreeDragNodeObj = null;
|
|
2099
2375
|
crossTreeDragNodeInfo.node = null;
|
|
2100
2376
|
};
|
|
2101
2377
|
const clearDragStatus = () => {
|
|
@@ -2492,6 +2768,23 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
2492
2768
|
prevDragToChild
|
|
2493
2769
|
} = internalData;
|
|
2494
2770
|
const hasChildField = computeHasChildField.value;
|
|
2771
|
+
const dragConfig = computeDragOpts.value;
|
|
2772
|
+
const {
|
|
2773
|
+
isCrossDrag,
|
|
2774
|
+
isCrossTreeDrag
|
|
2775
|
+
} = dragConfig;
|
|
2776
|
+
// 跨树拖拽
|
|
2777
|
+
if (isCrossTreeDrag && crossTreeDragNodeObj) {
|
|
2778
|
+
const {
|
|
2779
|
+
$newTree
|
|
2780
|
+
} = crossTreeDragNodeObj;
|
|
2781
|
+
if ($newTree && $newTree.xID !== $xeTree.xID) {
|
|
2782
|
+
if (isCrossDrag) {
|
|
2783
|
+
$newTree.handleCrossTreeNodeDragInsertEvent(evnt);
|
|
2784
|
+
}
|
|
2785
|
+
return;
|
|
2786
|
+
}
|
|
2787
|
+
}
|
|
2495
2788
|
if (lazy && prevDragToChild) {
|
|
2496
2789
|
// 懒加载
|
|
2497
2790
|
const newNodeid = getNodeId(prevDragNode);
|
|
@@ -2578,15 +2871,228 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
2578
2871
|
/**
|
|
2579
2872
|
* 处理跨树拖拽完成
|
|
2580
2873
|
*/
|
|
2581
|
-
handleCrossTreeNodeDragFinishEvent() {
|
|
2874
|
+
handleCrossTreeNodeDragFinishEvent(evnt) {
|
|
2875
|
+
const {
|
|
2876
|
+
treeList
|
|
2877
|
+
} = reactData;
|
|
2878
|
+
const {
|
|
2879
|
+
nodeMaps
|
|
2880
|
+
} = internalData;
|
|
2881
|
+
const dragOpts = computeDragOpts.value;
|
|
2882
|
+
const {
|
|
2883
|
+
animation,
|
|
2884
|
+
isCrossTreeDrag
|
|
2885
|
+
} = dragOpts;
|
|
2886
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
2887
|
+
const el = refElem.value;
|
|
2888
|
+
if (!el) {
|
|
2889
|
+
return;
|
|
2890
|
+
}
|
|
2891
|
+
if (isCrossTreeDrag && crossTreeDragNodeObj && crossTreeDragNodeInfo) {
|
|
2892
|
+
const {
|
|
2893
|
+
node: dragNode
|
|
2894
|
+
} = crossTreeDragNodeInfo;
|
|
2895
|
+
if (dragNode) {
|
|
2896
|
+
const dragNodeid = getNodeId(dragNode);
|
|
2897
|
+
const dragNodeRest = nodeMaps[dragNodeid];
|
|
2898
|
+
let dragNodeHeight = 0;
|
|
2899
|
+
let rsIndex = -1;
|
|
2900
|
+
if (dragNodeRest) {
|
|
2901
|
+
if (animation) {
|
|
2902
|
+
const oldItemEl = el.querySelector(`.vxe-tree--node-wrapper[nodeid="${dragNodeid}"]`);
|
|
2903
|
+
const targetItemEl = oldItemEl;
|
|
2904
|
+
if (targetItemEl) {
|
|
2905
|
+
dragNodeHeight = targetItemEl.offsetHeight;
|
|
2906
|
+
}
|
|
2907
|
+
}
|
|
2908
|
+
rsIndex = dragNodeRest.$index;
|
|
2909
|
+
}
|
|
2910
|
+
const dragRangeList = rsIndex > -1 && rsIndex < treeList.length - 1 ? treeList.slice(rsIndex + 1) : [];
|
|
2911
|
+
const dragList = _xeUtils.default.toTreeArray([dragNode], {
|
|
2912
|
+
updated: true,
|
|
2913
|
+
children: mapChildrenField
|
|
2914
|
+
});
|
|
2915
|
+
$xeTree.remove(dragList).then(() => {
|
|
2916
|
+
if (animation && dragNodeHeight && dragRangeList.length) {
|
|
2917
|
+
const wrapperEl = el;
|
|
2918
|
+
const dtClss = [];
|
|
2919
|
+
dragRangeList.forEach(item => {
|
|
2920
|
+
const nodeid = getNodeId(item);
|
|
2921
|
+
dtClss.push(`.vxe-tree--node-wrapper[nodeid="${nodeid}"]`);
|
|
2922
|
+
});
|
|
2923
|
+
const dtTrList = wrapperEl.querySelectorAll(dtClss.join(','));
|
|
2924
|
+
(0, _anime.moveRowAnimateToTb)(dtTrList, dragNodeHeight);
|
|
2925
|
+
}
|
|
2926
|
+
});
|
|
2927
|
+
dispatchEvent('node-remove-dragend', {
|
|
2928
|
+
node: dragNode
|
|
2929
|
+
}, evnt);
|
|
2930
|
+
handleNodeDragEndClearStatus();
|
|
2931
|
+
}
|
|
2932
|
+
}
|
|
2933
|
+
},
|
|
2582
2934
|
/**
|
|
2583
2935
|
* 处理跨树拖至新的空树
|
|
2584
2936
|
*/
|
|
2585
|
-
|
|
2937
|
+
handleCrossTreeNodeDragoverEmptyEvent(evnt) {
|
|
2938
|
+
const {
|
|
2939
|
+
treeList
|
|
2940
|
+
} = reactData;
|
|
2941
|
+
const dragOpts = computeDragOpts.value;
|
|
2942
|
+
const {
|
|
2943
|
+
isCrossTreeDrag
|
|
2944
|
+
} = dragOpts;
|
|
2945
|
+
if (isCrossTreeDrag && crossTreeDragNodeObj && !treeList.length) {
|
|
2946
|
+
const {
|
|
2947
|
+
$oldTree,
|
|
2948
|
+
$newTree
|
|
2949
|
+
} = crossTreeDragNodeObj;
|
|
2950
|
+
if ($oldTree) {
|
|
2951
|
+
const oldTreeReactData = $oldTree;
|
|
2952
|
+
if ($oldTree.xID !== $xeTree.xID) {
|
|
2953
|
+
if ($newTree && $newTree.xID !== $xeTree.xID) {
|
|
2954
|
+
$newTree.hideCrossTreeNodeDropClearStatus();
|
|
2955
|
+
}
|
|
2956
|
+
evnt.preventDefault();
|
|
2957
|
+
$oldTree.hideCrossTreeNodeDropClearStatus();
|
|
2958
|
+
crossTreeDragNodeObj.$newTree = $xeTree;
|
|
2959
|
+
internalData.prevDragNode = null;
|
|
2960
|
+
reactData.dragTipText = oldTreeReactData.dragTipText;
|
|
2961
|
+
showDropTip(evnt, evnt.currentTarget, true, '');
|
|
2962
|
+
}
|
|
2963
|
+
}
|
|
2964
|
+
}
|
|
2965
|
+
},
|
|
2586
2966
|
/**
|
|
2587
2967
|
* 处理跨树拖插入
|
|
2588
2968
|
*/
|
|
2589
|
-
|
|
2969
|
+
handleCrossTreeNodeDragInsertEvent(evnt) {
|
|
2970
|
+
const {
|
|
2971
|
+
prevDragNode,
|
|
2972
|
+
prevDragPos,
|
|
2973
|
+
prevDragToChild
|
|
2974
|
+
} = internalData;
|
|
2975
|
+
const dragOpts = computeDragOpts.value;
|
|
2976
|
+
const {
|
|
2977
|
+
animation,
|
|
2978
|
+
isSelfToChildDrag,
|
|
2979
|
+
isCrossTreeDrag,
|
|
2980
|
+
dragEndMethod,
|
|
2981
|
+
dragToChildMethod
|
|
2982
|
+
} = dragOpts;
|
|
2983
|
+
const parentField = computeParentField.value;
|
|
2984
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
2985
|
+
const childrenField = computeChildrenField.value;
|
|
2986
|
+
// 跨表拖拽
|
|
2987
|
+
if (isCrossTreeDrag && crossTreeDragNodeObj && crossTreeDragNodeInfo) {
|
|
2988
|
+
const {
|
|
2989
|
+
node: oldNode
|
|
2990
|
+
} = crossTreeDragNodeInfo;
|
|
2991
|
+
const {
|
|
2992
|
+
$oldTree
|
|
2993
|
+
} = crossTreeDragNodeObj;
|
|
2994
|
+
const el = refElem.value;
|
|
2995
|
+
if (!el) {
|
|
2996
|
+
return;
|
|
2997
|
+
}
|
|
2998
|
+
if ($oldTree && oldNode) {
|
|
2999
|
+
const dragNode = oldNode;
|
|
3000
|
+
let dragOffsetIndex = -1;
|
|
3001
|
+
if (prevDragNode) {
|
|
3002
|
+
dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
3003
|
+
}
|
|
3004
|
+
const dragParams = {
|
|
3005
|
+
oldNode: dragNode,
|
|
3006
|
+
newNode: prevDragNode,
|
|
3007
|
+
dragNode,
|
|
3008
|
+
dragPos: prevDragPos,
|
|
3009
|
+
dragToChild: !!prevDragToChild,
|
|
3010
|
+
offsetIndex: dragOffsetIndex
|
|
3011
|
+
};
|
|
3012
|
+
const isDragToChildFlag = isSelfToChildDrag && dragToChildMethod ? dragToChildMethod(dragParams) : prevDragToChild;
|
|
3013
|
+
const errRest = {
|
|
3014
|
+
status: false
|
|
3015
|
+
};
|
|
3016
|
+
Promise.resolve(dragEndMethod ? dragEndMethod(dragParams) : true).then(status => {
|
|
3017
|
+
if (!status) {
|
|
3018
|
+
if ($oldTree) {
|
|
3019
|
+
if ($oldTree.xID !== $xeTree.xID) {
|
|
3020
|
+
$oldTree.handleCrossTreeNodeDragCancelEvent(evnt);
|
|
3021
|
+
}
|
|
3022
|
+
}
|
|
3023
|
+
handleNodeDragEndClearStatus();
|
|
3024
|
+
return errRest;
|
|
3025
|
+
}
|
|
3026
|
+
let insertRest = Promise.resolve();
|
|
3027
|
+
const dragList = _xeUtils.default.toTreeArray([dragNode], {
|
|
3028
|
+
updated: true,
|
|
3029
|
+
children: mapChildrenField
|
|
3030
|
+
});
|
|
3031
|
+
$oldTree.handleCrossTreeNodeDragFinishEvent(evnt);
|
|
3032
|
+
if (prevDragNode) {
|
|
3033
|
+
dragNode[parentField] = prevDragNode[parentField];
|
|
3034
|
+
} else {
|
|
3035
|
+
dragNode[parentField] = null;
|
|
3036
|
+
}
|
|
3037
|
+
dragList.forEach(row => {
|
|
3038
|
+
row[childrenField] = undefined;
|
|
3039
|
+
row[mapChildrenField] = undefined;
|
|
3040
|
+
});
|
|
3041
|
+
if (prevDragNode) {
|
|
3042
|
+
if (prevDragPos === 'bottom') {
|
|
3043
|
+
insertRest = $xeTree.insertNextAt(dragList, prevDragNode);
|
|
3044
|
+
} else {
|
|
3045
|
+
insertRest = $xeTree.insertAt(dragList, prevDragNode);
|
|
3046
|
+
}
|
|
3047
|
+
} else {
|
|
3048
|
+
insertRest = $xeTree.insert(dragList);
|
|
3049
|
+
}
|
|
3050
|
+
$xeTree.dispatchEvent('node-insert-dragend', {
|
|
3051
|
+
oldNode,
|
|
3052
|
+
newNode: prevDragNode,
|
|
3053
|
+
dragNode,
|
|
3054
|
+
dragPos: prevDragPos,
|
|
3055
|
+
dragToChild: isDragToChildFlag,
|
|
3056
|
+
offsetIndex: dragOffsetIndex
|
|
3057
|
+
}, evnt);
|
|
3058
|
+
clearNodeDragData();
|
|
3059
|
+
insertRest.then(() => {
|
|
3060
|
+
const {
|
|
3061
|
+
treeList
|
|
3062
|
+
} = reactData;
|
|
3063
|
+
const {
|
|
3064
|
+
nodeMaps
|
|
3065
|
+
} = internalData;
|
|
3066
|
+
const oldNodeid = getNodeId(dragNode);
|
|
3067
|
+
const oldNodeRest = nodeMaps[oldNodeid];
|
|
3068
|
+
let dragNodeHeight = 0;
|
|
3069
|
+
let rsIndex = -1;
|
|
3070
|
+
if (oldNodeRest) {
|
|
3071
|
+
if (animation) {
|
|
3072
|
+
const oldItemEl = el.querySelector(`.vxe-tree--node-wrapper[nodeid="${oldNodeid}"]`);
|
|
3073
|
+
const targetItemEl = oldItemEl;
|
|
3074
|
+
if (targetItemEl) {
|
|
3075
|
+
dragNodeHeight = targetItemEl.offsetHeight;
|
|
3076
|
+
}
|
|
3077
|
+
}
|
|
3078
|
+
rsIndex = oldNodeRest.$index;
|
|
3079
|
+
}
|
|
3080
|
+
const dragRangeList = rsIndex > -1 ? treeList.slice(rsIndex) : [];
|
|
3081
|
+
if (animation && dragNodeHeight && dragRangeList.length) {
|
|
3082
|
+
const wrapperEl = el;
|
|
3083
|
+
const dtClss = [];
|
|
3084
|
+
dragRangeList.forEach(item => {
|
|
3085
|
+
const nodeid = getNodeId(item);
|
|
3086
|
+
dtClss.push(`.vxe-tree--node-wrapper[nodeid="${nodeid}"]`);
|
|
3087
|
+
});
|
|
3088
|
+
const dtTrList = wrapperEl.querySelectorAll(dtClss.join(','));
|
|
3089
|
+
(0, _anime.moveRowAnimateToTb)(dtTrList, -dragNodeHeight);
|
|
3090
|
+
}
|
|
3091
|
+
});
|
|
3092
|
+
});
|
|
3093
|
+
}
|
|
3094
|
+
}
|
|
3095
|
+
},
|
|
2590
3096
|
hideCrossTreeNodeDropClearStatus() {
|
|
2591
3097
|
hideDropTip();
|
|
2592
3098
|
}
|
|
@@ -2924,10 +3430,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
2924
3430
|
const loadingOpts = computeLoadingOpts.value;
|
|
2925
3431
|
const isRowHover = computeIsRowHover.value;
|
|
2926
3432
|
const treeStyle = computeTreeStyle.value;
|
|
3433
|
+
const dragOpts = computeDragOpts.value;
|
|
2927
3434
|
const loadingSlot = slots.loading;
|
|
2928
3435
|
const headerSlot = slots.header;
|
|
2929
3436
|
const footerSlot = slots.footer;
|
|
2930
|
-
|
|
3437
|
+
const teOns = {};
|
|
3438
|
+
if (dragOpts.isCrossTreeDrag && !treeList.length) {
|
|
3439
|
+
teOns.onDragover = $xeTree.handleCrossTreeNodeDragInsertEvent;
|
|
3440
|
+
}
|
|
3441
|
+
return (0, _vue.h)('div', Object.assign({
|
|
2931
3442
|
ref: refElem,
|
|
2932
3443
|
class: ['vxe-tree', {
|
|
2933
3444
|
[`size--${vSize}`]: vSize,
|
|
@@ -2938,7 +3449,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
2938
3449
|
'node--trigger': trigger === 'node',
|
|
2939
3450
|
'is--loading': loading
|
|
2940
3451
|
}]
|
|
2941
|
-
}, [headerSlot ? (0, _vue.h)('div', {
|
|
3452
|
+
}, teOns), [headerSlot ? (0, _vue.h)('div', {
|
|
2942
3453
|
ref: refHeaderWrapperElem,
|
|
2943
3454
|
class: 'vxe-tree--header-wrapper'
|
|
2944
3455
|
}, headerSlot({
|
|
@@ -3041,8 +3552,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
3041
3552
|
if (drag && !transform) {
|
|
3042
3553
|
errLog('vxe.error.notSupportProp', ['drag', 'transform=false', 'transform=true']);
|
|
3043
3554
|
}
|
|
3044
|
-
if (dragOpts.isCrossTreeDrag) {
|
|
3045
|
-
errLog('vxe.error.
|
|
3555
|
+
if (dragOpts.isCrossTreeDrag && !dragOpts.isCrossDrag) {
|
|
3556
|
+
errLog('vxe.error.reqSupportProp', ['drag-config.isCrossTreeDrag', 'drag-config.isCrossDrag']);
|
|
3046
3557
|
}
|
|
3047
3558
|
// if (valueField) {
|
|
3048
3559
|
// errLog('vxe.error.delProp', ['value-field', 'value-field'])
|