vxe-pc-ui 4.14.22 → 4.14.24

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 (150) hide show
  1. package/dist/all.esm.js +52 -24
  2. package/es/date-panel/src/date-panel.js +5 -2
  3. package/es/date-picker/src/date-picker.js +5 -1
  4. package/es/language/ar-EG.js +4 -0
  5. package/es/language/de-DE.js +4 -0
  6. package/es/language/en-US.js +4 -0
  7. package/es/language/es-ES.js +4 -0
  8. package/es/language/fr-FR.js +4 -0
  9. package/es/language/hu-HU.js +4 -0
  10. package/es/language/hy-AM.js +4 -0
  11. package/es/language/id-ID.js +4 -0
  12. package/es/language/it-IT.js +4 -0
  13. package/es/language/ja-JP.js +4 -0
  14. package/es/language/ko-KR.js +4 -0
  15. package/es/language/ms-MY.js +4 -0
  16. package/es/language/nb-NO.js +4 -0
  17. package/es/language/pt-BR.js +4 -0
  18. package/es/language/ru-RU.js +4 -0
  19. package/es/language/th-TH.js +4 -0
  20. package/es/language/ug-CN.js +4 -0
  21. package/es/language/uk-UA.js +4 -0
  22. package/es/language/uz-UZ.js +4 -0
  23. package/es/language/vi-VN.js +4 -0
  24. package/es/language/zh-CHT.js +4 -0
  25. package/es/language/zh-CN.js +4 -0
  26. package/es/tree/src/tree.js +17 -13
  27. package/es/tree-select/src/tree-select.js +19 -6
  28. package/es/ui/index.js +1 -1
  29. package/es/ui/src/log.js +1 -1
  30. package/lib/date-panel/src/date-panel.js +6 -2
  31. package/lib/date-panel/src/date-panel.min.js +1 -1
  32. package/lib/date-picker/src/date-picker.js +5 -1
  33. package/lib/date-picker/src/date-picker.min.js +1 -1
  34. package/lib/index.umd.js +64 -29
  35. package/lib/index.umd.min.js +1 -1
  36. package/lib/language/ar-EG.js +4 -0
  37. package/lib/language/ar-EG.min.js +1 -1
  38. package/lib/language/ar-EG.umd.js +4 -0
  39. package/lib/language/de-DE.js +4 -0
  40. package/lib/language/de-DE.min.js +1 -1
  41. package/lib/language/de-DE.umd.js +4 -0
  42. package/lib/language/en-US.js +4 -0
  43. package/lib/language/en-US.min.js +1 -1
  44. package/lib/language/en-US.umd.js +4 -0
  45. package/lib/language/es-ES.js +4 -0
  46. package/lib/language/es-ES.min.js +1 -1
  47. package/lib/language/es-ES.umd.js +4 -0
  48. package/lib/language/fr-FR.js +4 -0
  49. package/lib/language/fr-FR.min.js +1 -1
  50. package/lib/language/fr-FR.umd.js +4 -0
  51. package/lib/language/hu-HU.js +4 -0
  52. package/lib/language/hu-HU.min.js +1 -1
  53. package/lib/language/hu-HU.umd.js +4 -0
  54. package/lib/language/hy-AM.js +4 -0
  55. package/lib/language/hy-AM.min.js +1 -1
  56. package/lib/language/hy-AM.umd.js +4 -0
  57. package/lib/language/id-ID.js +4 -0
  58. package/lib/language/id-ID.min.js +1 -1
  59. package/lib/language/id-ID.umd.js +4 -0
  60. package/lib/language/it-IT.js +4 -0
  61. package/lib/language/it-IT.min.js +1 -1
  62. package/lib/language/it-IT.umd.js +4 -0
  63. package/lib/language/ja-JP.js +4 -0
  64. package/lib/language/ja-JP.min.js +1 -1
  65. package/lib/language/ja-JP.umd.js +4 -0
  66. package/lib/language/ko-KR.js +4 -0
  67. package/lib/language/ko-KR.min.js +1 -1
  68. package/lib/language/ko-KR.umd.js +4 -0
  69. package/lib/language/ms-MY.js +4 -0
  70. package/lib/language/ms-MY.min.js +1 -1
  71. package/lib/language/ms-MY.umd.js +4 -0
  72. package/lib/language/nb-NO.js +4 -0
  73. package/lib/language/nb-NO.min.js +1 -1
  74. package/lib/language/nb-NO.umd.js +4 -0
  75. package/lib/language/pt-BR.js +4 -0
  76. package/lib/language/pt-BR.min.js +1 -1
  77. package/lib/language/pt-BR.umd.js +4 -0
  78. package/lib/language/ru-RU.js +4 -0
  79. package/lib/language/ru-RU.min.js +1 -1
  80. package/lib/language/ru-RU.umd.js +4 -0
  81. package/lib/language/th-TH.js +4 -0
  82. package/lib/language/th-TH.min.js +1 -1
  83. package/lib/language/th-TH.umd.js +4 -0
  84. package/lib/language/ug-CN.js +4 -0
  85. package/lib/language/ug-CN.min.js +1 -1
  86. package/lib/language/ug-CN.umd.js +4 -0
  87. package/lib/language/uk-UA.js +4 -0
  88. package/lib/language/uk-UA.min.js +1 -1
  89. package/lib/language/uk-UA.umd.js +4 -0
  90. package/lib/language/uz-UZ.js +4 -0
  91. package/lib/language/uz-UZ.min.js +1 -1
  92. package/lib/language/uz-UZ.umd.js +4 -0
  93. package/lib/language/vi-VN.js +4 -0
  94. package/lib/language/vi-VN.min.js +1 -1
  95. package/lib/language/vi-VN.umd.js +4 -0
  96. package/lib/language/zh-CHT.js +4 -0
  97. package/lib/language/zh-CHT.min.js +1 -1
  98. package/lib/language/zh-CHT.umd.js +4 -0
  99. package/lib/language/zh-CN.js +4 -0
  100. package/lib/language/zh-CN.min.js +1 -1
  101. package/lib/language/zh-CN.umd.js +4 -0
  102. package/lib/tree/src/tree.js +26 -17
  103. package/lib/tree/src/tree.min.js +1 -1
  104. package/lib/tree-select/src/tree-select.js +21 -6
  105. package/lib/tree-select/src/tree-select.min.js +1 -1
  106. package/lib/ui/index.js +1 -1
  107. package/lib/ui/index.min.js +1 -1
  108. package/lib/ui/src/log.js +1 -1
  109. package/lib/ui/src/log.min.js +1 -1
  110. package/package.json +1 -1
  111. package/packages/date-panel/src/date-panel.ts +5 -2
  112. package/packages/date-picker/src/date-picker.ts +8 -3
  113. package/packages/language/ar-EG.ts +4 -0
  114. package/packages/language/de-DE.ts +4 -0
  115. package/packages/language/en-US.ts +4 -0
  116. package/packages/language/es-ES.ts +4 -0
  117. package/packages/language/fr-FR.ts +4 -0
  118. package/packages/language/hu-HU.ts +4 -0
  119. package/packages/language/hy-AM.ts +4 -0
  120. package/packages/language/id-ID.ts +4 -0
  121. package/packages/language/it-IT.ts +4 -0
  122. package/packages/language/ja-JP.ts +4 -0
  123. package/packages/language/ko-KR.ts +4 -0
  124. package/packages/language/ms-MY.ts +4 -0
  125. package/packages/language/nb-NO.ts +4 -0
  126. package/packages/language/pt-BR.ts +4 -0
  127. package/packages/language/ru-RU.ts +4 -0
  128. package/packages/language/th-TH.ts +4 -0
  129. package/packages/language/ug-CN.ts +4 -0
  130. package/packages/language/uk-UA.ts +4 -0
  131. package/packages/language/uz-UZ.ts +4 -0
  132. package/packages/language/vi-VN.ts +4 -0
  133. package/packages/language/zh-CHT.ts +4 -0
  134. package/packages/language/zh-CN.ts +4 -0
  135. package/packages/tree/src/tree.ts +17 -13
  136. package/packages/tree-select/src/tree-select.ts +19 -6
  137. package/types/components/date-panel.d.ts +13 -1
  138. package/types/components/table.d.ts +29 -8
  139. /package/es/icon/{iconfont.1779767616126.ttf → iconfont.1779854999562.ttf} +0 -0
  140. /package/es/icon/{iconfont.1779767616126.woff → iconfont.1779854999562.woff} +0 -0
  141. /package/es/icon/{iconfont.1779767616126.woff2 → iconfont.1779854999562.woff2} +0 -0
  142. /package/es/{iconfont.1779767616126.ttf → iconfont.1779854999562.ttf} +0 -0
  143. /package/es/{iconfont.1779767616126.woff → iconfont.1779854999562.woff} +0 -0
  144. /package/es/{iconfont.1779767616126.woff2 → iconfont.1779854999562.woff2} +0 -0
  145. /package/lib/icon/style/{iconfont.1779767616126.ttf → iconfont.1779854999562.ttf} +0 -0
  146. /package/lib/icon/style/{iconfont.1779767616126.woff → iconfont.1779854999562.woff} +0 -0
  147. /package/lib/icon/style/{iconfont.1779767616126.woff2 → iconfont.1779854999562.woff2} +0 -0
  148. /package/lib/{iconfont.1779767616126.ttf → iconfont.1779854999562.ttf} +0 -0
  149. /package/lib/{iconfont.1779767616126.woff → iconfont.1779854999562.woff} +0 -0
  150. /package/lib/{iconfont.1779767616126.woff2 → iconfont.1779854999562.woff2} +0 -0
package/dist/all.esm.js CHANGED
@@ -80,11 +80,11 @@ function checkDynamic() {
80
80
  }
81
81
  }
82
82
 
83
- const version$1 = `ui v${"4.14.22"}`;
83
+ const version$1 = `ui v${"4.14.24"}`;
84
84
  const warnLog = log.create('warn', version$1);
85
85
  const errLog = log.create('error', version$1);
86
86
 
87
- const version = "4.14.22";
87
+ const version = "4.14.24";
88
88
  VxeUI.uiVersion = version;
89
89
  VxeUI.dynamicApp = dynamicApp;
90
90
  function config(options) {
@@ -981,6 +981,10 @@ var zhCN = {
981
981
  expMergeTitle: '如果存在,则支持带有合并结构的单元格',
982
982
  expOptAllExpand: '展开树',
983
983
  expAllExpandTitle: '如果存在,则支持将带有层级结构的数据全部展开',
984
+ expOptTreeAllExpand: '展开树',
985
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
986
+ expOptRowGroupAllExpand: '展开分组',
987
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
984
988
  expOptUseStyle: '样式',
985
989
  expUseStyleTitle: '如果存在,则支持带样式的单元格',
986
990
  expOptOriginal: '源数据',
@@ -14471,7 +14475,8 @@ var VxeDatePanelComponent = defineVxeComponent({
14471
14475
  'date-prev',
14472
14476
  'date-today',
14473
14477
  'date-next',
14474
- 'confirm'
14478
+ 'confirm',
14479
+ 'revert'
14475
14480
  ],
14476
14481
  setup(props, context) {
14477
14482
  const { emit } = context;
@@ -14979,7 +14984,9 @@ var VxeDatePanelComponent = defineVxeComponent({
14979
14984
  return XEUtils.toStringDate(value, format);
14980
14985
  };
14981
14986
  const dateRevert = () => {
14982
- reactData.inputLabel = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
14987
+ const label = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
14988
+ reactData.inputLabel = label;
14989
+ dispatchEvent('revert', { label }, null);
14983
14990
  };
14984
14991
  const afterCheckValue = (inpVal) => {
14985
14992
  const { type } = props;
@@ -16594,6 +16601,9 @@ var VxeDatePickerComponent = defineVxeComponent({
16594
16601
  const panelConfirmEvent = (params) => {
16595
16602
  dispatchEvent('confirm', params, params.$event);
16596
16603
  };
16604
+ const panelRevertEvent = (params) => {
16605
+ reactData.inputLabel = params.label;
16606
+ };
16597
16607
  // 全局事件
16598
16608
  const handleGlobalMousedownEvent = (evnt) => {
16599
16609
  const $datePanel = refDatePanel.value;
@@ -16943,7 +16953,8 @@ var VxeDatePickerComponent = defineVxeComponent({
16943
16953
  disabledMethod: props.disabledMethod,
16944
16954
  selectDay: props.selectDay,
16945
16955
  onChange: panelChangeEvent,
16946
- onConfirm: panelConfirmEvent
16956
+ onConfirm: panelConfirmEvent,
16957
+ onRevert: panelRevertEvent
16947
16958
  })
16948
16959
  ]),
16949
16960
  h('div', {
@@ -37053,19 +37064,20 @@ var VxeTreeComponent = defineVxeComponent({
37053
37064
  evnt.preventDefault();
37054
37065
  evnt.stopPropagation();
37055
37066
  const { transform } = props;
37056
- const { selectCheckboxMaps } = internalData;
37067
+ const { selectCheckboxMaps, nodeMaps } = internalData;
37057
37068
  const childrenField = computeChildrenField.value;
37058
37069
  const mapChildrenField = computeMapChildrenField.value;
37059
37070
  const checkboxOpts = computeCheckboxOpts.value;
37060
- const { checkStrictly, checkMethod } = checkboxOpts;
37061
- let isDisabled = !!checkMethod;
37062
- if (checkMethod) {
37063
- isDisabled = !checkMethod({ $tree: $xeTree, node });
37064
- }
37071
+ const { checkStrictly, checkMode, checkMethod } = checkboxOpts;
37072
+ const nodeid = getNodeId(node);
37073
+ const childList = XEUtils.get(node, childrenField);
37074
+ const isExistChild = childList && childList.length > 0;
37075
+ const nodeItem = nodeMaps[nodeid] || {};
37076
+ const nLevel = nodeItem.level;
37077
+ const isDisabled = checkMethod ? !checkMethod({ $tree: $xeTree, node }) : !handleVisibleOrCheckMode(checkMode, isExistChild, nLevel);
37065
37078
  if (isDisabled) {
37066
37079
  return;
37067
37080
  }
37068
- const nodeid = getNodeId(node);
37069
37081
  let isChecked = false;
37070
37082
  if (selectCheckboxMaps[nodeid]) {
37071
37083
  delete selectCheckboxMaps[nodeid];
@@ -37127,17 +37139,20 @@ var VxeTreeComponent = defineVxeComponent({
37127
37139
  const changeRadioEvent = (evnt, node) => {
37128
37140
  evnt.preventDefault();
37129
37141
  evnt.stopPropagation();
37142
+ const { nodeMaps } = internalData;
37130
37143
  const radioOpts = computeRadioOpts.value;
37131
- const { checkMethod } = radioOpts;
37132
- let isDisabled = !!checkMethod;
37133
- if (checkMethod) {
37134
- isDisabled = !checkMethod({ $tree: $xeTree, node });
37135
- }
37144
+ const childrenField = computeChildrenField.value;
37145
+ const { checkMode, checkMethod } = radioOpts;
37146
+ const nodeid = getNodeId(node);
37147
+ const childList = XEUtils.get(node, childrenField);
37148
+ const isExistChild = childList && childList.length > 0;
37149
+ const nodeItem = nodeMaps[nodeid] || {};
37150
+ const nLevel = nodeItem.level;
37151
+ const isDisabled = checkMethod ? !checkMethod({ $tree: $xeTree, node }) : !handleVisibleOrCheckMode(checkMode, isExistChild, nLevel);
37136
37152
  if (isDisabled) {
37137
37153
  return;
37138
37154
  }
37139
37155
  const isChecked = true;
37140
- const nodeid = getNodeId(node);
37141
37156
  const value = deNodeValue(nodeid);
37142
37157
  reactData.selectRadioKey = nodeid;
37143
37158
  emitRadioMode(value);
@@ -38776,9 +38791,10 @@ var VxeTreeSelectComponent = defineVxeComponent({
38776
38791
  const propsOpts = computePropsOpts.value;
38777
38792
  return propsOpts.children || 'children';
38778
38793
  });
38779
- const computeParentField = computed(() => {
38794
+ const computeNodeParentField = computed(() => {
38780
38795
  const propsOpts = computePropsOpts.value;
38781
- return propsOpts.parent || 'parentField';
38796
+ const treeOpts = computeTreeOpts.value;
38797
+ return propsOpts.parent || treeOpts.parentField || 'parentId';
38782
38798
  });
38783
38799
  const computeHasChildField = computed(() => {
38784
38800
  const propsOpts = computePropsOpts.value;
@@ -38866,6 +38882,7 @@ var VxeTreeSelectComponent = defineVxeComponent({
38866
38882
  const { separator } = props;
38867
38883
  const treeOpts = computeTreeOpts.value;
38868
38884
  const nodeKeyField = computeNodeKeyField.value;
38885
+ const nodeParentField = computeNodeParentField.value;
38869
38886
  const childrenField = computeChildrenField.value;
38870
38887
  const valueField = computeValueField.value;
38871
38888
  const labelField = computeLabelField.value;
@@ -38896,9 +38913,20 @@ var VxeTreeSelectComponent = defineVxeComponent({
38896
38913
  };
38897
38914
  if (optList) {
38898
38915
  if (transform) {
38899
- optList.forEach((item, index, items) => {
38900
- handleOptNode(item, index, items, [], null, []);
38916
+ // if (showFullLabel) {
38917
+ const treeList = XEUtils.toArrayTree(optList, {
38918
+ key: nodeKeyField,
38919
+ parentKey: nodeParentField,
38920
+ mapChildren: childrenField,
38921
+ rootParentValue: treeOpts.rootParentValue,
38922
+ rootValues: treeOpts.rootValues
38901
38923
  });
38924
+ XEUtils.eachTree(treeList, handleOptNode, { children: childrenField });
38925
+ // } else {
38926
+ // optList.forEach((item, index, items) => {
38927
+ // handleOptNode(item, index, items, [], null, [])
38928
+ // })
38929
+ // }
38902
38930
  }
38903
38931
  else {
38904
38932
  XEUtils.eachTree(optList, handleOptNode, { children: childrenField });
@@ -39215,7 +39243,7 @@ var VxeTreeSelectComponent = defineVxeComponent({
39215
39243
  const labelField = computeLabelField.value;
39216
39244
  const valueField = computeValueField.value;
39217
39245
  const childrenField = computeChildrenField.value;
39218
- const parentField = computeParentField.value;
39246
+ const nodeParentField = computeNodeParentField.value;
39219
39247
  const hasChildField = computeHasChildField.value;
39220
39248
  const virtualYOpts = computeVirtualYOpts.value;
39221
39249
  const filterOpts = computeFilterOpts.value;
@@ -39381,7 +39409,7 @@ var VxeTreeSelectComponent = defineVxeComponent({
39381
39409
  valueField: valueField,
39382
39410
  keyField: nodeKeyField,
39383
39411
  childrenField: treeOpts.childrenField || childrenField,
39384
- parentField: treeOpts.parentField || parentField,
39412
+ parentField: nodeParentField,
39385
39413
  hasChildField: treeOpts.hasChildField || hasChildField,
39386
39414
  accordion: treeOpts.accordion,
39387
39415
  expandAll: treeOpts.expandAll,
@@ -64,7 +64,8 @@ export default defineVxeComponent({
64
64
  'date-prev',
65
65
  'date-today',
66
66
  'date-next',
67
- 'confirm'
67
+ 'confirm',
68
+ 'revert'
68
69
  ],
69
70
  setup(props, context) {
70
71
  const { emit } = context;
@@ -572,7 +573,9 @@ export default defineVxeComponent({
572
573
  return XEUtils.toStringDate(value, format);
573
574
  };
574
575
  const dateRevert = () => {
575
- reactData.inputLabel = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
576
+ const label = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
577
+ reactData.inputLabel = label;
578
+ dispatchEvent('revert', { label }, null);
576
579
  };
577
580
  const afterCheckValue = (inpVal) => {
578
581
  const { type } = props;
@@ -444,6 +444,9 @@ export default defineVxeComponent({
444
444
  const panelConfirmEvent = (params) => {
445
445
  dispatchEvent('confirm', params, params.$event);
446
446
  };
447
+ const panelRevertEvent = (params) => {
448
+ reactData.inputLabel = params.label;
449
+ };
447
450
  // 全局事件
448
451
  const handleGlobalMousedownEvent = (evnt) => {
449
452
  const $datePanel = refDatePanel.value;
@@ -793,7 +796,8 @@ export default defineVxeComponent({
793
796
  disabledMethod: props.disabledMethod,
794
797
  selectDay: props.selectDay,
795
798
  onChange: panelChangeEvent,
796
- onConfirm: panelConfirmEvent
799
+ onConfirm: panelConfirmEvent,
800
+ onRevert: panelRevertEvent
797
801
  })
798
802
  ]),
799
803
  h('div', {
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'إذا كانت موجودة ، يتم دعم الخلايا ذات الهياكل المدمجة',
241
241
  expOptAllExpand: 'توسيع الشجرة',
242
242
  expAllExpandTitle: 'إذا كانت موجودة ، فسيتم دعمها لتوسيع جميع البيانات بالهياكل الهرمية',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'أسلوب',
244
248
  expUseStyleTitle: 'إذا كانت موجودة ، يتم دعم الخلايا ذات الأناقة',
245
249
  expOptOriginal: 'بيانات المصدر',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'Wenn vorhanden, werden Zellen mit zusammengeführten Strukturen unterstützt',
241
241
  expOptAllExpand: 'Den Baum erweitern',
242
242
  expAllExpandTitle: 'Wenn es existiert, wird es unterstützt, alle Daten mit hierarchischen Strukturen zu erweitern',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'Stil',
244
248
  expUseStyleTitle: 'Wenn vorhanden, werden Zellen mit Stil unterstützt',
245
249
  expOptOriginal: 'Quelldaten',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'If present, cells with merged structures are supported',
241
241
  expOptAllExpand: 'Expand the tree',
242
242
  expAllExpandTitle: 'If it exists, it is supported to expand all data with hierarchical structures',
243
+ expOptTreeAllExpand: 'Expand tree',
244
+ expTreeAllExpandTitle: 'If present, automatically expand all tree levels',
245
+ expOptRowGroupAllExpand: 'Expand group',
246
+ expRowGroupAllExpandTitle: 'If present, automatically expand all group levels',
243
247
  expOptUseStyle: 'style',
244
248
  expUseStyleTitle: 'If present, cells with style are supported',
245
249
  expOptOriginal: 'Source data',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'Si está presente, las células con estructuras fusionadas son compatibles',
241
241
  expOptAllExpand: 'Expandir el árbol',
242
242
  expAllExpandTitle: 'Si existe, es compatible para expandir todos los datos con estructuras jerárquicas',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'estilo',
244
248
  expUseStyleTitle: 'Si está presente, las celdas con estilo son compatibles',
245
249
  expOptOriginal: 'Datos de origen',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'Si présents, les cellules avec des structures fusionnées sont soutenues',
241
241
  expOptAllExpand: "Développer l'arbre",
242
242
  expAllExpandTitle: "S'il existe, il est supporté pour étendre toutes les données avec des structures hiérarchiques",
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'style',
244
248
  expUseStyleTitle: 'Si présents, les cellules avec style sont prises en charge',
245
249
  expOptOriginal: 'Données de source',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'Ha van jelen, az egyesített struktúrákkal rendelkező sejtek támogatottak',
241
241
  expOptAllExpand: 'Bővítse a fát',
242
242
  expAllExpandTitle: 'Ha létezik, akkor támogatott, hogy az összes adatot hierarchikus struktúrákkal bővítse',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'stílus',
244
248
  expUseStyleTitle: 'Ha van jelen, akkor a stílusú sejtek támogatottak',
245
249
  expOptOriginal: 'Forrásadatok',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: '如果存在,则支持带有合并结构的单元格',
241
241
  expOptAllExpand: '展开树',
242
242
  expAllExpandTitle: '如果存在,则支持将带有层级结构的数据全部展开',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: '样式',
244
248
  expUseStyleTitle: '如果存在,则支持带样式的单元格',
245
249
  expOptOriginal: '源数据',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'Jika ada, sel dengan struktur gabungan didukung',
241
241
  expOptAllExpand: 'Perluas pohon',
242
242
  expAllExpandTitle: 'Jika ada, didukung untuk memperluas semua data dengan struktur hierarkis',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'gaya',
244
248
  expUseStyleTitle: 'Jika ada, sel dengan gaya didukung',
245
249
  expOptOriginal: 'Data sumber',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'Se presenti, le cellule con strutture unite sono supportate',
241
241
  expOptAllExpand: "Espandere l'albero",
242
242
  expAllExpandTitle: 'Se esiste, è supportato per espandere tutti i dati con strutture gerarchiche',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'stile',
244
248
  expUseStyleTitle: 'Se presenti, le celle con stile sono supportate',
245
249
  expOptOriginal: 'Dati di origine',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: '存在する場合、マージされた構造を持つ細胞がサポートされます',
241
241
  expOptAllExpand: 'ツリーを拡張します',
242
242
  expAllExpandTitle: '存在する場合、階層構造を使用してすべてのデータを拡張することがサポートされています',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'スタイル',
244
248
  expUseStyleTitle: '存在する場合、スタイルのあるセルがサポートされています',
245
249
  expOptOriginal: 'ソースデータ',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: '존재하는 경우, 병합 된 구조를 갖는 세포가지지된다',
241
241
  expOptAllExpand: '나무를 확장하십시오',
242
242
  expAllExpandTitle: '존재하는 경우 계층 구조로 모든 데이터를 확장하도록 지원됩니다.',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: '스타일',
244
248
  expUseStyleTitle: '존재하는 경우 스타일이있는 셀이 지원됩니다',
245
249
  expOptOriginal: '소스 데이터',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'Sekiranya ada, sel -sel dengan struktur yang digabungkan disokong',
241
241
  expOptAllExpand: 'Kembangkan pokok',
242
242
  expAllExpandTitle: 'Sekiranya wujud, ia disokong untuk mengembangkan semua data dengan struktur hierarki',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'gaya',
244
248
  expUseStyleTitle: 'Sekiranya ada, sel dengan gaya disokong',
245
249
  expOptOriginal: 'Data sumber',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'Hvis de er til stede, støttes celler med sammenslåtte strukturer',
241
241
  expOptAllExpand: 'Utvid treet',
242
242
  expAllExpandTitle: 'Hvis det eksisterer, støttes den for å utvide alle data med hierarkiske strukturer',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'stil',
244
248
  expUseStyleTitle: 'Hvis de er til stede, støttes celler med stil',
245
249
  expOptOriginal: 'Kildedata',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'Se presente, as células com estruturas mescladas são suportadas',
241
241
  expOptAllExpand: 'Expandir a árvore',
242
242
  expAllExpandTitle: 'Se existir, é suportado para expandir todos os dados com estruturas hierárquicas',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'estilo',
244
248
  expUseStyleTitle: 'Se presente, células com estilo são suportadas',
245
249
  expOptOriginal: 'Dados de origem',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'Если присутствует, клетки с объединенными структурами поддерживаются',
241
241
  expOptAllExpand: 'Расширить дерево',
242
242
  expAllExpandTitle: 'Если он существует, он поддерживается для расширения всех данных с помощью иерархических структур',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'стиль',
244
248
  expUseStyleTitle: 'Если присутствует, клетки со стилем поддерживаются',
245
249
  expOptOriginal: 'Исходные данные',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'หากมีอยู่จะรองรับเซลล์ที่มีโครงสร้างที่ผสานเข้าด้วยกัน',
241
241
  expOptAllExpand: 'ขยายต้นไม้',
242
242
  expAllExpandTitle: 'หากมีอยู่จะได้รับการสนับสนุนเพื่อขยายข้อมูลทั้งหมดด้วยโครงสร้างแบบลำดับชั้น',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'สไตล์',
244
248
  expUseStyleTitle: 'หากมีอยู่จะรองรับเซลล์ที่มีสไตล์',
245
249
  expOptOriginal: 'แหล่งข้อมูล',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'ئەگەر مەۋجۇت بولسا برىكتۈرۈلگەن قۇرۇلمىلىق ھۆججەت ئىلمىنتىنى قوللايدۇ ',
241
241
  expOptAllExpand: '展开树',
242
242
  expAllExpandTitle: 'ئەگەر مەۋجۇت بولسا،دەرىجىسى بولغان بارلىق ئۇچۇرلار ئىچىلىدۇ ',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'نۇسخا',
244
248
  expUseStyleTitle: 'ئەگەر مەۋجۇت بولسا ،نۇسخىسى بولغان ئىلمىنىتلارغا نۇسخا قوشىلىدۇ',
245
249
  expOptOriginal: 'ئەسلىي ئۇچۇر',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: "Якщо вони присутні, підтримуються клітини з об'єднаними структурами",
241
241
  expOptAllExpand: 'Розширити дерево',
242
242
  expAllExpandTitle: 'Якщо він існує, підтримується розширення всіх даних за допомогою ієрархічних структур',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'стиль',
244
248
  expUseStyleTitle: 'Якщо вони присутні, підтримуються клітини зі стилем',
245
249
  expOptOriginal: 'Джерело даних',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: "Agar hozirgi tuzilmalar bo'lgan hujayralar qo'llab-quvvatlansa",
241
241
  expOptAllExpand: 'Daraxtni kengaytiring',
242
242
  expAllExpandTitle: "Agar mavjud bo'lsa, ierarxik tuzilmalar bilan barcha ma'lumotlarni kengaytirish qo'llab-quvvatlanadi",
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'uslub',
244
248
  expUseStyleTitle: "Agar mavjud bo'lsa, uslublar bo'lgan hujayralar qo'llab-quvvatlanadi",
245
249
  expOptOriginal: "Manba ma'lumotlari",
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: 'Nếu có, các tế bào có cấu trúc hợp nhất được hỗ trợ',
241
241
  expOptAllExpand: 'Mở rộng cây',
242
242
  expAllExpandTitle: 'Nếu nó tồn tại, nó được hỗ trợ để mở rộng tất cả dữ liệu với các cấu trúc phân cấp',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: 'phong cách',
244
248
  expUseStyleTitle: 'Nếu có, các tế bào có phong cách được hỗ trợ',
245
249
  expOptOriginal: 'Dữ liệu nguồn',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: '如果存在,則支持帶有合併結構的單元格',
241
241
  expOptAllExpand: '展開樹',
242
242
  expAllExpandTitle: '如果存在,則支持將帶有層級結構的數據全部展開',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: '樣式',
244
248
  expUseStyleTitle: '如果存在,則支持帶樣式的單元格',
245
249
  expOptOriginal: '源數據',
@@ -240,6 +240,10 @@ export default {
240
240
  expMergeTitle: '如果存在,则支持带有合并结构的单元格',
241
241
  expOptAllExpand: '展开树',
242
242
  expAllExpandTitle: '如果存在,则支持将带有层级结构的数据全部展开',
243
+ expOptTreeAllExpand: '展开树',
244
+ expTreeAllExpandTitle: '如果存在,则自动展开所有树层级',
245
+ expOptRowGroupAllExpand: '展开分组',
246
+ expRowGroupAllExpandTitle: '如果存在,则自动展开所有分组层级',
243
247
  expOptUseStyle: '样式',
244
248
  expUseStyleTitle: '如果存在,则支持带样式的单元格',
245
249
  expOptOriginal: '源数据',
@@ -1232,19 +1232,20 @@ export default defineVxeComponent({
1232
1232
  evnt.preventDefault();
1233
1233
  evnt.stopPropagation();
1234
1234
  const { transform } = props;
1235
- const { selectCheckboxMaps } = internalData;
1235
+ const { selectCheckboxMaps, nodeMaps } = internalData;
1236
1236
  const childrenField = computeChildrenField.value;
1237
1237
  const mapChildrenField = computeMapChildrenField.value;
1238
1238
  const checkboxOpts = computeCheckboxOpts.value;
1239
- const { checkStrictly, checkMethod } = checkboxOpts;
1240
- let isDisabled = !!checkMethod;
1241
- if (checkMethod) {
1242
- isDisabled = !checkMethod({ $tree: $xeTree, node });
1243
- }
1239
+ const { checkStrictly, checkMode, checkMethod } = checkboxOpts;
1240
+ const nodeid = getNodeId(node);
1241
+ const childList = XEUtils.get(node, childrenField);
1242
+ const isExistChild = childList && childList.length > 0;
1243
+ const nodeItem = nodeMaps[nodeid] || {};
1244
+ const nLevel = nodeItem.level;
1245
+ const isDisabled = checkMethod ? !checkMethod({ $tree: $xeTree, node }) : !handleVisibleOrCheckMode(checkMode, isExistChild, nLevel);
1244
1246
  if (isDisabled) {
1245
1247
  return;
1246
1248
  }
1247
- const nodeid = getNodeId(node);
1248
1249
  let isChecked = false;
1249
1250
  if (selectCheckboxMaps[nodeid]) {
1250
1251
  delete selectCheckboxMaps[nodeid];
@@ -1306,17 +1307,20 @@ export default defineVxeComponent({
1306
1307
  const changeRadioEvent = (evnt, node) => {
1307
1308
  evnt.preventDefault();
1308
1309
  evnt.stopPropagation();
1310
+ const { nodeMaps } = internalData;
1309
1311
  const radioOpts = computeRadioOpts.value;
1310
- const { checkMethod } = radioOpts;
1311
- let isDisabled = !!checkMethod;
1312
- if (checkMethod) {
1313
- isDisabled = !checkMethod({ $tree: $xeTree, node });
1314
- }
1312
+ const childrenField = computeChildrenField.value;
1313
+ const { checkMode, checkMethod } = radioOpts;
1314
+ const nodeid = getNodeId(node);
1315
+ const childList = XEUtils.get(node, childrenField);
1316
+ const isExistChild = childList && childList.length > 0;
1317
+ const nodeItem = nodeMaps[nodeid] || {};
1318
+ const nLevel = nodeItem.level;
1319
+ const isDisabled = checkMethod ? !checkMethod({ $tree: $xeTree, node }) : !handleVisibleOrCheckMode(checkMode, isExistChild, nLevel);
1315
1320
  if (isDisabled) {
1316
1321
  return;
1317
1322
  }
1318
1323
  const isChecked = true;
1319
- const nodeid = getNodeId(node);
1320
1324
  const value = deNodeValue(nodeid);
1321
1325
  reactData.selectRadioKey = nodeid;
1322
1326
  emitRadioMode(value);
@@ -254,9 +254,10 @@ export default defineVxeComponent({
254
254
  const propsOpts = computePropsOpts.value;
255
255
  return propsOpts.children || 'children';
256
256
  });
257
- const computeParentField = computed(() => {
257
+ const computeNodeParentField = computed(() => {
258
258
  const propsOpts = computePropsOpts.value;
259
- return propsOpts.parent || 'parentField';
259
+ const treeOpts = computeTreeOpts.value;
260
+ return propsOpts.parent || treeOpts.parentField || 'parentId';
260
261
  });
261
262
  const computeHasChildField = computed(() => {
262
263
  const propsOpts = computePropsOpts.value;
@@ -344,6 +345,7 @@ export default defineVxeComponent({
344
345
  const { separator } = props;
345
346
  const treeOpts = computeTreeOpts.value;
346
347
  const nodeKeyField = computeNodeKeyField.value;
348
+ const nodeParentField = computeNodeParentField.value;
347
349
  const childrenField = computeChildrenField.value;
348
350
  const valueField = computeValueField.value;
349
351
  const labelField = computeLabelField.value;
@@ -374,9 +376,20 @@ export default defineVxeComponent({
374
376
  };
375
377
  if (optList) {
376
378
  if (transform) {
377
- optList.forEach((item, index, items) => {
378
- handleOptNode(item, index, items, [], null, []);
379
+ // if (showFullLabel) {
380
+ const treeList = XEUtils.toArrayTree(optList, {
381
+ key: nodeKeyField,
382
+ parentKey: nodeParentField,
383
+ mapChildren: childrenField,
384
+ rootParentValue: treeOpts.rootParentValue,
385
+ rootValues: treeOpts.rootValues
379
386
  });
387
+ XEUtils.eachTree(treeList, handleOptNode, { children: childrenField });
388
+ // } else {
389
+ // optList.forEach((item, index, items) => {
390
+ // handleOptNode(item, index, items, [], null, [])
391
+ // })
392
+ // }
380
393
  }
381
394
  else {
382
395
  XEUtils.eachTree(optList, handleOptNode, { children: childrenField });
@@ -693,7 +706,7 @@ export default defineVxeComponent({
693
706
  const labelField = computeLabelField.value;
694
707
  const valueField = computeValueField.value;
695
708
  const childrenField = computeChildrenField.value;
696
- const parentField = computeParentField.value;
709
+ const nodeParentField = computeNodeParentField.value;
697
710
  const hasChildField = computeHasChildField.value;
698
711
  const virtualYOpts = computeVirtualYOpts.value;
699
712
  const filterOpts = computeFilterOpts.value;
@@ -859,7 +872,7 @@ export default defineVxeComponent({
859
872
  valueField: valueField,
860
873
  keyField: nodeKeyField,
861
874
  childrenField: treeOpts.childrenField || childrenField,
862
- parentField: treeOpts.parentField || parentField,
875
+ parentField: nodeParentField,
863
876
  hasChildField: treeOpts.hasChildField || hasChildField,
864
877
  accordion: treeOpts.accordion,
865
878
  expandAll: treeOpts.expandAll,
package/es/ui/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { VxeUI, setConfig, setIcon } from '@vxe-ui/core';
2
2
  import { dynamicApp } from '../dynamics';
3
3
  import { warnLog } from './src/log';
4
- export const version = "4.14.22";
4
+ export const version = "4.14.24";
5
5
  VxeUI.uiVersion = version;
6
6
  VxeUI.dynamicApp = dynamicApp;
7
7
  export function config(options) {
package/es/ui/src/log.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import { log } from '@vxe-ui/core';
2
- const version = `ui v${"4.14.22"}`;
2
+ const version = `ui v${"4.14.24"}`;
3
3
  export const warnLog = log.create('warn', version);
4
4
  export const errLog = log.create('error', version);