vxe-pc-ui 4.16.9 → 4.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.
Files changed (125) hide show
  1. package/dist/all.esm.js +284 -147
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/checkbox/style.css +1 -0
  5. package/es/checkbox/style.min.css +1 -1
  6. package/es/icon/{iconfont.1783939831164.ttf → iconfont.1784122303243.ttf} +0 -0
  7. package/es/icon/iconfont.1784122303243.woff +0 -0
  8. package/es/icon/iconfont.1784122303243.woff2 +0 -0
  9. package/es/icon/style.css +33 -2
  10. package/es/icon/style.min.css +1 -1
  11. package/{lib/icon/style/iconfont.1783939831164.ttf → es/iconfont.1784122303243.ttf} +0 -0
  12. package/es/iconfont.1784122303243.woff +0 -0
  13. package/es/iconfont.1784122303243.woff2 +0 -0
  14. package/es/language/en-US.js +3 -3
  15. package/es/language/hy-AM.js +3 -3
  16. package/es/language/zh-CN.js +3 -3
  17. package/es/layout-aside/src/layout-aside.js +13 -20
  18. package/es/layout-aside/style.css +1 -3
  19. package/es/layout-aside/style.min.css +1 -1
  20. package/es/menu/src/menu.js +265 -121
  21. package/es/menu/style.css +51 -3
  22. package/es/menu/style.min.css +1 -1
  23. package/es/modal/src/modal.js +2 -2
  24. package/es/radio/style.css +1 -0
  25. package/es/radio/style.min.css +1 -1
  26. package/es/style.css +1 -1
  27. package/es/style.min.css +1 -1
  28. package/es/tree-select/src/tree-select.js +1 -1
  29. package/es/ui/index.js +1 -1
  30. package/es/ui/src/log.js +1 -1
  31. package/es/vxe-checkbox/style.css +1 -0
  32. package/es/vxe-checkbox/style.min.css +1 -1
  33. package/es/vxe-icon/style.css +33 -2
  34. package/es/vxe-icon/style.min.css +1 -1
  35. package/es/vxe-layout-aside/style.css +1 -3
  36. package/es/vxe-layout-aside/style.min.css +1 -1
  37. package/es/vxe-menu/style.css +51 -3
  38. package/es/vxe-menu/style.min.css +1 -1
  39. package/es/vxe-radio/style.css +1 -0
  40. package/es/vxe-radio/style.min.css +1 -1
  41. package/lib/checkbox/style/style.css +1 -0
  42. package/lib/checkbox/style/style.min.css +1 -1
  43. package/lib/{iconfont.1783939831164.ttf → icon/style/iconfont.1784122303243.ttf} +0 -0
  44. package/lib/icon/style/iconfont.1784122303243.woff +0 -0
  45. package/lib/icon/style/iconfont.1784122303243.woff2 +0 -0
  46. package/lib/icon/style/style.css +33 -2
  47. package/lib/icon/style/style.min.css +33 -2
  48. package/{es/iconfont.1783939831164.ttf → lib/iconfont.1784122303243.ttf} +0 -0
  49. package/lib/iconfont.1784122303243.woff +0 -0
  50. package/lib/iconfont.1784122303243.woff2 +0 -0
  51. package/lib/index.umd.js +302 -136
  52. package/lib/index.umd.min.js +1 -1
  53. package/lib/language/en-US.js +3 -3
  54. package/lib/language/en-US.min.js +1 -1
  55. package/lib/language/en-US.umd.js +3 -3
  56. package/lib/language/hy-AM.js +3 -3
  57. package/lib/language/hy-AM.min.js +1 -1
  58. package/lib/language/hy-AM.umd.js +3 -3
  59. package/lib/language/zh-CN.js +3 -3
  60. package/lib/language/zh-CN.min.js +1 -1
  61. package/lib/language/zh-CN.umd.js +3 -3
  62. package/lib/layout-aside/src/layout-aside.js +12 -18
  63. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  64. package/lib/layout-aside/style/style.css +1 -3
  65. package/lib/layout-aside/style/style.min.css +1 -1
  66. package/lib/menu/src/menu.js +283 -116
  67. package/lib/menu/src/menu.min.js +1 -1
  68. package/lib/menu/style/style.css +51 -3
  69. package/lib/menu/style/style.min.css +1 -1
  70. package/lib/modal/src/modal.js +2 -2
  71. package/lib/modal/src/modal.min.js +1 -1
  72. package/lib/radio/style/style.css +1 -0
  73. package/lib/radio/style/style.min.css +1 -1
  74. package/lib/style.css +1 -1
  75. package/lib/style.min.css +1 -1
  76. package/lib/tree-select/src/tree-select.js +1 -1
  77. package/lib/tree-select/src/tree-select.min.js +1 -1
  78. package/lib/ui/index.js +1 -1
  79. package/lib/ui/index.min.js +1 -1
  80. package/lib/ui/src/log.js +1 -1
  81. package/lib/ui/src/log.min.js +1 -1
  82. package/lib/vxe-checkbox/style/style.css +1 -0
  83. package/lib/vxe-checkbox/style/style.min.css +1 -1
  84. package/lib/vxe-icon/style/style.css +33 -2
  85. package/lib/vxe-icon/style/style.min.css +1 -1
  86. package/lib/vxe-layout-aside/style/style.css +1 -3
  87. package/lib/vxe-layout-aside/style/style.min.css +1 -1
  88. package/lib/vxe-menu/style/style.css +51 -3
  89. package/lib/vxe-menu/style/style.min.css +1 -1
  90. package/lib/vxe-radio/style/style.css +1 -0
  91. package/lib/vxe-radio/style/style.min.css +1 -1
  92. package/package.json +2 -2
  93. package/packages/language/en-US.ts +3 -3
  94. package/packages/language/hy-AM.ts +3 -3
  95. package/packages/language/zh-CN.ts +3 -3
  96. package/packages/layout-aside/src/layout-aside.ts +15 -21
  97. package/packages/menu/src/menu.ts +302 -132
  98. package/packages/modal/src/modal.ts +3 -3
  99. package/packages/tree-select/src/tree-select.ts +1 -1
  100. package/styles/components/checkbox.scss +1 -0
  101. package/styles/components/icon.scss +33 -4
  102. package/styles/components/layout-aside.scss +1 -3
  103. package/styles/components/menu.scss +64 -1
  104. package/styles/components/radio.scss +1 -0
  105. package/styles/icon/iconfont.ttf +0 -0
  106. package/styles/icon/iconfont.woff +0 -0
  107. package/styles/icon/iconfont.woff2 +0 -0
  108. package/styles/theme/base.scss +1 -1
  109. package/styles/theme/dark.scss +1 -0
  110. package/styles/theme/light.scss +1 -0
  111. package/styles/variable.scss +2 -1
  112. package/types/components/icon.d.ts +1 -1
  113. package/types/components/layout-aside.d.ts +5 -4
  114. package/types/components/menu.d.ts +65 -17
  115. package/types/components/modal.d.ts +2 -2
  116. package/types/components/table.d.ts +11 -11
  117. package/types/components/toolbar.d.ts +1 -1
  118. package/es/icon/iconfont.1783939831164.woff +0 -0
  119. package/es/icon/iconfont.1783939831164.woff2 +0 -0
  120. package/es/iconfont.1783939831164.woff +0 -0
  121. package/es/iconfont.1783939831164.woff2 +0 -0
  122. package/lib/icon/style/iconfont.1783939831164.woff +0 -0
  123. package/lib/icon/style/iconfont.1783939831164.woff2 +0 -0
  124. package/lib/iconfont.1783939831164.woff +0 -0
  125. package/lib/iconfont.1783939831164.woff2 +0 -0
package/lib/index.umd.js CHANGED
@@ -3346,7 +3346,7 @@ if (typeof window !== 'undefined') {
3346
3346
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
3347
3347
  var es_array_push = __webpack_require__(4114);
3348
3348
  ;// ./node_modules/@vxe-ui/core/es/src/core.js
3349
- const coreVersion = "4.4.17";
3349
+ const coreVersion = "4.4.18";
3350
3350
  const VxeCore = {
3351
3351
  coreVersion,
3352
3352
  uiVersion: '',
@@ -3973,7 +3973,7 @@ function createLog(type, name) {
3973
3973
  return msg;
3974
3974
  };
3975
3975
  }
3976
- const version = "4.4.17";
3976
+ const version = "4.4.18";
3977
3977
  const log = {
3978
3978
  create: createLog,
3979
3979
  warn: createLog('warn', `v${version}`),
@@ -4657,7 +4657,7 @@ function checkDynamic() {
4657
4657
  const {
4658
4658
  log: log_log
4659
4659
  } = VxeUI;
4660
- const uiVersion = `ui v${"4.16.9"}`;
4660
+ const uiVersion = `ui v${"4.16.11"}`;
4661
4661
  function createComponentLog(name) {
4662
4662
  const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
4663
4663
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
@@ -4675,7 +4675,7 @@ const errLog = log_log.create('error', uiVersion);
4675
4675
 
4676
4676
 
4677
4677
 
4678
- const ui_version = "4.16.9";
4678
+ const ui_version = "4.16.11";
4679
4679
  VxeUI.uiVersion = ui_version;
4680
4680
  VxeUI.dynamicApp = dynamicApp;
4681
4681
  function config(options) {
@@ -5448,7 +5448,7 @@ setIcon({
5448
5448
  expError: '导出失败',
5449
5449
  expFilename: '导出_{0}',
5450
5450
  expOriginFilename: '导出_源_{0}',
5451
- customTitle: '列设置',
5451
+ customTitle: '个性化设置',
5452
5452
  customAll: '全部',
5453
5453
  customConfirm: '确认',
5454
5454
  customClose: '关闭',
@@ -5532,7 +5532,7 @@ setIcon({
5532
5532
  search: '搜索'
5533
5533
  },
5534
5534
  custom: {
5535
- cstmTitle: '列设置',
5535
+ cstmTitle: '个性化设置',
5536
5536
  cstmRestore: '恢复默认',
5537
5537
  cstmCancel: '取消',
5538
5538
  cstmConfirm: '确定',
@@ -5658,7 +5658,7 @@ setIcon({
5658
5658
  refresh: '刷新',
5659
5659
  zoomIn: '全屏',
5660
5660
  zoomOut: '还原',
5661
- custom: '列设置',
5661
+ custom: '个性化设置',
5662
5662
  customAll: '全部',
5663
5663
  customConfirm: '确认',
5664
5664
  customRestore: '重置',
@@ -35566,25 +35566,23 @@ const ImagePreview = VxeImagePreview;
35566
35566
  const computeCollapseOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
35567
35567
  return Object.assign({}, getConfig().layoutAside.collapseConfig, props.collapseConfig);
35568
35568
  });
35569
- const computeWrapperWidth = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
35569
+ const computeVarStyle = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
35570
35570
  const {
35571
35571
  width,
35572
- collapsed,
35573
35572
  collapseWidth
35574
35573
  } = props;
35575
- if (collapsed) {
35576
- if (collapseWidth) {
35577
- return toCssUnit(collapseWidth);
35578
- }
35579
- } else {
35580
- if (width) {
35581
- return toCssUnit(width);
35582
- }
35574
+ const stys = {};
35575
+ if (collapseWidth) {
35576
+ stys['--vxe-ui-layout-aside-collapse-width'] = toCssUnit(collapseWidth);
35583
35577
  }
35584
- return '';
35578
+ if (width) {
35579
+ stys['--vxe-ui-layout-aside-default-width'] = toCssUnit(width);
35580
+ }
35581
+ return stys;
35585
35582
  });
35586
35583
  const computeMaps = {
35587
- computeSize
35584
+ computeSize,
35585
+ computeVarStyle
35588
35586
  };
35589
35587
  const $xeLayoutAside = {
35590
35588
  xID,
@@ -35606,12 +35604,11 @@ const ImagePreview = VxeImagePreview;
35606
35604
  Object.assign($xeLayoutAside, layoutAsideMethods, layoutAsidePrivateMethods);
35607
35605
  const renderVN = () => {
35608
35606
  const {
35609
- width,
35610
35607
  collapsed,
35611
35608
  loading,
35612
35609
  padding
35613
35610
  } = props;
35614
- const wrapperWidth = computeWrapperWidth.value;
35611
+ const varStyle = computeVarStyle.value;
35615
35612
  const vSize = computeSize.value;
35616
35613
  const collapseOpts = computeCollapseOpts.value;
35617
35614
  const defaultSlot = slots.default;
@@ -35621,13 +35618,10 @@ const ImagePreview = VxeImagePreview;
35621
35618
  [`size--${vSize}`]: vSize,
35622
35619
  'is--animat': collapseOpts.animation !== false,
35623
35620
  'is--padding': padding,
35624
- 'is--default-width': !width,
35625
35621
  'is--collapse': collapsed,
35626
35622
  'is--loading': loading
35627
35623
  }],
35628
- style: wrapperWidth ? {
35629
- width: wrapperWidth
35630
- } : null
35624
+ style: varStyle
35631
35625
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
35632
35626
  class: 'vxe-layout-aside--inner'
35633
35627
  }, defaultSlot ? defaultSlot({}) : []),
@@ -36210,6 +36204,10 @@ const {
36210
36204
  } = VxeUI;
36211
36205
  function menu_createInternalData() {
36212
36206
  return {
36207
+ lastActiveTime: 0,
36208
+ menuInitMaps: {},
36209
+ menuCacheMaps: {},
36210
+ menuKeyMaps: {},
36213
36211
  menuEffectMaps: {}
36214
36212
  };
36215
36213
  }
@@ -36230,10 +36228,19 @@ let nemuUniqueKey = 100000000;
36230
36228
  props: {
36231
36229
  modelValue: [String, Number],
36232
36230
  expandAll: Boolean,
36231
+ expandKeys: Array,
36233
36232
  accordion: {
36234
36233
  type: Boolean,
36235
36234
  default: () => menu_getConfig().menu.accordion
36236
36235
  },
36236
+ border: {
36237
+ type: [Boolean, String],
36238
+ default: () => menu_getConfig().menu.border
36239
+ },
36240
+ optionProps: {
36241
+ type: Object,
36242
+ default: () => menu_getConfig().menu.optionProps
36243
+ },
36237
36244
  collapsed: {
36238
36245
  type: Boolean,
36239
36246
  default: null
@@ -36271,6 +36278,38 @@ let nemuUniqueKey = 100000000;
36271
36278
  const computeMenuOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
36272
36279
  return Object.assign({}, menu_getConfig().menu.menuConfig, props.menuConfig);
36273
36280
  });
36281
+ const computePropsOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
36282
+ return Object.assign({}, menu_getConfig().menu.optionProps, props.optionProps);
36283
+ });
36284
+ const computeTitleField = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
36285
+ const propsOpts = computePropsOpts.value;
36286
+ return propsOpts.title || 'title';
36287
+ });
36288
+ const computeKeyField = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
36289
+ const propsOpts = computePropsOpts.value;
36290
+ return propsOpts.name || 'name';
36291
+ });
36292
+ const computeChildrenField = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
36293
+ const propsOpts = computePropsOpts.value;
36294
+ return propsOpts.children || 'children';
36295
+ });
36296
+ const computeLinkUrlField = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
36297
+ const propsOpts = computePropsOpts.value;
36298
+ return propsOpts.linkUrl || 'href';
36299
+ });
36300
+ const computeRouterLinkField = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
36301
+ const propsOpts = computePropsOpts.value;
36302
+ return propsOpts.routerLink || 'routerLink';
36303
+ });
36304
+ const computeCurrBorder = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
36305
+ const {
36306
+ border
36307
+ } = props;
36308
+ if (border) {
36309
+ return border === true ? 'first-group' : border;
36310
+ }
36311
+ return '';
36312
+ });
36274
36313
  const computeIsCollapsed = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
36275
36314
  const {
36276
36315
  collapsed
@@ -36283,19 +36322,15 @@ let nemuUniqueKey = 100000000;
36283
36322
  }
36284
36323
  return false;
36285
36324
  });
36286
- const computeCollapseWidth = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
36287
- let collapseWidth = '';
36288
- if ($xeLayoutAside) {
36289
- collapseWidth = $xeLayoutAside.props.collapseWidth || '';
36290
- }
36291
- return collapseWidth;
36292
- });
36293
- const computeCollapseEnterWidth = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
36294
- let width = '';
36325
+ const computeVarStyle = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
36295
36326
  if ($xeLayoutAside) {
36296
- width = $xeLayoutAside.props.width || '';
36327
+ const {
36328
+ computeVarStyle: asideComputeVarStyle
36329
+ } = $xeLayoutAside.getComputeMaps();
36330
+ const asideVarStyle = asideComputeVarStyle.value;
36331
+ return asideVarStyle;
36297
36332
  }
36298
- return width;
36333
+ return {};
36299
36334
  });
36300
36335
  const computeMaps = {
36301
36336
  computeSize
@@ -36305,6 +36340,7 @@ let nemuUniqueKey = 100000000;
36305
36340
  props,
36306
36341
  context,
36307
36342
  reactData,
36343
+ internalData,
36308
36344
  getRefMaps: () => refMaps,
36309
36345
  getComputeMaps: () => computeMaps
36310
36346
  };
@@ -36320,12 +36356,16 @@ let nemuUniqueKey = 100000000;
36320
36356
  const {
36321
36357
  activeName
36322
36358
  } = reactData;
36323
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(reactData.menuList, (item, index, items, path, parent, nodes) => {
36359
+ const {
36360
+ menuInitMaps
36361
+ } = internalData;
36362
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(reactData.menuList, (item, index, items, path, parentItem, nodes) => {
36324
36363
  if (item.itemKey === activeName) {
36325
36364
  nodes.forEach(obj => {
36326
36365
  obj.isActive = true;
36327
36366
  if (isDefExpand) {
36328
36367
  obj.isExpand = true;
36368
+ menuInitMaps[obj.itemId] = true;
36329
36369
  }
36330
36370
  });
36331
36371
  item.isExactActive = true;
@@ -36340,25 +36380,66 @@ let nemuUniqueKey = 100000000;
36340
36380
  const updateMenuConfig = () => {
36341
36381
  const {
36342
36382
  options,
36343
- expandAll
36383
+ expandAll,
36384
+ expandKeys
36344
36385
  } = props;
36345
- reactData.menuList = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().mapTree(options, (item, index, items, path, parent) => {
36386
+ const muInitMaps = {};
36387
+ const titleField = computeTitleField.value;
36388
+ const keyField = computeKeyField.value;
36389
+ const childrenField = computeChildrenField.value;
36390
+ const linkUrlField = computeLinkUrlField.value;
36391
+ const routerLinkField = computeRouterLinkField.value;
36392
+ const defaultExpandMaps = {};
36393
+ if (expandKeys) {
36394
+ expandKeys.forEach(key => {
36395
+ defaultExpandMaps[key] = true;
36396
+ });
36397
+ }
36398
+ const muCacheMaps = {};
36399
+ const muKeyMaps = {};
36400
+ reactData.menuList = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().mapTree(options, (item, index, items, path, parentItem) => {
36401
+ const itemId = ++nemuUniqueKey;
36402
+ const itemKey = item[keyField] || path.join(',');
36403
+ const childList = item[childrenField];
36404
+ const hasChild = childList && childList.length > 0;
36405
+ const isExpand = hasChild ? external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(item.expanded) ? item.expanded : defaultExpandMaps[itemKey] || !!expandAll : false;
36406
+ if (isExpand) {
36407
+ muInitMaps[itemId] = true;
36408
+ }
36346
36409
  const objItem = {
36347
- ...item,
36348
- parentKey: parent ? parent.name || path.slice(0, path.length - 1).join(',') : '',
36410
+ itemConf: item,
36411
+ title: item[titleField],
36412
+ name: item[keyField],
36413
+ icon: item.icon,
36414
+ linkUrl: item[linkUrlField],
36415
+ linkTarget: item.linkTarget,
36416
+ routerLink: item[routerLinkField],
36417
+ permissionCode: item.permissionCode,
36418
+ children: childList,
36419
+ slots: item.slots,
36420
+ parentKey: parentItem ? parentItem.name || path.slice(0, path.length - 1).join(',') : '',
36349
36421
  level: path.length,
36350
- itemId: ++nemuUniqueKey,
36351
- itemKey: item.name || path.join(','),
36422
+ itemId,
36423
+ itemKey,
36352
36424
  isExactActive: false,
36353
36425
  isActive: false,
36354
- isExpand: external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(item.expanded) ? item.expanded : !!expandAll,
36355
- hasChild: item.children && item.children.length > 0
36426
+ isExpand,
36427
+ hasChild,
36428
+ childList: []
36356
36429
  };
36430
+ if (muKeyMaps[itemKey]) {
36431
+ menu_errLog('vxe.error.repeatKey', [keyField, item[keyField]]);
36432
+ }
36433
+ muCacheMaps[itemId] = objItem;
36434
+ muKeyMaps[itemKey] = objItem;
36357
36435
  return objItem;
36358
36436
  }, {
36359
36437
  children: 'children',
36360
36438
  mapChildren: 'childList'
36361
36439
  });
36440
+ internalData.menuInitMaps = muInitMaps;
36441
+ internalData.menuCacheMaps = muCacheMaps;
36442
+ internalData.menuKeyMaps = muKeyMaps;
36362
36443
  };
36363
36444
  const updateCollapseStyle = () => {
36364
36445
  const {
@@ -36366,12 +36447,7 @@ let nemuUniqueKey = 100000000;
36366
36447
  } = props;
36367
36448
  if (collapseFixed) {
36368
36449
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => {
36369
- const {
36370
- isEnterCollapse
36371
- } = reactData;
36372
36450
  const isCollapsed = computeIsCollapsed.value;
36373
- const collapseEnterWidth = computeCollapseEnterWidth.value;
36374
- const collapseWidth = computeCollapseWidth.value;
36375
36451
  const el = refElem.value;
36376
36452
  if (el) {
36377
36453
  const clientRect = el.getBoundingClientRect();
@@ -36380,7 +36456,6 @@ let nemuUniqueKey = 100000000;
36380
36456
  top: toCssUnit(clientRect.top),
36381
36457
  left: toCssUnit(clientRect.left),
36382
36458
  height: toCssUnit(parentNode.clientHeight),
36383
- width: isEnterCollapse ? collapseEnterWidth ? toCssUnit(collapseEnterWidth) : '' : collapseWidth ? toCssUnit(collapseWidth) : '',
36384
36459
  zIndex: reactData.collapseZindex
36385
36460
  } : {};
36386
36461
  }
@@ -36399,12 +36474,6 @@ let nemuUniqueKey = 100000000;
36399
36474
  if (isCollapsed) {
36400
36475
  if (!initialized) {
36401
36476
  reactData.initialized = true;
36402
- (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => {
36403
- const collapseEl = refCollapseElem.value;
36404
- if (collapseEl) {
36405
- document.body.appendChild(collapseEl);
36406
- }
36407
- });
36408
36477
  }
36409
36478
  }
36410
36479
  reactData.isEnterCollapse = false;
@@ -36417,7 +36486,8 @@ let nemuUniqueKey = 100000000;
36417
36486
  accordion
36418
36487
  } = props;
36419
36488
  const {
36420
- menuEffectMaps
36489
+ menuEffectMaps,
36490
+ menuInitMaps
36421
36491
  } = internalData;
36422
36492
  const {
36423
36493
  itemId,
@@ -36440,6 +36510,7 @@ let nemuUniqueKey = 100000000;
36440
36510
  });
36441
36511
  }
36442
36512
  item.isExpand = expanded;
36513
+ menuInitMaps[itemId] = true;
36443
36514
  const wrapperEl = isCollapsed ? refCollapseElem.value : refElem.value;
36444
36515
  if (wrapperEl) {
36445
36516
  const nemuEl = wrapperEl.querySelector(`.vxe-menu--item-wrapper[data-menu-id="${itemId}"]`);
@@ -36484,7 +36555,8 @@ let nemuUniqueKey = 100000000;
36484
36555
  if (!visibleMethod || visibleMethod({
36485
36556
  $menu: $xeMenu,
36486
36557
  options,
36487
- currentMenu: item
36558
+ currentMenu: item,
36559
+ currentOption: item.itemConf
36488
36560
  })) {
36489
36561
  if (VxeUI.contextMenu) {
36490
36562
  VxeUI.contextMenu.openByEvent(evnt, {
@@ -36499,6 +36571,7 @@ let nemuUniqueKey = 100000000;
36499
36571
  const params = {
36500
36572
  menu: option,
36501
36573
  currentMenu: item,
36574
+ currentOption: item.itemConf,
36502
36575
  $event: evnt,
36503
36576
  $menu: $xeMenu
36504
36577
  };
@@ -36519,22 +36592,27 @@ let nemuUniqueKey = 100000000;
36519
36592
  const handleClickMenu = (evnt, item, itemList) => {
36520
36593
  const {
36521
36594
  itemKey,
36595
+ linkUrl,
36522
36596
  routerLink,
36523
36597
  hasChild
36524
36598
  } = item;
36525
- if (routerLink) {
36599
+ if (linkUrl || routerLink) {
36526
36600
  emitModel(itemKey);
36527
- handleMenuMouseleave();
36601
+ reactData.isEnterCollapse = false;
36602
+ internalData.lastActiveTime = Date.now();
36528
36603
  } else {
36529
36604
  if (hasChild) {
36530
36605
  handleClickIconCollapse(evnt, item, itemList);
36531
36606
  } else {
36532
36607
  emitModel(itemKey);
36533
- handleMenuMouseleave();
36608
+ reactData.isEnterCollapse = false;
36609
+ internalData.lastActiveTime = Date.now();
36534
36610
  }
36535
36611
  }
36536
36612
  const params = {
36537
36613
  currentMenu: item,
36614
+ currentOption: item.itemConf,
36615
+ option: item.itemConf,
36538
36616
  // 已废弃
36539
36617
  menu: item
36540
36618
  };
@@ -36542,30 +36620,13 @@ let nemuUniqueKey = 100000000;
36542
36620
  };
36543
36621
  const handleMenuMouseenter = () => {
36544
36622
  const {
36545
- collapseStyle
36546
- } = reactData;
36547
- const collapseEnterWidth = computeCollapseEnterWidth.value;
36548
- reactData.collapseStyle = Object.assign({}, collapseStyle, {
36549
- width: collapseEnterWidth ? toCssUnit(collapseEnterWidth) : ''
36550
- });
36551
- reactData.isEnterCollapse = true;
36552
- };
36553
- const handleMenuMouseover = () => {
36554
- const {
36555
- isEnterCollapse
36556
- } = reactData;
36557
- if (!isEnterCollapse) {
36558
- handleMenuMouseenter();
36623
+ lastActiveTime
36624
+ } = internalData;
36625
+ if (lastActiveTime < Date.now() - 500) {
36626
+ reactData.isEnterCollapse = true;
36559
36627
  }
36560
36628
  };
36561
36629
  const handleMenuMouseleave = () => {
36562
- const {
36563
- collapseStyle
36564
- } = reactData;
36565
- const el = refElem.value;
36566
- reactData.collapseStyle = Object.assign({}, collapseStyle, {
36567
- width: el ? toCssUnit(el.offsetWidth) : ''
36568
- });
36569
36630
  reactData.isEnterCollapse = false;
36570
36631
  };
36571
36632
  const callSlot = (slotFunc, params) => {
@@ -36584,8 +36645,84 @@ let nemuUniqueKey = 100000000;
36584
36645
  $menu: $xeMenu
36585
36646
  }, params));
36586
36647
  };
36648
+ const handleScrollToView = itemId => {
36649
+ const wrapperEl = refElem.value;
36650
+ const nemuEl = wrapperEl ? wrapperEl.querySelector(`.vxe-menu--item-wrapper[data-menu-id="${itemId}"]`) : null;
36651
+ if (nemuEl) {
36652
+ scrollToView(nemuEl);
36653
+ return true;
36654
+ }
36655
+ return false;
36656
+ };
36587
36657
  const menuMethods = {
36588
- dispatchEvent
36658
+ dispatchEvent,
36659
+ setExpandByMenuKey(menuKeys, expanded) {
36660
+ const {
36661
+ menuKeyMaps,
36662
+ menuInitMaps
36663
+ } = internalData;
36664
+ if (menuKeys) {
36665
+ if (!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isArray(menuKeys)) {
36666
+ menuKeys = [menuKeys];
36667
+ }
36668
+ menuKeys.forEach(mKey => {
36669
+ const menuItem = menuKeyMaps[mKey];
36670
+ if (menuItem) {
36671
+ if (expanded) {
36672
+ menuInitMaps[menuItem.itemId] = true;
36673
+ }
36674
+ menuItem.isExpand = !!expanded;
36675
+ }
36676
+ });
36677
+ }
36678
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
36679
+ },
36680
+ clearAllExpandMenu() {
36681
+ const {
36682
+ menuList
36683
+ } = reactData;
36684
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(menuList, item => {
36685
+ item.isExpand = false;
36686
+ }, {
36687
+ children: 'childList'
36688
+ });
36689
+ internalData.menuInitMaps = {};
36690
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
36691
+ },
36692
+ scrollToMenuKey(menuKey) {
36693
+ const {
36694
+ menuKeyMaps
36695
+ } = internalData;
36696
+ const menuItem = menuKeyMaps[menuKey];
36697
+ if (!menuItem) {
36698
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
36699
+ }
36700
+ const {
36701
+ itemId
36702
+ } = menuItem;
36703
+ if (handleScrollToView(itemId)) {
36704
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
36705
+ }
36706
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
36707
+ handleScrollToView(itemId);
36708
+ });
36709
+ },
36710
+ scrollToActiveMenu() {
36711
+ const {
36712
+ activeName
36713
+ } = reactData;
36714
+ if (activeName) {
36715
+ return $xeMenu.scrollToMenuKey(activeName);
36716
+ }
36717
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
36718
+ const {
36719
+ activeName
36720
+ } = reactData;
36721
+ if (activeName) {
36722
+ return $xeMenu.scrollToMenuKey(activeName);
36723
+ }
36724
+ });
36725
+ }
36589
36726
  };
36590
36727
  const menuPrivateMethods = {};
36591
36728
  Object.assign($xeMenu, menuMethods, menuPrivateMethods);
@@ -36603,9 +36740,9 @@ let nemuUniqueKey = 100000000;
36603
36740
  const isCollapsed = computeIsCollapsed.value;
36604
36741
  const params = {
36605
36742
  currentMenu: item,
36606
- collapsed: isCollapsed,
36607
- // 已废弃
36608
- option: item
36743
+ currentOption: item.itemConf,
36744
+ option: item.itemConf,
36745
+ collapsed: isCollapsed
36609
36746
  };
36610
36747
  return [optionSlot ? renderEmptyElement($xeMenu) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36611
36748
  class: 'vxe-menu--item-link-icon'
@@ -36634,48 +36771,59 @@ let nemuUniqueKey = 100000000;
36634
36771
  isActive,
36635
36772
  isExactActive,
36636
36773
  isExpand,
36774
+ linkUrl,
36637
36775
  routerLink,
36776
+ linkTarget,
36638
36777
  childList
36639
36778
  } = item;
36640
36779
  const {
36641
36780
  isEnterCollapse
36642
36781
  } = reactData;
36782
+ const {
36783
+ menuInitMaps
36784
+ } = internalData;
36643
36785
  const isCollapsed = computeIsCollapsed.value;
36644
36786
  if (item.permissionCode) {
36645
36787
  if (!permission.checkVisible(item.permissionCode)) {
36646
36788
  return renderEmptyElement($xeMenu);
36647
36789
  }
36648
36790
  }
36791
+ const isExpandChild = (!isCollapsed || isEnterCollapse) && isExpand;
36792
+ const linkOns = {
36793
+ onContextmenu(evnt) {
36794
+ handleContextmenuEvent(evnt, item);
36795
+ },
36796
+ onClick(evnt) {
36797
+ handleClickMenu(evnt, item, itemList);
36798
+ }
36799
+ };
36649
36800
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36650
36801
  key: itemKey,
36651
36802
  class: ['vxe-menu--item-wrapper', `vxe-menu--item-level${level}`, {
36803
+ 'has--child': hasChild,
36652
36804
  'is--exact-active': isExactActive,
36653
36805
  'is--active': isActive,
36654
- 'is--expand': (!isCollapsed || isEnterCollapse) && isExpand
36806
+ 'is--expand': isExpandChild
36655
36807
  }],
36656
36808
  'data-menu-id': itemId
36657
- }, [routerLink ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)('router-link'), {
36658
- class: 'vxe-menu--item-link',
36809
+ }, [linkUrl ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('a', {
36810
+ class: 'vxe-menu--item-link is--link',
36811
+ href: linkUrl,
36812
+ target: linkTarget,
36813
+ ...linkOns
36814
+ }, renderMenuTitle(item, itemList)) : routerLink ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)('router-link'), {
36815
+ class: 'vxe-menu--item-link is--router',
36659
36816
  to: routerLink,
36660
- onContextmenu(evnt) {
36661
- handleContextmenuEvent(evnt, item);
36662
- },
36663
- onClick(evnt) {
36664
- handleClickMenu(evnt, item, itemList);
36665
- }
36817
+ target: linkTarget,
36818
+ ...linkOns
36666
36819
  }, {
36667
36820
  default: () => renderMenuTitle(item, itemList)
36668
36821
  }) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36669
- class: 'vxe-menu--item-link',
36670
- onContextmenu(evnt) {
36671
- handleContextmenuEvent(evnt, item);
36672
- },
36673
- onClick(evnt) {
36674
- handleClickMenu(evnt, item, itemList);
36675
- }
36822
+ class: 'vxe-menu--item-link is--default',
36823
+ ...linkOns
36676
36824
  }, renderMenuTitle(item, itemList)), hasChild ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36677
36825
  class: 'vxe-menu--item-group'
36678
- }, childList.map(child => renderDefaultChildren(child, childList))) : renderEmptyElement($xeMenu)]);
36826
+ }, isExpandChild || menuInitMaps[itemId] ? childList.map(child => renderDefaultChildren(child, childList)) : []) : renderEmptyElement($xeMenu)]);
36679
36827
  };
36680
36828
  const renderCollapseChildren = (item, itemList) => {
36681
36829
  const {
@@ -36686,6 +36834,8 @@ let nemuUniqueKey = 100000000;
36686
36834
  isActive,
36687
36835
  isExactActive,
36688
36836
  routerLink,
36837
+ linkUrl,
36838
+ linkTarget,
36689
36839
  childList
36690
36840
  } = item;
36691
36841
  if (item.permissionCode) {
@@ -36693,32 +36843,37 @@ let nemuUniqueKey = 100000000;
36693
36843
  return renderEmptyElement($xeMenu);
36694
36844
  }
36695
36845
  }
36846
+ const linkOns = {
36847
+ onContextmenu(evnt) {
36848
+ handleContextmenuEvent(evnt, item);
36849
+ },
36850
+ onClick(evnt) {
36851
+ handleClickMenu(evnt, item, itemList);
36852
+ }
36853
+ };
36696
36854
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36697
36855
  key: itemKey,
36698
36856
  class: ['vxe-menu--item-wrapper', `vxe-menu--item-level${level}`, {
36857
+ 'has--child': hasChild,
36699
36858
  'is--exact-active': isExactActive,
36700
36859
  'is--active': isActive
36701
36860
  }],
36702
36861
  'data-menu-id': itemId
36703
- }, [routerLink ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)('router-link'), {
36704
- class: 'vxe-menu--item-link',
36862
+ }, [linkUrl ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('a', {
36863
+ class: 'vxe-menu--item-link is--link',
36864
+ href: linkUrl,
36865
+ target: linkTarget,
36866
+ ...linkOns
36867
+ }, renderMenuTitle(item, itemList)) : routerLink ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)('router-link'), {
36868
+ class: 'vxe-menu--item-link is--router',
36705
36869
  to: routerLink,
36706
- onContextmenu(evnt) {
36707
- handleContextmenuEvent(evnt, item);
36708
- },
36709
- onClick(evnt) {
36710
- handleClickMenu(evnt, item, itemList);
36711
- }
36870
+ target: linkTarget,
36871
+ ...linkOns
36712
36872
  }, {
36713
36873
  default: () => renderMenuTitle(item, itemList)
36714
36874
  }) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36715
- class: 'vxe-menu--item-link',
36716
- onContextmenu(evnt) {
36717
- handleContextmenuEvent(evnt, item);
36718
- },
36719
- onClick(evnt) {
36720
- handleClickMenu(evnt, item, itemList);
36721
- }
36875
+ class: 'vxe-menu--item-link is--default',
36876
+ ...linkOns
36722
36877
  }, renderMenuTitle(item, itemList)), hasChild ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36723
36878
  class: 'vxe-menu--item-group'
36724
36879
  }, childList.map(child => renderDefaultChildren(child, childList))) : renderEmptyElement($xeMenu)]);
@@ -36736,24 +36891,38 @@ let nemuUniqueKey = 100000000;
36736
36891
  } = reactData;
36737
36892
  const vSize = computeSize.value;
36738
36893
  const isCollapsed = computeIsCollapsed.value;
36894
+ const currBorder = computeCurrBorder.value;
36895
+ const varStyle = computeVarStyle.value;
36896
+ const headerSlot = slots.header;
36897
+ const footerSlot = slots.footer;
36739
36898
  let ons = {};
36740
36899
  if (collapseFixed) {
36741
36900
  ons = {
36742
36901
  onMouseenter: handleMenuMouseenter,
36743
- onMouseover: handleMenuMouseover,
36744
36902
  onMouseleave: handleMenuMouseleave
36745
36903
  };
36746
36904
  }
36905
+ const stParams = {
36906
+ collapsed: isCollapsed
36907
+ };
36747
36908
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36748
36909
  ref: refElem,
36749
36910
  class: ['vxe-menu', {
36911
+ [`border--${currBorder}`]: currBorder,
36750
36912
  [`size--${vSize}`]: vSize,
36751
36913
  'is--collapsed': isCollapsed,
36752
36914
  'is--loading': loading
36753
36915
  }]
36916
+ }, [headerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36917
+ class: 'vxe-menu--header'
36918
+ }, headerSlot(stParams)) : renderEmptyElement($xeMenu), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36919
+ class: 'vxe-menu--body'
36920
+ }, menuList.map(child => isCollapsed ? renderCollapseChildren(child, menuList) : renderDefaultChildren(child, menuList))), footerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36921
+ class: 'vxe-menu--footer'
36922
+ }, footerSlot(stParams)) : renderEmptyElement($xeMenu), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(external_commonjs_vue_commonjs2_vue_root_Vue_.Teleport, {
36923
+ to: 'body',
36924
+ disabled: !initialized
36754
36925
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36755
- class: 'vxe-menu--item-list'
36756
- }, menuList.map(child => isCollapsed ? renderCollapseChildren(child, menuList) : renderDefaultChildren(child, menuList))), initialized ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36757
36926
  ref: refCollapseElem,
36758
36927
  class: ['vxe-menu--collapse-wrapper', {
36759
36928
  [`size--${vSize}`]: vSize,
@@ -36761,11 +36930,15 @@ let nemuUniqueKey = 100000000;
36761
36930
  'is--enter': isEnterCollapse,
36762
36931
  'is--loading': loading
36763
36932
  }],
36764
- style: collapseStyle,
36933
+ style: Object.assign({}, varStyle, collapseStyle),
36765
36934
  ...ons
36766
- }, [isCollapsed ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36767
- class: 'vxe-menu--item-list'
36768
- }, menuList.map(child => renderDefaultChildren(child, menuList))) : renderEmptyElement($xeMenu)]) : renderEmptyElement($xeMenu),
36935
+ }, isCollapsed ? [headerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36936
+ class: 'vxe-menu--header'
36937
+ }, headerSlot(stParams)) : renderEmptyElement($xeMenu), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36938
+ class: 'vxe-menu--body'
36939
+ }, menuList.map(child => renderDefaultChildren(child, menuList))), footerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
36940
+ class: 'vxe-menu--footer'
36941
+ }, footerSlot(stParams)) : renderEmptyElement($xeMenu)] : [])]),
36769
36942
  /**
36770
36943
  * 加载中
36771
36944
  */
@@ -36806,13 +36979,6 @@ let nemuUniqueKey = 100000000;
36806
36979
  updateCollapseStyle();
36807
36980
  });
36808
36981
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onBeforeUnmount)(() => {
36809
- const collapseEl = refCollapseElem.value;
36810
- if (collapseEl) {
36811
- const parentNode = collapseEl.parentNode;
36812
- if (parentNode) {
36813
- parentNode.removeChild(collapseEl);
36814
- }
36815
- }
36816
36982
  globalEvents.off($xeMenu, 'resize');
36817
36983
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(reactData, menu_createReactData());
36818
36984
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().assign(internalData, menu_createInternalData());
@@ -37188,12 +37354,12 @@ const lockScrollCssWidthKey = '--vxe-ui-modal-lock-scroll-view-width';
37188
37354
  let posTop = '';
37189
37355
  let posLeft = '';
37190
37356
  if (left && !leftCenter) {
37191
- posLeft = isNaN(left) ? left : `${left}px`;
37357
+ posLeft = toCssUnit(left);
37192
37358
  } else {
37193
37359
  posLeft = `${Math.max(marginSize, clientVisibleWidth / 2 - boxElem.offsetWidth / 2)}px`;
37194
37360
  }
37195
37361
  if (top && !topCenter) {
37196
- posTop = isNaN(top) ? top : `${top}px`;
37362
+ posTop = toCssUnit(top);
37197
37363
  } else {
37198
37364
  posTop = `${Math.max(marginSize, clientVisibleHeight / 2 - boxElem.offsetHeight / 2)}px`;
37199
37365
  }
@@ -53952,7 +54118,7 @@ function tree_select_createInternalData() {
53952
54118
  });
53953
54119
  });
53954
54120
  const computePropsOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53955
- return props.optionProps || {};
54121
+ return Object.assign({}, getConfig().treeSelect.optionProps, props.optionProps);
53956
54122
  });
53957
54123
  const computeNodeKeyField = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
53958
54124
  const treeOpts = computeTreeOpts.value;