skyline-vue-admin 0.0.1

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 (376) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/components/auto-complete-array-input/index.cjs +2 -0
  4. package/dist/components/auto-complete-array-input/index.cjs.map +1 -0
  5. package/dist/components/auto-complete-array-input/index.d.ts +12 -0
  6. package/dist/components/auto-complete-array-input/index.mjs +151 -0
  7. package/dist/components/auto-complete-array-input/index.mjs.map +1 -0
  8. package/dist/components/avatar-input/index.cjs +2 -0
  9. package/dist/components/avatar-input/index.cjs.map +1 -0
  10. package/dist/components/avatar-input/index.d.ts +13 -0
  11. package/dist/components/avatar-input/index.mjs +160 -0
  12. package/dist/components/avatar-input/index.mjs.map +1 -0
  13. package/dist/components/can-access/index.cjs +2 -0
  14. package/dist/components/can-access/index.cjs.map +1 -0
  15. package/dist/components/can-access/index.d.ts +2 -0
  16. package/dist/components/can-access/index.mjs +46 -0
  17. package/dist/components/can-access/index.mjs.map +1 -0
  18. package/dist/components/create/index.cjs +2 -0
  19. package/dist/components/create/index.cjs.map +1 -0
  20. package/dist/components/create/index.d.ts +2 -0
  21. package/dist/components/create/index.mjs +96 -0
  22. package/dist/components/create/index.mjs.map +1 -0
  23. package/dist/components/data-table/index.cjs +2 -0
  24. package/dist/components/data-table/index.cjs.map +1 -0
  25. package/dist/components/data-table/index.d.ts +5 -0
  26. package/dist/components/data-table/index.mjs +131 -0
  27. package/dist/components/data-table/index.mjs.map +1 -0
  28. package/dist/components/data-table-col/index.cjs +2 -0
  29. package/dist/components/data-table-col/index.cjs.map +1 -0
  30. package/dist/components/data-table-col/index.d.ts +12 -0
  31. package/dist/components/data-table-col/index.mjs +60 -0
  32. package/dist/components/data-table-col/index.mjs.map +1 -0
  33. package/dist/components/edit/index.cjs +2 -0
  34. package/dist/components/edit/index.cjs.map +1 -0
  35. package/dist/components/edit/index.d.ts +6 -0
  36. package/dist/components/edit/index.mjs +153 -0
  37. package/dist/components/edit/index.mjs.map +1 -0
  38. package/dist/components/edit-button/index.cjs +2 -0
  39. package/dist/components/edit-button/index.cjs.map +1 -0
  40. package/dist/components/edit-button/index.d.ts +6 -0
  41. package/dist/components/edit-button/index.mjs +60 -0
  42. package/dist/components/edit-button/index.mjs.map +1 -0
  43. package/dist/components/file-multiple-input/index.cjs +2 -0
  44. package/dist/components/file-multiple-input/index.cjs.map +1 -0
  45. package/dist/components/file-multiple-input/index.d.ts +18 -0
  46. package/dist/components/file-multiple-input/index.mjs +189 -0
  47. package/dist/components/file-multiple-input/index.mjs.map +1 -0
  48. package/dist/components/filter/index.cjs +2 -0
  49. package/dist/components/filter/index.cjs.map +1 -0
  50. package/dist/components/filter/index.d.ts +2 -0
  51. package/dist/components/filter/index.mjs +63 -0
  52. package/dist/components/filter/index.mjs.map +1 -0
  53. package/dist/components/image-field/index.cjs +2 -0
  54. package/dist/components/image-field/index.cjs.map +1 -0
  55. package/dist/components/image-field/index.d.ts +8 -0
  56. package/dist/components/image-field/index.mjs +62 -0
  57. package/dist/components/image-field/index.mjs.map +1 -0
  58. package/dist/components/index.d.ts +27 -0
  59. package/dist/components/link-field/index.cjs +2 -0
  60. package/dist/components/link-field/index.cjs.map +1 -0
  61. package/dist/components/link-field/index.d.ts +7 -0
  62. package/dist/components/link-field/index.mjs +70 -0
  63. package/dist/components/link-field/index.mjs.map +1 -0
  64. package/dist/components/list/index.cjs +2 -0
  65. package/dist/components/list/index.cjs.map +1 -0
  66. package/dist/components/list/index.d.ts +7 -0
  67. package/dist/components/list/index.mjs +154 -0
  68. package/dist/components/list/index.mjs.map +1 -0
  69. package/dist/components/list/list.cjs +3 -0
  70. package/dist/components/list/list.cjs.map +1 -0
  71. package/dist/components/list/list.d.ts +10 -0
  72. package/dist/components/list/list.mjs +17 -0
  73. package/dist/components/list/list.mjs.map +1 -0
  74. package/dist/components/radio-button-group-input/index.cjs +2 -0
  75. package/dist/components/radio-button-group-input/index.cjs.map +1 -0
  76. package/dist/components/radio-button-group-input/index.d.ts +14 -0
  77. package/dist/components/radio-button-group-input/index.mjs +82 -0
  78. package/dist/components/radio-button-group-input/index.mjs.map +1 -0
  79. package/dist/components/reference-array-field/index.cjs +2 -0
  80. package/dist/components/reference-array-field/index.cjs.map +1 -0
  81. package/dist/components/reference-array-field/index.d.ts +7 -0
  82. package/dist/components/reference-array-field/index.mjs +76 -0
  83. package/dist/components/reference-array-field/index.mjs.map +1 -0
  84. package/dist/components/reference-array-input/index.cjs +2 -0
  85. package/dist/components/reference-array-input/index.cjs.map +1 -0
  86. package/dist/components/reference-array-input/index.d.ts +6 -0
  87. package/dist/components/reference-array-input/index.mjs +74 -0
  88. package/dist/components/reference-array-input/index.mjs.map +1 -0
  89. package/dist/components/reference-field/index.cjs +2 -0
  90. package/dist/components/reference-field/index.cjs.map +1 -0
  91. package/dist/components/reference-field/index.d.ts +10 -0
  92. package/dist/components/reference-field/index.mjs +101 -0
  93. package/dist/components/reference-field/index.mjs.map +1 -0
  94. package/dist/components/reference-image-field/index.cjs +2 -0
  95. package/dist/components/reference-image-field/index.cjs.map +1 -0
  96. package/dist/components/reference-image-field/index.d.ts +9 -0
  97. package/dist/components/reference-image-field/index.mjs +79 -0
  98. package/dist/components/reference-image-field/index.mjs.map +1 -0
  99. package/dist/components/show/index.cjs +2 -0
  100. package/dist/components/show/index.cjs.map +1 -0
  101. package/dist/components/show/index.d.ts +2 -0
  102. package/dist/components/show/index.mjs +66 -0
  103. package/dist/components/show/index.mjs.map +1 -0
  104. package/dist/components/show-button/index.cjs +2 -0
  105. package/dist/components/show-button/index.cjs.map +1 -0
  106. package/dist/components/show-button/index.d.ts +6 -0
  107. package/dist/components/show-button/index.mjs +60 -0
  108. package/dist/components/show-button/index.mjs.map +1 -0
  109. package/dist/components/show-simple-layout/index.cjs +2 -0
  110. package/dist/components/show-simple-layout/index.cjs.map +1 -0
  111. package/dist/components/show-simple-layout/index.d.ts +1 -0
  112. package/dist/components/show-simple-layout/index.mjs +36 -0
  113. package/dist/components/show-simple-layout/index.mjs.map +1 -0
  114. package/dist/components/simple-form/index.cjs +2 -0
  115. package/dist/components/simple-form/index.cjs.map +1 -0
  116. package/dist/components/simple-form/index.d.ts +6 -0
  117. package/dist/components/simple-form/index.mjs +53 -0
  118. package/dist/components/simple-form/index.mjs.map +1 -0
  119. package/dist/components/single-field-list/index.cjs +2 -0
  120. package/dist/components/single-field-list/index.cjs.map +1 -0
  121. package/dist/components/single-field-list/index.d.ts +4 -0
  122. package/dist/components/single-field-list/index.mjs +56 -0
  123. package/dist/components/single-field-list/index.mjs.map +1 -0
  124. package/dist/components/text-field/index.cjs +2 -0
  125. package/dist/components/text-field/index.cjs.map +1 -0
  126. package/dist/components/text-field/index.d.ts +7 -0
  127. package/dist/components/text-field/index.mjs +56 -0
  128. package/dist/components/text-field/index.mjs.map +1 -0
  129. package/dist/components/text-input/index.cjs +2 -0
  130. package/dist/components/text-input/index.cjs.map +1 -0
  131. package/dist/components/text-input/index.d.ts +9 -0
  132. package/dist/components/text-input/index.mjs +70 -0
  133. package/dist/components/text-input/index.mjs.map +1 -0
  134. package/dist/components/tree-select-input/index.cjs +2 -0
  135. package/dist/components/tree-select-input/index.cjs.map +1 -0
  136. package/dist/components/tree-select-input/index.d.ts +15 -0
  137. package/dist/components/tree-select-input/index.mjs +122 -0
  138. package/dist/components/tree-select-input/index.mjs.map +1 -0
  139. package/dist/components/tree-with-details/index.cjs +2 -0
  140. package/dist/components/tree-with-details/index.cjs.map +1 -0
  141. package/dist/components/tree-with-details/index.d.ts +11 -0
  142. package/dist/components/tree-with-details/index.mjs +133 -0
  143. package/dist/components/tree-with-details/index.mjs.map +1 -0
  144. package/dist/hooks/index.d.ts +17 -0
  145. package/dist/hooks/useDelegate.d.ts +4 -0
  146. package/dist/hooks/useForm.cjs +2 -0
  147. package/dist/hooks/useForm.cjs.map +1 -0
  148. package/dist/hooks/useForm.d.ts +9 -0
  149. package/dist/hooks/useForm.mjs +18 -0
  150. package/dist/hooks/useForm.mjs.map +1 -0
  151. package/dist/hooks/useFormGrid.cjs +2 -0
  152. package/dist/hooks/useFormGrid.cjs.map +1 -0
  153. package/dist/hooks/useFormGrid.d.ts +1 -0
  154. package/dist/hooks/useFormGrid.mjs +7 -0
  155. package/dist/hooks/useFormGrid.mjs.map +1 -0
  156. package/dist/hooks/useHiddenTitle.cjs +2 -0
  157. package/dist/hooks/useHiddenTitle.cjs.map +1 -0
  158. package/dist/hooks/useHiddenTitle.d.ts +1 -0
  159. package/dist/hooks/useHiddenTitle.mjs +9 -0
  160. package/dist/hooks/useHiddenTitle.mjs.map +1 -0
  161. package/dist/hooks/useLang.cjs +2 -0
  162. package/dist/hooks/useLang.cjs.map +1 -0
  163. package/dist/hooks/useLang.d.ts +4 -0
  164. package/dist/hooks/useLang.mjs +15 -0
  165. package/dist/hooks/useLang.mjs.map +1 -0
  166. package/dist/hooks/useList.cjs +2 -0
  167. package/dist/hooks/useList.cjs.map +1 -0
  168. package/dist/hooks/useList.d.ts +22 -0
  169. package/dist/hooks/useList.mjs +19 -0
  170. package/dist/hooks/useList.mjs.map +1 -0
  171. package/dist/hooks/useMenu.cjs +2 -0
  172. package/dist/hooks/useMenu.cjs.map +1 -0
  173. package/dist/hooks/useMenu.d.ts +5 -0
  174. package/dist/hooks/useMenu.mjs +26 -0
  175. package/dist/hooks/useMenu.mjs.map +1 -0
  176. package/dist/hooks/usePermission.cjs +2 -0
  177. package/dist/hooks/usePermission.cjs.map +1 -0
  178. package/dist/hooks/usePermission.d.ts +4 -0
  179. package/dist/hooks/usePermission.mjs +13 -0
  180. package/dist/hooks/usePermission.mjs.map +1 -0
  181. package/dist/hooks/useReferenceArrayField.cjs +2 -0
  182. package/dist/hooks/useReferenceArrayField.cjs.map +1 -0
  183. package/dist/hooks/useReferenceArrayField.d.ts +8 -0
  184. package/dist/hooks/useReferenceArrayField.mjs +9 -0
  185. package/dist/hooks/useReferenceArrayField.mjs.map +1 -0
  186. package/dist/hooks/useReferenceArrayInput.cjs +2 -0
  187. package/dist/hooks/useReferenceArrayInput.cjs.map +1 -0
  188. package/dist/hooks/useReferenceArrayInput.d.ts +9 -0
  189. package/dist/hooks/useReferenceArrayInput.mjs +9 -0
  190. package/dist/hooks/useReferenceArrayInput.mjs.map +1 -0
  191. package/dist/hooks/useRouteKeepAlive.cjs +2 -0
  192. package/dist/hooks/useRouteKeepAlive.cjs.map +1 -0
  193. package/dist/hooks/useRouteKeepAlive.d.ts +5 -0
  194. package/dist/hooks/useRouteKeepAlive.mjs +19 -0
  195. package/dist/hooks/useRouteKeepAlive.mjs.map +1 -0
  196. package/dist/hooks/useShow.cjs +2 -0
  197. package/dist/hooks/useShow.cjs.map +1 -0
  198. package/dist/hooks/useShow.d.ts +6 -0
  199. package/dist/hooks/useShow.mjs +9 -0
  200. package/dist/hooks/useShow.mjs.map +1 -0
  201. package/dist/hooks/useSize.cjs +2 -0
  202. package/dist/hooks/useSize.cjs.map +1 -0
  203. package/dist/hooks/useSize.d.ts +28 -0
  204. package/dist/hooks/useSize.mjs +30 -0
  205. package/dist/hooks/useSize.mjs.map +1 -0
  206. package/dist/hooks/useTab.cjs +2 -0
  207. package/dist/hooks/useTab.cjs.map +1 -0
  208. package/dist/hooks/useTab.d.ts +18 -0
  209. package/dist/hooks/useTab.mjs +50 -0
  210. package/dist/hooks/useTab.mjs.map +1 -0
  211. package/dist/hooks/useTheme.cjs +2 -0
  212. package/dist/hooks/useTheme.cjs.map +1 -0
  213. package/dist/hooks/useTheme.d.ts +23 -0
  214. package/dist/hooks/useTheme.mjs +24 -0
  215. package/dist/hooks/useTheme.mjs.map +1 -0
  216. package/dist/hooks/useTreeWithDetails.cjs +2 -0
  217. package/dist/hooks/useTreeWithDetails.cjs.map +1 -0
  218. package/dist/hooks/useTreeWithDetails.d.ts +7 -0
  219. package/dist/hooks/useTreeWithDetails.mjs +9 -0
  220. package/dist/hooks/useTreeWithDetails.mjs.map +1 -0
  221. package/dist/hooks/useUpload.cjs +2 -0
  222. package/dist/hooks/useUpload.cjs.map +1 -0
  223. package/dist/hooks/useUpload.d.ts +8 -0
  224. package/dist/hooks/useUpload.mjs +8 -0
  225. package/dist/hooks/useUpload.mjs.map +1 -0
  226. package/dist/hooks/useUser.cjs +2 -0
  227. package/dist/hooks/useUser.cjs.map +1 -0
  228. package/dist/hooks/useUser.d.ts +9 -0
  229. package/dist/hooks/useUser.mjs +24 -0
  230. package/dist/hooks/useUser.mjs.map +1 -0
  231. package/dist/i18n/locales/en.json.cjs +2 -0
  232. package/dist/i18n/locales/en.json.cjs.map +1 -0
  233. package/dist/i18n/locales/en.json.d.ts +52 -0
  234. package/dist/i18n/locales/en.json.mjs +32 -0
  235. package/dist/i18n/locales/en.json.mjs.map +1 -0
  236. package/dist/icons/EpDelete.cjs +2 -0
  237. package/dist/icons/EpDelete.cjs.map +1 -0
  238. package/dist/icons/EpDelete.d.ts +1 -0
  239. package/dist/icons/EpDelete.mjs +17 -0
  240. package/dist/icons/EpDelete.mjs.map +1 -0
  241. package/dist/icons/EpDocumentAdd.cjs +2 -0
  242. package/dist/icons/EpDocumentAdd.cjs.map +1 -0
  243. package/dist/icons/EpDocumentAdd.d.ts +1 -0
  244. package/dist/icons/EpDocumentAdd.mjs +17 -0
  245. package/dist/icons/EpDocumentAdd.mjs.map +1 -0
  246. package/dist/icons/EpDownload.cjs +2 -0
  247. package/dist/icons/EpDownload.cjs.map +1 -0
  248. package/dist/icons/EpDownload.d.ts +1 -0
  249. package/dist/icons/EpDownload.mjs +17 -0
  250. package/dist/icons/EpDownload.mjs.map +1 -0
  251. package/dist/icons/EpFullScreen.cjs +2 -0
  252. package/dist/icons/EpFullScreen.cjs.map +1 -0
  253. package/dist/icons/EpFullScreen.d.ts +1 -0
  254. package/dist/icons/EpFullScreen.mjs +19 -0
  255. package/dist/icons/EpFullScreen.mjs.map +1 -0
  256. package/dist/icons/EpMoon.cjs +2 -0
  257. package/dist/icons/EpMoon.cjs.map +1 -0
  258. package/dist/icons/EpMoon.d.ts +1 -0
  259. package/dist/icons/EpMoon.mjs +17 -0
  260. package/dist/icons/EpMoon.mjs.map +1 -0
  261. package/dist/icons/EpPlus.cjs +2 -0
  262. package/dist/icons/EpPlus.cjs.map +1 -0
  263. package/dist/icons/EpPlus.d.ts +1 -0
  264. package/dist/icons/EpPlus.mjs +17 -0
  265. package/dist/icons/EpPlus.mjs.map +1 -0
  266. package/dist/icons/EpRefresh.cjs +2 -0
  267. package/dist/icons/EpRefresh.cjs.map +1 -0
  268. package/dist/icons/EpRefresh.d.ts +1 -0
  269. package/dist/icons/EpRefresh.mjs +19 -0
  270. package/dist/icons/EpRefresh.mjs.map +1 -0
  271. package/dist/icons/EpSearch.d.ts +1 -0
  272. package/dist/icons/EpSunny.cjs +2 -0
  273. package/dist/icons/EpSunny.cjs.map +1 -0
  274. package/dist/icons/EpSunny.d.ts +1 -0
  275. package/dist/icons/EpSunny.mjs +17 -0
  276. package/dist/icons/EpSunny.mjs.map +1 -0
  277. package/dist/icons/EpSwitchFilled.cjs +2 -0
  278. package/dist/icons/EpSwitchFilled.cjs.map +1 -0
  279. package/dist/icons/EpSwitchFilled.d.ts +1 -0
  280. package/dist/icons/EpSwitchFilled.mjs +20 -0
  281. package/dist/icons/EpSwitchFilled.mjs.map +1 -0
  282. package/dist/icons/EpUploadFilled.cjs +2 -0
  283. package/dist/icons/EpUploadFilled.cjs.map +1 -0
  284. package/dist/icons/EpUploadFilled.d.ts +1 -0
  285. package/dist/icons/EpUploadFilled.mjs +17 -0
  286. package/dist/icons/EpUploadFilled.mjs.map +1 -0
  287. package/dist/icons/FluentFullScreenMinimize20Regular.cjs +2 -0
  288. package/dist/icons/FluentFullScreenMinimize20Regular.cjs.map +1 -0
  289. package/dist/icons/FluentFullScreenMinimize20Regular.d.ts +1 -0
  290. package/dist/icons/FluentFullScreenMinimize20Regular.mjs +19 -0
  291. package/dist/icons/FluentFullScreenMinimize20Regular.mjs.map +1 -0
  292. package/dist/icons/NimbusTextSize.cjs +2 -0
  293. package/dist/icons/NimbusTextSize.cjs.map +1 -0
  294. package/dist/icons/NimbusTextSize.d.ts +1 -0
  295. package/dist/icons/NimbusTextSize.mjs +20 -0
  296. package/dist/icons/NimbusTextSize.mjs.map +1 -0
  297. package/dist/icons/SkyMenuCollapse.cjs +2 -0
  298. package/dist/icons/SkyMenuCollapse.cjs.map +1 -0
  299. package/dist/icons/SkyMenuCollapse.d.ts +1 -0
  300. package/dist/icons/SkyMenuCollapse.mjs +30 -0
  301. package/dist/icons/SkyMenuCollapse.mjs.map +1 -0
  302. package/dist/icons/SlTrans.cjs +2 -0
  303. package/dist/icons/SlTrans.cjs.map +1 -0
  304. package/dist/icons/SlTrans.d.ts +1 -0
  305. package/dist/icons/SlTrans.mjs +19 -0
  306. package/dist/icons/SlTrans.mjs.map +1 -0
  307. package/dist/index.cjs +2 -0
  308. package/dist/index.cjs.map +1 -0
  309. package/dist/index.d.ts +5 -0
  310. package/dist/index.mjs +114 -0
  311. package/dist/index.mjs.map +1 -0
  312. package/dist/layouts/default.cjs +2 -0
  313. package/dist/layouts/default.cjs.map +1 -0
  314. package/dist/layouts/default.d.ts +8 -0
  315. package/dist/layouts/default.mjs +398 -0
  316. package/dist/layouts/default.mjs.map +1 -0
  317. package/dist/pages/login.cjs +2 -0
  318. package/dist/pages/login.cjs.map +1 -0
  319. package/dist/pages/login.d.ts +2 -0
  320. package/dist/pages/login.mjs +78 -0
  321. package/dist/pages/login.mjs.map +1 -0
  322. package/dist/pages/not-found.cjs +2 -0
  323. package/dist/pages/not-found.cjs.map +1 -0
  324. package/dist/pages/not-found.d.ts +2 -0
  325. package/dist/pages/not-found.mjs +29 -0
  326. package/dist/pages/not-found.mjs.map +1 -0
  327. package/dist/pages/welcome.cjs +2 -0
  328. package/dist/pages/welcome.cjs.map +1 -0
  329. package/dist/pages/welcome.d.ts +2 -0
  330. package/dist/pages/welcome.mjs +13 -0
  331. package/dist/pages/welcome.mjs.map +1 -0
  332. package/dist/provides/dataProvider.d.ts +111 -0
  333. package/dist/provides/index.d.ts +1 -0
  334. package/dist/router/index.cjs +2 -0
  335. package/dist/router/index.cjs.map +1 -0
  336. package/dist/router/index.d.ts +25 -0
  337. package/dist/router/index.mjs +136 -0
  338. package/dist/router/index.mjs.map +1 -0
  339. package/dist/setup/index.cjs +2 -0
  340. package/dist/setup/index.cjs.map +1 -0
  341. package/dist/setup/index.d.ts +68 -0
  342. package/dist/setup/index.mjs +55 -0
  343. package/dist/setup/index.mjs.map +1 -0
  344. package/dist/styles/components/auto-complete-array-input.css +1 -0
  345. package/dist/styles/components/avatar-input.css +1 -0
  346. package/dist/styles/components/can-access.css +1 -0
  347. package/dist/styles/components/create.css +1 -0
  348. package/dist/styles/components/data-table-col.css +1 -0
  349. package/dist/styles/components/data-table.css +1 -0
  350. package/dist/styles/components/edit-button.css +1 -0
  351. package/dist/styles/components/edit.css +1 -0
  352. package/dist/styles/components/file-multiple-input.css +1 -0
  353. package/dist/styles/components/filter.css +1 -0
  354. package/dist/styles/components/image-field.css +1 -0
  355. package/dist/styles/components/link-field.css +1 -0
  356. package/dist/styles/components/list.css +1 -0
  357. package/dist/styles/components/radio-button-group-input.css +1 -0
  358. package/dist/styles/components/reference-array-field.css +1 -0
  359. package/dist/styles/components/reference-array-input.css +1 -0
  360. package/dist/styles/components/reference-field.css +1 -0
  361. package/dist/styles/components/reference-image-field.css +1 -0
  362. package/dist/styles/components/show-button.css +1 -0
  363. package/dist/styles/components/show-simple-layout.css +1 -0
  364. package/dist/styles/components/show.css +1 -0
  365. package/dist/styles/components/simple-form.css +1 -0
  366. package/dist/styles/components/single-field-list.css +1 -0
  367. package/dist/styles/components/text-field.css +1 -0
  368. package/dist/styles/components/text-input.css +1 -0
  369. package/dist/styles/components/tree-select-input.css +1 -0
  370. package/dist/styles/components/tree-with-details.css +1 -0
  371. package/dist/styles/index.css +1 -0
  372. package/dist/styles/layouts/default.css +1 -0
  373. package/dist/styles/pages/login.css +1 -0
  374. package/dist/styles/pages/not-found.css +1 -0
  375. package/dist/styles/pages/welcome.css +1 -0
  376. package/package.json +54 -0
@@ -0,0 +1,70 @@
1
+ import "element-plus/es/components/button/style/css";
2
+ import { defineComponent as d, computed as u, createVNode as e, mergeProps as l } from "vue";
3
+ import "../../hooks/useUser.mjs";
4
+ import "../../hooks/usePermission.mjs";
5
+ import "../../hooks/useMenu.mjs";
6
+ import "../../hooks/useTab.mjs";
7
+ import "../../hooks/useRouteKeepAlive.mjs";
8
+ import "../../hooks/useSize.mjs";
9
+ import "../../hooks/useLang.mjs";
10
+ import "../../hooks/useTheme.mjs";
11
+ import "../../hooks/useList.mjs";
12
+ import { useHiddenTitle as f } from "../../hooks/useHiddenTitle.mjs";
13
+ import "../../hooks/useForm.mjs";
14
+ import "../../hooks/useShow.mjs";
15
+ import "../../hooks/useReferenceArrayField.mjs";
16
+ import "../../hooks/useTreeWithDetails.mjs";
17
+ import "../../hooks/useFormGrid.mjs";
18
+ import "../../hooks/useReferenceArrayInput.mjs";
19
+ import { ElButton as n } from "element-plus";
20
+ import { useRoute as k } from "vue-router";
21
+ import { SkyCanAccess as y } from "../can-access/index.mjs";
22
+ const R = /* @__PURE__ */ d({
23
+ name: "SkyLinkField",
24
+ inheritAttrs: !1,
25
+ props: {
26
+ source: {
27
+ type: String,
28
+ required: !0
29
+ },
30
+ label: String,
31
+ row: Object
32
+ },
33
+ emits: ["click"],
34
+ setup(t, {
35
+ emit: r,
36
+ attrs: o
37
+ }) {
38
+ const c = k(), p = f(), s = c.meta, i = u(() => {
39
+ const m = t.row?.[t.source];
40
+ return m ? String(m) : "";
41
+ }), a = u(() => t.label || t.source);
42
+ return () => e(y, {
43
+ resource: s.resource,
44
+ action: ["list", "show"],
45
+ column: t.source
46
+ }, {
47
+ default: () => [p ? e("div", null, [e(n, l({
48
+ type: "primary",
49
+ text: !0,
50
+ bg: !0,
51
+ onClick: () => r("click", t.row)
52
+ }, o), {
53
+ default: () => [i.value]
54
+ })]) : e("div", {
55
+ class: "sky-link-field"
56
+ }, [e("h4", null, [a.value]), e(n, l({
57
+ type: "primary",
58
+ text: !0,
59
+ bg: !0,
60
+ onClick: () => r("click", t.row)
61
+ }, o), {
62
+ default: () => [i.value]
63
+ })])]
64
+ });
65
+ }
66
+ });
67
+ export {
68
+ R as SkyLinkField
69
+ };
70
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/link-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { ElButton, type ButtonProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyLinkFieldProps {\n source: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyLinkField = defineComponent<SkyLinkFieldProps & Partial<ButtonProps>>({\n name: 'SkyLinkField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n row: Object,\n },\n emits: ['click'],\n setup(props, { emit, attrs }) {\n const route = useRoute()\n const hiddenTitle = useHiddenTitle()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const field = computed<string>(() => {\n const v = props.row?.[props.source]\n if (v) {\n return String(v)\n }\n return ''\n })\n\n const title = computed(() => {\n return props.label || props.source\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n {hiddenTitle ? (\n <div>\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\n {field.value}\n </ElButton>\n </div>\n ) : (\n <div class=\"sky-link-field\">\n <h4>{title.value}</h4>\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\n {field.value}\n </ElButton>\n </div>\n )}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyLinkField","defineComponent","name","inheritAttrs","props","source","type","required","label","row","attrs","route","useRoute","hiddenTitle","useHiddenTitle","routeMeta","field","computed","v","title","default","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAaA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,OAAAA;AAAAA,IACAC,KAAAA;AAAAA;;;;IAGmBC,OAAAA;AAAAA,EAAM,GAAA;AACzB,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,GACAC,IAAAJ,EAAA,MAEAK,IAAAC,EAAA,MAAA;;AAEE,aAAAC,gBAGA;AAAA,IACF,CAAA,GAEAC,IAAAF,EAAA,MACEb,EAAA,SAAAA,EAAA,MACF;;;MAG4C,QAAA,CAAA,QAAA,MAAA;AAAA,MAA0B,QAAAA,EAAA;AAAA,IAAsB,GAAA;AAAA;QAC5E,MAAA;AAAA,QAAA,MAAA;AAAA,QAAA,IAAA;AAAA;MAEgE,GAAAM,CAAA,GAAA;AAAA,QAAWU,SAAAA,MAAAA,CAAAA,EAAAA,KAAAA;AAAAA,MACrE,CAAA,CAAA,CAAA,IAAAC,EAAA,OAAA;AAAA,QAAA,OAAA;AAAA;QAKE,MAAA;AAAA,QAAA,MAAA;AAAA,QAAA,IAAA;AAAA;MACwD,GAAAX,CAAA,GAAA;AAAA,QAAWU,SAAAA,MAAAA,CAAAA,EAAAA,KAAAA;AAAAA;;EAO7F;AACF,CAAA;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");require("element-plus/es/components/button-group/style/css");require("element-plus/es/components/card/style/css");require("element-plus/es/components/pagination/style/css");const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");const z=require("../../hooks/useList.cjs"),O=require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const k=require("../../setup/index.cjs"),w=require("@vueuse/core"),u=require("element-plus"),R=require("vue-i18n"),b=require("vue-router"),T=require("./list.cjs"),d=require("../can-access/index.cjs"),B=require("../../icons/EpPlus.cjs"),D=require("../../icons/EpDownload.cjs");function C(o){return typeof o=="function"||Object.prototype.toString.call(o)==="[object Object]"&&!e.isVNode(o)}const M=e.defineComponent({name:"SkyList",inheritAttrs:!1,props:{filter:Object,size:{type:Number,default:30}},setup(o,{slots:N,attrs:S}){const{t:p}=R.useI18n(),V=b.useRouter(),g=b.useRoute(),a=e.ref(1),i=e.ref(o.size),q=e.ref(0),n=g.meta;O.useProvideHiddenTitle(!0);let c;const{state:f,isLoading:h,execute:x}=w.useAsyncState(async t=>{c=new AbortController;const r=await k.skyConfig.dataProvider?.getList?.(g.meta.resource,{pagination:{page:a.value,perPage:i.value},filter:t,signal:c.signal});if(r)return q.value=r.total||0,r},void 0,{immediate:!0}),{exportColumnMap:y,getList:E}=z.useProvideList({getList:t=>x(0,t),listLoading:h,listData:f}),L=()=>{V.push({name:k.skyConfig.getCreateRouteName(n.resource)})},_=()=>{const t=Object.keys(y),r=f.value?.data;if(r?.length&&t.length){const v=Object.keys(r[0]).filter(s=>t.includes(s)),j=r.map(s=>v.reduce((m,l)=>(m[l]=s[l]?String(s[l]):"",m),{})),A=v.map(s=>({label:y[s],key:s}));T.exportToCSV(j,A)}},P=()=>{c?.abort(),E()};return()=>e.createVNode("div",{class:"sky-list"},[e.createVNode(d.SkyCanAccess,{resource:n.resource,action:"list"},{default:()=>[e.createVNode(u.ElCard,S,{default:N.default,header:()=>{let t,r;return e.createVNode("div",{class:"sky-list__header"},[e.createVNode("div",{class:"sky-list__header_search"},[o.filter&&e.h(o.filter)]),e.createVNode(u.ElButtonGroup,null,{default:()=>[e.createVNode(d.SkyCanAccess,{resource:n.resource,action:"create"},{default:()=>[e.createVNode(u.ElButton,{type:"primary",text:!0,icon:B.EpPlus,onClick:L},C(t=p("button.add"))?t:{default:()=>[t]})]}),e.createVNode(d.SkyCanAccess,{resource:n.resource,action:"export"},{default:()=>[e.createVNode(u.ElButton,{type:"primary",text:!0,icon:D.EpDownload,onClick:_},C(r=p("button.export"))?r:{default:()=>[r]})]})]})])},footer:()=>e.createVNode(u.ElPagination,{class:"sky-list__pagination","current-page":a.value,"onUpdate:current-page":t=>a.value=t,"page-size":i.value,"onUpdate:page-size":t=>i.value=t,total:q.value,background:!0,layout:"total, sizes, prev, pager, next, jumper",onChange:P},null)})]})])}});exports.SkyList=M;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/list/index.tsx"],"sourcesContent":["import { useProvideHiddenTitle, useProvideList } from '@/hooks'\r\nimport type { GetListResult } from '@/provides'\r\nimport { skyConfig, type SkyComponent } from '@/setup'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport { ElButton, ElButtonGroup, ElCard, ElPagination, type CardProps } from 'element-plus'\r\nimport { defineComponent, h, ref, type PropType } from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { useRoute, useRouter } from 'vue-router'\r\nimport { exportToCSV } from './list'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport { EpPlus } from '@/icons/EpPlus'\r\nimport { EpDownload } from '@/icons/EpDownload'\r\n\r\nexport interface SkyListProps {\r\n filter?: SkyComponent\r\n size?: number\r\n}\r\n\r\nexport const SkyList = defineComponent<SkyListProps & Partial<CardProps>>({\r\n name: 'SkyList',\r\n inheritAttrs: false,\r\n props: {\r\n filter: Object as PropType<SkyComponent>,\r\n size: {\r\n type: Number,\r\n default: 30,\r\n },\r\n },\r\n setup(props, { slots, attrs }) {\r\n const { t } = useI18n()\r\n const router = useRouter()\r\n const route = useRoute()\r\n const page = ref(1)\r\n const size = ref(props.size!)\r\n const total = ref(0)\r\n // const routeMeta = computed(() => route.meta as SkyLayoutRouteMeta)\r\n // 不用 computed 的目的是因为keepalive缓存该组件后,如果改变 route 就会变化\r\n // 这里需要始终保持第一次组件的 route 状态,所以不更新刚好满足要求\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n // 列表下的所有 field 隐藏 title\r\n useProvideHiddenTitle(true)\r\n\r\n let controller: AbortController | undefined\r\n const { state, isLoading, execute } = useAsyncState<\r\n GetListResult | undefined,\r\n [filter?: Record<string, unknown>]\r\n >(\r\n async (filter) => {\r\n controller = new AbortController()\r\n const res = await skyConfig.dataProvider?.getList?.(route.meta.resource as string, {\r\n pagination: { page: page.value, perPage: size.value },\r\n filter,\r\n signal: controller.signal,\r\n })\r\n if (res) {\r\n total.value = res.total || 0\r\n return res\r\n }\r\n },\r\n undefined,\r\n {\r\n immediate: true,\r\n },\r\n )\r\n\r\n const { exportColumnMap, getList } = useProvideList({\r\n getList: (filter?: Record<string, unknown>) => execute(0, filter),\r\n listLoading: isLoading,\r\n listData: state,\r\n })\r\n\r\n const onAdd = () => {\r\n router.push({\r\n name: skyConfig.getCreateRouteName(routeMeta.resource),\r\n })\r\n }\r\n\r\n const onExport = () => {\r\n const keys = Object.keys(exportColumnMap)\r\n const data = state.value?.data\r\n if (data?.length && keys.length) {\r\n const ks = Object.keys(data[0]!).filter((dk) => keys.includes(dk))\r\n const datas = data.map((d) =>\r\n ks.reduce<Record<string, string>>(\r\n (acc, k) => ((acc[k] = d[k] ? String(d[k]) : ''), acc),\r\n {},\r\n ),\r\n )\r\n const columns = ks.map((k) => ({ label: exportColumnMap[k]!, key: k }))\r\n exportToCSV(datas, columns)\r\n }\r\n }\r\n\r\n const onChange = () => {\r\n controller?.abort()\r\n getList()\r\n }\r\n\r\n return () => (\r\n <div class=\"sky-list\">\r\n <SkyCanAccess resource={routeMeta.resource} action=\"list\">\r\n <ElCard {...attrs}>\r\n {{\r\n default: slots.default,\r\n header: () => (\r\n <div class=\"sky-list__header\">\r\n <div class=\"sky-list__header_search\">{props.filter && h(props.filter)}</div>\r\n <ElButtonGroup>\r\n <SkyCanAccess resource={routeMeta.resource} action=\"create\">\r\n <ElButton type=\"primary\" text icon={EpPlus} onClick={onAdd}>\r\n {t('button.add')}\r\n </ElButton>\r\n </SkyCanAccess>\r\n <SkyCanAccess resource={routeMeta.resource} action=\"export\">\r\n <ElButton type=\"primary\" text icon={EpDownload} onClick={onExport}>\r\n {t('button.export')}\r\n </ElButton>\r\n </SkyCanAccess>\r\n </ElButtonGroup>\r\n </div>\r\n ),\r\n footer: () => (\r\n <ElPagination\r\n class=\"sky-list__pagination\"\r\n current-page={page.value}\r\n onUpdate:current-page={(val) => (page.value = val)}\r\n page-size={size.value}\r\n onUpdate:page-size={(val) => (size.value = val)}\r\n total={total.value}\r\n background\r\n layout=\"total, sizes, prev, pager, next, jumper\"\r\n onChange={onChange}\r\n />\r\n ),\r\n }}\r\n </ElCard>\r\n </SkyCanAccess>\r\n </div>\r\n )\r\n },\r\n})\r\n"],"names":["_isSlot","s","_isVNode","SkyList","defineComponent","name","inheritAttrs","props","filter","size","type","default","attrs","t","router","useRouter","route","useRoute","page","ref","total","routeMeta","controller","execute","useAsyncState","res","skyConfig","pagination","immediate","getList","listLoading","listData","keys","exportColumnMap","data","state","datas","d","ks","acc","k","columns","label","key","exportToCSV","_createVNode","header","h","ElButtonGroup","EpPlus","EpDownload","footer","val"],"mappings":"6tCAY+C,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAO/C,MAAAE,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,UACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,OACAC,KAAAA,CACEC,KAAAA,OACAC,QAAAA,EACF,oBAEoBC,MAAAA,CAAM,EAAA,OAClBC,EAAAA,eACRC,EAAAC,EAAAA,UAAA,EACAC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,IAAA,CAAA,EACAV,EAAAU,EAAAA,IAAAZ,EAAA,IAAA,EACAa,EAAAD,EAAAA,IAAA,CAAA,EAIAE,EAAAL,EAAA,iCAKA,IAAAM,4BAC0BC,QAAAA,CAAQ,EAAAC,EAAAA,cAAA,MAAAhB,GAAA,CAK9Bc,EAAAA,IAAAA,gBACA,MAAAG,EAAA,MAAAC,YAAA,cAAA,UAAAV,EAAA,KAAA,SAAA,CACEW,WAAAA,uDAGF,CAAA,EACA,GAAAF,EACEL,OAAAA,EAAAA,MAAAA,EAAAA,OAAAA,EACAK,WAKFG,UAAAA,EACF,CAAA,qBAGuBC,QAAAA,uCAEvBC,YAAAA,EACAC,SAAAA,CACF,CAAA,iBAII1B,KAAAA,EAAAA,UAAAA,mBAAAA,EAAAA,QAAAA,CACF,CAAA,UAIA,MAAA2B,EAAA,OAAA,KAAAC,CAAA,EACAC,EAAAC,EAAA,OAAA,KACA,GAAAD,GAAA,QAAAF,EAAA,OAAA,oDAEEI,EAAAF,EAAA,IAAAG,GAAAC,EAAA,OAAA,CAAAC,EAAAC,KAAAD,EAAAC,CAAA,EAAAH,EAAAG,CAAA,EAAA,OAAAH,EAAAG,CAAA,CAAA,EAAA,GAAAD,GAAA,CAAA,CAAA,CAAA,EAMAE,EAAAH,EAAA,IAAAE,IAAA,CAAiCE,MAAAA,EAAAA,CAAAA,EAA4BC,IAAAA,CAAO,EAAA,EACpEC,EAAAA,YAAAA,EAAAA,CAAAA,CACF,qBAKAf,EAAAA,GAGF,MAAA,IAAAgB,EAAAA,YAAA,MAAA,CAAO,MAAA,+DAEuC,OAAA,MAAA,EAAA,CAAAlC,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,OAAAA,EAAAA,mBAIpCmC,OAAAA,IAAAA,SAAQ,OAAAD,EAAAA,YAAA,MAAA,CAAA,MAAA,kBAAA,EAAA,CAAAA,EAAAA,YAAA,MAAA,CAAA,MAAA,yBAAA,EAAA,CAAAtC,EAAA,QAAAwC,EAAAA,EAAAxC,EAAA,MAAA,CAAA,CAAA,EAAAsC,EAAAA,YAAAG,EAAAA,cAAA,KAAA,CAEiErC,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,eAAAA,qBAEzB,OAAA,QAAA,EAAA,CAAAA,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,WAAAA,CAAA,KAAA,UAAA,KAAA,GAAA,KAAAsC,EAAAA,yDAEtB,CAAA,CAAA,sDAGsB,OAAA,QAAA,EAAA,CAAAtC,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,WAAAA,CAAA,KAAA,UAAA,KAAA,GAAA,KAAAuC,EAAAA,gEAEnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAM7BC,OAAAA,IAAAA,EAAAA,YAAAA,eAAAA,CAAQ,MAAA,8CAGoB,wBAAAC,GAAAlC,EAAA,MAAAkC,sBAEH,qBAAAA,GAAA3C,EAAA,MAAA2C,gBAEH,WAAA,GAAA,OAAA,oDAGA,EAAA,IAAA,CAErB,CAAA,CAAA,KAMb,CACF,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { SkyComponent } from '../../setup';
2
+ import { CardProps } from 'element-plus';
3
+ export interface SkyListProps {
4
+ filter?: SkyComponent;
5
+ size?: number;
6
+ }
7
+ export declare const SkyList: import('vue').DefineComponent<SkyListProps & Partial<CardProps>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyListProps & Partial<CardProps>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,154 @@
1
+ import "element-plus/es/components/button/style/css";
2
+ import "element-plus/es/components/button-group/style/css";
3
+ import "element-plus/es/components/card/style/css";
4
+ import "element-plus/es/components/pagination/style/css";
5
+ import { defineComponent as w, ref as p, createVNode as o, h as R, isVNode as V } from "vue";
6
+ import "../../hooks/useUser.mjs";
7
+ import "../../hooks/usePermission.mjs";
8
+ import "../../hooks/useMenu.mjs";
9
+ import "../../hooks/useTab.mjs";
10
+ import "../../hooks/useRouteKeepAlive.mjs";
11
+ import "../../hooks/useSize.mjs";
12
+ import "../../hooks/useLang.mjs";
13
+ import "../../hooks/useTheme.mjs";
14
+ import { useProvideList as B } from "../../hooks/useList.mjs";
15
+ import { useProvideHiddenTitle as D } from "../../hooks/useHiddenTitle.mjs";
16
+ import "../../hooks/useForm.mjs";
17
+ import "../../hooks/useShow.mjs";
18
+ import "../../hooks/useReferenceArrayField.mjs";
19
+ import "../../hooks/useTreeWithDetails.mjs";
20
+ import "../../hooks/useFormGrid.mjs";
21
+ import "../../hooks/useReferenceArrayInput.mjs";
22
+ import { skyConfig as k } from "../../setup/index.mjs";
23
+ import { useAsyncState as M } from "@vueuse/core";
24
+ import { ElCard as T, ElPagination as U, ElButtonGroup as G, ElButton as C } from "element-plus";
25
+ import { useI18n as H } from "vue-i18n";
26
+ import { useRouter as I, useRoute as q } from "vue-router";
27
+ import { exportToCSV as F } from "./list.mjs";
28
+ import { SkyCanAccess as c } from "../can-access/index.mjs";
29
+ import { EpPlus as J } from "../../icons/EpPlus.mjs";
30
+ import { EpDownload as K } from "../../icons/EpDownload.mjs";
31
+ function h(r) {
32
+ return typeof r == "function" || Object.prototype.toString.call(r) === "[object Object]" && !V(r);
33
+ }
34
+ const Lt = /* @__PURE__ */ w({
35
+ name: "SkyList",
36
+ inheritAttrs: !1,
37
+ props: {
38
+ filter: Object,
39
+ size: {
40
+ type: Number,
41
+ default: 30
42
+ }
43
+ },
44
+ setup(r, {
45
+ slots: x,
46
+ attrs: _
47
+ }) {
48
+ const {
49
+ t: m
50
+ } = H(), L = I(), d = q(), s = p(1), n = p(r.size), f = p(0), a = d.meta;
51
+ D(!0);
52
+ let l;
53
+ const {
54
+ state: g,
55
+ isLoading: S,
56
+ execute: j
57
+ } = M(async (t) => {
58
+ l = new AbortController();
59
+ const e = await k.dataProvider?.getList?.(d.meta.resource, {
60
+ pagination: {
61
+ page: s.value,
62
+ perPage: n.value
63
+ },
64
+ filter: t,
65
+ signal: l.signal
66
+ });
67
+ if (e)
68
+ return f.value = e.total || 0, e;
69
+ }, void 0, {
70
+ immediate: !0
71
+ }), {
72
+ exportColumnMap: y,
73
+ getList: E
74
+ } = B({
75
+ getList: (t) => j(0, t),
76
+ listLoading: S,
77
+ listData: g
78
+ }), z = () => {
79
+ L.push({
80
+ name: k.getCreateRouteName(a.resource)
81
+ });
82
+ }, P = () => {
83
+ const t = Object.keys(y), e = g.value?.data;
84
+ if (e?.length && t.length) {
85
+ const v = Object.keys(e[0]).filter((i) => t.includes(i)), O = e.map((i) => v.reduce((b, u) => (b[u] = i[u] ? String(i[u]) : "", b), {})), N = v.map((i) => ({
86
+ label: y[i],
87
+ key: i
88
+ }));
89
+ F(O, N);
90
+ }
91
+ }, A = () => {
92
+ l?.abort(), E();
93
+ };
94
+ return () => o("div", {
95
+ class: "sky-list"
96
+ }, [o(c, {
97
+ resource: a.resource,
98
+ action: "list"
99
+ }, {
100
+ default: () => [o(T, _, {
101
+ default: x.default,
102
+ header: () => {
103
+ let t, e;
104
+ return o("div", {
105
+ class: "sky-list__header"
106
+ }, [o("div", {
107
+ class: "sky-list__header_search"
108
+ }, [r.filter && R(r.filter)]), o(G, null, {
109
+ default: () => [o(c, {
110
+ resource: a.resource,
111
+ action: "create"
112
+ }, {
113
+ default: () => [o(C, {
114
+ type: "primary",
115
+ text: !0,
116
+ icon: J,
117
+ onClick: z
118
+ }, h(t = m("button.add")) ? t : {
119
+ default: () => [t]
120
+ })]
121
+ }), o(c, {
122
+ resource: a.resource,
123
+ action: "export"
124
+ }, {
125
+ default: () => [o(C, {
126
+ type: "primary",
127
+ text: !0,
128
+ icon: K,
129
+ onClick: P
130
+ }, h(e = m("button.export")) ? e : {
131
+ default: () => [e]
132
+ })]
133
+ })]
134
+ })]);
135
+ },
136
+ footer: () => o(U, {
137
+ class: "sky-list__pagination",
138
+ "current-page": s.value,
139
+ "onUpdate:current-page": (t) => s.value = t,
140
+ "page-size": n.value,
141
+ "onUpdate:page-size": (t) => n.value = t,
142
+ total: f.value,
143
+ background: !0,
144
+ layout: "total, sizes, prev, pager, next, jumper",
145
+ onChange: A
146
+ }, null)
147
+ })]
148
+ })]);
149
+ }
150
+ });
151
+ export {
152
+ Lt as SkyList
153
+ };
154
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/list/index.tsx"],"sourcesContent":["import { useProvideHiddenTitle, useProvideList } from '@/hooks'\r\nimport type { GetListResult } from '@/provides'\r\nimport { skyConfig, type SkyComponent } from '@/setup'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport { ElButton, ElButtonGroup, ElCard, ElPagination, type CardProps } from 'element-plus'\r\nimport { defineComponent, h, ref, type PropType } from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { useRoute, useRouter } from 'vue-router'\r\nimport { exportToCSV } from './list'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport { EpPlus } from '@/icons/EpPlus'\r\nimport { EpDownload } from '@/icons/EpDownload'\r\n\r\nexport interface SkyListProps {\r\n filter?: SkyComponent\r\n size?: number\r\n}\r\n\r\nexport const SkyList = defineComponent<SkyListProps & Partial<CardProps>>({\r\n name: 'SkyList',\r\n inheritAttrs: false,\r\n props: {\r\n filter: Object as PropType<SkyComponent>,\r\n size: {\r\n type: Number,\r\n default: 30,\r\n },\r\n },\r\n setup(props, { slots, attrs }) {\r\n const { t } = useI18n()\r\n const router = useRouter()\r\n const route = useRoute()\r\n const page = ref(1)\r\n const size = ref(props.size!)\r\n const total = ref(0)\r\n // const routeMeta = computed(() => route.meta as SkyLayoutRouteMeta)\r\n // 不用 computed 的目的是因为keepalive缓存该组件后,如果改变 route 就会变化\r\n // 这里需要始终保持第一次组件的 route 状态,所以不更新刚好满足要求\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n // 列表下的所有 field 隐藏 title\r\n useProvideHiddenTitle(true)\r\n\r\n let controller: AbortController | undefined\r\n const { state, isLoading, execute } = useAsyncState<\r\n GetListResult | undefined,\r\n [filter?: Record<string, unknown>]\r\n >(\r\n async (filter) => {\r\n controller = new AbortController()\r\n const res = await skyConfig.dataProvider?.getList?.(route.meta.resource as string, {\r\n pagination: { page: page.value, perPage: size.value },\r\n filter,\r\n signal: controller.signal,\r\n })\r\n if (res) {\r\n total.value = res.total || 0\r\n return res\r\n }\r\n },\r\n undefined,\r\n {\r\n immediate: true,\r\n },\r\n )\r\n\r\n const { exportColumnMap, getList } = useProvideList({\r\n getList: (filter?: Record<string, unknown>) => execute(0, filter),\r\n listLoading: isLoading,\r\n listData: state,\r\n })\r\n\r\n const onAdd = () => {\r\n router.push({\r\n name: skyConfig.getCreateRouteName(routeMeta.resource),\r\n })\r\n }\r\n\r\n const onExport = () => {\r\n const keys = Object.keys(exportColumnMap)\r\n const data = state.value?.data\r\n if (data?.length && keys.length) {\r\n const ks = Object.keys(data[0]!).filter((dk) => keys.includes(dk))\r\n const datas = data.map((d) =>\r\n ks.reduce<Record<string, string>>(\r\n (acc, k) => ((acc[k] = d[k] ? String(d[k]) : ''), acc),\r\n {},\r\n ),\r\n )\r\n const columns = ks.map((k) => ({ label: exportColumnMap[k]!, key: k }))\r\n exportToCSV(datas, columns)\r\n }\r\n }\r\n\r\n const onChange = () => {\r\n controller?.abort()\r\n getList()\r\n }\r\n\r\n return () => (\r\n <div class=\"sky-list\">\r\n <SkyCanAccess resource={routeMeta.resource} action=\"list\">\r\n <ElCard {...attrs}>\r\n {{\r\n default: slots.default,\r\n header: () => (\r\n <div class=\"sky-list__header\">\r\n <div class=\"sky-list__header_search\">{props.filter && h(props.filter)}</div>\r\n <ElButtonGroup>\r\n <SkyCanAccess resource={routeMeta.resource} action=\"create\">\r\n <ElButton type=\"primary\" text icon={EpPlus} onClick={onAdd}>\r\n {t('button.add')}\r\n </ElButton>\r\n </SkyCanAccess>\r\n <SkyCanAccess resource={routeMeta.resource} action=\"export\">\r\n <ElButton type=\"primary\" text icon={EpDownload} onClick={onExport}>\r\n {t('button.export')}\r\n </ElButton>\r\n </SkyCanAccess>\r\n </ElButtonGroup>\r\n </div>\r\n ),\r\n footer: () => (\r\n <ElPagination\r\n class=\"sky-list__pagination\"\r\n current-page={page.value}\r\n onUpdate:current-page={(val) => (page.value = val)}\r\n page-size={size.value}\r\n onUpdate:page-size={(val) => (size.value = val)}\r\n total={total.value}\r\n background\r\n layout=\"total, sizes, prev, pager, next, jumper\"\r\n onChange={onChange}\r\n />\r\n ),\r\n }}\r\n </ElCard>\r\n </SkyCanAccess>\r\n </div>\r\n )\r\n },\r\n})\r\n"],"names":["_isSlot","s","_isVNode","SkyList","defineComponent","name","inheritAttrs","props","filter","size","type","default","attrs","t","router","useRouter","route","useRoute","page","ref","total","routeMeta","controller","execute","useAsyncState","res","skyConfig","pagination","immediate","getList","listLoading","listData","keys","exportColumnMap","data","state","datas","d","ks","acc","k","columns","label","key","exportToCSV","_createVNode","header","h","ElButtonGroup","EpPlus","EpDownload","footer","val"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAY+C,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAO/C,MAAAE,KAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,IACAC,MAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,SAAAA;AAAAA,IACF;AAAA;;;IAEoBC,OAAAA;AAAAA,EAAM,GAAA;;MAClBC,GAAAA;AAAAA,aACRC,IAAAC,EAAA,GACAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,CAAA,GACAV,IAAAU,EAAAZ,EAAA,IAAA,GACAa,IAAAD,EAAA,CAAA,GAIAE,IAAAL,EAAA;;AAKA,QAAAM;;;;MAC0BC,SAAAA;AAAAA,IAAQ,IAAAC,EAAA,OAAAhB,MAAA;AAK9Bc,MAAAA,IAAAA,IAAAA,gBAAAA;AACA,YAAAG,IAAA,MAAAC,EAAA,cAAA,UAAAV,EAAA,KAAA,UAAA;AAAA,QACEW,YAAAA;AAAAA;;;;;MAGF,CAAA;AACA,UAAAF;AACEL,eAAAA,EAAAA,QAAAA,EAAAA,SAAAA,GACAK;AAAA;MAKFG,WAAAA;AAAAA,IACF,CAAA;;MAGuBC,SAAAA;AAAAA;;MAEvBC,aAAAA;AAAAA,MACAC,UAAAA;AAAAA,IACF,CAAA;;QAII1B,MAAAA,EAAAA,mBAAAA,EAAAA,QAAAA;AAAAA,MACF,CAAA;AAAA;AAIA,YAAA2B,IAAA,OAAA,KAAAC,CAAA,GACAC,IAAAC,EAAA,OAAA;AACA,UAAAD,GAAA,UAAAF,EAAA,QAAA;kEAEEI,IAAAF,EAAA,IAAA,CAAAG,MAAAC,EAAA,OAAA,CAAAC,GAAAC,OAAAD,EAAAC,CAAA,IAAAH,EAAAG,CAAA,IAAA,OAAAH,EAAAG,CAAA,CAAA,IAAA,IAAAD,IAAA,CAAA,CAAA,CAAA,GAMAE,IAAAH,EAAA,IAAA,CAAAE,OAAA;AAAA,UAAiCE,OAAAA,EAAAA,CAAAA;AAAAA,UAA4BC,KAAAA;AAAAA,QAAO,EAAA;AACpEC,QAAAA,EAAAA,GAAAA,CAAAA;AAAAA,MACF;AAAA;kBAKAf,EAAAA;AAAAA;AAGF,WAAA,MAAAgB,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA;;MAEuC,QAAA;AAAA,IAAA,GAAA;AAAA,MAAAlC,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,GAAAA;AAAAA;QAIpCmC,QAAAA,MAAAA;;AAAQ,iBAAAD,EAAA,OAAA;AAAA,YAAA,OAAA;AAAA,UAAA,GAAA,CAAAA,EAAA,OAAA;AAAA,YAAA,OAAA;AAAA,UAAA,GAAA,CAAAtC,EAAA,UAAAwC,EAAAxC,EAAA,MAAA,CAAA,CAAA,GAAAsC,EAAAG,GAAA,MAAA;AAAA,YAEiErC,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA;cAEzB,QAAA;AAAA,YAAA,GAAA;AAAA,cAAAA,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA,gBAAA,MAAA;AAAA,gBAAA,MAAA;AAAA,gBAAA,MAAAsC;AAAA;;;cAEtB,CAAA,CAAA;AAAA;;cAGsB,QAAA;AAAA,YAAA,GAAA;AAAA,cAAAtC,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA,gBAAA,MAAA;AAAA,gBAAA,MAAA;AAAA,gBAAA,MAAAuC;AAAA;;;cAEnB,CAAA,CAAA;AAAA,YAAA,CAAA,CAAA;AAAA,UAAA,CAAA,CAAA,CAAA;AAAA;QAM7BC,QAAAA,MAAAA,EAAAA,GAAAA;AAAAA,UAAQ,OAAA;AAAA;UAGoB,yBAAA,CAAAC,MAAAlC,EAAA,QAAAkC;AAAA;UAEH,sBAAA,CAAAA,MAAA3C,EAAA,QAAA2C;AAAA;UAEH,YAAA;AAAA,UAAA,QAAA;AAAA;QAGA,GAAA,IAAA;AAAA,MAErB,CAAA,CAAA;AAAA;EAMb;AACF,CAAA;"}
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function p(o,n,r="export.csv"){if(!o.length)return;const c=n.map(t=>t.label).join(","),l=o.map(t=>n.map(d=>{const s=t[d.key];return`"${String(s??"").replace(/"/g,'""')}"`}).join(",")),a=[c,...l].join(`\r
2
+ `),i=new Blob(["\uFEFF"+a],{type:"text/csv;charset=utf-8;"}),e=document.createElement("a");e.href=URL.createObjectURL(i),e.download=r,document.body.appendChild(e),e.click(),document.body.removeChild(e),URL.revokeObjectURL(e.href)}exports.exportToCSV=p;
3
+ //# sourceMappingURL=list.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.cjs","sources":["../../../src/components/list/list.ts"],"sourcesContent":["/**\r\n * 导出 CSV 文件\r\n * @param data 要导出的数组数据,例如 [{ id: 1, name: 'Alice' }]\r\n * @param columns 表头定义,例如 [{ label: '编号', key: 'id' }]\r\n * @param filename 文件名\r\n */\r\nexport function exportToCSV<T extends Record<string, unknown>>(\r\n data: T[],\r\n columns: { label: string; key: string }[],\r\n filename = 'export.csv',\r\n) {\r\n if (!data.length) return\r\n\r\n // 1. 生成表头\r\n const header = columns.map((c) => c.label).join(',')\r\n\r\n // 2. 生成每行内容\r\n const rows = data.map((row) =>\r\n columns\r\n .map((c) => {\r\n const val = row[c.key]\r\n // 如果有逗号或换行,需要用引号包裹\r\n return `\"${String(val ?? '').replace(/\"/g, '\"\"')}\"`\r\n })\r\n .join(','),\r\n )\r\n\r\n const csvContent = [header, ...rows].join('\\r\\n')\r\n\r\n // 3. 生成 blob 并触发下载\r\n const blob = new Blob(['\\uFEFF' + csvContent], {\r\n type: 'text/csv;charset=utf-8;',\r\n })\r\n\r\n const link = document.createElement('a')\r\n link.href = URL.createObjectURL(blob)\r\n link.download = filename\r\n document.body.appendChild(link)\r\n link.click()\r\n document.body.removeChild(link)\r\n URL.revokeObjectURL(link.href)\r\n}\r\n"],"names":["exportToCSV","data","columns","filename","header","c","rows","row","val","csvContent","blob","link"],"mappings":"gFAMO,SAASA,EACdC,EACAC,EACAC,EAAW,aACX,CACA,GAAI,CAACF,EAAK,OAAQ,OAGlB,MAAMG,EAASF,EAAQ,IAAKG,GAAMA,EAAE,KAAK,EAAE,KAAK,GAAG,EAG7CC,EAAOL,EAAK,IAAKM,GACrBL,EACG,IAAKG,GAAM,CACV,MAAMG,EAAMD,EAAIF,EAAE,GAAG,EAErB,MAAO,IAAI,OAAOG,GAAO,EAAE,EAAE,QAAQ,KAAM,IAAI,CAAC,GAClD,CAAC,EACA,KAAK,GAAG,CAAA,EAGPC,EAAa,CAACL,EAAQ,GAAGE,CAAI,EAAE,KAAK;AAAA,CAAM,EAG1CI,EAAO,IAAI,KAAK,CAAC,SAAWD,CAAU,EAAG,CAC7C,KAAM,yBAAA,CACP,EAEKE,EAAO,SAAS,cAAc,GAAG,EACvCA,EAAK,KAAO,IAAI,gBAAgBD,CAAI,EACpCC,EAAK,SAAWR,EAChB,SAAS,KAAK,YAAYQ,CAAI,EAC9BA,EAAK,MAAA,EACL,SAAS,KAAK,YAAYA,CAAI,EAC9B,IAAI,gBAAgBA,EAAK,IAAI,CAC/B"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 导出 CSV 文件
3
+ * @param data 要导出的数组数据,例如 [{ id: 1, name: 'Alice' }]
4
+ * @param columns 表头定义,例如 [{ label: '编号', key: 'id' }]
5
+ * @param filename 文件名
6
+ */
7
+ export declare function exportToCSV<T extends Record<string, unknown>>(data: T[], columns: {
8
+ label: string;
9
+ key: string;
10
+ }[], filename?: string): void;
@@ -0,0 +1,17 @@
1
+ function s(o, n, c = "export.csv") {
2
+ if (!o.length) return;
3
+ const r = n.map((t) => t.label).join(","), l = o.map(
4
+ (t) => n.map((i) => {
5
+ const p = t[i.key];
6
+ return `"${String(p ?? "").replace(/"/g, '""')}"`;
7
+ }).join(",")
8
+ ), a = [r, ...l].join(`\r
9
+ `), d = new Blob(["\uFEFF" + a], {
10
+ type: "text/csv;charset=utf-8;"
11
+ }), e = document.createElement("a");
12
+ e.href = URL.createObjectURL(d), e.download = c, document.body.appendChild(e), e.click(), document.body.removeChild(e), URL.revokeObjectURL(e.href);
13
+ }
14
+ export {
15
+ s as exportToCSV
16
+ };
17
+ //# sourceMappingURL=list.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.mjs","sources":["../../../src/components/list/list.ts"],"sourcesContent":["/**\r\n * 导出 CSV 文件\r\n * @param data 要导出的数组数据,例如 [{ id: 1, name: 'Alice' }]\r\n * @param columns 表头定义,例如 [{ label: '编号', key: 'id' }]\r\n * @param filename 文件名\r\n */\r\nexport function exportToCSV<T extends Record<string, unknown>>(\r\n data: T[],\r\n columns: { label: string; key: string }[],\r\n filename = 'export.csv',\r\n) {\r\n if (!data.length) return\r\n\r\n // 1. 生成表头\r\n const header = columns.map((c) => c.label).join(',')\r\n\r\n // 2. 生成每行内容\r\n const rows = data.map((row) =>\r\n columns\r\n .map((c) => {\r\n const val = row[c.key]\r\n // 如果有逗号或换行,需要用引号包裹\r\n return `\"${String(val ?? '').replace(/\"/g, '\"\"')}\"`\r\n })\r\n .join(','),\r\n )\r\n\r\n const csvContent = [header, ...rows].join('\\r\\n')\r\n\r\n // 3. 生成 blob 并触发下载\r\n const blob = new Blob(['\\uFEFF' + csvContent], {\r\n type: 'text/csv;charset=utf-8;',\r\n })\r\n\r\n const link = document.createElement('a')\r\n link.href = URL.createObjectURL(blob)\r\n link.download = filename\r\n document.body.appendChild(link)\r\n link.click()\r\n document.body.removeChild(link)\r\n URL.revokeObjectURL(link.href)\r\n}\r\n"],"names":["exportToCSV","data","columns","filename","header","c","rows","row","val","csvContent","blob","link"],"mappings":"AAMO,SAASA,EACdC,GACAC,GACAC,IAAW,cACX;AACA,MAAI,CAACF,EAAK,OAAQ;AAGlB,QAAMG,IAASF,EAAQ,IAAI,CAACG,MAAMA,EAAE,KAAK,EAAE,KAAK,GAAG,GAG7CC,IAAOL,EAAK;AAAA,IAAI,CAACM,MACrBL,EACG,IAAI,CAACG,MAAM;AACV,YAAMG,IAAMD,EAAIF,EAAE,GAAG;AAErB,aAAO,IAAI,OAAOG,KAAO,EAAE,EAAE,QAAQ,MAAM,IAAI,CAAC;AAAA,IAClD,CAAC,EACA,KAAK,GAAG;AAAA,EAAA,GAGPC,IAAa,CAACL,GAAQ,GAAGE,CAAI,EAAE,KAAK;AAAA,CAAM,GAG1CI,IAAO,IAAI,KAAK,CAAC,WAAWD,CAAU,GAAG;AAAA,IAC7C,MAAM;AAAA,EAAA,CACP,GAEKE,IAAO,SAAS,cAAc,GAAG;AACvC,EAAAA,EAAK,OAAO,IAAI,gBAAgBD,CAAI,GACpCC,EAAK,WAAWR,GAChB,SAAS,KAAK,YAAYQ,CAAI,GAC9BA,EAAK,MAAA,GACL,SAAS,KAAK,YAAYA,CAAI,GAC9B,IAAI,gBAAgBA,EAAK,IAAI;AAC/B;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/form-item/style/css");require("element-plus/es/components/radio/style/css");require("element-plus/es/components/radio-group/style/css");const r=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");const q=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");const m=require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const i=require("element-plus"),f=require("vue-router"),y=require("../can-access/index.cjs");function b(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!r.isVNode(e)}const S=r.defineComponent({name:"SkyRadioButtonGroupInput",inheritAttrs:!1,props:{source:{type:String,required:!0},label:String,options:Array,rules:Object,defaultValue:{type:[String,Number],default:""}},setup(e,{attrs:l}){const n=f.useRoute(),c=m.useFormGrid(),{formData:u,editData:a}=q.useForm(),s=n.meta,d=r.computed(()=>e.label||e.source);return typeof u[e.source]>"u"&&(u[e.source]=e.defaultValue),a.value&&(u[e.source]=a.value[e.source]),()=>{let o;return r.createVNode(y.SkyCanAccess,{resource:s.resource,action:["create","edit"],column:e.source},{default:()=>[r.createVNode(i.ElFormItem,{label:d.value,prop:e.source,rules:e.rules,style:c?`grid-area: ${e.source}`:""},{default:()=>[r.createVNode(i.ElRadioGroup,r.mergeProps({modelValue:u[e.source],"onUpdate:modelValue":t=>u[e.source]=t},l),b(o=e.options.map(t=>r.h(i.ElRadio,{key:t.value,value:t.value},{default:()=>t.label})))?o:{default:()=>[o]})]})]})}}});exports.SkyRadioButtonGroupInput=S;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/radio-button-group-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid } from '@/hooks'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport {\n ElFormItem,\n ElRadio,\n ElRadioGroup,\n type FormItemRule,\n type RadioGroupProps,\n} from 'element-plus'\nimport { computed, defineComponent, h, type PropType } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyRadioButtonGroupInputOptionItem {\n value: string | number\n label: string\n disabled?: boolean\n}\n\nexport interface SkyRadioButtonGroupInputProps {\n source: string\n label?: string\n options: SkyRadioButtonGroupInputOptionItem[]\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: string | number\n}\n\nexport const SkyRadioButtonGroupInput = defineComponent<\n SkyRadioButtonGroupInputProps & Partial<RadioGroupProps>\n>({\n name: 'SkyRadioButtonGroupInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n options: Array as PropType<SkyRadioButtonGroupInputOptionItem[]>,\n rules: Object,\n defaultValue: {\n type: [String, Number],\n default: '',\n },\n },\n setup(props, { attrs }) {\n const route = useRoute()\n const formGrid = useFormGrid()\n const { formData, editData } = useForm()!\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const title = computed<string>(() => props.label || props.source)\n\n if (typeof formData[props.source] === 'undefined') {\n formData[props.source] = props.defaultValue!\n }\n\n if (editData.value) {\n formData[props.source] = editData.value[props.source]\n }\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n <ElFormItem\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElRadioGroup\n modelValue={formData[props.source] as SkyRadioButtonGroupInputOptionItem['value']}\n onUpdate:modelValue={(v) =>\n (formData[props.source] = v as SkyRadioButtonGroupInputOptionItem['value'])\n }\n {...attrs}\n >\n {props.options.map((option) =>\n h(\n ElRadio,\n { key: option.value, value: option.value },\n { default: () => option.label },\n ),\n )}\n </ElRadioGroup>\n </ElFormItem>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyRadioButtonGroupInput","defineComponent","name","inheritAttrs","props","source","type","required","label","options","rules","defaultValue","default","attrs","route","useRoute","formGrid","useFormGrid","editData","routeMeta","title","computed","formData","_slot","option","h","ElRadio"],"mappings":"o/BAW4C,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAgB5C,MAAAE,EAAAC,EAAAA,gBAAA,CAGEC,KAAAA,2BACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OACAC,QAAAA,MACAC,MAAAA,OACAC,aAAAA,CACEL,KAAAA,CAAAA,OAAAA,MAAAA,EACAM,QAAAA,EACF,YAEaC,MAAAA,CAAM,EAAA,CACnB,MAAAC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,YAAA,cACkBC,SAAAA,eAClBC,EAAAL,EAAA,KAEAM,EAAAC,EAAAA,SAAA,IAAAjB,EAAA,OAAAA,EAAA,MAAA,wEAOEkB,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,EAAAA,MAAAA,QAGK,IAAAC,2DACqC,OAAA,CAAA,SAAA,MAAA,EAA4B,OAAAnB,EAAA,MAAsB,EAAA,CAAAQ,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,aAAAA,2CAItE,MAAAI,EAAA,cAAAZ,EAAA,MAAA,GAAA,EACiC,EAAA,CAAAQ,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,aAAAA,EAAAA,WAAAA,CAAA,WAAAU,EAAAlB,EAAA,MAAA,wCAK4B,EAAAS,CAAA,EAAAhB,EAAA0B,EAAAnB,EAAA,QAAA,IAAAoB,GAAAC,EAAAA,EAAAC,UAAA,0BAOhC,EAAA,CACvCd,QAAAA,IAAAA,EAAAA,4BAEL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAKX,CACF,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { FormItemRule, RadioGroupProps } from 'element-plus';
2
+ export interface SkyRadioButtonGroupInputOptionItem {
3
+ value: string | number;
4
+ label: string;
5
+ disabled?: boolean;
6
+ }
7
+ export interface SkyRadioButtonGroupInputProps {
8
+ source: string;
9
+ label?: string;
10
+ options: SkyRadioButtonGroupInputOptionItem[];
11
+ rules?: FormItemRule | FormItemRule[];
12
+ defaultValue?: string | number;
13
+ }
14
+ export declare const SkyRadioButtonGroupInput: import('vue').DefineComponent<SkyRadioButtonGroupInputProps & Partial<RadioGroupProps>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyRadioButtonGroupInputProps & Partial<RadioGroupProps>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,82 @@
1
+ import "element-plus/es/components/form-item/style/css";
2
+ import "element-plus/es/components/radio/style/css";
3
+ import "element-plus/es/components/radio-group/style/css";
4
+ import { defineComponent as d, computed as f, createVNode as u, mergeProps as s, h as p, isVNode as y } from "vue";
5
+ import "../../hooks/useUser.mjs";
6
+ import "../../hooks/usePermission.mjs";
7
+ import "../../hooks/useMenu.mjs";
8
+ import "../../hooks/useTab.mjs";
9
+ import "../../hooks/useRouteKeepAlive.mjs";
10
+ import "../../hooks/useSize.mjs";
11
+ import "../../hooks/useLang.mjs";
12
+ import "../../hooks/useTheme.mjs";
13
+ import "../../hooks/useList.mjs";
14
+ import "../../hooks/useHiddenTitle.mjs";
15
+ import { useForm as b } from "../../hooks/useForm.mjs";
16
+ import "../../hooks/useShow.mjs";
17
+ import "../../hooks/useReferenceArrayField.mjs";
18
+ import "../../hooks/useTreeWithDetails.mjs";
19
+ import { useFormGrid as S } from "../../hooks/useFormGrid.mjs";
20
+ import "../../hooks/useReferenceArrayInput.mjs";
21
+ import { ElFormItem as g, ElRadioGroup as v, ElRadio as V } from "element-plus";
22
+ import { useRoute as G } from "vue-router";
23
+ import { SkyCanAccess as R } from "../can-access/index.mjs";
24
+ function j(e) {
25
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !y(e);
26
+ }
27
+ const L = /* @__PURE__ */ d({
28
+ name: "SkyRadioButtonGroupInput",
29
+ inheritAttrs: !1,
30
+ props: {
31
+ source: {
32
+ type: String,
33
+ required: !0
34
+ },
35
+ label: String,
36
+ options: Array,
37
+ rules: Object,
38
+ defaultValue: {
39
+ type: [String, Number],
40
+ default: ""
41
+ }
42
+ },
43
+ setup(e, {
44
+ attrs: m
45
+ }) {
46
+ const a = G(), l = S(), {
47
+ formData: t,
48
+ editData: i
49
+ } = b(), c = a.meta, n = f(() => e.label || e.source);
50
+ return typeof t[e.source] > "u" && (t[e.source] = e.defaultValue), i.value && (t[e.source] = i.value[e.source]), () => {
51
+ let r;
52
+ return u(R, {
53
+ resource: c.resource,
54
+ action: ["create", "edit"],
55
+ column: e.source
56
+ }, {
57
+ default: () => [u(g, {
58
+ label: n.value,
59
+ prop: e.source,
60
+ rules: e.rules,
61
+ style: l ? `grid-area: ${e.source}` : ""
62
+ }, {
63
+ default: () => [u(v, s({
64
+ modelValue: t[e.source],
65
+ "onUpdate:modelValue": (o) => t[e.source] = o
66
+ }, m), j(r = e.options.map((o) => p(V, {
67
+ key: o.value,
68
+ value: o.value
69
+ }, {
70
+ default: () => o.label
71
+ }))) ? r : {
72
+ default: () => [r]
73
+ })]
74
+ })]
75
+ });
76
+ };
77
+ }
78
+ });
79
+ export {
80
+ L as SkyRadioButtonGroupInput
81
+ };
82
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/radio-button-group-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid } from '@/hooks'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport {\n ElFormItem,\n ElRadio,\n ElRadioGroup,\n type FormItemRule,\n type RadioGroupProps,\n} from 'element-plus'\nimport { computed, defineComponent, h, type PropType } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyRadioButtonGroupInputOptionItem {\n value: string | number\n label: string\n disabled?: boolean\n}\n\nexport interface SkyRadioButtonGroupInputProps {\n source: string\n label?: string\n options: SkyRadioButtonGroupInputOptionItem[]\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: string | number\n}\n\nexport const SkyRadioButtonGroupInput = defineComponent<\n SkyRadioButtonGroupInputProps & Partial<RadioGroupProps>\n>({\n name: 'SkyRadioButtonGroupInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n options: Array as PropType<SkyRadioButtonGroupInputOptionItem[]>,\n rules: Object,\n defaultValue: {\n type: [String, Number],\n default: '',\n },\n },\n setup(props, { attrs }) {\n const route = useRoute()\n const formGrid = useFormGrid()\n const { formData, editData } = useForm()!\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const title = computed<string>(() => props.label || props.source)\n\n if (typeof formData[props.source] === 'undefined') {\n formData[props.source] = props.defaultValue!\n }\n\n if (editData.value) {\n formData[props.source] = editData.value[props.source]\n }\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n <ElFormItem\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElRadioGroup\n modelValue={formData[props.source] as SkyRadioButtonGroupInputOptionItem['value']}\n onUpdate:modelValue={(v) =>\n (formData[props.source] = v as SkyRadioButtonGroupInputOptionItem['value'])\n }\n {...attrs}\n >\n {props.options.map((option) =>\n h(\n ElRadio,\n { key: option.value, value: option.value },\n { default: () => option.label },\n ),\n )}\n </ElRadioGroup>\n </ElFormItem>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyRadioButtonGroupInput","defineComponent","name","inheritAttrs","props","source","type","required","label","options","rules","defaultValue","default","attrs","route","useRoute","formGrid","useFormGrid","editData","routeMeta","title","computed","formData","_slot","option","h","ElRadio"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAW4C,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAgB5C,MAAAE,IAAA,gBAAAC,EAAA;AAAA,EAGEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,OAAAA;AAAAA,IACAC,SAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,cAAAA;AAAAA,MACEL,MAAAA,CAAAA,QAAAA,MAAAA;AAAAA,MACAM,SAAAA;AAAAA,IACF;AAAA;;IAEaC,OAAAA;AAAAA,EAAM,GAAA;AACnB,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAA;;MACkBC,UAAAA;AAAAA,aAClBC,IAAAL,EAAA,MAEAM,IAAAC,EAAA,MAAAjB,EAAA,SAAAA,EAAA,MAAA;mFAOEkB,EAAAA,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA,EAAAA,MAAAA;AAGK,UAAAC;;;QACqC,QAAA,CAAA,UAAA,MAAA;AAAA,QAA4B,QAAAnB,EAAA;AAAA,MAAsB,GAAA;AAAA,QAAAQ,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA;;;UAItE,OAAAI,IAAA,cAAAZ,EAAA,MAAA,KAAA;AAAA,QACiC,GAAA;AAAA,UAAAQ,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,YAAA,YAAAU,EAAAlB,EAAA,MAAA;AAAA;UAK4B,GAAAS,CAAA,GAAAhB,EAAA0B,IAAAnB,EAAA,QAAA,IAAA,CAAAoB,MAAAC,EAAAC,GAAA;AAAA;;UAOhC,GAAA;AAAA,YACvCd,SAAAA,MAAAA,EAAAA;AAAAA;;UAEL,CAAA,CAAA;AAAA,QAAA,CAAA,CAAA;AAAA,MAAA,CAAA;AAAA;EAKX;AACF,CAAA;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");const d=require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");const q=require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const f=require("../../setup/index.cjs"),y=require("@vueuse/core"),g=require("vue-router"),v=require("../can-access/index.cjs"),A=r.defineComponent({name:"SkyReferenceArrayField",inheritAttrs:!1,props:{source:{type:String,required:!0},reference:{type:String,required:!0},label:String,row:Object},setup(e,{slots:n,attrs:o}){const c=g.useRoute().meta,t=r.computed(()=>{const u=e.row?.[e.source];return Array.isArray(u)?u:[]}),s=r.computed(()=>e.label||e.source);let i;const{state:a,isLoading:l}=y.useAsyncState(async()=>{if(t.value.length)return i=new AbortController,f.skyConfig.dataProvider?.getMany?.(e.reference,{ids:t.value,signal:i.signal})},void 0,{immediate:!0});return q.useProvideReferenceArrayField({reference:e.reference,listData:a,listLoading:l}),d.useProvideHiddenTitle(!0),()=>r.createVNode(v.SkyCanAccess,{resource:c.resource,action:["list","show"],column:e.source},{default:()=>[r.createVNode("div",r.mergeProps({class:"sky-reference-array-field"},o),[r.createVNode("h4",null,[s.value]),n.default?.()])]})}});exports.SkyReferenceArrayField=A;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/reference-array-field/index.tsx"],"sourcesContent":["import { useProvideHiddenTitle, useProvideReferenceArrayField } from '@/hooks'\nimport type { GetManyResult, Identifier } from '@/provides'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyReferenceArrayFieldProps {\n source: string\n reference: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyReferenceArrayField = defineComponent<SkyReferenceArrayFieldProps>({\n name: 'SkyReferenceArrayField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n reference: {\n type: String,\n required: true,\n },\n label: String,\n row: Object,\n },\n setup(props, { slots, attrs }) {\n const route = useRoute()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const field = computed<Identifier[]>(() => {\n const v = props.row?.[props.source]\n if (Array.isArray(v)) {\n return v as Identifier[]\n }\n return []\n })\n\n const title = computed(() => {\n return props.label || props.source\n })\n\n let controller: AbortController | undefined\n const { state: listData, isLoading: listLoading } = useAsyncState<GetManyResult | undefined>(\n async () => {\n if (field.value.length) {\n controller = new AbortController()\n return skyConfig.dataProvider?.getMany?.(props.reference, {\n ids: field.value,\n signal: controller.signal,\n })\n }\n },\n undefined,\n {\n immediate: true,\n },\n )\n\n useProvideReferenceArrayField({\n reference: props.reference,\n listData,\n listLoading,\n })\n\n // 重写useProvideHiddenTitle(provide 是基于父子组件对象的原型链,中途可以设置一些属性,这样就不会继续向上寻找)\n useProvideHiddenTitle(true)\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n <div class=\"sky-reference-array-field\" {...attrs}>\n <h4>{title.value}</h4>\n {slots.default?.()}\n </div>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyReferenceArrayField","defineComponent","name","inheritAttrs","props","source","type","String","required","reference","label","row","Object","setup","slots","attrs","routeMeta","useRoute","meta","field","computed","v","Array","isArray","title","controller","state","listData","isLoading","listLoading","useAsyncState","value","length","AbortController","skyConfig","dataProvider","getMany","ids","signal","undefined","immediate","useProvideReferenceArrayField","useProvideHiddenTitle","_createVNode","SkyCanAccess","resource","default","_mergeProps"],"mappings":"22BAgBaA,EAAyBC,EAAAA,gBAA6C,CACjFC,KAAM,yBACNC,aAAc,GACdC,MAAO,CACLC,OAAQ,CACNC,KAAMC,OACNC,SAAU,IAEZC,UAAW,CACTH,KAAMC,OACNC,SAAU,IAEZE,MAAOH,OACPI,IAAKC,QAEPC,MAAMT,EAAO,CAAEU,MAAAA,EAAOC,MAAAA,CAAM,EAAG,CAE7B,MAAMC,EADQC,EAAAA,SAAQ,EACEC,KAElBC,EAAQC,EAAAA,SAAuB,IAAM,CACzC,MAAMC,EAAIjB,EAAMO,MAAMP,EAAMC,MAAM,EAClC,OAAIiB,MAAMC,QAAQF,CAAC,EACVA,EAEF,CAAA,CACT,CAAC,EAEKG,EAAQJ,EAAAA,SAAS,IACdhB,EAAMM,OAASN,EAAMC,MAC7B,EAED,IAAIoB,EACJ,KAAM,CAAEC,MAAOC,EAAUC,UAAWC,GAAgBC,EAAAA,cAClD,SAAY,CACV,GAAIX,EAAMY,MAAMC,OACdP,OAAAA,EAAa,IAAIQ,gBACVC,EAAAA,UAAUC,cAAcC,UAAUhC,EAAMK,UAAW,CACxD4B,IAAKlB,EAAMY,MACXO,OAAQb,EAAWa,MACrB,CAAC,CAEL,EACAC,OACA,CACEC,UAAW,EACb,CACF,EAEAC,OAAAA,gCAA8B,CAC5BhC,UAAWL,EAAMK,UACjBkB,SAAAA,EACAE,YAAAA,CACF,CAAC,EAGDa,EAAAA,sBAAsB,EAAI,EAEnB,IAAAC,EAAAA,YAAAC,eAAA,CAAA,SACmB5B,EAAU6B,SAAQ,OAAU,CAAC,OAAQ,MAAM,EAAC,OAAUzC,EAAMC,MAAM,EAAA,CAAAyC,QAAAA,IAAA,CAAAH,oBAAAI,EAAAA,WAAA,CAAA,MAAA,2BAAA,EAC7ChC,CAAK,EAAA,CAAA4B,EAAAA,YAAA,KAAA,KAAA,CACzCnB,EAAMO,KAAK,CAAA,EACfjB,EAAMgC,UAAO,CAAI,CAAA,CAAA,EAAA,CAI1B,CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface SkyReferenceArrayFieldProps {
2
+ source: string;
3
+ reference: string;
4
+ label?: string;
5
+ row?: Record<string, unknown>;
6
+ }
7
+ export declare const SkyReferenceArrayField: import('vue').DefineComponent<SkyReferenceArrayFieldProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyReferenceArrayFieldProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,76 @@
1
+ import { defineComponent as d, computed as n, createVNode as r, mergeProps as f } from "vue";
2
+ import "../../hooks/useUser.mjs";
3
+ import "../../hooks/usePermission.mjs";
4
+ import "../../hooks/useMenu.mjs";
5
+ import "../../hooks/useTab.mjs";
6
+ import "../../hooks/useRouteKeepAlive.mjs";
7
+ import "../../hooks/useSize.mjs";
8
+ import "../../hooks/useLang.mjs";
9
+ import "../../hooks/useTheme.mjs";
10
+ import "../../hooks/useList.mjs";
11
+ import { useProvideHiddenTitle as p } from "../../hooks/useHiddenTitle.mjs";
12
+ import "../../hooks/useForm.mjs";
13
+ import "../../hooks/useShow.mjs";
14
+ import { useProvideReferenceArrayField as y } from "../../hooks/useReferenceArrayField.mjs";
15
+ import "../../hooks/useTreeWithDetails.mjs";
16
+ import "../../hooks/useFormGrid.mjs";
17
+ import "../../hooks/useReferenceArrayInput.mjs";
18
+ import { skyConfig as g } from "../../setup/index.mjs";
19
+ import { useAsyncState as A } from "@vueuse/core";
20
+ import { useRoute as v } from "vue-router";
21
+ import { SkyCanAccess as S } from "../can-access/index.mjs";
22
+ const G = /* @__PURE__ */ d({
23
+ name: "SkyReferenceArrayField",
24
+ inheritAttrs: !1,
25
+ props: {
26
+ source: {
27
+ type: String,
28
+ required: !0
29
+ },
30
+ reference: {
31
+ type: String,
32
+ required: !0
33
+ },
34
+ label: String,
35
+ row: Object
36
+ },
37
+ setup(e, {
38
+ slots: m,
39
+ attrs: a
40
+ }) {
41
+ const u = v().meta, t = n(() => {
42
+ const i = e.row?.[e.source];
43
+ return Array.isArray(i) ? i : [];
44
+ }), s = n(() => e.label || e.source);
45
+ let o;
46
+ const {
47
+ state: c,
48
+ isLoading: l
49
+ } = A(async () => {
50
+ if (t.value.length)
51
+ return o = new AbortController(), g.dataProvider?.getMany?.(e.reference, {
52
+ ids: t.value,
53
+ signal: o.signal
54
+ });
55
+ }, void 0, {
56
+ immediate: !0
57
+ });
58
+ return y({
59
+ reference: e.reference,
60
+ listData: c,
61
+ listLoading: l
62
+ }), p(!0), () => r(S, {
63
+ resource: u.resource,
64
+ action: ["list", "show"],
65
+ column: e.source
66
+ }, {
67
+ default: () => [r("div", f({
68
+ class: "sky-reference-array-field"
69
+ }, a), [r("h4", null, [s.value]), m.default?.()])]
70
+ });
71
+ }
72
+ });
73
+ export {
74
+ G as SkyReferenceArrayField
75
+ };
76
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/reference-array-field/index.tsx"],"sourcesContent":["import { useProvideHiddenTitle, useProvideReferenceArrayField } from '@/hooks'\nimport type { GetManyResult, Identifier } from '@/provides'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyReferenceArrayFieldProps {\n source: string\n reference: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyReferenceArrayField = defineComponent<SkyReferenceArrayFieldProps>({\n name: 'SkyReferenceArrayField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n reference: {\n type: String,\n required: true,\n },\n label: String,\n row: Object,\n },\n setup(props, { slots, attrs }) {\n const route = useRoute()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const field = computed<Identifier[]>(() => {\n const v = props.row?.[props.source]\n if (Array.isArray(v)) {\n return v as Identifier[]\n }\n return []\n })\n\n const title = computed(() => {\n return props.label || props.source\n })\n\n let controller: AbortController | undefined\n const { state: listData, isLoading: listLoading } = useAsyncState<GetManyResult | undefined>(\n async () => {\n if (field.value.length) {\n controller = new AbortController()\n return skyConfig.dataProvider?.getMany?.(props.reference, {\n ids: field.value,\n signal: controller.signal,\n })\n }\n },\n undefined,\n {\n immediate: true,\n },\n )\n\n useProvideReferenceArrayField({\n reference: props.reference,\n listData,\n listLoading,\n })\n\n // 重写useProvideHiddenTitle(provide 是基于父子组件对象的原型链,中途可以设置一些属性,这样就不会继续向上寻找)\n useProvideHiddenTitle(true)\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n <div class=\"sky-reference-array-field\" {...attrs}>\n <h4>{title.value}</h4>\n {slots.default?.()}\n </div>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyReferenceArrayField","defineComponent","name","inheritAttrs","props","source","type","String","required","reference","label","row","Object","setup","slots","attrs","routeMeta","useRoute","meta","field","computed","v","Array","isArray","title","controller","state","listData","isLoading","listLoading","useAsyncState","value","length","AbortController","skyConfig","dataProvider","getMany","ids","signal","undefined","immediate","useProvideReferenceArrayField","useProvideHiddenTitle","_createVNode","SkyCanAccess","resource","default","_mergeProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgBO,MAAMA,IAAyBC,gBAAAA,EAA6C;AAAA,EACjFC,MAAM;AAAA,EACNC,cAAc;AAAA,EACdC,OAAO;AAAA,IACLC,QAAQ;AAAA,MACNC,MAAMC;AAAAA,MACNC,UAAU;AAAA;IAEZC,WAAW;AAAA,MACTH,MAAMC;AAAAA,MACNC,UAAU;AAAA;IAEZE,OAAOH;AAAAA,IACPI,KAAKC;AAAAA;EAEPC,MAAMT,GAAO;AAAA,IAAEU,OAAAA;AAAAA,IAAOC,OAAAA;AAAAA,EAAM,GAAG;AAE7B,UAAMC,IADQC,EAAQ,EACEC,MAElBC,IAAQC,EAAuB,MAAM;AACzC,YAAMC,IAAIjB,EAAMO,MAAMP,EAAMC,MAAM;AAClC,aAAIiB,MAAMC,QAAQF,CAAC,IACVA,IAEF,CAAA;AAAA,IACT,CAAC,GAEKG,IAAQJ,EAAS,MACdhB,EAAMM,SAASN,EAAMC,MAC7B;AAED,QAAIoB;AACJ,UAAM;AAAA,MAAEC,OAAOC;AAAAA,MAAUC,WAAWC;AAAAA,QAAgBC,EAClD,YAAY;AACV,UAAIX,EAAMY,MAAMC;AACdP,eAAAA,IAAa,IAAIQ,gBAAe,GACzBC,EAAUC,cAAcC,UAAUhC,EAAMK,WAAW;AAAA,UACxD4B,KAAKlB,EAAMY;AAAAA,UACXO,QAAQb,EAAWa;AAAAA,QACrB,CAAC;AAAA,IAEL,GACAC,QACA;AAAA,MACEC,WAAW;AAAA,IACb,CACF;AAEAC,WAAAA,EAA8B;AAAA,MAC5BhC,WAAWL,EAAMK;AAAAA,MACjBkB,UAAAA;AAAAA,MACAE,aAAAA;AAAAA,IACF,CAAC,GAGDa,EAAsB,EAAI,GAEnB,MAAAC,EAAAC,GAAA;AAAA,MAAA,UACmB5B,EAAU6B;AAAAA,MAAQ,QAAU,CAAC,QAAQ,MAAM;AAAA,MAAC,QAAUzC,EAAMC;AAAAA,IAAM,GAAA;AAAA,MAAAyC,SAAAA,MAAA,CAAAH,SAAAI,EAAA;AAAA,QAAA,OAAA;AAAA,MAAA,GAC7ChC,CAAK,GAAA,CAAA4B,EAAA,MAAA,MAAA,CACzCnB,EAAMO,KAAK,CAAA,GACfjB,EAAMgC,UAAO,CAAI,CAAA,CAAA;AAAA,KAAA;AAAA,EAI1B;AACF,CAAC;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue"),a=require("@vueuse/core"),q=require("vue-router"),d=require("../can-access/index.cjs"),f=require("../../setup/index.cjs");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");const l=require("../../hooks/useReferenceArrayInput.cjs"),y=u.defineComponent({name:"SkyReferenceArrayInput",props:{reference:{type:String,required:!0},size:{type:Number,default:30},source:{type:String,required:!0}},setup(e,{slots:n}){const i=q.useRoute().meta;let t;const{state:o,isLoading:c,execute:s}=a.useAsyncState(async r=>(t=new AbortController,f.skyConfig.dataProvider?.getList?.(e.reference,{pagination:{page:1,perPage:e.size},filter:r,signal:t.signal})),void 0,{immediate:!1});return l.useProvideReferenceArrayInput({reference:e.reference,getList:r=>s(0,r),listData:o,listLoading:c}),()=>u.createVNode(d.SkyCanAccess,{resource:i.resource,action:["create","edit"],column:e.source},{default:()=>[n.default?.()]})}});exports.SkyReferenceArrayInput=y;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/reference-array-input/index.tsx"],"sourcesContent":["import type { GetListResult } from '@/provides'\nimport { useAsyncState } from '@vueuse/core'\nimport { defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { skyConfig } from '@/setup'\nimport { useProvideReferenceArrayInput } from '@/hooks'\n\nexport interface SkyReferenceArrayInputProps {\n source: string\n reference: string\n size?: number\n}\n\nexport const SkyReferenceArrayInput = defineComponent<SkyReferenceArrayInputProps>({\n name: 'SkyReferenceArrayInput',\n props: {\n reference: {\n type: String,\n required: true,\n },\n size: {\n type: Number,\n default: 30,\n },\n source: {\n type: String,\n required: true,\n },\n },\n setup(props, { slots }) {\n const route = useRoute()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n let controller: AbortController | undefined\n\n const {\n state: listData,\n isLoading: listLoading,\n execute,\n } = useAsyncState<GetListResult | undefined, [filter?: Record<string, unknown>]>(\n async (filter) => {\n controller = new AbortController()\n return skyConfig.dataProvider?.getList?.(props.reference, {\n pagination: { page: 1, perPage: props.size! },\n filter,\n signal: controller.signal,\n })\n },\n undefined,\n {\n immediate: false,\n },\n )\n\n useProvideReferenceArrayInput({\n reference: props.reference,\n getList: (filter?: Record<string, unknown>) => execute(0, filter),\n listData,\n listLoading,\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n {slots.default?.()}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyReferenceArrayInput","defineComponent","name","props","reference","type","String","required","size","Number","default","source","setup","slots","routeMeta","useRoute","meta","controller","state","listData","isLoading","listLoading","execute","useAsyncState","filter","AbortController","skyConfig","dataProvider","getList","pagination","page","perPage","signal","undefined","immediate","useProvideReferenceArrayInput","_createVNode","SkyCanAccess","resource"],"mappings":"61BAeaA,EAAyBC,EAAAA,gBAA6C,CACjFC,KAAM,yBACNC,MAAO,CACLC,UAAW,CACTC,KAAMC,OACNC,SAAU,IAEZC,KAAM,CACJH,KAAMI,OACNC,QAAS,IAEXC,OAAQ,CACNN,KAAMC,OACNC,SAAU,EACZ,GAEFK,MAAMT,EAAO,CAAEU,MAAAA,CAAM,EAAG,CAEtB,MAAMC,EADQC,EAAAA,SAAQ,EACEC,KAExB,IAAIC,EAEJ,KAAM,CACJC,MAAOC,EACPC,UAAWC,EACXC,QAAAA,CACF,EAAIC,EAAAA,cACF,MAAOC,IACLP,EAAa,IAAIQ,gBACVC,EAAAA,UAAUC,cAAcC,UAAUzB,EAAMC,UAAW,CACxDyB,WAAY,CAAEC,KAAM,EAAGC,QAAS5B,EAAMK,MACtCgB,OAAAA,EACAQ,OAAQf,EAAWe,MACrB,CAAC,GAEHC,OACA,CACEC,UAAW,EACb,CACF,EAEAC,OAAAA,gCAA8B,CAC5B/B,UAAWD,EAAMC,UACjBwB,QAAUJ,GAAqCF,EAAQ,EAAGE,CAAM,EAChEL,SAAAA,EACAE,YAAAA,CACF,CAAC,EAEM,IAAAe,EAAAA,YAAAC,eAAA,CAAA,SACmBvB,EAAUwB,SAAQ,OAAU,CAAC,SAAU,MAAM,EAAC,OAAUnC,EAAMQ,MAAM,EAAA,CAAAD,QAAAA,IAAA,CACzFG,EAAMH,UAAO,CAAI,EAAA,CAGxB,CACF,CAAC"}