ll-plus 2.7.15 → 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 (286) hide show
  1. package/es/components/advanced-filtering/index.d.ts +300 -300
  2. package/es/components/advanced-filtering/src/advanced-filtering.d.ts +1 -2
  3. package/es/components/advanced-filtering/src/advanced-filtering.vue.d.ts +150 -150
  4. package/es/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +148 -148
  5. package/es/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +3 -3
  6. package/es/components/breadcrumb-card/index.d.ts +1 -1
  7. package/es/components/breadcrumb-card/src/breadcrumb-card.vue.d.ts +1 -1
  8. package/es/components/cascader/index.d.ts +8 -8
  9. package/es/components/cascader/src/cascader.vue.d.ts +8 -8
  10. package/es/components/checkbox/index.d.ts +217 -217
  11. package/es/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
  12. package/es/components/checkbox/src/checkbox.d.ts +56 -56
  13. package/es/components/drawer/index.d.ts +5 -5
  14. package/es/components/drawer/src/components/second-confirmation/index.d.ts +1 -1
  15. package/es/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +1 -1
  16. package/es/components/drawer/src/drawer.vue.d.ts +5 -5
  17. package/es/components/easy-cron/index.d.ts +88 -88
  18. package/es/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +88 -88
  19. package/es/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +88 -88
  20. package/es/components/easy-cron/src/easy-cron.vue.d.ts +88 -88
  21. package/es/components/form/index.d.ts +148 -148
  22. package/es/components/form/src/components/form-component.vue.d.ts +1 -1
  23. package/es/components/form/src/config/form.d.ts +56 -56
  24. package/es/components/form/src/form.vue.d.ts +147 -147
  25. package/es/components/icon-picker/index.d.ts +1 -1
  26. package/es/components/icon-picker/src/components/modal.vue.d.ts +1 -1
  27. package/es/components/icon-picker/src/icon-picker.vue.d.ts +1 -1
  28. package/es/components/input/index.d.ts +33 -33
  29. package/es/components/input/src/input.vue.d.ts +33 -33
  30. package/es/components/key-value/index.d.ts +2 -16096
  31. package/es/components/key-value/src/components/key-value-item.vue.d.ts +334 -367
  32. package/es/components/key-value/src/config/key-value-item.d.ts +41 -288
  33. package/es/components/key-value/src/config/key-value.d.ts +23 -29
  34. package/es/components/key-value/src/key-value.vue.d.ts +1151 -1239
  35. package/es/components/modal/index.d.ts +1 -1
  36. package/es/components/modal/src/modal.vue.d.ts +1 -1
  37. package/es/components/new-drawer/index.d.ts +7 -7
  38. package/es/components/new-drawer/src/drawer.vue.d.ts +7 -7
  39. package/es/components/new-modal/index.d.ts +2 -2
  40. package/es/components/new-modal/src/modal.vue.d.ts +2 -2
  41. package/es/components/rich-text-editor/index.d.ts +1 -1
  42. package/es/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
  43. package/es/components/select/index.d.ts +4 -4
  44. package/es/components/select/src/select.vue.d.ts +4 -4
  45. package/es/components/select-group/index.d.ts +2 -2
  46. package/es/components/select-group/src/select-group.d.ts +1 -1
  47. package/es/components/select-group/src/select-group.vue.d.ts +2 -2
  48. package/es/components/table/index.d.ts +6 -6
  49. package/es/components/table/src/components/main-table.vue.d.ts +2 -2
  50. package/es/components/table/src/config/table.d.ts +2 -2
  51. package/es/components/table/src/table.vue.d.ts +6 -6
  52. package/es/components/textarea/index.d.ts +5 -5
  53. package/es/components/textarea/src/textarea.vue.d.ts +5 -5
  54. package/es/components/tooltip/index.d.ts +4 -4
  55. package/es/components/tooltip/src/tooltip.d.ts +1 -1
  56. package/es/components/tooltip/src/tooltip.vue.d.ts +4 -4
  57. package/es/components/tree-search/index.d.ts +1 -1
  58. package/es/components/tree-search/src/tree-search.vue.d.ts +1 -1
  59. package/es/components/upload-drag/index.d.ts +2 -2
  60. package/es/components/upload-drag/src/upload-drag.vue.d.ts +2 -2
  61. package/es/index.mjs +3 -2
  62. package/es/index.mjs.map +1 -1
  63. package/es/packages/components/advanced-filtering/index.mjs +1 -1
  64. package/es/packages/components/advanced-filtering/src/advanced-filtering.mjs +3 -5
  65. package/es/packages/components/advanced-filtering/src/advanced-filtering.mjs.map +1 -1
  66. package/es/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.mjs +2 -1
  67. package/es/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.mjs.map +1 -1
  68. package/es/packages/components/form/src/form.vue2.mjs +19 -11
  69. package/es/packages/components/form/src/form.vue2.mjs.map +1 -1
  70. package/es/packages/components/index.mjs +1 -1
  71. package/es/packages/components/key-value/index.mjs.map +1 -1
  72. package/es/packages/components/key-value/src/components/key-value-item.vue2.mjs +66 -67
  73. package/es/packages/components/key-value/src/components/key-value-item.vue2.mjs.map +1 -1
  74. package/es/packages/components/key-value/src/config/key-value-item.mjs +36 -11
  75. package/es/packages/components/key-value/src/config/key-value-item.mjs.map +1 -1
  76. package/es/packages/components/key-value/src/config/key-value.mjs +4 -2
  77. package/es/packages/components/key-value/src/config/key-value.mjs.map +1 -1
  78. package/es/packages/components/key-value/src/key-value.vue2.mjs +97 -33
  79. package/es/packages/components/key-value/src/key-value.vue2.mjs.map +1 -1
  80. package/es/packages/components/select-group/src/select-group.vue2.mjs +1 -2
  81. package/es/packages/components/select-group/src/select-group.vue2.mjs.map +1 -1
  82. package/es/packages/utils/data.mjs +42 -0
  83. package/es/packages/utils/data.mjs.map +1 -0
  84. package/es/packages/utils/{deepUnref.mjs → deep-unref.mjs} +1 -1
  85. package/es/packages/utils/deep-unref.mjs.map +1 -0
  86. package/es/packages/utils/index.mjs +2 -1
  87. package/es/packages/utils/index.mjs.map +1 -1
  88. package/es/utils/data.d.ts +3 -0
  89. package/es/utils/index.d.ts +2 -1
  90. package/es/utils/props/runtime.d.ts +2 -2
  91. package/index.full.js +257 -125
  92. package/index.full.min.js +22 -22
  93. package/index.full.min.js.map +1 -1
  94. package/index.full.min.mjs +22 -22
  95. package/index.full.min.mjs.map +1 -1
  96. package/index.full.mjs +256 -126
  97. package/lib/components/advanced-filtering/index.d.ts +300 -300
  98. package/lib/components/advanced-filtering/src/advanced-filtering.d.ts +1 -2
  99. package/lib/components/advanced-filtering/src/advanced-filtering.vue.d.ts +150 -150
  100. package/lib/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +148 -148
  101. package/lib/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +3 -3
  102. package/lib/components/breadcrumb-card/index.d.ts +1 -1
  103. package/lib/components/breadcrumb-card/src/breadcrumb-card.vue.d.ts +1 -1
  104. package/lib/components/cascader/index.d.ts +8 -8
  105. package/lib/components/cascader/src/cascader.vue.d.ts +8 -8
  106. package/lib/components/checkbox/index.d.ts +217 -217
  107. package/lib/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
  108. package/lib/components/checkbox/src/checkbox.d.ts +56 -56
  109. package/lib/components/drawer/index.d.ts +5 -5
  110. package/lib/components/drawer/src/components/second-confirmation/index.d.ts +1 -1
  111. package/lib/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +1 -1
  112. package/lib/components/drawer/src/drawer.vue.d.ts +5 -5
  113. package/lib/components/easy-cron/index.d.ts +88 -88
  114. package/lib/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +88 -88
  115. package/lib/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +88 -88
  116. package/lib/components/easy-cron/src/easy-cron.vue.d.ts +88 -88
  117. package/lib/components/form/index.d.ts +148 -148
  118. package/lib/components/form/src/components/form-component.vue.d.ts +1 -1
  119. package/lib/components/form/src/config/form.d.ts +56 -56
  120. package/lib/components/form/src/form.vue.d.ts +147 -147
  121. package/lib/components/icon-picker/index.d.ts +1 -1
  122. package/lib/components/icon-picker/src/components/modal.vue.d.ts +1 -1
  123. package/lib/components/icon-picker/src/icon-picker.vue.d.ts +1 -1
  124. package/lib/components/input/index.d.ts +33 -33
  125. package/lib/components/input/src/input.vue.d.ts +33 -33
  126. package/lib/components/key-value/index.d.ts +2 -16096
  127. package/lib/components/key-value/src/components/key-value-item.vue.d.ts +334 -367
  128. package/lib/components/key-value/src/config/key-value-item.d.ts +41 -288
  129. package/lib/components/key-value/src/config/key-value.d.ts +23 -29
  130. package/lib/components/key-value/src/key-value.vue.d.ts +1151 -1239
  131. package/lib/components/modal/index.d.ts +1 -1
  132. package/lib/components/modal/src/modal.vue.d.ts +1 -1
  133. package/lib/components/new-drawer/index.d.ts +7 -7
  134. package/lib/components/new-drawer/src/drawer.vue.d.ts +7 -7
  135. package/lib/components/new-modal/index.d.ts +2 -2
  136. package/lib/components/new-modal/src/modal.vue.d.ts +2 -2
  137. package/lib/components/rich-text-editor/index.d.ts +1 -1
  138. package/lib/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
  139. package/lib/components/select/index.d.ts +4 -4
  140. package/lib/components/select/src/select.vue.d.ts +4 -4
  141. package/lib/components/select-group/index.d.ts +2 -2
  142. package/lib/components/select-group/src/select-group.d.ts +1 -1
  143. package/lib/components/select-group/src/select-group.vue.d.ts +2 -2
  144. package/lib/components/table/index.d.ts +6 -6
  145. package/lib/components/table/src/components/main-table.vue.d.ts +2 -2
  146. package/lib/components/table/src/config/table.d.ts +2 -2
  147. package/lib/components/table/src/table.vue.d.ts +6 -6
  148. package/lib/components/textarea/index.d.ts +5 -5
  149. package/lib/components/textarea/src/textarea.vue.d.ts +5 -5
  150. package/lib/components/tooltip/index.d.ts +4 -4
  151. package/lib/components/tooltip/src/tooltip.d.ts +1 -1
  152. package/lib/components/tooltip/src/tooltip.vue.d.ts +4 -4
  153. package/lib/components/tree-search/index.d.ts +1 -1
  154. package/lib/components/tree-search/src/tree-search.vue.d.ts +1 -1
  155. package/lib/components/upload-drag/index.d.ts +2 -2
  156. package/lib/components/upload-drag/src/upload-drag.vue.d.ts +2 -2
  157. package/lib/index.js +5 -2
  158. package/lib/index.js.map +1 -1
  159. package/lib/packages/components/advanced-filtering/index.js +0 -1
  160. package/lib/packages/components/advanced-filtering/index.js.map +1 -1
  161. package/lib/packages/components/advanced-filtering/src/advanced-filtering.js +5 -8
  162. package/lib/packages/components/advanced-filtering/src/advanced-filtering.js.map +1 -1
  163. package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.js +2 -1
  164. package/lib/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue2.js.map +1 -1
  165. package/lib/packages/components/form/src/form.vue2.js +19 -11
  166. package/lib/packages/components/form/src/form.vue2.js.map +1 -1
  167. package/lib/packages/components/index.js +0 -1
  168. package/lib/packages/components/index.js.map +1 -1
  169. package/lib/packages/components/key-value/index.js.map +1 -1
  170. package/lib/packages/components/key-value/src/components/key-value-item.vue2.js +65 -66
  171. package/lib/packages/components/key-value/src/components/key-value-item.vue2.js.map +1 -1
  172. package/lib/packages/components/key-value/src/config/key-value-item.js +36 -11
  173. package/lib/packages/components/key-value/src/config/key-value-item.js.map +1 -1
  174. package/lib/packages/components/key-value/src/config/key-value.js +4 -2
  175. package/lib/packages/components/key-value/src/config/key-value.js.map +1 -1
  176. package/lib/packages/components/key-value/src/key-value.vue2.js +97 -33
  177. package/lib/packages/components/key-value/src/key-value.vue2.js.map +1 -1
  178. package/lib/packages/components/select-group/src/select-group.vue2.js +2 -3
  179. package/lib/packages/components/select-group/src/select-group.vue2.js.map +1 -1
  180. package/lib/packages/utils/data.js +46 -0
  181. package/lib/packages/utils/data.js.map +1 -0
  182. package/lib/packages/utils/{deepUnref.js → deep-unref.js} +1 -1
  183. package/lib/packages/utils/deep-unref.js.map +1 -0
  184. package/lib/packages/utils/index.js +5 -1
  185. package/lib/packages/utils/index.js.map +1 -1
  186. package/lib/utils/data.d.ts +3 -0
  187. package/lib/utils/index.d.ts +2 -1
  188. package/lib/utils/props/runtime.d.ts +2 -2
  189. package/package.json +1 -1
  190. package/theme-chalk/css/advanced-filtering.css +2 -2
  191. package/theme-chalk/css/api-component.css +2 -2
  192. package/theme-chalk/css/cascader.css +2 -2
  193. package/theme-chalk/css/checkbox.css +2 -2
  194. package/theme-chalk/css/code-editor.css +2 -2
  195. package/theme-chalk/css/color-picker.css +2 -2
  196. package/theme-chalk/css/cropper.css +2 -2
  197. package/theme-chalk/css/descriptions.css +2 -2
  198. package/theme-chalk/css/drawer.css +2 -2
  199. package/theme-chalk/css/dropdown-button-simple.css +2 -2
  200. package/theme-chalk/css/dropdown.css +2 -2
  201. package/theme-chalk/css/easy-cron.css +2 -2
  202. package/theme-chalk/css/form.css +2 -2
  203. package/theme-chalk/css/images.css +1 -1
  204. package/theme-chalk/css/index.css +3 -3
  205. package/theme-chalk/css/input-number.css +2 -2
  206. package/theme-chalk/css/input.css +2 -2
  207. package/theme-chalk/css/key-value.css +2 -2
  208. package/theme-chalk/css/markdown-editor.css +2 -2
  209. package/theme-chalk/css/modal.css +2 -2
  210. package/theme-chalk/css/new-drawer.css +2 -2
  211. package/theme-chalk/css/new-modal.css +2 -2
  212. package/theme-chalk/css/number-range.css +2 -2
  213. package/theme-chalk/css/rich-text-editor.css +2 -2
  214. package/theme-chalk/css/segmented.css +2 -2
  215. package/theme-chalk/css/switch.css +2 -2
  216. package/theme-chalk/css/table.css +2 -2
  217. package/theme-chalk/css/tabs-simple.css +2 -2
  218. package/theme-chalk/css/tag-group.css +2 -2
  219. package/types/packages/components/advanced-filtering/index.d.ts +300 -300
  220. package/types/packages/components/advanced-filtering/src/advanced-filtering.d.ts +1 -2
  221. package/types/packages/components/advanced-filtering/src/advanced-filtering.vue.d.ts +150 -150
  222. package/types/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +148 -148
  223. package/types/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +3 -3
  224. package/types/packages/components/breadcrumb-card/index.d.ts +1 -1
  225. package/types/packages/components/breadcrumb-card/src/breadcrumb-card.vue.d.ts +1 -1
  226. package/types/packages/components/cascader/index.d.ts +8 -8
  227. package/types/packages/components/cascader/src/cascader.vue.d.ts +8 -8
  228. package/types/packages/components/checkbox/index.d.ts +217 -217
  229. package/types/packages/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
  230. package/types/packages/components/checkbox/src/checkbox.d.ts +56 -56
  231. package/types/packages/components/drawer/index.d.ts +5 -5
  232. package/types/packages/components/drawer/src/components/second-confirmation/index.d.ts +1 -1
  233. package/types/packages/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +1 -1
  234. package/types/packages/components/drawer/src/drawer.vue.d.ts +5 -5
  235. package/types/packages/components/easy-cron/index.d.ts +88 -88
  236. package/types/packages/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +88 -88
  237. package/types/packages/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +88 -88
  238. package/types/packages/components/easy-cron/src/easy-cron.vue.d.ts +88 -88
  239. package/types/packages/components/form/index.d.ts +148 -148
  240. package/types/packages/components/form/src/components/form-component.vue.d.ts +1 -1
  241. package/types/packages/components/form/src/config/form.d.ts +56 -56
  242. package/types/packages/components/form/src/form.vue.d.ts +147 -147
  243. package/types/packages/components/icon-picker/index.d.ts +1 -1
  244. package/types/packages/components/icon-picker/src/components/modal.vue.d.ts +1 -1
  245. package/types/packages/components/icon-picker/src/icon-picker.vue.d.ts +1 -1
  246. package/types/packages/components/input/index.d.ts +33 -33
  247. package/types/packages/components/input/src/input.vue.d.ts +33 -33
  248. package/types/packages/components/key-value/index.d.ts +2 -16096
  249. package/types/packages/components/key-value/src/components/key-value-item.vue.d.ts +334 -367
  250. package/types/packages/components/key-value/src/config/key-value-item.d.ts +41 -288
  251. package/types/packages/components/key-value/src/config/key-value.d.ts +23 -29
  252. package/types/packages/components/key-value/src/key-value.vue.d.ts +1151 -1239
  253. package/types/packages/components/modal/index.d.ts +1 -1
  254. package/types/packages/components/modal/src/modal.vue.d.ts +1 -1
  255. package/types/packages/components/new-drawer/index.d.ts +7 -7
  256. package/types/packages/components/new-drawer/src/drawer.vue.d.ts +7 -7
  257. package/types/packages/components/new-modal/index.d.ts +2 -2
  258. package/types/packages/components/new-modal/src/modal.vue.d.ts +2 -2
  259. package/types/packages/components/rich-text-editor/index.d.ts +1 -1
  260. package/types/packages/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
  261. package/types/packages/components/select/index.d.ts +4 -4
  262. package/types/packages/components/select/src/select.vue.d.ts +4 -4
  263. package/types/packages/components/select-group/index.d.ts +2 -2
  264. package/types/packages/components/select-group/src/select-group.d.ts +1 -1
  265. package/types/packages/components/select-group/src/select-group.vue.d.ts +2 -2
  266. package/types/packages/components/table/index.d.ts +6 -6
  267. package/types/packages/components/table/src/components/main-table.vue.d.ts +2 -2
  268. package/types/packages/components/table/src/config/table.d.ts +2 -2
  269. package/types/packages/components/table/src/table.vue.d.ts +6 -6
  270. package/types/packages/components/textarea/index.d.ts +5 -5
  271. package/types/packages/components/textarea/src/textarea.vue.d.ts +5 -5
  272. package/types/packages/components/tooltip/index.d.ts +4 -4
  273. package/types/packages/components/tooltip/src/tooltip.d.ts +1 -1
  274. package/types/packages/components/tooltip/src/tooltip.vue.d.ts +4 -4
  275. package/types/packages/components/tree-search/index.d.ts +1 -1
  276. package/types/packages/components/tree-search/src/tree-search.vue.d.ts +1 -1
  277. package/types/packages/components/upload-drag/index.d.ts +2 -2
  278. package/types/packages/components/upload-drag/src/upload-drag.vue.d.ts +2 -2
  279. package/types/packages/utils/data.d.ts +3 -0
  280. package/types/packages/utils/index.d.ts +2 -1
  281. package/types/packages/utils/props/runtime.d.ts +2 -2
  282. package/es/packages/utils/deepUnref.mjs.map +0 -1
  283. package/lib/packages/utils/deepUnref.js.map +0 -1
  284. /package/es/utils/{deepUnref.d.ts → deep-unref.d.ts} +0 -0
  285. /package/lib/utils/{deepUnref.d.ts → deep-unref.d.ts} +0 -0
  286. /package/types/packages/utils/{deepUnref.d.ts → deep-unref.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { defineComponent, useAttrs, ref, computed, watch, nextTick, resolveComponent, openBlock, createBlock, unref, withCtx, createElementBlock, normalizeClass, createVNode, renderSlot, resolveDynamicComponent, mergeProps, createSlots, renderList, createCommentVNode, normalizeStyle, createTextVNode, createElementVNode, normalizeProps, guardReactiveProps, Fragment } from 'vue';
1
+ import { defineComponent, useAttrs, ref, computed, nextTick, watch, resolveComponent, openBlock, createBlock, unref, withCtx, createElementBlock, normalizeClass, createVNode, renderSlot, resolveDynamicComponent, mergeProps, createSlots, renderList, createCommentVNode, normalizeStyle, createTextVNode, createElementVNode, normalizeProps, guardReactiveProps } from 'vue';
2
2
  import { isEmpty } from 'lodash-es';
3
3
  import '../../../../utils/index.mjs';
4
4
  import '../config/index.mjs';
@@ -19,7 +19,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
19
19
  const attrs = useAttrs();
20
20
  const bem = createNamespace("key-value");
21
21
  const innerValue = ref(props.value);
22
- const form = ref();
22
+ const formRef = ref();
23
23
  const getKeyType = computed(() => {
24
24
  const option = props.keyType;
25
25
  return option;
@@ -37,27 +37,34 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
37
37
  const getValueDisabled = computed(() => {
38
38
  return props.disabledValue?.includes(props.idx) || props.disabled || getValueType.value?.disabled;
39
39
  });
40
- const getDeleteDisabled = computed(() => {
41
- return props.disabledDelete?.includes(props.idx) || props.disabled;
42
- });
43
40
  const hasValue = computed(() => {
44
41
  return innerValue.value["key"] || innerValue.value["key"] === 0 || innerValue.value["value"];
45
42
  });
43
+ const getDeleteDisabled = computed(() => {
44
+ return props.disabledDelete?.includes(props.idx) || props.disabled || props.values.length === 1 && !hasValue.value;
45
+ });
46
46
  const handleDelete = () => {
47
47
  emits("delete");
48
48
  };
49
49
  const handleChange = async () => {
50
50
  innerValue.value["value"] = null;
51
- await form.value?.clearValidate();
51
+ await formRef.value?.clearValidate();
52
52
  };
53
53
  const validate = async () => {
54
- return await form.value?.validate();
54
+ await nextTick();
55
+ try {
56
+ await formRef.value?.validate();
57
+ return Promise.resolve();
58
+ } catch (error) {
59
+ console.log({ error }, props.idx);
60
+ return Promise.reject();
61
+ }
55
62
  };
56
63
  const resetFields = async () => {
57
- return await form.value?.resetFields();
64
+ await formRef.value?.resetFields();
58
65
  };
59
66
  const clearValidate = async (namePath) => {
60
- return await form.value?.clearValidate(namePath);
67
+ await formRef.value?.clearValidate(namePath);
61
68
  };
62
69
  watch(
63
70
  innerValue,
@@ -88,8 +95,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
88
95
  const _component_a_popconfirm = resolveComponent("a-popconfirm");
89
96
  const _component_ll_form = resolveComponent("ll-form");
90
97
  return openBlock(), createBlock(_component_ll_form, {
91
- ref_key: "form",
92
- ref: form,
98
+ ref_key: "formRef",
99
+ ref: formRef,
93
100
  "form-columns": unref(formColumns),
94
101
  "form-data": props.value,
95
102
  "form-options": unref(formOptions)
@@ -190,7 +197,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
190
197
  name: "value"
191
198
  }, {
192
199
  default: withCtx(() => [
193
- renderSlot(_ctx.$slots, "value-warapper", normalizeProps(guardReactiveProps(getValueType.value)), () => [
200
+ renderSlot(_ctx.$slots, "value-wrapper", normalizeProps(guardReactiveProps(getValueType.value)), () => [
194
201
  (openBlock(), createBlock(resolveDynamicComponent(`ll-${getValueType.value.type}`), mergeProps({
195
202
  value: innerValue.value["value"],
196
203
  "onUpdate:value": _cache[2] || (_cache[2] = ($event) => innerValue.value["value"] = $event),
@@ -218,57 +225,21 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
218
225
  2
219
226
  /* CLASS */
220
227
  ),
221
- props.showDelete ? (openBlock(), createElementBlock(
222
- Fragment,
223
- { key: 2 },
224
- [
225
- hasValue.value ? (openBlock(), createBlock(_component_a_popconfirm, {
226
- key: 0,
227
- title: "\u786E\u5B9A\u8981\u79FB\u9664\u5417?",
228
- "ok-text": "\u786E\u8BA4",
229
- "cancel-text": "\u53D6\u6D88",
230
- placement: "topRight",
231
- "overlay-class-name": unref(bem).m("popconfirm"),
232
- "get-popup-container": (trigger) => trigger.parentNode,
233
- "destroy-tooltip-on-hide": "",
234
- onConfirm: handleDelete
235
- }, {
236
- default: withCtx(() => [
237
- createElementVNode(
238
- "div",
239
- {
240
- class: normalizeClass(unref(bem).m("delete")),
241
- style: normalizeStyle({
242
- "margin-top": !!unref(attrs)["key-label"] || !!unref(attrs)["value-label"] ? "26px" : "0px"
243
- })
244
- },
245
- [
246
- createVNode(_component_ll_button, {
247
- type: "link",
248
- disabled: getDeleteDisabled.value
249
- }, {
250
- default: withCtx(() => [
251
- renderSlot(_ctx.$slots, "delete-icon", {}, () => [
252
- createVNode(_component_ll_icon, {
253
- "icon-name": "icon-remove",
254
- class: "delete"
255
- })
256
- ])
257
- ]),
258
- _: 3
259
- /* FORWARDED */
260
- }, 8, ["disabled"])
261
- ],
262
- 6
263
- /* CLASS, STYLE */
264
- )
265
- ]),
266
- _: 3
267
- /* FORWARDED */
268
- }, 8, ["overlay-class-name", "get-popup-container"])) : (openBlock(), createElementBlock(
228
+ hasValue.value ? (openBlock(), createBlock(_component_a_popconfirm, {
229
+ key: 2,
230
+ title: "\u786E\u5B9A\u8981\u79FB\u9664\u5417?",
231
+ "ok-text": "\u786E\u8BA4",
232
+ "cancel-text": "\u53D6\u6D88",
233
+ placement: "topRight",
234
+ "overlay-class-name": unref(bem).m("popconfirm"),
235
+ "get-popup-container": (trigger) => trigger.parentNode,
236
+ "destroy-tooltip-on-hide": "",
237
+ onConfirm: handleDelete
238
+ }, {
239
+ default: withCtx(() => [
240
+ createElementVNode(
269
241
  "div",
270
242
  {
271
- key: 1,
272
243
  class: normalizeClass(unref(bem).m("delete")),
273
244
  style: normalizeStyle({
274
245
  "margin-top": !!unref(attrs)["key-label"] || !!unref(attrs)["value-label"] ? "26px" : "0px"
@@ -277,8 +248,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
277
248
  [
278
249
  createVNode(_component_ll_button, {
279
250
  type: "link",
280
- disabled: getDeleteDisabled.value,
281
- onClick: handleDelete
251
+ disabled: getDeleteDisabled.value
282
252
  }, {
283
253
  default: withCtx(() => [
284
254
  renderSlot(_ctx.$slots, "delete-icon", {}, () => [
@@ -294,11 +264,40 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
294
264
  ],
295
265
  6
296
266
  /* CLASS, STYLE */
297
- ))
267
+ )
268
+ ]),
269
+ _: 3
270
+ /* FORWARDED */
271
+ }, 8, ["overlay-class-name", "get-popup-container"])) : (openBlock(), createElementBlock(
272
+ "div",
273
+ {
274
+ key: 3,
275
+ class: normalizeClass(unref(bem).m("delete")),
276
+ style: normalizeStyle({
277
+ "margin-top": !!unref(attrs)["key-label"] || !!unref(attrs)["value-label"] ? "26px" : "0px"
278
+ })
279
+ },
280
+ [
281
+ createVNode(_component_ll_button, {
282
+ type: "link",
283
+ disabled: getDeleteDisabled.value,
284
+ onClick: handleDelete
285
+ }, {
286
+ default: withCtx(() => [
287
+ renderSlot(_ctx.$slots, "delete-icon", {}, () => [
288
+ createVNode(_component_ll_icon, {
289
+ "icon-name": "icon-remove",
290
+ class: "delete"
291
+ })
292
+ ])
293
+ ]),
294
+ _: 3
295
+ /* FORWARDED */
296
+ }, 8, ["disabled"])
298
297
  ],
299
- 64
300
- /* STABLE_FRAGMENT */
301
- )) : createCommentVNode("v-if", true)
298
+ 6
299
+ /* CLASS, STYLE */
300
+ ))
302
301
  ],
303
302
  2
304
303
  /* CLASS */
@@ -1 +1 @@
1
- {"version":3,"file":"key-value-item.vue2.mjs","sources":["../../../../../../../packages/components/key-value/src/components/key-value-item.vue"],"sourcesContent":["<template>\n <ll-form\n ref=\"form\"\n :form-columns=\"formColumns\"\n :form-data=\"props.value\"\n :form-options=\"formOptions\"\n >\n <template #formItem=\"{ item }\">\n <template v-if=\"item.key === 'other'\">\n <div :class=\"bem.e('item')\">\n <div v-if=\"props.keyValueType !== 'single'\" :class=\"bem.m('left')\">\n <ll-form-item\n :label=\"attrs['key-label']\"\n :label-col=\"{\n span: 24\n }\"\n :rules=\"getKeyType.rules || []\"\n name=\"key\"\n >\n <slot name=\"key\">\n <ll-select\n v-if=\"!isEmpty(props.keyTypes)\"\n v-model:value=\"innerValue['key']\"\n :options=\"props.keyTypes\"\n :disabled=\"getKeyDisabled\"\n style=\"width: 100%\"\n placeholder=\"请选择\"\n allow-clear\n @change=\"handleChange\"\n />\n <component\n :is=\"`ll-${getKeyType.type}`\"\n v-else\n v-model:value=\"innerValue['key']\"\n v-bind=\"getKeyType\"\n :disabled=\"getKeyDisabled\"\n style=\"width: 100%\"\n >\n <template\n v-for=\"_item in Object.keys($slots)\"\n :key=\"_item\"\n #[_item]=\"data\"\n >\n <slot\n :name=\"_item\"\n v-bind=\"data || {}\"\n content=\"key\"\n ></slot>\n </template>\n </component>\n </slot>\n </ll-form-item>\n </div>\n\n <div\n v-if=\"props.keyValueType !== 'single'\"\n :class=\"bem.m('separator')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label'] ? '26px' : '0px'\n }\"\n >\n <slot name=\"separator\">~</slot>\n </div>\n\n <div :class=\"bem.m('right')\">\n <ll-form-item\n :label=\"attrs['value-label']\"\n :label-col=\"{\n span: 24\n }\"\n :rules=\"getValueType.rules || []\"\n name=\"value\"\n >\n <slot name=\"value-warapper\" v-bind=\"getValueType\">\n <component\n :is=\"`ll-${getValueType.type}`\"\n v-model:value=\"innerValue['value']\"\n :disabled=\"getValueDisabled\"\n style=\"width: 100%\"\n v-bind=\"getValueType\"\n >\n <template\n v-for=\"_item in Object.keys($slots)\"\n :key=\"_item\"\n #[_item]=\"data\"\n >\n <slot\n :name=\"_item\"\n v-bind=\"data || {}\"\n content=\"value\"\n ></slot>\n </template>\n </component>\n </slot>\n </ll-form-item>\n </div>\n <template v-if=\"props.showDelete\">\n <template v-if=\"hasValue\">\n <a-popconfirm\n title=\"确定要移除吗?\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n placement=\"topRight\"\n :overlay-class-name=\"bem.m('popconfirm')\"\n :get-popup-container=\"(trigger: Element) => trigger.parentNode\"\n destroy-tooltip-on-hide\n @confirm=\"handleDelete\"\n >\n <div\n :class=\"bem.m('delete')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label']\n ? '26px'\n : '0px'\n }\"\n >\n <ll-button type=\"link\" :disabled=\"getDeleteDisabled\">\n <slot name=\"delete-icon\">\n <ll-icon icon-name=\"icon-remove\" class=\"delete\" />\n </slot>\n </ll-button>\n </div>\n </a-popconfirm>\n </template>\n <div\n v-else\n :class=\"bem.m('delete')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label']\n ? '26px'\n : '0px'\n }\"\n >\n <ll-button\n type=\"link\"\n :disabled=\"getDeleteDisabled\"\n @click=\"handleDelete\"\n >\n <slot name=\"delete-icon\">\n <ll-icon icon-name=\"icon-remove\" class=\"delete\" />\n </slot>\n </ll-button>\n </div>\n </template>\n </div>\n </template>\n </template>\n </ll-form>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, useAttrs, watch, nextTick } from 'vue'\nimport { isEmpty } from 'lodash-es'\nimport { createNamespace } from '@ll-plus/utils'\nimport type { FormInstance } from '@ll-plus/components'\nimport {\n keyValueItemProps,\n keyValueItemEmits,\n formColumns,\n formOptions\n} from '../config'\nimport { type FormColumn } from '@ll-plus/components'\nimport type { NamePath } from 'ant-design-vue/es/form/interface'\n\ndefineOptions({\n name: 'LlKeyValueItem'\n})\n\nconst props = defineProps(keyValueItemProps)\nconst emits = defineEmits(keyValueItemEmits)\n\nconst attrs = useAttrs()\nconst bem = createNamespace('key-value')\nconst innerValue = ref(props.value)\n\nconst form = ref<FormInstance | null>()\n\nconst getKeyType = computed<FormColumn>(() => {\n const option = props.keyType\n return option\n})\nconst getValueType = computed<FormColumn>(() => {\n let option = props.valueType\n if (innerValue.value['key'] && !isEmpty(props.keyValueTypeDict)) {\n option = props.keyValueTypeDict[innerValue.value['key']]\n }\n return option\n})\n\nconst getKeyDisabled = computed(() => {\n return (\n props.disabledKey?.includes(props.idx) ||\n props.disabled ||\n getKeyType.value?.disabled\n )\n})\n\nconst getValueDisabled = computed(() => {\n return (\n props.disabledValue?.includes(props.idx) ||\n props.disabled ||\n getValueType.value?.disabled\n )\n})\n\nconst getDeleteDisabled = computed(() => {\n return props.disabledDelete?.includes(props.idx) || props.disabled\n})\n\nconst hasValue = computed(() => {\n return (\n innerValue.value['key'] ||\n innerValue.value['key'] === 0 ||\n innerValue.value['value']\n )\n})\n\nconst handleDelete = () => {\n emits('delete')\n}\n\nconst handleChange = async () => {\n innerValue.value['value'] = null\n await form.value?.clearValidate()\n}\n\nconst validate = async () => {\n return await form.value?.validate()\n}\n\nconst resetFields = async () => {\n return await form.value?.resetFields()\n}\nconst clearValidate = async (namePath?: NamePath[]) => {\n return await form.value?.clearValidate(namePath)\n}\n\nwatch(\n innerValue,\n async val => {\n await nextTick().then(() => {\n try {\n emits('update:value', val)\n emits('change')\n } catch (error) {\n console.error(error)\n }\n })\n },\n {\n deep: true\n }\n)\n\ndefineExpose({\n validate,\n resetFields,\n clearValidate\n})\n</script>\n\n<style scoped></style>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-value-item.vue2.mjs","sources":["../../../../../../../packages/components/key-value/src/components/key-value-item.vue"],"sourcesContent":["<template>\n <ll-form\n ref=\"formRef\"\n :form-columns=\"formColumns\"\n :form-data=\"props.value\"\n :form-options=\"formOptions\"\n >\n <template #formItem=\"{ item }\">\n <template v-if=\"item.key === 'other'\">\n <div :class=\"bem.e('item')\">\n <div v-if=\"props.keyValueType !== 'single'\" :class=\"bem.m('left')\">\n <ll-form-item\n :label=\"attrs['key-label']\"\n :label-col=\"{\n span: 24\n }\"\n :rules=\"getKeyType.rules || []\"\n name=\"key\"\n >\n <slot name=\"key\">\n <ll-select\n v-if=\"!isEmpty(props.keyTypes)\"\n v-model:value=\"innerValue['key']\"\n :options=\"props.keyTypes\"\n :disabled=\"getKeyDisabled\"\n style=\"width: 100%\"\n placeholder=\"请选择\"\n allow-clear\n @change=\"handleChange\"\n />\n <component\n :is=\"`ll-${getKeyType.type}`\"\n v-else\n v-model:value=\"innerValue['key']\"\n v-bind=\"getKeyType\"\n :disabled=\"getKeyDisabled\"\n style=\"width: 100%\"\n >\n <template\n v-for=\"_item in Object.keys($slots)\"\n :key=\"_item\"\n #[_item]=\"data\"\n >\n <slot\n :name=\"_item\"\n v-bind=\"data || {}\"\n content=\"key\"\n ></slot>\n </template>\n </component>\n </slot>\n </ll-form-item>\n </div>\n\n <div\n v-if=\"props.keyValueType !== 'single'\"\n :class=\"bem.m('separator')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label'] ? '26px' : '0px'\n }\"\n >\n <slot name=\"separator\">~</slot>\n </div>\n\n <div :class=\"bem.m('right')\">\n <ll-form-item\n :label=\"attrs['value-label']\"\n :label-col=\"{\n span: 24\n }\"\n :rules=\"getValueType.rules || []\"\n name=\"value\"\n >\n <slot name=\"value-wrapper\" v-bind=\"getValueType\">\n <component\n :is=\"`ll-${getValueType.type}`\"\n v-model:value=\"innerValue['value']\"\n :disabled=\"getValueDisabled\"\n style=\"width: 100%\"\n v-bind=\"getValueType\"\n >\n <template\n v-for=\"_item in Object.keys($slots)\"\n :key=\"_item\"\n #[_item]=\"data\"\n >\n <slot\n :name=\"_item\"\n v-bind=\"data || {}\"\n content=\"value\"\n ></slot>\n </template>\n </component>\n </slot>\n </ll-form-item>\n </div>\n <template v-if=\"hasValue\">\n <a-popconfirm\n title=\"确定要移除吗?\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n placement=\"topRight\"\n :overlay-class-name=\"bem.m('popconfirm')\"\n :get-popup-container=\"(trigger: Element) => trigger.parentNode\"\n destroy-tooltip-on-hide\n @confirm=\"handleDelete\"\n >\n <div\n :class=\"bem.m('delete')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label']\n ? '26px'\n : '0px'\n }\"\n >\n <ll-button type=\"link\" :disabled=\"getDeleteDisabled\">\n <slot name=\"delete-icon\">\n <ll-icon icon-name=\"icon-remove\" class=\"delete\" />\n </slot>\n </ll-button>\n </div>\n </a-popconfirm>\n </template>\n <div\n v-else\n :class=\"bem.m('delete')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label'] ? '26px' : '0px'\n }\"\n >\n <ll-button\n type=\"link\"\n :disabled=\"getDeleteDisabled\"\n @click=\"handleDelete\"\n >\n <slot name=\"delete-icon\">\n <ll-icon icon-name=\"icon-remove\" class=\"delete\" />\n </slot>\n </ll-button>\n </div>\n </div>\n </template>\n </template>\n </ll-form>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, useAttrs, watch, nextTick } from 'vue'\nimport { isEmpty } from 'lodash-es'\nimport { createNamespace } from '@ll-plus/utils'\nimport type { FormInstance } from '@ll-plus/components'\nimport {\n keyValueItemProps,\n keyValueItemEmits,\n formColumns,\n formOptions\n} from '../config'\nimport { type FormColumn } from '@ll-plus/components'\nimport type { NamePath } from 'ant-design-vue/es/form/interface'\n\ndefineOptions({\n name: 'LlKeyValueItem'\n})\n\nconst props = defineProps(keyValueItemProps)\nconst emits = defineEmits(keyValueItemEmits)\n\nconst attrs = useAttrs()\nconst bem = createNamespace('key-value')\nconst innerValue = ref(props.value)\n\nconst formRef = ref<FormInstance | null>()\n\nconst getKeyType = computed<FormColumn>(() => {\n const option = props.keyType\n return option\n})\nconst getValueType = computed<FormColumn>(() => {\n let option = props.valueType\n if (innerValue.value['key'] && !isEmpty(props.keyValueTypeDict)) {\n option = props.keyValueTypeDict[innerValue.value['key']]\n }\n return option\n})\n\nconst getKeyDisabled = computed(() => {\n return (\n props.disabledKey?.includes(props.idx) ||\n props.disabled ||\n getKeyType.value?.disabled\n )\n})\n\nconst getValueDisabled = computed(() => {\n return (\n props.disabledValue?.includes(props.idx) ||\n props.disabled ||\n getValueType.value?.disabled\n )\n})\n\nconst hasValue = computed(() => {\n return (\n innerValue.value['key'] ||\n innerValue.value['key'] === 0 ||\n innerValue.value['value']\n )\n})\n\nconst getDeleteDisabled = computed(() => {\n return (\n props.disabledDelete?.includes(props.idx) ||\n props.disabled ||\n (props.values.length === 1 && !hasValue.value)\n )\n})\n\nconst handleDelete = () => {\n emits('delete')\n}\n\nconst handleChange = async () => {\n innerValue.value['value'] = null\n await formRef.value?.clearValidate()\n}\n\nconst validate = async () => {\n await nextTick()\n try {\n await formRef.value?.validate()\n return Promise.resolve()\n } catch (error) {\n console.log({ error }, props.idx)\n return Promise.reject()\n }\n}\n\nconst resetFields = async () => {\n await formRef.value?.resetFields()\n}\n\nconst clearValidate = async (namePath?: NamePath[]) => {\n await formRef.value?.clearValidate(namePath)\n}\n\nwatch(\n innerValue,\n async val => {\n await nextTick().then(() => {\n try {\n emits('update:value', val)\n emits('change')\n } catch (error) {\n console.error(error)\n }\n })\n },\n {\n deep: true\n }\n)\n\ndefineExpose({\n validate,\n resetFields,\n clearValidate\n})\n</script>\n\n<style scoped></style>\n"],"names":[],"mappings":"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"}
@@ -29,34 +29,59 @@ const formColumns = [
29
29
  ];
30
30
  const keyValueItemProps = buildProps({
31
31
  disabled: {
32
- type: Boolean
32
+ type: Boolean,
33
+ default: false
34
+ },
35
+ values: {
36
+ type: definePropType(Array),
37
+ default: () => [
38
+ {
39
+ key: null,
40
+ value: null,
41
+ guid: ""
42
+ }
43
+ ]
33
44
  },
34
45
  disabledValue: {
35
- type: definePropType(Array)
46
+ type: definePropType(Array),
47
+ default: () => []
36
48
  },
37
49
  disabledKey: {
38
- type: definePropType(Array)
50
+ type: definePropType(Array),
51
+ default: () => []
39
52
  },
40
53
  disabledDelete: {
41
- type: definePropType(Array)
54
+ type: definePropType(Array),
55
+ default: () => []
42
56
  },
43
57
  keyValueType: {
44
- type: definePropType(String)
58
+ type: definePropType(String),
59
+ default: "doubt"
45
60
  },
46
61
  keyType: {
47
- type: definePropType(Object)
62
+ type: definePropType(Object),
63
+ default: () => ({
64
+ type: "input",
65
+ placeholder: "\u8BF7\u8F93\u5165Key"
66
+ })
48
67
  },
49
68
  keyTypes: {
50
- type: definePropType(Array)
69
+ type: definePropType(Array),
70
+ default: () => []
51
71
  },
52
72
  valueType: {
53
- type: definePropType(Object)
73
+ type: definePropType(Object),
74
+ default: () => ({
75
+ type: "input",
76
+ placeholder: "\u8BF7\u8F93\u5165Value"
77
+ })
54
78
  },
55
79
  value: {
56
80
  type: definePropType(Object),
57
81
  default: () => ({
58
82
  key: "",
59
- value: ""
83
+ value: "",
84
+ guid: ""
60
85
  })
61
86
  },
62
87
  idx: {
@@ -67,9 +92,9 @@ const keyValueItemProps = buildProps({
67
92
  type: Object,
68
93
  default: () => ({})
69
94
  },
70
- showDelete: {
95
+ keepLast: {
71
96
  type: Boolean,
72
- default: true
97
+ default: false
73
98
  }
74
99
  });
75
100
  const keyValueItemEmits = {
@@ -1 +1 @@
1
- {"version":3,"file":"key-value-item.mjs","sources":["../../../../../../../packages/components/key-value/src/config/key-value-item.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\nimport type { FormProps } from 'ant-design-vue'\nimport type { FormColumn } from '@ll-plus/components'\nimport type { KeyType } from './'\n\nexport const typeRules = [\n {\n trigger: ['blur', 'change'],\n message: '此字段是必需的',\n validator: async (_rule: any, value: any) => {\n if (!value) {\n return Promise.reject(new Error('此字段是必需的'))\n } else {\n return Promise.resolve()\n }\n }\n }\n]\nexport const formOptions = {\n layout: 'horizontal',\n labelAlign: 'left'\n} as FormProps\n\nexport const formColumns = [\n {\n key: 'other',\n labelCol: {\n span: 24\n }\n }\n]\n\nexport interface KeyValueItem {\n key: any | null\n value: any | null\n}\n\nexport const keyValueItemProps = buildProps({\n disabled: {\n type: Boolean\n },\n disabledValue: {\n type: definePropType<number[]>(Array)\n },\n disabledKey: {\n type: definePropType<number[]>(Array)\n },\n disabledDelete: {\n type: definePropType<number[]>(Array)\n },\n keyValueType: {\n type: definePropType<'single' | 'doubt'>(String)\n },\n keyType: {\n type: definePropType<FormColumn>(Object)\n },\n keyTypes: {\n type: definePropType<KeyType[]>(Array)\n },\n valueType: {\n type: definePropType<FormColumn>(Object)\n },\n value: {\n type: definePropType<KeyValueItem>(Object),\n default: () => ({\n key: '',\n value: ''\n })\n },\n idx: {\n type: Number,\n required: true\n },\n keyValueTypeDict: {\n type: Object,\n default: () => ({})\n },\n showDelete: {\n type: Boolean,\n default: true\n }\n} as const)\n\nexport const keyValueItemEmits = {\n delete: () => true,\n change: () => true,\n 'update:value': (value: KeyValueItem) => !!value\n}\n"],"names":[],"mappings":";;;;AAKO,MAAM,SAAY,GAAA;AAAA,EACvB;AAAA,IACE,OAAA,EAAS,CAAC,MAAA,EAAQ,QAAQ,CAAA;AAAA,IAC1B,OAAS,EAAA,4CAAA;AAAA,IACT,SAAA,EAAW,OAAO,KAAA,EAAY,KAAe,KAAA;AAC3C,MAAA,IAAI,CAAC,KAAO,EAAA;AACV,QAAA,OAAO,OAAQ,CAAA,MAAA,CAAO,IAAI,KAAA,CAAM,4CAAS,CAAC,CAAA,CAAA;AAAA,OACrC,MAAA;AACL,QAAA,OAAO,QAAQ,OAAQ,EAAA,CAAA;AAAA,OACzB;AAAA,KACF;AAAA,GACF;AACF,EAAA;AACO,MAAM,WAAc,GAAA;AAAA,EACzB,MAAQ,EAAA,YAAA;AAAA,EACR,UAAY,EAAA,MAAA;AACd,EAAA;AAEO,MAAM,WAAc,GAAA;AAAA,EACzB;AAAA,IACE,GAAK,EAAA,OAAA;AAAA,IACL,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,EAAA;AAAA,KACR;AAAA,GACF;AACF,EAAA;AAOO,MAAM,oBAAoB,UAAW,CAAA;AAAA,EAC1C,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,GACR;AAAA,EACA,aAAe,EAAA;AAAA,IACb,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,GACtC;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,GACtC;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,GACtC;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAA,EAAM,eAAmC,MAAM,CAAA;AAAA,GACjD;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,GACzC;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAA,EAAM,eAA0B,KAAK,CAAA;AAAA,GACvC;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,GACzC;AAAA,EACA,KAAO,EAAA;AAAA,IACL,IAAA,EAAM,eAA6B,MAAM,CAAA;AAAA,IACzC,SAAS,OAAO;AAAA,MACd,GAAK,EAAA,EAAA;AAAA,MACL,KAAO,EAAA,EAAA;AAAA,KACT,CAAA;AAAA,GACF;AAAA,EACA,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,gBAAkB,EAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,IACN,OAAA,EAAS,OAAO,EAAC,CAAA;AAAA,GACnB;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AACF,CAAU,EAAA;AAEH,MAAM,iBAAoB,GAAA;AAAA,EAC/B,QAAQ,MAAM,IAAA;AAAA,EACd,QAAQ,MAAM,IAAA;AAAA,EACd,cAAgB,EAAA,CAAC,KAAwB,KAAA,CAAC,CAAC,KAAA;AAC7C;;;;"}
1
+ {"version":3,"file":"key-value-item.mjs","sources":["../../../../../../../packages/components/key-value/src/config/key-value-item.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\nimport type { FormProps } from 'ant-design-vue'\nimport type { FormColumn } from '@ll-plus/components'\nimport type { IKeyType, IKeyValueItem } from './key-value'\n\n// 定义 typeRules 常量\nexport const typeRules: Array<{\n trigger: string[]\n message: string\n validator: (_rule: any, value: any) => Promise<void>\n}> = [\n {\n trigger: ['blur', 'change'],\n message: '此字段是必需的',\n validator: async (_rule: any, value: any): Promise<void> => {\n if (!value) {\n return Promise.reject(new Error('此字段是必需的'))\n } else {\n return Promise.resolve()\n }\n }\n }\n]\n\n// 定义 formOptions 常量\nexport const formOptions: FormProps = {\n layout: 'horizontal',\n labelAlign: 'left'\n}\n\n// 定义 formColumns 常量\nexport const formColumns: Array<{\n key: string\n labelCol: {\n span: number\n }\n}> = [\n {\n key: 'other',\n labelCol: {\n span: 24\n }\n }\n]\n\n// 定义 keyValueItemProps 常量\nexport const keyValueItemProps = buildProps({\n disabled: {\n type: Boolean,\n default: false\n },\n values: {\n type: definePropType<IKeyValueItem[]>(Array),\n default: (): IKeyValueItem[] => [\n {\n key: null,\n value: null,\n guid: ''\n }\n ]\n },\n disabledValue: {\n type: definePropType<number[]>(Array),\n default: (): number[] => []\n },\n disabledKey: {\n type: definePropType<number[]>(Array),\n default: (): number[] => []\n },\n disabledDelete: {\n type: definePropType<number[]>(Array),\n default: (): number[] => []\n },\n keyValueType: {\n type: definePropType<'single' | 'doubt'>(String),\n default: 'doubt'\n },\n keyType: {\n type: definePropType<FormColumn>(Object),\n default: (): FormColumn => ({\n type: 'input',\n placeholder: '请输入Key'\n })\n },\n keyTypes: {\n type: definePropType<IKeyType[]>(Array),\n default: (): IKeyType[] => []\n },\n valueType: {\n type: definePropType<FormColumn>(Object),\n default: (): FormColumn => ({\n type: 'input',\n placeholder: '请输入Value'\n })\n },\n value: {\n type: definePropType<IKeyValueItem>(Object),\n default: (): IKeyValueItem => ({\n key: '',\n value: '',\n guid: ''\n })\n },\n idx: {\n type: Number,\n required: true\n },\n keyValueTypeDict: {\n type: Object as () => Record<string, string>,\n default: (): Record<string, string> => ({})\n },\n keepLast: {\n type: Boolean,\n default: false\n }\n} as const)\n\n// 定义 keyValueItemEmits 常量\nexport const keyValueItemEmits = {\n delete: (): boolean => true,\n change: (): boolean => true,\n 'update:value': (value: IKeyValueItem): boolean => !!value\n}\n"],"names":[],"mappings":"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"}
@@ -1,15 +1,17 @@
1
1
  import '../../../../utils/index.mjs';
2
+ import { guid } from '../../../../utils/data.mjs';
2
3
  import { buildProps, definePropType } from '../../../../utils/props/runtime.mjs';
3
4
 
4
5
  "use strict";
5
6
  const getKeyValueItem = () => ({
6
7
  key: null,
7
- value: null
8
+ value: null,
9
+ guid: guid()
8
10
  });
9
11
  const keyValueProps = buildProps({
10
12
  value: {
11
13
  type: definePropType(Array),
12
- default: () => [{ key: "", value: "" }]
14
+ default: () => [{ key: null, value: null }]
13
15
  },
14
16
  loading: {
15
17
  type: Boolean,
@@ -1 +1 @@
1
- {"version":3,"file":"key-value.mjs","sources":["../../../../../../../packages/components/key-value/src/config/key-value.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport { type FormColumn } from '@ll-plus/components'\nimport type { KeyValueItem } from './key-value-item'\nimport type KeyValue from '../key-value.vue'\n\nexport interface KeyType {\n label: string\n value: string\n option: FormColumn\n}\n\ntype KeyValueType = 'single' | 'doubt'\n\nexport const getKeyValueItem = () => ({\n key: null,\n value: null\n})\n\nexport const keyValueProps = buildProps({\n value: {\n type: definePropType<KeyValueItem[]>(Array),\n default: () => [{ key: '', value: '' }]\n },\n loading: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n keyLabel: {\n type: String,\n default: ''\n },\n valueLabel: {\n type: String,\n default: ''\n },\n addText: {\n type: String,\n default: '添加'\n },\n keyValueType: {\n type: definePropType<KeyValueType>(String),\n default: 'doubt'\n },\n keyType: {\n type: definePropType<FormColumn>(Object),\n default: () => ({\n type: 'input',\n placeholder: '请输入Key'\n })\n },\n keyTypes: {\n type: definePropType<KeyType[]>(Array),\n default: () => []\n },\n valueType: {\n type: definePropType<FormColumn>(Object),\n default: () => ({\n type: 'input',\n placeholder: '请输入Value'\n })\n },\n disabledValue: {\n type: definePropType<number[]>(Array),\n default: () => []\n },\n disabledKey: {\n type: definePropType<number[]>(Array),\n default: () => []\n },\n disabledDelete: {\n type: definePropType<number[]>(Array),\n default: () => []\n },\n disabledAdd: {\n type: Boolean,\n default: false\n },\n validate: {\n type: Boolean,\n default: false\n },\n keepLast: {\n type: Boolean,\n default: true\n }\n} as const)\n\nexport interface KeyValueAddEmits {\n index: number\n item: KeyValueItem\n value: KeyValueItem[]\n}\n\nexport const keyValueEmits = {\n change: (value: KeyValueItem[]) => !!value,\n add: (params: KeyValueAddEmits) => !!params,\n delete: (index: number) => typeof index === 'number',\n 'update:value': (value: KeyValueItem[]) => !!value\n}\n\n// props\nexport type KeyValueProps = ExtractPropTypes<typeof keyValueProps>\n// emits\nexport type KeyValueEmits = typeof keyValueEmits\n// instance\nexport type KeyValueInstance = InstanceType<typeof KeyValue>\n"],"names":[],"mappings":";;;;AAeO,MAAM,kBAAkB,OAAO;AAAA,EACpC,GAAK,EAAA,IAAA;AAAA,EACL,KAAO,EAAA,IAAA;AACT,CAAA,EAAA;AAEO,MAAM,gBAAgB,UAAW,CAAA;AAAA,EACtC,KAAO,EAAA;AAAA,IACL,IAAA,EAAM,eAA+B,KAAK,CAAA;AAAA,IAC1C,OAAA,EAAS,MAAM,CAAC,EAAE,KAAK,EAAI,EAAA,KAAA,EAAO,IAAI,CAAA;AAAA,GACxC;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,cAAA;AAAA,GACX;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAA,EAAM,eAA6B,MAAM,CAAA;AAAA,IACzC,OAAS,EAAA,OAAA;AAAA,GACX;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,IACvC,SAAS,OAAO;AAAA,MACd,IAAM,EAAA,OAAA;AAAA,MACN,WAAa,EAAA,uBAAA;AAAA,KACf,CAAA;AAAA,GACF;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAA,EAAM,eAA0B,KAAK,CAAA;AAAA,IACrC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,IACvC,SAAS,OAAO;AAAA,MACd,IAAM,EAAA,OAAA;AAAA,MACN,WAAa,EAAA,yBAAA;AAAA,KACf,CAAA;AAAA,GACF;AAAA,EACA,aAAe,EAAA;AAAA,IACb,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,IACpC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,IACpC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,IACpC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AACF,CAAU,EAAA;AAQH,MAAM,aAAgB,GAAA;AAAA,EAC3B,MAAQ,EAAA,CAAC,KAA0B,KAAA,CAAC,CAAC,KAAA;AAAA,EACrC,GAAK,EAAA,CAAC,MAA6B,KAAA,CAAC,CAAC,MAAA;AAAA,EACrC,MAAQ,EAAA,CAAC,KAAkB,KAAA,OAAO,KAAU,KAAA,QAAA;AAAA,EAC5C,cAAgB,EAAA,CAAC,KAA0B,KAAA,CAAC,CAAC,KAAA;AAC/C;;;;"}
1
+ {"version":3,"file":"key-value.mjs","sources":["../../../../../../../packages/components/key-value/src/config/key-value.ts"],"sourcesContent":["import { buildProps, definePropType, guid } from '@ll-plus/utils'\nimport type { ExtractPropTypes } from 'vue'\nimport { type FormColumn } from '@ll-plus/components'\nimport type KeyValue from '../key-value.vue'\n\n// 定义 IKeyType 接口\nexport interface IKeyType {\n label: string\n value: string\n option: FormColumn\n}\n\n// 定义 IKeyValueReturn 接口\nexport interface IKeyValueReturn {\n key: any | null\n value: any | null\n}\n\n// 定义 IKeyValueItem 类型\nexport type IKeyValueItem = IKeyValueReturn & { guid: string }\n\n// 定义 IKeyValueType 类型\ntype IKeyValueType = 'single' | 'doubt'\n\n// 定义 getKeyValueItem 函数\nexport const getKeyValueItem = (): IKeyValueItem => ({\n key: null,\n value: null,\n guid: guid()\n})\n\n// 定义 keyValueProps 常量\nexport const keyValueProps = buildProps({\n value: {\n type: definePropType<IKeyValueReturn[]>(Array),\n default: (): IKeyValueReturn[] => [{ key: null, value: null }]\n },\n loading: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n keyLabel: {\n type: String,\n default: ''\n },\n valueLabel: {\n type: String,\n default: ''\n },\n addText: {\n type: String,\n default: '添加'\n },\n keyValueType: {\n type: definePropType<IKeyValueType>(String),\n default: 'doubt'\n },\n keyType: {\n type: definePropType<FormColumn>(Object),\n default: (): FormColumn => ({\n type: 'input',\n placeholder: '请输入Key'\n })\n },\n keyTypes: {\n type: definePropType<IKeyType[]>(Array),\n default: (): IKeyType[] => []\n },\n valueType: {\n type: definePropType<FormColumn>(Object),\n default: (): FormColumn => ({\n type: 'input',\n placeholder: '请输入Value'\n })\n },\n disabledValue: {\n type: definePropType<number[]>(Array),\n default: (): number[] => []\n },\n disabledKey: {\n type: definePropType<number[]>(Array),\n default: (): number[] => []\n },\n disabledDelete: {\n type: definePropType<number[]>(Array),\n default: (): number[] => []\n },\n disabledAdd: {\n type: Boolean,\n default: false\n },\n validate: {\n type: Boolean,\n default: false\n },\n keepLast: {\n type: Boolean,\n default: true\n }\n} as const)\n\n// 定义 IKeyValueAddEmits 接口\nexport interface IKeyValueAddEmits {\n index: number\n item: IKeyValueItem\n value: IKeyValueItem[]\n}\n\n// 定义 keyValueEmits 常量\nexport const keyValueEmits = {\n change: (value: IKeyValueReturn[]): boolean => !!value,\n add: (params: IKeyValueAddEmits): boolean => !!params,\n delete: (index: number): boolean => typeof index === 'number',\n 'update:value': (value: IKeyValueReturn[]): boolean => !!value\n}\n\n// 定义 KeyValueProps 类型\nexport type KeyValueProps = ExtractPropTypes<typeof keyValueProps>\n// 定义 KeyValueEmits 类型\nexport type KeyValueEmits = typeof keyValueEmits\n// 定义 KeyValueInstance 类型\nexport type KeyValueInstance = InstanceType<typeof KeyValue>\n"],"names":[],"mappings":";;;;;AAyBO,MAAM,kBAAkB,OAAsB;AAAA,EACnD,GAAK,EAAA,IAAA;AAAA,EACL,KAAO,EAAA,IAAA;AAAA,EACP,MAAM,IAAK,EAAA;AACb,CAAA,EAAA;AAGO,MAAM,gBAAgB,UAAW,CAAA;AAAA,EACtC,KAAO,EAAA;AAAA,IACL,IAAA,EAAM,eAAkC,KAAK,CAAA;AAAA,IAC7C,OAAA,EAAS,MAAyB,CAAC,EAAE,KAAK,IAAM,EAAA,KAAA,EAAO,MAAM,CAAA;AAAA,GAC/D;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,cAAA;AAAA,GACX;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAA,EAAM,eAA8B,MAAM,CAAA;AAAA,IAC1C,OAAS,EAAA,OAAA;AAAA,GACX;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,IACvC,SAAS,OAAmB;AAAA,MAC1B,IAAM,EAAA,OAAA;AAAA,MACN,WAAa,EAAA,uBAAA;AAAA,KACf,CAAA;AAAA,GACF;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAA,EAAM,eAA2B,KAAK,CAAA;AAAA,IACtC,OAAA,EAAS,MAAkB,EAAC;AAAA,GAC9B;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,IACvC,SAAS,OAAmB;AAAA,MAC1B,IAAM,EAAA,OAAA;AAAA,MACN,WAAa,EAAA,yBAAA;AAAA,KACf,CAAA;AAAA,GACF;AAAA,EACA,aAAe,EAAA;AAAA,IACb,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,IACpC,OAAA,EAAS,MAAgB,EAAC;AAAA,GAC5B;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,IACpC,OAAA,EAAS,MAAgB,EAAC;AAAA,GAC5B;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,IACpC,OAAA,EAAS,MAAgB,EAAC;AAAA,GAC5B;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AACF,CAAU,EAAA;AAUH,MAAM,aAAgB,GAAA;AAAA,EAC3B,MAAQ,EAAA,CAAC,KAAsC,KAAA,CAAC,CAAC,KAAA;AAAA,EACjD,GAAK,EAAA,CAAC,MAAuC,KAAA,CAAC,CAAC,MAAA;AAAA,EAC/C,MAAQ,EAAA,CAAC,KAA2B,KAAA,OAAO,KAAU,KAAA,QAAA;AAAA,EACrD,cAAgB,EAAA,CAAC,KAAsC,KAAA,CAAC,CAAC,KAAA;AAC3D;;;;"}
@@ -5,6 +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 { guid, hasValue, deepCompare } from '../../../utils/data.mjs';
8
9
 
9
10
  "use strict";
10
11
  var _sfc_main = /* @__PURE__ */ defineComponent({
@@ -17,69 +18,132 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
17
18
  const emits = __emit;
18
19
  const bem = createNamespace("key-value");
19
20
  const formItemContext = Form.useInjectFormItemContext();
20
- const innerValue = ref([]);
21
- const keyValueItems = ref([]);
21
+ const innerValue = ref(
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
+ })
28
+ );
29
+ const keyValueItems = ref({});
30
+ const setKeyValueItems = (el, type) => {
31
+ if (el) {
32
+ keyValueItems.value[type] = el;
33
+ }
34
+ };
22
35
  const keyValueTypeDict = computed(() => {
23
36
  const obj = {};
24
- props.keyTypes.map((e) => {
37
+ props.keyTypes.forEach((e) => {
25
38
  obj[e.value] = e.option;
26
39
  });
27
40
  return obj;
28
41
  });
29
42
  const validate = async () => {
30
43
  await nextTick();
31
- return Promise.all(
32
- 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
+ }
33
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 };
34
63
  };
35
64
  const resetFields = async () => {
36
65
  await nextTick();
37
- return Promise.all(
38
- keyValueItems.value.filter((e) => !!e).map((e) => e.resetFields())
39
- );
66
+ for (const i of Object.values(keyValueItems.value)) {
67
+ if (i) {
68
+ i.resetFields();
69
+ }
70
+ }
40
71
  };
41
72
  const clearValidate = async () => {
42
73
  await nextTick();
43
- return Promise.all(
44
- keyValueItems.value.filter((e) => !!e).map((e) => e.clearValidate())
45
- );
74
+ for (const i of Object.values(keyValueItems.value)) {
75
+ if (i) {
76
+ i.clearValidate();
77
+ }
78
+ }
46
79
  };
47
80
  const handleAddItem = async () => {
48
- const valid = await validate();
49
- if (props.validate && !valid)
50
- return false;
81
+ const { valid } = await validate();
82
+ if (!valid)
83
+ return;
51
84
  innerValue.value.push(getKeyValueItem());
52
85
  emits("add", {
53
86
  index: innerValue.value.length - 1,
54
87
  item: innerValue.value[innerValue.value.length - 1],
55
88
  value: innerValue.value
56
89
  });
57
- handleChange();
58
90
  };
59
91
  const handleDelete = (idx) => {
60
- innerValue.value.splice(idx, 1);
61
- emits("delete", idx);
62
- handleChange();
63
- };
64
- const handleChange = () => {
65
- try {
66
- formItemContext.onFieldChange();
67
- emits("change", innerValue.value);
68
- emits("update:value", innerValue.value);
69
- } catch (error) {
70
- console.error(error);
92
+ if (innerValue.value.length === 1) {
93
+ innerValue.value = [{ key: null, value: null, guid: guid() }];
94
+ } else {
95
+ innerValue.value.splice(idx, 1);
96
+ emits("delete", idx);
71
97
  }
72
98
  };
99
+ const getValue = (val) => {
100
+ return val.filter((e) => hasValue(e.key) || hasValue(e.value)).map((e) => ({
101
+ key: e.key,
102
+ value: e.value
103
+ }));
104
+ };
73
105
  watch(
74
106
  () => props.value,
75
107
  (n) => {
76
- innerValue.value = n && n.length > 0 ? n : props.keepLast ? [{ key: null, value: null }] : n;
108
+ if (!n || n && !n.length)
109
+ return;
110
+ const copyInnerValue = getValue(innerValue.value);
111
+ const copyPropsValue = getValue(n);
112
+ if (deepCompare(copyInnerValue, copyPropsValue))
113
+ return;
114
+ innerValue.value = [
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
+ });
77
122
  },
78
123
  {
79
124
  immediate: true,
80
125
  deep: true
81
126
  }
82
127
  );
128
+ watch(
129
+ () => innerValue.value,
130
+ (val) => {
131
+ const copyInnerValue = getValue(val);
132
+ const copyPropsValue = getValue(props.value);
133
+ if (deepCompare(copyInnerValue, copyPropsValue))
134
+ return;
135
+ try {
136
+ formItemContext.onFieldChange();
137
+ emits("change", copyInnerValue);
138
+ emits("update:value", copyInnerValue);
139
+ } catch (error) {
140
+ console.error(error);
141
+ }
142
+ },
143
+ {
144
+ deep: true
145
+ }
146
+ );
83
147
  __expose({
84
148
  validate,
85
149
  resetFields,
@@ -111,9 +175,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
111
175
  null,
112
176
  renderList(innerValue.value, (_item, idx) => {
113
177
  return openBlock(), createBlock(keyValueItem, {
114
- key: _item,
178
+ key: _item.guid,
115
179
  ref_for: true,
116
- ref: (el) => keyValueItems.value[idx] = el,
180
+ ref: (el) => setKeyValueItems(el, _item.guid),
117
181
  value: innerValue.value[idx],
118
182
  "onUpdate:value": ($event) => innerValue.value[idx] = $event,
119
183
  idx,
@@ -124,13 +188,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
124
188
  "key-type": props.keyType,
125
189
  "key-types": props.keyTypes,
126
190
  "value-type": props.valueType,
191
+ values: innerValue.value,
127
192
  disabled: props.disabled,
128
193
  "disabled-value": props.disabledValue,
129
194
  "disabled-key": props.disabledKey,
130
195
  "disabled-delete": props.disabledDelete,
131
- "show-delete": props.keepLast ? idx > 0 : true,
132
- onDelete: ($event) => handleDelete(idx),
133
- onChange: handleChange
196
+ "keep-last": props.keepLast,
197
+ onDelete: ($event) => handleDelete(idx)
134
198
  }, createSlots({
135
199
  _: 2
136
200
  /* DYNAMIC */
@@ -143,7 +207,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
143
207
  ])
144
208
  };
145
209
  })
146
- ]), 1032, ["value", "onUpdate:value", "idx", "key-label", "value-label", "key-value-type-dict", "key-value-type", "key-type", "key-types", "value-type", "disabled", "disabled-value", "disabled-key", "disabled-delete", "show-delete", "onDelete"]);
210
+ ]), 1032, ["value", "onUpdate:value", "idx", "key-label", "value-label", "key-value-type-dict", "key-value-type", "key-type", "key-types", "value-type", "values", "disabled", "disabled-value", "disabled-key", "disabled-delete", "keep-last", "onDelete"]);
147
211
  }),
148
212
  128
149
213
  /* KEYED_FRAGMENT */