ll-plus 2.7.16 → 2.7.17

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 (245) hide show
  1. package/es/components/advanced-filtering/index.d.ts +296 -296
  2. package/es/components/advanced-filtering/src/advanced-filtering.vue.d.ts +148 -148
  3. package/es/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +148 -148
  4. package/es/components/breadcrumb-card/index.d.ts +1 -1
  5. package/es/components/breadcrumb-card/src/breadcrumb-card.vue.d.ts +1 -1
  6. package/es/components/cascader/index.d.ts +8 -8
  7. package/es/components/cascader/src/cascader.vue.d.ts +8 -8
  8. package/es/components/checkbox/index.d.ts +217 -217
  9. package/es/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
  10. package/es/components/checkbox/src/checkbox.d.ts +56 -56
  11. package/es/components/drawer/index.d.ts +5 -5
  12. package/es/components/drawer/src/components/second-confirmation/index.d.ts +1 -1
  13. package/es/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +1 -1
  14. package/es/components/drawer/src/drawer.vue.d.ts +5 -5
  15. package/es/components/easy-cron/index.d.ts +88 -88
  16. package/es/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +88 -88
  17. package/es/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +88 -88
  18. package/es/components/easy-cron/src/easy-cron.vue.d.ts +88 -88
  19. package/es/components/form/index.d.ts +148 -148
  20. package/es/components/form/src/components/form-component.vue.d.ts +1 -1
  21. package/es/components/form/src/config/form.d.ts +56 -56
  22. package/es/components/form/src/form.vue.d.ts +147 -147
  23. package/es/components/icon-picker/index.d.ts +1 -1
  24. package/es/components/icon-picker/src/components/modal.vue.d.ts +1 -1
  25. package/es/components/icon-picker/src/icon-picker.vue.d.ts +1 -1
  26. package/es/components/input/index.d.ts +33 -33
  27. package/es/components/input/src/input.vue.d.ts +33 -33
  28. package/es/components/key-value/index.d.ts +2 -16122
  29. package/es/components/key-value/src/components/key-value-item.vue.d.ts +329 -372
  30. package/es/components/key-value/src/config/key-value-item.d.ts +40 -291
  31. package/es/components/key-value/src/config/key-value.d.ts +23 -29
  32. package/es/components/key-value/src/key-value.vue.d.ts +1137 -1251
  33. package/es/components/modal/index.d.ts +1 -1
  34. package/es/components/modal/src/modal.vue.d.ts +1 -1
  35. package/es/components/new-drawer/index.d.ts +7 -7
  36. package/es/components/new-drawer/src/drawer.vue.d.ts +7 -7
  37. package/es/components/new-modal/index.d.ts +2 -2
  38. package/es/components/new-modal/src/modal.vue.d.ts +2 -2
  39. package/es/components/rich-text-editor/index.d.ts +1 -1
  40. package/es/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
  41. package/es/components/select/index.d.ts +4 -4
  42. package/es/components/select/src/select.vue.d.ts +4 -4
  43. package/es/components/select-group/index.d.ts +2 -2
  44. package/es/components/select-group/src/select-group.d.ts +1 -1
  45. package/es/components/select-group/src/select-group.vue.d.ts +2 -2
  46. package/es/components/table/index.d.ts +6 -6
  47. package/es/components/table/src/components/main-table.vue.d.ts +2 -2
  48. package/es/components/table/src/config/table.d.ts +2 -2
  49. package/es/components/table/src/table.vue.d.ts +6 -6
  50. package/es/components/textarea/index.d.ts +5 -5
  51. package/es/components/textarea/src/textarea.vue.d.ts +5 -5
  52. package/es/components/tooltip/index.d.ts +4 -4
  53. package/es/components/tooltip/src/tooltip.d.ts +1 -1
  54. package/es/components/tooltip/src/tooltip.vue.d.ts +4 -4
  55. package/es/components/tree-search/index.d.ts +1 -1
  56. package/es/components/tree-search/src/tree-search.vue.d.ts +1 -1
  57. package/es/components/upload-drag/index.d.ts +2 -2
  58. package/es/components/upload-drag/src/upload-drag.vue.d.ts +2 -2
  59. package/es/index.mjs +1 -1
  60. package/es/packages/components/form/src/form.vue2.mjs +15 -9
  61. package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
  62. package/es/packages/components/key-value/index.mjs.map +1 -1
  63. package/es/packages/components/key-value/src/components/key-value-item.vue2.mjs +16 -9
  64. package/es/packages/components/key-value/src/components/key-value-item.vue2.mjs.map +1 -1
  65. package/es/packages/components/key-value/src/config/key-value-item.mjs +26 -10
  66. package/es/packages/components/key-value/src/config/key-value-item.mjs.map +1 -1
  67. package/es/packages/components/key-value/src/config/key-value.mjs +3 -1
  68. package/es/packages/components/key-value/src/config/key-value.mjs.map +1 -1
  69. package/es/packages/components/key-value/src/key-value.vue2.mjs +61 -21
  70. package/es/packages/components/key-value/src/key-value.vue2.mjs.map +1 -1
  71. package/es/packages/utils/data.mjs +8 -1
  72. package/es/packages/utils/data.mjs.map +1 -1
  73. package/es/packages/utils/index.mjs +1 -1
  74. package/es/utils/data.d.ts +1 -0
  75. package/index.full.js +126 -48
  76. package/index.full.min.js +22 -22
  77. package/index.full.min.js.map +1 -1
  78. package/index.full.min.mjs +22 -22
  79. package/index.full.min.mjs.map +1 -1
  80. package/index.full.mjs +126 -49
  81. package/lib/components/advanced-filtering/index.d.ts +296 -296
  82. package/lib/components/advanced-filtering/src/advanced-filtering.vue.d.ts +148 -148
  83. package/lib/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +148 -148
  84. package/lib/components/breadcrumb-card/index.d.ts +1 -1
  85. package/lib/components/breadcrumb-card/src/breadcrumb-card.vue.d.ts +1 -1
  86. package/lib/components/cascader/index.d.ts +8 -8
  87. package/lib/components/cascader/src/cascader.vue.d.ts +8 -8
  88. package/lib/components/checkbox/index.d.ts +217 -217
  89. package/lib/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
  90. package/lib/components/checkbox/src/checkbox.d.ts +56 -56
  91. package/lib/components/drawer/index.d.ts +5 -5
  92. package/lib/components/drawer/src/components/second-confirmation/index.d.ts +1 -1
  93. package/lib/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +1 -1
  94. package/lib/components/drawer/src/drawer.vue.d.ts +5 -5
  95. package/lib/components/easy-cron/index.d.ts +88 -88
  96. package/lib/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +88 -88
  97. package/lib/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +88 -88
  98. package/lib/components/easy-cron/src/easy-cron.vue.d.ts +88 -88
  99. package/lib/components/form/index.d.ts +148 -148
  100. package/lib/components/form/src/components/form-component.vue.d.ts +1 -1
  101. package/lib/components/form/src/config/form.d.ts +56 -56
  102. package/lib/components/form/src/form.vue.d.ts +147 -147
  103. package/lib/components/icon-picker/index.d.ts +1 -1
  104. package/lib/components/icon-picker/src/components/modal.vue.d.ts +1 -1
  105. package/lib/components/icon-picker/src/icon-picker.vue.d.ts +1 -1
  106. package/lib/components/input/index.d.ts +33 -33
  107. package/lib/components/input/src/input.vue.d.ts +33 -33
  108. package/lib/components/key-value/index.d.ts +2 -16122
  109. package/lib/components/key-value/src/components/key-value-item.vue.d.ts +329 -372
  110. package/lib/components/key-value/src/config/key-value-item.d.ts +40 -291
  111. package/lib/components/key-value/src/config/key-value.d.ts +23 -29
  112. package/lib/components/key-value/src/key-value.vue.d.ts +1137 -1251
  113. package/lib/components/modal/index.d.ts +1 -1
  114. package/lib/components/modal/src/modal.vue.d.ts +1 -1
  115. package/lib/components/new-drawer/index.d.ts +7 -7
  116. package/lib/components/new-drawer/src/drawer.vue.d.ts +7 -7
  117. package/lib/components/new-modal/index.d.ts +2 -2
  118. package/lib/components/new-modal/src/modal.vue.d.ts +2 -2
  119. package/lib/components/rich-text-editor/index.d.ts +1 -1
  120. package/lib/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
  121. package/lib/components/select/index.d.ts +4 -4
  122. package/lib/components/select/src/select.vue.d.ts +4 -4
  123. package/lib/components/select-group/index.d.ts +2 -2
  124. package/lib/components/select-group/src/select-group.d.ts +1 -1
  125. package/lib/components/select-group/src/select-group.vue.d.ts +2 -2
  126. package/lib/components/table/index.d.ts +6 -6
  127. package/lib/components/table/src/components/main-table.vue.d.ts +2 -2
  128. package/lib/components/table/src/config/table.d.ts +2 -2
  129. package/lib/components/table/src/table.vue.d.ts +6 -6
  130. package/lib/components/textarea/index.d.ts +5 -5
  131. package/lib/components/textarea/src/textarea.vue.d.ts +5 -5
  132. package/lib/components/tooltip/index.d.ts +4 -4
  133. package/lib/components/tooltip/src/tooltip.d.ts +1 -1
  134. package/lib/components/tooltip/src/tooltip.vue.d.ts +4 -4
  135. package/lib/components/tree-search/index.d.ts +1 -1
  136. package/lib/components/tree-search/src/tree-search.vue.d.ts +1 -1
  137. package/lib/components/upload-drag/index.d.ts +2 -2
  138. package/lib/components/upload-drag/src/upload-drag.vue.d.ts +2 -2
  139. package/lib/index.js +1 -0
  140. package/lib/index.js.map +1 -1
  141. package/lib/packages/components/form/src/form.vue2.js +15 -9
  142. package/lib/packages/components/form/src/form.vue2.js.map +1 -1
  143. package/lib/packages/components/key-value/index.js.map +1 -1
  144. package/lib/packages/components/key-value/src/components/key-value-item.vue2.js +15 -8
  145. package/lib/packages/components/key-value/src/components/key-value-item.vue2.js.map +1 -1
  146. package/lib/packages/components/key-value/src/config/key-value-item.js +26 -10
  147. package/lib/packages/components/key-value/src/config/key-value-item.js.map +1 -1
  148. package/lib/packages/components/key-value/src/config/key-value.js +3 -1
  149. package/lib/packages/components/key-value/src/config/key-value.js.map +1 -1
  150. package/lib/packages/components/key-value/src/key-value.vue2.js +60 -20
  151. package/lib/packages/components/key-value/src/key-value.vue2.js.map +1 -1
  152. package/lib/packages/utils/data.js +8 -0
  153. package/lib/packages/utils/data.js.map +1 -1
  154. package/lib/packages/utils/index.js +1 -0
  155. package/lib/packages/utils/index.js.map +1 -1
  156. package/lib/utils/data.d.ts +1 -0
  157. package/package.json +1 -1
  158. package/theme-chalk/css/advanced-filtering.css +2 -2
  159. package/theme-chalk/css/api-component.css +2 -2
  160. package/theme-chalk/css/cascader.css +2 -2
  161. package/theme-chalk/css/checkbox.css +2 -2
  162. package/theme-chalk/css/code-editor.css +2 -2
  163. package/theme-chalk/css/color-picker.css +2 -2
  164. package/theme-chalk/css/cropper.css +2 -2
  165. package/theme-chalk/css/descriptions.css +2 -2
  166. package/theme-chalk/css/drawer.css +2 -2
  167. package/theme-chalk/css/dropdown-button-simple.css +2 -2
  168. package/theme-chalk/css/dropdown.css +2 -2
  169. package/theme-chalk/css/easy-cron.css +2 -2
  170. package/theme-chalk/css/form.css +2 -2
  171. package/theme-chalk/css/images.css +1 -1
  172. package/theme-chalk/css/index.css +3 -3
  173. package/theme-chalk/css/input-number.css +2 -2
  174. package/theme-chalk/css/input.css +2 -2
  175. package/theme-chalk/css/key-value.css +2 -2
  176. package/theme-chalk/css/markdown-editor.css +2 -2
  177. package/theme-chalk/css/modal.css +2 -2
  178. package/theme-chalk/css/new-drawer.css +2 -2
  179. package/theme-chalk/css/new-modal.css +2 -2
  180. package/theme-chalk/css/number-range.css +2 -2
  181. package/theme-chalk/css/rich-text-editor.css +2 -2
  182. package/theme-chalk/css/segmented.css +2 -2
  183. package/theme-chalk/css/switch.css +2 -2
  184. package/theme-chalk/css/table.css +2 -2
  185. package/theme-chalk/css/tabs-simple.css +2 -2
  186. package/theme-chalk/css/tag-group.css +2 -2
  187. package/types/packages/components/advanced-filtering/index.d.ts +296 -296
  188. package/types/packages/components/advanced-filtering/src/advanced-filtering.vue.d.ts +148 -148
  189. package/types/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +148 -148
  190. package/types/packages/components/breadcrumb-card/index.d.ts +1 -1
  191. package/types/packages/components/breadcrumb-card/src/breadcrumb-card.vue.d.ts +1 -1
  192. package/types/packages/components/cascader/index.d.ts +8 -8
  193. package/types/packages/components/cascader/src/cascader.vue.d.ts +8 -8
  194. package/types/packages/components/checkbox/index.d.ts +217 -217
  195. package/types/packages/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
  196. package/types/packages/components/checkbox/src/checkbox.d.ts +56 -56
  197. package/types/packages/components/drawer/index.d.ts +5 -5
  198. package/types/packages/components/drawer/src/components/second-confirmation/index.d.ts +1 -1
  199. package/types/packages/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +1 -1
  200. package/types/packages/components/drawer/src/drawer.vue.d.ts +5 -5
  201. package/types/packages/components/easy-cron/index.d.ts +88 -88
  202. package/types/packages/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +88 -88
  203. package/types/packages/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +88 -88
  204. package/types/packages/components/easy-cron/src/easy-cron.vue.d.ts +88 -88
  205. package/types/packages/components/form/index.d.ts +148 -148
  206. package/types/packages/components/form/src/components/form-component.vue.d.ts +1 -1
  207. package/types/packages/components/form/src/config/form.d.ts +56 -56
  208. package/types/packages/components/form/src/form.vue.d.ts +147 -147
  209. package/types/packages/components/icon-picker/index.d.ts +1 -1
  210. package/types/packages/components/icon-picker/src/components/modal.vue.d.ts +1 -1
  211. package/types/packages/components/icon-picker/src/icon-picker.vue.d.ts +1 -1
  212. package/types/packages/components/input/index.d.ts +33 -33
  213. package/types/packages/components/input/src/input.vue.d.ts +33 -33
  214. package/types/packages/components/key-value/index.d.ts +2 -16122
  215. package/types/packages/components/key-value/src/components/key-value-item.vue.d.ts +329 -372
  216. package/types/packages/components/key-value/src/config/key-value-item.d.ts +40 -291
  217. package/types/packages/components/key-value/src/config/key-value.d.ts +23 -29
  218. package/types/packages/components/key-value/src/key-value.vue.d.ts +1137 -1251
  219. package/types/packages/components/modal/index.d.ts +1 -1
  220. package/types/packages/components/modal/src/modal.vue.d.ts +1 -1
  221. package/types/packages/components/new-drawer/index.d.ts +7 -7
  222. package/types/packages/components/new-drawer/src/drawer.vue.d.ts +7 -7
  223. package/types/packages/components/new-modal/index.d.ts +2 -2
  224. package/types/packages/components/new-modal/src/modal.vue.d.ts +2 -2
  225. package/types/packages/components/rich-text-editor/index.d.ts +1 -1
  226. package/types/packages/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
  227. package/types/packages/components/select/index.d.ts +4 -4
  228. package/types/packages/components/select/src/select.vue.d.ts +4 -4
  229. package/types/packages/components/select-group/index.d.ts +2 -2
  230. package/types/packages/components/select-group/src/select-group.d.ts +1 -1
  231. package/types/packages/components/select-group/src/select-group.vue.d.ts +2 -2
  232. package/types/packages/components/table/index.d.ts +6 -6
  233. package/types/packages/components/table/src/components/main-table.vue.d.ts +2 -2
  234. package/types/packages/components/table/src/config/table.d.ts +2 -2
  235. package/types/packages/components/table/src/table.vue.d.ts +6 -6
  236. package/types/packages/components/textarea/index.d.ts +5 -5
  237. package/types/packages/components/textarea/src/textarea.vue.d.ts +5 -5
  238. package/types/packages/components/tooltip/index.d.ts +4 -4
  239. package/types/packages/components/tooltip/src/tooltip.d.ts +1 -1
  240. package/types/packages/components/tooltip/src/tooltip.vue.d.ts +4 -4
  241. package/types/packages/components/tree-search/index.d.ts +1 -1
  242. package/types/packages/components/tree-search/src/tree-search.vue.d.ts +1 -1
  243. package/types/packages/components/upload-drag/index.d.ts +2 -2
  244. package/types/packages/components/upload-drag/src/upload-drag.vue.d.ts +2 -2
  245. package/types/packages/utils/data.d.ts +1 -0
@@ -5,7 +5,7 @@ import './config/index.mjs';
5
5
  import keyValueItem from './components/key-value-item.vue.mjs';
6
6
  import { keyValueProps, keyValueEmits, getKeyValueItem } from './config/key-value.mjs';
7
7
  import { createNamespace } from '../../../utils/create-namespace.mjs';
8
- import { hasValue, deepCompare } from '../../../utils/data.mjs';
8
+ import { guid, hasValue, deepCompare } from '../../../utils/data.mjs';
9
9
 
10
10
  "use strict";
11
11
  var _sfc_main = /* @__PURE__ */ defineComponent({
@@ -19,38 +19,68 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
19
19
  const bem = createNamespace("key-value");
20
20
  const formItemContext = Form.useInjectFormItemContext();
21
21
  const innerValue = ref(
22
- props.value.length ? props.value : [{ key: null, value: null }]
22
+ !props.value || props.value && !props.value.length ? [{ key: null, value: null, guid: guid() }] : props.value.map((e) => {
23
+ return {
24
+ ...e,
25
+ guid: guid()
26
+ };
27
+ })
23
28
  );
24
- const keyValueItems = ref([]);
29
+ const keyValueItems = ref({});
30
+ const setKeyValueItems = (el, type) => {
31
+ if (el) {
32
+ keyValueItems.value[type] = el;
33
+ }
34
+ };
25
35
  const keyValueTypeDict = computed(() => {
26
36
  const obj = {};
27
- props.keyTypes.map((e) => {
37
+ props.keyTypes.forEach((e) => {
28
38
  obj[e.value] = e.option;
29
39
  });
30
40
  return obj;
31
41
  });
32
42
  const validate = async () => {
33
43
  await nextTick();
34
- return Promise.all(
35
- keyValueItems.value.filter((e) => !!e).map((e) => e.validate())
44
+ const validationPromises = Object.values(keyValueItems.value).map(
45
+ async (item) => {
46
+ try {
47
+ await item.validate();
48
+ return { item, valid: true };
49
+ } catch (error) {
50
+ console.error("Validation failed for item:", item, error);
51
+ return { item, valid: false, error };
52
+ }
53
+ }
36
54
  );
55
+ const validationResults = await Promise.all(validationPromises);
56
+ const allValid = validationResults.every((result) => result.valid);
57
+ const errors = validationResults.filter((result) => !result.valid);
58
+ if (!allValid) {
59
+ console.log("Validation errors:", errors);
60
+ return { valid: false, errors };
61
+ }
62
+ return { valid: true };
37
63
  };
38
64
  const resetFields = async () => {
39
65
  await nextTick();
40
- return Promise.all(
41
- keyValueItems.value.filter((e) => !!e).map((e) => e.resetFields())
42
- );
66
+ for (const i of Object.values(keyValueItems.value)) {
67
+ if (i) {
68
+ i.resetFields();
69
+ }
70
+ }
43
71
  };
44
72
  const clearValidate = async () => {
45
73
  await nextTick();
46
- return Promise.all(
47
- keyValueItems.value.filter((e) => !!e).map((e) => e.clearValidate())
48
- );
74
+ for (const i of Object.values(keyValueItems.value)) {
75
+ if (i) {
76
+ i.clearValidate();
77
+ }
78
+ }
49
79
  };
50
80
  const handleAddItem = async () => {
51
- const valid = await validate();
52
- if (props.validate && !valid)
53
- return false;
81
+ const { valid } = await validate();
82
+ if (!valid)
83
+ return;
54
84
  innerValue.value.push(getKeyValueItem());
55
85
  emits("add", {
56
86
  index: innerValue.value.length - 1,
@@ -60,25 +90,35 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
60
90
  };
61
91
  const handleDelete = (idx) => {
62
92
  if (innerValue.value.length === 1) {
63
- innerValue.value = [{ key: null, value: null }];
93
+ innerValue.value = [{ key: null, value: null, guid: guid() }];
64
94
  } else {
65
95
  innerValue.value.splice(idx, 1);
66
96
  emits("delete", idx);
67
97
  }
68
98
  };
69
99
  const getValue = (val) => {
70
- return val.filter((e) => hasValue(e.key) || hasValue(e.value));
100
+ return val.filter((e) => hasValue(e.key) || hasValue(e.value)).map((e) => ({
101
+ key: e.key,
102
+ value: e.value
103
+ }));
71
104
  };
72
105
  watch(
73
106
  () => props.value,
74
107
  (n) => {
108
+ if (!n || n && !n.length)
109
+ return;
75
110
  const copyInnerValue = getValue(innerValue.value);
76
111
  const copyPropsValue = getValue(n);
77
112
  if (deepCompare(copyInnerValue, copyPropsValue))
78
113
  return;
79
114
  innerValue.value = [
80
- ...n && n.length > 0 ? n : props.keepLast ? [{ key: null, value: null }] : n
81
- ];
115
+ ...n && n.length > 0 ? n : props.keepLast ? [{ key: null, value: null, guid: guid() }] : n
116
+ ].map((e) => {
117
+ return {
118
+ ...e,
119
+ guid: guid()
120
+ };
121
+ });
82
122
  },
83
123
  {
84
124
  immediate: true,
@@ -135,9 +175,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
135
175
  null,
136
176
  renderList(innerValue.value, (_item, idx) => {
137
177
  return openBlock(), createBlock(keyValueItem, {
138
- key: _item,
178
+ key: _item.guid,
139
179
  ref_for: true,
140
- ref: (el) => keyValueItems.value[idx] = el,
180
+ ref: (el) => setKeyValueItems(el, _item.guid),
141
181
  value: innerValue.value[idx],
142
182
  "onUpdate:value": ($event) => innerValue.value[idx] = $event,
143
183
  idx,
@@ -1 +1 @@
1
- {"version":3,"file":"key-value.vue2.mjs","sources":["../../../../../../packages/components/key-value/src/key-value.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <a-spin :spinning=\"props.loading\">\n <div v-if=\"innerValue.length > 0\" :class=\"bem.e('list')\">\n <key-value-item\n v-for=\"(_item, idx) in innerValue\"\n :key=\"_item\"\n :ref=\"el => (keyValueItems[idx] = el)\"\n v-model:value=\"innerValue[idx]\"\n :idx=\"idx\"\n :key-label=\"props.keyLabel\"\n :value-label=\"props.valueLabel\"\n :key-value-type-dict=\"keyValueTypeDict\"\n :key-value-type=\"props.keyValueType\"\n :key-type=\"props.keyType\"\n :key-types=\"props.keyTypes\"\n :value-type=\"props.valueType\"\n :values=\"innerValue\"\n :disabled=\"props.disabled\"\n :disabled-value=\"props.disabledValue\"\n :disabled-key=\"props.disabledKey\"\n :disabled-delete=\"props.disabledDelete\"\n :keep-last=\"props.keepLast\"\n @delete=\"handleDelete(idx)\"\n >\n <template\n v-for=\"item in Object.keys($slots)\"\n :key=\"item\"\n #[item]=\"data\"\n >\n <slot :name=\"item\" v-bind=\"data || {}\" :index=\"idx\"></slot>\n </template>\n </key-value-item>\n </div>\n\n <ll-button\n :class=\"bem.e('add')\"\n :loading=\"loading\"\n :disabled=\"props.disabled || props.disabledAdd\"\n @click=\"handleAddItem\"\n >\n <div :class=\"bem.e('plus')\">\n <ll-icon\n v-if=\"!loading\"\n icon-name=\"icon-add\"\n :class=\"bem.e('icon-add')\"\n />\n {{ props.addText }}\n </div>\n </ll-button>\n </a-spin>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch, nextTick } from 'vue'\nimport { Form } from 'ant-design-vue'\nimport { createNamespace, deepCompare, hasValue } from '@ll-plus/utils'\nimport {\n keyValueProps,\n keyValueEmits,\n getKeyValueItem,\n type KeyValueItem\n} from './config'\nimport keyValueItem from './components/key-value-item.vue'\n\ndefineOptions({ name: 'LlKeyValue' })\n\nconst props = defineProps(keyValueProps)\nconst emits = defineEmits(keyValueEmits)\nconst bem = createNamespace('key-value')\nconst formItemContext = Form.useInjectFormItemContext()\n\nconst innerValue = ref<KeyValueItem[]>(\n props.value.length ? props.value : [{ key: null, value: null }]\n)\n\nconst keyValueItems = ref<InstanceType<typeof keyValueItem>[]>([])\n\nconst keyValueTypeDict = computed(() => {\n const obj = {}\n props.keyTypes.map(e => {\n obj[e.value] = e.option\n })\n return obj\n})\n\nconst validate = async () => {\n await nextTick()\n return Promise.all(\n keyValueItems.value.filter(e => !!e).map(e => e.validate())\n )\n}\n\nconst resetFields = async () => {\n await nextTick()\n return Promise.all(\n keyValueItems.value.filter(e => !!e).map(e => e.resetFields())\n )\n}\n\nconst clearValidate = async () => {\n await nextTick()\n return Promise.all(\n keyValueItems.value.filter(e => !!e).map(e => e.clearValidate())\n )\n}\n\nconst handleAddItem = async () => {\n const valid = await validate()\n if (props.validate && !valid) return false\n innerValue.value.push(getKeyValueItem())\n emits('add', {\n index: innerValue.value.length - 1,\n item: innerValue.value[innerValue.value.length - 1],\n value: innerValue.value\n })\n}\n\nconst handleDelete = (idx: number) => {\n if (innerValue.value.length === 1) {\n innerValue.value = [{ key: null, value: null }]\n } else {\n innerValue.value.splice(idx, 1)\n emits('delete', idx)\n }\n}\n\n// const handleChange = () => {\n// try {\n// formItemContext.onFieldChange()\n// emits('change', innerValue.value)\n// emits('update:value', innerValue.value)\n// } catch (error) {\n// console.error(error)\n// }\n// }\n\nconst getValue = (val: KeyValueItem[]) => {\n return val.filter(e => hasValue(e.key) || hasValue(e.value))\n}\n\nwatch(\n () => props.value,\n n => {\n const copyInnerValue = getValue(innerValue.value)\n const copyPropsValue = getValue(n)\n if (deepCompare(copyInnerValue, copyPropsValue)) return\n innerValue.value = [\n ...(n && n.length > 0\n ? n\n : props.keepLast\n ? [{ key: null, value: null }]\n : n)\n ]\n },\n {\n immediate: true,\n deep: true\n }\n)\n\nwatch(\n () => innerValue.value,\n val => {\n const copyInnerValue = getValue(val)\n const copyPropsValue = getValue(props.value)\n if (deepCompare(copyInnerValue, copyPropsValue)) return\n try {\n formItemContext.onFieldChange()\n emits('change', copyInnerValue)\n emits('update:value', copyInnerValue)\n } catch (error) {\n console.error(error)\n }\n },\n {\n deep: true\n }\n)\n\ndefineExpose({\n validate,\n resetFields,\n clearValidate\n})\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-value.vue2.mjs","sources":["../../../../../../packages/components/key-value/src/key-value.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <a-spin :spinning=\"props.loading\">\n <div v-if=\"innerValue.length > 0\" :class=\"bem.e('list')\">\n <key-value-item\n v-for=\"(_item, idx) in innerValue\"\n :key=\"_item.guid\"\n :ref=\"el => setKeyValueItems(el, _item.guid)\"\n v-model:value=\"innerValue[idx]\"\n :idx=\"idx\"\n :key-label=\"props.keyLabel\"\n :value-label=\"props.valueLabel\"\n :key-value-type-dict=\"keyValueTypeDict\"\n :key-value-type=\"props.keyValueType\"\n :key-type=\"props.keyType\"\n :key-types=\"props.keyTypes\"\n :value-type=\"props.valueType\"\n :values=\"innerValue\"\n :disabled=\"props.disabled\"\n :disabled-value=\"props.disabledValue\"\n :disabled-key=\"props.disabledKey\"\n :disabled-delete=\"props.disabledDelete\"\n :keep-last=\"props.keepLast\"\n @delete=\"handleDelete(idx)\"\n >\n <template\n v-for=\"item in Object.keys($slots)\"\n :key=\"item\"\n #[item]=\"data\"\n >\n <slot :name=\"item\" v-bind=\"data || {}\" :index=\"idx\"></slot>\n </template>\n </key-value-item>\n </div>\n\n <ll-button\n :class=\"bem.e('add')\"\n :loading=\"loading\"\n :disabled=\"props.disabled || props.disabledAdd\"\n @click=\"handleAddItem\"\n >\n <div :class=\"bem.e('plus')\">\n <ll-icon\n v-if=\"!loading\"\n icon-name=\"icon-add\"\n :class=\"bem.e('icon-add')\"\n />\n {{ props.addText }}\n </div>\n </ll-button>\n </a-spin>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch, nextTick } from 'vue'\nimport { Form } from 'ant-design-vue'\nimport { createNamespace, deepCompare, hasValue, guid } from '@ll-plus/utils'\nimport {\n keyValueProps,\n keyValueEmits,\n getKeyValueItem,\n type IKeyValueItem,\n type IKeyValueReturn,\n type IKeyValueAddEmits\n} from './config'\nimport keyValueItem from './components/key-value-item.vue'\nimport type { FormColumn } from '@ll-plus/components'\n\ntype KeyValueItemInstance = InstanceType<typeof keyValueItem>\n\ndefineOptions({ name: 'LlKeyValue' })\n\nconst props = defineProps(keyValueProps)\nconst emits = defineEmits(keyValueEmits)\nconst bem = createNamespace('key-value')\nconst formItemContext = Form.useInjectFormItemContext()\n\nconst innerValue = ref<IKeyValueItem[]>(\n !props.value || (props.value && !props.value.length)\n ? ([{ key: null, value: null, guid: guid() }] as IKeyValueItem[])\n : (props.value.map(e => {\n return {\n ...e,\n guid: guid()\n }\n }) as IKeyValueItem[])\n)\nconst keyValueItems = ref<Record<string, KeyValueItemInstance>>({})\n\nconst setKeyValueItems = (\n el: KeyValueItemInstance | null,\n type: string\n): void => {\n if (el) {\n keyValueItems.value[type] = el\n }\n}\n\nconst keyValueTypeDict = computed<Record<string, FormColumn>>(() => {\n const obj: Record<string, FormColumn> = {}\n props.keyTypes.forEach(e => {\n obj[e.value] = e.option\n })\n return obj\n})\n\nconst validate = async (): Promise<{ valid: boolean; errors?: any[] }> => {\n await nextTick()\n\n const validationPromises = Object.values(keyValueItems.value).map(\n async item => {\n try {\n await item.validate()\n return { item, valid: true }\n } catch (error) {\n console.error('Validation failed for item:', item, error)\n return { item, valid: false, error }\n }\n }\n )\n\n const validationResults = await Promise.all(validationPromises)\n\n const allValid = validationResults.every(result => result.valid)\n const errors = validationResults.filter(result => !result.valid)\n\n if (!allValid) {\n console.log('Validation errors:', errors)\n return { valid: false, errors }\n }\n\n return { valid: true }\n}\n\nconst resetFields = async (): Promise<void> => {\n await nextTick()\n for (const i of Object.values(keyValueItems.value)) {\n if (i) {\n i.resetFields()\n }\n }\n}\n\nconst clearValidate = async (): Promise<void> => {\n await nextTick()\n for (const i of Object.values(keyValueItems.value)) {\n if (i) {\n i.clearValidate()\n }\n }\n}\n\nconst handleAddItem = async (): Promise<void> => {\n const { valid } = await validate()\n if (!valid) return\n innerValue.value.push(getKeyValueItem())\n emits('add', {\n index: innerValue.value.length - 1,\n item: innerValue.value[innerValue.value.length - 1],\n value: innerValue.value\n } as IKeyValueAddEmits)\n}\n\nconst handleDelete = (idx: number): void => {\n if (innerValue.value.length === 1) {\n innerValue.value = [{ key: null, value: null, guid: guid() }]\n } else {\n innerValue.value.splice(idx, 1)\n emits('delete', idx)\n }\n}\n\nconst getValue = (\n val: IKeyValueItem[] | IKeyValueReturn[]\n): IKeyValueReturn[] => {\n return val\n .filter(e => hasValue(e.key) || hasValue(e.value))\n .map(e => ({\n key: e.key,\n value: e.value\n }))\n}\n\nwatch(\n () => props.value,\n (n: IKeyValueReturn[]) => {\n if (!n || (n && !n.length)) return\n const copyInnerValue = getValue(innerValue.value)\n const copyPropsValue = getValue(n)\n if (deepCompare(copyInnerValue, copyPropsValue)) return\n innerValue.value = [\n ...(n && n.length > 0\n ? n\n : props.keepLast\n ? [{ key: null, value: null, guid: guid() }]\n : n)\n ].map(e => {\n return {\n ...e,\n guid: guid()\n }\n })\n },\n {\n immediate: true,\n deep: true\n }\n)\n\nwatch(\n () => innerValue.value,\n (val: IKeyValueItem[]) => {\n const copyInnerValue = getValue(val)\n const copyPropsValue = getValue(props.value)\n if (deepCompare(copyInnerValue, copyPropsValue)) return\n try {\n formItemContext.onFieldChange()\n emits('change', copyInnerValue)\n emits('update:value', copyInnerValue)\n } catch (error) {\n console.error(error)\n }\n },\n {\n deep: true\n }\n)\n\ndefineExpose({\n validate,\n resetFields,\n clearValidate\n})\n</script>\n"],"names":[],"mappings":"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"}
@@ -30,6 +30,13 @@ function deepCompare(obj1, obj2) {
30
30
  const hasValue = (value) => {
31
31
  return Array.isArray(value) ? value.length > 0 : !isNull(value) && !isUndefined(value) && value !== "";
32
32
  };
33
+ const guid = () => {
34
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
35
+ const r = Math.random() * 16 | 0;
36
+ const v = c === "x" ? r : r & 3 | 8;
37
+ return v.toString(16);
38
+ });
39
+ };
33
40
 
34
- export { deepCompare, hasValue };
41
+ export { deepCompare, guid, hasValue };
35
42
  //# sourceMappingURL=data.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.mjs","sources":["../../../../packages/utils/data.ts"],"sourcesContent":["import { isNull, isUndefined } from 'lodash-es'\n\nexport function deepCompare(obj1: any, obj2: any): boolean {\n const stack = [[obj1, obj2]]\n\n while (stack.length) {\n const [a, b] = stack.pop() as any[]\n\n if (a === b) continue\n\n if (\n typeof a !== 'object' ||\n a === null ||\n typeof b !== 'object' ||\n b === null\n ) {\n return false\n }\n\n const keysA = Object.keys(a)\n const keysB = Object.keys(b)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n // If both objects have no keys, consider them equal\n if (keysA.length === 0 && keysB.length === 0) {\n continue\n }\n\n for (const key of keysA) {\n if (!keysB.includes(key)) {\n return false\n }\n stack.push([a[key], b[key]])\n }\n }\n\n return true\n}\n\nexport const hasValue = (value: any) => {\n return Array.isArray(value)\n ? value.length > 0\n : !isNull(value) && !isUndefined(value) && value !== ''\n}\n"],"names":[],"mappings":";;;AAEgB,SAAA,WAAA,CAAY,MAAW,IAAoB,EAAA;AACzD,EAAA,MAAM,KAAQ,GAAA,CAAC,CAAC,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA;AAE3B,EAAA,OAAO,MAAM,MAAQ,EAAA;AACnB,IAAA,MAAM,CAAC,CAAA,EAAG,CAAC,CAAA,GAAI,MAAM,GAAI,EAAA,CAAA;AAEzB,IAAA,IAAI,CAAM,KAAA,CAAA;AAAG,MAAA,SAAA;AAEb,IACE,IAAA,OAAO,MAAM,QACb,IAAA,CAAA,KAAM,QACN,OAAO,CAAA,KAAM,QACb,IAAA,CAAA,KAAM,IACN,EAAA;AACA,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AAEA,IAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,IAAA,CAAK,CAAC,CAAA,CAAA;AAC3B,IAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,IAAA,CAAK,CAAC,CAAA,CAAA;AAE3B,IAAI,IAAA,KAAA,CAAM,MAAW,KAAA,KAAA,CAAM,MAAQ,EAAA;AACjC,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AAGA,IAAA,IAAI,KAAM,CAAA,MAAA,KAAW,CAAK,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AAC5C,MAAA,SAAA;AAAA,KACF;AAEA,IAAA,KAAA,MAAW,OAAO,KAAO,EAAA;AACvB,MAAA,IAAI,CAAC,KAAA,CAAM,QAAS,CAAA,GAAG,CAAG,EAAA;AACxB,QAAO,OAAA,KAAA,CAAA;AAAA,OACT;AACA,MAAM,KAAA,CAAA,IAAA,CAAK,CAAC,CAAE,CAAA,GAAG,GAAG,CAAE,CAAA,GAAG,CAAC,CAAC,CAAA,CAAA;AAAA,KAC7B;AAAA,GACF;AAEA,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AAEa,MAAA,QAAA,GAAW,CAAC,KAAe,KAAA;AACtC,EAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GACtB,MAAM,MAAS,GAAA,CAAA,GACf,CAAC,MAAA,CAAO,KAAK,CAAK,IAAA,CAAC,WAAY,CAAA,KAAK,KAAK,KAAU,KAAA,EAAA,CAAA;AACzD;;;;"}
1
+ {"version":3,"file":"data.mjs","sources":["../../../../packages/utils/data.ts"],"sourcesContent":["import { isNull, isUndefined } from 'lodash-es'\n\nexport function deepCompare(obj1: any, obj2: any): boolean {\n const stack = [[obj1, obj2]]\n\n while (stack.length) {\n const [a, b] = stack.pop() as any[]\n\n if (a === b) continue\n\n if (\n typeof a !== 'object' ||\n a === null ||\n typeof b !== 'object' ||\n b === null\n ) {\n return false\n }\n\n const keysA = Object.keys(a)\n const keysB = Object.keys(b)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n // If both objects have no keys, consider them equal\n if (keysA.length === 0 && keysB.length === 0) {\n continue\n }\n\n for (const key of keysA) {\n if (!keysB.includes(key)) {\n return false\n }\n stack.push([a[key], b[key]])\n }\n }\n\n return true\n}\n\nexport const hasValue = (value: any) => {\n return Array.isArray(value)\n ? value.length > 0\n : !isNull(value) && !isUndefined(value) && value !== ''\n}\n\nexport const guid = (): string => {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0\n const v = c === 'x' ? r : (r & 0x3) | 0x8\n return v.toString(16)\n })\n}\n"],"names":[],"mappings":";;;AAEgB,SAAA,WAAA,CAAY,MAAW,IAAoB,EAAA;AACzD,EAAA,MAAM,KAAQ,GAAA,CAAC,CAAC,IAAA,EAAM,IAAI,CAAC,CAAA,CAAA;AAE3B,EAAA,OAAO,MAAM,MAAQ,EAAA;AACnB,IAAA,MAAM,CAAC,CAAA,EAAG,CAAC,CAAA,GAAI,MAAM,GAAI,EAAA,CAAA;AAEzB,IAAA,IAAI,CAAM,KAAA,CAAA;AAAG,MAAA,SAAA;AAEb,IACE,IAAA,OAAO,MAAM,QACb,IAAA,CAAA,KAAM,QACN,OAAO,CAAA,KAAM,QACb,IAAA,CAAA,KAAM,IACN,EAAA;AACA,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AAEA,IAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,IAAA,CAAK,CAAC,CAAA,CAAA;AAC3B,IAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,IAAA,CAAK,CAAC,CAAA,CAAA;AAE3B,IAAI,IAAA,KAAA,CAAM,MAAW,KAAA,KAAA,CAAM,MAAQ,EAAA;AACjC,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AAGA,IAAA,IAAI,KAAM,CAAA,MAAA,KAAW,CAAK,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AAC5C,MAAA,SAAA;AAAA,KACF;AAEA,IAAA,KAAA,MAAW,OAAO,KAAO,EAAA;AACvB,MAAA,IAAI,CAAC,KAAA,CAAM,QAAS,CAAA,GAAG,CAAG,EAAA;AACxB,QAAO,OAAA,KAAA,CAAA;AAAA,OACT;AACA,MAAM,KAAA,CAAA,IAAA,CAAK,CAAC,CAAE,CAAA,GAAG,GAAG,CAAE,CAAA,GAAG,CAAC,CAAC,CAAA,CAAA;AAAA,KAC7B;AAAA,GACF;AAEA,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AAEa,MAAA,QAAA,GAAW,CAAC,KAAe,KAAA;AACtC,EAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GACtB,MAAM,MAAS,GAAA,CAAA,GACf,CAAC,MAAA,CAAO,KAAK,CAAK,IAAA,CAAC,WAAY,CAAA,KAAK,KAAK,KAAU,KAAA,EAAA,CAAA;AACzD,EAAA;AAEO,MAAM,OAAO,MAAc;AAChC,EAAA,OAAO,sCAAuC,CAAA,OAAA,CAAQ,OAAS,EAAA,SAAU,CAAG,EAAA;AAC1E,IAAA,MAAM,CAAK,GAAA,IAAA,CAAK,MAAO,EAAA,GAAI,EAAM,GAAA,CAAA,CAAA;AACjC,IAAA,MAAM,CAAI,GAAA,CAAA,KAAM,GAAM,GAAA,CAAA,GAAK,IAAI,CAAO,GAAA,CAAA,CAAA;AACtC,IAAO,OAAA,CAAA,CAAE,SAAS,EAAE,CAAA,CAAA;AAAA,GACrB,CAAA,CAAA;AACH;;;;"}
@@ -8,7 +8,7 @@ export { removeQueryString } from './remove-query-string.mjs';
8
8
  export { getType, isBoolean, isElement, isEmpty, isNumber, isPropAbsent, isStringNumber, isUndefined, isWindow } from './types.mjs';
9
9
  export { dataURLtoBlob, fileToBase64, formatFileSize } from './file.mjs';
10
10
  export { deepUnref } from './deep-unref.mjs';
11
- export { deepCompare, hasValue } from './data.mjs';
11
+ export { deepCompare, guid, hasValue } from './data.mjs';
12
12
  export { buildProp, buildProps, definePropType, epPropKey, isEpProp } from './props/runtime.mjs';
13
13
  export { isArray, isDate, isFunction, isObject, isPromise, isString, isSymbol } from '@vue/shared';
14
14
  export { isVNode } from 'vue';
@@ -1,2 +1,3 @@
1
1
  export declare function deepCompare(obj1: any, obj2: any): boolean;
2
2
  export declare const hasValue: (value: any) => boolean;
3
+ export declare const guid: () => string;
package/index.full.js CHANGED
@@ -1996,6 +1996,13 @@
1996
1996
  const hasValue = (value) => {
1997
1997
  return Array.isArray(value) ? value.length > 0 : !isNull(value) && !isUndefined$3(value) && value !== "";
1998
1998
  };
1999
+ const guid = () => {
2000
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
2001
+ const r = Math.random() * 16 | 0;
2002
+ const v = c === "x" ? r : r & 3 | 8;
2003
+ return v.toString(16);
2004
+ });
2005
+ };
1999
2006
 
2000
2007
  const ALL_VALUE = "_ALL";
2001
2008
  const initValue = (columns, values) => {
@@ -63419,27 +63426,33 @@
63419
63426
  const validate = async () => {
63420
63427
  if (props.validateErrorStop) {
63421
63428
  clearValidate();
63422
- let bool = true;
63423
63429
  if (!validateFields.value.length)
63424
- return bool;
63430
+ return Promise.resolve();
63425
63431
  for (const i of validateFields.value) {
63426
- bool = await formRef.value.validateFields([i]);
63427
- if (!bool) {
63428
- return bool;
63432
+ try {
63433
+ await formRef.value.validateFields([i]);
63434
+ } catch (error) {
63435
+ return Promise.reject(error);
63429
63436
  }
63430
63437
  }
63438
+ return Promise.resolve();
63431
63439
  } else {
63432
- return await formRef.value.validateFields();
63440
+ try {
63441
+ await formRef.value.validateFields(validateFields.value);
63442
+ return Promise.resolve();
63443
+ } catch (error) {
63444
+ return Promise.reject(error);
63445
+ }
63433
63446
  }
63434
63447
  };
63435
63448
  const resetFields = async () => {
63436
- return await formRef.value.resetFields();
63449
+ await formRef.value.resetFields();
63437
63450
  };
63438
63451
  const clearValidate = async (nameList) => {
63439
- return await formRef.value.clearValidate(nameList);
63452
+ await formRef.value.clearValidate(nameList);
63440
63453
  };
63441
63454
  const scrollToField = async (name, options) => {
63442
- return await formRef.value.scrollToField(name, options);
63455
+ await formRef.value.scrollToField(name, options);
63443
63456
  };
63444
63457
  const getBindValue = (item) => {
63445
63458
  const obj = { ...item };
@@ -70342,7 +70355,8 @@
70342
70355
 
70343
70356
  const getKeyValueItem = () => ({
70344
70357
  key: null,
70345
- value: null
70358
+ value: null,
70359
+ guid: guid()
70346
70360
  });
70347
70361
  const keyValueProps = buildProps({
70348
70362
  value: {
@@ -70450,43 +70464,59 @@
70450
70464
  ];
70451
70465
  const keyValueItemProps = buildProps({
70452
70466
  disabled: {
70453
- type: Boolean
70467
+ type: Boolean,
70468
+ default: false
70454
70469
  },
70455
70470
  values: {
70456
70471
  type: definePropType(Array),
70457
70472
  default: () => [
70458
70473
  {
70459
70474
  key: null,
70460
- value: null
70475
+ value: null,
70476
+ guid: ""
70461
70477
  }
70462
70478
  ]
70463
70479
  },
70464
70480
  disabledValue: {
70465
- type: definePropType(Array)
70481
+ type: definePropType(Array),
70482
+ default: () => []
70466
70483
  },
70467
70484
  disabledKey: {
70468
- type: definePropType(Array)
70485
+ type: definePropType(Array),
70486
+ default: () => []
70469
70487
  },
70470
70488
  disabledDelete: {
70471
- type: definePropType(Array)
70489
+ type: definePropType(Array),
70490
+ default: () => []
70472
70491
  },
70473
70492
  keyValueType: {
70474
- type: definePropType(String)
70493
+ type: definePropType(String),
70494
+ default: "doubt"
70475
70495
  },
70476
70496
  keyType: {
70477
- type: definePropType(Object)
70497
+ type: definePropType(Object),
70498
+ default: () => ({
70499
+ type: "input",
70500
+ placeholder: "\u8BF7\u8F93\u5165Key"
70501
+ })
70478
70502
  },
70479
70503
  keyTypes: {
70480
- type: definePropType(Array)
70504
+ type: definePropType(Array),
70505
+ default: () => []
70481
70506
  },
70482
70507
  valueType: {
70483
- type: definePropType(Object)
70508
+ type: definePropType(Object),
70509
+ default: () => ({
70510
+ type: "input",
70511
+ placeholder: "\u8BF7\u8F93\u5165Value"
70512
+ })
70484
70513
  },
70485
70514
  value: {
70486
70515
  type: definePropType(Object),
70487
70516
  default: () => ({
70488
70517
  key: "",
70489
- value: ""
70518
+ value: "",
70519
+ guid: ""
70490
70520
  })
70491
70521
  },
70492
70522
  idx: {
@@ -70521,7 +70551,7 @@
70521
70551
  const attrs = require$$0.useAttrs();
70522
70552
  const bem = createNamespace("key-value");
70523
70553
  const innerValue = require$$0.ref(props.value);
70524
- const form = require$$0.ref();
70554
+ const formRef = require$$0.ref();
70525
70555
  const getKeyType = require$$0.computed(() => {
70526
70556
  const option = props.keyType;
70527
70557
  return option;
@@ -70550,16 +70580,23 @@
70550
70580
  };
70551
70581
  const handleChange = async () => {
70552
70582
  innerValue.value["value"] = null;
70553
- await form.value?.clearValidate();
70583
+ await formRef.value?.clearValidate();
70554
70584
  };
70555
70585
  const validate = async () => {
70556
- return await form.value?.validate();
70586
+ await require$$0.nextTick();
70587
+ try {
70588
+ await formRef.value?.validate();
70589
+ return Promise.resolve();
70590
+ } catch (error) {
70591
+ console.log({ error }, props.idx);
70592
+ return Promise.reject();
70593
+ }
70557
70594
  };
70558
70595
  const resetFields = async () => {
70559
- return await form.value?.resetFields();
70596
+ await formRef.value?.resetFields();
70560
70597
  };
70561
70598
  const clearValidate = async (namePath) => {
70562
- return await form.value?.clearValidate(namePath);
70599
+ await formRef.value?.clearValidate(namePath);
70563
70600
  };
70564
70601
  require$$0.watch(
70565
70602
  innerValue,
@@ -70590,8 +70627,8 @@
70590
70627
  const _component_a_popconfirm = require$$0.resolveComponent("a-popconfirm");
70591
70628
  const _component_ll_form = require$$0.resolveComponent("ll-form");
70592
70629
  return require$$0.openBlock(), require$$0.createBlock(_component_ll_form, {
70593
- ref_key: "form",
70594
- ref: form,
70630
+ ref_key: "formRef",
70631
+ ref: formRef,
70595
70632
  "form-columns": require$$0.unref(formColumns),
70596
70633
  "form-data": props.value,
70597
70634
  "form-options": require$$0.unref(formOptions)
@@ -70692,7 +70729,7 @@
70692
70729
  name: "value"
70693
70730
  }, {
70694
70731
  default: require$$0.withCtx(() => [
70695
- require$$0.renderSlot(_ctx.$slots, "value-warapper", require$$0.normalizeProps(require$$0.guardReactiveProps(getValueType.value)), () => [
70732
+ require$$0.renderSlot(_ctx.$slots, "value-wrapper", require$$0.normalizeProps(require$$0.guardReactiveProps(getValueType.value)), () => [
70696
70733
  (require$$0.openBlock(), require$$0.createBlock(require$$0.resolveDynamicComponent(`ll-${getValueType.value.type}`), require$$0.mergeProps({
70697
70734
  value: innerValue.value["value"],
70698
70735
  "onUpdate:value": _cache[2] || (_cache[2] = ($event) => innerValue.value["value"] = $event),
@@ -70818,38 +70855,68 @@
70818
70855
  const bem = createNamespace("key-value");
70819
70856
  const formItemContext = antDesignVue.Form.useInjectFormItemContext();
70820
70857
  const innerValue = require$$0.ref(
70821
- props.value.length ? props.value : [{ key: null, value: null }]
70858
+ !props.value || props.value && !props.value.length ? [{ key: null, value: null, guid: guid() }] : props.value.map((e) => {
70859
+ return {
70860
+ ...e,
70861
+ guid: guid()
70862
+ };
70863
+ })
70822
70864
  );
70823
- const keyValueItems = require$$0.ref([]);
70865
+ const keyValueItems = require$$0.ref({});
70866
+ const setKeyValueItems = (el, type) => {
70867
+ if (el) {
70868
+ keyValueItems.value[type] = el;
70869
+ }
70870
+ };
70824
70871
  const keyValueTypeDict = require$$0.computed(() => {
70825
70872
  const obj = {};
70826
- props.keyTypes.map((e) => {
70873
+ props.keyTypes.forEach((e) => {
70827
70874
  obj[e.value] = e.option;
70828
70875
  });
70829
70876
  return obj;
70830
70877
  });
70831
70878
  const validate = async () => {
70832
70879
  await require$$0.nextTick();
70833
- return Promise.all(
70834
- keyValueItems.value.filter((e) => !!e).map((e) => e.validate())
70880
+ const validationPromises = Object.values(keyValueItems.value).map(
70881
+ async (item) => {
70882
+ try {
70883
+ await item.validate();
70884
+ return { item, valid: true };
70885
+ } catch (error) {
70886
+ console.error("Validation failed for item:", item, error);
70887
+ return { item, valid: false, error };
70888
+ }
70889
+ }
70835
70890
  );
70891
+ const validationResults = await Promise.all(validationPromises);
70892
+ const allValid = validationResults.every((result) => result.valid);
70893
+ const errors = validationResults.filter((result) => !result.valid);
70894
+ if (!allValid) {
70895
+ console.log("Validation errors:", errors);
70896
+ return { valid: false, errors };
70897
+ }
70898
+ return { valid: true };
70836
70899
  };
70837
70900
  const resetFields = async () => {
70838
70901
  await require$$0.nextTick();
70839
- return Promise.all(
70840
- keyValueItems.value.filter((e) => !!e).map((e) => e.resetFields())
70841
- );
70902
+ for (const i of Object.values(keyValueItems.value)) {
70903
+ if (i) {
70904
+ i.resetFields();
70905
+ }
70906
+ }
70842
70907
  };
70843
70908
  const clearValidate = async () => {
70844
70909
  await require$$0.nextTick();
70845
- return Promise.all(
70846
- keyValueItems.value.filter((e) => !!e).map((e) => e.clearValidate())
70847
- );
70910
+ for (const i of Object.values(keyValueItems.value)) {
70911
+ if (i) {
70912
+ i.clearValidate();
70913
+ }
70914
+ }
70848
70915
  };
70849
70916
  const handleAddItem = async () => {
70850
- const valid = await validate();
70851
- if (props.validate && !valid)
70852
- return false;
70917
+ const { valid } = await validate();
70918
+ if (!valid)
70919
+ return;
70853
70920
  innerValue.value.push(getKeyValueItem());
70854
70921
  emits("add", {
70855
70922
  index: innerValue.value.length - 1,
@@ -70859,25 +70926,35 @@
70859
70926
  };
70860
70927
  const handleDelete = (idx) => {
70861
70928
  if (innerValue.value.length === 1) {
70862
- innerValue.value = [{ key: null, value: null }];
70929
+ innerValue.value = [{ key: null, value: null, guid: guid() }];
70863
70930
  } else {
70864
70931
  innerValue.value.splice(idx, 1);
70865
70932
  emits("delete", idx);
70866
70933
  }
70867
70934
  };
70868
70935
  const getValue = (val) => {
70869
- return val.filter((e) => hasValue(e.key) || hasValue(e.value));
70936
+ return val.filter((e) => hasValue(e.key) || hasValue(e.value)).map((e) => ({
70937
+ key: e.key,
70938
+ value: e.value
70939
+ }));
70870
70940
  };
70871
70941
  require$$0.watch(
70872
70942
  () => props.value,
70873
70943
  (n) => {
70944
+ if (!n || n && !n.length)
70945
+ return;
70874
70946
  const copyInnerValue = getValue(innerValue.value);
70875
70947
  const copyPropsValue = getValue(n);
70876
70948
  if (deepCompare(copyInnerValue, copyPropsValue))
70877
70949
  return;
70878
70950
  innerValue.value = [
70879
- ...n && n.length > 0 ? n : props.keepLast ? [{ key: null, value: null }] : n
70880
- ];
70951
+ ...n && n.length > 0 ? n : props.keepLast ? [{ key: null, value: null, guid: guid() }] : n
70952
+ ].map((e) => {
70953
+ return {
70954
+ ...e,
70955
+ guid: guid()
70956
+ };
70957
+ });
70881
70958
  },
70882
70959
  {
70883
70960
  immediate: true,
@@ -70934,9 +71011,9 @@
70934
71011
  null,
70935
71012
  require$$0.renderList(innerValue.value, (_item, idx) => {
70936
71013
  return require$$0.openBlock(), require$$0.createBlock(keyValueItem, {
70937
- key: _item,
71014
+ key: _item.guid,
70938
71015
  ref_for: true,
70939
- ref: (el) => keyValueItems.value[idx] = el,
71016
+ ref: (el) => setKeyValueItems(el, _item.guid),
70940
71017
  value: innerValue.value[idx],
70941
71018
  "onUpdate:value": ($event) => innerValue.value[idx] = $event,
70942
71019
  idx,
@@ -85830,6 +85907,7 @@
85830
85907
  exports.getHttpMethodUri = getHttpMethodUri;
85831
85908
  exports.getKeyValueItem = getKeyValueItem;
85832
85909
  exports.getType = getType;
85910
+ exports.guid = guid;
85833
85911
  exports.hasValue = hasValue;
85834
85912
  exports.headersTableColumns = headersTableColumns;
85835
85913
  exports.httpUriOptions = httpUriOptions;