vxe-pc-ui 3.16.9 → 3.16.11
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/checkbox/style.css +1 -0
- package/es/checkbox/style.min.css +1 -1
- package/es/icon/{iconfont.1783939819897.ttf → iconfont.1784122289327.ttf} +0 -0
- package/es/icon/iconfont.1784122289327.woff +0 -0
- package/es/icon/iconfont.1784122289327.woff2 +0 -0
- package/es/icon/style.css +33 -2
- package/es/icon/style.min.css +1 -1
- package/{lib/icon/style/iconfont.1783939819897.ttf → es/iconfont.1784122289327.ttf} +0 -0
- package/es/iconfont.1784122289327.woff +0 -0
- package/es/iconfont.1784122289327.woff2 +0 -0
- package/es/language/en-US.js +3 -3
- package/es/language/hy-AM.js +3 -3
- package/es/language/zh-CN.js +3 -3
- package/es/layout-aside/src/layout-aside.js +11 -19
- package/es/layout-aside/style.css +1 -3
- package/es/layout-aside/style.min.css +1 -1
- package/es/menu/src/menu.js +308 -101
- package/es/menu/style.css +52 -4
- package/es/menu/style.min.css +1 -1
- package/es/modal/src/modal.js +2 -2
- package/es/radio/style.css +1 -0
- package/es/radio/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tree-select/src/tree-select.js +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-checkbox/style.css +1 -0
- package/es/vxe-checkbox/style.min.css +1 -1
- package/es/vxe-icon/style.css +33 -2
- package/es/vxe-icon/style.min.css +1 -1
- package/es/vxe-layout-aside/style.css +1 -3
- package/es/vxe-layout-aside/style.min.css +1 -1
- package/es/vxe-menu/style.css +52 -4
- package/es/vxe-menu/style.min.css +1 -1
- package/es/vxe-radio/style.css +1 -0
- package/es/vxe-radio/style.min.css +1 -1
- package/lib/checkbox/style/style.css +1 -0
- package/lib/checkbox/style/style.min.css +1 -1
- package/lib/{iconfont.1783939819897.ttf → icon/style/iconfont.1784122289327.ttf} +0 -0
- package/lib/icon/style/iconfont.1784122289327.woff +0 -0
- package/lib/icon/style/iconfont.1784122289327.woff2 +0 -0
- package/lib/icon/style/style.css +33 -2
- package/lib/icon/style/style.min.css +33 -2
- package/{es/iconfont.1783939819897.ttf → lib/iconfont.1784122289327.ttf} +0 -0
- package/lib/iconfont.1784122289327.woff +0 -0
- package/lib/iconfont.1784122289327.woff2 +0 -0
- package/lib/index.umd.js +314 -121
- package/lib/index.umd.min.js +1 -1
- package/lib/language/en-US.js +3 -3
- package/lib/language/en-US.min.js +1 -1
- package/lib/language/en-US.umd.js +3 -3
- package/lib/language/hy-AM.js +3 -3
- package/lib/language/hy-AM.min.js +1 -1
- package/lib/language/hy-AM.umd.js +3 -3
- package/lib/language/zh-CN.js +3 -3
- package/lib/language/zh-CN.min.js +1 -1
- package/lib/language/zh-CN.umd.js +3 -3
- package/lib/layout-aside/src/layout-aside.js +12 -18
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/layout-aside/style/style.css +1 -3
- package/lib/layout-aside/style/style.min.css +1 -1
- package/lib/menu/src/menu.js +292 -93
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/menu/style/style.css +52 -4
- package/lib/menu/style/style.min.css +1 -1
- package/lib/modal/src/modal.js +2 -2
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/radio/style/style.css +1 -0
- package/lib/radio/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tree-select/src/tree-select.js +1 -1
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-checkbox/style/style.css +1 -0
- package/lib/vxe-checkbox/style/style.min.css +1 -1
- package/lib/vxe-icon/style/style.css +33 -2
- package/lib/vxe-icon/style/style.min.css +1 -1
- package/lib/vxe-layout-aside/style/style.css +1 -3
- package/lib/vxe-layout-aside/style/style.min.css +1 -1
- package/lib/vxe-menu/style/style.css +52 -4
- package/lib/vxe-menu/style/style.min.css +1 -1
- package/lib/vxe-radio/style/style.css +1 -0
- package/lib/vxe-radio/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/language/en-US.ts +3 -3
- package/packages/language/hy-AM.ts +3 -3
- package/packages/language/zh-CN.ts +3 -3
- package/packages/layout-aside/src/layout-aside.ts +13 -20
- package/packages/menu/src/menu.ts +323 -111
- package/packages/modal/src/modal.ts +3 -3
- package/packages/tree-select/src/tree-select.ts +1 -1
- package/styles/components/checkbox.scss +1 -0
- package/styles/components/icon.scss +33 -4
- package/styles/components/layout-aside.scss +1 -3
- package/styles/components/menu.scss +64 -1
- package/styles/components/radio.scss +1 -0
- package/styles/icon/iconfont.ttf +0 -0
- package/styles/icon/iconfont.woff +0 -0
- package/styles/icon/iconfont.woff2 +0 -0
- package/styles/theme/base.scss +1 -1
- package/styles/theme/dark.scss +1 -0
- package/styles/theme/light.scss +1 -0
- package/styles/variable.scss +2 -1
- package/types/components/icon.d.ts +1 -1
- package/types/components/layout-aside.d.ts +3 -1
- package/types/components/menu.d.ts +64 -17
- package/types/components/modal.d.ts +2 -2
- package/types/components/table.d.ts +11 -11
- package/types/components/toolbar.d.ts +1 -1
- package/es/icon/iconfont.1783939819897.woff +0 -0
- package/es/icon/iconfont.1783939819897.woff2 +0 -0
- package/es/iconfont.1783939819897.woff +0 -0
- package/es/iconfont.1783939819897.woff2 +0 -0
- package/lib/icon/style/iconfont.1783939819897.woff +0 -0
- package/lib/icon/style/iconfont.1783939819897.woff2 +0 -0
- package/lib/iconfont.1783939819897.woff +0 -0
- package/lib/iconfont.1783939819897.woff2 +0 -0
package/lib/menu/src/menu.js
CHANGED
|
@@ -24,6 +24,10 @@ var menus = _ui.VxeUI.menus,
|
|
|
24
24
|
getIcon = _ui.VxeUI.getIcon;
|
|
25
25
|
function createInternalData() {
|
|
26
26
|
return {
|
|
27
|
+
lastActiveTime: 0,
|
|
28
|
+
menuInitMaps: {},
|
|
29
|
+
menuCacheMaps: {},
|
|
30
|
+
menuKeyMaps: {},
|
|
27
31
|
menuEffectMaps: {}
|
|
28
32
|
};
|
|
29
33
|
}
|
|
@@ -45,12 +49,25 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
45
49
|
props: {
|
|
46
50
|
value: [String, Number],
|
|
47
51
|
expandAll: Boolean,
|
|
52
|
+
expandKeys: Array,
|
|
48
53
|
accordion: {
|
|
49
54
|
type: Boolean,
|
|
50
55
|
default: function _default() {
|
|
51
56
|
return getConfig().menu.accordion;
|
|
52
57
|
}
|
|
53
58
|
},
|
|
59
|
+
border: {
|
|
60
|
+
type: [Boolean, String],
|
|
61
|
+
default: function _default() {
|
|
62
|
+
return getConfig().menu.border;
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
optionProps: {
|
|
66
|
+
type: Object,
|
|
67
|
+
default: function _default() {
|
|
68
|
+
return getConfig().menu.optionProps;
|
|
69
|
+
}
|
|
70
|
+
},
|
|
54
71
|
collapsed: {
|
|
55
72
|
type: Boolean,
|
|
56
73
|
default: null
|
|
@@ -84,6 +101,45 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
84
101
|
});
|
|
85
102
|
},
|
|
86
103
|
computed: Object.assign(Object.assign({}, {}), {
|
|
104
|
+
computePropsOpts: function computePropsOpts() {
|
|
105
|
+
var $xeMenu = this;
|
|
106
|
+
var props = $xeMenu;
|
|
107
|
+
return Object.assign({}, getConfig().menu.optionProps, props.optionProps);
|
|
108
|
+
},
|
|
109
|
+
computeTitleField: function computeTitleField() {
|
|
110
|
+
var $xeMenu = this;
|
|
111
|
+
var propsOpts = $xeMenu.computePropsOpts;
|
|
112
|
+
return propsOpts.title || 'title';
|
|
113
|
+
},
|
|
114
|
+
computeKeyField: function computeKeyField() {
|
|
115
|
+
var $xeMenu = this;
|
|
116
|
+
var propsOpts = $xeMenu.computePropsOpts;
|
|
117
|
+
return propsOpts.name || 'name';
|
|
118
|
+
},
|
|
119
|
+
computeChildrenField: function computeChildrenField() {
|
|
120
|
+
var $xeMenu = this;
|
|
121
|
+
var propsOpts = $xeMenu.computePropsOpts;
|
|
122
|
+
return propsOpts.children || 'children';
|
|
123
|
+
},
|
|
124
|
+
computeLinkUrlField: function computeLinkUrlField() {
|
|
125
|
+
var $xeMenu = this;
|
|
126
|
+
var propsOpts = $xeMenu.computePropsOpts;
|
|
127
|
+
return propsOpts.linkUrl || 'href';
|
|
128
|
+
},
|
|
129
|
+
computeRouterLinkField: function computeRouterLinkField() {
|
|
130
|
+
var $xeMenu = this;
|
|
131
|
+
var propsOpts = $xeMenu.computePropsOpts;
|
|
132
|
+
return propsOpts.routerLink || 'routerLink';
|
|
133
|
+
},
|
|
134
|
+
computeCurrBorder: function computeCurrBorder() {
|
|
135
|
+
var $xeMenu = this;
|
|
136
|
+
var props = $xeMenu;
|
|
137
|
+
var border = props.border;
|
|
138
|
+
if (border) {
|
|
139
|
+
return border === true ? 'first-group' : border;
|
|
140
|
+
}
|
|
141
|
+
return '';
|
|
142
|
+
},
|
|
87
143
|
computeMenuOpts: function computeMenuOpts() {
|
|
88
144
|
var $xeMenu = this;
|
|
89
145
|
var props = $xeMenu;
|
|
@@ -101,14 +157,14 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
101
157
|
}
|
|
102
158
|
return false;
|
|
103
159
|
},
|
|
104
|
-
|
|
160
|
+
computeVarStyle: function computeVarStyle() {
|
|
105
161
|
var $xeMenu = this;
|
|
106
162
|
var $xeLayoutAside = $xeMenu.$xeLayoutAside;
|
|
107
|
-
var collapseWidth = '';
|
|
108
163
|
if ($xeLayoutAside) {
|
|
109
|
-
|
|
164
|
+
var asideVarStyle = $xeLayoutAside.computeVarStyle;
|
|
165
|
+
return asideVarStyle;
|
|
110
166
|
}
|
|
111
|
-
return
|
|
167
|
+
return {};
|
|
112
168
|
},
|
|
113
169
|
computeCollapseEnterWidth: function computeCollapseEnterWidth() {
|
|
114
170
|
var $xeMenu = this;
|
|
@@ -155,6 +211,80 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
155
211
|
}
|
|
156
212
|
return [];
|
|
157
213
|
},
|
|
214
|
+
setExpandByMenuKey: function setExpandByMenuKey(menuKeys, expanded) {
|
|
215
|
+
var $xeMenu = this;
|
|
216
|
+
var internalData = $xeMenu.internalData;
|
|
217
|
+
var menuKeyMaps = internalData.menuKeyMaps,
|
|
218
|
+
menuInitMaps = internalData.menuInitMaps;
|
|
219
|
+
if (menuKeys) {
|
|
220
|
+
if (!_xeUtils.default.isArray(menuKeys)) {
|
|
221
|
+
menuKeys = [menuKeys];
|
|
222
|
+
}
|
|
223
|
+
menuKeys.forEach(function (mKey) {
|
|
224
|
+
var menuItem = menuKeyMaps[mKey];
|
|
225
|
+
if (menuItem) {
|
|
226
|
+
if (expanded) {
|
|
227
|
+
menuInitMaps[menuItem.itemId] = true;
|
|
228
|
+
}
|
|
229
|
+
menuItem.isExpand = !!expanded;
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
return $xeMenu.$nextTick();
|
|
234
|
+
},
|
|
235
|
+
clearAllExpandMenu: function clearAllExpandMenu() {
|
|
236
|
+
var $xeMenu = this;
|
|
237
|
+
var reactData = $xeMenu.reactData;
|
|
238
|
+
var internalData = $xeMenu.internalData;
|
|
239
|
+
var menuList = reactData.menuList;
|
|
240
|
+
_xeUtils.default.eachTree(menuList, function (item) {
|
|
241
|
+
item.isExpand = false;
|
|
242
|
+
}, {
|
|
243
|
+
children: 'childList'
|
|
244
|
+
});
|
|
245
|
+
internalData.menuInitMaps = {};
|
|
246
|
+
return $xeMenu.$nextTick();
|
|
247
|
+
},
|
|
248
|
+
handleScrollToView: function handleScrollToView(itemId) {
|
|
249
|
+
var $xeMenu = this;
|
|
250
|
+
var el = $xeMenu.$refs.refElem;
|
|
251
|
+
var nemuEl = el ? el.querySelector(".vxe-menu--item-wrapper[data-menu-id=\"".concat(itemId, "\"]")) : null;
|
|
252
|
+
if (nemuEl) {
|
|
253
|
+
(0, _dom.scrollToView)(nemuEl);
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
256
|
+
return false;
|
|
257
|
+
},
|
|
258
|
+
scrollToMenuKey: function scrollToMenuKey(menuKey) {
|
|
259
|
+
var $xeMenu = this;
|
|
260
|
+
var internalData = $xeMenu.internalData;
|
|
261
|
+
var menuKeyMaps = internalData.menuKeyMaps;
|
|
262
|
+
var menuItem = menuKeyMaps[menuKey];
|
|
263
|
+
if (!menuItem) {
|
|
264
|
+
return $xeMenu.$nextTick();
|
|
265
|
+
}
|
|
266
|
+
var itemId = menuItem.itemId;
|
|
267
|
+
if ($xeMenu.handleScrollToView(itemId)) {
|
|
268
|
+
return $xeMenu.$nextTick();
|
|
269
|
+
}
|
|
270
|
+
return $xeMenu.$nextTick().then(function () {
|
|
271
|
+
$xeMenu.handleScrollToView(itemId);
|
|
272
|
+
});
|
|
273
|
+
},
|
|
274
|
+
scrollToActiveMenu: function scrollToActiveMenu() {
|
|
275
|
+
var $xeMenu = this;
|
|
276
|
+
var reactData = $xeMenu.reactData;
|
|
277
|
+
var activeName = reactData.activeName;
|
|
278
|
+
if (activeName) {
|
|
279
|
+
return $xeMenu.scrollToMenuKey(activeName);
|
|
280
|
+
}
|
|
281
|
+
return $xeMenu.$nextTick().then(function () {
|
|
282
|
+
var activeName = reactData.activeName;
|
|
283
|
+
if (activeName) {
|
|
284
|
+
return $xeMenu.scrollToMenuKey(activeName);
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
},
|
|
158
288
|
getMenuTitle: function getMenuTitle(item) {
|
|
159
289
|
return "".concat(item.title || item.name);
|
|
160
290
|
},
|
|
@@ -168,13 +298,16 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
168
298
|
updateActiveMenu: function updateActiveMenu(isDefExpand) {
|
|
169
299
|
var $xeMenu = this;
|
|
170
300
|
var reactData = $xeMenu.reactData;
|
|
301
|
+
var internalData = $xeMenu.internalData;
|
|
171
302
|
var activeName = reactData.activeName;
|
|
303
|
+
var menuInitMaps = internalData.menuInitMaps;
|
|
172
304
|
_xeUtils.default.eachTree(reactData.menuList, function (item, index, items, path, parent, nodes) {
|
|
173
305
|
if (item.itemKey === activeName) {
|
|
174
306
|
nodes.forEach(function (obj) {
|
|
175
307
|
obj.isActive = true;
|
|
176
308
|
if (isDefExpand) {
|
|
177
309
|
obj.isExpand = true;
|
|
310
|
+
menuInitMaps[obj.itemId] = true;
|
|
178
311
|
}
|
|
179
312
|
});
|
|
180
313
|
item.isExactActive = true;
|
|
@@ -190,24 +323,67 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
190
323
|
var $xeMenu = this;
|
|
191
324
|
var props = $xeMenu;
|
|
192
325
|
var reactData = $xeMenu.reactData;
|
|
326
|
+
var internalData = $xeMenu.internalData;
|
|
193
327
|
var options = props.options,
|
|
194
|
-
expandAll = props.expandAll
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
328
|
+
expandAll = props.expandAll,
|
|
329
|
+
expandKeys = props.expandKeys;
|
|
330
|
+
var muInitMaps = {};
|
|
331
|
+
var titleField = $xeMenu.computeTitleField;
|
|
332
|
+
var keyField = $xeMenu.computeKeyField;
|
|
333
|
+
var childrenField = $xeMenu.computeChildrenField;
|
|
334
|
+
var linkUrlField = $xeMenu.computeLinkUrlField;
|
|
335
|
+
var routerLinkField = $xeMenu.computeRouterLinkField;
|
|
336
|
+
var defaultExpandMaps = {};
|
|
337
|
+
if (expandKeys) {
|
|
338
|
+
expandKeys.forEach(function (key) {
|
|
339
|
+
defaultExpandMaps[key] = true;
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
var muCacheMaps = {};
|
|
343
|
+
var muKeyMaps = {};
|
|
344
|
+
reactData.menuList = _xeUtils.default.mapTree(options, function (item, index, items, path, parentItem) {
|
|
345
|
+
var itemId = ++nemuUniqueKey;
|
|
346
|
+
var itemKey = item[keyField] || path.join(',');
|
|
347
|
+
var childList = item[childrenField];
|
|
348
|
+
var hasChild = childList && childList.length > 0;
|
|
349
|
+
var isExpand = hasChild ? _xeUtils.default.isBoolean(item.expanded) ? item.expanded : defaultExpandMaps[itemKey] || !!expandAll : false;
|
|
350
|
+
if (isExpand) {
|
|
351
|
+
muInitMaps[itemId] = true;
|
|
352
|
+
}
|
|
353
|
+
var objItem = {
|
|
354
|
+
itemConf: item,
|
|
355
|
+
title: item[titleField],
|
|
356
|
+
name: item[keyField],
|
|
357
|
+
icon: item.icon,
|
|
358
|
+
linkUrl: item[linkUrlField],
|
|
359
|
+
linkTarget: item.linkTarget,
|
|
360
|
+
routerLink: item[routerLinkField],
|
|
361
|
+
permissionCode: item.permissionCode,
|
|
362
|
+
children: childList,
|
|
363
|
+
slots: item.slots,
|
|
364
|
+
parentKey: parentItem ? parentItem.name || path.slice(0, path.length - 1).join(',') : '',
|
|
198
365
|
level: path.length,
|
|
199
|
-
itemId:
|
|
200
|
-
itemKey:
|
|
366
|
+
itemId: itemId,
|
|
367
|
+
itemKey: itemKey,
|
|
201
368
|
isExactActive: false,
|
|
202
369
|
isActive: false,
|
|
203
|
-
isExpand:
|
|
204
|
-
hasChild:
|
|
205
|
-
|
|
370
|
+
isExpand: isExpand,
|
|
371
|
+
hasChild: hasChild,
|
|
372
|
+
childList: []
|
|
373
|
+
};
|
|
374
|
+
if (muKeyMaps[itemKey]) {
|
|
375
|
+
errLog('vxe.error.repeatKey', [keyField, item[keyField]]);
|
|
376
|
+
}
|
|
377
|
+
muCacheMaps[itemId] = objItem;
|
|
378
|
+
muKeyMaps[itemKey] = objItem;
|
|
206
379
|
return objItem;
|
|
207
380
|
}, {
|
|
208
381
|
children: 'children',
|
|
209
382
|
mapChildren: 'childList'
|
|
210
383
|
});
|
|
384
|
+
internalData.menuInitMaps = muInitMaps;
|
|
385
|
+
internalData.menuCacheMaps = muCacheMaps;
|
|
386
|
+
internalData.menuKeyMaps = muKeyMaps;
|
|
211
387
|
},
|
|
212
388
|
updateCollapseStyle: function updateCollapseStyle() {
|
|
213
389
|
var $xeMenu = this;
|
|
@@ -216,10 +392,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
216
392
|
var collapseFixed = props.collapseFixed;
|
|
217
393
|
if (collapseFixed) {
|
|
218
394
|
$xeMenu.$nextTick(function () {
|
|
219
|
-
var isEnterCollapse = reactData.isEnterCollapse;
|
|
220
395
|
var isCollapsed = $xeMenu.computeIsCollapsed;
|
|
221
|
-
var collapseEnterWidth = $xeMenu.computeCollapseEnterWidth;
|
|
222
|
-
var collapseWidth = $xeMenu.computeCollapseWidth;
|
|
223
396
|
var el = $xeMenu.$refs.refElem;
|
|
224
397
|
if (el) {
|
|
225
398
|
var clientRect = el.getBoundingClientRect();
|
|
@@ -228,7 +401,6 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
228
401
|
top: (0, _dom.toCssUnit)(clientRect.top),
|
|
229
402
|
left: (0, _dom.toCssUnit)(clientRect.left),
|
|
230
403
|
height: (0, _dom.toCssUnit)(parentNode.clientHeight),
|
|
231
|
-
width: isEnterCollapse ? collapseEnterWidth ? (0, _dom.toCssUnit)(collapseEnterWidth) : '' : collapseWidth ? (0, _dom.toCssUnit)(collapseWidth) : '',
|
|
232
404
|
zIndex: reactData.collapseZindex
|
|
233
405
|
} : {};
|
|
234
406
|
}
|
|
@@ -264,7 +436,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
264
436
|
var props = $xeMenu;
|
|
265
437
|
var internalData = $xeMenu.internalData;
|
|
266
438
|
var accordion = props.accordion;
|
|
267
|
-
var menuEffectMaps = internalData.menuEffectMaps
|
|
439
|
+
var menuEffectMaps = internalData.menuEffectMaps,
|
|
440
|
+
menuInitMaps = internalData.menuInitMaps;
|
|
268
441
|
var itemId = item.itemId,
|
|
269
442
|
hasChild = item.hasChild,
|
|
270
443
|
isExpand = item.isExpand;
|
|
@@ -284,6 +457,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
284
457
|
});
|
|
285
458
|
}
|
|
286
459
|
item.isExpand = expanded;
|
|
460
|
+
menuInitMaps[itemId] = true;
|
|
287
461
|
var wrapperEl = isCollapsed ? $xeMenu.$refs.refCollapseElem : $xeMenu.$refs.refElem;
|
|
288
462
|
if (wrapperEl) {
|
|
289
463
|
var nemuEl = wrapperEl.querySelector(".vxe-menu--item-wrapper[data-menu-id=\"".concat(itemId, "\"]"));
|
|
@@ -322,7 +496,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
322
496
|
if (!visibleMethod || visibleMethod({
|
|
323
497
|
$menu: $xeMenu,
|
|
324
498
|
options: options,
|
|
325
|
-
currentMenu: item
|
|
499
|
+
currentMenu: item,
|
|
500
|
+
currentOption: item.itemConf
|
|
326
501
|
})) {
|
|
327
502
|
if (_ui.VxeUI.contextMenu) {
|
|
328
503
|
_ui.VxeUI.contextMenu.openByEvent(evnt, {
|
|
@@ -335,6 +510,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
335
510
|
var params = {
|
|
336
511
|
menu: option,
|
|
337
512
|
currentMenu: item,
|
|
513
|
+
currentOption: item.itemConf,
|
|
338
514
|
$event: evnt,
|
|
339
515
|
$menu: $xeMenu
|
|
340
516
|
};
|
|
@@ -354,20 +530,29 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
354
530
|
},
|
|
355
531
|
handleClickMenu: function handleClickMenu(evnt, item, itemList) {
|
|
356
532
|
var $xeMenu = this;
|
|
533
|
+
var reactData = $xeMenu.reactData;
|
|
534
|
+
var internalData = $xeMenu.internalData;
|
|
357
535
|
var itemKey = item.itemKey,
|
|
536
|
+
linkUrl = item.linkUrl,
|
|
358
537
|
routerLink = item.routerLink,
|
|
359
538
|
hasChild = item.hasChild;
|
|
360
|
-
if (routerLink) {
|
|
539
|
+
if (linkUrl || routerLink) {
|
|
361
540
|
$xeMenu.emitModel(itemKey);
|
|
541
|
+
reactData.isEnterCollapse = false;
|
|
542
|
+
internalData.lastActiveTime = Date.now();
|
|
362
543
|
} else {
|
|
363
544
|
if (hasChild) {
|
|
364
545
|
$xeMenu.handleClickIconCollapse(evnt, item, itemList);
|
|
365
546
|
} else {
|
|
366
547
|
$xeMenu.emitModel(itemKey);
|
|
548
|
+
reactData.isEnterCollapse = false;
|
|
549
|
+
internalData.lastActiveTime = Date.now();
|
|
367
550
|
}
|
|
368
551
|
}
|
|
369
552
|
var params = {
|
|
370
553
|
currentMenu: item,
|
|
554
|
+
currentOption: item.itemConf,
|
|
555
|
+
option: item.itemConf,
|
|
371
556
|
// 已废弃
|
|
372
557
|
menu: item
|
|
373
558
|
};
|
|
@@ -376,29 +561,15 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
376
561
|
handleMenuMouseenter: function handleMenuMouseenter() {
|
|
377
562
|
var $xeMenu = this;
|
|
378
563
|
var reactData = $xeMenu.reactData;
|
|
379
|
-
var
|
|
380
|
-
var
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
});
|
|
384
|
-
reactData.isEnterCollapse = true;
|
|
385
|
-
},
|
|
386
|
-
handleMenuMouseover: function handleMenuMouseover() {
|
|
387
|
-
var $xeMenu = this;
|
|
388
|
-
var reactData = $xeMenu.reactData;
|
|
389
|
-
var isEnterCollapse = reactData.isEnterCollapse;
|
|
390
|
-
if (!isEnterCollapse) {
|
|
391
|
-
$xeMenu.handleMenuMouseenter();
|
|
564
|
+
var internalData = $xeMenu.internalData;
|
|
565
|
+
var lastActiveTime = internalData.lastActiveTime;
|
|
566
|
+
if (lastActiveTime < Date.now() - 500) {
|
|
567
|
+
reactData.isEnterCollapse = true;
|
|
392
568
|
}
|
|
393
569
|
},
|
|
394
570
|
handleMenuMouseleave: function handleMenuMouseleave() {
|
|
395
571
|
var $xeMenu = this;
|
|
396
572
|
var reactData = $xeMenu.reactData;
|
|
397
|
-
var collapseStyle = reactData.collapseStyle;
|
|
398
|
-
var el = $xeMenu.$refs.refElem;
|
|
399
|
-
reactData.collapseStyle = Object.assign({}, collapseStyle, {
|
|
400
|
-
width: el ? (0, _dom.toCssUnit)(el.offsetWidth) : ''
|
|
401
|
-
});
|
|
402
573
|
reactData.isEnterCollapse = false;
|
|
403
574
|
},
|
|
404
575
|
//
|
|
@@ -419,9 +590,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
419
590
|
var isCollapsed = $xeMenu.computeIsCollapsed;
|
|
420
591
|
var params = {
|
|
421
592
|
currentMenu: item,
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
593
|
+
currentOption: item.itemConf,
|
|
594
|
+
option: item.itemConf,
|
|
595
|
+
collapsed: isCollapsed
|
|
425
596
|
};
|
|
426
597
|
return [optionSlot ? (0, _ui.renderEmptyElement)($xeMenu) : h('div', {
|
|
427
598
|
class: 'vxe-menu--item-link-icon'
|
|
@@ -448,6 +619,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
448
619
|
renderDefaultChildren: function renderDefaultChildren(h, item, itemList) {
|
|
449
620
|
var $xeMenu = this;
|
|
450
621
|
var reactData = $xeMenu.reactData;
|
|
622
|
+
var internalData = $xeMenu.internalData;
|
|
451
623
|
var itemId = item.itemId,
|
|
452
624
|
itemKey = item.itemKey,
|
|
453
625
|
level = item.level,
|
|
@@ -455,54 +627,61 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
455
627
|
isActive = item.isActive,
|
|
456
628
|
isExactActive = item.isExactActive,
|
|
457
629
|
isExpand = item.isExpand,
|
|
630
|
+
linkUrl = item.linkUrl,
|
|
458
631
|
routerLink = item.routerLink,
|
|
632
|
+
linkTarget = item.linkTarget,
|
|
459
633
|
childList = item.childList;
|
|
460
634
|
var isEnterCollapse = reactData.isEnterCollapse;
|
|
635
|
+
var menuInitMaps = internalData.menuInitMaps;
|
|
461
636
|
var isCollapsed = $xeMenu.computeIsCollapsed;
|
|
462
637
|
if (item.permissionCode) {
|
|
463
638
|
if (!_ui.permission.checkVisible(item.permissionCode)) {
|
|
464
639
|
return (0, _ui.renderEmptyElement)($xeMenu);
|
|
465
640
|
}
|
|
466
641
|
}
|
|
642
|
+
var isExpandChild = (!isCollapsed || isEnterCollapse) && isExpand;
|
|
643
|
+
var linkOns = {
|
|
644
|
+
contextmenu: function contextmenu(evnt) {
|
|
645
|
+
$xeMenu.handleContextmenuEvent(evnt, item);
|
|
646
|
+
},
|
|
647
|
+
click: function click(evnt) {
|
|
648
|
+
$xeMenu.handleClickMenu(evnt, item, itemList);
|
|
649
|
+
}
|
|
650
|
+
};
|
|
467
651
|
return h('div', {
|
|
468
652
|
key: itemKey,
|
|
469
653
|
class: ['vxe-menu--item-wrapper', "vxe-menu--item-level".concat(level), {
|
|
654
|
+
'has--child': hasChild,
|
|
470
655
|
'is--exact-active': isExactActive,
|
|
471
656
|
'is--active': isActive,
|
|
472
|
-
'is--expand':
|
|
657
|
+
'is--expand': isExpandChild
|
|
473
658
|
}],
|
|
474
659
|
attrs: {
|
|
475
660
|
'data-menu-id': itemId
|
|
476
661
|
}
|
|
477
|
-
}, [
|
|
478
|
-
class: 'vxe-menu--item-link',
|
|
662
|
+
}, [linkUrl ? h('a', {
|
|
663
|
+
class: 'vxe-menu--item-link is--link',
|
|
664
|
+
attrs: {
|
|
665
|
+
href: linkUrl,
|
|
666
|
+
target: linkTarget
|
|
667
|
+
},
|
|
668
|
+
on: linkOns
|
|
669
|
+
}, $xeMenu.renderMenuTitle(h, item, itemList)) : routerLink ? h('router-link', {
|
|
670
|
+
class: 'vxe-menu--item-link is--router',
|
|
479
671
|
props: {
|
|
480
672
|
custom: true,
|
|
481
|
-
to: routerLink
|
|
673
|
+
to: routerLink,
|
|
674
|
+
target: linkTarget
|
|
482
675
|
},
|
|
483
|
-
on:
|
|
484
|
-
contextmenu: function contextmenu(evnt) {
|
|
485
|
-
$xeMenu.handleContextmenuEvent(evnt, item);
|
|
486
|
-
},
|
|
487
|
-
click: function click(evnt) {
|
|
488
|
-
$xeMenu.handleClickMenu(evnt, item, itemList);
|
|
489
|
-
}
|
|
490
|
-
}
|
|
676
|
+
on: linkOns
|
|
491
677
|
}, $xeMenu.renderMenuTitle(h, item, itemList)) : h('div', {
|
|
492
|
-
class: 'vxe-menu--item-link',
|
|
493
|
-
on:
|
|
494
|
-
contextmenu: function contextmenu(evnt) {
|
|
495
|
-
$xeMenu.handleContextmenuEvent(evnt, item);
|
|
496
|
-
},
|
|
497
|
-
click: function click(evnt) {
|
|
498
|
-
$xeMenu.handleClickMenu(evnt, item, itemList);
|
|
499
|
-
}
|
|
500
|
-
}
|
|
678
|
+
class: 'vxe-menu--item-link is--default',
|
|
679
|
+
on: linkOns
|
|
501
680
|
}, $xeMenu.renderMenuTitle(h, item, itemList)), hasChild ? h('div', {
|
|
502
681
|
class: 'vxe-menu--item-group'
|
|
503
|
-
}, childList.map(function (child) {
|
|
682
|
+
}, isExpandChild || menuInitMaps[itemId] ? childList.map(function (child) {
|
|
504
683
|
return $xeMenu.renderDefaultChildren(h, child, childList);
|
|
505
|
-
})) : (0, _ui.renderEmptyElement)($xeMenu)]);
|
|
684
|
+
}) : []) : (0, _ui.renderEmptyElement)($xeMenu)]);
|
|
506
685
|
},
|
|
507
686
|
renderCollapseChildren: function renderCollapseChildren(h, item, itemList) {
|
|
508
687
|
var $xeMenu = this;
|
|
@@ -513,45 +692,50 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
513
692
|
isActive = item.isActive,
|
|
514
693
|
isExactActive = item.isExactActive,
|
|
515
694
|
routerLink = item.routerLink,
|
|
695
|
+
linkUrl = item.linkUrl,
|
|
696
|
+
linkTarget = item.linkTarget,
|
|
516
697
|
childList = item.childList;
|
|
517
698
|
if (item.permissionCode) {
|
|
518
699
|
if (!_ui.permission.checkVisible(item.permissionCode)) {
|
|
519
700
|
return (0, _ui.renderEmptyElement)($xeMenu);
|
|
520
701
|
}
|
|
521
702
|
}
|
|
703
|
+
var linkOns = {
|
|
704
|
+
contextmenu: function contextmenu(evnt) {
|
|
705
|
+
$xeMenu.handleContextmenuEvent(evnt, item);
|
|
706
|
+
},
|
|
707
|
+
click: function click(evnt) {
|
|
708
|
+
$xeMenu.handleClickMenu(evnt, item, itemList);
|
|
709
|
+
}
|
|
710
|
+
};
|
|
522
711
|
return h('div', {
|
|
523
712
|
key: itemKey,
|
|
524
713
|
class: ['vxe-menu--item-wrapper', "vxe-menu--item-level".concat(level), {
|
|
714
|
+
'has--child': hasChild,
|
|
525
715
|
'is--exact-active': isExactActive,
|
|
526
716
|
'is--active': isActive
|
|
527
717
|
}],
|
|
528
718
|
attrs: {
|
|
529
719
|
'data-menu-id': itemId
|
|
530
720
|
}
|
|
531
|
-
}, [
|
|
532
|
-
class: 'vxe-menu--item-link',
|
|
721
|
+
}, [linkUrl ? h('a', {
|
|
722
|
+
class: 'vxe-menu--item-link is--link',
|
|
723
|
+
attrs: {
|
|
724
|
+
href: linkUrl,
|
|
725
|
+
target: linkTarget
|
|
726
|
+
},
|
|
727
|
+
on: linkOns
|
|
728
|
+
}, $xeMenu.renderMenuTitle(h, item, itemList)) : routerLink ? h('router-link', {
|
|
729
|
+
class: 'vxe-menu--item-link is--router',
|
|
533
730
|
props: {
|
|
534
731
|
custom: true,
|
|
535
|
-
to: routerLink
|
|
732
|
+
to: routerLink,
|
|
733
|
+
target: linkTarget
|
|
536
734
|
},
|
|
537
|
-
on:
|
|
538
|
-
contextmenu: function contextmenu(evnt) {
|
|
539
|
-
$xeMenu.handleContextmenuEvent(evnt, item);
|
|
540
|
-
},
|
|
541
|
-
click: function click(evnt) {
|
|
542
|
-
$xeMenu.handleClickMenu(evnt, item, itemList);
|
|
543
|
-
}
|
|
544
|
-
}
|
|
735
|
+
on: linkOns
|
|
545
736
|
}, $xeMenu.renderMenuTitle(h, item, itemList)) : h('div', {
|
|
546
|
-
class: 'vxe-menu--item-link',
|
|
547
|
-
on:
|
|
548
|
-
contextmenu: function contextmenu(evnt) {
|
|
549
|
-
$xeMenu.handleContextmenuEvent(evnt, item);
|
|
550
|
-
},
|
|
551
|
-
click: function click(evnt) {
|
|
552
|
-
$xeMenu.handleClickMenu(evnt, item, itemList);
|
|
553
|
-
}
|
|
554
|
-
}
|
|
737
|
+
class: 'vxe-menu--item-link is--default',
|
|
738
|
+
on: linkOns
|
|
555
739
|
}, $xeMenu.renderMenuTitle(h, item, itemList)), hasChild ? h('div', {
|
|
556
740
|
class: 'vxe-menu--item-group'
|
|
557
741
|
}, childList.map(function (child) {
|
|
@@ -561,6 +745,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
561
745
|
renderVN: function renderVN(h) {
|
|
562
746
|
var $xeMenu = this;
|
|
563
747
|
var props = $xeMenu;
|
|
748
|
+
var slots = $xeMenu.$scopedSlots;
|
|
564
749
|
var reactData = $xeMenu.reactData;
|
|
565
750
|
var loading = props.loading,
|
|
566
751
|
collapseFixed = props.collapseFixed;
|
|
@@ -570,31 +755,45 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
570
755
|
isEnterCollapse = reactData.isEnterCollapse;
|
|
571
756
|
var vSize = $xeMenu.computeSize;
|
|
572
757
|
var isCollapsed = $xeMenu.computeIsCollapsed;
|
|
758
|
+
var currBorder = $xeMenu.computeCurrBorder;
|
|
759
|
+
var varStyle = $xeMenu.computeVarStyle;
|
|
760
|
+
var headerSlot = slots.header;
|
|
761
|
+
var footerSlot = slots.footer;
|
|
573
762
|
var ons = {};
|
|
574
763
|
if (collapseFixed) {
|
|
575
764
|
ons = {
|
|
576
765
|
mouseenter: $xeMenu.handleMenuMouseenter,
|
|
577
|
-
mouseover: $xeMenu.handleMenuMouseover,
|
|
578
766
|
mouseleave: $xeMenu.handleMenuMouseleave
|
|
579
767
|
};
|
|
580
768
|
}
|
|
769
|
+
var stParams = {
|
|
770
|
+
collapsed: isCollapsed
|
|
771
|
+
};
|
|
581
772
|
return h('div', {
|
|
582
773
|
ref: 'refElem',
|
|
583
|
-
class: ['vxe-menu', _defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--collapsed', isCollapsed), 'is--loading', loading)]
|
|
584
|
-
}, [h('div', {
|
|
585
|
-
class: 'vxe-menu--
|
|
774
|
+
class: ['vxe-menu', _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "border--".concat(currBorder), currBorder), "size--".concat(vSize), vSize), 'is--collapsed', isCollapsed), 'is--loading', loading)]
|
|
775
|
+
}, [headerSlot ? h('div', {
|
|
776
|
+
class: 'vxe-menu--header'
|
|
777
|
+
}, headerSlot(stParams)) : (0, _ui.renderEmptyElement)($xeMenu), h('div', {
|
|
778
|
+
class: 'vxe-menu--body'
|
|
586
779
|
}, menuList.map(function (child) {
|
|
587
780
|
return isCollapsed ? $xeMenu.renderCollapseChildren(h, child, menuList) : $xeMenu.renderDefaultChildren(h, child, menuList);
|
|
588
|
-
})),
|
|
781
|
+
})), footerSlot ? h('div', {
|
|
782
|
+
class: 'vxe-menu--footer'
|
|
783
|
+
}, footerSlot(stParams)) : (0, _ui.renderEmptyElement)($xeMenu), initialized ? h('div', {
|
|
589
784
|
ref: 'refCollapseElem',
|
|
590
785
|
class: ['vxe-menu--collapse-wrapper', _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--collapsed', isCollapsed), 'is--enter', isEnterCollapse), 'is--loading', loading)],
|
|
591
|
-
style: collapseStyle,
|
|
786
|
+
style: Object.assign({}, varStyle, collapseStyle),
|
|
592
787
|
on: ons
|
|
593
|
-
},
|
|
594
|
-
class: 'vxe-menu--
|
|
788
|
+
}, isCollapsed ? [headerSlot ? h('div', {
|
|
789
|
+
class: 'vxe-menu--header'
|
|
790
|
+
}, headerSlot(stParams)) : (0, _ui.renderEmptyElement)($xeMenu), h('div', {
|
|
791
|
+
class: 'vxe-menu--body'
|
|
595
792
|
}, menuList.map(function (child) {
|
|
596
793
|
return $xeMenu.renderDefaultChildren(h, child, menuList);
|
|
597
|
-
}))
|
|
794
|
+
})), footerSlot ? h('div', {
|
|
795
|
+
class: 'vxe-menu--footer'
|
|
796
|
+
}, footerSlot(stParams)) : (0, _ui.renderEmptyElement)($xeMenu)] : []) : (0, _ui.renderEmptyElement)($xeMenu),
|
|
598
797
|
/**
|
|
599
798
|
* 加载中
|
|
600
799
|
*/
|