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.
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/dist/components/auto-complete-array-input/index.cjs +2 -0
- package/dist/components/auto-complete-array-input/index.cjs.map +1 -0
- package/dist/components/auto-complete-array-input/index.d.ts +12 -0
- package/dist/components/auto-complete-array-input/index.mjs +151 -0
- package/dist/components/auto-complete-array-input/index.mjs.map +1 -0
- package/dist/components/avatar-input/index.cjs +2 -0
- package/dist/components/avatar-input/index.cjs.map +1 -0
- package/dist/components/avatar-input/index.d.ts +13 -0
- package/dist/components/avatar-input/index.mjs +160 -0
- package/dist/components/avatar-input/index.mjs.map +1 -0
- package/dist/components/can-access/index.cjs +2 -0
- package/dist/components/can-access/index.cjs.map +1 -0
- package/dist/components/can-access/index.d.ts +2 -0
- package/dist/components/can-access/index.mjs +46 -0
- package/dist/components/can-access/index.mjs.map +1 -0
- package/dist/components/create/index.cjs +2 -0
- package/dist/components/create/index.cjs.map +1 -0
- package/dist/components/create/index.d.ts +2 -0
- package/dist/components/create/index.mjs +96 -0
- package/dist/components/create/index.mjs.map +1 -0
- package/dist/components/data-table/index.cjs +2 -0
- package/dist/components/data-table/index.cjs.map +1 -0
- package/dist/components/data-table/index.d.ts +5 -0
- package/dist/components/data-table/index.mjs +131 -0
- package/dist/components/data-table/index.mjs.map +1 -0
- package/dist/components/data-table-col/index.cjs +2 -0
- package/dist/components/data-table-col/index.cjs.map +1 -0
- package/dist/components/data-table-col/index.d.ts +12 -0
- package/dist/components/data-table-col/index.mjs +60 -0
- package/dist/components/data-table-col/index.mjs.map +1 -0
- package/dist/components/edit/index.cjs +2 -0
- package/dist/components/edit/index.cjs.map +1 -0
- package/dist/components/edit/index.d.ts +6 -0
- package/dist/components/edit/index.mjs +153 -0
- package/dist/components/edit/index.mjs.map +1 -0
- package/dist/components/edit-button/index.cjs +2 -0
- package/dist/components/edit-button/index.cjs.map +1 -0
- package/dist/components/edit-button/index.d.ts +6 -0
- package/dist/components/edit-button/index.mjs +60 -0
- package/dist/components/edit-button/index.mjs.map +1 -0
- package/dist/components/file-multiple-input/index.cjs +2 -0
- package/dist/components/file-multiple-input/index.cjs.map +1 -0
- package/dist/components/file-multiple-input/index.d.ts +18 -0
- package/dist/components/file-multiple-input/index.mjs +189 -0
- package/dist/components/file-multiple-input/index.mjs.map +1 -0
- package/dist/components/filter/index.cjs +2 -0
- package/dist/components/filter/index.cjs.map +1 -0
- package/dist/components/filter/index.d.ts +2 -0
- package/dist/components/filter/index.mjs +63 -0
- package/dist/components/filter/index.mjs.map +1 -0
- package/dist/components/image-field/index.cjs +2 -0
- package/dist/components/image-field/index.cjs.map +1 -0
- package/dist/components/image-field/index.d.ts +8 -0
- package/dist/components/image-field/index.mjs +62 -0
- package/dist/components/image-field/index.mjs.map +1 -0
- package/dist/components/index.d.ts +27 -0
- package/dist/components/link-field/index.cjs +2 -0
- package/dist/components/link-field/index.cjs.map +1 -0
- package/dist/components/link-field/index.d.ts +7 -0
- package/dist/components/link-field/index.mjs +70 -0
- package/dist/components/link-field/index.mjs.map +1 -0
- package/dist/components/list/index.cjs +2 -0
- package/dist/components/list/index.cjs.map +1 -0
- package/dist/components/list/index.d.ts +7 -0
- package/dist/components/list/index.mjs +154 -0
- package/dist/components/list/index.mjs.map +1 -0
- package/dist/components/list/list.cjs +3 -0
- package/dist/components/list/list.cjs.map +1 -0
- package/dist/components/list/list.d.ts +10 -0
- package/dist/components/list/list.mjs +17 -0
- package/dist/components/list/list.mjs.map +1 -0
- package/dist/components/radio-button-group-input/index.cjs +2 -0
- package/dist/components/radio-button-group-input/index.cjs.map +1 -0
- package/dist/components/radio-button-group-input/index.d.ts +14 -0
- package/dist/components/radio-button-group-input/index.mjs +82 -0
- package/dist/components/radio-button-group-input/index.mjs.map +1 -0
- package/dist/components/reference-array-field/index.cjs +2 -0
- package/dist/components/reference-array-field/index.cjs.map +1 -0
- package/dist/components/reference-array-field/index.d.ts +7 -0
- package/dist/components/reference-array-field/index.mjs +76 -0
- package/dist/components/reference-array-field/index.mjs.map +1 -0
- package/dist/components/reference-array-input/index.cjs +2 -0
- package/dist/components/reference-array-input/index.cjs.map +1 -0
- package/dist/components/reference-array-input/index.d.ts +6 -0
- package/dist/components/reference-array-input/index.mjs +74 -0
- package/dist/components/reference-array-input/index.mjs.map +1 -0
- package/dist/components/reference-field/index.cjs +2 -0
- package/dist/components/reference-field/index.cjs.map +1 -0
- package/dist/components/reference-field/index.d.ts +10 -0
- package/dist/components/reference-field/index.mjs +101 -0
- package/dist/components/reference-field/index.mjs.map +1 -0
- package/dist/components/reference-image-field/index.cjs +2 -0
- package/dist/components/reference-image-field/index.cjs.map +1 -0
- package/dist/components/reference-image-field/index.d.ts +9 -0
- package/dist/components/reference-image-field/index.mjs +79 -0
- package/dist/components/reference-image-field/index.mjs.map +1 -0
- package/dist/components/show/index.cjs +2 -0
- package/dist/components/show/index.cjs.map +1 -0
- package/dist/components/show/index.d.ts +2 -0
- package/dist/components/show/index.mjs +66 -0
- package/dist/components/show/index.mjs.map +1 -0
- package/dist/components/show-button/index.cjs +2 -0
- package/dist/components/show-button/index.cjs.map +1 -0
- package/dist/components/show-button/index.d.ts +6 -0
- package/dist/components/show-button/index.mjs +60 -0
- package/dist/components/show-button/index.mjs.map +1 -0
- package/dist/components/show-simple-layout/index.cjs +2 -0
- package/dist/components/show-simple-layout/index.cjs.map +1 -0
- package/dist/components/show-simple-layout/index.d.ts +1 -0
- package/dist/components/show-simple-layout/index.mjs +36 -0
- package/dist/components/show-simple-layout/index.mjs.map +1 -0
- package/dist/components/simple-form/index.cjs +2 -0
- package/dist/components/simple-form/index.cjs.map +1 -0
- package/dist/components/simple-form/index.d.ts +6 -0
- package/dist/components/simple-form/index.mjs +53 -0
- package/dist/components/simple-form/index.mjs.map +1 -0
- package/dist/components/single-field-list/index.cjs +2 -0
- package/dist/components/single-field-list/index.cjs.map +1 -0
- package/dist/components/single-field-list/index.d.ts +4 -0
- package/dist/components/single-field-list/index.mjs +56 -0
- package/dist/components/single-field-list/index.mjs.map +1 -0
- package/dist/components/text-field/index.cjs +2 -0
- package/dist/components/text-field/index.cjs.map +1 -0
- package/dist/components/text-field/index.d.ts +7 -0
- package/dist/components/text-field/index.mjs +56 -0
- package/dist/components/text-field/index.mjs.map +1 -0
- package/dist/components/text-input/index.cjs +2 -0
- package/dist/components/text-input/index.cjs.map +1 -0
- package/dist/components/text-input/index.d.ts +9 -0
- package/dist/components/text-input/index.mjs +70 -0
- package/dist/components/text-input/index.mjs.map +1 -0
- package/dist/components/tree-select-input/index.cjs +2 -0
- package/dist/components/tree-select-input/index.cjs.map +1 -0
- package/dist/components/tree-select-input/index.d.ts +15 -0
- package/dist/components/tree-select-input/index.mjs +122 -0
- package/dist/components/tree-select-input/index.mjs.map +1 -0
- package/dist/components/tree-with-details/index.cjs +2 -0
- package/dist/components/tree-with-details/index.cjs.map +1 -0
- package/dist/components/tree-with-details/index.d.ts +11 -0
- package/dist/components/tree-with-details/index.mjs +133 -0
- package/dist/components/tree-with-details/index.mjs.map +1 -0
- package/dist/hooks/index.d.ts +17 -0
- package/dist/hooks/useDelegate.d.ts +4 -0
- package/dist/hooks/useForm.cjs +2 -0
- package/dist/hooks/useForm.cjs.map +1 -0
- package/dist/hooks/useForm.d.ts +9 -0
- package/dist/hooks/useForm.mjs +18 -0
- package/dist/hooks/useForm.mjs.map +1 -0
- package/dist/hooks/useFormGrid.cjs +2 -0
- package/dist/hooks/useFormGrid.cjs.map +1 -0
- package/dist/hooks/useFormGrid.d.ts +1 -0
- package/dist/hooks/useFormGrid.mjs +7 -0
- package/dist/hooks/useFormGrid.mjs.map +1 -0
- package/dist/hooks/useHiddenTitle.cjs +2 -0
- package/dist/hooks/useHiddenTitle.cjs.map +1 -0
- package/dist/hooks/useHiddenTitle.d.ts +1 -0
- package/dist/hooks/useHiddenTitle.mjs +9 -0
- package/dist/hooks/useHiddenTitle.mjs.map +1 -0
- package/dist/hooks/useLang.cjs +2 -0
- package/dist/hooks/useLang.cjs.map +1 -0
- package/dist/hooks/useLang.d.ts +4 -0
- package/dist/hooks/useLang.mjs +15 -0
- package/dist/hooks/useLang.mjs.map +1 -0
- package/dist/hooks/useList.cjs +2 -0
- package/dist/hooks/useList.cjs.map +1 -0
- package/dist/hooks/useList.d.ts +22 -0
- package/dist/hooks/useList.mjs +19 -0
- package/dist/hooks/useList.mjs.map +1 -0
- package/dist/hooks/useMenu.cjs +2 -0
- package/dist/hooks/useMenu.cjs.map +1 -0
- package/dist/hooks/useMenu.d.ts +5 -0
- package/dist/hooks/useMenu.mjs +26 -0
- package/dist/hooks/useMenu.mjs.map +1 -0
- package/dist/hooks/usePermission.cjs +2 -0
- package/dist/hooks/usePermission.cjs.map +1 -0
- package/dist/hooks/usePermission.d.ts +4 -0
- package/dist/hooks/usePermission.mjs +13 -0
- package/dist/hooks/usePermission.mjs.map +1 -0
- package/dist/hooks/useReferenceArrayField.cjs +2 -0
- package/dist/hooks/useReferenceArrayField.cjs.map +1 -0
- package/dist/hooks/useReferenceArrayField.d.ts +8 -0
- package/dist/hooks/useReferenceArrayField.mjs +9 -0
- package/dist/hooks/useReferenceArrayField.mjs.map +1 -0
- package/dist/hooks/useReferenceArrayInput.cjs +2 -0
- package/dist/hooks/useReferenceArrayInput.cjs.map +1 -0
- package/dist/hooks/useReferenceArrayInput.d.ts +9 -0
- package/dist/hooks/useReferenceArrayInput.mjs +9 -0
- package/dist/hooks/useReferenceArrayInput.mjs.map +1 -0
- package/dist/hooks/useRouteKeepAlive.cjs +2 -0
- package/dist/hooks/useRouteKeepAlive.cjs.map +1 -0
- package/dist/hooks/useRouteKeepAlive.d.ts +5 -0
- package/dist/hooks/useRouteKeepAlive.mjs +19 -0
- package/dist/hooks/useRouteKeepAlive.mjs.map +1 -0
- package/dist/hooks/useShow.cjs +2 -0
- package/dist/hooks/useShow.cjs.map +1 -0
- package/dist/hooks/useShow.d.ts +6 -0
- package/dist/hooks/useShow.mjs +9 -0
- package/dist/hooks/useShow.mjs.map +1 -0
- package/dist/hooks/useSize.cjs +2 -0
- package/dist/hooks/useSize.cjs.map +1 -0
- package/dist/hooks/useSize.d.ts +28 -0
- package/dist/hooks/useSize.mjs +30 -0
- package/dist/hooks/useSize.mjs.map +1 -0
- package/dist/hooks/useTab.cjs +2 -0
- package/dist/hooks/useTab.cjs.map +1 -0
- package/dist/hooks/useTab.d.ts +18 -0
- package/dist/hooks/useTab.mjs +50 -0
- package/dist/hooks/useTab.mjs.map +1 -0
- package/dist/hooks/useTheme.cjs +2 -0
- package/dist/hooks/useTheme.cjs.map +1 -0
- package/dist/hooks/useTheme.d.ts +23 -0
- package/dist/hooks/useTheme.mjs +24 -0
- package/dist/hooks/useTheme.mjs.map +1 -0
- package/dist/hooks/useTreeWithDetails.cjs +2 -0
- package/dist/hooks/useTreeWithDetails.cjs.map +1 -0
- package/dist/hooks/useTreeWithDetails.d.ts +7 -0
- package/dist/hooks/useTreeWithDetails.mjs +9 -0
- package/dist/hooks/useTreeWithDetails.mjs.map +1 -0
- package/dist/hooks/useUpload.cjs +2 -0
- package/dist/hooks/useUpload.cjs.map +1 -0
- package/dist/hooks/useUpload.d.ts +8 -0
- package/dist/hooks/useUpload.mjs +8 -0
- package/dist/hooks/useUpload.mjs.map +1 -0
- package/dist/hooks/useUser.cjs +2 -0
- package/dist/hooks/useUser.cjs.map +1 -0
- package/dist/hooks/useUser.d.ts +9 -0
- package/dist/hooks/useUser.mjs +24 -0
- package/dist/hooks/useUser.mjs.map +1 -0
- package/dist/i18n/locales/en.json.cjs +2 -0
- package/dist/i18n/locales/en.json.cjs.map +1 -0
- package/dist/i18n/locales/en.json.d.ts +52 -0
- package/dist/i18n/locales/en.json.mjs +32 -0
- package/dist/i18n/locales/en.json.mjs.map +1 -0
- package/dist/icons/EpDelete.cjs +2 -0
- package/dist/icons/EpDelete.cjs.map +1 -0
- package/dist/icons/EpDelete.d.ts +1 -0
- package/dist/icons/EpDelete.mjs +17 -0
- package/dist/icons/EpDelete.mjs.map +1 -0
- package/dist/icons/EpDocumentAdd.cjs +2 -0
- package/dist/icons/EpDocumentAdd.cjs.map +1 -0
- package/dist/icons/EpDocumentAdd.d.ts +1 -0
- package/dist/icons/EpDocumentAdd.mjs +17 -0
- package/dist/icons/EpDocumentAdd.mjs.map +1 -0
- package/dist/icons/EpDownload.cjs +2 -0
- package/dist/icons/EpDownload.cjs.map +1 -0
- package/dist/icons/EpDownload.d.ts +1 -0
- package/dist/icons/EpDownload.mjs +17 -0
- package/dist/icons/EpDownload.mjs.map +1 -0
- package/dist/icons/EpFullScreen.cjs +2 -0
- package/dist/icons/EpFullScreen.cjs.map +1 -0
- package/dist/icons/EpFullScreen.d.ts +1 -0
- package/dist/icons/EpFullScreen.mjs +19 -0
- package/dist/icons/EpFullScreen.mjs.map +1 -0
- package/dist/icons/EpMoon.cjs +2 -0
- package/dist/icons/EpMoon.cjs.map +1 -0
- package/dist/icons/EpMoon.d.ts +1 -0
- package/dist/icons/EpMoon.mjs +17 -0
- package/dist/icons/EpMoon.mjs.map +1 -0
- package/dist/icons/EpPlus.cjs +2 -0
- package/dist/icons/EpPlus.cjs.map +1 -0
- package/dist/icons/EpPlus.d.ts +1 -0
- package/dist/icons/EpPlus.mjs +17 -0
- package/dist/icons/EpPlus.mjs.map +1 -0
- package/dist/icons/EpRefresh.cjs +2 -0
- package/dist/icons/EpRefresh.cjs.map +1 -0
- package/dist/icons/EpRefresh.d.ts +1 -0
- package/dist/icons/EpRefresh.mjs +19 -0
- package/dist/icons/EpRefresh.mjs.map +1 -0
- package/dist/icons/EpSearch.d.ts +1 -0
- package/dist/icons/EpSunny.cjs +2 -0
- package/dist/icons/EpSunny.cjs.map +1 -0
- package/dist/icons/EpSunny.d.ts +1 -0
- package/dist/icons/EpSunny.mjs +17 -0
- package/dist/icons/EpSunny.mjs.map +1 -0
- package/dist/icons/EpSwitchFilled.cjs +2 -0
- package/dist/icons/EpSwitchFilled.cjs.map +1 -0
- package/dist/icons/EpSwitchFilled.d.ts +1 -0
- package/dist/icons/EpSwitchFilled.mjs +20 -0
- package/dist/icons/EpSwitchFilled.mjs.map +1 -0
- package/dist/icons/EpUploadFilled.cjs +2 -0
- package/dist/icons/EpUploadFilled.cjs.map +1 -0
- package/dist/icons/EpUploadFilled.d.ts +1 -0
- package/dist/icons/EpUploadFilled.mjs +17 -0
- package/dist/icons/EpUploadFilled.mjs.map +1 -0
- package/dist/icons/FluentFullScreenMinimize20Regular.cjs +2 -0
- package/dist/icons/FluentFullScreenMinimize20Regular.cjs.map +1 -0
- package/dist/icons/FluentFullScreenMinimize20Regular.d.ts +1 -0
- package/dist/icons/FluentFullScreenMinimize20Regular.mjs +19 -0
- package/dist/icons/FluentFullScreenMinimize20Regular.mjs.map +1 -0
- package/dist/icons/NimbusTextSize.cjs +2 -0
- package/dist/icons/NimbusTextSize.cjs.map +1 -0
- package/dist/icons/NimbusTextSize.d.ts +1 -0
- package/dist/icons/NimbusTextSize.mjs +20 -0
- package/dist/icons/NimbusTextSize.mjs.map +1 -0
- package/dist/icons/SkyMenuCollapse.cjs +2 -0
- package/dist/icons/SkyMenuCollapse.cjs.map +1 -0
- package/dist/icons/SkyMenuCollapse.d.ts +1 -0
- package/dist/icons/SkyMenuCollapse.mjs +30 -0
- package/dist/icons/SkyMenuCollapse.mjs.map +1 -0
- package/dist/icons/SlTrans.cjs +2 -0
- package/dist/icons/SlTrans.cjs.map +1 -0
- package/dist/icons/SlTrans.d.ts +1 -0
- package/dist/icons/SlTrans.mjs +19 -0
- package/dist/icons/SlTrans.mjs.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.mjs +114 -0
- package/dist/index.mjs.map +1 -0
- package/dist/layouts/default.cjs +2 -0
- package/dist/layouts/default.cjs.map +1 -0
- package/dist/layouts/default.d.ts +8 -0
- package/dist/layouts/default.mjs +398 -0
- package/dist/layouts/default.mjs.map +1 -0
- package/dist/pages/login.cjs +2 -0
- package/dist/pages/login.cjs.map +1 -0
- package/dist/pages/login.d.ts +2 -0
- package/dist/pages/login.mjs +78 -0
- package/dist/pages/login.mjs.map +1 -0
- package/dist/pages/not-found.cjs +2 -0
- package/dist/pages/not-found.cjs.map +1 -0
- package/dist/pages/not-found.d.ts +2 -0
- package/dist/pages/not-found.mjs +29 -0
- package/dist/pages/not-found.mjs.map +1 -0
- package/dist/pages/welcome.cjs +2 -0
- package/dist/pages/welcome.cjs.map +1 -0
- package/dist/pages/welcome.d.ts +2 -0
- package/dist/pages/welcome.mjs +13 -0
- package/dist/pages/welcome.mjs.map +1 -0
- package/dist/provides/dataProvider.d.ts +111 -0
- package/dist/provides/index.d.ts +1 -0
- package/dist/router/index.cjs +2 -0
- package/dist/router/index.cjs.map +1 -0
- package/dist/router/index.d.ts +25 -0
- package/dist/router/index.mjs +136 -0
- package/dist/router/index.mjs.map +1 -0
- package/dist/setup/index.cjs +2 -0
- package/dist/setup/index.cjs.map +1 -0
- package/dist/setup/index.d.ts +68 -0
- package/dist/setup/index.mjs +55 -0
- package/dist/setup/index.mjs.map +1 -0
- package/dist/styles/components/auto-complete-array-input.css +1 -0
- package/dist/styles/components/avatar-input.css +1 -0
- package/dist/styles/components/can-access.css +1 -0
- package/dist/styles/components/create.css +1 -0
- package/dist/styles/components/data-table-col.css +1 -0
- package/dist/styles/components/data-table.css +1 -0
- package/dist/styles/components/edit-button.css +1 -0
- package/dist/styles/components/edit.css +1 -0
- package/dist/styles/components/file-multiple-input.css +1 -0
- package/dist/styles/components/filter.css +1 -0
- package/dist/styles/components/image-field.css +1 -0
- package/dist/styles/components/link-field.css +1 -0
- package/dist/styles/components/list.css +1 -0
- package/dist/styles/components/radio-button-group-input.css +1 -0
- package/dist/styles/components/reference-array-field.css +1 -0
- package/dist/styles/components/reference-array-input.css +1 -0
- package/dist/styles/components/reference-field.css +1 -0
- package/dist/styles/components/reference-image-field.css +1 -0
- package/dist/styles/components/show-button.css +1 -0
- package/dist/styles/components/show-simple-layout.css +1 -0
- package/dist/styles/components/show.css +1 -0
- package/dist/styles/components/simple-form.css +1 -0
- package/dist/styles/components/single-field-list.css +1 -0
- package/dist/styles/components/text-field.css +1 -0
- package/dist/styles/components/text-input.css +1 -0
- package/dist/styles/components/tree-select-input.css +1 -0
- package/dist/styles/components/tree-with-details.css +1 -0
- package/dist/styles/index.css +1 -0
- package/dist/styles/layouts/default.css +1 -0
- package/dist/styles/pages/login.css +1 -0
- package/dist/styles/pages/not-found.css +1 -0
- package/dist/styles/pages/welcome.css +1 -0
- 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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"}
|