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