vxe-pc-ui 4.14.23 → 4.14.25

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 (126) hide show
  1. package/README.md +19 -13
  2. package/dist/all.esm.js +48 -24
  3. package/es/date-panel/src/date-panel.js +5 -2
  4. package/es/date-picker/src/date-picker.js +5 -1
  5. package/es/language/ar-EG.js +2 -2
  6. package/es/language/de-DE.js +1 -1
  7. package/es/language/en-US.js +1 -1
  8. package/es/language/fr-FR.js +2 -2
  9. package/es/language/hu-HU.js +1 -1
  10. package/es/language/hy-AM.js +1 -1
  11. package/es/language/id-ID.js +2 -2
  12. package/es/language/it-IT.js +1 -1
  13. package/es/language/ko-KR.js +1 -1
  14. package/es/language/ms-MY.js +2 -2
  15. package/es/language/nb-NO.js +2 -2
  16. package/es/language/pt-BR.js +2 -2
  17. package/es/language/th-TH.js +1 -1
  18. package/es/language/ug-CN.js +1 -1
  19. package/es/language/uk-UA.js +1 -1
  20. package/es/language/uz-UZ.js +1 -1
  21. package/es/tree/src/tree.js +17 -13
  22. package/es/tree-select/src/tree-select.js +19 -6
  23. package/es/ui/index.js +1 -1
  24. package/es/ui/src/log.js +1 -1
  25. package/lib/date-panel/src/date-panel.js +6 -2
  26. package/lib/date-panel/src/date-panel.min.js +1 -1
  27. package/lib/date-picker/src/date-picker.js +5 -1
  28. package/lib/date-picker/src/date-picker.min.js +1 -1
  29. package/lib/index.umd.js +60 -29
  30. package/lib/index.umd.min.js +1 -1
  31. package/lib/language/ar-EG.js +2 -2
  32. package/lib/language/ar-EG.min.js +1 -1
  33. package/lib/language/ar-EG.umd.js +2 -2
  34. package/lib/language/de-DE.js +1 -1
  35. package/lib/language/de-DE.min.js +1 -1
  36. package/lib/language/de-DE.umd.js +1 -1
  37. package/lib/language/en-US.js +1 -1
  38. package/lib/language/en-US.min.js +1 -1
  39. package/lib/language/en-US.umd.js +1 -1
  40. package/lib/language/fr-FR.js +2 -2
  41. package/lib/language/fr-FR.min.js +1 -1
  42. package/lib/language/fr-FR.umd.js +2 -2
  43. package/lib/language/hu-HU.js +1 -1
  44. package/lib/language/hu-HU.min.js +1 -1
  45. package/lib/language/hu-HU.umd.js +1 -1
  46. package/lib/language/hy-AM.js +1 -1
  47. package/lib/language/hy-AM.min.js +1 -1
  48. package/lib/language/hy-AM.umd.js +1 -1
  49. package/lib/language/id-ID.js +2 -2
  50. package/lib/language/id-ID.min.js +1 -1
  51. package/lib/language/id-ID.umd.js +2 -2
  52. package/lib/language/it-IT.js +1 -1
  53. package/lib/language/it-IT.min.js +1 -1
  54. package/lib/language/it-IT.umd.js +1 -1
  55. package/lib/language/ko-KR.js +1 -1
  56. package/lib/language/ko-KR.min.js +1 -1
  57. package/lib/language/ko-KR.umd.js +1 -1
  58. package/lib/language/ms-MY.js +2 -2
  59. package/lib/language/ms-MY.min.js +1 -1
  60. package/lib/language/ms-MY.umd.js +2 -2
  61. package/lib/language/nb-NO.js +2 -2
  62. package/lib/language/nb-NO.min.js +1 -1
  63. package/lib/language/nb-NO.umd.js +2 -2
  64. package/lib/language/pt-BR.js +2 -2
  65. package/lib/language/pt-BR.min.js +1 -1
  66. package/lib/language/pt-BR.umd.js +2 -2
  67. package/lib/language/th-TH.js +1 -1
  68. package/lib/language/th-TH.min.js +1 -1
  69. package/lib/language/th-TH.umd.js +1 -1
  70. package/lib/language/ug-CN.js +1 -1
  71. package/lib/language/ug-CN.min.js +1 -1
  72. package/lib/language/ug-CN.umd.js +1 -1
  73. package/lib/language/uk-UA.js +1 -1
  74. package/lib/language/uk-UA.min.js +1 -1
  75. package/lib/language/uk-UA.umd.js +1 -1
  76. package/lib/language/uz-UZ.js +1 -1
  77. package/lib/language/uz-UZ.min.js +1 -1
  78. package/lib/language/uz-UZ.umd.js +1 -1
  79. package/lib/tree/src/tree.js +26 -17
  80. package/lib/tree/src/tree.min.js +1 -1
  81. package/lib/tree-select/src/tree-select.js +21 -6
  82. package/lib/tree-select/src/tree-select.min.js +1 -1
  83. package/lib/ui/index.js +1 -1
  84. package/lib/ui/index.min.js +1 -1
  85. package/lib/ui/src/log.js +1 -1
  86. package/lib/ui/src/log.min.js +1 -1
  87. package/package.json +3 -2
  88. package/packages/date-panel/src/date-panel.ts +5 -2
  89. package/packages/date-picker/src/date-picker.ts +8 -3
  90. package/packages/language/ar-EG.ts +850 -850
  91. package/packages/language/de-DE.ts +850 -850
  92. package/packages/language/en-US.ts +850 -850
  93. package/packages/language/es-ES.ts +850 -850
  94. package/packages/language/fr-FR.ts +850 -850
  95. package/packages/language/hu-HU.ts +850 -850
  96. package/packages/language/hy-AM.ts +850 -850
  97. package/packages/language/id-ID.ts +850 -850
  98. package/packages/language/it-IT.ts +850 -850
  99. package/packages/language/ja-JP.ts +850 -850
  100. package/packages/language/ko-KR.ts +850 -850
  101. package/packages/language/ms-MY.ts +850 -850
  102. package/packages/language/nb-NO.ts +850 -850
  103. package/packages/language/pt-BR.ts +850 -850
  104. package/packages/language/ru-RU.ts +850 -850
  105. package/packages/language/th-TH.ts +850 -850
  106. package/packages/language/ug-CN.ts +850 -850
  107. package/packages/language/uk-UA.ts +850 -850
  108. package/packages/language/uz-UZ.ts +850 -850
  109. package/packages/language/vi-VN.ts +850 -850
  110. package/packages/language/zh-CHT.ts +850 -850
  111. package/packages/tree/src/tree.ts +17 -13
  112. package/packages/tree-select/src/tree-select.ts +19 -6
  113. package/types/components/date-panel.d.ts +13 -1
  114. package/types/components/table.d.ts +16 -0
  115. /package/es/icon/{iconfont.1779801338819.ttf → iconfont.1780114491819.ttf} +0 -0
  116. /package/es/icon/{iconfont.1779801338819.woff → iconfont.1780114491819.woff} +0 -0
  117. /package/es/icon/{iconfont.1779801338819.woff2 → iconfont.1780114491819.woff2} +0 -0
  118. /package/es/{iconfont.1779801338819.ttf → iconfont.1780114491819.ttf} +0 -0
  119. /package/es/{iconfont.1779801338819.woff → iconfont.1780114491819.woff} +0 -0
  120. /package/es/{iconfont.1779801338819.woff2 → iconfont.1780114491819.woff2} +0 -0
  121. /package/lib/icon/style/{iconfont.1779801338819.ttf → iconfont.1780114491819.ttf} +0 -0
  122. /package/lib/icon/style/{iconfont.1779801338819.woff → iconfont.1780114491819.woff} +0 -0
  123. /package/lib/icon/style/{iconfont.1779801338819.woff2 → iconfont.1780114491819.woff2} +0 -0
  124. /package/lib/{iconfont.1779801338819.ttf → iconfont.1780114491819.ttf} +0 -0
  125. /package/lib/{iconfont.1779801338819.woff → iconfont.1780114491819.woff} +0 -0
  126. /package/lib/{iconfont.1779801338819.woff2 → iconfont.1780114491819.woff2} +0 -0
package/README.md CHANGED
@@ -279,21 +279,19 @@ createApp(App)
279
279
  ```html
280
280
  <template>
281
281
  <div>
282
- <vxe-form
283
- :data="formData"
284
- @submit="submitEvent">
282
+ <vxe-form :data="formData" @submit="submitEvent">
285
283
  <vxe-form-item title="名称" field="name" span="12" :item-render="{}">
286
- <template #default="params">
284
+ <template #default>
287
285
  <vxe-input v-model="formData.name"></vxe-input>
288
286
  </template>
289
287
  </vxe-form-item>
290
288
  <vxe-form-item title="角色" field="role" span="12" :item-render="{}">
291
- <template #default="params">
289
+ <template #default>
292
290
  <vxe-input v-model="formData.role"></vxe-input>
293
291
  </template>
294
292
  </vxe-form-item>
295
293
  <vxe-form-item title="年龄" field="age" span="12" :item-render="{}">
296
- <template #default="params">
294
+ <template #default>
297
295
  <vxe-input v-model="formData.age"></vxe-input>
298
296
  </template>
299
297
  </vxe-form-item>
@@ -310,18 +308,20 @@ createApp(App)
310
308
  <script>
311
309
  export default {
312
310
  data() {
311
+ const formData: {
312
+ name: '',
313
+ nickname: '',
314
+ sex: '',
315
+ role: '',
316
+ age: ''
317
+ }
313
318
  return {
314
- formData: {
315
- name: '',
316
- nickname: '',
317
- sex: '',
318
- role: ''
319
- }
319
+ formData
320
320
  }
321
321
  },
322
322
  methods: {
323
323
  submitEvent () {
324
- VxeUI.modal.message({ content: '保存成功', status: 'success' })
324
+ console.log('保存成功')
325
325
  }
326
326
  }
327
327
  }
@@ -342,6 +342,12 @@ npm run update
342
342
  npm run serve
343
343
  ```
344
344
 
345
+ 将 zh-CN 语言的改动点同步到其他语言文件中
346
+
347
+ ```shell
348
+ npm run sync:i18n
349
+ ```
350
+
345
351
  编译打包,生成编译后的目录:es,lib
346
352
 
347
353
  ```shell
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.23"}`;
83
+ const version$1 = `ui v${"4.14.25"}`;
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.23";
87
+ const version = "4.14.25";
88
88
  VxeUI.uiVersion = version;
89
89
  VxeUI.dynamicApp = dynamicApp;
90
90
  function config(options) {
@@ -14475,7 +14475,8 @@ var VxeDatePanelComponent = defineVxeComponent({
14475
14475
  'date-prev',
14476
14476
  'date-today',
14477
14477
  'date-next',
14478
- 'confirm'
14478
+ 'confirm',
14479
+ 'revert'
14479
14480
  ],
14480
14481
  setup(props, context) {
14481
14482
  const { emit } = context;
@@ -14983,7 +14984,9 @@ var VxeDatePanelComponent = defineVxeComponent({
14983
14984
  return XEUtils.toStringDate(value, format);
14984
14985
  };
14985
14986
  const dateRevert = () => {
14986
- 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);
14987
14990
  };
14988
14991
  const afterCheckValue = (inpVal) => {
14989
14992
  const { type } = props;
@@ -16598,6 +16601,9 @@ var VxeDatePickerComponent = defineVxeComponent({
16598
16601
  const panelConfirmEvent = (params) => {
16599
16602
  dispatchEvent('confirm', params, params.$event);
16600
16603
  };
16604
+ const panelRevertEvent = (params) => {
16605
+ reactData.inputLabel = params.label;
16606
+ };
16601
16607
  // 全局事件
16602
16608
  const handleGlobalMousedownEvent = (evnt) => {
16603
16609
  const $datePanel = refDatePanel.value;
@@ -16947,7 +16953,8 @@ var VxeDatePickerComponent = defineVxeComponent({
16947
16953
  disabledMethod: props.disabledMethod,
16948
16954
  selectDay: props.selectDay,
16949
16955
  onChange: panelChangeEvent,
16950
- onConfirm: panelConfirmEvent
16956
+ onConfirm: panelConfirmEvent,
16957
+ onRevert: panelRevertEvent
16951
16958
  })
16952
16959
  ]),
16953
16960
  h('div', {
@@ -37057,19 +37064,20 @@ var VxeTreeComponent = defineVxeComponent({
37057
37064
  evnt.preventDefault();
37058
37065
  evnt.stopPropagation();
37059
37066
  const { transform } = props;
37060
- const { selectCheckboxMaps } = internalData;
37067
+ const { selectCheckboxMaps, nodeMaps } = internalData;
37061
37068
  const childrenField = computeChildrenField.value;
37062
37069
  const mapChildrenField = computeMapChildrenField.value;
37063
37070
  const checkboxOpts = computeCheckboxOpts.value;
37064
- const { checkStrictly, checkMethod } = checkboxOpts;
37065
- let isDisabled = !!checkMethod;
37066
- if (checkMethod) {
37067
- isDisabled = !checkMethod({ $tree: $xeTree, node });
37068
- }
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);
37069
37078
  if (isDisabled) {
37070
37079
  return;
37071
37080
  }
37072
- const nodeid = getNodeId(node);
37073
37081
  let isChecked = false;
37074
37082
  if (selectCheckboxMaps[nodeid]) {
37075
37083
  delete selectCheckboxMaps[nodeid];
@@ -37131,17 +37139,20 @@ var VxeTreeComponent = defineVxeComponent({
37131
37139
  const changeRadioEvent = (evnt, node) => {
37132
37140
  evnt.preventDefault();
37133
37141
  evnt.stopPropagation();
37142
+ const { nodeMaps } = internalData;
37134
37143
  const radioOpts = computeRadioOpts.value;
37135
- const { checkMethod } = radioOpts;
37136
- let isDisabled = !!checkMethod;
37137
- if (checkMethod) {
37138
- isDisabled = !checkMethod({ $tree: $xeTree, node });
37139
- }
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);
37140
37152
  if (isDisabled) {
37141
37153
  return;
37142
37154
  }
37143
37155
  const isChecked = true;
37144
- const nodeid = getNodeId(node);
37145
37156
  const value = deNodeValue(nodeid);
37146
37157
  reactData.selectRadioKey = nodeid;
37147
37158
  emitRadioMode(value);
@@ -38780,9 +38791,10 @@ var VxeTreeSelectComponent = defineVxeComponent({
38780
38791
  const propsOpts = computePropsOpts.value;
38781
38792
  return propsOpts.children || 'children';
38782
38793
  });
38783
- const computeParentField = computed(() => {
38794
+ const computeNodeParentField = computed(() => {
38784
38795
  const propsOpts = computePropsOpts.value;
38785
- return propsOpts.parent || 'parentField';
38796
+ const treeOpts = computeTreeOpts.value;
38797
+ return propsOpts.parent || treeOpts.parentField || 'parentId';
38786
38798
  });
38787
38799
  const computeHasChildField = computed(() => {
38788
38800
  const propsOpts = computePropsOpts.value;
@@ -38870,6 +38882,7 @@ var VxeTreeSelectComponent = defineVxeComponent({
38870
38882
  const { separator } = props;
38871
38883
  const treeOpts = computeTreeOpts.value;
38872
38884
  const nodeKeyField = computeNodeKeyField.value;
38885
+ const nodeParentField = computeNodeParentField.value;
38873
38886
  const childrenField = computeChildrenField.value;
38874
38887
  const valueField = computeValueField.value;
38875
38888
  const labelField = computeLabelField.value;
@@ -38900,9 +38913,20 @@ var VxeTreeSelectComponent = defineVxeComponent({
38900
38913
  };
38901
38914
  if (optList) {
38902
38915
  if (transform) {
38903
- optList.forEach((item, index, items) => {
38904
- 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
38905
38923
  });
38924
+ XEUtils.eachTree(treeList, handleOptNode, { children: childrenField });
38925
+ // } else {
38926
+ // optList.forEach((item, index, items) => {
38927
+ // handleOptNode(item, index, items, [], null, [])
38928
+ // })
38929
+ // }
38906
38930
  }
38907
38931
  else {
38908
38932
  XEUtils.eachTree(optList, handleOptNode, { children: childrenField });
@@ -39219,7 +39243,7 @@ var VxeTreeSelectComponent = defineVxeComponent({
39219
39243
  const labelField = computeLabelField.value;
39220
39244
  const valueField = computeValueField.value;
39221
39245
  const childrenField = computeChildrenField.value;
39222
- const parentField = computeParentField.value;
39246
+ const nodeParentField = computeNodeParentField.value;
39223
39247
  const hasChildField = computeHasChildField.value;
39224
39248
  const virtualYOpts = computeVirtualYOpts.value;
39225
39249
  const filterOpts = computeFilterOpts.value;
@@ -39385,7 +39409,7 @@ var VxeTreeSelectComponent = defineVxeComponent({
39385
39409
  valueField: valueField,
39386
39410
  keyField: nodeKeyField,
39387
39411
  childrenField: treeOpts.childrenField || childrenField,
39388
- parentField: treeOpts.parentField || parentField,
39412
+ parentField: nodeParentField,
39389
39413
  hasChildField: treeOpts.hasChildField || hasChildField,
39390
39414
  accordion: treeOpts.accordion,
39391
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', {
@@ -19,8 +19,8 @@ export default {
19
19
  errConflicts: 'المعلمة "{0}" تتعارض مع "{1}"',
20
20
  modelConflicts: '绑定的字段值 "{0}" 与 "{1}" 存在冲突,将会出现错误',
21
21
  notSupportProp: 'لا يتم دعم "{1}" عند تمكين المعلمة "{0}" ، يجب أن يكون "{2}" ، وإلا',
22
- notConflictProp: 'عند استخدام "{0}" ، يجب تعيين "{1}" ، وإلا قد يكون هناك تعارضات وظيفية',
23
22
  reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
23
+ notConflictProp: 'عند استخدام "{0}" ، يجب تعيين "{1}" ، وإلا قد يكون هناك تعارضات وظيفية',
24
24
  unableInsert: 'لا يمكن إدراجها في الموقع المحدد ، يرجى التحقق مما إذا كانت المعلمات صحيحة',
25
25
  useErr: 'حدث خطأ أثناء تثبيت وحدة "{0}". قد يكون الطلب غير صحيح. يجب تثبيت الوحدة التابعة قبل الجدول',
26
26
  barUnableLink: 'لا يمكن أن يربط شريط الأدوات الجداول',
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'يبحث',
110
110
  loadingText: 'تحميل',
111
111
  emptyText: 'لا توجد بيانات حتى الآن',
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -122,8 +122,8 @@ export default {
122
122
  allChecked: 'Wählen Sie alle aus',
123
123
  allExpand: 'Alle erweitern',
124
124
  clearExpand: 'Alle schließen',
125
- close: '关闭',
126
125
  total: '已选 {0} 项',
126
+ close: '关闭',
127
127
  search: 'suchen',
128
128
  emptyText: 'Noch keine Daten'
129
129
  },
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'Search',
110
110
  loadingText: 'Loading',
111
111
  emptyText: 'No data yet',
112
- maxOpt: 'The maximum number that can be selected cannot exceed {0}.',
112
+ maxSize: '最大可选择的数量不能超过 {0}',
113
113
  overSizeErr: 'The maximum selectable quantity of {0} has been exceeded. The excess part will be ignored!',
114
114
  searchEmpty: 'No matching data found!'
115
115
  },
@@ -18,8 +18,8 @@ export default {
18
18
  scrollErrProp: "Ce paramètre \"{0}\" n'est pas pris en charge après l'activation du défilement virtuel",
19
19
  errConflicts: 'Paramètre "{0}" entre en conflit avec "{1}"',
20
20
  modelConflicts: '绑定的字段值 "{0}" 与 "{1}" 存在冲突,将会出现错误',
21
- reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
22
21
  notSupportProp: "\"{1}\" n'est pas pris en charge lorsque le paramètre \"{0}\" est activé, il devrait être \"{2}\", sinon une erreur se produira",
22
+ reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
23
23
  notConflictProp: 'Lorsque vous utilisez "{0}", "{1}" doit être défini, sinon il peut y avoir des conflits fonctionnels',
24
24
  unableInsert: "Ne peut pas être inséré dans l'emplacement spécifié, veuillez vérifier si les paramètres sont corrects",
25
25
  useErr: "Une erreur s'est produite lors de l'installation du module \"{0}\". L'ordonnance peut être incorrecte. Le module dépendant doit être installé avant le tableau",
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'recherche',
110
110
  loadingText: 'chargement',
111
111
  emptyText: 'Pas encore de données',
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'keresés',
110
110
  loadingText: 'terhelés',
111
111
  emptyText: 'Még nincs adat',
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -109,7 +109,7 @@ export default {
109
109
  search: '搜索',
110
110
  loadingText: '加载中...',
111
111
  emptyText: '暂无数据',
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -18,8 +18,8 @@ export default {
18
18
  scrollErrProp: 'Parameter ini "{0}" tidak didukung setelah pengguliran virtual diaktifkan',
19
19
  errConflicts: 'Parameter "{0}" bertentangan dengan "{1}"',
20
20
  modelConflicts: '绑定的字段值 "{0}" 与 "{1}" 存在冲突,将会出现错误',
21
- reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
22
21
  notSupportProp: '"{1}" tidak didukung ketika parameter "{0}" diaktifkan, itu harus menjadi "{2}", jika tidak kesalahan akan terjadi',
22
+ reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
23
23
  notConflictProp: 'Saat menggunakan "{0}", "{1}" harus diatur, jika tidak mungkin ada konflik fungsional',
24
24
  unableInsert: 'Tidak dapat dimasukkan ke lokasi yang ditentukan, silakan periksa apakah parameternya benar',
25
25
  useErr: 'Terjadi kesalahan saat menginstal modul "{0}". Pesanan mungkin salah. Modul dependen perlu diinstal sebelum tabel',
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'mencari',
110
110
  loadingText: 'memuat',
111
111
  emptyText: 'Belum ada data',
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'ricerca',
110
110
  loadingText: 'caricamento',
111
111
  emptyText: 'Nessun dati ancora',
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -18,8 +18,8 @@ export default {
18
18
  scrollErrProp: '이 매개 변수 "{0}"은 가상 스크롤링이 활성화 된 후에 지원되지 않습니다.',
19
19
  errConflicts: '매개 변수 "{0}" "{1}"과 충돌합니다.',
20
20
  modelConflicts: '바운드 필드 값 "{0}"및 "{1}"사이에 충돌이 발생하며 오류가 발생합니다.',
21
- reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
22
21
  notSupportProp: '"{1}"은 "{0}"매개 변수가 활성화 될 때 지원되지 않습니다. "{2}"이어야합니다. 그렇지 않으면 오류가 발생합니다.',
22
+ reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
23
23
  notConflictProp: '"{0}"을 사용하는 경우 "{1}"을 설정해야합니다. 그렇지 않으면 기능적 충돌이있을 수 있습니다.',
24
24
  unableInsert: '지정된 위치에 삽입 할 수 없으므로 매개 변수가 올바른지 확인하십시오.',
25
25
  useErr: '"{0}"모듈을 설치하는 동안 오류가 발생했습니다. 주문이 잘못 될 수 있습니다. 종속 모듈은 테이블 전에 설치해야합니다',
@@ -18,8 +18,8 @@ export default {
18
18
  scrollErrProp: 'Parameter ini "{0}" tidak disokong selepas menatal maya diaktifkan',
19
19
  errConflicts: 'Parameter "{0}" Konflik dengan "{1}"',
20
20
  modelConflicts: '绑定的字段值 "{0}" 与 "{1}" 存在冲突,将会出现错误',
21
- reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
22
21
  notSupportProp: '"{1}" tidak disokong apabila parameter "{0}" diaktifkan, ia harus "{2}", jika tidak, ralat akan berlaku',
22
+ reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
23
23
  notConflictProp: 'Apabila menggunakan "{0}", "{1}" harus ditetapkan, jika tidak ada konflik fungsional',
24
24
  unableInsert: 'Tidak dapat dimasukkan ke lokasi yang ditentukan, sila periksa sama ada parameternya betul',
25
25
  useErr: 'Ralat berlaku semasa memasang modul "{0}". Perintah itu mungkin tidak betul. Modul bergantung perlu dipasang sebelum jadual',
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'cari',
110
110
  loadingText: 'Memuatkan',
111
111
  emptyText: 'Belum ada data',
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -18,8 +18,8 @@ export default {
18
18
  scrollErrProp: 'Denne parameteren "{0}" støttes ikke etter at virtuell rulling er aktivert',
19
19
  errConflicts: 'Parameter "{0}" Konflikter med "{1}"',
20
20
  modelConflicts: '绑定的字段值 "{0}" 与 "{1}" 存在冲突,将会出现错误',
21
- reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
22
21
  notSupportProp: '"{1}" støttes ikke når parameteren "{0}" er aktivert, den skal være "{2}", ellers vil det oppstå en feil',
22
+ reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
23
23
  notConflictProp: 'Når du bruker "{0}", "{1}" skal settes, ellers kan det være funksjonelle konflikter',
24
24
  unableInsert: 'Kan ikke settes inn på det spesifiserte stedet, vennligst sjekk om parametrene er riktige',
25
25
  useErr: 'En feil oppstod mens du installerte "{0}" -modulen. Bestillingen kan være feil. Den avhengige modulen må installeres før tabellen',
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'søk',
110
110
  loadingText: 'lasting',
111
111
  emptyText: 'Ingen data ennå',
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -18,8 +18,8 @@ export default {
18
18
  scrollErrProp: 'Este parâmetro "{0}" não é suportado após a rolagem virtual ser ativada',
19
19
  errConflicts: 'Parâmetro "{0}" conflita com "{1}"',
20
20
  modelConflicts: '绑定的字段值 "{0}" 与 "{1}" 存在冲突,将会出现错误',
21
- reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
22
21
  notSupportProp: '"{1}" não é suportado quando o parâmetro "{0}" estiver ativado, ele deve ser "{2}", caso contrário, um erro ocorrerá',
22
+ reqSupportProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会出现错误',
23
23
  notConflictProp: 'Ao usar "{0}", "{1}" deve ser definido, caso contrário, pode haver conflitos funcionais',
24
24
  unableInsert: 'Não pode ser inserido no local especificado, verifique se os parâmetros estão corretos',
25
25
  useErr: 'Ocorreu um erro ao instalar o módulo "{0}". O pedido pode estar incorreto. O módulo dependente precisa ser instalado antes da tabela',
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'procurar',
110
110
  loadingText: 'carregando',
111
111
  emptyText: 'Ainda não há dados',
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'ค้นหา',
110
110
  loadingText: 'การโหลด',
111
111
  emptyText: 'ยังไม่มีข้อมูล',
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'ئىزدەش',
110
110
  loadingText: 'يۈكلىنىۋاتىدۇ',
111
111
  emptyText: 'ھازىرچە ئۇچۇر يوق',
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'обшук',
110
110
  loadingText: 'навантаження',
111
111
  emptyText: 'Ще немає даних',
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -109,7 +109,7 @@ export default {
109
109
  search: 'qidirish',
110
110
  loadingText: 'yuklamoq',
111
111
  emptyText: "Hali ma'lumot yo'q",
112
- maxOpt: '最大可选择的数量不能超过 {0} 个',
112
+ maxSize: '最大可选择的数量不能超过 {0} 个',
113
113
  overSizeErr: '已超出最大可选数量 {0} 个,超出部分将被忽略!',
114
114
  searchEmpty: '未匹配到数据!'
115
115
  },
@@ -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.23";
4
+ export const version = "4.14.25";
5
5
  VxeUI.uiVersion = version;
6
6
  VxeUI.dynamicApp = dynamicApp;
7
7
  export function config(options) {