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
package/dist/index.mjs ADDED
@@ -0,0 +1,114 @@
1
+ import { getCreateRouteName as o, getEditRouteName as t, getListRouteName as m, getRandomRouteName as p, getShowRouteName as f, skyAdmin as i, skyConfig as u } from "./setup/index.mjs";
2
+ import { useUser as s } from "./hooks/useUser.mjs";
3
+ import { usePermission as y } from "./hooks/usePermission.mjs";
4
+ import { useMenu as d } from "./hooks/useMenu.mjs";
5
+ import { useTab as k } from "./hooks/useTab.mjs";
6
+ import { useRouteKeepAlive as R } from "./hooks/useRouteKeepAlive.mjs";
7
+ import { SizeConfig as g, useSize as c } from "./hooks/useSize.mjs";
8
+ import { useLang as A } from "./hooks/useLang.mjs";
9
+ import { ThemeConfig as I, useTheme as v } from "./hooks/useTheme.mjs";
10
+ import { useList as P, useProvideList as C } from "./hooks/useList.mjs";
11
+ import { useHiddenTitle as D, useProvideHiddenTitle as N } from "./hooks/useHiddenTitle.mjs";
12
+ import { useForm as B, useProvideForm as E } from "./hooks/useForm.mjs";
13
+ import { useProvideShow as W, useShow as z } from "./hooks/useShow.mjs";
14
+ import { useProvideReferenceArrayField as M, useReferenceArrayField as U } from "./hooks/useReferenceArrayField.mjs";
15
+ import { useProvideTreeWithDetails as j, useTreeWithDetails as q } from "./hooks/useTreeWithDetails.mjs";
16
+ import { useFormGrid as O, useProvideFormGrid as Q } from "./hooks/useFormGrid.mjs";
17
+ import { useProvideReferenceArrayInput as X, useReferenceArrayInput as Y } from "./hooks/useReferenceArrayInput.mjs";
18
+ import { useUpload as _ } from "./hooks/useUpload.mjs";
19
+ import { addLayoutRoutes as ee, checkAuth as re, getRoutes as oe, guard as te } from "./router/index.mjs";
20
+ import { SkyCanAccess as pe } from "./components/can-access/index.mjs";
21
+ import { SkyList as ie } from "./components/list/index.mjs";
22
+ import { SkyFilter as xe } from "./components/filter/index.mjs";
23
+ import { SkyDataTable as Se } from "./components/data-table/index.mjs";
24
+ import { SkyDataTableCol as ae } from "./components/data-table-col/index.mjs";
25
+ import { SkyEditButton as ne } from "./components/edit-button/index.mjs";
26
+ import { SkyShowButton as le } from "./components/show-button/index.mjs";
27
+ import { SkyShow as Fe } from "./components/show/index.mjs";
28
+ import { SkyShowSimpleLayout as ce } from "./components/show-simple-layout/index.mjs";
29
+ import { SkyTextField as Ae } from "./components/text-field/index.mjs";
30
+ import { SkyImageField as Ie } from "./components/image-field/index.mjs";
31
+ import { SkyReferenceImageField as Le } from "./components/reference-image-field/index.mjs";
32
+ import { SkyReferenceArrayField as Ce } from "./components/reference-array-field/index.mjs";
33
+ import { SkySingleFieldList as De } from "./components/single-field-list/index.mjs";
34
+ import { SkyLinkField as be } from "./components/link-field/index.mjs";
35
+ import { SkyReferenceField as Ee } from "./components/reference-field/index.mjs";
36
+ import { SkyCreate as We } from "./components/create/index.mjs";
37
+ import { SkySimpleForm as He } from "./components/simple-form/index.mjs";
38
+ import { SkyTextInput as Ue } from "./components/text-input/index.mjs";
39
+ import { SkyRadioButtonGroupInput as je } from "./components/radio-button-group-input/index.mjs";
40
+ import { SkyReferenceArrayInput as Je } from "./components/reference-array-input/index.mjs";
41
+ import { SkyAutoCompleteArrayInput as Qe } from "./components/auto-complete-array-input/index.mjs";
42
+ import { SkyAvatarInput as Xe } from "./components/avatar-input/index.mjs";
43
+ import { SkyFileMultipleInput as Ze } from "./components/file-multiple-input/index.mjs";
44
+ import { SkyTreeSelectInput as $e } from "./components/tree-select-input/index.mjs";
45
+ import { SkyTreeWithDetails as rr } from "./components/tree-with-details/index.mjs";
46
+ import { SkyEdit as tr } from "./components/edit/index.mjs";
47
+ export {
48
+ g as SizeConfig,
49
+ Qe as SkyAutoCompleteArrayInput,
50
+ Xe as SkyAvatarInput,
51
+ pe as SkyCanAccess,
52
+ We as SkyCreate,
53
+ Se as SkyDataTable,
54
+ ae as SkyDataTableCol,
55
+ tr as SkyEdit,
56
+ ne as SkyEditButton,
57
+ Ze as SkyFileMultipleInput,
58
+ xe as SkyFilter,
59
+ Ie as SkyImageField,
60
+ be as SkyLinkField,
61
+ ie as SkyList,
62
+ je as SkyRadioButtonGroupInput,
63
+ Ce as SkyReferenceArrayField,
64
+ Je as SkyReferenceArrayInput,
65
+ Ee as SkyReferenceField,
66
+ Le as SkyReferenceImageField,
67
+ Fe as SkyShow,
68
+ le as SkyShowButton,
69
+ ce as SkyShowSimpleLayout,
70
+ He as SkySimpleForm,
71
+ De as SkySingleFieldList,
72
+ Ae as SkyTextField,
73
+ Ue as SkyTextInput,
74
+ $e as SkyTreeSelectInput,
75
+ rr as SkyTreeWithDetails,
76
+ I as ThemeConfig,
77
+ ee as addLayoutRoutes,
78
+ re as checkAuth,
79
+ o as getCreateRouteName,
80
+ t as getEditRouteName,
81
+ m as getListRouteName,
82
+ p as getRandomRouteName,
83
+ oe as getRoutes,
84
+ f as getShowRouteName,
85
+ te as guard,
86
+ i as skyAdmin,
87
+ u as skyConfig,
88
+ B as useForm,
89
+ O as useFormGrid,
90
+ D as useHiddenTitle,
91
+ A as useLang,
92
+ P as useList,
93
+ d as useMenu,
94
+ y as usePermission,
95
+ E as useProvideForm,
96
+ Q as useProvideFormGrid,
97
+ N as useProvideHiddenTitle,
98
+ C as useProvideList,
99
+ M as useProvideReferenceArrayField,
100
+ X as useProvideReferenceArrayInput,
101
+ W as useProvideShow,
102
+ j as useProvideTreeWithDetails,
103
+ U as useReferenceArrayField,
104
+ Y as useReferenceArrayInput,
105
+ R as useRouteKeepAlive,
106
+ z as useShow,
107
+ c as useSize,
108
+ k as useTab,
109
+ v as useTheme,
110
+ q as useTreeWithDetails,
111
+ _ as useUpload,
112
+ s as useUser
113
+ };
114
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("element-plus/es/components/dropdown/style/css");require("element-plus/es/components/dropdown-item/style/css");require("element-plus/es/components/dropdown-menu/style/css");require("element-plus/es/components/icon/style/css");require("element-plus/es/components/menu/style/css");require("element-plus/es/components/menu-item/style/css");require("element-plus/es/components/scrollbar/style/css");require("element-plus/es/components/sub-menu/style/css");require("element-plus/es/components/tab-pane/style/css");require("element-plus/es/components/tabs/style/css");require("element-plus/es/components/text/style/css");const e=require("vue"),h=require("../icons/EpFullScreen.cjs"),z=require("../icons/EpRefresh.cjs"),M=require("../icons/FluentFullScreenMinimize20Regular.cjs"),T=require("../icons/NimbusTextSize.cjs"),D=require("../icons/SkyMenuCollapse.cjs"),I=require("../icons/SlTrans.cjs"),R=require("../hooks/useUser.cjs");require("../hooks/usePermission.cjs");const w=require("../hooks/useMenu.cjs"),L=require("../hooks/useTab.cjs"),F=require("../hooks/useRouteKeepAlive.cjs"),f=require("../hooks/useSize.cjs"),P=require("../hooks/useLang.cjs"),p=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");require("../hooks/useReferenceArrayInput.cjs");const C=require("@vueuse/core"),o=require("element-plus"),k=require("vue-i18n"),v=require("vue-router"),V=require("../setup/index.cjs");function N(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const r=e.defineComponent({name:"SkyLayoutPage",setup(){const t=v.useRouter(),a=v.useRoute(),{collapse:u,menus:l}=w.useMenu(),{removeTab:s,lastTab:n,tabs:c}=L.useTab(),{includeList:m,addKeepAlive:y,removeKeepAlive:_}=F.useRouteKeepAlive(),q=g=>{const d=c.value.find(i=>i.routeName===g);d&&t.push({name:d.routeName,params:d.routeParams})},b=g=>{const d=c.value.find(i=>i.routeName===g);d&&(d?.routeKeepAliveName&&_(d.routeKeepAliveName),s(d.routeName),d.routeName===a.name&&n.value&&t.replace({name:n.value.routeName,params:n.value.routeParams}))};e.watchEffect(()=>{a.meta.keepAliveName&&y(String(a.meta.keepAliveName))});const S=e.inject(V.skyConfig.getIconFnName);return()=>{let g,d;return e.createVNode("div",{class:"sky-layout"},[e.createVNode("header",{class:"sky-layout__header"},[e.createVNode(r.Logo,null,null),e.createVNode("div",{class:"sky-layout__header-opt"},[e.createVNode(r.ConfigeSize,null,null),e.createVNode(r.ConfigLang,null,null),e.createVNode(r.ConfigTheme,null,null),e.createVNode(r.Fullscreen,null,null),e.createVNode(r.Refresh,null,null),e.createVNode(r.User,null,null)])]),e.createVNode("section",{class:"sky-layout__container"},[e.createVNode("aside",{class:"sky-layout__menu"},[e.createVNode(o.ElScrollbar,null,{default:()=>[e.createVNode(o.ElMenu,{collapse:u.value,"default-active":a.name,"unique-opened":!0,"collapse-transition":!0},N(g=l.value.map(i=>e.createVNode(r.SubMenu,{key:i.routeName,item:i},null)))?g:{default:()=>[g]})]}),e.createVNode("div",{class:"sky-layout__menu-collapse",onClick:()=>u.value=!u.value},[e.createVNode(D.SkyMenuCollapse,null,null)])]),e.createVNode("section",{class:"sky-layout__main"},[e.createVNode("div",{class:"sky-layout__tab"},[e.createVNode(o.ElTabs,{type:"card","model-value":a.name,onTabChange:q,onTabRemove:b},N(d=c.value.map(i=>e.createVNode(o.ElTabPane,{key:i.routeName,name:i.routeName,closable:i.closable},{label:()=>e.createVNode("div",{class:"sky-layout__tab-pane"},[i.icon&&S(i.icon),e.createVNode("span",null,[i.title])])})))?d:{default:()=>[d]})]),e.createVNode("div",{class:"sky-layout__body"},[e.createVNode(o.ElScrollbar,null,{default:()=>[e.createVNode(v.RouterView,null,{default:({Component:i,route:E})=>e.createVNode(e.Transition,{"enter-active-class":"sky-layout-fade-enter-active","enter-from-class":"sky-layout-fade-enter-from","enter-to-class":"sky-layout-fade-enter-to","leave-active-class":"sky-layout-fade-leave-active","leave-from-class":"sky-layout-fade-leave-from","leave-to-class":"sky-layout-fade-leave-to",appear:!0,mode:"out-in"},{default:()=>[e.createVNode(e.KeepAlive,{include:m.value},[e.h(i,{key:E.fullPath})])]})})]})])])])])}}});r.Logo=e.defineComponent({name:"DefaultLayoutPageLogo",setup(){return()=>V.skyConfig.logoImg&&e.createVNode("div",{class:"sky-layout__logo",style:{backgroundImage:`url(${V.skyConfig.logoImg})`}},null)}});r.ConfigeSize=e.defineComponent({name:"DefaultLayoutPageConfigeSize",setup(){const{t}=k.useI18n(),{enabled:a,size:u,select:l}=f.useSize();return()=>a&&e.createVNode("div",{class:"sky-layout__config"},[e.createVNode(o.ElDropdown,{trigger:"click",onCommand:l},{default:()=>e.createVNode(o.ElIcon,{size:f.SizeConfig.iconMap[u.value]},{default:()=>[e.createVNode(T.NimbusTextSize,null,null)]}),dropdown:()=>{let s;return e.createVNode(o.ElDropdownMenu,null,N(s=Object.values(f.SizeConfig.options).map(n=>{let c;return e.createVNode(o.ElDropdownItem,{key:n.value,command:n.value,disabled:u.value===n.value},N(c=t(n.label))?c:{default:()=>[c]})}))?s:{default:()=>[s]})}})])}});r.ConfigLang=e.defineComponent({name:"DefaultLayoutPageConfigLang",setup(){const{messages:t,t:a,locale:u}=k.useI18n(),{lang:l}=P.useLang(),{size:s}=f.useSize(),n=e.computed(()=>Object.keys(t.value).map(m=>({value:m,label:a(`lang.${m}`)}))),c=m=>{l.value=m,u.value=m};return()=>n.value.length>1?e.createVNode("div",{class:"sky-layout__config"},[e.createVNode(o.ElDropdown,{trigger:"click",onCommand:c},{default:()=>e.createVNode(o.ElIcon,{size:f.SizeConfig.iconMap[s.value]},{default:()=>[e.createVNode(I.SlTrans,null,null)]}),dropdown:()=>{let m;return e.createVNode(o.ElDropdownMenu,null,N(m=n.value.map(y=>e.createVNode(o.ElDropdownItem,{key:y.value,command:y.value,disabled:l.value===y.value},{default:()=>[y.label]})))?m:{default:()=>[m]})}})]):null}});r.ConfigTheme=e.defineComponent({name:"DefaultLayoutPageConfigTheme",setup(){const{select:t,theme:a}=p.useTheme(),{size:u}=f.useSize();return()=>V.skyConfig.themeEnabled&&e.createVNode("div",{class:"sky-layout__config"},[e.createVNode(o.ElDropdown,{trigger:"click",onCommand:t},{default:()=>e.createVNode(o.ElIcon,{size:f.SizeConfig.iconMap[u.value]},{default:()=>e.h(p.ThemeConfig[a.value].icon)}),dropdown:()=>{let l;return e.createVNode(o.ElDropdownMenu,null,N(l=Object.values(p.ThemeConfig).map(s=>e.createVNode(o.ElDropdownItem,{key:s.value,command:s.value,disabled:a.value===s.value},{default:()=>[e.createVNode(o.ElIcon,null,{default:()=>e.h(s.icon)})]})))?l:{default:()=>[l]})}})])}});r.Fullscreen=e.defineComponent({name:"DefaultLayoutPageFullscreen",setup(){const{isFullscreen:t,toggle:a}=C.useFullscreen();C.useEventListener("keydown",l=>{l.key==="F11"&&(l.preventDefault(),a())});const{size:u}=f.useSize();return()=>e.createVNode("div",{class:"sky-layout__config",onClick:a},[e.createVNode(o.ElIcon,{size:f.SizeConfig.iconMap[u.value]},{default:()=>[t.value?e.createVNode(M.FluentFullScreenMinimize20Regular,null,null):e.createVNode(h.EpFullScreen,null,null)]})])}});r.Refresh=e.defineComponent({name:"DefaultLayoutPageRefresh",setup(){const{size:t}=f.useSize(),a=v.useRouter(),u=v.useRoute(),l=()=>{a.replace({name:u.name,query:{t:Date.now()}})};return()=>e.createVNode("div",{class:"sky-layout__config",onClick:l},[e.createVNode(o.ElIcon,{size:f.SizeConfig.iconMap[t.value]},{default:()=>[e.createVNode(z.EpRefresh,null,null)]})])}});r.User=e.defineComponent({name:"DefaultLayoutPageUser",setup(){const t=v.useRouter(),{t:a}=k.useI18n(),{username:u,logout:l}=R.useUser(),s=n=>{n==="edit"||n==="logout"&&(l(),t.replace({name:V.skyConfig.loginRouteName}))};return()=>u.value&&e.createVNode("div",{class:"sky-layout__config"},[e.createVNode(o.ElDropdown,{trigger:"click",onCommand:s},{default:()=>e.createVNode(o.ElText,null,{default:()=>[u.value]}),dropdown:()=>e.createVNode(o.ElDropdownMenu,null,{default:()=>{let n,c;return e.createVNode(e.Fragment,null,[e.createVNode(o.ElDropdownItem,{command:"edit"},N(n=a("user.edit"))?n:{default:()=>[n]}),e.createVNode(o.ElDropdownItem,{command:"logout"},N(c=a("user.logout"))?c:{default:()=>[c]})])}})})])}});r.SubMenu=e.defineComponent({name:"DefaultLayoutPageSubMenu",props:{item:{type:Object,required:!0}},setup(t){const a=v.useRouter(),u=()=>{a.hasRoute(t.item.routeName)&&a.push({name:t.item.routeName,params:t.item.routeParams})},l=e.inject(V.skyConfig.getIconFnName);return()=>e.createVNode(e.Fragment,null,[t.item.children?.length?e.createVNode(o.ElSubMenu,{index:t.item.routeName},{default:()=>t.item.children.map(s=>e.createVNode(r.SubMenu,{key:s.routeName,item:s},null)),title:()=>e.createVNode(e.Fragment,null,[t.item.icon&&l(t.item.icon),e.createVNode("span",null,[t.item.title])])}):e.createVNode(o.ElMenuItem,{index:t.item.routeName,onClick:u},{default:()=>t.item.icon&&l(t.item.icon),title:()=>t.item.title})])}});exports.default=r;
2
+ //# sourceMappingURL=default.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.cjs","sources":["../../src/layouts/default.tsx"],"sourcesContent":["import { EpFullScreen } from '@/icons/EpFullScreen'\r\nimport { EpRefresh } from '@/icons/EpRefresh'\r\nimport { FluentFullScreenMinimize20Regular } from '@/icons/FluentFullScreenMinimize20Regular'\r\nimport { NimbusTextSize } from '@/icons/NimbusTextSize'\r\nimport { SkyMenuCollapse } from '@/icons/SkyMenuCollapse'\r\nimport { SlTrans } from '@/icons/SlTrans'\r\nimport {\r\n SizeConfig,\r\n ThemeConfig,\r\n useLang,\r\n useMenu,\r\n useRouteKeepAlive,\r\n useSize,\r\n useTab,\r\n useTheme,\r\n useUser,\r\n} from '@/hooks'\r\nimport { useEventListener, useFullscreen } from '@vueuse/core'\r\nimport {\r\n ElDropdown,\r\n ElDropdownItem,\r\n ElDropdownMenu,\r\n ElIcon,\r\n ElMenu,\r\n ElMenuItem,\r\n ElScrollbar,\r\n ElSubMenu,\r\n ElTabPane,\r\n ElTabs,\r\n ElText,\r\n type TabPaneName,\r\n} from 'element-plus'\r\nimport {\r\n computed,\r\n defineComponent,\r\n h,\r\n inject,\r\n KeepAlive,\r\n Transition,\r\n watchEffect,\r\n type PropType,\r\n type VNode,\r\n} from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { RouterView, useRoute, useRouter, type RouteLocationNormalizedLoaded } from 'vue-router'\r\nimport { skyConfig, type GetIconFn, type SkyMenu } from '@/setup'\r\n\r\nexport interface RouterViewSlot {\r\n Component: VNode\r\n route: RouteLocationNormalizedLoaded\r\n}\r\n\r\nconst SkyLayoutPage = defineComponent({\r\n name: 'SkyLayoutPage',\r\n setup() {\r\n const router = useRouter()\r\n const route = useRoute()\r\n const { collapse, menus } = useMenu()\r\n const { removeTab, lastTab, tabs } = useTab()\r\n const { includeList, addKeepAlive, removeKeepAlive } = useRouteKeepAlive()\r\n\r\n const onTabChange = (routeName: TabPaneName) => {\r\n const tab = tabs.value.find((tab) => tab.routeName === routeName)\r\n if (tab) {\r\n router.push({ name: tab.routeName, params: tab.routeParams })\r\n }\r\n }\r\n\r\n const onTabRemove = (routeName: TabPaneName) => {\r\n const tab = tabs.value.find((tab) => tab.routeName === routeName)\r\n if (tab) {\r\n // 如果当前 tab 是存在,那么尝试删除它的 keepAlive 缓存\r\n if (tab?.routeKeepAliveName) {\r\n removeKeepAlive(tab.routeKeepAliveName)\r\n }\r\n removeTab(tab.routeName)\r\n // 如果删除是当前页面并且存在lastTab,就跳转到lastTab\r\n if (tab.routeName === route.name && lastTab.value) {\r\n router.replace({ name: lastTab.value.routeName, params: lastTab.value.routeParams })\r\n }\r\n }\r\n }\r\n\r\n watchEffect(() => {\r\n if (route.meta.keepAliveName) {\r\n addKeepAlive(String(route.meta.keepAliveName))\r\n }\r\n })\r\n\r\n const getIcon = inject<GetIconFn>(skyConfig.getIconFnName)!\r\n\r\n return () => (\r\n <div class=\"sky-layout\">\r\n <header class=\"sky-layout__header\">\r\n <SkyLayoutPage.Logo />\r\n\r\n <div class=\"sky-layout__header-opt\">\r\n <SkyLayoutPage.ConfigeSize />\r\n <SkyLayoutPage.ConfigLang />\r\n <SkyLayoutPage.ConfigTheme />\r\n <SkyLayoutPage.Fullscreen />\r\n <SkyLayoutPage.Refresh />\r\n <SkyLayoutPage.User />\r\n </div>\r\n </header>\r\n <section class=\"sky-layout__container\">\r\n <aside class=\"sky-layout__menu\">\r\n <ElScrollbar>\r\n <ElMenu\r\n collapse={collapse.value}\r\n default-active={route.name}\r\n unique-opened\r\n collapse-transition\r\n >\r\n {menus.value.map((menu) => (\r\n <SkyLayoutPage.SubMenu key={menu.routeName} item={menu} />\r\n ))}\r\n </ElMenu>\r\n </ElScrollbar>\r\n <div\r\n class=\"sky-layout__menu-collapse\"\r\n onClick={() => (collapse.value = !collapse.value)}\r\n >\r\n <SkyMenuCollapse />\r\n </div>\r\n </aside>\r\n <section class=\"sky-layout__main\">\r\n <div class=\"sky-layout__tab\">\r\n <ElTabs\r\n type=\"card\"\r\n model-value={route.name}\r\n onTabChange={onTabChange}\r\n onTabRemove={onTabRemove}\r\n >\r\n {tabs.value.map((tab) => (\r\n <ElTabPane key={tab.routeName} name={tab.routeName} closable={tab.closable}>\r\n {{\r\n label: () => (\r\n <div class=\"sky-layout__tab-pane\">\r\n {tab.icon && getIcon(tab.icon)}\r\n <span>{tab.title}</span>\r\n </div>\r\n ),\r\n }}\r\n </ElTabPane>\r\n ))}\r\n </ElTabs>\r\n </div>\r\n\r\n <div class=\"sky-layout__body\">\r\n <ElScrollbar>\r\n <RouterView>\r\n {{\r\n default: ({ Component, route }: RouterViewSlot) => (\r\n <Transition\r\n enter-active-class=\"sky-layout-fade-enter-active\"\r\n enter-from-class=\"sky-layout-fade-enter-from\"\r\n enter-to-class=\"sky-layout-fade-enter-to\"\r\n leave-active-class=\"sky-layout-fade-leave-active\"\r\n leave-from-class=\"sky-layout-fade-leave-from\"\r\n leave-to-class=\"sky-layout-fade-leave-to\"\r\n appear\r\n mode=\"out-in\"\r\n >\r\n <KeepAlive include={includeList.value}>\r\n {/* UserCreate ---> /user/create 会缓存一次 */}\r\n {/* UserEdit ---> /user/edit/1、/user/edit/2 ... 会缓存n次,直到关闭当前 tab,从include移除当前component name会等待GC全部释放所有缓存的组件实例;缓存N次不会出现数据错乱吗?默认情况会,但是加上 { key: route.fullPath } 就可以区分相同组件不同路由地址实例(●'◡'●) */}\r\n {h(Component, { key: route.fullPath })}\r\n </KeepAlive>\r\n </Transition>\r\n ),\r\n }}\r\n </RouterView>\r\n </ElScrollbar>\r\n </div>\r\n </section>\r\n </section>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.Logo = defineComponent({\r\n name: 'DefaultLayoutPageLogo',\r\n setup() {\r\n return () =>\r\n skyConfig.logoImg && (\r\n <div\r\n class=\"sky-layout__logo\"\r\n style={{ backgroundImage: `url(${skyConfig.logoImg})` }}\r\n ></div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.ConfigeSize = defineComponent({\r\n name: 'DefaultLayoutPageConfigeSize',\r\n setup() {\r\n const { t } = useI18n()\r\n const { enabled, size, select } = useSize()\r\n return () =>\r\n enabled && (\r\n <div class=\"sky-layout__config\">\r\n <ElDropdown trigger=\"click\" onCommand={select}>\r\n {{\r\n default: () => (\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n <NimbusTextSize />\r\n </ElIcon>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n {Object.values(SizeConfig.options).map((c) => (\r\n <ElDropdownItem\r\n key={c.value}\r\n command={c.value}\r\n disabled={size.value === c.value}\r\n >\r\n {t(c.label)}\r\n </ElDropdownItem>\r\n ))}\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n </ElDropdown>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.ConfigLang = defineComponent({\r\n name: 'DefaultLayoutPageConfigLang',\r\n setup() {\r\n const { messages, t, locale } = useI18n()\r\n const { lang } = useLang()\r\n const { size } = useSize()\r\n const langList = computed(() =>\r\n Object.keys(messages.value).map((key) => ({\r\n value: key,\r\n label: t(`lang.${key}`),\r\n })),\r\n )\r\n const onCommand = (v: string) => {\r\n lang.value = v\r\n locale.value = v\r\n }\r\n return () =>\r\n langList.value.length > 1 ? (\r\n <div class=\"sky-layout__config\">\r\n <ElDropdown trigger=\"click\" onCommand={onCommand}>\r\n {{\r\n default: () => (\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n <SlTrans />\r\n </ElIcon>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n {langList.value.map((c) => (\r\n <ElDropdownItem\r\n key={c.value}\r\n command={c.value}\r\n disabled={lang.value === c.value}\r\n >\r\n {c.label}\r\n </ElDropdownItem>\r\n ))}\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n </ElDropdown>\r\n </div>\r\n ) : null\r\n },\r\n})\r\n\r\nSkyLayoutPage.ConfigTheme = defineComponent({\r\n name: 'DefaultLayoutPageConfigTheme',\r\n setup() {\r\n const { select, theme } = useTheme()\r\n const { size } = useSize()\r\n return () =>\r\n skyConfig.themeEnabled && (\r\n <div class=\"sky-layout__config\">\r\n <ElDropdown trigger=\"click\" onCommand={select}>\r\n {{\r\n default: () => (\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n {() => h(ThemeConfig[theme.value].icon)}\r\n </ElIcon>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n {Object.values(ThemeConfig).map((c) => (\r\n <ElDropdownItem\r\n key={c.value}\r\n command={c.value}\r\n disabled={theme.value === c.value}\r\n >\r\n <ElIcon>{() => h(c.icon)}</ElIcon>\r\n </ElDropdownItem>\r\n ))}\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n </ElDropdown>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.Fullscreen = defineComponent({\r\n name: 'DefaultLayoutPageFullscreen',\r\n setup() {\r\n // 页面全屏\r\n const { isFullscreen, toggle } = useFullscreen()\r\n // F11默认全屏效果不能满足这里的需求,禁止默认全屏行为,采用我们项目的全屏逻辑\r\n useEventListener('keydown', (e) => {\r\n if (e.key === 'F11') {\r\n // 禁用f11\r\n e.preventDefault()\r\n toggle()\r\n }\r\n })\r\n const { size } = useSize()\r\n return () => (\r\n <div class=\"sky-layout__config\" onClick={toggle}>\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n {isFullscreen.value ? <FluentFullScreenMinimize20Regular /> : <EpFullScreen />}\r\n </ElIcon>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.Refresh = defineComponent({\r\n name: 'DefaultLayoutPageRefresh',\r\n setup() {\r\n const { size } = useSize()\r\n const router = useRouter()\r\n const route = useRoute()\r\n const onRefresh = () => {\r\n router.replace({ name: route.name, query: { t: Date.now() } })\r\n }\r\n return () => (\r\n <div class=\"sky-layout__config\" onClick={onRefresh}>\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n <EpRefresh />\r\n </ElIcon>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.User = defineComponent({\r\n name: 'DefaultLayoutPageUser',\r\n setup() {\r\n const router = useRouter()\r\n const { t } = useI18n()\r\n const { username, logout } = useUser()\r\n const onCommand = (command: string) => {\r\n if (command === 'edit') {\r\n } else if (command === 'logout') {\r\n logout()\r\n router.replace({ name: skyConfig.loginRouteName })\r\n }\r\n }\r\n return () =>\r\n username.value && (\r\n <div class=\"sky-layout__config\">\r\n <ElDropdown trigger=\"click\" onCommand={onCommand}>\r\n {{\r\n default: () => <ElText>{username.value}</ElText>,\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n {() => (\r\n <>\r\n <ElDropdownItem command=\"edit\">{t('user.edit')}</ElDropdownItem>\r\n <ElDropdownItem command=\"logout\">{t('user.logout')}</ElDropdownItem>\r\n </>\r\n )}\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n </ElDropdown>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.SubMenu = defineComponent({\r\n name: 'DefaultLayoutPageSubMenu',\r\n props: {\r\n item: {\r\n type: Object as PropType<SkyMenu>,\r\n required: true,\r\n },\r\n },\r\n setup(props) {\r\n const router = useRouter()\r\n\r\n const onClick = () => {\r\n if (router.hasRoute(props.item.routeName)) {\r\n router.push({ name: props.item.routeName, params: props.item.routeParams })\r\n }\r\n }\r\n\r\n const getIcon = inject<GetIconFn>(skyConfig.getIconFnName)!\r\n\r\n return () => (\r\n <>\r\n {props.item.children?.length ? (\r\n <ElSubMenu index={props.item.routeName}>\r\n {{\r\n default: () =>\r\n props.item.children!.map((menu) => (\r\n <SkyLayoutPage.SubMenu key={menu.routeName} item={menu} />\r\n )),\r\n title: () => (\r\n <>\r\n {props.item.icon && getIcon(props.item.icon)}\r\n <span>{props.item.title}</span>\r\n </>\r\n ),\r\n }}\r\n </ElSubMenu>\r\n ) : (\r\n <ElMenuItem index={props.item.routeName} onClick={onClick}>\r\n {{\r\n default: () => props.item.icon && getIcon(props.item.icon),\r\n title: () => props.item.title,\r\n }}\r\n </ElMenuItem>\r\n )}\r\n </>\r\n )\r\n },\r\n})\r\n\r\nexport default SkyLayoutPage\r\n"],"names":["_isSlot","s","_isVNode","SkyLayoutPage","defineComponent","name","setup","router","useRouter","route","useRoute","menus","tabs","removeKeepAlive","tab","routeName","removeTab","params","watchEffect","getIcon","inject","skyConfig","_createVNode","default","_slot","menu","SkyMenuCollapse","onTabChange","_slot2","ElTabPane","includeList","backgroundImage","t","select","SizeConfig","size","dropdown","_slot4","ElDropdownMenu","c","_slot3","locale","lang","langList","computed","messages","key","value","label","_slot5","ElDropdownItem","theme","_slot6","toggle","useEventListener","e","query","logout","username","_Fragment","props","item","type","required","ElSubMenu","title"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { VNode } from 'vue';
2
+ import { RouteLocationNormalizedLoaded } from 'vue-router';
3
+ export interface RouterViewSlot {
4
+ Component: VNode;
5
+ route: RouteLocationNormalizedLoaded;
6
+ }
7
+ declare const SkyLayoutPage: import('vue').DefineComponent<{}, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
8
+ export default SkyLayoutPage;
@@ -0,0 +1,398 @@
1
+ import "element-plus/es/components/dropdown/style/css";
2
+ import "element-plus/es/components/dropdown-item/style/css";
3
+ import "element-plus/es/components/dropdown-menu/style/css";
4
+ import "element-plus/es/components/icon/style/css";
5
+ import "element-plus/es/components/menu/style/css";
6
+ import "element-plus/es/components/menu-item/style/css";
7
+ import "element-plus/es/components/scrollbar/style/css";
8
+ import "element-plus/es/components/sub-menu/style/css";
9
+ import "element-plus/es/components/tab-pane/style/css";
10
+ import "element-plus/es/components/tabs/style/css";
11
+ import "element-plus/es/components/text/style/css";
12
+ import { defineComponent as f, watchEffect as j, inject as M, createVNode as e, Transition as A, KeepAlive as K, h as S, isVNode as O, computed as x, Fragment as L } from "vue";
13
+ import { EpFullScreen as U } from "../icons/EpFullScreen.mjs";
14
+ import { EpRefresh as q } from "../icons/EpRefresh.mjs";
15
+ import { FluentFullScreenMinimize20Regular as V } from "../icons/FluentFullScreenMinimize20Regular.mjs";
16
+ import { NimbusTextSize as $ } from "../icons/NimbusTextSize.mjs";
17
+ import { SkyMenuCollapse as B } from "../icons/SkyMenuCollapse.mjs";
18
+ import { SlTrans as G } from "../icons/SlTrans.mjs";
19
+ import { useUser as H } from "../hooks/useUser.mjs";
20
+ import "../hooks/usePermission.mjs";
21
+ import { useMenu as J } from "../hooks/useMenu.mjs";
22
+ import { useTab as Q } from "../hooks/useTab.mjs";
23
+ import { useRouteKeepAlive as W } from "../hooks/useRouteKeepAlive.mjs";
24
+ import { useSize as b, SizeConfig as y } from "../hooks/useSize.mjs";
25
+ import { useLang as X } from "../hooks/useLang.mjs";
26
+ import { useTheme as Y, ThemeConfig as z } from "../hooks/useTheme.mjs";
27
+ import "../hooks/useList.mjs";
28
+ import "../hooks/useHiddenTitle.mjs";
29
+ import "../hooks/useForm.mjs";
30
+ import "../hooks/useShow.mjs";
31
+ import "../hooks/useReferenceArrayField.mjs";
32
+ import "../hooks/useTreeWithDetails.mjs";
33
+ import "../hooks/useFormGrid.mjs";
34
+ import "../hooks/useReferenceArrayInput.mjs";
35
+ import { useFullscreen as Z, useEventListener as ee } from "@vueuse/core";
36
+ import { ElScrollbar as E, ElMenu as le, ElTabs as te, ElTabPane as ae, ElDropdown as h, ElDropdownMenu as C, ElDropdownItem as _, ElIcon as g, ElText as oe, ElSubMenu as ue, ElMenuItem as ne } from "element-plus";
37
+ import { useI18n as T } from "vue-i18n";
38
+ import { useRouter as N, useRoute as P, RouterView as ie } from "vue-router";
39
+ import { skyConfig as k } from "../setup/index.mjs";
40
+ function d(l) {
41
+ return typeof l == "function" || Object.prototype.toString.call(l) === "[object Object]" && !O(l);
42
+ }
43
+ const i = /* @__PURE__ */ f({
44
+ name: "SkyLayoutPage",
45
+ setup() {
46
+ const l = N(), t = P(), {
47
+ collapse: o,
48
+ menus: a
49
+ } = J(), {
50
+ removeTab: n,
51
+ lastTab: u,
52
+ tabs: s
53
+ } = Q(), {
54
+ includeList: c,
55
+ addKeepAlive: v,
56
+ removeKeepAlive: R
57
+ } = W(), D = (p) => {
58
+ const m = s.value.find((r) => r.routeName === p);
59
+ m && l.push({
60
+ name: m.routeName,
61
+ params: m.routeParams
62
+ });
63
+ }, F = (p) => {
64
+ const m = s.value.find((r) => r.routeName === p);
65
+ m && (m?.routeKeepAliveName && R(m.routeKeepAliveName), n(m.routeName), m.routeName === t.name && u.value && l.replace({
66
+ name: u.value.routeName,
67
+ params: u.value.routeParams
68
+ }));
69
+ };
70
+ j(() => {
71
+ t.meta.keepAliveName && v(String(t.meta.keepAliveName));
72
+ });
73
+ const w = M(k.getIconFnName);
74
+ return () => {
75
+ let p, m;
76
+ return e("div", {
77
+ class: "sky-layout"
78
+ }, [e("header", {
79
+ class: "sky-layout__header"
80
+ }, [e(i.Logo, null, null), e("div", {
81
+ class: "sky-layout__header-opt"
82
+ }, [e(i.ConfigeSize, null, null), e(i.ConfigLang, null, null), e(i.ConfigTheme, null, null), e(i.Fullscreen, null, null), e(i.Refresh, null, null), e(i.User, null, null)])]), e("section", {
83
+ class: "sky-layout__container"
84
+ }, [e("aside", {
85
+ class: "sky-layout__menu"
86
+ }, [e(E, null, {
87
+ default: () => [e(le, {
88
+ collapse: o.value,
89
+ "default-active": t.name,
90
+ "unique-opened": !0,
91
+ "collapse-transition": !0
92
+ }, d(p = a.value.map((r) => e(i.SubMenu, {
93
+ key: r.routeName,
94
+ item: r
95
+ }, null))) ? p : {
96
+ default: () => [p]
97
+ })]
98
+ }), e("div", {
99
+ class: "sky-layout__menu-collapse",
100
+ onClick: () => o.value = !o.value
101
+ }, [e(B, null, null)])]), e("section", {
102
+ class: "sky-layout__main"
103
+ }, [e("div", {
104
+ class: "sky-layout__tab"
105
+ }, [e(te, {
106
+ type: "card",
107
+ "model-value": t.name,
108
+ onTabChange: D,
109
+ onTabRemove: F
110
+ }, d(m = s.value.map((r) => e(ae, {
111
+ key: r.routeName,
112
+ name: r.routeName,
113
+ closable: r.closable
114
+ }, {
115
+ label: () => e("div", {
116
+ class: "sky-layout__tab-pane"
117
+ }, [r.icon && w(r.icon), e("span", null, [r.title])])
118
+ }))) ? m : {
119
+ default: () => [m]
120
+ })]), e("div", {
121
+ class: "sky-layout__body"
122
+ }, [e(E, null, {
123
+ default: () => [e(ie, null, {
124
+ default: ({
125
+ Component: r,
126
+ route: I
127
+ }) => e(A, {
128
+ "enter-active-class": "sky-layout-fade-enter-active",
129
+ "enter-from-class": "sky-layout-fade-enter-from",
130
+ "enter-to-class": "sky-layout-fade-enter-to",
131
+ "leave-active-class": "sky-layout-fade-leave-active",
132
+ "leave-from-class": "sky-layout-fade-leave-from",
133
+ "leave-to-class": "sky-layout-fade-leave-to",
134
+ appear: !0,
135
+ mode: "out-in"
136
+ }, {
137
+ default: () => [e(K, {
138
+ include: c.value
139
+ }, [S(r, {
140
+ key: I.fullPath
141
+ })])]
142
+ })
143
+ })]
144
+ })])])])]);
145
+ };
146
+ }
147
+ });
148
+ i.Logo = /* @__PURE__ */ f({
149
+ name: "DefaultLayoutPageLogo",
150
+ setup() {
151
+ return () => k.logoImg && e("div", {
152
+ class: "sky-layout__logo",
153
+ style: {
154
+ backgroundImage: `url(${k.logoImg})`
155
+ }
156
+ }, null);
157
+ }
158
+ });
159
+ i.ConfigeSize = /* @__PURE__ */ f({
160
+ name: "DefaultLayoutPageConfigeSize",
161
+ setup() {
162
+ const {
163
+ t: l
164
+ } = T(), {
165
+ enabled: t,
166
+ size: o,
167
+ select: a
168
+ } = b();
169
+ return () => t && e("div", {
170
+ class: "sky-layout__config"
171
+ }, [e(h, {
172
+ trigger: "click",
173
+ onCommand: a
174
+ }, {
175
+ default: () => e(g, {
176
+ size: y.iconMap[o.value]
177
+ }, {
178
+ default: () => [e($, null, null)]
179
+ }),
180
+ dropdown: () => {
181
+ let n;
182
+ return e(C, null, d(n = Object.values(y.options).map((u) => {
183
+ let s;
184
+ return e(_, {
185
+ key: u.value,
186
+ command: u.value,
187
+ disabled: o.value === u.value
188
+ }, d(s = l(u.label)) ? s : {
189
+ default: () => [s]
190
+ });
191
+ })) ? n : {
192
+ default: () => [n]
193
+ });
194
+ }
195
+ })]);
196
+ }
197
+ });
198
+ i.ConfigLang = /* @__PURE__ */ f({
199
+ name: "DefaultLayoutPageConfigLang",
200
+ setup() {
201
+ const {
202
+ messages: l,
203
+ t,
204
+ locale: o
205
+ } = T(), {
206
+ lang: a
207
+ } = X(), {
208
+ size: n
209
+ } = b(), u = x(() => Object.keys(l.value).map((c) => ({
210
+ value: c,
211
+ label: t(`lang.${c}`)
212
+ }))), s = (c) => {
213
+ a.value = c, o.value = c;
214
+ };
215
+ return () => u.value.length > 1 ? e("div", {
216
+ class: "sky-layout__config"
217
+ }, [e(h, {
218
+ trigger: "click",
219
+ onCommand: s
220
+ }, {
221
+ default: () => e(g, {
222
+ size: y.iconMap[n.value]
223
+ }, {
224
+ default: () => [e(G, null, null)]
225
+ }),
226
+ dropdown: () => {
227
+ let c;
228
+ return e(C, null, d(c = u.value.map((v) => e(_, {
229
+ key: v.value,
230
+ command: v.value,
231
+ disabled: a.value === v.value
232
+ }, {
233
+ default: () => [v.label]
234
+ }))) ? c : {
235
+ default: () => [c]
236
+ });
237
+ }
238
+ })]) : null;
239
+ }
240
+ });
241
+ i.ConfigTheme = /* @__PURE__ */ f({
242
+ name: "DefaultLayoutPageConfigTheme",
243
+ setup() {
244
+ const {
245
+ select: l,
246
+ theme: t
247
+ } = Y(), {
248
+ size: o
249
+ } = b();
250
+ return () => k.themeEnabled && e("div", {
251
+ class: "sky-layout__config"
252
+ }, [e(h, {
253
+ trigger: "click",
254
+ onCommand: l
255
+ }, {
256
+ default: () => e(g, {
257
+ size: y.iconMap[o.value]
258
+ }, {
259
+ default: () => S(z[t.value].icon)
260
+ }),
261
+ dropdown: () => {
262
+ let a;
263
+ return e(C, null, d(a = Object.values(z).map((n) => e(_, {
264
+ key: n.value,
265
+ command: n.value,
266
+ disabled: t.value === n.value
267
+ }, {
268
+ default: () => [e(g, null, {
269
+ default: () => S(n.icon)
270
+ })]
271
+ }))) ? a : {
272
+ default: () => [a]
273
+ });
274
+ }
275
+ })]);
276
+ }
277
+ });
278
+ i.Fullscreen = /* @__PURE__ */ f({
279
+ name: "DefaultLayoutPageFullscreen",
280
+ setup() {
281
+ const {
282
+ isFullscreen: l,
283
+ toggle: t
284
+ } = Z();
285
+ ee("keydown", (a) => {
286
+ a.key === "F11" && (a.preventDefault(), t());
287
+ });
288
+ const {
289
+ size: o
290
+ } = b();
291
+ return () => e("div", {
292
+ class: "sky-layout__config",
293
+ onClick: t
294
+ }, [e(g, {
295
+ size: y.iconMap[o.value]
296
+ }, {
297
+ default: () => [l.value ? e(V, null, null) : e(U, null, null)]
298
+ })]);
299
+ }
300
+ });
301
+ i.Refresh = /* @__PURE__ */ f({
302
+ name: "DefaultLayoutPageRefresh",
303
+ setup() {
304
+ const {
305
+ size: l
306
+ } = b(), t = N(), o = P(), a = () => {
307
+ t.replace({
308
+ name: o.name,
309
+ query: {
310
+ t: Date.now()
311
+ }
312
+ });
313
+ };
314
+ return () => e("div", {
315
+ class: "sky-layout__config",
316
+ onClick: a
317
+ }, [e(g, {
318
+ size: y.iconMap[l.value]
319
+ }, {
320
+ default: () => [e(q, null, null)]
321
+ })]);
322
+ }
323
+ });
324
+ i.User = /* @__PURE__ */ f({
325
+ name: "DefaultLayoutPageUser",
326
+ setup() {
327
+ const l = N(), {
328
+ t
329
+ } = T(), {
330
+ username: o,
331
+ logout: a
332
+ } = H(), n = (u) => {
333
+ u === "edit" || u === "logout" && (a(), l.replace({
334
+ name: k.loginRouteName
335
+ }));
336
+ };
337
+ return () => o.value && e("div", {
338
+ class: "sky-layout__config"
339
+ }, [e(h, {
340
+ trigger: "click",
341
+ onCommand: n
342
+ }, {
343
+ default: () => e(oe, null, {
344
+ default: () => [o.value]
345
+ }),
346
+ dropdown: () => e(C, null, {
347
+ default: () => {
348
+ let u, s;
349
+ return e(L, null, [e(_, {
350
+ command: "edit"
351
+ }, d(u = t("user.edit")) ? u : {
352
+ default: () => [u]
353
+ }), e(_, {
354
+ command: "logout"
355
+ }, d(s = t("user.logout")) ? s : {
356
+ default: () => [s]
357
+ })]);
358
+ }
359
+ })
360
+ })]);
361
+ }
362
+ });
363
+ i.SubMenu = /* @__PURE__ */ f({
364
+ name: "DefaultLayoutPageSubMenu",
365
+ props: {
366
+ item: {
367
+ type: Object,
368
+ required: !0
369
+ }
370
+ },
371
+ setup(l) {
372
+ const t = N(), o = () => {
373
+ t.hasRoute(l.item.routeName) && t.push({
374
+ name: l.item.routeName,
375
+ params: l.item.routeParams
376
+ });
377
+ }, a = M(k.getIconFnName);
378
+ return () => e(L, null, [l.item.children?.length ? e(ue, {
379
+ index: l.item.routeName
380
+ }, {
381
+ default: () => l.item.children.map((n) => e(i.SubMenu, {
382
+ key: n.routeName,
383
+ item: n
384
+ }, null)),
385
+ title: () => e(L, null, [l.item.icon && a(l.item.icon), e("span", null, [l.item.title])])
386
+ }) : e(ne, {
387
+ index: l.item.routeName,
388
+ onClick: o
389
+ }, {
390
+ default: () => l.item.icon && a(l.item.icon),
391
+ title: () => l.item.title
392
+ })]);
393
+ }
394
+ });
395
+ export {
396
+ i as default
397
+ };
398
+ //# sourceMappingURL=default.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.mjs","sources":["../../src/layouts/default.tsx"],"sourcesContent":["import { EpFullScreen } from '@/icons/EpFullScreen'\r\nimport { EpRefresh } from '@/icons/EpRefresh'\r\nimport { FluentFullScreenMinimize20Regular } from '@/icons/FluentFullScreenMinimize20Regular'\r\nimport { NimbusTextSize } from '@/icons/NimbusTextSize'\r\nimport { SkyMenuCollapse } from '@/icons/SkyMenuCollapse'\r\nimport { SlTrans } from '@/icons/SlTrans'\r\nimport {\r\n SizeConfig,\r\n ThemeConfig,\r\n useLang,\r\n useMenu,\r\n useRouteKeepAlive,\r\n useSize,\r\n useTab,\r\n useTheme,\r\n useUser,\r\n} from '@/hooks'\r\nimport { useEventListener, useFullscreen } from '@vueuse/core'\r\nimport {\r\n ElDropdown,\r\n ElDropdownItem,\r\n ElDropdownMenu,\r\n ElIcon,\r\n ElMenu,\r\n ElMenuItem,\r\n ElScrollbar,\r\n ElSubMenu,\r\n ElTabPane,\r\n ElTabs,\r\n ElText,\r\n type TabPaneName,\r\n} from 'element-plus'\r\nimport {\r\n computed,\r\n defineComponent,\r\n h,\r\n inject,\r\n KeepAlive,\r\n Transition,\r\n watchEffect,\r\n type PropType,\r\n type VNode,\r\n} from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { RouterView, useRoute, useRouter, type RouteLocationNormalizedLoaded } from 'vue-router'\r\nimport { skyConfig, type GetIconFn, type SkyMenu } from '@/setup'\r\n\r\nexport interface RouterViewSlot {\r\n Component: VNode\r\n route: RouteLocationNormalizedLoaded\r\n}\r\n\r\nconst SkyLayoutPage = defineComponent({\r\n name: 'SkyLayoutPage',\r\n setup() {\r\n const router = useRouter()\r\n const route = useRoute()\r\n const { collapse, menus } = useMenu()\r\n const { removeTab, lastTab, tabs } = useTab()\r\n const { includeList, addKeepAlive, removeKeepAlive } = useRouteKeepAlive()\r\n\r\n const onTabChange = (routeName: TabPaneName) => {\r\n const tab = tabs.value.find((tab) => tab.routeName === routeName)\r\n if (tab) {\r\n router.push({ name: tab.routeName, params: tab.routeParams })\r\n }\r\n }\r\n\r\n const onTabRemove = (routeName: TabPaneName) => {\r\n const tab = tabs.value.find((tab) => tab.routeName === routeName)\r\n if (tab) {\r\n // 如果当前 tab 是存在,那么尝试删除它的 keepAlive 缓存\r\n if (tab?.routeKeepAliveName) {\r\n removeKeepAlive(tab.routeKeepAliveName)\r\n }\r\n removeTab(tab.routeName)\r\n // 如果删除是当前页面并且存在lastTab,就跳转到lastTab\r\n if (tab.routeName === route.name && lastTab.value) {\r\n router.replace({ name: lastTab.value.routeName, params: lastTab.value.routeParams })\r\n }\r\n }\r\n }\r\n\r\n watchEffect(() => {\r\n if (route.meta.keepAliveName) {\r\n addKeepAlive(String(route.meta.keepAliveName))\r\n }\r\n })\r\n\r\n const getIcon = inject<GetIconFn>(skyConfig.getIconFnName)!\r\n\r\n return () => (\r\n <div class=\"sky-layout\">\r\n <header class=\"sky-layout__header\">\r\n <SkyLayoutPage.Logo />\r\n\r\n <div class=\"sky-layout__header-opt\">\r\n <SkyLayoutPage.ConfigeSize />\r\n <SkyLayoutPage.ConfigLang />\r\n <SkyLayoutPage.ConfigTheme />\r\n <SkyLayoutPage.Fullscreen />\r\n <SkyLayoutPage.Refresh />\r\n <SkyLayoutPage.User />\r\n </div>\r\n </header>\r\n <section class=\"sky-layout__container\">\r\n <aside class=\"sky-layout__menu\">\r\n <ElScrollbar>\r\n <ElMenu\r\n collapse={collapse.value}\r\n default-active={route.name}\r\n unique-opened\r\n collapse-transition\r\n >\r\n {menus.value.map((menu) => (\r\n <SkyLayoutPage.SubMenu key={menu.routeName} item={menu} />\r\n ))}\r\n </ElMenu>\r\n </ElScrollbar>\r\n <div\r\n class=\"sky-layout__menu-collapse\"\r\n onClick={() => (collapse.value = !collapse.value)}\r\n >\r\n <SkyMenuCollapse />\r\n </div>\r\n </aside>\r\n <section class=\"sky-layout__main\">\r\n <div class=\"sky-layout__tab\">\r\n <ElTabs\r\n type=\"card\"\r\n model-value={route.name}\r\n onTabChange={onTabChange}\r\n onTabRemove={onTabRemove}\r\n >\r\n {tabs.value.map((tab) => (\r\n <ElTabPane key={tab.routeName} name={tab.routeName} closable={tab.closable}>\r\n {{\r\n label: () => (\r\n <div class=\"sky-layout__tab-pane\">\r\n {tab.icon && getIcon(tab.icon)}\r\n <span>{tab.title}</span>\r\n </div>\r\n ),\r\n }}\r\n </ElTabPane>\r\n ))}\r\n </ElTabs>\r\n </div>\r\n\r\n <div class=\"sky-layout__body\">\r\n <ElScrollbar>\r\n <RouterView>\r\n {{\r\n default: ({ Component, route }: RouterViewSlot) => (\r\n <Transition\r\n enter-active-class=\"sky-layout-fade-enter-active\"\r\n enter-from-class=\"sky-layout-fade-enter-from\"\r\n enter-to-class=\"sky-layout-fade-enter-to\"\r\n leave-active-class=\"sky-layout-fade-leave-active\"\r\n leave-from-class=\"sky-layout-fade-leave-from\"\r\n leave-to-class=\"sky-layout-fade-leave-to\"\r\n appear\r\n mode=\"out-in\"\r\n >\r\n <KeepAlive include={includeList.value}>\r\n {/* UserCreate ---> /user/create 会缓存一次 */}\r\n {/* UserEdit ---> /user/edit/1、/user/edit/2 ... 会缓存n次,直到关闭当前 tab,从include移除当前component name会等待GC全部释放所有缓存的组件实例;缓存N次不会出现数据错乱吗?默认情况会,但是加上 { key: route.fullPath } 就可以区分相同组件不同路由地址实例(●'◡'●) */}\r\n {h(Component, { key: route.fullPath })}\r\n </KeepAlive>\r\n </Transition>\r\n ),\r\n }}\r\n </RouterView>\r\n </ElScrollbar>\r\n </div>\r\n </section>\r\n </section>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.Logo = defineComponent({\r\n name: 'DefaultLayoutPageLogo',\r\n setup() {\r\n return () =>\r\n skyConfig.logoImg && (\r\n <div\r\n class=\"sky-layout__logo\"\r\n style={{ backgroundImage: `url(${skyConfig.logoImg})` }}\r\n ></div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.ConfigeSize = defineComponent({\r\n name: 'DefaultLayoutPageConfigeSize',\r\n setup() {\r\n const { t } = useI18n()\r\n const { enabled, size, select } = useSize()\r\n return () =>\r\n enabled && (\r\n <div class=\"sky-layout__config\">\r\n <ElDropdown trigger=\"click\" onCommand={select}>\r\n {{\r\n default: () => (\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n <NimbusTextSize />\r\n </ElIcon>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n {Object.values(SizeConfig.options).map((c) => (\r\n <ElDropdownItem\r\n key={c.value}\r\n command={c.value}\r\n disabled={size.value === c.value}\r\n >\r\n {t(c.label)}\r\n </ElDropdownItem>\r\n ))}\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n </ElDropdown>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.ConfigLang = defineComponent({\r\n name: 'DefaultLayoutPageConfigLang',\r\n setup() {\r\n const { messages, t, locale } = useI18n()\r\n const { lang } = useLang()\r\n const { size } = useSize()\r\n const langList = computed(() =>\r\n Object.keys(messages.value).map((key) => ({\r\n value: key,\r\n label: t(`lang.${key}`),\r\n })),\r\n )\r\n const onCommand = (v: string) => {\r\n lang.value = v\r\n locale.value = v\r\n }\r\n return () =>\r\n langList.value.length > 1 ? (\r\n <div class=\"sky-layout__config\">\r\n <ElDropdown trigger=\"click\" onCommand={onCommand}>\r\n {{\r\n default: () => (\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n <SlTrans />\r\n </ElIcon>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n {langList.value.map((c) => (\r\n <ElDropdownItem\r\n key={c.value}\r\n command={c.value}\r\n disabled={lang.value === c.value}\r\n >\r\n {c.label}\r\n </ElDropdownItem>\r\n ))}\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n </ElDropdown>\r\n </div>\r\n ) : null\r\n },\r\n})\r\n\r\nSkyLayoutPage.ConfigTheme = defineComponent({\r\n name: 'DefaultLayoutPageConfigTheme',\r\n setup() {\r\n const { select, theme } = useTheme()\r\n const { size } = useSize()\r\n return () =>\r\n skyConfig.themeEnabled && (\r\n <div class=\"sky-layout__config\">\r\n <ElDropdown trigger=\"click\" onCommand={select}>\r\n {{\r\n default: () => (\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n {() => h(ThemeConfig[theme.value].icon)}\r\n </ElIcon>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n {Object.values(ThemeConfig).map((c) => (\r\n <ElDropdownItem\r\n key={c.value}\r\n command={c.value}\r\n disabled={theme.value === c.value}\r\n >\r\n <ElIcon>{() => h(c.icon)}</ElIcon>\r\n </ElDropdownItem>\r\n ))}\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n </ElDropdown>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.Fullscreen = defineComponent({\r\n name: 'DefaultLayoutPageFullscreen',\r\n setup() {\r\n // 页面全屏\r\n const { isFullscreen, toggle } = useFullscreen()\r\n // F11默认全屏效果不能满足这里的需求,禁止默认全屏行为,采用我们项目的全屏逻辑\r\n useEventListener('keydown', (e) => {\r\n if (e.key === 'F11') {\r\n // 禁用f11\r\n e.preventDefault()\r\n toggle()\r\n }\r\n })\r\n const { size } = useSize()\r\n return () => (\r\n <div class=\"sky-layout__config\" onClick={toggle}>\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n {isFullscreen.value ? <FluentFullScreenMinimize20Regular /> : <EpFullScreen />}\r\n </ElIcon>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.Refresh = defineComponent({\r\n name: 'DefaultLayoutPageRefresh',\r\n setup() {\r\n const { size } = useSize()\r\n const router = useRouter()\r\n const route = useRoute()\r\n const onRefresh = () => {\r\n router.replace({ name: route.name, query: { t: Date.now() } })\r\n }\r\n return () => (\r\n <div class=\"sky-layout__config\" onClick={onRefresh}>\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n <EpRefresh />\r\n </ElIcon>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.User = defineComponent({\r\n name: 'DefaultLayoutPageUser',\r\n setup() {\r\n const router = useRouter()\r\n const { t } = useI18n()\r\n const { username, logout } = useUser()\r\n const onCommand = (command: string) => {\r\n if (command === 'edit') {\r\n } else if (command === 'logout') {\r\n logout()\r\n router.replace({ name: skyConfig.loginRouteName })\r\n }\r\n }\r\n return () =>\r\n username.value && (\r\n <div class=\"sky-layout__config\">\r\n <ElDropdown trigger=\"click\" onCommand={onCommand}>\r\n {{\r\n default: () => <ElText>{username.value}</ElText>,\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n {() => (\r\n <>\r\n <ElDropdownItem command=\"edit\">{t('user.edit')}</ElDropdownItem>\r\n <ElDropdownItem command=\"logout\">{t('user.logout')}</ElDropdownItem>\r\n </>\r\n )}\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n </ElDropdown>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.SubMenu = defineComponent({\r\n name: 'DefaultLayoutPageSubMenu',\r\n props: {\r\n item: {\r\n type: Object as PropType<SkyMenu>,\r\n required: true,\r\n },\r\n },\r\n setup(props) {\r\n const router = useRouter()\r\n\r\n const onClick = () => {\r\n if (router.hasRoute(props.item.routeName)) {\r\n router.push({ name: props.item.routeName, params: props.item.routeParams })\r\n }\r\n }\r\n\r\n const getIcon = inject<GetIconFn>(skyConfig.getIconFnName)!\r\n\r\n return () => (\r\n <>\r\n {props.item.children?.length ? (\r\n <ElSubMenu index={props.item.routeName}>\r\n {{\r\n default: () =>\r\n props.item.children!.map((menu) => (\r\n <SkyLayoutPage.SubMenu key={menu.routeName} item={menu} />\r\n )),\r\n title: () => (\r\n <>\r\n {props.item.icon && getIcon(props.item.icon)}\r\n <span>{props.item.title}</span>\r\n </>\r\n ),\r\n }}\r\n </ElSubMenu>\r\n ) : (\r\n <ElMenuItem index={props.item.routeName} onClick={onClick}>\r\n {{\r\n default: () => props.item.icon && getIcon(props.item.icon),\r\n title: () => props.item.title,\r\n }}\r\n </ElMenuItem>\r\n )}\r\n </>\r\n )\r\n },\r\n})\r\n\r\nexport default SkyLayoutPage\r\n"],"names":["_isSlot","s","_isVNode","SkyLayoutPage","defineComponent","name","setup","router","useRouter","route","useRoute","menus","tabs","removeKeepAlive","tab","routeName","removeTab","params","watchEffect","getIcon","inject","skyConfig","_createVNode","default","_slot","menu","SkyMenuCollapse","onTabChange","_slot2","ElTabPane","includeList","backgroundImage","t","select","SizeConfig","size","dropdown","_slot4","ElDropdownMenu","c","_slot3","locale","lang","langList","computed","messages","key","value","label","_slot5","ElDropdownItem","theme","_slot6","toggle","useEventListener","e","query","logout","username","_Fragment","props","item","type","required","ElSubMenu","title"],"mappings":"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"}