@done-coding/admin-core 0.17.1-alpha.0 → 0.18.1-alpha.0

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 (342) hide show
  1. package/README.md +77 -1
  2. package/es/_virtual/_plugin-vue_export-helper.mjs +7 -6
  3. package/es/bridge/config-hook.mjs +49 -37
  4. package/es/bridge/index.mjs +152 -109
  5. package/es/bridge/layout.mjs +45 -31
  6. package/es/bridge/plugin.mjs +22 -12
  7. package/es/bridge/route.mjs +59 -50
  8. package/es/bridge/state.mjs +54 -39
  9. package/es/bridge/storage.mjs +18 -8
  10. package/es/bridge/theme/index.mjs +200 -97
  11. package/es/bridge/theme/persist.mjs +11 -7
  12. package/es/bridge/theme/system-dark.mjs +13 -6
  13. package/es/components/app-layout/AppAside.vue.mjs +4 -4
  14. package/es/components/app-layout/AppAside.vue2.mjs +37 -30
  15. package/es/components/app-layout/AppBody.vue.mjs +4 -4
  16. package/es/components/app-layout/AppBody.vue2.mjs +97 -60
  17. package/es/components/app-layout/AppBreadcrumb.vue.mjs +4 -4
  18. package/es/components/app-layout/AppBreadcrumb.vue2.mjs +59 -38
  19. package/es/components/app-layout/AppCollapseToggle.vue.mjs +4 -4
  20. package/es/components/app-layout/AppCollapseToggle.vue2.mjs +51 -42
  21. package/es/components/app-layout/AppFooter.vue.mjs +4 -4
  22. package/es/components/app-layout/AppFooter.vue2.mjs +15 -12
  23. package/es/components/app-layout/AppHeader.vue.mjs +4 -4
  24. package/es/components/app-layout/AppHeader.vue2.mjs +81 -58
  25. package/es/components/app-layout/AppLayout.vue.mjs +4 -4
  26. package/es/components/app-layout/AppLayout.vue2.mjs +148 -112
  27. package/es/components/app-layout/AppPage.vue.mjs +4 -4
  28. package/es/components/app-layout/AppPage.vue2.mjs +254 -197
  29. package/es/components/app-layout/AppShell.vue.mjs +44 -42
  30. package/es/components/app-layout/AppShell.vue2.mjs +2 -2
  31. package/es/components/app-layout/AppSidebar.vue.mjs +4 -4
  32. package/es/components/app-layout/AppSidebar.vue2.mjs +76 -59
  33. package/es/components/app-layout/AppTheme.vue.mjs +4 -4
  34. package/es/components/app-layout/AppTheme.vue2.mjs +69 -57
  35. package/es/components/app-layout/app-page-geometry.mjs +44 -42
  36. package/es/components/app-layout/keep-alive.mjs +27 -19
  37. package/es/components/app-layout/viewport.mjs +4 -3
  38. package/es/components/data-view/DataListView.vue.mjs +4 -4
  39. package/es/components/data-view/DataListView.vue2.mjs +133 -93
  40. package/es/components/data-view/DataListViewItem.vue.mjs +4 -4
  41. package/es/components/data-view/DataListViewItem.vue2.mjs +11 -9
  42. package/es/components/data-view/utils.mjs +36 -34
  43. package/es/components/display/ActionBtn.vue.mjs +94 -71
  44. package/es/components/display/ActionBtn.vue2.mjs +2 -2
  45. package/es/components/display/ActionBtnGroup.vue.mjs +54 -48
  46. package/es/components/display/ActionBtnGroup.vue2.mjs +2 -2
  47. package/es/components/display/ActionConfirm.vue.mjs +4 -4
  48. package/es/components/display/ActionConfirm.vue2.mjs +116 -92
  49. package/es/components/display/BooleanTag.vue.mjs +24 -18
  50. package/es/components/display/BooleanTag.vue2.mjs +2 -2
  51. package/es/components/display/HeightProvider.vue.mjs +37 -27
  52. package/es/components/display/HeightProvider.vue2.mjs +2 -2
  53. package/es/components/display/TabsHeader.vue.mjs +4 -4
  54. package/es/components/display/TabsHeader.vue2.mjs +86 -57
  55. package/es/components/display/TabsMain.vue.mjs +156 -125
  56. package/es/components/display/TabsMain.vue2.mjs +2 -2
  57. package/es/components/display/TabsNaturalFlow.vue.mjs +15 -11
  58. package/es/components/display/TabsNaturalFlow.vue2.mjs +2 -2
  59. package/es/components/display/TabsRefineFlow.vue.mjs +55 -42
  60. package/es/components/display/TabsRefineFlow.vue2.mjs +2 -2
  61. package/es/components/display/TabsTile.vue.mjs +4 -4
  62. package/es/components/display/TabsTile.vue2.mjs +204 -146
  63. package/es/components/display/WatchSize.vue.mjs +50 -30
  64. package/es/components/display/WatchSize.vue2.mjs +2 -2
  65. package/es/components/display/use-tabs-query-sync.mjs +21 -17
  66. package/es/components/form/FormItem.vue.mjs +4 -4
  67. package/es/components/form/FormItem.vue2.mjs +183 -121
  68. package/es/components/form/FormItemNestForm.vue.mjs +4 -4
  69. package/es/components/form/FormItemNestForm.vue2.mjs +38 -34
  70. package/es/components/form/FormItemNestFormList.vue.mjs +4 -4
  71. package/es/components/form/FormItemNestFormList.vue2.mjs +135 -106
  72. package/es/components/form/FormMain.vue.mjs +4 -4
  73. package/es/components/form/FormMain.vue2.mjs +226 -139
  74. package/es/components/form/FormRadioGroup.vue.mjs +67 -52
  75. package/es/components/form/FormRadioGroup.vue2.mjs +2 -2
  76. package/es/components/form/FormSearch.vue.mjs +4 -4
  77. package/es/components/form/FormSearch.vue2.mjs +194 -156
  78. package/es/components/form/FormSelect.vue.mjs +69 -42
  79. package/es/components/form/FormSelect.vue2.mjs +2 -2
  80. package/es/components/form/FormSubmitBtn.vue.mjs +30 -25
  81. package/es/components/form/FormSubmitBtn.vue2.mjs +2 -2
  82. package/es/components/form/FormSubmitPanel.vue.mjs +4 -4
  83. package/es/components/form/FormSubmitPanel.vue2.mjs +129 -96
  84. package/es/components/form/FormTree.vue.mjs +19 -16
  85. package/es/components/form/FormTree.vue2.mjs +2 -2
  86. package/es/components/form/FormVerifyCode.vue.mjs +58 -41
  87. package/es/components/form/FormVerifyCode.vue2.mjs +2 -2
  88. package/es/components/form/FormVerifyImage.vue.mjs +4 -4
  89. package/es/components/form/FormVerifyImage.vue2.mjs +62 -40
  90. package/es/components/form/form-search-utils.mjs +83 -52
  91. package/es/components/form/nest-form-item-list.mjs +63 -55
  92. package/es/components/form/nest-form-item.mjs +30 -30
  93. package/es/components/form/nest-registry.mjs +4 -4
  94. package/es/components/form/use-form-submit.mjs +18 -15
  95. package/es/components/form/use-layout-by-container.mjs +23 -15
  96. package/es/components/form/use-nest-form-list.mjs +19 -16
  97. package/es/components/form/use-nest-form.mjs +37 -28
  98. package/es/components/form/use-nest-layout-scale.mjs +11 -10
  99. package/es/components/form/utils.mjs +233 -145
  100. package/es/components/list-page/ListPage.vue.mjs +4 -4
  101. package/es/components/list-page/ListPage.vue2.mjs +313 -207
  102. package/es/components/list-page/use-sticky.mjs +45 -33
  103. package/es/components/menu/MenuItemSub.vue.mjs +47 -43
  104. package/es/components/menu/MenuItemSub.vue2.mjs +2 -2
  105. package/es/components/menu/MenuTree.vue.mjs +84 -61
  106. package/es/components/menu/MenuTree.vue2.mjs +2 -2
  107. package/es/components/misc/AutoRefresh.vue.mjs +4 -4
  108. package/es/components/misc/AutoRefresh.vue2.mjs +78 -53
  109. package/es/components/misc/AutoRefreshGroup.vue.mjs +4 -4
  110. package/es/components/misc/AutoRefreshGroup.vue2.mjs +54 -51
  111. package/es/components/misc/SelectModule.vue.mjs +54 -45
  112. package/es/components/misc/SelectModule.vue2.mjs +2 -2
  113. package/es/components/misc/TriggerAutoImport.vue.mjs +7 -5
  114. package/es/components/misc/TriggerAutoImport.vue2.mjs +2 -2
  115. package/es/components/modal/ModalConfirm.vue.mjs +4 -4
  116. package/es/components/modal/ModalConfirm.vue2.mjs +160 -125
  117. package/es/components/modal/ModalDetail.vue.mjs +50 -39
  118. package/es/components/modal/ModalDetail.vue2.mjs +2 -2
  119. package/es/components/modal/ModalForm.vue.mjs +63 -52
  120. package/es/components/modal/ModalForm.vue2.mjs +2 -2
  121. package/es/components/modal/ModalPorter.vue.mjs +51 -36
  122. package/es/components/modal/ModalPorter.vue2.mjs +2 -2
  123. package/es/components/modal/ModalShelf.vue.mjs +38 -28
  124. package/es/components/modal/ModalShelf.vue2.mjs +2 -2
  125. package/es/components/modal/modal-shelf-core.mjs +52 -36
  126. package/es/components/modal/modal-shelf-hierarchy.mjs +11 -9
  127. package/es/components/panel/PanelEditSwitch.vue.mjs +4 -4
  128. package/es/components/panel/PanelEditSwitch.vue2.mjs +88 -66
  129. package/es/components/panel/PanelItem.vue.mjs +4 -4
  130. package/es/components/panel/PanelItem.vue2.mjs +103 -77
  131. package/es/components/panel/PanelItemNestForm.vue.mjs +4 -4
  132. package/es/components/panel/PanelItemNestForm.vue2.mjs +61 -52
  133. package/es/components/panel/PanelItemNestPanel.vue.mjs +22 -20
  134. package/es/components/panel/PanelItemNestPanel.vue2.mjs +2 -2
  135. package/es/components/panel/PanelMain.vue.mjs +4 -4
  136. package/es/components/panel/PanelMain.vue2.mjs +92 -74
  137. package/es/components/panel/nest-panel-form.mjs +44 -38
  138. package/es/components/panel/nest-panel-item.mjs +18 -17
  139. package/es/components/slot-layout/SlotLayoutFlowAside.vue.mjs +4 -4
  140. package/es/components/slot-layout/SlotLayoutFlowAside.vue2.mjs +55 -42
  141. package/es/components/slot-layout/SlotLayoutTemplate.vue.mjs +11 -9
  142. package/es/components/slot-layout/SlotLayoutTemplate.vue2.mjs +2 -2
  143. package/es/components/table/TableMain.vue.mjs +4 -4
  144. package/es/components/table/TableMain.vue2.mjs +378 -275
  145. package/es/components/table/TableSkeleton.vue.mjs +4 -4
  146. package/es/components/table/TableSkeleton.vue2.mjs +95 -74
  147. package/es/components/table/TableToolbar.vue.mjs +4 -4
  148. package/es/components/table/TableToolbar.vue2.mjs +170 -154
  149. package/es/components/table/ToolbarButtons.vue.mjs +12 -10
  150. package/es/components/table/ToolbarButtons.vue2.mjs +2 -2
  151. package/es/components/table/constants.mjs +4 -3
  152. package/es/components/table/use-fill-height.mjs +12 -10
  153. package/es/components/table/use-table-skeleton.mjs +19 -15
  154. package/es/config/list-model.mjs +2 -2
  155. package/es/config/route.mjs +4 -3
  156. package/es/helpers/form.mjs +35 -25
  157. package/es/helpers/list-helper.mjs +59 -44
  158. package/es/hooks/activated.mjs +49 -33
  159. package/es/hooks/feel-size.mjs +39 -23
  160. package/es/hooks/menus-dispatch.mjs +68 -35
  161. package/es/hooks/timeout.mjs +29 -14
  162. package/es/hooks/use-breakpoint.mjs +35 -23
  163. package/es/hooks/use-channel-viewport-height.mjs +30 -20
  164. package/es/hooks/use-custom-breakpoint.mjs +48 -31
  165. package/es/hooks/use-observe-size.mjs +37 -20
  166. package/es/hooks/use-theme-apply.mjs +175 -124
  167. package/es/hooks/use-viewport-apply.mjs +39 -27
  168. package/es/index.mjs +239 -239
  169. package/es/inject/key.mjs +52 -41
  170. package/es/injectInfo.json.mjs +2 -2
  171. package/es/router/group-redirect.mjs +22 -16
  172. package/es/router/guard/index.mjs +26 -21
  173. package/es/router/guard/login.mjs +4 -2
  174. package/es/router/guard/permission.mjs +4 -2
  175. package/es/store/app.mjs +163 -123
  176. package/es/store/router-permission.mjs +75 -46
  177. package/es/store/user.mjs +100 -71
  178. package/es/style.css +769 -1
  179. package/es/utils/dom.mjs +20 -16
  180. package/es/utils/export.mjs +34 -18
  181. package/es/utils/id.mjs +5 -3
  182. package/es/utils/router.mjs +21 -14
  183. package/es/utils/theme-scale.mjs +50 -35
  184. package/es/utils/time.mjs +20 -14
  185. package/package.json +4 -3
  186. package/src/bridge/README.md +5 -0
  187. package/src/bridge/docs/README.md +72 -0
  188. package/src/components/README.md +84 -0
  189. package/src/components/app-layout/README.md +46 -0
  190. package/src/components/app-layout/docs/README-AppAside.md +69 -0
  191. package/src/components/app-layout/docs/README-AppBody.md +81 -0
  192. package/src/components/app-layout/docs/README-AppBreadcrumb.md +71 -0
  193. package/src/components/app-layout/docs/README-AppFooter.md +41 -0
  194. package/src/components/app-layout/docs/README-AppHeader.md +73 -0
  195. package/src/components/app-layout/docs/README-AppLayout.md +83 -0
  196. package/src/components/app-layout/docs/README-AppPage.md +80 -0
  197. package/src/components/app-layout/docs/README-AppSidebar.md +70 -0
  198. package/src/components/app-layout/docs/README-AppTheme.md +66 -0
  199. package/src/components/data-view/README.md +19 -0
  200. package/src/components/data-view/docs/README-DataListView.md +114 -0
  201. package/src/components/display/README.md +23 -0
  202. package/src/components/display/docs/README-ActionBtn.md +84 -0
  203. package/src/components/display/docs/README-ActionBtnGroup.md +96 -0
  204. package/src/components/display/docs/README-ActionConfirm.md +77 -0
  205. package/src/components/display/docs/README-BooleanTag.md +76 -0
  206. package/src/components/display/docs/README-HeightProvider.md +74 -0
  207. package/src/components/display/docs/README-TabsMain.md +99 -0
  208. package/src/components/display/docs/README-WatchSize.md +70 -0
  209. package/src/components/form/README.md +24 -0
  210. package/src/components/form/docs/README-FormItemNestForm.md +86 -0
  211. package/src/components/form/docs/README-FormItemNestFormList.md +93 -0
  212. package/src/components/form/docs/README-FormMain.md +101 -0
  213. package/src/components/form/docs/README-FormSearch.md +89 -0
  214. package/src/components/form/docs/README-FormSubmitBtn.md +72 -0
  215. package/src/components/form/docs/README-FormSubmitPanel.md +97 -0
  216. package/src/components/list-page/README.md +16 -0
  217. package/src/components/list-page/docs/README-ListPage.md +136 -0
  218. package/src/components/menu/README.md +19 -0
  219. package/src/components/menu/docs/README-MenuItemSub.md +53 -0
  220. package/src/components/menu/docs/README-MenuTree.md +76 -0
  221. package/src/components/misc/README.md +21 -0
  222. package/src/components/misc/docs/README-AutoRefresh.md +74 -0
  223. package/src/components/misc/docs/README-AutoRefreshGroup.md +74 -0
  224. package/src/components/misc/docs/README-SelectModule.md +72 -0
  225. package/src/components/modal/README.md +21 -0
  226. package/src/components/modal/docs/README-ModalConfirm.md +105 -0
  227. package/src/components/modal/docs/README-ModalDetail.md +103 -0
  228. package/src/components/modal/docs/README-ModalForm.md +97 -0
  229. package/src/components/modal/docs/README-ModalPorter.md +92 -0
  230. package/src/components/modal/docs/README-ModalShelf.md +115 -0
  231. package/src/components/panel/README.md +19 -0
  232. package/src/components/panel/docs/README-PanelMain.md +149 -0
  233. package/src/components/slot-layout/README.md +17 -0
  234. package/src/components/slot-layout/docs/README-SlotLayoutFlowAside.md +83 -0
  235. package/src/components/slot-layout/docs/README-SlotLayoutTemplate.md +73 -0
  236. package/src/components/table/README.md +17 -0
  237. package/src/components/table/docs/README-TableMain.md +140 -0
  238. package/src/hooks/README.md +5 -0
  239. package/src/hooks/docs/README.md +49 -0
  240. package/types/bridge/config-hook.d.ts +68 -0
  241. package/types/bridge/index.d.ts +411 -0
  242. package/types/bridge/layout.d.ts +40 -0
  243. package/types/bridge/plugin.d.ts +18 -0
  244. package/types/bridge/route.d.ts +20 -1
  245. package/types/bridge/state.d.ts +14 -0
  246. package/types/bridge/storage.d.ts +9 -0
  247. package/types/bridge/theme/index.d.ts +7 -0
  248. package/types/bridge/theme/persist.d.ts +12 -0
  249. package/types/bridge/theme/system-dark.d.ts +12 -0
  250. package/types/bridge/theme/types.d.ts +238 -0
  251. package/types/components/app-layout/AppAside.vue.d.ts +1 -0
  252. package/types/components/app-layout/AppCollapseToggle.vue.d.ts +3 -0
  253. package/types/components/app-layout/AppHeader.vue.d.ts +3 -0
  254. package/types/components/app-layout/AppLayout.vue.d.ts +12 -0
  255. package/types/components/app-layout/AppPage.vue.d.ts +17 -0
  256. package/types/components/app-layout/AppSidebar.vue.d.ts +2 -0
  257. package/types/components/app-layout/app-page-geometry.d.ts +48 -0
  258. package/types/components/app-layout/keep-alive.d.ts +17 -0
  259. package/types/components/app-layout/types.d.ts +125 -0
  260. package/types/components/app-layout/viewport.d.ts +28 -0
  261. package/types/components/data-view/DataListViewItem.vue.d.ts +8 -0
  262. package/types/components/data-view/index.d.ts +4 -0
  263. package/types/components/data-view/types.d.ts +42 -0
  264. package/types/components/data-view/utils.d.ts +3 -0
  265. package/types/components/display/TabsHeader.vue.d.ts +2 -0
  266. package/types/components/display/TabsMain.vue.d.ts +2 -0
  267. package/types/components/display/TabsRefineFlow.vue.d.ts +1 -0
  268. package/types/components/display/TabsTile.vue.d.ts +247 -12
  269. package/types/components/display/WatchSize.vue.d.ts +9 -0
  270. package/types/components/display/index.d.ts +37 -1
  271. package/types/components/display/types.d.ts +163 -0
  272. package/types/components/display/use-tabs-query-sync.d.ts +29 -0
  273. package/types/components/form/FormItemNestForm.vue.d.ts +5 -0
  274. package/types/components/form/FormItemNestFormList.vue.d.ts +17 -0
  275. package/types/components/form/FormVerifyCode.vue.d.ts +9 -0
  276. package/types/components/form/FormVerifyImage.vue.d.ts +1 -0
  277. package/types/components/form/form-search-utils.d.ts +34 -0
  278. package/types/components/form/nest-form-item-list.d.ts +28 -0
  279. package/types/components/form/nest-form-item.d.ts +21 -0
  280. package/types/components/form/nest-registry.d.ts +14 -0
  281. package/types/components/form/types.d.ts +208 -8
  282. package/types/components/form/use-form-submit.d.ts +13 -0
  283. package/types/components/form/use-layout-by-container.d.ts +23 -0
  284. package/types/components/form/use-nest-form-list.d.ts +13 -0
  285. package/types/components/form/use-nest-form.d.ts +15 -0
  286. package/types/components/form/use-nest-layout-scale.d.ts +12 -0
  287. package/types/components/form/utils.d.ts +56 -1
  288. package/types/components/list-page/ListPage.vue.d.ts +6 -0
  289. package/types/components/list-page/types.d.ts +50 -2
  290. package/types/components/list-page/use-sticky.d.ts +23 -0
  291. package/types/components/misc/index.d.ts +6 -1
  292. package/types/components/misc/types.d.ts +7 -0
  293. package/types/components/modal/ModalConfirm.vue.d.ts +29 -0
  294. package/types/components/modal/index.d.ts +7 -1
  295. package/types/components/modal/modal-shelf-core.d.ts +3 -0
  296. package/types/components/modal/modal-shelf-hierarchy.d.ts +4 -0
  297. package/types/components/modal/modal-shelf-types.d.ts +34 -0
  298. package/types/components/modal/types.d.ts +63 -2
  299. package/types/components/panel/PanelItemNestForm.vue.d.ts +6 -0
  300. package/types/components/panel/PanelItemNestPanel.vue.d.ts +5 -0
  301. package/types/components/panel/nest-panel-form.d.ts +21 -0
  302. package/types/components/panel/nest-panel-item.d.ts +14 -0
  303. package/types/components/panel/types.d.ts +52 -1
  304. package/types/components/slot-layout/SlotLayoutTemplate.vue.d.ts +21 -0
  305. package/types/components/slot-layout/types.d.ts +4 -0
  306. package/types/components/table/constants.d.ts +8 -0
  307. package/types/components/table/types.d.ts +140 -9
  308. package/types/components/table/use-fill-height.d.ts +14 -0
  309. package/types/components/table/use-table-skeleton.d.ts +16 -0
  310. package/types/config/list-model.d.ts +29 -0
  311. package/types/config/route.d.ts +2 -0
  312. package/types/helpers/form.d.ts +5 -0
  313. package/types/helpers/list-helper.d.ts +26 -0
  314. package/types/helpers/types.d.ts +11 -0
  315. package/types/hooks/activated.d.ts +23 -0
  316. package/types/hooks/feel-size.d.ts +2 -0
  317. package/types/hooks/menus-dispatch.d.ts +4 -0
  318. package/types/hooks/timeout.d.ts +4 -0
  319. package/types/hooks/use-channel-viewport-height.d.ts +8 -0
  320. package/types/hooks/use-custom-breakpoint.d.ts +19 -0
  321. package/types/hooks/use-observe-size.d.ts +29 -0
  322. package/types/hooks/use-theme-apply.d.ts +23 -0
  323. package/types/hooks/use-viewport-apply.d.ts +12 -0
  324. package/types/inject/key.d.ts +163 -0
  325. package/types/injectInfo.json.d.ts +1 -1
  326. package/types/router/group-redirect.d.ts +9 -0
  327. package/types/router/guard/index.d.ts +13 -0
  328. package/types/router/guard/login.d.ts +1 -0
  329. package/types/router/guard/permission.d.ts +1 -0
  330. package/types/router/guard/types.d.ts +3 -0
  331. package/types/store/app.d.ts +27 -0
  332. package/types/store/router-permission.d.ts +53 -0
  333. package/types/store/user.d.ts +24 -0
  334. package/types/types/dot-path.d.ts +8 -0
  335. package/types/types/route.d.ts +45 -0
  336. package/types/types/utility-types.d.ts +7 -0
  337. package/types/utils/dom.d.ts +22 -0
  338. package/types/utils/export.d.ts +16 -1
  339. package/types/utils/id.d.ts +1 -0
  340. package/types/utils/router.d.ts +2 -0
  341. package/types/utils/theme-scale.d.ts +31 -0
  342. package/types/utils/time.d.ts +1 -0
@@ -1,13 +1,15 @@
1
- import { defineComponent as Y, shallowRef as H, provide as h, computed as s, ref as _, watch as b, openBlock as F, createBlock as V, unref as E, withCtx as v, createVNode as j, createElementBlock as U, Fragment as q, renderList as z, withDirectives as J, mergeProps as x, renderSlot as B, vShow as Q } from "vue";
2
- import { useFormLayoutByContainer as W } from "./use-layout-by-container.mjs";
3
- import { ElForm as X, ElRow as Z, ElCol as ee } from "element-plus";
4
- import te from "./FormItem.vue.mjs";
5
- import { FORM_ITEM_CHANGE_LOADING as ae, stringifyFormData as le, parseFormData as oe, generateFormData as re, resolveFormLayout as R } from "./utils.mjs";
6
- import { createNestFormExposeMap as se } from "./nest-registry.mjs";
7
- import { FORM_NEST_REGISTRY_KEY as ne, NEST_LAYOUT_SCALE_KEY as ie } from "../../inject/key.mjs";
8
- const Ee = /* @__PURE__ */ Y({
9
- name: "FormMain",
10
- inheritAttrs: !0,
1
+ import { defineComponent, shallowRef, provide, computed, ref, watch, openBlock, createBlock, unref, withCtx, createVNode, createElementBlock, Fragment, renderList, withDirectives, mergeProps, renderSlot, vShow } from "vue";
2
+ import { useFormLayoutByContainer } from "./use-layout-by-container.mjs";
3
+ import { ElForm, ElRow, ElCol } from "element-plus";
4
+ import FormItem from "./FormItem.vue.mjs";
5
+ import { FORM_ITEM_CHANGE_LOADING, stringifyFormData, parseFormData, generateFormData, resolveFormLayout } from "./utils.mjs";
6
+ import { createNestFormExposeMap } from "./nest-registry.mjs";
7
+ import { FORM_NEST_REGISTRY_KEY, NEST_LAYOUT_SCALE_KEY } from "../../inject/key.mjs";
8
+ const _sfc_main = /* @__PURE__ */ defineComponent({
9
+ ...{
10
+ name: "FormMain",
11
+ inheritAttrs: true
12
+ },
11
13
  __name: "FormMain",
12
14
  props: {
13
15
  list: {},
@@ -15,154 +17,239 @@ const Ee = /* @__PURE__ */ Y({
15
17
  layout: {},
16
18
  rowGutter: { default: 8 },
17
19
  layoutScale: { default: 1 },
18
- layoutByContainer: { type: Boolean, default: !1 }
20
+ layoutByContainer: { type: Boolean, default: false }
19
21
  },
20
22
  emits: ["loadingChange", "visibleChange", "submit"],
21
- setup(d, { expose: M, emit: K }) {
22
- const o = d, y = K, r = H(), { resolveLayoutByContainer: N } = W({
23
- enabled: () => o.layoutByContainer,
24
- getForm: () => r.value
25
- }), f = se();
26
- h(ne, f);
27
- const A = s(() => o.layoutScale ?? 1);
28
- h(ie, A);
29
- const i = _([]), n = _({}), C = s(() => !!i.value.length), g = s(() => Object.keys(n.value).filter(
30
- (e) => n.value[e]
31
- )), D = s(() => o.list.filter((e) => !g.value.includes(e.key))), G = s(() => D.value.length > 0), I = (e) => e;
32
- M({
33
- validate: async () => {
34
- if (!r.value) return Promise.reject(new Error("实例化未完成"));
35
- const e = new Promise((a, l) => {
36
- var u;
37
- (u = r.value) == null || u.validate((P, L) => {
38
- if (P)
39
- a();
40
- else {
41
- const m = { ...L || {} };
42
- Object.keys(m).forEach((c) => {
43
- var O;
44
- g.value.includes(c) && (console.log(`当前${c}被隐藏,移除校验`, m[c]), delete m[c], (O = r.value) == null || O.clearValidate(c));
45
- }), Object.keys(m).length === 0 ? a() : l(L);
46
- }
47
- });
48
- }), t = Object.entries(f).filter(([a]) => !g.value.includes(a)).map(([, a]) => a.validate());
49
- await Promise.all([e, ...t]);
50
- },
51
- resetFields: () => {
52
- if (!r.value) return console.error("实例化未完成");
53
- r.value.resetFields(), Object.values(f).forEach((e) => e.resetFields());
54
- },
55
- clearValidate: (e) => {
56
- if (!r.value) return console.error("实例化未完成");
57
- r.value.clearValidate(e), Object.values(f).forEach((t) => t.clearValidate());
58
- },
59
- generate: () => re(o.list),
60
- parse: (e) => oe(e, o.list),
61
- stringify: () => le(o.data, o.list)
23
+ setup(__props, { expose: __expose, emit: __emit }) {
24
+ const props = __props;
25
+ const emits = __emit;
26
+ const elForm = shallowRef();
27
+ const { resolveLayoutByContainer } = useFormLayoutByContainer({
28
+ enabled: () => props.layoutByContainer,
29
+ getForm: () => elForm.value
30
+ });
31
+ const nestExposeMap = createNestFormExposeMap();
32
+ provide(FORM_NEST_REGISTRY_KEY, nestExposeMap);
33
+ const layoutScale = computed(() => props.layoutScale ?? 1);
34
+ provide(NEST_LAYOUT_SCALE_KEY, layoutScale);
35
+ const loadingList = ref([]);
36
+ const itemViewHideStatus = ref({});
37
+ const loading = computed(() => {
38
+ return !!loadingList.value.length;
39
+ });
40
+ const hideKeyList = computed(() => {
41
+ return Object.keys(itemViewHideStatus.value).filter(
42
+ (key) => itemViewHideStatus.value[key]
43
+ );
62
44
  });
63
- const p = s(() => o.list), w = s(() => p.value.reduce((e, t) => (t.rules && (typeof t.rules == "function" ? e[t.key] = t.rules({
64
- data: o.data,
65
- config: t
66
- }) : e[t.key] = t.rules), e), {})), S = s(() => i.value.reduce(
67
- (e, t) => (e[t.key] = [
68
- {
69
- validator: () => [new Error(`${t.label}${t.message}`)]
45
+ const visibleFormList = computed(() => {
46
+ return props.list.filter((item) => !hideKeyList.value.includes(item.key));
47
+ });
48
+ const haveVisibleForm = computed(() => {
49
+ return visibleFormList.value.length > 0;
50
+ });
51
+ const assertConfig = (config) => {
52
+ return config;
53
+ };
54
+ const validate = async () => {
55
+ if (!elForm.value) return Promise.reject(new Error(`实例化未完成`));
56
+ const selfValidate = new Promise((resolve, reject) => {
57
+ var _a;
58
+ (_a = elForm.value) == null ? void 0 : _a.validate((valid, error) => {
59
+ if (valid) {
60
+ resolve();
61
+ } else {
62
+ const errorClone = { ...error || {} };
63
+ Object.keys(errorClone).forEach((key) => {
64
+ var _a2;
65
+ if (hideKeyList.value.includes(key)) {
66
+ console.log(`当前${key}被隐藏,移除校验`, errorClone[key]);
67
+ delete errorClone[key];
68
+ (_a2 = elForm.value) == null ? void 0 : _a2.clearValidate(key);
69
+ }
70
+ });
71
+ if (Object.keys(errorClone).length === 0) {
72
+ resolve();
73
+ } else {
74
+ reject(error);
75
+ }
76
+ }
77
+ });
78
+ });
79
+ const childValidates = Object.entries(nestExposeMap).filter(([key]) => !hideKeyList.value.includes(key)).map(([, expose2]) => expose2.validate());
80
+ await Promise.all([selfValidate, ...childValidates]);
81
+ };
82
+ const resetFields = () => {
83
+ if (!elForm.value) return console.error(`实例化未完成`);
84
+ elForm.value.resetFields();
85
+ Object.values(nestExposeMap).forEach((expose2) => expose2.resetFields());
86
+ };
87
+ const clearValidate = (key) => {
88
+ if (!elForm.value) return console.error(`实例化未完成`);
89
+ elForm.value.clearValidate(key);
90
+ Object.values(nestExposeMap).forEach((expose2) => expose2.clearValidate());
91
+ };
92
+ const expose = {
93
+ validate,
94
+ resetFields,
95
+ clearValidate,
96
+ generate: () => generateFormData(props.list),
97
+ parse: (stringifyData) => parseFormData(stringifyData, props.list),
98
+ stringify: () => stringifyFormData(props.data, props.list)
99
+ };
100
+ __expose(expose);
101
+ const list = computed(() => props.list);
102
+ const defaultRules = computed(() => {
103
+ return list.value.reduce((prev, cur) => {
104
+ if (cur.rules) {
105
+ if (typeof cur.rules === "function") {
106
+ prev[cur.key] = cur.rules({
107
+ data: props.data,
108
+ config: cur
109
+ });
110
+ } else {
111
+ prev[cur.key] = cur.rules;
112
+ }
70
113
  }
71
- ], e),
72
- {}
73
- )), T = s(() => {
74
- const e = Object.keys(w.value), t = Object.keys(S.value);
75
- return [...new Set(e.concat(t))].reduce((l, u) => (l[u] = [
76
- ...w.value[u] || [],
77
- ...S.value[u] || []
78
- ], l), {});
114
+ return prev;
115
+ }, {});
116
+ });
117
+ const loadingRules = computed(() => {
118
+ return loadingList.value.reduce(
119
+ (prev, cur) => {
120
+ prev[cur.key] = [
121
+ {
122
+ validator: () => [new Error(`${cur.label}${cur.message}`)]
123
+ }
124
+ ];
125
+ return prev;
126
+ },
127
+ {}
128
+ );
79
129
  });
80
- h(ae, ({ key: e, message: t }) => {
81
- if (!e)
82
- return console.error("更新状态未传入key, 此处忽略");
83
- const a = i.value.findIndex((l) => l.key === e);
84
- a === -1 ? t && i.value.push({
85
- key: e,
86
- message: t,
87
- label: o.list.find((l) => l.key === e).label
88
- }) : t ? i.value.splice(a, 1, {
89
- key: e,
90
- message: t,
91
- label: o.list.find((l) => l.key === e).label
92
- }) : i.value.splice(a, 1);
130
+ const rules = computed(() => {
131
+ const defaultKeys = Object.keys(defaultRules.value);
132
+ const loadingKeys = Object.keys(loadingRules.value);
133
+ const keys = [...new Set(defaultKeys.concat(loadingKeys))];
134
+ return keys.reduce((prev, cur) => {
135
+ prev[cur] = [
136
+ ...defaultRules.value[cur] || [],
137
+ ...loadingRules.value[cur] || []
138
+ ];
139
+ return prev;
140
+ }, {});
93
141
  });
94
- const $ = ({
95
- status: e,
96
- config: { key: t }
142
+ const changeLoading = ({ key, message }) => {
143
+ if (!key) {
144
+ return console.error(`更新状态未传入key, 此处忽略`);
145
+ }
146
+ const index = loadingList.value.findIndex((item) => item.key === key);
147
+ if (index === -1) {
148
+ if (message) {
149
+ loadingList.value.push({
150
+ key,
151
+ message,
152
+ label: props.list.find((item) => item.key === key).label
153
+ });
154
+ }
155
+ } else {
156
+ if (message) {
157
+ loadingList.value.splice(index, 1, {
158
+ key,
159
+ message,
160
+ label: props.list.find((item) => item.key === key).label
161
+ });
162
+ } else {
163
+ loadingList.value.splice(index, 1);
164
+ }
165
+ }
166
+ };
167
+ provide(FORM_ITEM_CHANGE_LOADING, changeLoading);
168
+ const onViewHideChange = ({
169
+ status,
170
+ config: { key }
97
171
  }) => {
98
- (n.value[t] || !1) !== e && (n.value[t] = e);
99
- }, k = (e) => {
100
- const t = o.layoutScale ?? 1, a = {
101
- ...R(o.layout, t),
102
- ...R(e, t)
172
+ const oldStatus = itemViewHideStatus.value[key] || false;
173
+ if (oldStatus === status) return;
174
+ itemViewHideStatus.value[key] = status;
175
+ };
176
+ const mergeLayout = (layout) => {
177
+ const scale = props.layoutScale ?? 1;
178
+ const merged = {
179
+ ...resolveFormLayout(props.layout, scale),
180
+ ...resolveFormLayout(layout, scale)
103
181
  };
104
- return N(a);
182
+ return resolveLayoutByContainer(merged);
105
183
  };
106
- return b(
107
- p,
108
- (e) => {
109
- const t = e.map((a) => a.key);
110
- Object.keys(n.value).forEach((a) => {
111
- t.includes(a) || delete n.value[a];
184
+ watch(
185
+ list,
186
+ (newList) => {
187
+ const listKeys = newList.map((item) => item.key);
188
+ Object.keys(itemViewHideStatus.value).forEach((key) => {
189
+ if (!listKeys.includes(key)) {
190
+ delete itemViewHideStatus.value[key];
191
+ }
112
192
  });
113
193
  },
114
194
  {
115
- immediate: !0
195
+ immediate: true
116
196
  }
117
- ), b(C, () => {
118
- y("loadingChange", C.value);
119
- }), b(
120
- G,
121
- (e) => {
122
- y("visibleChange", e);
197
+ );
198
+ watch(loading, () => {
199
+ emits("loadingChange", loading.value);
200
+ });
201
+ watch(
202
+ haveVisibleForm,
203
+ (n) => {
204
+ emits("visibleChange", n);
123
205
  },
124
206
  {
125
- immediate: !0
207
+ immediate: true
126
208
  }
127
- ), (e, t) => (F(), V(E(X), {
128
- ref_key: "elForm",
129
- ref: r,
130
- class: "dc-form-main",
131
- model: d.data,
132
- rules: T.value
133
- }, {
134
- default: v(() => [
135
- j(E(Z), { gutter: d.rowGutter }, {
136
- default: v(() => [
137
- (F(!0), U(q, null, z(p.value, (a) => J((F(), V(E(ee), x({
138
- key: a.key
139
- }, { ref_for: !0 }, k(a.layout)), {
140
- default: v(() => [
141
- j(te, {
142
- data: d.data,
143
- config: I(a),
144
- onViewHideChange: $,
145
- onSubmit: t[0] || (t[0] = (l) => y("submit", l))
146
- }, {
147
- default: v((l) => [
148
- B(e.$slots, a.key, x({ ref_for: !0 }, l), void 0, !0)
209
+ );
210
+ return (_ctx, _cache) => {
211
+ return openBlock(), createBlock(unref(ElForm), {
212
+ ref_key: "elForm",
213
+ ref: elForm,
214
+ class: "dc-form-main",
215
+ model: __props.data,
216
+ rules: rules.value
217
+ }, {
218
+ default: withCtx(() => [
219
+ createVNode(unref(ElRow), { gutter: __props.rowGutter }, {
220
+ default: withCtx(() => [
221
+ (openBlock(true), createElementBlock(Fragment, null, renderList(list.value, (config) => {
222
+ return withDirectives((openBlock(), createBlock(unref(ElCol), mergeProps({
223
+ key: config.key
224
+ }, { ref_for: true }, mergeLayout(config.layout)), {
225
+ default: withCtx(() => [
226
+ createVNode(FormItem, {
227
+ data: __props.data,
228
+ config: assertConfig(config),
229
+ onViewHideChange,
230
+ onSubmit: _cache[0] || (_cache[0] = ($event) => emits("submit", $event))
231
+ }, {
232
+ default: withCtx((scopeData) => [
233
+ renderSlot(_ctx.$slots, config.key, mergeProps({ ref_for: true }, scopeData), void 0, true)
234
+ ]),
235
+ _: 2
236
+ }, 1032, ["data", "config"])
149
237
  ]),
150
238
  _: 2
151
- }, 1032, ["data", "config"])
152
- ]),
153
- _: 2
154
- }, 1040)), [
155
- [Q, !(n.value[a.key] ?? !1)]
156
- ])), 128)),
157
- B(e.$slots, "default", { mergeLayout: k }, void 0, !0)
158
- ]),
159
- _: 3
160
- }, 8, ["gutter"])
161
- ]),
162
- _: 3
163
- }, 8, ["model", "rules"]));
239
+ }, 1040)), [
240
+ [vShow, !(itemViewHideStatus.value[config.key] ?? false)]
241
+ ]);
242
+ }), 128)),
243
+ renderSlot(_ctx.$slots, "default", { mergeLayout }, void 0, true)
244
+ ]),
245
+ _: 3
246
+ }, 8, ["gutter"])
247
+ ]),
248
+ _: 3
249
+ }, 8, ["model", "rules"]);
250
+ };
164
251
  }
165
252
  });
166
253
  export {
167
- Ee as default
254
+ _sfc_main as default
168
255
  };
@@ -1,66 +1,81 @@
1
- import { defineComponent as k, useModel as h, computed as y, watch as V, openBlock as t, createBlock as d, unref as r, withCtx as n, createElementBlock as m, Fragment as v, renderList as c, createTextVNode as p, toDisplayString as f, createCommentVNode as B, mergeModels as R } from "vue";
2
- import { ElRadioGroup as g, ElRadioButton as x, ElRadio as E } from "element-plus";
3
- const N = /* @__PURE__ */ k({
4
- name: "FormRadioGroup",
5
- inheritAttrs: !0,
1
+ import { defineComponent, useModel, computed, watch, openBlock, createBlock, unref, withCtx, createElementBlock, Fragment, renderList, createTextVNode, toDisplayString, createCommentVNode, mergeModels } from "vue";
2
+ import { ElRadioGroup, ElRadioButton, ElRadio } from "element-plus";
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
+ ...{
5
+ name: "FormRadioGroup",
6
+ inheritAttrs: true
7
+ },
6
8
  __name: "FormRadioGroup",
7
- props: /* @__PURE__ */ R({
9
+ props: /* @__PURE__ */ mergeModels({
8
10
  options: {},
9
11
  mode: { default: "radio" },
10
- notNull: { type: Boolean, default: !0 }
12
+ notNull: { type: Boolean, default: true }
11
13
  }, {
12
- modelValue: {},
13
- modelModifiers: {}
14
+ "modelValue": {},
15
+ "modelModifiers": {}
14
16
  }),
15
17
  emits: ["update:modelValue"],
16
- setup(l) {
17
- const u = l, a = h(l, "modelValue"), i = y(() => {
18
- if (u.notNull && u.options.length > 0) {
19
- const o = u.options.some(
20
- (s) => s.value === a.value
18
+ setup(__props) {
19
+ const props = __props;
20
+ const modelValue = useModel(__props, "modelValue");
21
+ const calibratedModelValue = computed(() => {
22
+ if (props.notNull && props.options.length > 0) {
23
+ const inList = props.options.some(
24
+ (item) => item.value === modelValue.value
21
25
  );
22
- if (a.value === void 0 || !o)
23
- return u.options[0].value;
26
+ if (modelValue.value === void 0 || !inList) {
27
+ return props.options[0].value;
28
+ }
24
29
  }
25
- return a.value;
26
- }), b = (o) => {
27
- a.value = o;
30
+ return modelValue.value;
31
+ });
32
+ const handleUpdate = (value) => {
33
+ modelValue.value = value;
28
34
  };
29
- return V(
30
- i,
31
- (o) => {
32
- o !== void 0 && o !== a.value && (a.value = o);
35
+ watch(
36
+ calibratedModelValue,
37
+ (newVal) => {
38
+ if (newVal !== void 0 && newVal !== modelValue.value) {
39
+ modelValue.value = newVal;
40
+ }
33
41
  },
34
- { immediate: !0 }
35
- ), (o, s) => (t(), d(r(g), {
36
- "model-value": i.value,
37
- "onUpdate:modelValue": b
38
- }, {
39
- default: n(() => [
40
- l.mode === "buttonGroup" ? (t(!0), m(v, { key: 0 }, c(l.options, (e) => (t(), d(r(x), {
41
- key: e.value,
42
- value: e.value,
43
- disabled: e.disabled
44
- }, {
45
- default: n(() => [
46
- p(f(e.label), 1)
47
- ]),
48
- _: 2
49
- }, 1032, ["value", "disabled"]))), 128)) : l.mode === "radio" ? (t(!0), m(v, { key: 1 }, c(l.options, (e) => (t(), d(r(E), {
50
- key: e.value,
51
- value: e.value,
52
- disabled: e.disabled
53
- }, {
54
- default: n(() => [
55
- p(f(e.label), 1)
56
- ]),
57
- _: 2
58
- }, 1032, ["value", "disabled"]))), 128)) : B("", !0)
59
- ]),
60
- _: 1
61
- }, 8, ["model-value"]));
42
+ { immediate: true }
43
+ );
44
+ return (_ctx, _cache) => {
45
+ return openBlock(), createBlock(unref(ElRadioGroup), {
46
+ "model-value": calibratedModelValue.value,
47
+ "onUpdate:modelValue": handleUpdate
48
+ }, {
49
+ default: withCtx(() => [
50
+ __props.mode === "buttonGroup" ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(__props.options, (item) => {
51
+ return openBlock(), createBlock(unref(ElRadioButton), {
52
+ key: item.value,
53
+ value: item.value,
54
+ disabled: item.disabled
55
+ }, {
56
+ default: withCtx(() => [
57
+ createTextVNode(toDisplayString(item.label), 1)
58
+ ]),
59
+ _: 2
60
+ }, 1032, ["value", "disabled"]);
61
+ }), 128)) : __props.mode === "radio" ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(__props.options, (item) => {
62
+ return openBlock(), createBlock(unref(ElRadio), {
63
+ key: item.value,
64
+ value: item.value,
65
+ disabled: item.disabled
66
+ }, {
67
+ default: withCtx(() => [
68
+ createTextVNode(toDisplayString(item.label), 1)
69
+ ]),
70
+ _: 2
71
+ }, 1032, ["value", "disabled"]);
72
+ }), 128)) : createCommentVNode("", true)
73
+ ]),
74
+ _: 1
75
+ }, 8, ["model-value"]);
76
+ };
62
77
  }
63
78
  });
64
79
  export {
65
- N as default
80
+ _sfc_main as default
66
81
  };
@@ -1,4 +1,4 @@
1
- import f from "./FormRadioGroup.vue.mjs";
1
+ import _sfc_main from "./FormRadioGroup.vue.mjs";
2
2
  export {
3
- f as default
3
+ _sfc_main as default
4
4
  };
@@ -1,7 +1,7 @@
1
- import o from "./FormSearch.vue2.mjs";
1
+ import _sfc_main from "./FormSearch.vue2.mjs";
2
2
  /* empty css */
3
- import r from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const e = /* @__PURE__ */ r(o, [["__scopeId", "data-v-b96e10f6"]]);
3
+ import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
+ const FormSearch = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b96e10f6"]]);
5
5
  export {
6
- e as default
6
+ FormSearch as default
7
7
  };