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
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("element-plus/es/components/button/style/css");require("element-plus/es/components/input/style/css");const e=require("vue"),c=require("../hooks/useUser.cjs");require("../hooks/usePermission.cjs");require("../hooks/useMenu.cjs");require("../hooks/useTab.cjs");require("../hooks/useRouteKeepAlive.cjs");require("../hooks/useSize.cjs");require("../hooks/useLang.cjs");require("../hooks/useTheme.cjs");require("../hooks/useList.cjs");require("../hooks/useHiddenTitle.cjs");require("../hooks/useForm.cjs");require("../hooks/useShow.cjs");require("../hooks/useReferenceArrayField.cjs");require("../hooks/useTreeWithDetails.cjs");require("../hooks/useFormGrid.cjs");require("../hooks/useReferenceArrayInput.cjs");const o=require("../setup/index.cjs"),d=require("@vueuse/core"),a=require("element-plus"),g=require("vue-router"),m=e.defineComponent({name:"SkyLoginPage",setup(){const i=g.useRouter(),{login:s}=c.useUser(),u=e.reactive({username:"",password:""}),{execute:t,isLoading:n}=d.useAsyncState(async()=>o.skyConfig.dataProvider?.login?.({...u}),void 0,{immediate:!1}),l=async()=>{const r=await t();r&&(s(r),i.replace({name:o.skyConfig.welcomeRouteName}))};return()=>e.createVNode("div",{class:"sky-page-login"},[o.skyConfig.loginImg&&e.createVNode("img",{class:"sky-page-login__back",src:o.skyConfig.loginImg},null),e.createVNode("div",{class:"sky-page-login__main"},[e.createVNode("h3",{class:"sky-page-login__title"},[e.createTextVNode("登录进入 Skyline")]),e.createVNode("div",null,[e.createVNode(a.ElInput,{"model-value":u.username,"onUpdate:modelValue":r=>u.username=r,placeholder:"用户名"},null)]),e.createVNode("div",null,[e.createVNode(a.ElInput,{"model-value":u.password,"onUpdate:modelValue":r=>u.password=r,placeholder:"密码",type:"password","show-password":!0},null)]),e.createVNode("div",null,[e.createVNode(a.ElButton,{class:"sky-page-login__button",type:"primary",size:"large",loading:n.value,onClick:l},{default:()=>[e.createTextVNode("登录")]})])])])}});exports.default=m;
|
|
2
|
+
//# sourceMappingURL=login.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.cjs","sources":["../../src/pages/login.tsx"],"sourcesContent":["import { useUser } from '@/hooks'\nimport type { LoginParams, LoginResult } from '@/provides'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElButton, ElInput } from 'element-plus'\nimport { defineComponent, reactive } from 'vue'\nimport { useRouter } from 'vue-router'\n\nexport default defineComponent({\n name: 'SkyLoginPage',\n setup() {\n const router = useRouter()\n const { login } = useUser()\n const formData = reactive<LoginParams>({\n username: '',\n password: '',\n })\n const { execute, isLoading } = useAsyncState<LoginResult | undefined>(\n async () => skyConfig.dataProvider?.login?.({ ...formData }),\n undefined,\n {\n immediate: false,\n },\n )\n\n const onSubmit = async () => {\n const res = await execute()\n if (res) {\n login(res)\n // window.location.reload()\n router.replace({ name: skyConfig.welcomeRouteName })\n }\n }\n\n return () => (\n <div class=\"sky-page-login\">\n {skyConfig.loginImg && <img class=\"sky-page-login__back\" src={skyConfig.loginImg} />}\n <div class=\"sky-page-login__main\">\n <h3 class=\"sky-page-login__title\">登录进入 Skyline</h3>\n <div>\n <ElInput\n model-value={formData.username}\n onUpdate:modelValue={(value) => (formData.username = value)}\n placeholder=\"用户名\"\n />\n </div>\n <div>\n <ElInput\n model-value={formData.password}\n onUpdate:modelValue={(value) => (formData.password = value)}\n placeholder=\"密码\"\n type=\"password\"\n show-password\n />\n </div>\n <div>\n <ElButton\n class=\"sky-page-login__button\"\n type=\"primary\"\n size=\"large\"\n loading={isLoading.value}\n onClick={onSubmit}\n >\n 登录\n </ElButton>\n </div>\n </div>\n </div>\n )\n },\n})\n"],"names":["login","defineComponent","name","setup","router","useRouter","username","password","isLoading","immediate","onSubmit","res","execute","_createVNode","skyConfig","_createTextVNode","ElInput","value","formData","ElButton"],"mappings":"w6BAQAA,EAAAC,kBAAA,CACEC,KAAAA,eACAC,OAAAA,CACE,MAAAC,EAAAC,EAAAA,UAAA,GACQL,MAAAA,6BAENM,SAAAA,GACAC,SAAAA,EACF,CAAA,aACiBC,UAAAA,8EAIbC,UAAAA,EACF,CAAA,EAGFC,EAAA,SAAA,CACE,MAAAC,EAAA,MAAAC,EAAA,EACAD,qDAGoD,CAAA,IAItD,MAAA,IAAAE,EAAAA,YAAA,MAAA,CAAO,MAAA,gBAAA,EAAA,CAAAC,EAAAA,UAAA,UAAAD,EAAAA,YAAA,MAAA,CAEgB,MAAA,uBAAA,IAAAC,EAAAA,UAAA,QAA6D,EAAA,IAAA,EAAAD,EAAAA,YAAA,MAAA,CAAI,MAAA,sBAAA,EAAA,CAAAA,EAAAA,YAAA,KAAA,CAAA,MAAA,uBAAA,EAAA,CAAAE,EAAAA,gBAAA,cAAA,CAAA,CAAA,EAAAF,cAAA,MAAA,KAAA,CAAAA,EAAAA,YAAAG,UAAA,0BAKhD,sBAAAC,GAAAC,EAAA,SAAAD,EAC6B,YAAA,KAAA,EAAA,IAAA,CAAA,CAAA,EAAAJ,EAAAA,YAAA,MAAA,KAAA,CAAAA,EAAAA,YAAAG,UAAA,0BAM7B,sBAAAC,GAAAC,EAAA,SAAAD,EAC6B,YAAA,KAAA,KAAA,WAAA,gBAAA,EAAA,EAAA,IAAA,CAAA,CAAA,EAAAJ,EAAAA,YAAA,MAAA,KAAA,CAAAA,EAAAA,YAAAM,WAAA,CAAA,MAAA,yBAAA,KAAA,UAAA,KAAA,iCAY1C,EAAA,8CAQ7B,CACF,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: 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>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import "element-plus/es/components/button/style/css";
|
|
2
|
+
import "element-plus/es/components/input/style/css";
|
|
3
|
+
import { defineComponent as u, reactive as d, createVNode as o, createTextVNode as r } from "vue";
|
|
4
|
+
import { useUser as c } from "../hooks/useUser.mjs";
|
|
5
|
+
import "../hooks/usePermission.mjs";
|
|
6
|
+
import "../hooks/useMenu.mjs";
|
|
7
|
+
import "../hooks/useTab.mjs";
|
|
8
|
+
import "../hooks/useRouteKeepAlive.mjs";
|
|
9
|
+
import "../hooks/useSize.mjs";
|
|
10
|
+
import "../hooks/useLang.mjs";
|
|
11
|
+
import "../hooks/useTheme.mjs";
|
|
12
|
+
import "../hooks/useList.mjs";
|
|
13
|
+
import "../hooks/useHiddenTitle.mjs";
|
|
14
|
+
import "../hooks/useForm.mjs";
|
|
15
|
+
import "../hooks/useShow.mjs";
|
|
16
|
+
import "../hooks/useReferenceArrayField.mjs";
|
|
17
|
+
import "../hooks/useTreeWithDetails.mjs";
|
|
18
|
+
import "../hooks/useFormGrid.mjs";
|
|
19
|
+
import "../hooks/useReferenceArrayInput.mjs";
|
|
20
|
+
import { skyConfig as i } from "../setup/index.mjs";
|
|
21
|
+
import { useAsyncState as g } from "@vueuse/core";
|
|
22
|
+
import { ElInput as a, ElButton as f } from "element-plus";
|
|
23
|
+
import { useRouter as y } from "vue-router";
|
|
24
|
+
const j = /* @__PURE__ */ u({
|
|
25
|
+
name: "SkyLoginPage",
|
|
26
|
+
setup() {
|
|
27
|
+
const l = y(), {
|
|
28
|
+
login: s
|
|
29
|
+
} = c(), t = d({
|
|
30
|
+
username: "",
|
|
31
|
+
password: ""
|
|
32
|
+
}), {
|
|
33
|
+
execute: m,
|
|
34
|
+
isLoading: n
|
|
35
|
+
} = g(async () => i.dataProvider?.login?.({
|
|
36
|
+
...t
|
|
37
|
+
}), void 0, {
|
|
38
|
+
immediate: !1
|
|
39
|
+
}), p = async () => {
|
|
40
|
+
const e = await m();
|
|
41
|
+
e && (s(e), l.replace({
|
|
42
|
+
name: i.welcomeRouteName
|
|
43
|
+
}));
|
|
44
|
+
};
|
|
45
|
+
return () => o("div", {
|
|
46
|
+
class: "sky-page-login"
|
|
47
|
+
}, [i.loginImg && o("img", {
|
|
48
|
+
class: "sky-page-login__back",
|
|
49
|
+
src: i.loginImg
|
|
50
|
+
}, null), o("div", {
|
|
51
|
+
class: "sky-page-login__main"
|
|
52
|
+
}, [o("h3", {
|
|
53
|
+
class: "sky-page-login__title"
|
|
54
|
+
}, [r("登录进入 Skyline")]), o("div", null, [o(a, {
|
|
55
|
+
"model-value": t.username,
|
|
56
|
+
"onUpdate:modelValue": (e) => t.username = e,
|
|
57
|
+
placeholder: "用户名"
|
|
58
|
+
}, null)]), o("div", null, [o(a, {
|
|
59
|
+
"model-value": t.password,
|
|
60
|
+
"onUpdate:modelValue": (e) => t.password = e,
|
|
61
|
+
placeholder: "密码",
|
|
62
|
+
type: "password",
|
|
63
|
+
"show-password": !0
|
|
64
|
+
}, null)]), o("div", null, [o(f, {
|
|
65
|
+
class: "sky-page-login__button",
|
|
66
|
+
type: "primary",
|
|
67
|
+
size: "large",
|
|
68
|
+
loading: n.value,
|
|
69
|
+
onClick: p
|
|
70
|
+
}, {
|
|
71
|
+
default: () => [r("登录")]
|
|
72
|
+
})])])]);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
export {
|
|
76
|
+
j as default
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=login.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.mjs","sources":["../../src/pages/login.tsx"],"sourcesContent":["import { useUser } from '@/hooks'\nimport type { LoginParams, LoginResult } from '@/provides'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElButton, ElInput } from 'element-plus'\nimport { defineComponent, reactive } from 'vue'\nimport { useRouter } from 'vue-router'\n\nexport default defineComponent({\n name: 'SkyLoginPage',\n setup() {\n const router = useRouter()\n const { login } = useUser()\n const formData = reactive<LoginParams>({\n username: '',\n password: '',\n })\n const { execute, isLoading } = useAsyncState<LoginResult | undefined>(\n async () => skyConfig.dataProvider?.login?.({ ...formData }),\n undefined,\n {\n immediate: false,\n },\n )\n\n const onSubmit = async () => {\n const res = await execute()\n if (res) {\n login(res)\n // window.location.reload()\n router.replace({ name: skyConfig.welcomeRouteName })\n }\n }\n\n return () => (\n <div class=\"sky-page-login\">\n {skyConfig.loginImg && <img class=\"sky-page-login__back\" src={skyConfig.loginImg} />}\n <div class=\"sky-page-login__main\">\n <h3 class=\"sky-page-login__title\">登录进入 Skyline</h3>\n <div>\n <ElInput\n model-value={formData.username}\n onUpdate:modelValue={(value) => (formData.username = value)}\n placeholder=\"用户名\"\n />\n </div>\n <div>\n <ElInput\n model-value={formData.password}\n onUpdate:modelValue={(value) => (formData.password = value)}\n placeholder=\"密码\"\n type=\"password\"\n show-password\n />\n </div>\n <div>\n <ElButton\n class=\"sky-page-login__button\"\n type=\"primary\"\n size=\"large\"\n loading={isLoading.value}\n onClick={onSubmit}\n >\n 登录\n </ElButton>\n </div>\n </div>\n </div>\n )\n },\n})\n"],"names":["login","defineComponent","name","setup","router","useRouter","username","password","isLoading","immediate","onSubmit","res","execute","_createVNode","skyConfig","_createTextVNode","ElInput","value","formData","ElButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,QAAAA;AACE,UAAAC,IAAAC,EAAA;MACQL,OAAAA;AAAAA;MAENM,UAAAA;AAAAA,MACAC,UAAAA;AAAAA,IACF,CAAA;;MACiBC,WAAAA;AAAAA;;;MAIbC,WAAAA;AAAAA,IACF,CAAA,GAGFC,IAAA,YAAA;AACE,YAAAC,IAAA,MAAAC,EAAA;AACA,MAAAD;;MAGoD,CAAA;AAAA;AAItD,WAAA,MAAAE,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA,IAAA,GAAA,CAAAC,EAAA,YAAAD,EAAA,OAAA;AAAA,MAEgB,OAAA;AAAA,MAAA,KAAAC,EAAA;AAAA,IAA6D,GAAA,IAAA,GAAAD,EAAA,OAAA;AAAA,MAAI,OAAA;AAAA,IAAA,GAAA,CAAAA,EAAA,MAAA;AAAA,MAAA,OAAA;AAAA,IAAA,GAAA,CAAAE,EAAA,cAAA,CAAA,CAAA,GAAAF,EAAA,OAAA,MAAA,CAAAA,EAAAG,GAAA;AAAA;MAKhD,uBAAA,CAAAC,MAAAC,EAAA,WAAAD;AAAA,MAC6B,aAAA;AAAA,IAAA,GAAA,IAAA,CAAA,CAAA,GAAAJ,EAAA,OAAA,MAAA,CAAAA,EAAAG,GAAA;AAAA;MAM7B,uBAAA,CAAAC,MAAAC,EAAA,WAAAD;AAAA,MAC6B,aAAA;AAAA,MAAA,MAAA;AAAA,MAAA,iBAAA;AAAA,IAAA,GAAA,IAAA,CAAA,CAAA,GAAAJ,EAAA,OAAA,MAAA,CAAAA,EAAAM,GAAA;AAAA,MAAA,OAAA;AAAA,MAAA,MAAA;AAAA,MAAA,MAAA;AAAA;;IAY1C,GAAA;AAAA;;EAQ7B;AACF,CAAA;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("element-plus/es/components/button/style/css");require("element-plus/es/components/empty/style/css");const e=require("vue"),t=require("element-plus"),r=require("vue-i18n"),n=require("vue-router"),s=e.defineComponent({name:"SkyNotFoundPage",setup(){const{t:o}=r.useI18n(),u=n.useRouter();return()=>e.createVNode("div",{class:"sky-page-not-found"},[e.createVNode(t.ElEmpty,{description:o("notFound")},{default:()=>[e.createVNode(t.ElButton,{onClick:()=>u.go(-1)},{default:()=>[e.createTextVNode("返回")]})]})])}});exports.default=s;
|
|
2
|
+
//# sourceMappingURL=not-found.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-found.cjs","sources":["../../src/pages/not-found.tsx"],"sourcesContent":["import { ElButton, ElEmpty } from 'element-plus'\nimport { defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRouter } from 'vue-router'\n\nexport default defineComponent({\n name: 'SkyNotFoundPage',\n setup() {\n const { t } = useI18n()\n const router = useRouter()\n return () => (\n <div class=\"sky-page-not-found\">\n <ElEmpty description={t('notFound')}>\n <ElButton onClick={() => router.go(-1)}>返回</ElButton>\n </ElEmpty>\n </div>\n )\n },\n})\n"],"names":["notFound","defineComponent","name","setup","t","router","useRouter","_createVNode","default"],"mappings":"wTAKAA,EAAAC,kBAAA,CACEC,KAAAA,kBACAC,OAAAA,OACUC,EAAAA,eACRC,EAAAC,EAAAA,UAAA,EACA,MAAA,IAAAC,EAAAA,YAAA,MAAA,CAAO,MAAA,yEAEgC,EAAA,CAAAC,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,WAAAA,CAAA,QAAA,IAAAH,EAAA,GAAA,EAAA,CACK,EAAA,sCAAA,CAAA,CAAA,KAI9C,CACF,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: 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>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import "element-plus/es/components/button/style/css";
|
|
2
|
+
import "element-plus/es/components/empty/style/css";
|
|
3
|
+
import { defineComponent as n, createVNode as o, createTextVNode as r } from "vue";
|
|
4
|
+
import { ElEmpty as u, ElButton as m } from "element-plus";
|
|
5
|
+
import { useI18n as d } from "vue-i18n";
|
|
6
|
+
import { useRouter as p } from "vue-router";
|
|
7
|
+
const E = /* @__PURE__ */ n({
|
|
8
|
+
name: "SkyNotFoundPage",
|
|
9
|
+
setup() {
|
|
10
|
+
const {
|
|
11
|
+
t
|
|
12
|
+
} = d(), e = p();
|
|
13
|
+
return () => o("div", {
|
|
14
|
+
class: "sky-page-not-found"
|
|
15
|
+
}, [o(u, {
|
|
16
|
+
description: t("notFound")
|
|
17
|
+
}, {
|
|
18
|
+
default: () => [o(m, {
|
|
19
|
+
onClick: () => e.go(-1)
|
|
20
|
+
}, {
|
|
21
|
+
default: () => [r("返回")]
|
|
22
|
+
})]
|
|
23
|
+
})]);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
export {
|
|
27
|
+
E as default
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=not-found.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-found.mjs","sources":["../../src/pages/not-found.tsx"],"sourcesContent":["import { ElButton, ElEmpty } from 'element-plus'\nimport { defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRouter } from 'vue-router'\n\nexport default defineComponent({\n name: 'SkyNotFoundPage',\n setup() {\n const { t } = useI18n()\n const router = useRouter()\n return () => (\n <div class=\"sky-page-not-found\">\n <ElEmpty description={t('notFound')}>\n <ElButton onClick={() => router.go(-1)}>返回</ElButton>\n </ElEmpty>\n </div>\n )\n },\n})\n"],"names":["notFound","defineComponent","name","setup","t","router","useRouter","_createVNode","default"],"mappings":";;;;;;AAKA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,QAAAA;;MACUC;AAAAA,aACRC,IAAAC,EAAA;AACA,WAAA,MAAAC,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA;;IAEgC,GAAA;AAAA,MAAAC,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA,QAAA,SAAA,MAAAH,EAAA,GAAA,EAAA;AAAA,MACK,GAAA;AAAA;MAAA,CAAA,CAAA;AAAA;EAI9C;AACF,CAAA;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=e.defineComponent({name:"SkyWelcomePage",setup(){return()=>e.createVNode("div",{style:"padding: 20px;"},[e.createTextVNode("欢迎进入 Skyline Admin")])}});exports.default=t;
|
|
2
|
+
//# sourceMappingURL=welcome.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"welcome.cjs","sources":["../../src/pages/welcome.tsx"],"sourcesContent":["import { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'SkyWelcomePage',\n setup() {\n return () => <div style=\"padding: 20px;\">欢迎进入 Skyline Admin</div>\n },\n})\n"],"names":["welcome","name","setup","_createVNode","_createTextVNode"],"mappings":"mIAEAA,oBAA+B,CAC7BC,KAAM,iBACNC,OAAQ,CACN,MAAO,IAAAC,EAAAA,YAAA,MAAA,CAAA,MAAA,gBAAA,EAAA,CAAAC,EAAAA,gBAAA,oBAAA,CAAA,CAAA,CACT,CACF,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: 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>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineComponent as e, createVNode as t, createTextVNode as o } from "vue";
|
|
2
|
+
const d = /* @__PURE__ */ e({
|
|
3
|
+
name: "SkyWelcomePage",
|
|
4
|
+
setup() {
|
|
5
|
+
return () => t("div", {
|
|
6
|
+
style: "padding: 20px;"
|
|
7
|
+
}, [o("欢迎进入 Skyline Admin")]);
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
export {
|
|
11
|
+
d as default
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=welcome.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"welcome.mjs","sources":["../../src/pages/welcome.tsx"],"sourcesContent":["import { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'SkyWelcomePage',\n setup() {\n return () => <div style=\"padding: 20px;\">欢迎进入 Skyline Admin</div>\n },\n})\n"],"names":["welcome","name","setup","_createVNode","_createTextVNode"],"mappings":";AAEA,MAAAA,sBAA+B;AAAA,EAC7BC,MAAM;AAAA,EACNC,QAAQ;AACN,WAAO,MAAAC,EAAA,OAAA;AAAA,MAAA,OAAA;AAAA,IAAA,GAAA,CAAAC,EAAA,oBAAA,CAAA,CAAA;AAAA,EACT;AACF,CAAC;"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 所有的AJAX网络请求都是通过 dataProvider.ts 来实现:
|
|
3
|
+
* 1. 登录 login
|
|
4
|
+
* 2. 权限 canAccess
|
|
5
|
+
* 3. 新增 create、createMany
|
|
6
|
+
* 4. 删除 delete、deleteMany
|
|
7
|
+
* 5. 修改 update、updateMany
|
|
8
|
+
* 6. 查询 getList、getOne、getMany、getManyReference
|
|
9
|
+
*/
|
|
10
|
+
export type Identifier = number | string;
|
|
11
|
+
export interface ParamBase {
|
|
12
|
+
meta?: unknown;
|
|
13
|
+
signal?: AbortSignal;
|
|
14
|
+
}
|
|
15
|
+
export interface LoginParams extends ParamBase {
|
|
16
|
+
username: string;
|
|
17
|
+
password: string;
|
|
18
|
+
}
|
|
19
|
+
export interface LoginResult {
|
|
20
|
+
data?: {
|
|
21
|
+
token: string;
|
|
22
|
+
user: {
|
|
23
|
+
username: string;
|
|
24
|
+
[k: string]: unknown;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export interface CanAccessItem {
|
|
29
|
+
action: string | string[];
|
|
30
|
+
resource: string | string[];
|
|
31
|
+
row?: string | string[];
|
|
32
|
+
column?: string | string[];
|
|
33
|
+
}
|
|
34
|
+
export interface CreateParams extends ParamBase {
|
|
35
|
+
data: Record<string, unknown>;
|
|
36
|
+
}
|
|
37
|
+
export interface CreateResult {
|
|
38
|
+
data?: Record<string, unknown>;
|
|
39
|
+
}
|
|
40
|
+
export interface DeleteManyParams extends ParamBase {
|
|
41
|
+
ids: Identifier[];
|
|
42
|
+
}
|
|
43
|
+
export interface DeleteManyResult {
|
|
44
|
+
data?: Identifier[];
|
|
45
|
+
}
|
|
46
|
+
export interface UpdateParams extends ParamBase {
|
|
47
|
+
id: Identifier;
|
|
48
|
+
data: Record<string, unknown>;
|
|
49
|
+
}
|
|
50
|
+
export interface UpdateResult {
|
|
51
|
+
data?: Record<string, unknown>;
|
|
52
|
+
}
|
|
53
|
+
export type GetListSortParam = Record<string, 'ASC' | 'asc' | 'DESC' | 'desc'>;
|
|
54
|
+
export interface GetListParams extends ParamBase {
|
|
55
|
+
pagination: {
|
|
56
|
+
page: number;
|
|
57
|
+
perPage: number;
|
|
58
|
+
};
|
|
59
|
+
sort?: GetListSortParam;
|
|
60
|
+
filter?: Record<string, unknown>;
|
|
61
|
+
}
|
|
62
|
+
export interface GetListResult {
|
|
63
|
+
data?: Array<Record<string, unknown>>;
|
|
64
|
+
total?: number;
|
|
65
|
+
}
|
|
66
|
+
export interface GetOneParams extends ParamBase {
|
|
67
|
+
id: Identifier;
|
|
68
|
+
}
|
|
69
|
+
export interface GetOneResult {
|
|
70
|
+
data?: Record<string, unknown>;
|
|
71
|
+
}
|
|
72
|
+
export interface GetManyParams extends ParamBase {
|
|
73
|
+
ids: Identifier[];
|
|
74
|
+
}
|
|
75
|
+
export interface GetManyResult {
|
|
76
|
+
data?: Array<Record<string, unknown>>;
|
|
77
|
+
}
|
|
78
|
+
export interface GetUploadConfigResult {
|
|
79
|
+
data: {
|
|
80
|
+
action: string;
|
|
81
|
+
method?: string;
|
|
82
|
+
name?: string;
|
|
83
|
+
data?: Record<string, unknown>;
|
|
84
|
+
headers?: Record<string, unknown>;
|
|
85
|
+
withCredentials?: boolean;
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export interface UploadFileParams {
|
|
89
|
+
file: File;
|
|
90
|
+
}
|
|
91
|
+
export interface UploadItem {
|
|
92
|
+
id: Identifier;
|
|
93
|
+
url: string;
|
|
94
|
+
type: 'image' | 'file';
|
|
95
|
+
}
|
|
96
|
+
export interface UploadFileResult {
|
|
97
|
+
data?: UploadItem;
|
|
98
|
+
}
|
|
99
|
+
export type DataProvider = {
|
|
100
|
+
login?: (params: LoginParams) => Promise<LoginResult | undefined>;
|
|
101
|
+
getPermissions?: (params?: ParamBase) => Promise<CanAccessItem[]>;
|
|
102
|
+
canAccess?: (params: CanAccessItem, permissions: CanAccessItem[]) => boolean;
|
|
103
|
+
create?: (resource: string, params: CreateParams) => Promise<CreateResult | undefined>;
|
|
104
|
+
deleteMany?: (resource: string, params: DeleteManyParams) => Promise<DeleteManyResult | undefined>;
|
|
105
|
+
update?: (resource: string, params: UpdateParams) => Promise<UpdateResult | undefined>;
|
|
106
|
+
getList?: (resource: string, params: GetListParams) => Promise<GetListResult | undefined>;
|
|
107
|
+
getOne?: (resource: string, params: GetOneParams) => Promise<GetOneResult | undefined>;
|
|
108
|
+
getMany?: (resource: string, params: GetManyParams) => Promise<GetManyResult | undefined>;
|
|
109
|
+
getUploadConfig?: (params: UploadFileParams) => Promise<GetUploadConfigResult | undefined>;
|
|
110
|
+
uploadFile?: (params: UploadFileParams) => Promise<UploadFileResult | undefined>;
|
|
111
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dataProvider';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../setup/index.cjs"),f=require("../hooks/useUser.cjs"),g=require("../hooks/usePermission.cjs");require("../hooks/useMenu.cjs");const p=require("../hooks/useTab.cjs");require("../hooks/useRouteKeepAlive.cjs");require("../hooks/useSize.cjs");require("../hooks/useLang.cjs");require("../hooks/useTheme.cjs");require("../hooks/useList.cjs");require("../hooks/useHiddenTitle.cjs");require("../hooks/useForm.cjs");require("../hooks/useShow.cjs");require("../hooks/useReferenceArrayField.cjs");require("../hooks/useTreeWithDetails.cjs");require("../hooks/useFormGrid.cjs");require("../hooks/useReferenceArrayInput.cjs");require("vue");const y=()=>[{name:e.skyConfig.layoutRouteName,path:"/",component:()=>e.skyConfig.layoutPage??Promise.resolve().then(()=>require("../layouts/default.cjs")),redirect:{name:e.skyConfig.welcomeRouteName},children:[{name:e.skyConfig.welcomeRouteName,path:"welcome",component:()=>e.skyConfig.welcomePage??Promise.resolve().then(()=>require("../pages/welcome.cjs")),meta:{tab:!0,tabTitle:"欢迎界面",resource:"*",action:"*",row:"*",column:"*"}}]},{name:e.skyConfig.loginRouteName,path:"/login",component:()=>e.skyConfig.loginPage??Promise.resolve().then(()=>require("../pages/login.cjs"))},{name:e.skyConfig.notFoundRouteName,path:"/:pathMatch(.*)*",component:()=>e.skyConfig.notFoundPage??Promise.resolve().then(()=>require("../pages/not-found.cjs"))}],c=(n,s)=>{const{isLogin:a}=f.useUser();if(n.hasRoute(e.skyConfig.loginRouteName)){if(s.name===e.skyConfig.loginRouteName)return a.value?{name:e.skyConfig.layoutRouteName}:!0;if(!a.value)return{name:e.skyConfig.loginRouteName}}},l=async(n,s)=>{const a=[],i=typeof e.skyConfig.resources=="function"?await e.skyConfig.resources():e.skyConfig.resources;if(i)for(const o of i){const u=[{comp:o.list,name:e.skyConfig.getListRouteName(o.name),path:o.name,action:"list"},{comp:o.create,name:e.skyConfig.getCreateRouteName(o.name),path:`${o.name}/create`,action:"create"},{comp:o.edit,name:e.skyConfig.getEditRouteName(o.name),path:`${o.name}/edit/:id`,action:"edit"},{comp:o.show,name:e.skyConfig.getShowRouteName(o.name),path:`${o.name}/show/:id`,action:"show"}];for(const t of u)t.comp&&e.skyConfig.dataProvider?.canAccess?.({resource:o.name,action:t.action},s)?(n.hasRoute(t.name)||n.addRoute(e.skyConfig.layoutRouteName,{name:t.name,path:t.path,component:t.comp,meta:{tab:!0,tabTitle:t.comp.title||`${o.name} ${t.action}`,resource:o.name,action:t.action,keepAliveName:t.comp.keepAliveName,icon:t.comp.icon}}),a.push(t.name)):n.hasRoute(t.name)&&n.removeRoute(t.name)}return a},d=n=>({beforeEach:async a=>{const i=c(n,a);if(typeof i<"u")return i;const o=await e.skyConfig.dataProvider?.getPermissions?.(),{addTab:u,lastTab:t}=p.useTab(),r=a.meta;let m;return o&&(g.usePermission().permissions.value=o,m=await l(n,o),typeof a.name=="string"&&m.includes(a.name))?(u({routeName:a.name,routeParams:a.params,routeKeepAliveName:r.keepAliveName,title:r.tabTitle,icon:r.icon}),!0):a.name===e.skyConfig.welcomeRouteName?(u({routeName:a.name,routeParams:a.params,routeKeepAliveName:r.keepAliveName,title:r.tabTitle,icon:r.icon}),!0):a.name===e.skyConfig.notFoundRouteName?t.value?.routeName&&m?.includes(t.value.routeName)?{name:t.value.routeName,params:t.value.routeParams}:{name:e.skyConfig.welcomeRouteName}:!1}});exports.addLayoutRoutes=l;exports.checkAuth=c;exports.getRoutes=y;exports.guard=d;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/router/index.ts"],"sourcesContent":["import type { RouteLocationNormalizedGeneric, Router } from 'vue-router'\r\n\r\nimport { skyConfig } from '@/setup'\r\nimport type { RouteRecordRaw } from 'vue-router'\r\nimport { usePermission, useTab, useUser } from '@/hooks'\r\nimport type { CanAccessItem } from '@/provides'\r\n\r\nexport type SkyLayoutRouteMeta = {\r\n tab: true\r\n resource: string\r\n action: 'list' | 'create' | 'edit' | 'show'\r\n row: string\r\n column: string\r\n tabTitle: string\r\n // 是否添加到 keepAlive 列表\r\n keepAliveName?: string\r\n icon?: string\r\n}\r\n\r\nexport const getRoutes = (): RouteRecordRaw[] => {\r\n return [\r\n {\r\n name: skyConfig.layoutRouteName,\r\n path: '/',\r\n component: () => skyConfig.layoutPage ?? import('@/layouts/default'),\r\n redirect: { name: skyConfig.welcomeRouteName },\r\n children: [\r\n {\r\n name: skyConfig.welcomeRouteName,\r\n path: 'welcome',\r\n component: () => skyConfig.welcomePage ?? import('@/pages/welcome'),\r\n meta: {\r\n tab: true,\r\n tabTitle: '欢迎界面',\r\n resource: '*',\r\n action: '*',\r\n row: '*',\r\n column: '*',\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n name: skyConfig.loginRouteName,\r\n path: '/login',\r\n component: () => skyConfig.loginPage ?? import('@/pages/login'),\r\n },\r\n {\r\n name: skyConfig.notFoundRouteName,\r\n path: '/:pathMatch(.*)*',\r\n component: () => skyConfig.notFoundPage ?? import('@/pages/not-found'),\r\n },\r\n ]\r\n}\r\n\r\nexport const checkAuth = (router: Router, to: RouteLocationNormalizedGeneric) => {\r\n const { isLogin } = useUser()\r\n\r\n // 检测是否需要登录\r\n // openLogin - 表示开启登录界面功能\r\n // isLogin - 表示是否已经登录\r\n const openLogin = router.hasRoute(skyConfig.loginRouteName)\r\n if (openLogin) {\r\n if (to.name === skyConfig.loginRouteName) {\r\n if (isLogin.value) {\r\n return { name: skyConfig.layoutRouteName }\r\n } else {\r\n return true\r\n }\r\n } else {\r\n if (!isLogin.value) {\r\n return { name: skyConfig.loginRouteName }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const addLayoutRoutes = async (router: Router, permissions: CanAccessItem[]) => {\r\n const result: string[] = []\r\n const resources =\r\n typeof skyConfig.resources === 'function' ? await skyConfig.resources() : skyConfig.resources\r\n if (resources) {\r\n for (const resource of resources) {\r\n const routes = [\r\n {\r\n comp: resource.list,\r\n name: skyConfig.getListRouteName(resource.name),\r\n path: resource.name,\r\n action: 'list',\r\n },\r\n {\r\n comp: resource.create,\r\n name: skyConfig.getCreateRouteName(resource.name),\r\n path: `${resource.name}/create`,\r\n action: 'create',\r\n },\r\n {\r\n comp: resource.edit,\r\n name: skyConfig.getEditRouteName(resource.name),\r\n path: `${resource.name}/edit/:id`,\r\n action: 'edit',\r\n },\r\n {\r\n comp: resource.show,\r\n name: skyConfig.getShowRouteName(resource.name),\r\n path: `${resource.name}/show/:id`,\r\n action: 'show',\r\n },\r\n ]\r\n for (const route of routes) {\r\n if (\r\n route.comp &&\r\n skyConfig.dataProvider?.canAccess?.(\r\n { resource: resource.name, action: route.action },\r\n permissions,\r\n )\r\n ) {\r\n if (!router.hasRoute(route.name)) {\r\n router.addRoute(skyConfig.layoutRouteName, {\r\n name: route.name,\r\n path: route.path,\r\n component: route.comp,\r\n meta: {\r\n tab: true,\r\n tabTitle: route.comp.title || `${resource.name} ${route.action}`,\r\n resource: resource.name,\r\n action: route.action,\r\n keepAliveName: route.comp.keepAliveName,\r\n icon: route.comp.icon,\r\n },\r\n })\r\n }\r\n result.push(route.name)\r\n } else {\r\n if (router.hasRoute(route.name)) {\r\n router.removeRoute(route.name)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return result\r\n}\r\n\r\nexport const guard = (router: Router) => {\r\n const beforeEach = async (to: RouteLocationNormalizedGeneric) => {\r\n const authTo = checkAuth(router, to)\r\n\r\n if (typeof authTo !== 'undefined') {\r\n return authTo\r\n }\r\n\r\n // 获取所有权限\r\n const permissions = await skyConfig.dataProvider?.getPermissions?.()\r\n\r\n const { addTab, lastTab } = useTab()\r\n\r\n const meta = to.meta as SkyLayoutRouteMeta\r\n\r\n let routes: string[] | undefined\r\n if (permissions) {\r\n // 每次路由获取权限,需要全局存储下来\r\n usePermission().permissions.value = permissions\r\n\r\n routes = await addLayoutRoutes(router, permissions)\r\n\r\n if (typeof to.name === 'string' && routes.includes(to.name)) {\r\n addTab({\r\n routeName: to.name,\r\n routeParams: to.params,\r\n routeKeepAliveName: meta.keepAliveName,\r\n title: meta.tabTitle,\r\n icon: meta.icon,\r\n })\r\n return true\r\n }\r\n }\r\n\r\n // 所有都支持访问 welcome\r\n if (to.name === skyConfig.welcomeRouteName) {\r\n addTab({\r\n routeName: to.name,\r\n routeParams: to.params,\r\n routeKeepAliveName: meta.keepAliveName,\r\n title: meta.tabTitle,\r\n icon: meta.icon,\r\n })\r\n return true\r\n } else if (to.name === skyConfig.notFoundRouteName) {\r\n if (lastTab.value?.routeName && routes?.includes(lastTab.value.routeName)) {\r\n return { name: lastTab.value.routeName, params: lastTab.value.routeParams }\r\n }\r\n return { name: skyConfig.welcomeRouteName }\r\n }\r\n\r\n // 无权限\r\n return false\r\n }\r\n\r\n return {\r\n beforeEach,\r\n }\r\n}\r\n"],"names":["getRoutes","skyConfig","checkAuth","router","to","isLogin","useUser","addLayoutRoutes","permissions","result","resources","resource","routes","route","guard","authTo","addTab","lastTab","useTab","meta","usePermission"],"mappings":"qtBAmBO,MAAMA,EAAY,IAChB,CACL,CACE,KAAMC,EAAAA,UAAU,gBAChB,KAAM,IACN,UAAW,IAAMA,EAAAA,UAAU,YAAc,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,wBAAmB,CAAA,EACnE,SAAU,CAAE,KAAMA,EAAAA,UAAU,gBAAA,EAC5B,SAAU,CACR,CACE,KAAMA,EAAAA,UAAU,iBAChB,KAAM,UACN,UAAW,IAAMA,EAAAA,UAAU,aAAe,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,sBAAiB,CAAA,EAClE,KAAM,CACJ,IAAK,GACL,SAAU,OACV,SAAU,IACV,OAAQ,IACR,IAAK,IACL,OAAQ,GAAA,CACV,CACF,CACF,EAEF,CACE,KAAMA,EAAAA,UAAU,eAChB,KAAM,SACN,UAAW,IAAMA,EAAAA,UAAU,WAAa,mCAAO,oBAAe,CAAA,CAAA,EAEhE,CACE,KAAMA,EAAAA,UAAU,kBAChB,KAAM,mBACN,UAAW,IAAMA,EAAAA,UAAU,cAAgB,mCAAO,wBAAmB,CAAA,CAAA,CACvE,EAISC,EAAY,CAACC,EAAgBC,IAAuC,CAC/E,KAAM,CAAE,QAAAC,CAAA,EAAYC,UAAA,EAMpB,GADkBH,EAAO,SAASF,EAAAA,UAAU,cAAc,EAC3C,CACb,GAAIG,EAAG,OAASH,EAAAA,UAAU,eACxB,OAAII,EAAQ,MACH,CAAE,KAAMJ,EAAAA,UAAU,eAAA,EAElB,GAGT,GAAI,CAACI,EAAQ,MACX,MAAO,CAAE,KAAMJ,EAAAA,UAAU,cAAA,CAG/B,CACF,EAEaM,EAAkB,MAAOJ,EAAgBK,IAAiC,CACrF,MAAMC,EAAmB,CAAA,EACnBC,EACJ,OAAOT,EAAAA,UAAU,WAAc,WAAa,MAAMA,YAAU,YAAcA,EAAAA,UAAU,UACtF,GAAIS,EACF,UAAWC,KAAYD,EAAW,CAChC,MAAME,EAAS,CACb,CACE,KAAMD,EAAS,KACf,KAAMV,EAAAA,UAAU,iBAAiBU,EAAS,IAAI,EAC9C,KAAMA,EAAS,KACf,OAAQ,MAAA,EAEV,CACE,KAAMA,EAAS,OACf,KAAMV,EAAAA,UAAU,mBAAmBU,EAAS,IAAI,EAChD,KAAM,GAAGA,EAAS,IAAI,UACtB,OAAQ,QAAA,EAEV,CACE,KAAMA,EAAS,KACf,KAAMV,EAAAA,UAAU,iBAAiBU,EAAS,IAAI,EAC9C,KAAM,GAAGA,EAAS,IAAI,YACtB,OAAQ,MAAA,EAEV,CACE,KAAMA,EAAS,KACf,KAAMV,EAAAA,UAAU,iBAAiBU,EAAS,IAAI,EAC9C,KAAM,GAAGA,EAAS,IAAI,YACtB,OAAQ,MAAA,CACV,EAEF,UAAWE,KAASD,EAEhBC,EAAM,MACNZ,EAAAA,UAAU,cAAc,YACtB,CAAE,SAAUU,EAAS,KAAM,OAAQE,EAAM,MAAA,EACzCL,CAAA,GAGGL,EAAO,SAASU,EAAM,IAAI,GAC7BV,EAAO,SAASF,EAAAA,UAAU,gBAAiB,CACzC,KAAMY,EAAM,KACZ,KAAMA,EAAM,KACZ,UAAWA,EAAM,KACjB,KAAM,CACJ,IAAK,GACL,SAAUA,EAAM,KAAK,OAAS,GAAGF,EAAS,IAAI,IAAIE,EAAM,MAAM,GAC9D,SAAUF,EAAS,KACnB,OAAQE,EAAM,OACd,cAAeA,EAAM,KAAK,cAC1B,KAAMA,EAAM,KAAK,IAAA,CACnB,CACD,EAEHJ,EAAO,KAAKI,EAAM,IAAI,GAElBV,EAAO,SAASU,EAAM,IAAI,GAC5BV,EAAO,YAAYU,EAAM,IAAI,CAIrC,CAGF,OAAOJ,CACT,EAEaK,EAASX,IAuDb,CACL,WAvDiB,MAAOC,GAAuC,CAC/D,MAAMW,EAASb,EAAUC,EAAQC,CAAE,EAEnC,GAAI,OAAOW,EAAW,IACpB,OAAOA,EAIT,MAAMP,EAAc,MAAMP,YAAU,cAAc,iBAAA,EAE5C,CAAE,OAAAe,EAAQ,QAAAC,CAAA,EAAYC,SAAA,EAEtBC,EAAOf,EAAG,KAEhB,IAAIQ,EACJ,OAAIJ,IAEFY,gBAAA,EAAgB,YAAY,MAAQZ,EAEpCI,EAAS,MAAML,EAAgBJ,EAAQK,CAAW,EAE9C,OAAOJ,EAAG,MAAS,UAAYQ,EAAO,SAASR,EAAG,IAAI,IACxDY,EAAO,CACL,UAAWZ,EAAG,KACd,YAAaA,EAAG,OAChB,mBAAoBe,EAAK,cACzB,MAAOA,EAAK,SACZ,KAAMA,EAAK,IAAA,CACZ,EACM,IAKPf,EAAG,OAASH,EAAAA,UAAU,kBACxBe,EAAO,CACL,UAAWZ,EAAG,KACd,YAAaA,EAAG,OAChB,mBAAoBe,EAAK,cACzB,MAAOA,EAAK,SACZ,KAAMA,EAAK,IAAA,CACZ,EACM,IACEf,EAAG,OAASH,EAAAA,UAAU,kBAC3BgB,EAAQ,OAAO,WAAaL,GAAQ,SAASK,EAAQ,MAAM,SAAS,EAC/D,CAAE,KAAMA,EAAQ,MAAM,UAAW,OAAQA,EAAQ,MAAM,WAAA,EAEzD,CAAE,KAAMhB,EAAAA,UAAU,gBAAA,EAIpB,EACT,CAGE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RouteLocationNormalizedGeneric, Router, RouteRecordRaw } from 'vue-router';
|
|
2
|
+
import { CanAccessItem } from '../provides';
|
|
3
|
+
export type SkyLayoutRouteMeta = {
|
|
4
|
+
tab: true;
|
|
5
|
+
resource: string;
|
|
6
|
+
action: 'list' | 'create' | 'edit' | 'show';
|
|
7
|
+
row: string;
|
|
8
|
+
column: string;
|
|
9
|
+
tabTitle: string;
|
|
10
|
+
keepAliveName?: string;
|
|
11
|
+
icon?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const getRoutes: () => RouteRecordRaw[];
|
|
14
|
+
export declare const checkAuth: (router: Router, to: RouteLocationNormalizedGeneric) => true | {
|
|
15
|
+
name: string;
|
|
16
|
+
} | undefined;
|
|
17
|
+
export declare const addLayoutRoutes: (router: Router, permissions: CanAccessItem[]) => Promise<string[]>;
|
|
18
|
+
export declare const guard: (router: Router) => {
|
|
19
|
+
beforeEach: (to: RouteLocationNormalizedGeneric) => Promise<boolean | {
|
|
20
|
+
name: string;
|
|
21
|
+
} | {
|
|
22
|
+
name: string;
|
|
23
|
+
params: import('vue-router').RouteParamsGeneric | undefined;
|
|
24
|
+
}>;
|
|
25
|
+
};
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { skyConfig as e } from "../setup/index.mjs";
|
|
2
|
+
import { useUser as s } from "../hooks/useUser.mjs";
|
|
3
|
+
import { usePermission as p } from "../hooks/usePermission.mjs";
|
|
4
|
+
import "../hooks/useMenu.mjs";
|
|
5
|
+
import { useTab as l } from "../hooks/useTab.mjs";
|
|
6
|
+
import "../hooks/useRouteKeepAlive.mjs";
|
|
7
|
+
import "../hooks/useSize.mjs";
|
|
8
|
+
import "../hooks/useLang.mjs";
|
|
9
|
+
import "../hooks/useTheme.mjs";
|
|
10
|
+
import "../hooks/useList.mjs";
|
|
11
|
+
import "../hooks/useHiddenTitle.mjs";
|
|
12
|
+
import "../hooks/useForm.mjs";
|
|
13
|
+
import "../hooks/useShow.mjs";
|
|
14
|
+
import "../hooks/useReferenceArrayField.mjs";
|
|
15
|
+
import "../hooks/useTreeWithDetails.mjs";
|
|
16
|
+
import "../hooks/useFormGrid.mjs";
|
|
17
|
+
import "../hooks/useReferenceArrayInput.mjs";
|
|
18
|
+
import "vue";
|
|
19
|
+
const x = () => [
|
|
20
|
+
{
|
|
21
|
+
name: e.layoutRouteName,
|
|
22
|
+
path: "/",
|
|
23
|
+
component: () => e.layoutPage ?? import("../layouts/default.mjs"),
|
|
24
|
+
redirect: { name: e.welcomeRouteName },
|
|
25
|
+
children: [
|
|
26
|
+
{
|
|
27
|
+
name: e.welcomeRouteName,
|
|
28
|
+
path: "welcome",
|
|
29
|
+
component: () => e.welcomePage ?? import("../pages/welcome.mjs"),
|
|
30
|
+
meta: {
|
|
31
|
+
tab: !0,
|
|
32
|
+
tabTitle: "欢迎界面",
|
|
33
|
+
resource: "*",
|
|
34
|
+
action: "*",
|
|
35
|
+
row: "*",
|
|
36
|
+
column: "*"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: e.loginRouteName,
|
|
43
|
+
path: "/login",
|
|
44
|
+
component: () => e.loginPage ?? import("../pages/login.mjs")
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: e.notFoundRouteName,
|
|
48
|
+
path: "/:pathMatch(.*)*",
|
|
49
|
+
component: () => e.notFoundPage ?? import("../pages/not-found.mjs")
|
|
50
|
+
}
|
|
51
|
+
], f = (m, i) => {
|
|
52
|
+
const { isLogin: a } = s();
|
|
53
|
+
if (m.hasRoute(e.loginRouteName)) {
|
|
54
|
+
if (i.name === e.loginRouteName)
|
|
55
|
+
return a.value ? { name: e.layoutRouteName } : !0;
|
|
56
|
+
if (!a.value)
|
|
57
|
+
return { name: e.loginRouteName };
|
|
58
|
+
}
|
|
59
|
+
}, N = async (m, i) => {
|
|
60
|
+
const a = [], n = typeof e.resources == "function" ? await e.resources() : e.resources;
|
|
61
|
+
if (n)
|
|
62
|
+
for (const t of n) {
|
|
63
|
+
const u = [
|
|
64
|
+
{
|
|
65
|
+
comp: t.list,
|
|
66
|
+
name: e.getListRouteName(t.name),
|
|
67
|
+
path: t.name,
|
|
68
|
+
action: "list"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
comp: t.create,
|
|
72
|
+
name: e.getCreateRouteName(t.name),
|
|
73
|
+
path: `${t.name}/create`,
|
|
74
|
+
action: "create"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
comp: t.edit,
|
|
78
|
+
name: e.getEditRouteName(t.name),
|
|
79
|
+
path: `${t.name}/edit/:id`,
|
|
80
|
+
action: "edit"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
comp: t.show,
|
|
84
|
+
name: e.getShowRouteName(t.name),
|
|
85
|
+
path: `${t.name}/show/:id`,
|
|
86
|
+
action: "show"
|
|
87
|
+
}
|
|
88
|
+
];
|
|
89
|
+
for (const o of u)
|
|
90
|
+
o.comp && e.dataProvider?.canAccess?.(
|
|
91
|
+
{ resource: t.name, action: o.action },
|
|
92
|
+
i
|
|
93
|
+
) ? (m.hasRoute(o.name) || m.addRoute(e.layoutRouteName, {
|
|
94
|
+
name: o.name,
|
|
95
|
+
path: o.path,
|
|
96
|
+
component: o.comp,
|
|
97
|
+
meta: {
|
|
98
|
+
tab: !0,
|
|
99
|
+
tabTitle: o.comp.title || `${t.name} ${o.action}`,
|
|
100
|
+
resource: t.name,
|
|
101
|
+
action: o.action,
|
|
102
|
+
keepAliveName: o.comp.keepAliveName,
|
|
103
|
+
icon: o.comp.icon
|
|
104
|
+
}
|
|
105
|
+
}), a.push(o.name)) : m.hasRoute(o.name) && m.removeRoute(o.name);
|
|
106
|
+
}
|
|
107
|
+
return a;
|
|
108
|
+
}, M = (m) => ({
|
|
109
|
+
beforeEach: async (a) => {
|
|
110
|
+
const n = f(m, a);
|
|
111
|
+
if (typeof n < "u")
|
|
112
|
+
return n;
|
|
113
|
+
const t = await e.dataProvider?.getPermissions?.(), { addTab: u, lastTab: o } = l(), r = a.meta;
|
|
114
|
+
let c;
|
|
115
|
+
return t && (p().permissions.value = t, c = await N(m, t), typeof a.name == "string" && c.includes(a.name)) ? (u({
|
|
116
|
+
routeName: a.name,
|
|
117
|
+
routeParams: a.params,
|
|
118
|
+
routeKeepAliveName: r.keepAliveName,
|
|
119
|
+
title: r.tabTitle,
|
|
120
|
+
icon: r.icon
|
|
121
|
+
}), !0) : a.name === e.welcomeRouteName ? (u({
|
|
122
|
+
routeName: a.name,
|
|
123
|
+
routeParams: a.params,
|
|
124
|
+
routeKeepAliveName: r.keepAliveName,
|
|
125
|
+
title: r.tabTitle,
|
|
126
|
+
icon: r.icon
|
|
127
|
+
}), !0) : a.name === e.notFoundRouteName ? o.value?.routeName && c?.includes(o.value.routeName) ? { name: o.value.routeName, params: o.value.routeParams } : { name: e.welcomeRouteName } : !1;
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
export {
|
|
131
|
+
N as addLayoutRoutes,
|
|
132
|
+
f as checkAuth,
|
|
133
|
+
x as getRoutes,
|
|
134
|
+
M as guard
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/router/index.ts"],"sourcesContent":["import type { RouteLocationNormalizedGeneric, Router } from 'vue-router'\r\n\r\nimport { skyConfig } from '@/setup'\r\nimport type { RouteRecordRaw } from 'vue-router'\r\nimport { usePermission, useTab, useUser } from '@/hooks'\r\nimport type { CanAccessItem } from '@/provides'\r\n\r\nexport type SkyLayoutRouteMeta = {\r\n tab: true\r\n resource: string\r\n action: 'list' | 'create' | 'edit' | 'show'\r\n row: string\r\n column: string\r\n tabTitle: string\r\n // 是否添加到 keepAlive 列表\r\n keepAliveName?: string\r\n icon?: string\r\n}\r\n\r\nexport const getRoutes = (): RouteRecordRaw[] => {\r\n return [\r\n {\r\n name: skyConfig.layoutRouteName,\r\n path: '/',\r\n component: () => skyConfig.layoutPage ?? import('@/layouts/default'),\r\n redirect: { name: skyConfig.welcomeRouteName },\r\n children: [\r\n {\r\n name: skyConfig.welcomeRouteName,\r\n path: 'welcome',\r\n component: () => skyConfig.welcomePage ?? import('@/pages/welcome'),\r\n meta: {\r\n tab: true,\r\n tabTitle: '欢迎界面',\r\n resource: '*',\r\n action: '*',\r\n row: '*',\r\n column: '*',\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n name: skyConfig.loginRouteName,\r\n path: '/login',\r\n component: () => skyConfig.loginPage ?? import('@/pages/login'),\r\n },\r\n {\r\n name: skyConfig.notFoundRouteName,\r\n path: '/:pathMatch(.*)*',\r\n component: () => skyConfig.notFoundPage ?? import('@/pages/not-found'),\r\n },\r\n ]\r\n}\r\n\r\nexport const checkAuth = (router: Router, to: RouteLocationNormalizedGeneric) => {\r\n const { isLogin } = useUser()\r\n\r\n // 检测是否需要登录\r\n // openLogin - 表示开启登录界面功能\r\n // isLogin - 表示是否已经登录\r\n const openLogin = router.hasRoute(skyConfig.loginRouteName)\r\n if (openLogin) {\r\n if (to.name === skyConfig.loginRouteName) {\r\n if (isLogin.value) {\r\n return { name: skyConfig.layoutRouteName }\r\n } else {\r\n return true\r\n }\r\n } else {\r\n if (!isLogin.value) {\r\n return { name: skyConfig.loginRouteName }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport const addLayoutRoutes = async (router: Router, permissions: CanAccessItem[]) => {\r\n const result: string[] = []\r\n const resources =\r\n typeof skyConfig.resources === 'function' ? await skyConfig.resources() : skyConfig.resources\r\n if (resources) {\r\n for (const resource of resources) {\r\n const routes = [\r\n {\r\n comp: resource.list,\r\n name: skyConfig.getListRouteName(resource.name),\r\n path: resource.name,\r\n action: 'list',\r\n },\r\n {\r\n comp: resource.create,\r\n name: skyConfig.getCreateRouteName(resource.name),\r\n path: `${resource.name}/create`,\r\n action: 'create',\r\n },\r\n {\r\n comp: resource.edit,\r\n name: skyConfig.getEditRouteName(resource.name),\r\n path: `${resource.name}/edit/:id`,\r\n action: 'edit',\r\n },\r\n {\r\n comp: resource.show,\r\n name: skyConfig.getShowRouteName(resource.name),\r\n path: `${resource.name}/show/:id`,\r\n action: 'show',\r\n },\r\n ]\r\n for (const route of routes) {\r\n if (\r\n route.comp &&\r\n skyConfig.dataProvider?.canAccess?.(\r\n { resource: resource.name, action: route.action },\r\n permissions,\r\n )\r\n ) {\r\n if (!router.hasRoute(route.name)) {\r\n router.addRoute(skyConfig.layoutRouteName, {\r\n name: route.name,\r\n path: route.path,\r\n component: route.comp,\r\n meta: {\r\n tab: true,\r\n tabTitle: route.comp.title || `${resource.name} ${route.action}`,\r\n resource: resource.name,\r\n action: route.action,\r\n keepAliveName: route.comp.keepAliveName,\r\n icon: route.comp.icon,\r\n },\r\n })\r\n }\r\n result.push(route.name)\r\n } else {\r\n if (router.hasRoute(route.name)) {\r\n router.removeRoute(route.name)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return result\r\n}\r\n\r\nexport const guard = (router: Router) => {\r\n const beforeEach = async (to: RouteLocationNormalizedGeneric) => {\r\n const authTo = checkAuth(router, to)\r\n\r\n if (typeof authTo !== 'undefined') {\r\n return authTo\r\n }\r\n\r\n // 获取所有权限\r\n const permissions = await skyConfig.dataProvider?.getPermissions?.()\r\n\r\n const { addTab, lastTab } = useTab()\r\n\r\n const meta = to.meta as SkyLayoutRouteMeta\r\n\r\n let routes: string[] | undefined\r\n if (permissions) {\r\n // 每次路由获取权限,需要全局存储下来\r\n usePermission().permissions.value = permissions\r\n\r\n routes = await addLayoutRoutes(router, permissions)\r\n\r\n if (typeof to.name === 'string' && routes.includes(to.name)) {\r\n addTab({\r\n routeName: to.name,\r\n routeParams: to.params,\r\n routeKeepAliveName: meta.keepAliveName,\r\n title: meta.tabTitle,\r\n icon: meta.icon,\r\n })\r\n return true\r\n }\r\n }\r\n\r\n // 所有都支持访问 welcome\r\n if (to.name === skyConfig.welcomeRouteName) {\r\n addTab({\r\n routeName: to.name,\r\n routeParams: to.params,\r\n routeKeepAliveName: meta.keepAliveName,\r\n title: meta.tabTitle,\r\n icon: meta.icon,\r\n })\r\n return true\r\n } else if (to.name === skyConfig.notFoundRouteName) {\r\n if (lastTab.value?.routeName && routes?.includes(lastTab.value.routeName)) {\r\n return { name: lastTab.value.routeName, params: lastTab.value.routeParams }\r\n }\r\n return { name: skyConfig.welcomeRouteName }\r\n }\r\n\r\n // 无权限\r\n return false\r\n }\r\n\r\n return {\r\n beforeEach,\r\n }\r\n}\r\n"],"names":["getRoutes","skyConfig","checkAuth","router","to","isLogin","useUser","addLayoutRoutes","permissions","result","resources","resource","routes","route","guard","authTo","addTab","lastTab","useTab","meta","usePermission"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),i=require("../i18n/locales/en.json.cjs"),y=require("vue-i18n"),r=require("element-plus"),s=()=>Math.random().toString(16).slice(2),n=e=>`/sky/layout/${e}`,l=e=>`/sky/layout/${e}/create`,u=e=>`/sky/layout/${e}/edit`,m=e=>`/sky/layout/${e}/show`,t={sizeName:"sky:size",langName:"sky:lang",tokenName:"sky:user:token",usernameName:"sky:user:username",collapseName:"sky:menu:collapse",tabsName:"sky:tab:tabs",tabListStackName:"sky:tab:tabListStack",notFoundRouteName:"/sky/not-found",loginRouteName:"/sky/login",welcomeRouteName:"/sky/welcome",layoutRouteName:"/sky/layout",permissionThrottle:5e3,getRandomRouteName:s,getListRouteName:n,getCreateRouteName:l,getEditRouteName:u,getShowRouteName:m,locales:{en:i.default},themeEnabled:!1,getIconFnName:"getIconFn"},g={install:(e,c)=>{Object.assign(t,c),e.use(y.createI18n({legacy:!1,locale:"en",fallbackLocale:"en",messages:t.locales})),e.provide(t.getIconFnName,o=>{if(t.icons?.[o])return a.h(r.ElIcon,null,{default:()=>a.h(t.icons[o])})})}};exports.getCreateRouteName=l;exports.getEditRouteName=u;exports.getListRouteName=n;exports.getRandomRouteName=s;exports.getShowRouteName=m;exports.skyAdmin=g;exports.skyConfig=t;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/setup/index.ts"],"sourcesContent":["import type { CanAccessItem, DataProvider } from '@/provides/dataProvider'\r\nimport { h, type App, type Component, type VNode } from 'vue'\r\nimport { default as en } from '@/i18n/locales/en.json'\r\nimport { createI18n } from 'vue-i18n'\r\nimport type { RouteParamsGeneric } from 'vue-router'\r\nimport { ElIcon } from 'element-plus'\r\n\r\nexport type SkyLanguage = typeof en\r\n\r\nexport type SkyComponent = Component & {\r\n title?: string\r\n // 是否添加到 keepAlive 列表\r\n keepAliveName?: string\r\n icon?: string\r\n}\r\n\r\nexport interface SkyResource {\r\n name: string\r\n list?: SkyComponent\r\n create?: SkyComponent\r\n edit?: SkyComponent\r\n show?: SkyComponent\r\n}\r\n\r\nexport interface SkyMenu {\r\n routeName: string\r\n routeParams?: RouteParamsGeneric\r\n title: string\r\n icon?: string\r\n children?: SkyMenu[]\r\n permission: CanAccessItem\r\n}\r\n\r\nexport type SkyConfig = {\r\n sizeName: string\r\n langName: string\r\n tokenName: string\r\n usernameName: string\r\n collapseName: string\r\n tabsName: string\r\n tabListStackName: string\r\n notFoundRouteName: string\r\n loginRouteName: string\r\n welcomeRouteName: string\r\n layoutRouteName: string\r\n permissionThrottle: number\r\n dataProvider?: DataProvider\r\n icons?: Record<string, Component>\r\n menus?: SkyMenu[]\r\n resources?: SkyResource[] | (() => Promise<SkyResource[]>)\r\n getRandomRouteName: () => string\r\n getListRouteName: (resource: string) => string\r\n getCreateRouteName: (resource: string) => string\r\n getEditRouteName: (resource: string) => string\r\n getShowRouteName: (resource: string) => string\r\n locales: Record<string, SkyLanguage>\r\n loginPage?: Component | Promise<Component>\r\n layoutPage?: Component | Promise<Component>\r\n notFoundPage?: Component | Promise<Component>\r\n welcomePage?: Component | Promise<Component>\r\n logoImg?: string\r\n loginImg?: string\r\n themeEnabled: boolean\r\n getIconFnName: string\r\n}\r\n\r\nexport type SkyConfigKey = keyof SkyConfig\r\n\r\nexport const getRandomRouteName = () => Math.random().toString(16).slice(2)\r\nexport const getListRouteName = (resource: string) => `/sky/layout/${resource}`\r\nexport const getCreateRouteName = (resource: string) => `/sky/layout/${resource}/create`\r\nexport const getEditRouteName = (resource: string) => `/sky/layout/${resource}/edit`\r\nexport const getShowRouteName = (resource: string) => `/sky/layout/${resource}/show`\r\n\r\nexport const skyConfig: SkyConfig = {\r\n sizeName: 'sky:size',\r\n langName: 'sky:lang',\r\n tokenName: 'sky:user:token',\r\n usernameName: 'sky:user:username',\r\n collapseName: 'sky:menu:collapse',\r\n tabsName: 'sky:tab:tabs',\r\n tabListStackName: 'sky:tab:tabListStack',\r\n notFoundRouteName: '/sky/not-found',\r\n loginRouteName: '/sky/login',\r\n welcomeRouteName: '/sky/welcome',\r\n layoutRouteName: '/sky/layout',\r\n permissionThrottle: 5000,\r\n getRandomRouteName,\r\n getListRouteName,\r\n getCreateRouteName,\r\n getEditRouteName,\r\n getShowRouteName,\r\n locales: {\r\n en,\r\n },\r\n themeEnabled: false,\r\n getIconFnName: 'getIconFn',\r\n}\r\n\r\nexport type GetIconFn = (icon: string) => VNode | undefined\r\n\r\nexport const skyAdmin = {\r\n install: (app: App, config: Partial<SkyConfig>) => {\r\n Object.assign(skyConfig, config)\r\n\r\n app.use(\r\n createI18n({\r\n // 适配 composition API\r\n legacy: false,\r\n locale: 'en',\r\n fallbackLocale: 'en',\r\n messages: skyConfig.locales,\r\n }),\r\n )\r\n\r\n app.provide<GetIconFn>(skyConfig.getIconFnName, (icon) => {\r\n if (skyConfig.icons?.[icon]) {\r\n return h(ElIcon, null, {\r\n default: () => h(skyConfig.icons![icon]!),\r\n })\r\n }\r\n })\r\n },\r\n}\r\n"],"names":["getRandomRouteName","getListRouteName","resource","getCreateRouteName","getEditRouteName","getShowRouteName","skyConfig","en","skyAdmin","app","config","createI18n","icon","h","ElIcon"],"mappings":"gMAoEaA,EAAqB,IAAM,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,MAAM,CAAC,EAC7DC,EAAoBC,GAAqB,eAAeA,CAAQ,GAChEC,EAAsBD,GAAqB,eAAeA,CAAQ,UAClEE,EAAoBF,GAAqB,eAAeA,CAAQ,QAChEG,EAAoBH,GAAqB,eAAeA,CAAQ,QAEhEI,EAAuB,CAClC,SAAU,WACV,SAAU,WACV,UAAW,iBACX,aAAc,oBACd,aAAc,oBACd,SAAU,eACV,iBAAkB,uBAClB,kBAAmB,iBACnB,eAAgB,aAChB,iBAAkB,eAClB,gBAAiB,cACjB,mBAAoB,IACpB,mBAAAN,EACA,iBAAAC,EACA,mBAAAE,EACA,iBAAAC,EACA,iBAAAC,EACA,QAAS,CAAA,GACPE,EAAAA,OAAA,EAEF,aAAc,GACd,cAAe,WACjB,EAIaC,EAAW,CACtB,QAAS,CAACC,EAAUC,IAA+B,CACjD,OAAO,OAAOJ,EAAWI,CAAM,EAE/BD,EAAI,IACFE,aAAW,CAET,OAAQ,GACR,OAAQ,KACR,eAAgB,KAChB,SAAUL,EAAU,OAAA,CACrB,CAAA,EAGHG,EAAI,QAAmBH,EAAU,cAAgBM,GAAS,CACxD,GAAIN,EAAU,QAAQM,CAAI,EACxB,OAAOC,EAAAA,EAAEC,EAAAA,OAAQ,KAAM,CACrB,QAAS,IAAMD,EAAAA,EAAEP,EAAU,MAAOM,CAAI,CAAE,CAAA,CACzC,CAEL,CAAC,CACH,CACF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { CanAccessItem, DataProvider } from '../provides/dataProvider';
|
|
2
|
+
import { App, Component, VNode } from 'vue';
|
|
3
|
+
import { default as en } from '../i18n/locales/en.json';
|
|
4
|
+
import { RouteParamsGeneric } from 'vue-router';
|
|
5
|
+
export type SkyLanguage = typeof en;
|
|
6
|
+
export type SkyComponent = Component & {
|
|
7
|
+
title?: string;
|
|
8
|
+
keepAliveName?: string;
|
|
9
|
+
icon?: string;
|
|
10
|
+
};
|
|
11
|
+
export interface SkyResource {
|
|
12
|
+
name: string;
|
|
13
|
+
list?: SkyComponent;
|
|
14
|
+
create?: SkyComponent;
|
|
15
|
+
edit?: SkyComponent;
|
|
16
|
+
show?: SkyComponent;
|
|
17
|
+
}
|
|
18
|
+
export interface SkyMenu {
|
|
19
|
+
routeName: string;
|
|
20
|
+
routeParams?: RouteParamsGeneric;
|
|
21
|
+
title: string;
|
|
22
|
+
icon?: string;
|
|
23
|
+
children?: SkyMenu[];
|
|
24
|
+
permission: CanAccessItem;
|
|
25
|
+
}
|
|
26
|
+
export type SkyConfig = {
|
|
27
|
+
sizeName: string;
|
|
28
|
+
langName: string;
|
|
29
|
+
tokenName: string;
|
|
30
|
+
usernameName: string;
|
|
31
|
+
collapseName: string;
|
|
32
|
+
tabsName: string;
|
|
33
|
+
tabListStackName: string;
|
|
34
|
+
notFoundRouteName: string;
|
|
35
|
+
loginRouteName: string;
|
|
36
|
+
welcomeRouteName: string;
|
|
37
|
+
layoutRouteName: string;
|
|
38
|
+
permissionThrottle: number;
|
|
39
|
+
dataProvider?: DataProvider;
|
|
40
|
+
icons?: Record<string, Component>;
|
|
41
|
+
menus?: SkyMenu[];
|
|
42
|
+
resources?: SkyResource[] | (() => Promise<SkyResource[]>);
|
|
43
|
+
getRandomRouteName: () => string;
|
|
44
|
+
getListRouteName: (resource: string) => string;
|
|
45
|
+
getCreateRouteName: (resource: string) => string;
|
|
46
|
+
getEditRouteName: (resource: string) => string;
|
|
47
|
+
getShowRouteName: (resource: string) => string;
|
|
48
|
+
locales: Record<string, SkyLanguage>;
|
|
49
|
+
loginPage?: Component | Promise<Component>;
|
|
50
|
+
layoutPage?: Component | Promise<Component>;
|
|
51
|
+
notFoundPage?: Component | Promise<Component>;
|
|
52
|
+
welcomePage?: Component | Promise<Component>;
|
|
53
|
+
logoImg?: string;
|
|
54
|
+
loginImg?: string;
|
|
55
|
+
themeEnabled: boolean;
|
|
56
|
+
getIconFnName: string;
|
|
57
|
+
};
|
|
58
|
+
export type SkyConfigKey = keyof SkyConfig;
|
|
59
|
+
export declare const getRandomRouteName: () => string;
|
|
60
|
+
export declare const getListRouteName: (resource: string) => string;
|
|
61
|
+
export declare const getCreateRouteName: (resource: string) => string;
|
|
62
|
+
export declare const getEditRouteName: (resource: string) => string;
|
|
63
|
+
export declare const getShowRouteName: (resource: string) => string;
|
|
64
|
+
export declare const skyConfig: SkyConfig;
|
|
65
|
+
export type GetIconFn = (icon: string) => VNode | undefined;
|
|
66
|
+
export declare const skyAdmin: {
|
|
67
|
+
install: (app: App, config: Partial<SkyConfig>) => void;
|
|
68
|
+
};
|