vxe-pc-ui 3.16.6 → 3.16.8

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.
Files changed (61) hide show
  1. package/es/cascader/src/cascader.js +66 -24
  2. package/es/cascader/style.css +9 -9
  3. package/es/cascader/style.min.css +1 -1
  4. package/es/date-range-picker/src/date-range-picker.js +25 -9
  5. package/es/icon/style.css +1 -1
  6. package/es/menu/src/menu.js +82 -32
  7. package/es/menu/style.css +16 -7
  8. package/es/menu/style.min.css +1 -1
  9. package/es/style.css +1 -1
  10. package/es/style.min.css +1 -1
  11. package/es/ui/index.js +3 -3
  12. package/es/ui/src/log.js +1 -1
  13. package/es/vxe-cascader/style.css +9 -9
  14. package/es/vxe-cascader/style.min.css +1 -1
  15. package/es/vxe-menu/style.css +16 -7
  16. package/es/vxe-menu/style.min.css +1 -1
  17. package/lib/cascader/src/cascader.js +89 -29
  18. package/lib/cascader/src/cascader.min.js +1 -1
  19. package/lib/cascader/style/style.css +9 -9
  20. package/lib/cascader/style/style.min.css +1 -1
  21. package/lib/date-range-picker/src/date-range-picker.js +23 -9
  22. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  23. package/lib/icon/style/style.css +1 -1
  24. package/lib/icon/style/style.min.css +1 -1
  25. package/lib/index.umd.js +203 -71
  26. package/lib/index.umd.min.js +1 -1
  27. package/lib/menu/src/menu.js +85 -29
  28. package/lib/menu/src/menu.min.js +1 -1
  29. package/lib/menu/style/style.css +16 -7
  30. package/lib/menu/style/style.min.css +1 -1
  31. package/lib/style.css +1 -1
  32. package/lib/style.min.css +1 -1
  33. package/lib/ui/index.js +3 -3
  34. package/lib/ui/index.min.js +1 -1
  35. package/lib/ui/src/log.js +1 -1
  36. package/lib/ui/src/log.min.js +1 -1
  37. package/lib/vxe-cascader/style/style.css +9 -9
  38. package/lib/vxe-cascader/style/style.min.css +1 -1
  39. package/lib/vxe-menu/style/style.css +16 -7
  40. package/lib/vxe-menu/style/style.min.css +1 -1
  41. package/package.json +1 -1
  42. package/packages/cascader/src/cascader.ts +66 -23
  43. package/packages/date-range-picker/src/date-range-picker.ts +23 -9
  44. package/packages/menu/src/menu.ts +92 -29
  45. package/packages/ui/index.ts +2 -2
  46. package/styles/components/cascader.scss +9 -9
  47. package/styles/components/menu.scss +10 -4
  48. package/types/components/cascader.d.ts +1 -0
  49. package/types/components/menu.d.ts +6 -0
  50. /package/es/icon/{iconfont.1783838609874.ttf → iconfont.1783923648005.ttf} +0 -0
  51. /package/es/icon/{iconfont.1783838609874.woff → iconfont.1783923648005.woff} +0 -0
  52. /package/es/icon/{iconfont.1783838609874.woff2 → iconfont.1783923648005.woff2} +0 -0
  53. /package/es/{iconfont.1783838609874.ttf → iconfont.1783923648005.ttf} +0 -0
  54. /package/es/{iconfont.1783838609874.woff → iconfont.1783923648005.woff} +0 -0
  55. /package/es/{iconfont.1783838609874.woff2 → iconfont.1783923648005.woff2} +0 -0
  56. /package/lib/icon/style/{iconfont.1783838609874.ttf → iconfont.1783923648005.ttf} +0 -0
  57. /package/lib/icon/style/{iconfont.1783838609874.woff → iconfont.1783923648005.woff} +0 -0
  58. /package/lib/icon/style/{iconfont.1783838609874.woff2 → iconfont.1783923648005.woff2} +0 -0
  59. /package/lib/{iconfont.1783838609874.ttf → iconfont.1783923648005.ttf} +0 -0
  60. /package/lib/{iconfont.1783838609874.woff → iconfont.1783923648005.woff} +0 -0
  61. /package/lib/{iconfont.1783838609874.woff2 → iconfont.1783923648005.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -13256,7 +13256,7 @@ var es_array_join = __webpack_require__(8598);
13256
13256
 
13257
13257
 
13258
13258
  var log_log = VxeUI.log;
13259
- var uiVersion = "ui v".concat("3.16.6");
13259
+ var uiVersion = "ui v".concat("3.16.8");
13260
13260
  function createComponentLog(name) {
13261
13261
  var tableVersion = VxeUI.tableVersion ? "table v".concat(VxeUI.tableVersion) : '';
13262
13262
  var ganttVersion = VxeUI.ganttVersion ? "gantt v".concat(VxeUI.ganttVersion) : '';
@@ -13274,7 +13274,7 @@ var errLog = log_log.create('error', uiVersion);
13274
13274
 
13275
13275
 
13276
13276
 
13277
- var ui_version = "3.16.6";
13277
+ var ui_version = "3.16.8";
13278
13278
  VxeUI.uiVersion = ui_version;
13279
13279
  VxeUI.dynamicApp = dynamicApp;
13280
13280
  function config(options) {
@@ -13770,8 +13770,8 @@ setIcon({
13770
13770
  BUTTON_LOADING: iconPrefix + 'spinner roll',
13771
13771
  BUTTON_TOOLTIP_ICON: iconPrefix + 'question-circle-fill',
13772
13772
  // menu
13773
- MENU_ITEM_EXPAND_OPEN: iconPrefix + 'arrow-down rotate180',
13774
- MENU_ITEM_EXPAND_CLOSE: iconPrefix + 'arrow-down',
13773
+ MENU_ITEM_EXPAND_OPEN: iconPrefix + 'arrow-right rotate90',
13774
+ MENU_ITEM_EXPAND_CLOSE: iconPrefix + 'arrow-right',
13775
13775
  // select
13776
13776
  SELECT_LOADED: iconPrefix + 'spinner roll',
13777
13777
  SELECT_OPEN: iconPrefix + 'caret-down rotate180',
@@ -27084,6 +27084,8 @@ var Input = VxeInput;
27084
27084
 
27085
27085
 
27086
27086
 
27087
+
27088
+
27087
27089
 
27088
27090
 
27089
27091
 
@@ -27144,6 +27146,7 @@ function cascader_createInternalData() {
27144
27146
  selectCheckboxMaps: {},
27145
27147
  treeExpandedMaps: {},
27146
27148
  treeExpandLazyLoadedMaps: {}
27149
+ // isUpdateMode: false
27147
27150
  };
27148
27151
  }
27149
27152
  /* harmony default export */ var cascader = (/* define-vxe-component start */defineVxeComponent({
@@ -27481,6 +27484,39 @@ function cascader_createInternalData() {
27481
27484
  var nodeKey = node[valueField];
27482
27485
  return enNodeValue(nodeKey);
27483
27486
  },
27487
+ isPathInTree: function isPathInTree(treeData, pathIds) {
27488
+ var $xeCascader = this;
27489
+ if (!pathIds || !pathIds.length) {
27490
+ return false;
27491
+ }
27492
+ var currentNodes = treeData;
27493
+ var _iterator = _createForOfIteratorHelper(pathIds),
27494
+ _step;
27495
+ try {
27496
+ var _loop = function _loop() {
27497
+ var nodeid = _step.value;
27498
+ var found = currentNodes.find(function (node) {
27499
+ return $xeCascader.getNodeId(node) === nodeid;
27500
+ });
27501
+ if (!found) {
27502
+ return {
27503
+ v: false
27504
+ };
27505
+ }
27506
+ currentNodes = found.children || [];
27507
+ },
27508
+ _ret;
27509
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
27510
+ _ret = _loop();
27511
+ if (_ret) return _ret.v;
27512
+ }
27513
+ } catch (err) {
27514
+ _iterator.e(err);
27515
+ } finally {
27516
+ _iterator.f();
27517
+ }
27518
+ return true;
27519
+ },
27484
27520
  isCheckedByCheckboxNodeId: function isCheckedByCheckboxNodeId(nodeid) {
27485
27521
  var $xeCascader = this;
27486
27522
  var reactData = $xeCascader.reactData;
@@ -27715,7 +27751,7 @@ function cascader_createInternalData() {
27715
27751
  if (transform) {
27716
27752
  treeList = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().searchTree(treeFullData, handleSearch, {
27717
27753
  original: true,
27718
- isEvery: true,
27754
+ isEvery: false,
27719
27755
  children: childrenField,
27720
27756
  mapChildren: mapChildrenField
27721
27757
  });
@@ -27735,7 +27771,7 @@ function cascader_createInternalData() {
27735
27771
  return true;
27736
27772
  }, {
27737
27773
  original: true,
27738
- isEvery: true,
27774
+ isEvery: false,
27739
27775
  children: childrenField,
27740
27776
  mapChildren: mapChildrenField
27741
27777
  });
@@ -27819,11 +27855,11 @@ function cascader_createInternalData() {
27819
27855
  var currList = treeList;
27820
27856
  while (currList.length) {
27821
27857
  var targetNode = null;
27822
- var _iterator = _createForOfIteratorHelper(currList),
27823
- _step;
27858
+ var _iterator2 = _createForOfIteratorHelper(currList),
27859
+ _step2;
27824
27860
  try {
27825
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
27826
- var item = _step.value;
27861
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
27862
+ var item = _step2.value;
27827
27863
  var kids = item[childField];
27828
27864
  if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(kids) && kids.length > 0) {
27829
27865
  targetNode = item;
@@ -27831,9 +27867,9 @@ function cascader_createInternalData() {
27831
27867
  }
27832
27868
  }
27833
27869
  } catch (err) {
27834
- _iterator.e(err);
27870
+ _iterator2.e(err);
27835
27871
  } finally {
27836
- _iterator.f();
27872
+ _iterator2.f();
27837
27873
  }
27838
27874
  if (targetNode) {
27839
27875
  nodeIds.push($xeCascader.getNodeId(targetNode));
@@ -27851,16 +27887,25 @@ function cascader_createInternalData() {
27851
27887
  var reactData = $xeCascader.reactData;
27852
27888
  var internalData = $xeCascader.internalData;
27853
27889
  $xeCascader.handleData(true);
27854
- $xeCascader.updateModelChecked();
27890
+ $xeCascader.updateCheckboxStatus();
27891
+ var currentItems = reactData.currentItems;
27892
+ var afterTreeList = internalData.afterTreeList;
27855
27893
  var filterOpts = $xeCascader.computeFilterOpts;
27856
27894
  var autoExpandMode = filterOpts.autoExpandMode;
27857
- var afterTreeList = internalData.afterTreeList;
27858
- // 默认展开第
27859
- if (autoExpandMode === 'first' || autoExpandMode === 'last') {
27860
- var stItems = $xeCascader.handleHasChildNodeIds(afterTreeList, autoExpandMode);
27861
- reactData.currentItems = stItems;
27862
- } else {
27863
- $xeCascader.handleCurrentItems();
27895
+ // 如果当前不在列表情况下,触发默认行为
27896
+ if (!$xeCascader.isPathInTree(afterTreeList, currentItems)) {
27897
+ // 默认展开
27898
+ if (autoExpandMode === 'first' || autoExpandMode === 'last') {
27899
+ var stItems = $xeCascader.handleHasChildNodeIds(afterTreeList, autoExpandMode);
27900
+ var expandedMaps = {};
27901
+ stItems.forEach(function (nodeid) {
27902
+ expandedMaps[nodeid] = true;
27903
+ });
27904
+ internalData.treeExpandedMaps = expandedMaps;
27905
+ reactData.currentItems = stItems;
27906
+ } else {
27907
+ $xeCascader.handleCurrentItems();
27908
+ }
27864
27909
  }
27865
27910
  $xeCascader.updateCurrentChunk();
27866
27911
  }, 350, {
@@ -28097,9 +28142,11 @@ function cascader_createInternalData() {
28097
28142
  changeEvent: function changeEvent(evnt, selectValue, node) {
28098
28143
  var $xeCascader = this;
28099
28144
  var props = $xeCascader;
28145
+ var internalData = $xeCascader.internalData;
28100
28146
  var $xeForm = $xeCascader.$xeForm;
28101
28147
  var formItemInfo = $xeCascader.formItemInfo;
28102
28148
  var value = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(selectValue) ? selectValue.map(deNodeValue) : deNodeValue(selectValue);
28149
+ internalData.isUpdateMode = true;
28103
28150
  $xeCascader.emitModel(value);
28104
28151
  if (value !== props.value) {
28105
28152
  $xeCascader.dispatchEvent('change', {
@@ -28246,12 +28293,13 @@ function cascader_createInternalData() {
28246
28293
  checked: isChecked
28247
28294
  }, evnt);
28248
28295
  },
28249
- changeRadioEvent: function changeRadioEvent(evnt, node) {
28296
+ changeRadioEvent: function changeRadioEvent(evnt, node, chunks, chunkIndex) {
28250
28297
  var $xeCascader = this;
28251
28298
  var reactData = $xeCascader.reactData;
28252
28299
  var internalData = $xeCascader.internalData;
28253
28300
  evnt.preventDefault();
28254
28301
  evnt.stopPropagation();
28302
+ var currentItems = reactData.currentItems;
28255
28303
  var nodeMaps = internalData.nodeMaps;
28256
28304
  var radioOpts = $xeCascader.computeRadioOpts;
28257
28305
  var childrenField = $xeCascader.computeChildrenField;
@@ -28275,6 +28323,10 @@ function cascader_createInternalData() {
28275
28323
  var value = nodeid;
28276
28324
  reactData.selectRadioKey = value;
28277
28325
  $xeCascader.changeEvent(evnt, value, node);
28326
+ if (!currentItems.includes(nodeid)) {
28327
+ $xeCascader.changeCurrentEvent(evnt, node);
28328
+ $xeCascader.toggleExpandEvent(evnt, node, chunks, chunkIndex);
28329
+ }
28278
28330
  $xeCascader.hideOptionPanel(evnt);
28279
28331
  },
28280
28332
  handleAsyncTreeExpandChilds: function handleAsyncTreeExpandChilds(node) {
@@ -28544,12 +28596,14 @@ function cascader_createInternalData() {
28544
28596
  reactData.updateCheckboxFlag++;
28545
28597
  }
28546
28598
  },
28547
- changeCheckboxEvent: function changeCheckboxEvent(evnt, node) {
28599
+ changeCheckboxEvent: function changeCheckboxEvent(evnt, node, chunks, chunkIndex) {
28548
28600
  var $xeCascader = this;
28549
28601
  var reactData = $xeCascader.reactData;
28550
28602
  var internalData = $xeCascader.internalData;
28551
28603
  evnt.preventDefault();
28552
28604
  evnt.stopPropagation();
28605
+ // const { filterable } = props
28606
+ var currentItems = reactData.currentItems;
28553
28607
  var selectCheckboxMaps = internalData.selectCheckboxMaps,
28554
28608
  nodeMaps = internalData.nodeMaps;
28555
28609
  var childrenField = $xeCascader.computeChildrenField;
@@ -28580,7 +28634,7 @@ function cascader_createInternalData() {
28580
28634
  selectCheckboxMaps[nodeid] = node;
28581
28635
  }
28582
28636
  if (!checkStrictly) {
28583
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(node, transform ? mapChildrenField : childrenField), function (childNode) {
28637
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(childList, function (childNode) {
28584
28638
  var childNodeid = $xeCascader.getNodeId(childNode);
28585
28639
  if (isChecked) {
28586
28640
  if (!selectCheckboxMaps[childNodeid]) {
@@ -28600,6 +28654,10 @@ function cascader_createInternalData() {
28600
28654
  var nodeids = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(selectCheckboxMaps);
28601
28655
  var value = nodeids;
28602
28656
  $xeCascader.changeEvent(evnt, value, node);
28657
+ if (!currentItems.includes(nodeid)) {
28658
+ $xeCascader.changeCurrentEvent(evnt, node);
28659
+ $xeCascader.toggleExpandEvent(evnt, node, chunks, chunkIndex);
28660
+ }
28603
28661
  },
28604
28662
  handleNodeClickEvent: function handleNodeClickEvent(evnt, node, chunks, chunkIndex) {
28605
28663
  var $xeCascader = this;
@@ -28628,12 +28686,12 @@ function cascader_createInternalData() {
28628
28686
  if (multiple) {
28629
28687
  if (checkboxOpts.trigger === 'node' || !showCheckbox && (!childList || !childList.length)) {
28630
28688
  triggerCheckbox = true;
28631
- $xeCascader.changeCheckboxEvent(evnt, node);
28689
+ $xeCascader.changeCheckboxEvent(evnt, node, chunks, chunkIndex);
28632
28690
  }
28633
28691
  } else {
28634
28692
  if (radioOpts.trigger === 'node' || !showRadio && (!childList || !childList.length)) {
28635
28693
  triggerRadio = true;
28636
- $xeCascader.changeRadioEvent(evnt, node);
28694
+ $xeCascader.changeRadioEvent(evnt, node, chunks, chunkIndex);
28637
28695
  }
28638
28696
  }
28639
28697
  $xeCascader.dispatchEvent('node-click', {
@@ -28777,7 +28835,7 @@ function cascader_createInternalData() {
28777
28835
  //
28778
28836
  // Render
28779
28837
  //
28780
- renderRadio: function renderRadio(h, node, isExistChild, nLevel, isChecked) {
28838
+ renderRadio: function renderRadio(h, node, isExistChild, nLevel, isChecked, chunks, chunkIndex) {
28781
28839
  var $xeCascader = this;
28782
28840
  var props = $xeCascader;
28783
28841
  var showRadio = props.showRadio;
@@ -28803,7 +28861,7 @@ function cascader_createInternalData() {
28803
28861
  on: {
28804
28862
  click: function click(evnt) {
28805
28863
  if (!isDisabled) {
28806
- $xeCascader.changeRadioEvent(evnt, node);
28864
+ $xeCascader.changeRadioEvent(evnt, node, chunks, chunkIndex);
28807
28865
  }
28808
28866
  }
28809
28867
  }
@@ -28813,7 +28871,7 @@ function cascader_createInternalData() {
28813
28871
  }
28814
28872
  return renderEmptyElement($xeCascader);
28815
28873
  },
28816
- renderCheckbox: function renderCheckbox(h, node, isExistChild, nLevel, isChecked, isIndeterminate) {
28874
+ renderCheckbox: function renderCheckbox(h, node, isExistChild, nLevel, isChecked, isIndeterminate, chunks, chunkIndex) {
28817
28875
  var $xeCascader = this;
28818
28876
  var props = $xeCascader;
28819
28877
  var showCheckbox = props.showCheckbox;
@@ -28840,7 +28898,7 @@ function cascader_createInternalData() {
28840
28898
  on: {
28841
28899
  click: function click(evnt) {
28842
28900
  if (!isDisabled) {
28843
- $xeCascader.changeCheckboxEvent(evnt, node);
28901
+ $xeCascader.changeCheckboxEvent(evnt, node, chunks, chunkIndex);
28844
28902
  }
28845
28903
  }
28846
28904
  }
@@ -28928,7 +28986,7 @@ function cascader_createInternalData() {
28928
28986
  $xeCascader.handleNodeClickEvent(evnt, node, chunks, chunkIndex);
28929
28987
  }
28930
28988
  }
28931
- }, [multiple ? $xeCascader.renderCheckbox(h, node, isExistChild, nLevel, isCheckboxChecked, isIndeterminate) : $xeCascader.renderRadio(h, node, isExistChild, nLevel, isRadioChecked), h('div', {
28989
+ }, [multiple ? $xeCascader.renderCheckbox(h, node, isExistChild, nLevel, isCheckboxChecked, isIndeterminate, chunks, chunkIndex) : $xeCascader.renderRadio(h, node, isExistChild, nLevel, isRadioChecked, chunks, chunkIndex), h('div', {
28932
28990
  class: 'vxe-cascader-chunk--node-item-inner'
28933
28991
  }, [h('div', {
28934
28992
  class: 'vxe-cascader-chunk--node-item-title'
@@ -29114,9 +29172,13 @@ function cascader_createInternalData() {
29114
29172
  watch: {
29115
29173
  value: function value() {
29116
29174
  var $xeCascader = this;
29117
- $xeCascader.updateModelChecked();
29118
- $xeCascader.handleCurrentItems();
29119
- $xeCascader.updateCurrentChunk();
29175
+ var internalData = $xeCascader.internalData;
29176
+ if (!internalData.isUpdateMode) {
29177
+ $xeCascader.updateModelChecked();
29178
+ $xeCascader.handleCurrentItems();
29179
+ $xeCascader.updateCurrentChunk();
29180
+ }
29181
+ internalData.isUpdateMode = false;
29120
29182
  },
29121
29183
  options: function options() {
29122
29184
  var $xeCascader = this;
@@ -39514,6 +39576,7 @@ function date_range_picker_createInternalData() {
39514
39576
  var $xeDateRangePicker = this;
39515
39577
  var reactData = $xeDateRangePicker.reactData;
39516
39578
  var internalData = $xeDateRangePicker.internalData;
39579
+ var paneStartVal = reactData.paneStartVal;
39517
39580
  var selectStatus = internalData.selectStatus;
39518
39581
  var value = params.value,
39519
39582
  currValue = params.currValue,
@@ -39522,11 +39585,17 @@ function date_range_picker_createInternalData() {
39522
39585
  var startValue = '';
39523
39586
  var endValue = '';
39524
39587
  if (selectStatus) {
39525
- startValue = paneVals[0];
39526
- if (paneVals[1]) {
39527
- endValue = paneVals[1];
39588
+ // 如果选择同一天
39589
+ if (!value && currValue === paneStartVal[0]) {
39590
+ startValue = currValue;
39591
+ endValue = currValue;
39528
39592
  } else {
39529
- endValue = reactData.selectEdValue;
39593
+ startValue = paneVals[0];
39594
+ if (paneVals[1]) {
39595
+ endValue = paneVals[1];
39596
+ } else {
39597
+ endValue = reactData.selectEdValue;
39598
+ }
39530
39599
  }
39531
39600
  } else {
39532
39601
  startValue = currValue || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().last(paneVals);
@@ -39550,6 +39619,7 @@ function date_range_picker_createInternalData() {
39550
39619
  var $xeDateRangePicker = this;
39551
39620
  var reactData = $xeDateRangePicker.reactData;
39552
39621
  var internalData = $xeDateRangePicker.internalData;
39622
+ var paneEndVal = reactData.paneEndVal;
39553
39623
  var selectStatus = internalData.selectStatus;
39554
39624
  var value = params.value,
39555
39625
  currValue = params.currValue,
@@ -39558,12 +39628,18 @@ function date_range_picker_createInternalData() {
39558
39628
  var startValue = '';
39559
39629
  var endValue = '';
39560
39630
  if (selectStatus) {
39561
- endValue = paneVals[0];
39562
- if (paneVals[1]) {
39563
- startValue = paneVals[0];
39564
- endValue = paneVals[1];
39631
+ // 如果选择同一天
39632
+ if (!value && currValue === paneEndVal[1]) {
39633
+ startValue = currValue;
39634
+ endValue = currValue;
39565
39635
  } else {
39566
- startValue = reactData.selectStValue;
39636
+ endValue = paneVals[0];
39637
+ if (paneVals[1]) {
39638
+ startValue = paneVals[0];
39639
+ endValue = paneVals[1];
39640
+ } else {
39641
+ startValue = reactData.selectStValue;
39642
+ }
39567
39643
  }
39568
39644
  } else {
39569
39645
  endValue = currValue || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().last(paneVals);
@@ -47150,6 +47226,23 @@ var menu_createComponentLog = createComponentLog('menu'),
47150
47226
  var menu_menus = VxeUI.menus,
47151
47227
  menu_getConfig = VxeUI.getConfig,
47152
47228
  menu_getIcon = VxeUI.getIcon;
47229
+ function menu_createInternalData() {
47230
+ return {
47231
+ menuEffectMaps: {}
47232
+ };
47233
+ }
47234
+ function menu_createReactData() {
47235
+ return {
47236
+ initialized: false,
47237
+ isEnterCollapse: false,
47238
+ collapseStyle: {},
47239
+ collapseZindex: 0,
47240
+ activeName: '',
47241
+ menuList: [],
47242
+ itemHeight: 1
47243
+ };
47244
+ }
47245
+ var nemuUniqueKey = 100000000;
47153
47246
  /* harmony default export */ var menu = (/* define-vxe-component start */defineVxeComponent({
47154
47247
  name: 'VxeMenu',
47155
47248
  mixins: [globalMixins.sizeMixin, globalMixins.permissionMixin],
@@ -47188,19 +47281,11 @@ var menu_menus = VxeUI.menus,
47188
47281
  }
47189
47282
  },
47190
47283
  data: function data() {
47191
- var reactData = {
47192
- initialized: false,
47193
- isEnterCollapse: false,
47194
- collapseStyle: {},
47195
- collapseZindex: 0,
47196
- activeName: null,
47197
- menuList: [],
47198
- itemHeight: 1
47199
- };
47200
- return {
47284
+ var reactData = menu_createReactData();
47285
+ return _objectSpread2(_objectSpread2({}, {}), {}, {
47201
47286
  xID: external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId(),
47202
47287
  reactData: reactData
47203
- };
47288
+ });
47204
47289
  },
47205
47290
  computed: _objectSpread2(_objectSpread2({}, {}), {}, {
47206
47291
  computeMenuOpts: function computeMenuOpts() {
@@ -47315,6 +47400,7 @@ var menu_menus = VxeUI.menus,
47315
47400
  var objItem = _objectSpread2(_objectSpread2({}, item), {}, {
47316
47401
  parentKey: parent ? parent.name || path.slice(0, path.length - 1).join(',') : '',
47317
47402
  level: path.length,
47403
+ itemId: ++nemuUniqueKey,
47318
47404
  itemKey: item.name || path.join(','),
47319
47405
  isExactActive: false,
47320
47406
  isActive: false,
@@ -47380,12 +47466,20 @@ var menu_menus = VxeUI.menus,
47380
47466
  handleClickIconCollapse: function handleClickIconCollapse(evnt, item, itemList) {
47381
47467
  var $xeMenu = this;
47382
47468
  var props = $xeMenu;
47469
+ var internalData = $xeMenu.internalData;
47383
47470
  var accordion = props.accordion;
47384
- var hasChild = item.hasChild,
47471
+ var menuEffectMaps = internalData.menuEffectMaps;
47472
+ var itemId = item.itemId,
47473
+ hasChild = item.hasChild,
47385
47474
  isExpand = item.isExpand;
47475
+ var isCollapsed = $xeMenu.computeIsCollapsed;
47476
+ var expanded = !isExpand;
47386
47477
  if (hasChild) {
47387
47478
  evnt.stopPropagation();
47388
47479
  evnt.preventDefault();
47480
+ if (menuEffectMaps[itemId]) {
47481
+ clearTimeout(menuEffectMaps[itemId]);
47482
+ }
47389
47483
  if (accordion) {
47390
47484
  itemList.forEach(function (obj) {
47391
47485
  if (obj !== item) {
@@ -47393,7 +47487,32 @@ var menu_menus = VxeUI.menus,
47393
47487
  }
47394
47488
  });
47395
47489
  }
47396
- item.isExpand = !isExpand;
47490
+ item.isExpand = expanded;
47491
+ var wrapperEl = isCollapsed ? $xeMenu.$refs.refCollapseElem : $xeMenu.$refs.refElem;
47492
+ if (wrapperEl) {
47493
+ var nemuEl = wrapperEl.querySelector(".vxe-menu--item-wrapper[data-menu-id=\"".concat(itemId, "\"]"));
47494
+ var groupEl = nemuEl ? nemuEl.querySelector('.vxe-menu--item-group') : null;
47495
+ if (groupEl) {
47496
+ if (expanded) {
47497
+ groupEl.style.height = '0';
47498
+ groupEl.setAttribute('data-effect', 'y');
47499
+ requestAnimationFrame(function () {
47500
+ groupEl.style.height = "".concat(groupEl.scrollHeight, "px");
47501
+ });
47502
+ } else {
47503
+ groupEl.style.height = "".concat(groupEl.scrollHeight, "px");
47504
+ groupEl.setAttribute('data-effect', 'y');
47505
+ requestAnimationFrame(function () {
47506
+ groupEl.style.height = '0';
47507
+ });
47508
+ }
47509
+ menuEffectMaps[itemId] = setTimeout(function () {
47510
+ delete menuEffectMaps[itemId];
47511
+ groupEl.removeAttribute('data-effect');
47512
+ groupEl.style.height = '';
47513
+ }, 350);
47514
+ }
47515
+ }
47397
47516
  }
47398
47517
  },
47399
47518
  handleContextmenuEvent: function handleContextmenuEvent(evnt, item) {
@@ -47480,7 +47599,7 @@ var menu_menus = VxeUI.menus,
47480
47599
  var $xeMenu = this;
47481
47600
  var reactData = $xeMenu.reactData;
47482
47601
  var collapseStyle = reactData.collapseStyle;
47483
- var el = this.$refs.refElem;
47602
+ var el = $xeMenu.$refs.refElem;
47484
47603
  reactData.collapseStyle = Object.assign({}, collapseStyle, {
47485
47604
  width: el ? toCssUnit(el.offsetWidth) : ''
47486
47605
  });
@@ -47533,7 +47652,8 @@ var menu_menus = VxeUI.menus,
47533
47652
  renderDefaultChildren: function renderDefaultChildren(h, item, itemList) {
47534
47653
  var $xeMenu = this;
47535
47654
  var reactData = $xeMenu.reactData;
47536
- var itemKey = item.itemKey,
47655
+ var itemId = item.itemId,
47656
+ itemKey = item.itemKey,
47537
47657
  level = item.level,
47538
47658
  hasChild = item.hasChild,
47539
47659
  isActive = item.isActive,
@@ -47554,7 +47674,10 @@ var menu_menus = VxeUI.menus,
47554
47674
  'is--exact-active': isExactActive,
47555
47675
  'is--active': isActive,
47556
47676
  'is--expand': (!isCollapsed || isEnterCollapse) && isExpand
47557
- }]
47677
+ }],
47678
+ attrs: {
47679
+ 'data-menu-id': itemId
47680
+ }
47558
47681
  }, [routerLink ? h('router-link', {
47559
47682
  class: 'vxe-menu--item-link',
47560
47683
  props: {
@@ -47587,7 +47710,8 @@ var menu_menus = VxeUI.menus,
47587
47710
  },
47588
47711
  renderCollapseChildren: function renderCollapseChildren(h, item, itemList) {
47589
47712
  var $xeMenu = this;
47590
- var itemKey = item.itemKey,
47713
+ var itemId = item.itemId,
47714
+ itemKey = item.itemKey,
47591
47715
  level = item.level,
47592
47716
  hasChild = item.hasChild,
47593
47717
  isActive = item.isActive,
@@ -47604,7 +47728,10 @@ var menu_menus = VxeUI.menus,
47604
47728
  class: ['vxe-menu--item-wrapper', "vxe-menu--item-level".concat(level), {
47605
47729
  'is--exact-active': isExactActive,
47606
47730
  'is--active': isActive
47607
- }]
47731
+ }],
47732
+ attrs: {
47733
+ 'data-menu-id': itemId
47734
+ }
47608
47735
  }, [routerLink ? h('router-link', {
47609
47736
  class: 'vxe-menu--item-link',
47610
47737
  props: {
@@ -47703,6 +47830,16 @@ var menu_menus = VxeUI.menus,
47703
47830
  $xeMenu.handleCollapseMenu();
47704
47831
  }
47705
47832
  },
47833
+ created: function created() {
47834
+ var $xeMenu = this;
47835
+ var props = $xeMenu;
47836
+ $xeMenu.internalData = menu_createInternalData();
47837
+ var reactData = $xeMenu.reactData;
47838
+ reactData.initialized = !!props.collapsed;
47839
+ reactData.activeName = props.value;
47840
+ $xeMenu.updateMenuConfig();
47841
+ $xeMenu.updateActiveMenu(true);
47842
+ },
47706
47843
  mounted: function mounted() {
47707
47844
  var $xeMenu = this;
47708
47845
  var props = $xeMenu;
@@ -47711,12 +47848,13 @@ var menu_menus = VxeUI.menus,
47711
47848
  if (menuConfig && !VxeUIContextMenu) {
47712
47849
  menu_errLog('vxe.error.reqComp', ['vxe-context-menu']);
47713
47850
  }
47714
- globalEvents.on($xeMenu, 'resize', $xeMenu.updateCollapseStyle);
47715
47851
  $xeMenu.updateCollapseStyle();
47852
+ globalEvents.on($xeMenu, 'resize', $xeMenu.updateCollapseStyle);
47716
47853
  },
47717
47854
  beforeDestroy: function beforeDestroy() {
47718
47855
  var $xeMenu = this;
47719
- globalEvents.off($xeMenu, 'resize');
47856
+ var reactData = $xeMenu.reactData;
47857
+ var internalData = $xeMenu.internalData;
47720
47858
  var collapseEl = $xeMenu.$refs.refCollapseElem;
47721
47859
  if (collapseEl) {
47722
47860
  var parentNode = collapseEl.parentNode;
@@ -47724,15 +47862,9 @@ var menu_menus = VxeUI.menus,
47724
47862
  parentNode.removeChild(collapseEl);
47725
47863
  }
47726
47864
  }
47727
- },
47728
- created: function created() {
47729
- var $xeMenu = this;
47730
- var props = $xeMenu;
47731
- var reactData = $xeMenu.reactData;
47732
- reactData.initialized = !!props.collapsed;
47733
- reactData.activeName = props.value;
47734
- $xeMenu.updateMenuConfig();
47735
- $xeMenu.updateActiveMenu(true);
47865
+ globalEvents.off($xeMenu, 'resize');
47866
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(reactData, menu_createReactData());
47867
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, menu_createInternalData());
47736
47868
  },
47737
47869
  render: function render(h) {
47738
47870
  return this.renderVN(h);