vxe-pc-ui 3.14.39 → 3.14.40
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/cascader/src/cascader.js +1253 -253
- package/es/cascader/src/util.js +7 -0
- package/es/cascader/style.css +200 -21
- package/es/cascader/style.min.css +1 -1
- package/es/input/src/input.js +2 -2
- package/es/language/ar-EG.js +7 -0
- package/es/language/de-DE.js +7 -0
- package/es/language/en-US.js +7 -0
- package/es/language/es-ES.js +7 -0
- package/es/language/fr-FR.js +7 -0
- package/es/language/hu-HU.js +7 -0
- package/es/language/hy-AM.js +7 -0
- package/es/language/id-ID.js +7 -0
- package/es/language/it-IT.js +7 -0
- package/es/language/ja-JP.js +7 -0
- package/es/language/ko-KR.js +7 -0
- package/es/language/ms-MY.js +7 -0
- package/es/language/nb-NO.js +7 -0
- package/es/language/pt-BR.js +7 -0
- package/es/language/ru-RU.js +7 -0
- package/es/language/th-TH.js +7 -0
- package/es/language/ug-CN.js +7 -0
- package/es/language/uk-UA.js +7 -0
- package/es/language/uz-UZ.js +7 -0
- package/es/language/vi-VN.js +7 -0
- package/es/language/zh-CHT.js +7 -0
- package/es/language/zh-CN.js +7 -0
- package/es/list/style.css +2 -1
- package/es/list/style.min.css +1 -1
- package/es/number-input/src/number-input.js +7 -7
- package/es/number-input/src/util.js +2 -2
- package/es/split/style.css +1 -1
- package/es/split/style.min.css +1 -1
- package/es/splitter/style.css +1 -1
- package/es/splitter/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tree/src/tree.js +30 -24
- package/es/tree-select/src/tree-select.js +22 -16
- package/es/tree-select/style.css +1 -8
- package/es/tree-select/style.min.css +1 -1
- package/es/ui/index.js +10 -4
- package/es/ui/src/dom.js +3 -3
- package/es/ui/src/log.js +1 -1
- package/es/vxe-cascader/style.css +200 -21
- package/es/vxe-cascader/style.min.css +1 -1
- package/es/vxe-list/style.css +2 -1
- package/es/vxe-list/style.min.css +1 -1
- package/es/vxe-split/style.css +1 -1
- package/es/vxe-split/style.min.css +1 -1
- package/es/vxe-splitter/style.css +1 -1
- package/es/vxe-splitter/style.min.css +1 -1
- package/es/vxe-tree-select/style.css +1 -8
- package/es/vxe-tree-select/style.min.css +1 -1
- package/lib/cascader/src/cascader.js +1312 -247
- package/lib/cascader/src/cascader.min.js +1 -1
- package/lib/cascader/src/util.js +15 -0
- package/lib/cascader/src/util.min.js +1 -0
- package/lib/cascader/style/style.css +200 -21
- package/lib/cascader/style/style.min.css +1 -1
- package/lib/index.umd.js +2843 -1729
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +2 -2
- package/lib/input/src/input.min.js +1 -1
- package/lib/language/ar-EG.js +7 -0
- package/lib/language/ar-EG.min.js +1 -1
- package/lib/language/ar-EG.umd.js +7 -0
- package/lib/language/de-DE.js +7 -0
- package/lib/language/de-DE.min.js +1 -1
- package/lib/language/de-DE.umd.js +7 -0
- package/lib/language/en-US.js +7 -0
- package/lib/language/en-US.min.js +1 -1
- package/lib/language/en-US.umd.js +7 -0
- package/lib/language/es-ES.js +7 -0
- package/lib/language/es-ES.min.js +1 -1
- package/lib/language/es-ES.umd.js +7 -0
- package/lib/language/fr-FR.js +7 -0
- package/lib/language/fr-FR.min.js +1 -1
- package/lib/language/fr-FR.umd.js +7 -0
- package/lib/language/hu-HU.js +7 -0
- package/lib/language/hu-HU.min.js +1 -1
- package/lib/language/hu-HU.umd.js +7 -0
- package/lib/language/hy-AM.js +7 -0
- package/lib/language/hy-AM.min.js +1 -1
- package/lib/language/hy-AM.umd.js +7 -0
- package/lib/language/id-ID.js +7 -0
- package/lib/language/id-ID.min.js +1 -1
- package/lib/language/id-ID.umd.js +7 -0
- package/lib/language/it-IT.js +7 -0
- package/lib/language/it-IT.min.js +1 -1
- package/lib/language/it-IT.umd.js +7 -0
- package/lib/language/ja-JP.js +7 -0
- package/lib/language/ja-JP.min.js +1 -1
- package/lib/language/ja-JP.umd.js +7 -0
- package/lib/language/ko-KR.js +7 -0
- package/lib/language/ko-KR.min.js +1 -1
- package/lib/language/ko-KR.umd.js +7 -0
- package/lib/language/ms-MY.js +7 -0
- package/lib/language/ms-MY.min.js +1 -1
- package/lib/language/ms-MY.umd.js +7 -0
- package/lib/language/nb-NO.js +7 -0
- package/lib/language/nb-NO.min.js +1 -1
- package/lib/language/nb-NO.umd.js +7 -0
- package/lib/language/pt-BR.js +7 -0
- package/lib/language/pt-BR.min.js +1 -1
- package/lib/language/pt-BR.umd.js +7 -0
- package/lib/language/ru-RU.js +7 -0
- package/lib/language/ru-RU.min.js +1 -1
- package/lib/language/ru-RU.umd.js +7 -0
- package/lib/language/th-TH.js +7 -0
- package/lib/language/th-TH.min.js +1 -1
- package/lib/language/th-TH.umd.js +7 -0
- package/lib/language/ug-CN.js +7 -0
- package/lib/language/ug-CN.min.js +1 -1
- package/lib/language/ug-CN.umd.js +7 -0
- package/lib/language/uk-UA.js +7 -0
- package/lib/language/uk-UA.min.js +1 -1
- package/lib/language/uk-UA.umd.js +7 -0
- package/lib/language/uz-UZ.js +7 -0
- package/lib/language/uz-UZ.min.js +1 -1
- package/lib/language/uz-UZ.umd.js +7 -0
- package/lib/language/vi-VN.js +7 -0
- package/lib/language/vi-VN.min.js +1 -1
- package/lib/language/vi-VN.umd.js +7 -0
- package/lib/language/zh-CHT.js +7 -0
- package/lib/language/zh-CHT.min.js +1 -1
- package/lib/language/zh-CHT.umd.js +7 -0
- package/lib/language/zh-CN.js +7 -0
- package/lib/language/zh-CN.min.js +1 -1
- package/lib/language/zh-CN.umd.js +7 -0
- package/lib/list/style/style.css +2 -1
- package/lib/list/style/style.min.css +1 -1
- package/lib/number-input/src/number-input.js +12 -7
- package/lib/number-input/src/number-input.min.js +1 -1
- package/lib/number-input/src/util.js +2 -2
- package/lib/number-input/src/util.min.js +1 -1
- package/lib/split/style/style.css +1 -1
- package/lib/split/style/style.min.css +1 -1
- package/lib/splitter/style/style.css +1 -1
- package/lib/splitter/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 +30 -24
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree-select/src/tree-select.js +22 -17
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/tree-select/style/style.css +1 -8
- package/lib/tree-select/style/style.min.css +1 -1
- package/lib/ui/index.js +10 -4
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +6 -4
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-cascader/style/style.css +200 -21
- package/lib/vxe-cascader/style/style.min.css +1 -1
- package/lib/vxe-list/style/style.css +2 -1
- package/lib/vxe-list/style/style.min.css +1 -1
- package/lib/vxe-split/style/style.css +1 -1
- package/lib/vxe-split/style/style.min.css +1 -1
- package/lib/vxe-splitter/style/style.css +1 -1
- package/lib/vxe-splitter/style/style.min.css +1 -1
- package/lib/vxe-tree-select/style/style.css +1 -8
- package/lib/vxe-tree-select/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/cascader/src/cascader.ts +1293 -280
- package/packages/cascader/src/util.ts +9 -0
- package/packages/input/src/input.ts +2 -2
- package/packages/language/ar-EG.ts +7 -0
- package/packages/language/de-DE.ts +7 -0
- package/packages/language/en-US.ts +7 -0
- package/packages/language/es-ES.ts +7 -0
- package/packages/language/fr-FR.ts +7 -0
- package/packages/language/hu-HU.ts +7 -0
- package/packages/language/hy-AM.ts +7 -0
- package/packages/language/id-ID.ts +7 -0
- package/packages/language/it-IT.ts +7 -0
- package/packages/language/ja-JP.ts +7 -0
- package/packages/language/ko-KR.ts +7 -0
- package/packages/language/ms-MY.ts +7 -0
- package/packages/language/nb-NO.ts +7 -0
- package/packages/language/pt-BR.ts +7 -0
- package/packages/language/ru-RU.ts +7 -0
- package/packages/language/th-TH.ts +7 -0
- package/packages/language/ug-CN.ts +7 -0
- package/packages/language/uk-UA.ts +7 -0
- package/packages/language/uz-UZ.ts +7 -0
- package/packages/language/vi-VN.ts +7 -0
- package/packages/language/zh-CHT.ts +7 -0
- package/packages/language/zh-CN.ts +7 -0
- package/packages/number-input/src/number-input.ts +8 -8
- package/packages/number-input/src/util.ts +2 -2
- package/packages/tree/src/tree.ts +33 -28
- package/packages/tree-select/src/tree-select.ts +23 -16
- package/packages/ui/index.ts +10 -3
- package/packages/ui/src/dom.ts +4 -3
- package/styles/components/cascader.scss +116 -21
- package/styles/components/list.scss +2 -1
- package/styles/components/splitter.scss +3 -1
- package/styles/components/tree-select.scss +1 -8
- package/styles/helpers/placement.scss +2 -2
- package/styles/theme/base.scss +7 -0
- package/styles/theme/dark.scss +9 -0
- package/styles/theme/light.scss +9 -0
- package/styles/variable.scss +8 -0
- package/types/components/cascader.d.ts +169 -56
- package/types/ui/global-icon.d.ts +5 -0
- /package/es/icon/{iconfont.1781503187022.ttf → iconfont.1781658322623.ttf} +0 -0
- /package/es/icon/{iconfont.1781503187022.woff → iconfont.1781658322623.woff} +0 -0
- /package/es/icon/{iconfont.1781503187022.woff2 → iconfont.1781658322623.woff2} +0 -0
- /package/es/{iconfont.1781503187022.ttf → iconfont.1781658322623.ttf} +0 -0
- /package/es/{iconfont.1781503187022.woff → iconfont.1781658322623.woff} +0 -0
- /package/es/{iconfont.1781503187022.woff2 → iconfont.1781658322623.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1781503187022.ttf → iconfont.1781658322623.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1781503187022.woff → iconfont.1781658322623.woff} +0 -0
- /package/lib/icon/style/{iconfont.1781503187022.woff2 → iconfont.1781658322623.woff2} +0 -0
- /package/lib/{iconfont.1781503187022.ttf → iconfont.1781658322623.ttf} +0 -0
- /package/lib/{iconfont.1781503187022.woff → iconfont.1781658322623.woff} +0 -0
- /package/lib/{iconfont.1781503187022.woff2 → iconfont.1781658322623.woff2} +0 -0
|
@@ -5,12 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _comp = require("../../ui/src/comp");
|
|
8
|
-
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
9
8
|
var _ui = require("../../ui");
|
|
10
9
|
var _dom = require("../../ui/src/dom");
|
|
11
10
|
var _utils = require("../../ui/src/utils");
|
|
12
|
-
var _util = require("
|
|
11
|
+
var _util = require("./util");
|
|
13
12
|
var _log = require("../../ui/src/log");
|
|
13
|
+
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
14
|
+
var _list = _interopRequireDefault(require("../../list/src/list"));
|
|
14
15
|
var _input = _interopRequireDefault(require("../../input/src/input"));
|
|
15
16
|
var _button = _interopRequireDefault(require("../../button/src/button"));
|
|
16
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -18,14 +19,59 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
18
19
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
19
20
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
20
21
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
21
|
-
|
|
22
|
+
/**
|
|
23
|
+
* 生成节点的唯一主键
|
|
24
|
+
*/
|
|
25
|
+
function getNodeUniqueId() {
|
|
22
26
|
return _xeUtils.default.uniqueId('node_');
|
|
23
27
|
}
|
|
28
|
+
function handleVisibleOrCheckMode(mode, isExistChild, nLevel) {
|
|
29
|
+
if (mode) {
|
|
30
|
+
if (mode === 'first') {
|
|
31
|
+
return !nLevel;
|
|
32
|
+
}
|
|
33
|
+
if (mode === 'last') {
|
|
34
|
+
return !isExistChild;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
function createReactData() {
|
|
40
|
+
return {
|
|
41
|
+
initialized: false,
|
|
42
|
+
searchValue: '',
|
|
43
|
+
searchLoading: false,
|
|
44
|
+
currentCunkList: [],
|
|
45
|
+
currentItems: [],
|
|
46
|
+
currentNode: null,
|
|
47
|
+
panelIndex: 0,
|
|
48
|
+
panelStyle: {},
|
|
49
|
+
panelPlacement: null,
|
|
50
|
+
triggerFocusPanel: false,
|
|
51
|
+
visiblePanel: false,
|
|
52
|
+
isAniVisible: false,
|
|
53
|
+
isActivated: false,
|
|
54
|
+
selectRadioKey: null,
|
|
55
|
+
treeList: [],
|
|
56
|
+
updateExpandedFlag: 1,
|
|
57
|
+
updateCheckboxFlag: 1,
|
|
58
|
+
fullOptFlag: 1,
|
|
59
|
+
lazyOptFlag: 1
|
|
60
|
+
};
|
|
61
|
+
}
|
|
24
62
|
function createInternalData() {
|
|
25
63
|
return {
|
|
26
64
|
// hpTimeout: undefined,
|
|
27
|
-
|
|
28
|
-
|
|
65
|
+
afterTreeList: [],
|
|
66
|
+
treeFullData: [],
|
|
67
|
+
afterVisibleList: [],
|
|
68
|
+
nodeMaps: {},
|
|
69
|
+
fullNodeMaps: {},
|
|
70
|
+
lazyNodeMaps: {},
|
|
71
|
+
indeterminateRowMaps: {},
|
|
72
|
+
selectCheckboxMaps: {},
|
|
73
|
+
treeExpandedMaps: {},
|
|
74
|
+
treeExpandLazyLoadedMaps: {}
|
|
29
75
|
};
|
|
30
76
|
}
|
|
31
77
|
var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defineVxeComponent)({
|
|
@@ -55,29 +101,48 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
55
101
|
},
|
|
56
102
|
filterable: Boolean,
|
|
57
103
|
filterConfig: Object,
|
|
104
|
+
showFullLabel: {
|
|
105
|
+
type: Boolean,
|
|
106
|
+
default: (0, _ui.getConfig)().cascader.showFullLabel
|
|
107
|
+
},
|
|
108
|
+
separator: {
|
|
109
|
+
type: String,
|
|
110
|
+
default: (0, _ui.getConfig)().cascader.separator
|
|
111
|
+
},
|
|
58
112
|
multiple: Boolean,
|
|
59
113
|
className: [String, Function],
|
|
60
114
|
prefixIcon: String,
|
|
61
|
-
placement: String,
|
|
62
|
-
transform: Boolean,
|
|
63
115
|
lazyOptions: Array,
|
|
64
116
|
options: Array,
|
|
65
117
|
optionProps: Object,
|
|
66
|
-
zIndex: Number,
|
|
67
118
|
size: {
|
|
68
119
|
type: String,
|
|
69
120
|
default: function _default() {
|
|
70
121
|
return (0, _ui.getConfig)().cascader.size || (0, _ui.getConfig)().size;
|
|
71
122
|
}
|
|
72
123
|
},
|
|
124
|
+
treeConfig: Object,
|
|
125
|
+
radioConfig: Object,
|
|
126
|
+
checkboxConfig: Object,
|
|
73
127
|
remote: Boolean,
|
|
74
128
|
remoteConfig: Function,
|
|
75
129
|
popupConfig: Object,
|
|
76
|
-
|
|
77
|
-
autoClose: {
|
|
130
|
+
checkedClosable: {
|
|
78
131
|
type: Boolean,
|
|
79
132
|
default: function _default() {
|
|
80
|
-
return (0, _ui.getConfig)().cascader.
|
|
133
|
+
return (0, _ui.getConfig)().cascader.checkedClosable;
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
clearClosable: {
|
|
137
|
+
type: Boolean,
|
|
138
|
+
default: function _default() {
|
|
139
|
+
return (0, _ui.getConfig)().cascader.clearClosable;
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
showCloseButton: {
|
|
143
|
+
type: Boolean,
|
|
144
|
+
default: function _default() {
|
|
145
|
+
return (0, _ui.getConfig)().cascader.showCloseButton;
|
|
81
146
|
}
|
|
82
147
|
},
|
|
83
148
|
showTotalButton: {
|
|
@@ -97,16 +162,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
97
162
|
default: function _default() {
|
|
98
163
|
return (0, _ui.getConfig)().cascader.showClearButton;
|
|
99
164
|
}
|
|
100
|
-
}
|
|
101
|
-
transfer: {
|
|
102
|
-
type: Boolean,
|
|
103
|
-
default: null
|
|
104
|
-
},
|
|
105
|
-
/**
|
|
106
|
-
* 已废弃,被 remote-config.queryMethod 替换
|
|
107
|
-
* @deprecated
|
|
108
|
-
*/
|
|
109
|
-
remoteMethod: Function
|
|
165
|
+
}
|
|
110
166
|
},
|
|
111
167
|
inject: {
|
|
112
168
|
$xeModal: {
|
|
@@ -134,18 +190,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
134
190
|
},
|
|
135
191
|
data: function data() {
|
|
136
192
|
var xID = _xeUtils.default.uniqueId();
|
|
137
|
-
var reactData =
|
|
138
|
-
initialized: false,
|
|
139
|
-
searchValue: '',
|
|
140
|
-
searchLoading: false,
|
|
141
|
-
panelIndex: 0,
|
|
142
|
-
panelStyle: {},
|
|
143
|
-
panelPlacement: null,
|
|
144
|
-
triggerFocusPanel: false,
|
|
145
|
-
visiblePanel: false,
|
|
146
|
-
isAniVisible: false,
|
|
147
|
-
isActivated: false
|
|
148
|
-
};
|
|
193
|
+
var reactData = createReactData();
|
|
149
194
|
var internalData = createInternalData();
|
|
150
195
|
return {
|
|
151
196
|
xID: xID,
|
|
@@ -182,67 +227,44 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
182
227
|
},
|
|
183
228
|
computeBtnTransfer: function computeBtnTransfer() {
|
|
184
229
|
var $xeCascader = this;
|
|
185
|
-
var props = $xeCascader;
|
|
186
230
|
var $xeTable = $xeCascader.$xeTable;
|
|
187
231
|
var $xeModal = $xeCascader.$xeModal;
|
|
188
232
|
var $xeDrawer = $xeCascader.$xeDrawer;
|
|
189
233
|
var $xeForm = $xeCascader.$xeForm;
|
|
190
|
-
var
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
return globalTransfer;
|
|
195
|
-
}
|
|
196
|
-
if ($xeTable || $xeModal || $xeDrawer || $xeForm) {
|
|
197
|
-
return true;
|
|
198
|
-
}
|
|
234
|
+
var popupOpts = $xeCascader.computePopupOpts;
|
|
235
|
+
var transfer = popupOpts.transfer;
|
|
236
|
+
if (_xeUtils.default.isBoolean(transfer)) {
|
|
237
|
+
return transfer;
|
|
199
238
|
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
var props = $xeCascader;
|
|
205
|
-
return Object.assign({}, (0, _ui.getConfig)().cascader.popupConfig, props.popupConfig);
|
|
239
|
+
if ($xeTable || $xeModal || $xeDrawer || $xeForm) {
|
|
240
|
+
return true;
|
|
241
|
+
}
|
|
242
|
+
return false;
|
|
206
243
|
},
|
|
207
244
|
computeTreeOpts: function computeTreeOpts() {
|
|
208
245
|
var $xeCascader = this;
|
|
209
246
|
var props = $xeCascader;
|
|
210
247
|
return Object.assign({}, (0, _ui.getConfig)().cascader.treeConfig, props.treeConfig);
|
|
211
248
|
},
|
|
212
|
-
|
|
249
|
+
computeRadioOpts: function computeRadioOpts() {
|
|
213
250
|
var $xeCascader = this;
|
|
214
|
-
var
|
|
215
|
-
return Object.assign({
|
|
216
|
-
isHover: true
|
|
217
|
-
}, treeOpts.nodeConfig);
|
|
251
|
+
var props = $xeCascader;
|
|
252
|
+
return Object.assign({}, (0, _ui.getConfig)().cascader.radioConfig, props.radioConfig);
|
|
218
253
|
},
|
|
219
|
-
|
|
254
|
+
computeCheckboxOpts: function computeCheckboxOpts() {
|
|
220
255
|
var $xeCascader = this;
|
|
221
|
-
var
|
|
222
|
-
return Object.assign({
|
|
223
|
-
showIcon: !!treeOpts.showCheckbox
|
|
224
|
-
}, treeOpts.checkboxConfig, {
|
|
225
|
-
trigger: 'node'
|
|
226
|
-
});
|
|
256
|
+
var props = $xeCascader;
|
|
257
|
+
return Object.assign({}, (0, _ui.getConfig)().cascader.checkboxConfig, props.checkboxConfig);
|
|
227
258
|
},
|
|
228
|
-
|
|
259
|
+
computePopupOpts: function computePopupOpts() {
|
|
229
260
|
var $xeCascader = this;
|
|
230
|
-
var
|
|
231
|
-
return Object.assign({
|
|
232
|
-
showIcon: !!treeOpts.showRadio
|
|
233
|
-
}, treeOpts.radioConfig, {
|
|
234
|
-
trigger: 'node'
|
|
235
|
-
});
|
|
261
|
+
var props = $xeCascader;
|
|
262
|
+
return Object.assign({}, (0, _ui.getConfig)().cascader.popupConfig, props.popupConfig);
|
|
236
263
|
},
|
|
237
264
|
computePropsOpts: function computePropsOpts() {
|
|
238
265
|
var $xeCascader = this;
|
|
239
266
|
var props = $xeCascader;
|
|
240
|
-
return
|
|
241
|
-
},
|
|
242
|
-
computeNodeKeyField: function computeNodeKeyField() {
|
|
243
|
-
var $xeCascader = this;
|
|
244
|
-
var valueField = $xeCascader.computeValueField;
|
|
245
|
-
return valueField;
|
|
267
|
+
return props.optionProps || {};
|
|
246
268
|
},
|
|
247
269
|
computeLabelField: function computeLabelField() {
|
|
248
270
|
var $xeCascader = this;
|
|
@@ -254,53 +276,63 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
254
276
|
var propsOpts = $xeCascader.computePropsOpts;
|
|
255
277
|
return propsOpts.value || 'value';
|
|
256
278
|
},
|
|
257
|
-
|
|
279
|
+
computeKeyField: function computeKeyField() {
|
|
258
280
|
var $xeCascader = this;
|
|
259
|
-
var
|
|
260
|
-
return
|
|
281
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
282
|
+
return treeOpts.keyField || 'id';
|
|
261
283
|
},
|
|
262
284
|
computeParentField: function computeParentField() {
|
|
263
285
|
var $xeCascader = this;
|
|
264
|
-
var
|
|
265
|
-
return
|
|
286
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
287
|
+
return treeOpts.parentField || 'parentId';
|
|
288
|
+
},
|
|
289
|
+
computeChildrenField: function computeChildrenField() {
|
|
290
|
+
var $xeCascader = this;
|
|
291
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
292
|
+
return treeOpts.childrenField || 'children';
|
|
293
|
+
},
|
|
294
|
+
computeMapChildrenField: function computeMapChildrenField() {
|
|
295
|
+
var $xeCascader = this;
|
|
296
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
297
|
+
return treeOpts.mapChildrenField || 'mapChildren';
|
|
266
298
|
},
|
|
267
299
|
computeHasChildField: function computeHasChildField() {
|
|
268
300
|
var $xeCascader = this;
|
|
269
|
-
var
|
|
270
|
-
return
|
|
301
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
302
|
+
return treeOpts.hasChildField || 'hasChild';
|
|
271
303
|
},
|
|
272
304
|
computeRemoteOpts: function computeRemoteOpts() {
|
|
273
305
|
var $xeCascader = this;
|
|
274
306
|
var props = $xeCascader;
|
|
275
307
|
return Object.assign({}, (0, _ui.getConfig)().cascader.remoteConfig, props.remoteConfig);
|
|
276
308
|
},
|
|
277
|
-
|
|
309
|
+
computeSelectVals: function computeSelectVals() {
|
|
278
310
|
var $xeCascader = this;
|
|
279
311
|
var props = $xeCascader;
|
|
280
|
-
var
|
|
281
|
-
return
|
|
312
|
+
var modelValue = props.value;
|
|
313
|
+
return _xeUtils.default.eqNull(modelValue) ? [] : _xeUtils.default.isArray(modelValue) ? modelValue : [modelValue];
|
|
282
314
|
},
|
|
283
315
|
computeSelectLabel: function computeSelectLabel() {
|
|
284
316
|
var $xeCascader = this;
|
|
285
317
|
var props = $xeCascader;
|
|
318
|
+
var reactData = $xeCascader.reactData;
|
|
286
319
|
var internalData = $xeCascader.internalData;
|
|
287
|
-
var
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
var
|
|
320
|
+
var showFullLabel = props.showFullLabel;
|
|
321
|
+
var fullOptFlag = reactData.fullOptFlag,
|
|
322
|
+
lazyOptFlag = reactData.lazyOptFlag;
|
|
323
|
+
var fullNodeMaps = internalData.fullNodeMaps,
|
|
324
|
+
lazyNodeMaps = internalData.lazyNodeMaps;
|
|
291
325
|
var labelField = $xeCascader.computeLabelField;
|
|
292
|
-
var selectVals =
|
|
326
|
+
var selectVals = $xeCascader.computeSelectVals;
|
|
293
327
|
return selectVals.map(function (val) {
|
|
294
328
|
var cacheItem = fullNodeMaps[val];
|
|
295
|
-
if (cacheItem) {
|
|
296
|
-
return cacheItem.item[labelField];
|
|
329
|
+
if (fullOptFlag && cacheItem) {
|
|
330
|
+
return showFullLabel ? cacheItem.fullLabel : cacheItem.item[labelField];
|
|
297
331
|
}
|
|
298
|
-
if (
|
|
299
|
-
var
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
if (lazyItem) {
|
|
303
|
-
return lazyItem[labelField];
|
|
332
|
+
if (lazyOptFlag) {
|
|
333
|
+
var lazyCacheItem = lazyNodeMaps[val];
|
|
334
|
+
if (lazyCacheItem) {
|
|
335
|
+
return showFullLabel ? lazyCacheItem.fullLabel : lazyCacheItem.item[labelField];
|
|
304
336
|
}
|
|
305
337
|
}
|
|
306
338
|
return val;
|
|
@@ -308,18 +340,31 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
308
340
|
},
|
|
309
341
|
computePopupWrapperStyle: function computePopupWrapperStyle() {
|
|
310
342
|
var $xeCascader = this;
|
|
343
|
+
var reactData = $xeCascader.reactData;
|
|
344
|
+
var currentCunkList = reactData.currentCunkList,
|
|
345
|
+
panelStyle = reactData.panelStyle;
|
|
311
346
|
var popupOpts = $xeCascader.computePopupOpts;
|
|
312
347
|
var height = popupOpts.height,
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
}
|
|
348
|
+
nodeWidth = popupOpts.nodeWidth,
|
|
349
|
+
nodeHeight = popupOpts.nodeHeight;
|
|
350
|
+
var stys = Object.assign(Object.assign({}, panelStyle), {
|
|
351
|
+
'--vxe-ui-cascader-chunk-size': currentCunkList.length
|
|
352
|
+
});
|
|
318
353
|
if (height) {
|
|
319
|
-
stys
|
|
320
|
-
|
|
354
|
+
stys['--vxe-ui-cascader-chunk-height'] = (0, _dom.toCssUnit)(height);
|
|
355
|
+
}
|
|
356
|
+
if (nodeWidth) {
|
|
357
|
+
stys['--vxe-ui-cascader-node-width'] = (0, _dom.toCssUnit)(nodeWidth);
|
|
358
|
+
}
|
|
359
|
+
if (nodeHeight) {
|
|
360
|
+
stys['--vxe-ui-cascader-node-height'] = (0, _dom.toCssUnit)(nodeHeight);
|
|
321
361
|
}
|
|
322
362
|
return stys;
|
|
363
|
+
},
|
|
364
|
+
computeFilterOpts: function computeFilterOpts() {
|
|
365
|
+
var $xeCascader = this;
|
|
366
|
+
var props = $xeCascader;
|
|
367
|
+
return Object.assign({}, (0, _ui.getConfig)().cascader.filterConfig, props.filterConfig);
|
|
323
368
|
}
|
|
324
369
|
}),
|
|
325
370
|
methods: {
|
|
@@ -341,53 +386,384 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
341
386
|
$xeCascader.$emit('model-value', value);
|
|
342
387
|
}
|
|
343
388
|
},
|
|
344
|
-
|
|
389
|
+
getNodeId: function getNodeId(node) {
|
|
345
390
|
var $xeCascader = this;
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
391
|
+
if (!node) {
|
|
392
|
+
return '';
|
|
393
|
+
}
|
|
394
|
+
var valueField = $xeCascader.computeValueField;
|
|
395
|
+
var nodeKey = node[valueField];
|
|
396
|
+
return (0, _util.enNodeValue)(nodeKey);
|
|
349
397
|
},
|
|
350
|
-
|
|
398
|
+
isCheckedByCheckboxNodeId: function isCheckedByCheckboxNodeId(nodeid) {
|
|
351
399
|
var $xeCascader = this;
|
|
352
|
-
var
|
|
400
|
+
var reactData = $xeCascader.reactData;
|
|
401
|
+
var internalData = $xeCascader.internalData;
|
|
402
|
+
var updateCheckboxFlag = reactData.updateCheckboxFlag;
|
|
403
|
+
var selectCheckboxMaps = internalData.selectCheckboxMaps;
|
|
404
|
+
return !!(updateCheckboxFlag && selectCheckboxMaps[nodeid]);
|
|
405
|
+
},
|
|
406
|
+
handleCheckedCheckboxNode: function handleCheckedCheckboxNode(nodeList, checked) {
|
|
407
|
+
var $xeCascader = this;
|
|
408
|
+
var reactData = $xeCascader.reactData;
|
|
353
409
|
var internalData = $xeCascader.internalData;
|
|
354
|
-
var
|
|
355
|
-
var
|
|
410
|
+
var selectCheckboxMaps = internalData.selectCheckboxMaps;
|
|
411
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
356
412
|
var childrenField = $xeCascader.computeChildrenField;
|
|
413
|
+
var checkboxOpts = $xeCascader.computeCheckboxOpts;
|
|
414
|
+
var checkStrictly = checkboxOpts.checkStrictly;
|
|
415
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
416
|
+
var transform = treeOpts.transform;
|
|
417
|
+
var handleSelect = function handleSelect(node) {
|
|
418
|
+
var nodeid = $xeCascader.getNodeId(node);
|
|
419
|
+
if (checked) {
|
|
420
|
+
if (!selectCheckboxMaps[nodeid]) {
|
|
421
|
+
selectCheckboxMaps[nodeid] = node;
|
|
422
|
+
}
|
|
423
|
+
} else {
|
|
424
|
+
if (selectCheckboxMaps[nodeid]) {
|
|
425
|
+
delete selectCheckboxMaps[nodeid];
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
};
|
|
429
|
+
if (checkStrictly) {
|
|
430
|
+
nodeList.forEach(handleSelect);
|
|
431
|
+
} else {
|
|
432
|
+
_xeUtils.default.eachTree(nodeList, handleSelect, {
|
|
433
|
+
children: transform ? mapChildrenField : childrenField
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
reactData.updateCheckboxFlag++;
|
|
437
|
+
$xeCascader.updateCheckboxStatus();
|
|
438
|
+
},
|
|
439
|
+
createNode: function createNode(records) {
|
|
440
|
+
var $xeCascader = this;
|
|
357
441
|
var valueField = $xeCascader.computeValueField;
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
var nodeid = $xeCascader.getNodeid(item);
|
|
442
|
+
return Promise.resolve(records.map(function (obj) {
|
|
443
|
+
var item = Object.assign({}, obj);
|
|
444
|
+
var nodeid = $xeCascader.getNodeId(item);
|
|
362
445
|
if (!nodeid) {
|
|
363
|
-
nodeid =
|
|
446
|
+
nodeid = getNodeUniqueId();
|
|
447
|
+
_xeUtils.default.set(item, valueField, nodeid);
|
|
364
448
|
}
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
449
|
+
return item;
|
|
450
|
+
}));
|
|
451
|
+
},
|
|
452
|
+
cacheNodeMap: function cacheNodeMap() {
|
|
453
|
+
var $xeCascader = this;
|
|
454
|
+
var props = $xeCascader;
|
|
455
|
+
var reactData = $xeCascader.reactData;
|
|
456
|
+
var internalData = $xeCascader.internalData;
|
|
457
|
+
var separator = props.separator;
|
|
458
|
+
var treeFullData = internalData.treeFullData;
|
|
459
|
+
var valueField = $xeCascader.computeValueField;
|
|
460
|
+
var labelField = $xeCascader.computeLabelField;
|
|
461
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
462
|
+
var keyMaps = {};
|
|
463
|
+
var fullMaps = {};
|
|
464
|
+
_xeUtils.default.eachTree(treeFullData, function (item, index, items, path, parenItem, nodes) {
|
|
465
|
+
var nodeid = $xeCascader.getNodeId(item);
|
|
466
|
+
if (!nodeid) {
|
|
467
|
+
nodeid = getNodeUniqueId();
|
|
468
|
+
item[valueField] = nodeid;
|
|
372
469
|
}
|
|
373
|
-
|
|
470
|
+
var nodeVal = item[valueField];
|
|
471
|
+
var itemRest = {
|
|
374
472
|
item: item,
|
|
375
473
|
index: index,
|
|
474
|
+
$index: -1,
|
|
475
|
+
_index: -1,
|
|
376
476
|
items: items,
|
|
377
|
-
parent:
|
|
378
|
-
nodes: nodes
|
|
477
|
+
parent: parenItem,
|
|
478
|
+
nodes: nodes,
|
|
479
|
+
level: nodes.length - 1,
|
|
480
|
+
treeIndex: index,
|
|
481
|
+
lineCount: 0,
|
|
482
|
+
treeLoaded: false,
|
|
483
|
+
fullLabel: nodes.map(function (item) {
|
|
484
|
+
return item[labelField];
|
|
485
|
+
}).join(separator || ' / ')
|
|
379
486
|
};
|
|
487
|
+
keyMaps[nodeid] = itemRest;
|
|
488
|
+
fullMaps[nodeVal] = itemRest;
|
|
380
489
|
}, {
|
|
381
490
|
children: childrenField
|
|
382
491
|
});
|
|
383
|
-
internalData.
|
|
384
|
-
internalData.fullNodeMaps =
|
|
492
|
+
internalData.nodeMaps = keyMaps;
|
|
493
|
+
internalData.fullNodeMaps = fullMaps;
|
|
494
|
+
reactData.fullOptFlag++;
|
|
385
495
|
},
|
|
386
|
-
|
|
496
|
+
updateAfterDataIndex: function updateAfterDataIndex() {
|
|
387
497
|
var $xeCascader = this;
|
|
388
498
|
var props = $xeCascader;
|
|
499
|
+
var internalData = $xeCascader.internalData;
|
|
500
|
+
var separator = props.separator;
|
|
501
|
+
var afterTreeList = internalData.afterTreeList,
|
|
502
|
+
nodeMaps = internalData.nodeMaps;
|
|
503
|
+
var labelField = $xeCascader.computeLabelField;
|
|
504
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
505
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
506
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
507
|
+
var transform = treeOpts.transform;
|
|
508
|
+
var vtIndex = 0;
|
|
509
|
+
_xeUtils.default.eachTree(afterTreeList, function (item, index, items, path, parenItem, nodes) {
|
|
510
|
+
var nodeid = $xeCascader.getNodeId(item);
|
|
511
|
+
var nodeItem = nodeMaps[nodeid];
|
|
512
|
+
if (nodeItem) {
|
|
513
|
+
nodeItem.items = items;
|
|
514
|
+
nodeItem.treeIndex = index;
|
|
515
|
+
nodeItem._index = vtIndex;
|
|
516
|
+
} else {
|
|
517
|
+
var rest = {
|
|
518
|
+
item: item,
|
|
519
|
+
index: index,
|
|
520
|
+
$index: -1,
|
|
521
|
+
_index: vtIndex,
|
|
522
|
+
items: items,
|
|
523
|
+
parent: parenItem,
|
|
524
|
+
nodes: nodes,
|
|
525
|
+
level: nodes.length - 1,
|
|
526
|
+
treeIndex: index,
|
|
527
|
+
lineCount: 0,
|
|
528
|
+
treeLoaded: false,
|
|
529
|
+
fullLabel: nodes.map(function (item) {
|
|
530
|
+
return item[labelField];
|
|
531
|
+
}).join(separator || ' / ')
|
|
532
|
+
};
|
|
533
|
+
nodeMaps[nodeid] = rest;
|
|
534
|
+
}
|
|
535
|
+
vtIndex++;
|
|
536
|
+
}, {
|
|
537
|
+
children: transform ? mapChildrenField : childrenField
|
|
538
|
+
});
|
|
539
|
+
},
|
|
540
|
+
updateAfterFullData: function updateAfterFullData() {
|
|
541
|
+
var $xeCascader = this;
|
|
389
542
|
var reactData = $xeCascader.reactData;
|
|
390
|
-
var
|
|
543
|
+
var internalData = $xeCascader.internalData;
|
|
544
|
+
var searchValue = reactData.searchValue;
|
|
545
|
+
var treeFullData = internalData.treeFullData,
|
|
546
|
+
lastFilterValue = internalData.lastFilterValue;
|
|
547
|
+
var labelField = $xeCascader.computeLabelField;
|
|
548
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
549
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
550
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
551
|
+
var transform = treeOpts.transform;
|
|
552
|
+
var filterOpts = $xeCascader.computeFilterOpts;
|
|
553
|
+
var beforeFilterMethod = filterOpts.beforeFilterMethod,
|
|
554
|
+
filterMethod = filterOpts.filterMethod,
|
|
555
|
+
afterFilterMethod = filterOpts.afterFilterMethod;
|
|
556
|
+
var fullList = treeFullData;
|
|
557
|
+
var treeList = fullList;
|
|
558
|
+
var filterStr = '';
|
|
559
|
+
if (searchValue) {
|
|
560
|
+
filterStr = "".concat(searchValue);
|
|
561
|
+
var handleSearch = filterMethod ? function (item) {
|
|
562
|
+
return filterMethod({
|
|
563
|
+
$cascader: $xeCascader,
|
|
564
|
+
node: item,
|
|
565
|
+
filterValue: filterStr
|
|
566
|
+
});
|
|
567
|
+
} : function (item) {
|
|
568
|
+
return String(item[labelField]).toLowerCase().indexOf(filterStr.toLowerCase()) > -1;
|
|
569
|
+
};
|
|
570
|
+
var bafParams = {
|
|
571
|
+
$cascader: $xeCascader,
|
|
572
|
+
filterValue: filterStr
|
|
573
|
+
};
|
|
574
|
+
if (beforeFilterMethod) {
|
|
575
|
+
beforeFilterMethod(bafParams);
|
|
576
|
+
}
|
|
577
|
+
if (transform) {
|
|
578
|
+
treeList = _xeUtils.default.searchTree(treeFullData, handleSearch, {
|
|
579
|
+
original: true,
|
|
580
|
+
isEvery: true,
|
|
581
|
+
children: childrenField,
|
|
582
|
+
mapChildren: mapChildrenField
|
|
583
|
+
});
|
|
584
|
+
fullList = treeList;
|
|
585
|
+
} else {
|
|
586
|
+
fullList = treeFullData.filter(handleSearch);
|
|
587
|
+
}
|
|
588
|
+
internalData.lastFilterValue = filterStr;
|
|
589
|
+
$xeCascader.$nextTick(function () {
|
|
590
|
+
if (afterFilterMethod) {
|
|
591
|
+
afterFilterMethod(bafParams);
|
|
592
|
+
}
|
|
593
|
+
});
|
|
594
|
+
} else {
|
|
595
|
+
if (transform) {
|
|
596
|
+
treeList = _xeUtils.default.searchTree(treeFullData, function () {
|
|
597
|
+
return true;
|
|
598
|
+
}, {
|
|
599
|
+
original: true,
|
|
600
|
+
isEvery: true,
|
|
601
|
+
children: childrenField,
|
|
602
|
+
mapChildren: mapChildrenField
|
|
603
|
+
});
|
|
604
|
+
fullList = treeList;
|
|
605
|
+
if (lastFilterValue) {
|
|
606
|
+
var _bafParams = {
|
|
607
|
+
$cascader: $xeCascader,
|
|
608
|
+
filterValue: filterStr
|
|
609
|
+
};
|
|
610
|
+
if (beforeFilterMethod) {
|
|
611
|
+
beforeFilterMethod(_bafParams);
|
|
612
|
+
}
|
|
613
|
+
// 取消筛选时自动收起
|
|
614
|
+
$xeCascader.$nextTick(function () {
|
|
615
|
+
if (afterFilterMethod) {
|
|
616
|
+
afterFilterMethod(_bafParams);
|
|
617
|
+
}
|
|
618
|
+
});
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
internalData.lastFilterValue = '';
|
|
622
|
+
}
|
|
623
|
+
internalData.afterVisibleList = fullList;
|
|
624
|
+
internalData.afterTreeList = treeList;
|
|
625
|
+
$xeCascader.updateAfterDataIndex();
|
|
626
|
+
},
|
|
627
|
+
/**
|
|
628
|
+
* 如果为虚拟树、则将树结构拍平
|
|
629
|
+
*/
|
|
630
|
+
handleTreeToList: function handleTreeToList() {
|
|
631
|
+
var $xeCascader = this;
|
|
632
|
+
var internalData = $xeCascader.internalData;
|
|
633
|
+
var afterTreeList = internalData.afterTreeList,
|
|
634
|
+
treeExpandedMaps = internalData.treeExpandedMaps;
|
|
635
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
636
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
637
|
+
var transform = treeOpts.transform;
|
|
638
|
+
var expandMaps = {};
|
|
639
|
+
if (transform) {
|
|
640
|
+
var fullData = [];
|
|
641
|
+
_xeUtils.default.eachTree(afterTreeList, function (item, index, items, path, parentRow) {
|
|
642
|
+
var nodeid = $xeCascader.getNodeId(item);
|
|
643
|
+
var parentNodeid = $xeCascader.getNodeId(parentRow);
|
|
644
|
+
if (!parentRow || expandMaps[parentNodeid] && treeExpandedMaps[parentNodeid]) {
|
|
645
|
+
expandMaps[nodeid] = 1;
|
|
646
|
+
fullData.push(item);
|
|
647
|
+
}
|
|
648
|
+
}, {
|
|
649
|
+
children: mapChildrenField
|
|
650
|
+
});
|
|
651
|
+
internalData.afterVisibleList = fullData;
|
|
652
|
+
return fullData;
|
|
653
|
+
}
|
|
654
|
+
return internalData.afterVisibleList;
|
|
655
|
+
},
|
|
656
|
+
handleData: function handleData(force) {
|
|
657
|
+
var $xeCascader = this;
|
|
658
|
+
var reactData = $xeCascader.reactData;
|
|
659
|
+
var internalData = $xeCascader.internalData;
|
|
660
|
+
var nodeMaps = internalData.nodeMaps;
|
|
661
|
+
var fullList = internalData.afterVisibleList;
|
|
662
|
+
if (force) {
|
|
663
|
+
// 更新数据,处理筛选和排序
|
|
664
|
+
$xeCascader.updateAfterFullData();
|
|
665
|
+
// 如果为虚拟树,将树结构拍平
|
|
666
|
+
fullList = $xeCascader.handleTreeToList();
|
|
667
|
+
}
|
|
668
|
+
var treeList = fullList.slice(0);
|
|
669
|
+
treeList.forEach(function (item, $index) {
|
|
670
|
+
var nodeid = $xeCascader.getNodeId(item);
|
|
671
|
+
var itemRest = nodeMaps[nodeid];
|
|
672
|
+
if (itemRest) {
|
|
673
|
+
itemRest.$index = $index;
|
|
674
|
+
}
|
|
675
|
+
});
|
|
676
|
+
reactData.treeList = treeList;
|
|
677
|
+
},
|
|
678
|
+
triggerSearchEvent: _xeUtils.default.debounce(function () {
|
|
679
|
+
var $xeCascader = this;
|
|
680
|
+
$xeCascader.handleData(true);
|
|
681
|
+
}, 350, {
|
|
682
|
+
trailing: true
|
|
683
|
+
}),
|
|
684
|
+
loadData: function loadData(list) {
|
|
685
|
+
var $xeCascader = this;
|
|
686
|
+
var internalData = $xeCascader.internalData;
|
|
687
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
688
|
+
var keyField = $xeCascader.computeKeyField;
|
|
689
|
+
var parentField = $xeCascader.computeParentField;
|
|
690
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
691
|
+
var rootParentValue = treeOpts.rootParentValue,
|
|
692
|
+
rootValues = treeOpts.rootValues;
|
|
693
|
+
var transform = treeOpts.transform;
|
|
694
|
+
var fullData = transform ? _xeUtils.default.toArrayTree(list, {
|
|
695
|
+
key: keyField,
|
|
696
|
+
parentKey: parentField,
|
|
697
|
+
mapChildren: childrenField,
|
|
698
|
+
rootParentValue: rootParentValue,
|
|
699
|
+
rootValues: rootValues
|
|
700
|
+
}) : list ? list.slice(0) : [];
|
|
701
|
+
internalData.treeFullData = fullData;
|
|
702
|
+
$xeCascader.cacheNodeMap();
|
|
703
|
+
$xeCascader.handleData(true);
|
|
704
|
+
$xeCascader.handleCurrentItems();
|
|
705
|
+
$xeCascader.updateCurrentChunk();
|
|
706
|
+
return $xeCascader.$nextTick();
|
|
707
|
+
},
|
|
708
|
+
updateCurrentChunk: function updateCurrentChunk() {
|
|
709
|
+
var $xeCascader = this;
|
|
710
|
+
var reactData = $xeCascader.reactData;
|
|
711
|
+
var internalData = $xeCascader.internalData;
|
|
712
|
+
var currentItems = reactData.currentItems;
|
|
713
|
+
var treeFullData = internalData.treeFullData;
|
|
714
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
715
|
+
var currentCunkList = [treeFullData];
|
|
716
|
+
if (currentItems.length) {
|
|
717
|
+
var chunkIndex = 0;
|
|
718
|
+
var stNodeid = currentItems[chunkIndex];
|
|
719
|
+
var optList = treeFullData;
|
|
720
|
+
while (stNodeid && optList && optList.length) {
|
|
721
|
+
stNodeid = currentItems[chunkIndex++];
|
|
722
|
+
var currOption = optList.find(function (item) {
|
|
723
|
+
return stNodeid === $xeCascader.getNodeId(item);
|
|
724
|
+
});
|
|
725
|
+
optList = currOption ? currOption[childrenField] : [];
|
|
726
|
+
if (!optList || !optList.length) {
|
|
727
|
+
break;
|
|
728
|
+
}
|
|
729
|
+
currentCunkList.push(optList);
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
reactData.currentCunkList = currentCunkList;
|
|
733
|
+
},
|
|
734
|
+
handleCurrentItems: function handleCurrentItems() {
|
|
735
|
+
var $xeCascader = this;
|
|
736
|
+
var reactData = $xeCascader.reactData;
|
|
737
|
+
var internalData = $xeCascader.internalData;
|
|
738
|
+
var treeFullData = internalData.treeFullData;
|
|
739
|
+
var selectVals = $xeCascader.computeSelectVals;
|
|
740
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
741
|
+
var stItems = [];
|
|
742
|
+
var expandedMaps = {};
|
|
743
|
+
if (selectVals.length) {
|
|
744
|
+
var lastVal = _xeUtils.default.last(selectVals);
|
|
745
|
+
var stRest = _xeUtils.default.findTree(treeFullData, function (item) {
|
|
746
|
+
return lastVal === $xeCascader.getNodeId(item);
|
|
747
|
+
}, {
|
|
748
|
+
children: childrenField
|
|
749
|
+
});
|
|
750
|
+
if (stRest) {
|
|
751
|
+
var nodes = stRest.nodes;
|
|
752
|
+
nodes.forEach(function (item) {
|
|
753
|
+
var nodeid = $xeCascader.getNodeId(item);
|
|
754
|
+
expandedMaps[nodeid] = true;
|
|
755
|
+
stItems.push(nodeid);
|
|
756
|
+
});
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
internalData.treeExpandedMaps = expandedMaps;
|
|
760
|
+
reactData.currentItems = stItems;
|
|
761
|
+
},
|
|
762
|
+
updateZindex: function updateZindex() {
|
|
763
|
+
var $xeCascader = this;
|
|
764
|
+
var reactData = $xeCascader.reactData;
|
|
765
|
+
var popupOpts = $xeCascader.computePopupOpts;
|
|
766
|
+
var zIndex = popupOpts.zIndex;
|
|
391
767
|
if (zIndex) {
|
|
392
768
|
reactData.panelIndex = zIndex;
|
|
393
769
|
} else if (reactData.panelIndex < (0, _utils.getLastZIndex)()) {
|
|
@@ -396,9 +772,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
396
772
|
},
|
|
397
773
|
updatePlacement: function updatePlacement() {
|
|
398
774
|
var $xeCascader = this;
|
|
399
|
-
var props = $xeCascader;
|
|
400
775
|
var reactData = $xeCascader.reactData;
|
|
401
|
-
var placement = props.placement;
|
|
402
776
|
var panelIndex = reactData.panelIndex;
|
|
403
777
|
var targetElem = $xeCascader.$refs.refElem;
|
|
404
778
|
var panelElem = $xeCascader.$refs.refOptionPanel;
|
|
@@ -406,9 +780,10 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
406
780
|
var popupOpts = $xeCascader.computePopupOpts;
|
|
407
781
|
var handleStyle = function handleStyle() {
|
|
408
782
|
var ppObj = (0, _dom.updatePanelPlacement)(targetElem, panelElem, {
|
|
409
|
-
placement: popupOpts.placement
|
|
783
|
+
placement: popupOpts.placement,
|
|
410
784
|
defaultPlacement: popupOpts.defaultPlacement,
|
|
411
|
-
teleportTo: btnTransfer
|
|
785
|
+
teleportTo: btnTransfer,
|
|
786
|
+
isMinWidth: false
|
|
412
787
|
});
|
|
413
788
|
var panelStyle = Object.assign(ppObj.style, {
|
|
414
789
|
zIndex: panelIndex
|
|
@@ -419,7 +794,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
419
794
|
handleStyle();
|
|
420
795
|
return $xeCascader.$nextTick().then(handleStyle);
|
|
421
796
|
},
|
|
422
|
-
showOptionPanel: function showOptionPanel() {
|
|
797
|
+
showOptionPanel: function showOptionPanel(evnt) {
|
|
423
798
|
var $xeCascader = this;
|
|
424
799
|
var props = $xeCascader;
|
|
425
800
|
var reactData = $xeCascader.reactData;
|
|
@@ -427,13 +802,11 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
427
802
|
var loading = props.loading,
|
|
428
803
|
remote = props.remote,
|
|
429
804
|
filterable = props.filterable;
|
|
430
|
-
var
|
|
805
|
+
var treeFullData = internalData.treeFullData;
|
|
431
806
|
var isDisabled = $xeCascader.computeIsDisabled;
|
|
432
807
|
var remoteOpts = $xeCascader.computeRemoteOpts;
|
|
433
808
|
if (!loading && !isDisabled) {
|
|
434
|
-
|
|
435
|
-
clearTimeout(internalData.hpTimeout);
|
|
436
|
-
}
|
|
809
|
+
clearTimeout(internalData.hpTimeout);
|
|
437
810
|
if (!reactData.initialized) {
|
|
438
811
|
reactData.initialized = true;
|
|
439
812
|
var btnTransfer = $xeCascader.computeBtnTransfer;
|
|
@@ -447,7 +820,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
447
820
|
reactData.isActivated = true;
|
|
448
821
|
reactData.isAniVisible = true;
|
|
449
822
|
if (filterable) {
|
|
450
|
-
if (remote && remoteOpts.enabled && remoteOpts.autoLoad && !
|
|
823
|
+
if (remote && remoteOpts.enabled && remoteOpts.autoLoad && !treeFullData.length) {
|
|
451
824
|
$xeCascader.handleSearchEvent();
|
|
452
825
|
}
|
|
453
826
|
}
|
|
@@ -457,9 +830,12 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
457
830
|
}, 10);
|
|
458
831
|
$xeCascader.updateZindex();
|
|
459
832
|
$xeCascader.updatePlacement();
|
|
833
|
+
$xeCascader.dispatchEvent('visible-change', {
|
|
834
|
+
visible: true
|
|
835
|
+
}, evnt || null);
|
|
460
836
|
}
|
|
461
837
|
},
|
|
462
|
-
hideOptionPanel: function hideOptionPanel() {
|
|
838
|
+
hideOptionPanel: function hideOptionPanel(evnt) {
|
|
463
839
|
var $xeCascader = this;
|
|
464
840
|
var reactData = $xeCascader.reactData;
|
|
465
841
|
var internalData = $xeCascader.internalData;
|
|
@@ -467,6 +843,62 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
467
843
|
internalData.hpTimeout = setTimeout(function () {
|
|
468
844
|
reactData.isAniVisible = false;
|
|
469
845
|
}, 350);
|
|
846
|
+
$xeCascader.dispatchEvent('visible-change', {
|
|
847
|
+
visible: false
|
|
848
|
+
}, evnt || null);
|
|
849
|
+
},
|
|
850
|
+
setCurrentNode: function setCurrentNode(node) {
|
|
851
|
+
var $xeCascader = this;
|
|
852
|
+
var reactData = $xeCascader.reactData;
|
|
853
|
+
reactData.currentNode = node;
|
|
854
|
+
return $xeCascader.$nextTick();
|
|
855
|
+
},
|
|
856
|
+
setAllCheckboxNode: function setAllCheckboxNode(checked) {
|
|
857
|
+
var $xeCascader = this;
|
|
858
|
+
var reactData = $xeCascader.reactData;
|
|
859
|
+
var internalData = $xeCascader.internalData;
|
|
860
|
+
var selectMaps = {};
|
|
861
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
862
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
863
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
864
|
+
var transform = treeOpts.transform;
|
|
865
|
+
var checkKeys = [];
|
|
866
|
+
var checkNodes = [];
|
|
867
|
+
if (checked) {
|
|
868
|
+
_xeUtils.default.eachTree(internalData.afterTreeList, function (node) {
|
|
869
|
+
var nodeid = $xeCascader.getNodeId(node);
|
|
870
|
+
checkKeys.push(nodeid);
|
|
871
|
+
checkNodes.push(node);
|
|
872
|
+
selectMaps[nodeid] = true;
|
|
873
|
+
}, {
|
|
874
|
+
children: transform ? mapChildrenField : childrenField
|
|
875
|
+
});
|
|
876
|
+
}
|
|
877
|
+
internalData.indeterminateRowMaps = {};
|
|
878
|
+
internalData.selectCheckboxMaps = selectMaps;
|
|
879
|
+
reactData.updateCheckboxFlag++;
|
|
880
|
+
$xeCascader.updateCheckboxStatus();
|
|
881
|
+
return $xeCascader.$nextTick().then(function () {
|
|
882
|
+
return {
|
|
883
|
+
checkNodeKeys: checkKeys,
|
|
884
|
+
checkNodes: checkNodes
|
|
885
|
+
};
|
|
886
|
+
});
|
|
887
|
+
},
|
|
888
|
+
clearCheckboxNode: function clearCheckboxNode() {
|
|
889
|
+
var $xeCascader = this;
|
|
890
|
+
var reactData = $xeCascader.reactData;
|
|
891
|
+
var internalData = $xeCascader.internalData;
|
|
892
|
+
internalData.indeterminateRowMaps = {};
|
|
893
|
+
internalData.selectCheckboxMaps = {};
|
|
894
|
+
reactData.updateCheckboxFlag++;
|
|
895
|
+
$xeCascader.updateCheckboxStatus();
|
|
896
|
+
return $xeCascader.$nextTick().then(function () {
|
|
897
|
+
return {
|
|
898
|
+
checkNodeKeys: [],
|
|
899
|
+
checkNodes: []
|
|
900
|
+
};
|
|
901
|
+
});
|
|
470
902
|
},
|
|
471
903
|
changeEvent: function changeEvent(evnt, selectValue, node) {
|
|
472
904
|
var $xeCascader = this;
|
|
@@ -497,29 +929,26 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
497
929
|
clearEvent: function clearEvent(params, evnt) {
|
|
498
930
|
var $xeCascader = this;
|
|
499
931
|
$xeCascader.clearValueEvent(evnt, null);
|
|
500
|
-
$xeCascader.hideOptionPanel();
|
|
932
|
+
$xeCascader.hideOptionPanel(evnt);
|
|
501
933
|
},
|
|
502
934
|
allCheckedPanelEvent: function allCheckedPanelEvent(params) {
|
|
503
935
|
var $xeCascader = this;
|
|
504
936
|
var props = $xeCascader;
|
|
505
937
|
var $event = params.$event;
|
|
506
938
|
var multiple = props.multiple,
|
|
507
|
-
|
|
508
|
-
var $tree = $xeCascader.$refs.refTree;
|
|
939
|
+
checkedClosable = props.checkedClosable;
|
|
509
940
|
if (multiple) {
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
});
|
|
522
|
-
}
|
|
941
|
+
$xeCascader.setAllCheckboxNode(true).then(function (_ref) {
|
|
942
|
+
var checkNodeKeys = _ref.checkNodeKeys,
|
|
943
|
+
checkNodes = _ref.checkNodes;
|
|
944
|
+
$xeCascader.changeEvent($event, checkNodeKeys, checkNodes[0]);
|
|
945
|
+
$xeCascader.dispatchEvent('all-change', {
|
|
946
|
+
value: checkNodeKeys
|
|
947
|
+
}, $event);
|
|
948
|
+
if (checkedClosable) {
|
|
949
|
+
$xeCascader.hideOptionPanel($event);
|
|
950
|
+
}
|
|
951
|
+
});
|
|
523
952
|
}
|
|
524
953
|
},
|
|
525
954
|
clearCheckedPanelEvent: function clearCheckedPanelEvent(params) {
|
|
@@ -527,34 +956,22 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
527
956
|
var props = $xeCascader;
|
|
528
957
|
var $event = params.$event;
|
|
529
958
|
var multiple = props.multiple,
|
|
530
|
-
|
|
531
|
-
var
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
value: value
|
|
542
|
-
}, $event);
|
|
543
|
-
}
|
|
544
|
-
},
|
|
545
|
-
allExpandPanelEvent: function allExpandPanelEvent() {
|
|
546
|
-
var $xeCascader = this;
|
|
547
|
-
var $tree = $xeCascader.$refs.refTree;
|
|
548
|
-
if ($tree) {
|
|
549
|
-
$tree.setAllExpandNode(true);
|
|
550
|
-
}
|
|
959
|
+
checkedClosable = props.checkedClosable;
|
|
960
|
+
var value = multiple ? [] : null;
|
|
961
|
+
$xeCascader.clearCheckboxNode().then(function () {
|
|
962
|
+
if (checkedClosable) {
|
|
963
|
+
$xeCascader.hideOptionPanel($event);
|
|
964
|
+
}
|
|
965
|
+
});
|
|
966
|
+
$xeCascader.changeEvent($event, value, null);
|
|
967
|
+
$xeCascader.dispatchEvent('clear', {
|
|
968
|
+
value: value
|
|
969
|
+
}, $event);
|
|
551
970
|
},
|
|
552
|
-
|
|
971
|
+
closePanelEvent: function closePanelEvent(params) {
|
|
553
972
|
var $xeCascader = this;
|
|
554
|
-
var $
|
|
555
|
-
|
|
556
|
-
$tree.clearAllExpandNode();
|
|
557
|
-
}
|
|
973
|
+
var $event = params.$event;
|
|
974
|
+
$xeCascader.hideOptionPanel($event);
|
|
558
975
|
},
|
|
559
976
|
handleGlobalMousewheelEvent: function handleGlobalMousewheelEvent(evnt) {
|
|
560
977
|
var $xeCascader = this;
|
|
@@ -567,7 +984,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
567
984
|
if ((0, _dom.getEventTargetNode)(evnt, panelElem).flag) {
|
|
568
985
|
$xeCascader.updatePlacement();
|
|
569
986
|
} else {
|
|
570
|
-
$xeCascader.hideOptionPanel();
|
|
987
|
+
$xeCascader.hideOptionPanel(evnt);
|
|
571
988
|
}
|
|
572
989
|
}
|
|
573
990
|
}
|
|
@@ -582,17 +999,17 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
582
999
|
var panelElem = $xeCascader.$refs.refOptionPanel;
|
|
583
1000
|
reactData.isActivated = (0, _dom.getEventTargetNode)(evnt, el).flag || (0, _dom.getEventTargetNode)(evnt, panelElem).flag;
|
|
584
1001
|
if (visiblePanel && !reactData.isActivated) {
|
|
585
|
-
$xeCascader.hideOptionPanel();
|
|
1002
|
+
$xeCascader.hideOptionPanel(evnt);
|
|
586
1003
|
}
|
|
587
1004
|
}
|
|
588
1005
|
},
|
|
589
|
-
handleGlobalBlurEvent: function handleGlobalBlurEvent() {
|
|
1006
|
+
handleGlobalBlurEvent: function handleGlobalBlurEvent(evnt) {
|
|
590
1007
|
var $xeCascader = this;
|
|
591
1008
|
var reactData = $xeCascader.reactData;
|
|
592
1009
|
var visiblePanel = reactData.visiblePanel,
|
|
593
1010
|
isActivated = reactData.isActivated;
|
|
594
1011
|
if (visiblePanel) {
|
|
595
|
-
$xeCascader.hideOptionPanel();
|
|
1012
|
+
$xeCascader.hideOptionPanel(evnt);
|
|
596
1013
|
}
|
|
597
1014
|
if (isActivated) {
|
|
598
1015
|
reactData.isActivated = false;
|
|
@@ -613,17 +1030,421 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
613
1030
|
}
|
|
614
1031
|
},
|
|
615
1032
|
handleFocusSearch: function handleFocusSearch() {
|
|
616
|
-
var $
|
|
617
|
-
var props = $
|
|
1033
|
+
var $xeCascader = this;
|
|
1034
|
+
var props = $xeCascader;
|
|
618
1035
|
if (props.filterable) {
|
|
619
|
-
$
|
|
620
|
-
var inpSearch = $
|
|
1036
|
+
$xeCascader.$nextTick(function () {
|
|
1037
|
+
var inpSearch = $xeCascader.$refs.refInpSearch;
|
|
621
1038
|
if (inpSearch) {
|
|
622
1039
|
inpSearch.focus();
|
|
623
1040
|
}
|
|
624
1041
|
});
|
|
625
1042
|
}
|
|
626
1043
|
},
|
|
1044
|
+
changeCurrentEvent: function changeCurrentEvent(evnt, node) {
|
|
1045
|
+
var $xeCascader = this;
|
|
1046
|
+
var reactData = $xeCascader.reactData;
|
|
1047
|
+
evnt.preventDefault();
|
|
1048
|
+
var isChecked = true;
|
|
1049
|
+
reactData.currentNode = node;
|
|
1050
|
+
$xeCascader.dispatchEvent('current-change', {
|
|
1051
|
+
node: node,
|
|
1052
|
+
checked: isChecked
|
|
1053
|
+
}, evnt);
|
|
1054
|
+
},
|
|
1055
|
+
changeRadioEvent: function changeRadioEvent(evnt, node) {
|
|
1056
|
+
var $xeCascader = this;
|
|
1057
|
+
var reactData = $xeCascader.reactData;
|
|
1058
|
+
var internalData = $xeCascader.internalData;
|
|
1059
|
+
evnt.preventDefault();
|
|
1060
|
+
evnt.stopPropagation();
|
|
1061
|
+
var nodeMaps = internalData.nodeMaps;
|
|
1062
|
+
var radioOpts = $xeCascader.computeRadioOpts;
|
|
1063
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
1064
|
+
var checkMode = radioOpts.checkMode,
|
|
1065
|
+
checkMethod = radioOpts.checkMethod;
|
|
1066
|
+
var nodeid = $xeCascader.getNodeId(node);
|
|
1067
|
+
var childList = node[childrenField];
|
|
1068
|
+
var isExistChild = childList && childList.length > 0;
|
|
1069
|
+
var nodeItem = nodeMaps[nodeid] || {};
|
|
1070
|
+
var nLevel = nodeItem.level;
|
|
1071
|
+
var isDisabled = checkMethod ? !checkMethod({
|
|
1072
|
+
$cascader: $xeCascader,
|
|
1073
|
+
node: node
|
|
1074
|
+
}) : !handleVisibleOrCheckMode(checkMode, isExistChild, nLevel);
|
|
1075
|
+
if (isDisabled) {
|
|
1076
|
+
return;
|
|
1077
|
+
}
|
|
1078
|
+
var value = nodeid;
|
|
1079
|
+
reactData.selectRadioKey = value;
|
|
1080
|
+
$xeCascader.changeEvent(evnt, value, node);
|
|
1081
|
+
$xeCascader.hideOptionPanel(evnt);
|
|
1082
|
+
},
|
|
1083
|
+
handleAsyncTreeExpandChilds: function handleAsyncTreeExpandChilds(node) {
|
|
1084
|
+
var $xeCascader = this;
|
|
1085
|
+
var reactData = $xeCascader.reactData;
|
|
1086
|
+
var internalData = $xeCascader.internalData;
|
|
1087
|
+
var checkboxOpts = $xeCascader.computeCheckboxOpts;
|
|
1088
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
1089
|
+
var loadMethod = treeOpts.loadMethod;
|
|
1090
|
+
var checkStrictly = checkboxOpts.checkStrictly;
|
|
1091
|
+
return new Promise(function (resolve) {
|
|
1092
|
+
if (loadMethod) {
|
|
1093
|
+
var nodeMaps = internalData.nodeMaps;
|
|
1094
|
+
var nodeid = $xeCascader.getNodeId(node);
|
|
1095
|
+
var nodeItem = nodeMaps[nodeid];
|
|
1096
|
+
internalData.treeExpandLazyLoadedMaps[nodeid] = true;
|
|
1097
|
+
Promise.resolve(loadMethod({
|
|
1098
|
+
$cascader: $xeCascader,
|
|
1099
|
+
node: node
|
|
1100
|
+
})).then(function (childRecords) {
|
|
1101
|
+
var treeExpandLazyLoadedMaps = internalData.treeExpandLazyLoadedMaps;
|
|
1102
|
+
nodeItem.treeLoaded = true;
|
|
1103
|
+
if (treeExpandLazyLoadedMaps[nodeid]) {
|
|
1104
|
+
treeExpandLazyLoadedMaps[nodeid] = false;
|
|
1105
|
+
}
|
|
1106
|
+
if (!_xeUtils.default.isArray(childRecords)) {
|
|
1107
|
+
childRecords = [];
|
|
1108
|
+
}
|
|
1109
|
+
if (childRecords) {
|
|
1110
|
+
return $xeCascader.loadChildrenNode(node, childRecords).then(function (childRows) {
|
|
1111
|
+
var treeExpandedMaps = internalData.treeExpandedMaps;
|
|
1112
|
+
if (childRows.length && !treeExpandedMaps[nodeid]) {
|
|
1113
|
+
treeExpandedMaps[nodeid] = true;
|
|
1114
|
+
}
|
|
1115
|
+
reactData.updateExpandedFlag++;
|
|
1116
|
+
// 如果当前节点已选中,则展开后子节点也被选中
|
|
1117
|
+
if (!checkStrictly && $xeCascader.isCheckedByCheckboxNodeId(nodeid)) {
|
|
1118
|
+
$xeCascader.handleCheckedCheckboxNode(childRows, true);
|
|
1119
|
+
}
|
|
1120
|
+
$xeCascader.dispatchEvent('load-success', {
|
|
1121
|
+
node: node,
|
|
1122
|
+
data: childRecords
|
|
1123
|
+
}, new Event('load-success'));
|
|
1124
|
+
return $xeCascader.$nextTick();
|
|
1125
|
+
});
|
|
1126
|
+
} else {
|
|
1127
|
+
$xeCascader.dispatchEvent('load-success', {
|
|
1128
|
+
node: node,
|
|
1129
|
+
data: childRecords
|
|
1130
|
+
}, new Event('load-success'));
|
|
1131
|
+
}
|
|
1132
|
+
}).catch(function (e) {
|
|
1133
|
+
var treeExpandLazyLoadedMaps = internalData.treeExpandLazyLoadedMaps;
|
|
1134
|
+
nodeItem.treeLoaded = false;
|
|
1135
|
+
if (treeExpandLazyLoadedMaps[nodeid]) {
|
|
1136
|
+
treeExpandLazyLoadedMaps[nodeid] = false;
|
|
1137
|
+
}
|
|
1138
|
+
$xeCascader.dispatchEvent('load-error', {
|
|
1139
|
+
node: node,
|
|
1140
|
+
data: e
|
|
1141
|
+
}, new Event('load-error'));
|
|
1142
|
+
}).finally(function () {
|
|
1143
|
+
$xeCascader.handleTreeToList();
|
|
1144
|
+
$xeCascader.handleData();
|
|
1145
|
+
});
|
|
1146
|
+
} else {
|
|
1147
|
+
resolve();
|
|
1148
|
+
}
|
|
1149
|
+
});
|
|
1150
|
+
},
|
|
1151
|
+
/**
|
|
1152
|
+
* 展开与收起树节点
|
|
1153
|
+
* @param nodeList
|
|
1154
|
+
* @param expanded
|
|
1155
|
+
* @returns
|
|
1156
|
+
*/
|
|
1157
|
+
handleBaseTreeExpand: function handleBaseTreeExpand(nodeList, expanded) {
|
|
1158
|
+
var $xeCascader = this;
|
|
1159
|
+
var reactData = $xeCascader.reactData;
|
|
1160
|
+
var internalData = $xeCascader.internalData;
|
|
1161
|
+
var treeExpandLazyLoadedMaps = internalData.treeExpandLazyLoadedMaps,
|
|
1162
|
+
treeExpandedMaps = internalData.treeExpandedMaps;
|
|
1163
|
+
var nodeMaps = internalData.nodeMaps;
|
|
1164
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
1165
|
+
var hasChildField = $xeCascader.computeHasChildField;
|
|
1166
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
1167
|
+
var lazy = treeOpts.lazy,
|
|
1168
|
+
toggleMethod = treeOpts.toggleMethod;
|
|
1169
|
+
var result = [];
|
|
1170
|
+
var validNodes = toggleMethod ? nodeList.filter(function (node) {
|
|
1171
|
+
return toggleMethod({
|
|
1172
|
+
$cascader: $xeCascader,
|
|
1173
|
+
expanded: expanded,
|
|
1174
|
+
node: node
|
|
1175
|
+
});
|
|
1176
|
+
}) : nodeList;
|
|
1177
|
+
validNodes = validNodes.length ? [validNodes[validNodes.length - 1]] : [];
|
|
1178
|
+
// 同一级只能展开一个
|
|
1179
|
+
var nodeid = $xeCascader.getNodeId(validNodes[0]);
|
|
1180
|
+
var nodeItem = nodeMaps[nodeid];
|
|
1181
|
+
if (nodeItem) {
|
|
1182
|
+
nodeItem.items.forEach(function (item) {
|
|
1183
|
+
var itemNodeId = $xeCascader.getNodeId(item);
|
|
1184
|
+
if (treeExpandedMaps[itemNodeId]) {
|
|
1185
|
+
delete treeExpandedMaps[itemNodeId];
|
|
1186
|
+
}
|
|
1187
|
+
});
|
|
1188
|
+
}
|
|
1189
|
+
var expandNodes = [];
|
|
1190
|
+
if (expanded) {
|
|
1191
|
+
validNodes.forEach(function (item) {
|
|
1192
|
+
var itemNodeId = $xeCascader.getNodeId(item);
|
|
1193
|
+
if (!treeExpandedMaps[itemNodeId]) {
|
|
1194
|
+
var _nodeItem = nodeMaps[itemNodeId];
|
|
1195
|
+
var isLoad = lazy && item[hasChildField] && !_nodeItem.treeLoaded && !treeExpandLazyLoadedMaps[itemNodeId];
|
|
1196
|
+
// 是否使用懒加载
|
|
1197
|
+
if (isLoad) {
|
|
1198
|
+
result.push($xeCascader.handleAsyncTreeExpandChilds(item));
|
|
1199
|
+
} else {
|
|
1200
|
+
if (item[childrenField] && item[childrenField].length) {
|
|
1201
|
+
treeExpandedMaps[itemNodeId] = true;
|
|
1202
|
+
expandNodes.push(item);
|
|
1203
|
+
}
|
|
1204
|
+
}
|
|
1205
|
+
}
|
|
1206
|
+
});
|
|
1207
|
+
} else {
|
|
1208
|
+
validNodes.forEach(function (item) {
|
|
1209
|
+
var itemNodeId = $xeCascader.getNodeId(item);
|
|
1210
|
+
if (treeExpandedMaps[itemNodeId]) {
|
|
1211
|
+
delete treeExpandedMaps[itemNodeId];
|
|
1212
|
+
expandNodes.push(item);
|
|
1213
|
+
}
|
|
1214
|
+
});
|
|
1215
|
+
}
|
|
1216
|
+
reactData.updateExpandedFlag++;
|
|
1217
|
+
$xeCascader.handleTreeToList();
|
|
1218
|
+
$xeCascader.handleData();
|
|
1219
|
+
return Promise.all(result);
|
|
1220
|
+
},
|
|
1221
|
+
toggleExpandEvent: function toggleExpandEvent(evnt, node, chunks, chunkIndex) {
|
|
1222
|
+
var $xeCascader = this;
|
|
1223
|
+
var reactData = $xeCascader.reactData;
|
|
1224
|
+
var internalData = $xeCascader.internalData;
|
|
1225
|
+
var currentItems = reactData.currentItems;
|
|
1226
|
+
var treeExpandLazyLoadedMaps = internalData.treeExpandLazyLoadedMaps;
|
|
1227
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
1228
|
+
var lazy = treeOpts.lazy;
|
|
1229
|
+
var stItems = currentItems.slice(0, chunkIndex);
|
|
1230
|
+
var nodeid = $xeCascader.getNodeId(node);
|
|
1231
|
+
var expanded = true;
|
|
1232
|
+
evnt.stopPropagation();
|
|
1233
|
+
stItems.push(nodeid);
|
|
1234
|
+
reactData.currentItems = stItems;
|
|
1235
|
+
if (!lazy || !treeExpandLazyLoadedMaps[nodeid]) {
|
|
1236
|
+
$xeCascader.handleBaseTreeExpand([node], expanded);
|
|
1237
|
+
}
|
|
1238
|
+
$xeCascader.setCurrentNode(node);
|
|
1239
|
+
$xeCascader.updateCurrentChunk();
|
|
1240
|
+
$xeCascader.dispatchEvent('node-expand', {
|
|
1241
|
+
node: node,
|
|
1242
|
+
expanded: expanded
|
|
1243
|
+
}, evnt);
|
|
1244
|
+
},
|
|
1245
|
+
updateCheckboxStatus: function updateCheckboxStatus() {
|
|
1246
|
+
var $xeCascader = this;
|
|
1247
|
+
var reactData = $xeCascader.reactData;
|
|
1248
|
+
var internalData = $xeCascader.internalData;
|
|
1249
|
+
var selectCheckboxMaps = internalData.selectCheckboxMaps,
|
|
1250
|
+
indeterminateRowMaps = internalData.indeterminateRowMaps,
|
|
1251
|
+
afterTreeList = internalData.afterTreeList;
|
|
1252
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
1253
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
1254
|
+
var checkboxOpts = $xeCascader.computeCheckboxOpts;
|
|
1255
|
+
var checkStrictly = checkboxOpts.checkStrictly,
|
|
1256
|
+
checkMethod = checkboxOpts.checkMethod;
|
|
1257
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
1258
|
+
var transform = treeOpts.transform;
|
|
1259
|
+
if (!checkStrictly) {
|
|
1260
|
+
var childRowMaps = {};
|
|
1261
|
+
var childRowList = [];
|
|
1262
|
+
_xeUtils.default.eachTree(afterTreeList, function (node) {
|
|
1263
|
+
var nodeid = $xeCascader.getNodeId(node);
|
|
1264
|
+
var childList = node[childrenField];
|
|
1265
|
+
if (childList && childList.length && !childRowMaps[nodeid]) {
|
|
1266
|
+
childRowMaps[nodeid] = 1;
|
|
1267
|
+
childRowList.unshift([node, nodeid, childList]);
|
|
1268
|
+
}
|
|
1269
|
+
}, {
|
|
1270
|
+
children: transform ? mapChildrenField : childrenField
|
|
1271
|
+
});
|
|
1272
|
+
childRowList.forEach(function (vals) {
|
|
1273
|
+
var node = vals[0];
|
|
1274
|
+
var nodeid = vals[1];
|
|
1275
|
+
var childList = vals[2];
|
|
1276
|
+
var sLen = 0; // 已选
|
|
1277
|
+
var hLen = 0; // 半选
|
|
1278
|
+
var vLen = 0; // 有效子行
|
|
1279
|
+
var cLen = childList.length; // 子行
|
|
1280
|
+
childList.forEach(checkMethod ? function (item) {
|
|
1281
|
+
var childNodeid = $xeCascader.getNodeId(item);
|
|
1282
|
+
var isSelect = selectCheckboxMaps[childNodeid];
|
|
1283
|
+
if (checkMethod({
|
|
1284
|
+
$cascader: $xeCascader,
|
|
1285
|
+
node: item
|
|
1286
|
+
})) {
|
|
1287
|
+
if (isSelect) {
|
|
1288
|
+
sLen++;
|
|
1289
|
+
} else if (indeterminateRowMaps[childNodeid]) {
|
|
1290
|
+
hLen++;
|
|
1291
|
+
}
|
|
1292
|
+
vLen++;
|
|
1293
|
+
} else {
|
|
1294
|
+
if (isSelect) {
|
|
1295
|
+
sLen++;
|
|
1296
|
+
} else if (indeterminateRowMaps[childNodeid]) {
|
|
1297
|
+
hLen++;
|
|
1298
|
+
}
|
|
1299
|
+
}
|
|
1300
|
+
} : function (item) {
|
|
1301
|
+
var childNodeid = $xeCascader.getNodeId(item);
|
|
1302
|
+
var isSelect = selectCheckboxMaps[childNodeid];
|
|
1303
|
+
if (isSelect) {
|
|
1304
|
+
sLen++;
|
|
1305
|
+
} else if (indeterminateRowMaps[childNodeid]) {
|
|
1306
|
+
hLen++;
|
|
1307
|
+
}
|
|
1308
|
+
vLen++;
|
|
1309
|
+
});
|
|
1310
|
+
var isSelected = false;
|
|
1311
|
+
if (cLen > 0) {
|
|
1312
|
+
if (vLen > 0) {
|
|
1313
|
+
isSelected = (sLen > 0 || hLen > 0) && sLen >= vLen;
|
|
1314
|
+
} else {
|
|
1315
|
+
// 如果存在子项禁用
|
|
1316
|
+
if (sLen > 0 && sLen >= vLen) {
|
|
1317
|
+
isSelected = true;
|
|
1318
|
+
} else if (selectCheckboxMaps[nodeid]) {
|
|
1319
|
+
isSelected = true;
|
|
1320
|
+
} else {
|
|
1321
|
+
isSelected = false;
|
|
1322
|
+
}
|
|
1323
|
+
}
|
|
1324
|
+
} else {
|
|
1325
|
+
// 如果无子项
|
|
1326
|
+
isSelected = selectCheckboxMaps[nodeid];
|
|
1327
|
+
}
|
|
1328
|
+
var halfSelect = !isSelected && (sLen > 0 || hLen > 0);
|
|
1329
|
+
if (isSelected) {
|
|
1330
|
+
selectCheckboxMaps[nodeid] = node;
|
|
1331
|
+
if (indeterminateRowMaps[nodeid]) {
|
|
1332
|
+
delete indeterminateRowMaps[nodeid];
|
|
1333
|
+
}
|
|
1334
|
+
} else {
|
|
1335
|
+
if (selectCheckboxMaps[nodeid]) {
|
|
1336
|
+
delete selectCheckboxMaps[nodeid];
|
|
1337
|
+
}
|
|
1338
|
+
if (halfSelect) {
|
|
1339
|
+
indeterminateRowMaps[nodeid] = node;
|
|
1340
|
+
} else {
|
|
1341
|
+
if (indeterminateRowMaps[nodeid]) {
|
|
1342
|
+
delete indeterminateRowMaps[nodeid];
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1346
|
+
});
|
|
1347
|
+
reactData.updateCheckboxFlag++;
|
|
1348
|
+
}
|
|
1349
|
+
},
|
|
1350
|
+
changeCheckboxEvent: function changeCheckboxEvent(evnt, node) {
|
|
1351
|
+
var $xeCascader = this;
|
|
1352
|
+
var reactData = $xeCascader.reactData;
|
|
1353
|
+
var internalData = $xeCascader.internalData;
|
|
1354
|
+
evnt.preventDefault();
|
|
1355
|
+
evnt.stopPropagation();
|
|
1356
|
+
var selectCheckboxMaps = internalData.selectCheckboxMaps,
|
|
1357
|
+
nodeMaps = internalData.nodeMaps;
|
|
1358
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
1359
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
1360
|
+
var checkboxOpts = $xeCascader.computeCheckboxOpts;
|
|
1361
|
+
var checkStrictly = checkboxOpts.checkStrictly,
|
|
1362
|
+
checkMode = checkboxOpts.checkMode,
|
|
1363
|
+
checkMethod = checkboxOpts.checkMethod;
|
|
1364
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
1365
|
+
var transform = treeOpts.transform;
|
|
1366
|
+
var nodeid = $xeCascader.getNodeId(node);
|
|
1367
|
+
var childList = node[childrenField];
|
|
1368
|
+
var isExistChild = childList && childList.length > 0;
|
|
1369
|
+
var nodeItem = nodeMaps[nodeid] || {};
|
|
1370
|
+
var nLevel = nodeItem.level;
|
|
1371
|
+
var isDisabled = checkMethod ? !checkMethod({
|
|
1372
|
+
$cascader: $xeCascader,
|
|
1373
|
+
node: node
|
|
1374
|
+
}) : !handleVisibleOrCheckMode(checkMode, isExistChild, nLevel);
|
|
1375
|
+
if (isDisabled) {
|
|
1376
|
+
return;
|
|
1377
|
+
}
|
|
1378
|
+
var isChecked = false;
|
|
1379
|
+
if (selectCheckboxMaps[nodeid]) {
|
|
1380
|
+
delete selectCheckboxMaps[nodeid];
|
|
1381
|
+
} else {
|
|
1382
|
+
isChecked = true;
|
|
1383
|
+
selectCheckboxMaps[nodeid] = node;
|
|
1384
|
+
}
|
|
1385
|
+
if (!checkStrictly) {
|
|
1386
|
+
_xeUtils.default.eachTree(_xeUtils.default.get(node, transform ? mapChildrenField : childrenField), function (childNode) {
|
|
1387
|
+
var childNodeid = $xeCascader.getNodeId(childNode);
|
|
1388
|
+
if (isChecked) {
|
|
1389
|
+
if (!selectCheckboxMaps[childNodeid]) {
|
|
1390
|
+
selectCheckboxMaps[childNodeid] = true;
|
|
1391
|
+
}
|
|
1392
|
+
} else {
|
|
1393
|
+
if (selectCheckboxMaps[childNodeid]) {
|
|
1394
|
+
delete selectCheckboxMaps[childNodeid];
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
}, {
|
|
1398
|
+
children: transform ? mapChildrenField : childrenField
|
|
1399
|
+
});
|
|
1400
|
+
}
|
|
1401
|
+
reactData.updateCheckboxFlag++;
|
|
1402
|
+
$xeCascader.updateCheckboxStatus();
|
|
1403
|
+
var nodeids = _xeUtils.default.keys(selectCheckboxMaps);
|
|
1404
|
+
var value = nodeids;
|
|
1405
|
+
$xeCascader.changeEvent(evnt, value, node);
|
|
1406
|
+
},
|
|
1407
|
+
handleNodeClickEvent: function handleNodeClickEvent(evnt, node, chunks, chunkIndex) {
|
|
1408
|
+
var $xeCascader = this;
|
|
1409
|
+
var props = $xeCascader;
|
|
1410
|
+
var multiple = props.multiple;
|
|
1411
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
1412
|
+
var radioOpts = $xeCascader.computeRadioOpts;
|
|
1413
|
+
var checkboxOpts = $xeCascader.computeCheckboxOpts;
|
|
1414
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
1415
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
1416
|
+
var transform = treeOpts.transform,
|
|
1417
|
+
trigger = treeOpts.trigger;
|
|
1418
|
+
var childList = node[transform ? mapChildrenField : childrenField];
|
|
1419
|
+
var triggerCurrent = false;
|
|
1420
|
+
var triggerRadio = false;
|
|
1421
|
+
var triggerCheckbox = false;
|
|
1422
|
+
var triggerExpand = false;
|
|
1423
|
+
triggerCurrent = true;
|
|
1424
|
+
$xeCascader.changeCurrentEvent(evnt, node);
|
|
1425
|
+
if (trigger !== 'icon') {
|
|
1426
|
+
triggerExpand = true;
|
|
1427
|
+
$xeCascader.toggleExpandEvent(evnt, node, chunks, chunkIndex);
|
|
1428
|
+
}
|
|
1429
|
+
if (multiple) {
|
|
1430
|
+
if (checkboxOpts.trigger === 'node' || !checkboxOpts.showIcon && (!childList || !childList.length)) {
|
|
1431
|
+
triggerCheckbox = true;
|
|
1432
|
+
$xeCascader.changeCheckboxEvent(evnt, node);
|
|
1433
|
+
}
|
|
1434
|
+
} else {
|
|
1435
|
+
if (radioOpts.trigger === 'node' || !radioOpts.showIcon && (!childList || !childList.length)) {
|
|
1436
|
+
triggerRadio = true;
|
|
1437
|
+
$xeCascader.changeRadioEvent(evnt, node);
|
|
1438
|
+
}
|
|
1439
|
+
}
|
|
1440
|
+
$xeCascader.dispatchEvent('node-click', {
|
|
1441
|
+
node: node,
|
|
1442
|
+
triggerCurrent: triggerCurrent,
|
|
1443
|
+
triggerRadio: triggerRadio,
|
|
1444
|
+
triggerCheckbox: triggerCheckbox,
|
|
1445
|
+
triggerExpand: triggerExpand
|
|
1446
|
+
}, evnt);
|
|
1447
|
+
},
|
|
627
1448
|
focusEvent: function focusEvent(evnt) {
|
|
628
1449
|
var $xeCascader = this;
|
|
629
1450
|
var reactData = $xeCascader.reactData;
|
|
@@ -631,7 +1452,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
631
1452
|
if (!isDisabled) {
|
|
632
1453
|
if (!reactData.visiblePanel) {
|
|
633
1454
|
reactData.triggerFocusPanel = true;
|
|
634
|
-
$xeCascader.showOptionPanel();
|
|
1455
|
+
$xeCascader.showOptionPanel(evnt);
|
|
635
1456
|
setTimeout(function () {
|
|
636
1457
|
reactData.triggerFocusPanel = false;
|
|
637
1458
|
}, 150);
|
|
@@ -641,7 +1462,15 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
641
1462
|
},
|
|
642
1463
|
clickEvent: function clickEvent(evnt) {
|
|
643
1464
|
var $xeCascader = this;
|
|
644
|
-
$xeCascader.
|
|
1465
|
+
var reactData = $xeCascader.reactData;
|
|
1466
|
+
evnt.preventDefault();
|
|
1467
|
+
if (reactData.triggerFocusPanel) {
|
|
1468
|
+
reactData.triggerFocusPanel = false;
|
|
1469
|
+
} else {
|
|
1470
|
+
if (!reactData.visiblePanel) {
|
|
1471
|
+
$xeCascader.showOptionPanel(evnt);
|
|
1472
|
+
}
|
|
1473
|
+
}
|
|
645
1474
|
$xeCascader.dispatchEvent('click', {}, evnt);
|
|
646
1475
|
},
|
|
647
1476
|
blurEvent: function blurEvent(evnt) {
|
|
@@ -654,17 +1483,17 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
654
1483
|
var $xeCascader = this;
|
|
655
1484
|
var reactData = $xeCascader.reactData;
|
|
656
1485
|
reactData.searchValue = value;
|
|
1486
|
+
$xeCascader.triggerSearchEvent(new Event('filter'));
|
|
657
1487
|
},
|
|
658
1488
|
handleSearchEvent: function handleSearchEvent() {
|
|
659
1489
|
var $xeCascader = this;
|
|
660
1490
|
var props = $xeCascader;
|
|
661
1491
|
var reactData = $xeCascader.reactData;
|
|
662
1492
|
var modelValue = props.value,
|
|
663
|
-
remote = props.remote
|
|
664
|
-
remoteMethod = props.remoteMethod;
|
|
1493
|
+
remote = props.remote;
|
|
665
1494
|
var searchValue = reactData.searchValue;
|
|
666
1495
|
var remoteOpts = $xeCascader.computeRemoteOpts;
|
|
667
|
-
var queryMethod = remoteOpts.queryMethod
|
|
1496
|
+
var queryMethod = remoteOpts.queryMethod;
|
|
668
1497
|
if (remote && queryMethod && remoteOpts.enabled) {
|
|
669
1498
|
reactData.searchLoading = true;
|
|
670
1499
|
Promise.resolve(queryMethod({
|
|
@@ -689,44 +1518,237 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
689
1518
|
reactData.triggerFocusPanel = false;
|
|
690
1519
|
} else {
|
|
691
1520
|
if (reactData.visiblePanel) {
|
|
692
|
-
$xeCascader.hideOptionPanel();
|
|
1521
|
+
$xeCascader.hideOptionPanel($event);
|
|
693
1522
|
} else {
|
|
694
|
-
$xeCascader.showOptionPanel();
|
|
1523
|
+
$xeCascader.showOptionPanel($event);
|
|
695
1524
|
}
|
|
696
1525
|
}
|
|
697
1526
|
},
|
|
698
|
-
|
|
1527
|
+
/**
|
|
1528
|
+
* 用于树结构,给行数据加载子节点
|
|
1529
|
+
*/
|
|
1530
|
+
loadChildrenNode: function loadChildrenNode(node, childRecords) {
|
|
699
1531
|
var $xeCascader = this;
|
|
700
|
-
var
|
|
701
|
-
$xeCascader.
|
|
1532
|
+
var props = $xeCascader;
|
|
1533
|
+
var internalData = $xeCascader.internalData;
|
|
1534
|
+
var separator = props.separator;
|
|
1535
|
+
var nodeMaps = internalData.nodeMaps;
|
|
1536
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
1537
|
+
var labelField = $xeCascader.computeLabelField;
|
|
1538
|
+
var lazy = treeOpts.lazy,
|
|
1539
|
+
transform = treeOpts.transform;
|
|
1540
|
+
if (!lazy) {
|
|
1541
|
+
return Promise.resolve([]);
|
|
1542
|
+
}
|
|
1543
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
1544
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
1545
|
+
var parentNodeItem = nodeMaps[$xeCascader.getNodeId(node)];
|
|
1546
|
+
var parentLevel = parentNodeItem ? parentNodeItem.level : 0;
|
|
1547
|
+
var parentNodes = parentNodeItem ? parentNodeItem.nodes : [];
|
|
1548
|
+
return $xeCascader.createNode(childRecords).then(function (nodeList) {
|
|
1549
|
+
_xeUtils.default.eachTree(nodeList, function (childRow, index, items, path, parent, nodes) {
|
|
1550
|
+
var itemNodeId = $xeCascader.getNodeId(childRow);
|
|
1551
|
+
nodeMaps[itemNodeId] = {
|
|
1552
|
+
item: childRow,
|
|
1553
|
+
index: -1,
|
|
1554
|
+
$index: -1,
|
|
1555
|
+
_index: -1,
|
|
1556
|
+
items: items,
|
|
1557
|
+
parent: parent || parentNodeItem.item,
|
|
1558
|
+
nodes: parentNodes.concat(nodes),
|
|
1559
|
+
level: parentLevel + nodes.length,
|
|
1560
|
+
treeIndex: -1,
|
|
1561
|
+
lineCount: 0,
|
|
1562
|
+
treeLoaded: false,
|
|
1563
|
+
fullLabel: nodes.map(function (item) {
|
|
1564
|
+
return item[labelField];
|
|
1565
|
+
}).join(separator || ' / ')
|
|
1566
|
+
};
|
|
1567
|
+
}, {
|
|
1568
|
+
children: childrenField
|
|
1569
|
+
});
|
|
1570
|
+
node[childrenField] = nodeList;
|
|
1571
|
+
if (transform) {
|
|
1572
|
+
node[mapChildrenField] = nodeList;
|
|
1573
|
+
}
|
|
1574
|
+
$xeCascader.updateAfterDataIndex();
|
|
1575
|
+
return nodeList;
|
|
1576
|
+
});
|
|
702
1577
|
},
|
|
703
|
-
|
|
1578
|
+
//
|
|
1579
|
+
// Render
|
|
1580
|
+
//
|
|
1581
|
+
renderRadio: function renderRadio(h, node, isExistChild, nLevel, isChecked) {
|
|
704
1582
|
var $xeCascader = this;
|
|
705
|
-
var
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
1583
|
+
var radioOpts = $xeCascader.computeRadioOpts;
|
|
1584
|
+
var showIcon = radioOpts.showIcon,
|
|
1585
|
+
checkMode = radioOpts.checkMode,
|
|
1586
|
+
checkMethod = radioOpts.checkMethod,
|
|
1587
|
+
visibleMode = radioOpts.visibleMode,
|
|
1588
|
+
visibleMethod = radioOpts.visibleMethod;
|
|
1589
|
+
var isVisible = visibleMethod ? visibleMethod({
|
|
1590
|
+
$cascader: $xeCascader,
|
|
1591
|
+
node: node
|
|
1592
|
+
}) : handleVisibleOrCheckMode(visibleMode, isExistChild, nLevel);
|
|
1593
|
+
if (showIcon && isVisible) {
|
|
1594
|
+
var isDisabled = checkMethod ? !checkMethod({
|
|
1595
|
+
$cascader: $xeCascader,
|
|
1596
|
+
node: node
|
|
1597
|
+
}) : !handleVisibleOrCheckMode(checkMode, isExistChild, nLevel);
|
|
1598
|
+
return h('div', {
|
|
1599
|
+
class: ['vxe-tree--radio-option', {
|
|
1600
|
+
'is--checked': isChecked,
|
|
1601
|
+
'is--disabled': isDisabled
|
|
1602
|
+
}],
|
|
1603
|
+
on: {
|
|
1604
|
+
click: function click(evnt) {
|
|
1605
|
+
if (!isDisabled) {
|
|
1606
|
+
$xeCascader.changeRadioEvent(evnt, node);
|
|
1607
|
+
}
|
|
1608
|
+
}
|
|
1609
|
+
}
|
|
1610
|
+
}, [h('span', {
|
|
1611
|
+
class: ['vxe-radio--icon', isChecked ? (0, _ui.getIcon)().RADIO_CHECKED : (0, _ui.getIcon)().RADIO_UNCHECKED]
|
|
1612
|
+
})]);
|
|
1613
|
+
}
|
|
1614
|
+
return (0, _ui.renderEmptyElement)($xeCascader);
|
|
710
1615
|
},
|
|
711
|
-
|
|
1616
|
+
renderCheckbox: function renderCheckbox(h, node, isExistChild, nLevel, isChecked, isIndeterminate) {
|
|
712
1617
|
var $xeCascader = this;
|
|
713
|
-
var
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
1618
|
+
var checkboxOpts = $xeCascader.computeCheckboxOpts;
|
|
1619
|
+
var showIcon = checkboxOpts.showIcon,
|
|
1620
|
+
checkMode = checkboxOpts.checkMode,
|
|
1621
|
+
checkMethod = checkboxOpts.checkMethod,
|
|
1622
|
+
visibleMode = checkboxOpts.visibleMode,
|
|
1623
|
+
visibleMethod = checkboxOpts.visibleMethod;
|
|
1624
|
+
var isVisible = visibleMethod ? visibleMethod({
|
|
1625
|
+
$cascader: $xeCascader,
|
|
1626
|
+
node: node
|
|
1627
|
+
}) : handleVisibleOrCheckMode(visibleMode, isExistChild, nLevel);
|
|
1628
|
+
if (showIcon && isVisible) {
|
|
1629
|
+
var isDisabled = checkMethod ? !checkMethod({
|
|
1630
|
+
$cascader: $xeCascader,
|
|
1631
|
+
node: node
|
|
1632
|
+
}) : !handleVisibleOrCheckMode(checkMode, isExistChild, nLevel);
|
|
1633
|
+
return h('div', {
|
|
1634
|
+
class: ['vxe-cascader--checkbox-option', {
|
|
1635
|
+
'is--checked': isChecked,
|
|
1636
|
+
'is--indeterminate': isIndeterminate,
|
|
1637
|
+
'is--disabled': isDisabled
|
|
1638
|
+
}],
|
|
1639
|
+
on: {
|
|
1640
|
+
click: function click(evnt) {
|
|
1641
|
+
if (!isDisabled) {
|
|
1642
|
+
$xeCascader.changeCheckboxEvent(evnt, node);
|
|
1643
|
+
}
|
|
1644
|
+
}
|
|
1645
|
+
}
|
|
1646
|
+
}, [h('span', {
|
|
1647
|
+
class: ['vxe-checkbox--icon', isIndeterminate ? (0, _ui.getIcon)().CHECKBOX_INDETERMINATE : isChecked ? (0, _ui.getIcon)().CHECKBOX_CHECKED : (0, _ui.getIcon)().CHECKBOX_UNCHECKED]
|
|
1648
|
+
})]);
|
|
1649
|
+
}
|
|
1650
|
+
return (0, _ui.renderEmptyElement)($xeCascader);
|
|
717
1651
|
},
|
|
718
|
-
|
|
1652
|
+
renderNode: function renderNode(h, node, nodeid, nodeIndex, chunks, chunkIndex) {
|
|
719
1653
|
var $xeCascader = this;
|
|
720
|
-
$xeCascader
|
|
1654
|
+
var props = $xeCascader;
|
|
1655
|
+
var reactData = $xeCascader.reactData;
|
|
1656
|
+
var internalData = $xeCascader.internalData;
|
|
1657
|
+
var slots = $xeCascader.$scopedSlots;
|
|
1658
|
+
var multiple = props.multiple;
|
|
1659
|
+
var currentNode = reactData.currentNode,
|
|
1660
|
+
selectRadioKey = reactData.selectRadioKey,
|
|
1661
|
+
updateCheckboxFlag = reactData.updateCheckboxFlag,
|
|
1662
|
+
updateExpandedFlag = reactData.updateExpandedFlag;
|
|
1663
|
+
var nodeMaps = internalData.nodeMaps,
|
|
1664
|
+
selectCheckboxMaps = internalData.selectCheckboxMaps,
|
|
1665
|
+
indeterminateRowMaps = internalData.indeterminateRowMaps,
|
|
1666
|
+
treeExpandedMaps = internalData.treeExpandedMaps,
|
|
1667
|
+
treeExpandLazyLoadedMaps = internalData.treeExpandLazyLoadedMaps;
|
|
1668
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
1669
|
+
var lazy = treeOpts.lazy,
|
|
1670
|
+
iconLoaded = treeOpts.iconLoaded,
|
|
1671
|
+
iconOpen = treeOpts.iconOpen,
|
|
1672
|
+
iconClose = treeOpts.iconClose;
|
|
1673
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
1674
|
+
var labelField = $xeCascader.computeLabelField;
|
|
1675
|
+
var hasChildField = $xeCascader.computeHasChildField;
|
|
1676
|
+
var childList = node[childrenField];
|
|
1677
|
+
var isExistChild = childList && childList.length > 0;
|
|
1678
|
+
var iconSlot = slots.icon;
|
|
1679
|
+
var titleSlot = slots.title;
|
|
1680
|
+
var isExpand = updateExpandedFlag && treeExpandedMaps[nodeid];
|
|
1681
|
+
var nodeItem = nodeMaps[nodeid] || {};
|
|
1682
|
+
var nodeTitle = node[labelField];
|
|
1683
|
+
var nLevel = nodeItem.level;
|
|
1684
|
+
var isRadioChecked = false;
|
|
1685
|
+
if (!multiple) {
|
|
1686
|
+
isRadioChecked = nodeid === selectRadioKey;
|
|
1687
|
+
}
|
|
1688
|
+
var isCheckboxChecked = false;
|
|
1689
|
+
var isIndeterminate = false;
|
|
1690
|
+
if (multiple) {
|
|
1691
|
+
isCheckboxChecked = !!(updateCheckboxFlag && selectCheckboxMaps[nodeid]);
|
|
1692
|
+
isIndeterminate = !!(updateCheckboxFlag && indeterminateRowMaps[nodeid]);
|
|
1693
|
+
}
|
|
1694
|
+
var hasLazyChilds = false;
|
|
1695
|
+
var isLazyLoading = false;
|
|
1696
|
+
var isLazyLoaded = false;
|
|
1697
|
+
if (lazy) {
|
|
1698
|
+
isLazyLoading = !!treeExpandLazyLoadedMaps[nodeid];
|
|
1699
|
+
hasLazyChilds = node[hasChildField];
|
|
1700
|
+
isLazyLoaded = !!nodeItem.treeLoaded;
|
|
1701
|
+
}
|
|
1702
|
+
var nParams = {
|
|
1703
|
+
node: node
|
|
1704
|
+
};
|
|
1705
|
+
return h('div', {
|
|
1706
|
+
key: "".concat(chunkIndex, "_").concat(nodeIndex),
|
|
1707
|
+
class: ['vxe-cascader-chunk--node-item', {
|
|
1708
|
+
'is--current': currentNode && (currentNode === node || $xeCascader.getNodeId(currentNode) === nodeid),
|
|
1709
|
+
'is-radio--checked': isRadioChecked,
|
|
1710
|
+
'is-checkbox--checked': isCheckboxChecked,
|
|
1711
|
+
'is-checkbox--indeterminate': isIndeterminate,
|
|
1712
|
+
'is--expand': isExpand
|
|
1713
|
+
}],
|
|
1714
|
+
attrs: {
|
|
1715
|
+
title: nodeTitle
|
|
1716
|
+
},
|
|
1717
|
+
on: {
|
|
1718
|
+
mousedown: function mousedown(evnt) {
|
|
1719
|
+
var isLeftBtn = evnt.button === 0;
|
|
1720
|
+
if (isLeftBtn) {
|
|
1721
|
+
evnt.stopPropagation();
|
|
1722
|
+
}
|
|
1723
|
+
},
|
|
1724
|
+
click: function click(evnt) {
|
|
1725
|
+
$xeCascader.handleNodeClickEvent(evnt, node, chunks, chunkIndex);
|
|
1726
|
+
}
|
|
1727
|
+
}
|
|
1728
|
+
}, [multiple ? $xeCascader.renderCheckbox(h, node, isExistChild, nLevel, isCheckboxChecked, isIndeterminate) : $xeCascader.renderRadio(h, node, isExistChild, nLevel, isRadioChecked), h('div', {
|
|
1729
|
+
class: 'vxe-cascader-chunk--node-item-inner'
|
|
1730
|
+
}, [h('div', {
|
|
1731
|
+
class: 'vxe-cascader-chunk--node-item-title'
|
|
1732
|
+
}, titleSlot ? (0, _ui.getSlotVNs)(titleSlot(nParams)) : nodeTitle)]), treeOpts.showIcon && (lazy ? isLazyLoaded ? isExistChild : hasLazyChilds : isExistChild) ? h('div', {
|
|
1733
|
+
class: 'vxe-cascader-chunk--node-item-switcher'
|
|
1734
|
+
}, [[h('div', {
|
|
1735
|
+
class: 'vxe-cascader--node-item-icon',
|
|
1736
|
+
on: {
|
|
1737
|
+
click: function click(evnt) {
|
|
1738
|
+
if (treeOpts.trigger === 'icon') {
|
|
1739
|
+
$xeCascader.toggleExpandEvent(evnt, node, chunks, chunkIndex);
|
|
1740
|
+
}
|
|
1741
|
+
}
|
|
1742
|
+
}
|
|
1743
|
+
}, iconSlot ? (0, _ui.getSlotVNs)(iconSlot(nParams)) : [h('i', {
|
|
1744
|
+
class: isLazyLoading ? iconLoaded || (0, _ui.getIcon)().CASCADER_NODE_LOADED : isExpand ? iconOpen || (0, _ui.getIcon)().CASCADER_NODE_OPEN : iconClose || (0, _ui.getIcon)().CASCADER_NODE_CLOSE
|
|
1745
|
+
})])]]) : (0, _ui.renderEmptyElement)($xeCascader)]);
|
|
721
1746
|
},
|
|
722
|
-
//
|
|
723
|
-
// Render
|
|
724
|
-
//
|
|
725
1747
|
renderVN: function renderVN(h) {
|
|
726
1748
|
var $xeCascader = this;
|
|
727
1749
|
var props = $xeCascader;
|
|
728
|
-
var slots = $xeCascader.$scopedSlots;
|
|
729
1750
|
var reactData = $xeCascader.reactData;
|
|
1751
|
+
var slots = $xeCascader.$scopedSlots;
|
|
730
1752
|
var className = props.className,
|
|
731
1753
|
modelValue = props.value,
|
|
732
1754
|
multiple = props.multiple,
|
|
@@ -734,12 +1756,14 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
734
1756
|
filterable = props.filterable,
|
|
735
1757
|
showTotalButton = props.showTotalButton,
|
|
736
1758
|
showCheckedButton = props.showCheckedButton,
|
|
737
|
-
showClearButton = props.showClearButton
|
|
1759
|
+
showClearButton = props.showClearButton,
|
|
1760
|
+
showCloseButton = props.showCloseButton;
|
|
738
1761
|
var initialized = reactData.initialized,
|
|
739
1762
|
isActivated = reactData.isActivated,
|
|
740
1763
|
isAniVisible = reactData.isAniVisible,
|
|
741
1764
|
visiblePanel = reactData.visiblePanel,
|
|
742
|
-
searchValue = reactData.searchValue
|
|
1765
|
+
searchValue = reactData.searchValue,
|
|
1766
|
+
currentCunkList = reactData.currentCunkList;
|
|
743
1767
|
var vSize = $xeCascader.computeSize;
|
|
744
1768
|
var isDisabled = $xeCascader.computeIsDisabled;
|
|
745
1769
|
var selectLabel = $xeCascader.computeSelectLabel;
|
|
@@ -769,13 +1793,13 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
769
1793
|
ref: 'refInput',
|
|
770
1794
|
props: {
|
|
771
1795
|
clearable: props.clearable,
|
|
772
|
-
placeholder: props.placeholder,
|
|
1796
|
+
placeholder: loading ? (0, _ui.getI18n)('vxe.select.loadingText') : props.placeholder,
|
|
773
1797
|
editable: false,
|
|
774
1798
|
disabled: isDisabled,
|
|
775
1799
|
type: 'text',
|
|
776
1800
|
prefixIcon: props.prefixIcon,
|
|
777
1801
|
suffixIcon: loading ? (0, _ui.getIcon)().TREE_SELECT_LOADED : visiblePanel ? (0, _ui.getIcon)().TREE_SELECT_OPEN : (0, _ui.getIcon)().TREE_SELECT_CLOSE,
|
|
778
|
-
value: loading ?
|
|
1802
|
+
value: loading ? '' : selectLabel,
|
|
779
1803
|
title: selectLabel
|
|
780
1804
|
},
|
|
781
1805
|
on: {
|
|
@@ -789,7 +1813,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
789
1813
|
prefix: function prefix() {
|
|
790
1814
|
return prefixSlot({});
|
|
791
1815
|
}
|
|
792
|
-
} :
|
|
1816
|
+
} : undefined
|
|
793
1817
|
}), h('div', {
|
|
794
1818
|
ref: 'refOptionPanel',
|
|
795
1819
|
class: ['vxe-table--ignore-clear vxe-cascader--panel', popupClassName ? _xeUtils.default.isFunction(popupClassName) ? popupClassName({
|
|
@@ -798,7 +1822,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
798
1822
|
attrs: {
|
|
799
1823
|
placement: reactData.panelPlacement
|
|
800
1824
|
},
|
|
801
|
-
style:
|
|
1825
|
+
style: popupWrapperStyle
|
|
802
1826
|
}, initialized ? [h('div', {
|
|
803
1827
|
class: 'vxe-cascader--panel-wrapper'
|
|
804
1828
|
}, [filterable ? h('div', {
|
|
@@ -808,7 +1832,6 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
808
1832
|
class: 'vxe-cascader-search--input',
|
|
809
1833
|
props: {
|
|
810
1834
|
value: searchValue,
|
|
811
|
-
title: selectLabel,
|
|
812
1835
|
clearable: true,
|
|
813
1836
|
disabled: false,
|
|
814
1837
|
readonly: false,
|
|
@@ -818,17 +1841,15 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
818
1841
|
on: {
|
|
819
1842
|
'model-value': $xeCascader.modelSearchEvent
|
|
820
1843
|
}
|
|
821
|
-
})]) : (0, _ui.renderEmptyElement)($xeCascader),
|
|
822
|
-
class: 'vxe-
|
|
1844
|
+
})]) : (0, _ui.renderEmptyElement)($xeCascader), showCheckedButton && multiple || showClearButton || headerSlot ? h('div', {
|
|
1845
|
+
class: 'vxe-tree-select--panel-header'
|
|
823
1846
|
}, headerSlot ? headerSlot({}) : [h('div', {
|
|
824
|
-
class: 'vxe-
|
|
825
|
-
}, [
|
|
826
|
-
class: 'vxe-
|
|
827
|
-
}, (0, _ui.getI18n)('vxe.cascader.total', [selectVals.length])) : (0, _ui.renderEmptyElement)($xeCascader), h('div', {
|
|
828
|
-
class: 'vxe-cascader--header-btns'
|
|
1847
|
+
class: 'vxe-tree-select--header-button'
|
|
1848
|
+
}, [showCheckedButton && showClearButton ? h('div', {
|
|
1849
|
+
class: 'vxe-tree-select--selected-btns'
|
|
829
1850
|
}, [showCheckedButton && multiple ? h(_button.default, {
|
|
830
1851
|
props: {
|
|
831
|
-
content: (0, _ui.getI18n)('vxe.
|
|
1852
|
+
content: (0, _ui.getI18n)('vxe.treeSelect.allChecked'),
|
|
832
1853
|
mode: 'text'
|
|
833
1854
|
},
|
|
834
1855
|
on: {
|
|
@@ -836,35 +1857,80 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
836
1857
|
}
|
|
837
1858
|
}) : (0, _ui.renderEmptyElement)($xeCascader), showClearButton ? h(_button.default, {
|
|
838
1859
|
props: {
|
|
839
|
-
content: (0, _ui.getI18n)('vxe.
|
|
1860
|
+
content: (0, _ui.getI18n)('vxe.treeSelect.clearChecked'),
|
|
840
1861
|
mode: 'text'
|
|
841
1862
|
},
|
|
842
1863
|
on: {
|
|
843
1864
|
click: $xeCascader.clearCheckedPanelEvent
|
|
844
1865
|
}
|
|
845
|
-
}) : (0, _ui.renderEmptyElement)($xeCascader)])])]) : (0, _ui.renderEmptyElement)($xeCascader), h('div', {
|
|
1866
|
+
}) : (0, _ui.renderEmptyElement)($xeCascader)]) : (0, _ui.renderEmptyElement)($xeCascader)])]) : (0, _ui.renderEmptyElement)($xeCascader), h('div', {
|
|
846
1867
|
class: 'vxe-cascader--panel-body'
|
|
847
1868
|
}, [h('div', {
|
|
848
|
-
ref: '
|
|
849
|
-
class: 'vxe-cascader-
|
|
850
|
-
|
|
851
|
-
|
|
1869
|
+
ref: 'refChunkWrapper',
|
|
1870
|
+
class: 'vxe-cascader-chunk--wrapper'
|
|
1871
|
+
}, [currentCunkList.map(function (chunks, chunkIndex) {
|
|
1872
|
+
return h('div', {
|
|
1873
|
+
key: chunkIndex,
|
|
1874
|
+
class: 'vxe-cascader-chunk--item-wrapper'
|
|
1875
|
+
}, [h(_list.default, {
|
|
1876
|
+
props: {
|
|
1877
|
+
data: chunks
|
|
1878
|
+
},
|
|
1879
|
+
scopedSlots: {
|
|
1880
|
+
default: function _default(slotParams) {
|
|
1881
|
+
var items = slotParams.items;
|
|
1882
|
+
return items.map(function (node, nodeIndex) {
|
|
1883
|
+
var nodeid = $xeCascader.getNodeId(node);
|
|
1884
|
+
return $xeCascader.renderNode(h, node, nodeid, nodeIndex, chunks, chunkIndex);
|
|
1885
|
+
});
|
|
1886
|
+
}
|
|
1887
|
+
}
|
|
1888
|
+
})]);
|
|
1889
|
+
})])]), footerSlot || showTotalButton || showCloseButton && multiple ? h('div', {
|
|
852
1890
|
class: 'vxe-cascader--panel-footer'
|
|
853
|
-
}, footerSlot({})
|
|
1891
|
+
}, footerSlot ? footerSlot({}) : [h('div', {
|
|
1892
|
+
class: 'vxe-cascader--footer-button'
|
|
1893
|
+
}, [showTotalButton ? h('div', {
|
|
1894
|
+
class: 'vxe-cascader--total-btns'
|
|
1895
|
+
}, (0, _ui.getI18n)('vxe.treeSelect.total', [selectVals.length])) : (0, _ui.renderEmptyElement)($xeCascader), showCloseButton && multiple ? h('div', {
|
|
1896
|
+
class: 'vxe-cascader--oper-btns'
|
|
1897
|
+
}, [h(_button.default, {
|
|
1898
|
+
props: {
|
|
1899
|
+
content: (0, _ui.getI18n)('vxe.select.close'),
|
|
1900
|
+
mode: 'text'
|
|
1901
|
+
},
|
|
1902
|
+
on: {
|
|
1903
|
+
click: $xeCascader.closePanelEvent
|
|
1904
|
+
}
|
|
1905
|
+
})]) : (0, _ui.renderEmptyElement)($xeCascader)])]) : (0, _ui.renderEmptyElement)($xeCascader)])] : [])]);
|
|
854
1906
|
}
|
|
855
1907
|
},
|
|
856
1908
|
watch: {
|
|
1909
|
+
value: function value() {
|
|
1910
|
+
var $xeCascader = this;
|
|
1911
|
+
var reactData = $xeCascader.reactData;
|
|
1912
|
+
if (!reactData.visiblePanel) {
|
|
1913
|
+
$xeCascader.handleCurrentItems();
|
|
1914
|
+
$xeCascader.updateCurrentChunk();
|
|
1915
|
+
}
|
|
1916
|
+
},
|
|
857
1917
|
options: function options() {
|
|
858
1918
|
var $xeCascader = this;
|
|
859
|
-
$xeCascader
|
|
1919
|
+
var props = $xeCascader;
|
|
1920
|
+
$xeCascader.loadData(props.options || []);
|
|
860
1921
|
}
|
|
861
1922
|
},
|
|
862
1923
|
created: function created() {
|
|
863
1924
|
var $xeCascader = this;
|
|
864
|
-
$xeCascader
|
|
1925
|
+
var props = $xeCascader;
|
|
1926
|
+
$xeCascader.loadData(props.options || []);
|
|
865
1927
|
},
|
|
866
1928
|
mounted: function mounted() {
|
|
867
1929
|
var $xeCascader = this;
|
|
1930
|
+
var props = $xeCascader;
|
|
1931
|
+
if (props.filterable) {
|
|
1932
|
+
(0, _log.errLog)('vxe.error.notProp', ['filterable']);
|
|
1933
|
+
}
|
|
868
1934
|
_ui.globalEvents.on($xeCascader, 'mousewheel', $xeCascader.handleGlobalMousewheelEvent);
|
|
869
1935
|
_ui.globalEvents.on($xeCascader, 'mousedown', $xeCascader.handleGlobalMousedownEvent);
|
|
870
1936
|
_ui.globalEvents.on($xeCascader, 'blur', $xeCascader.handleGlobalBlurEvent);
|
|
@@ -872,6 +1938,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
872
1938
|
},
|
|
873
1939
|
beforeDestroy: function beforeDestroy() {
|
|
874
1940
|
var $xeCascader = this;
|
|
1941
|
+
var reactData = $xeCascader.reactData;
|
|
1942
|
+
var internalData = $xeCascader.internalData;
|
|
875
1943
|
var panelElem = $xeCascader.$refs.refOptionPanel;
|
|
876
1944
|
if (panelElem && panelElem.parentNode) {
|
|
877
1945
|
panelElem.parentNode.removeChild(panelElem);
|
|
@@ -880,10 +1948,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
880
1948
|
_ui.globalEvents.off($xeCascader, 'mousedown');
|
|
881
1949
|
_ui.globalEvents.off($xeCascader, 'blur');
|
|
882
1950
|
_ui.globalEvents.off($xeCascader, 'resize');
|
|
883
|
-
|
|
884
|
-
destroyed: function destroyed() {
|
|
885
|
-
var $xeCascader = this;
|
|
886
|
-
var internalData = $xeCascader.internalData;
|
|
1951
|
+
_xeUtils.default.assign(reactData, createReactData());
|
|
887
1952
|
_xeUtils.default.assign(internalData, createInternalData());
|
|
888
1953
|
},
|
|
889
1954
|
render: function render(h) {
|