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,96 @@
|
|
|
1
|
+
import "element-plus/es/components/button/style/css";
|
|
2
|
+
import "element-plus/es/components/card/style/css";
|
|
3
|
+
import { defineComponent as A, createVNode as t, isVNode as g } from "vue";
|
|
4
|
+
import "../../hooks/useUser.mjs";
|
|
5
|
+
import "../../hooks/usePermission.mjs";
|
|
6
|
+
import "../../hooks/useMenu.mjs";
|
|
7
|
+
import { useTab as C } from "../../hooks/useTab.mjs";
|
|
8
|
+
import { useRouteKeepAlive as N } from "../../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 { useProvideForm as _ } from "../../hooks/useForm.mjs";
|
|
15
|
+
import "../../hooks/useShow.mjs";
|
|
16
|
+
import "../../hooks/useReferenceArrayField.mjs";
|
|
17
|
+
import { useTreeWithDetails as D } from "../../hooks/useTreeWithDetails.mjs";
|
|
18
|
+
import "../../hooks/useFormGrid.mjs";
|
|
19
|
+
import "../../hooks/useReferenceArrayInput.mjs";
|
|
20
|
+
import { EpDocumentAdd as R } from "../../icons/EpDocumentAdd.mjs";
|
|
21
|
+
import { skyConfig as T } from "../../setup/index.mjs";
|
|
22
|
+
import { useAsyncState as h } from "@vueuse/core";
|
|
23
|
+
import { ElCard as j, ElButton as w } from "element-plus";
|
|
24
|
+
import { useI18n as E } from "vue-i18n";
|
|
25
|
+
import { useRoute as P, useRouter as x } from "vue-router";
|
|
26
|
+
import { SkyCanAccess as K } from "../can-access/index.mjs";
|
|
27
|
+
function L(o) {
|
|
28
|
+
return typeof o == "function" || Object.prototype.toString.call(o) === "[object Object]" && !g(o);
|
|
29
|
+
}
|
|
30
|
+
const ne = /* @__PURE__ */ A({
|
|
31
|
+
name: "SkyCreate",
|
|
32
|
+
inheritAttrs: !1,
|
|
33
|
+
setup(o, {
|
|
34
|
+
slots: c,
|
|
35
|
+
attrs: p
|
|
36
|
+
}) {
|
|
37
|
+
const {
|
|
38
|
+
t: l
|
|
39
|
+
} = E(), r = P(), f = x(), {
|
|
40
|
+
removeTab: d,
|
|
41
|
+
lastTab: i
|
|
42
|
+
} = C(), {
|
|
43
|
+
formData: v,
|
|
44
|
+
formRef: m
|
|
45
|
+
} = _(), s = D(), {
|
|
46
|
+
removeKeepAlive: y
|
|
47
|
+
} = N(), a = r.meta;
|
|
48
|
+
let n;
|
|
49
|
+
const {
|
|
50
|
+
isLoading: b,
|
|
51
|
+
execute: S
|
|
52
|
+
} = h(async (e) => (n = new AbortController(), T.dataProvider?.create?.(r.meta.resource, {
|
|
53
|
+
data: e,
|
|
54
|
+
signal: n.signal
|
|
55
|
+
})), void 0, {
|
|
56
|
+
immediate: !1
|
|
57
|
+
}), k = async () => {
|
|
58
|
+
if (!m.value || !await m.value.validate())
|
|
59
|
+
return;
|
|
60
|
+
const u = await S(0, {
|
|
61
|
+
...v
|
|
62
|
+
});
|
|
63
|
+
u && (s?.createSuccess ? s.createSuccess(u) : (a.keepAliveName && y(a.keepAliveName), d(r.name), i.value && f.replace({
|
|
64
|
+
name: i.value.routeName,
|
|
65
|
+
params: i.value.routeParams
|
|
66
|
+
})));
|
|
67
|
+
};
|
|
68
|
+
return () => t("div", {
|
|
69
|
+
class: "sky-create"
|
|
70
|
+
}, [t(K, {
|
|
71
|
+
resource: a.resource,
|
|
72
|
+
action: "create"
|
|
73
|
+
}, {
|
|
74
|
+
default: () => [t(j, p, {
|
|
75
|
+
default: c.default,
|
|
76
|
+
footer: () => {
|
|
77
|
+
let e;
|
|
78
|
+
return t("div", {
|
|
79
|
+
class: "sky-create__footer"
|
|
80
|
+
}, [t(w, {
|
|
81
|
+
type: "primary",
|
|
82
|
+
icon: R,
|
|
83
|
+
loading: b.value,
|
|
84
|
+
onClick: k
|
|
85
|
+
}, L(e = l("button.submit")) ? e : {
|
|
86
|
+
default: () => [e]
|
|
87
|
+
})]);
|
|
88
|
+
}
|
|
89
|
+
})]
|
|
90
|
+
})]);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
export {
|
|
94
|
+
ne as SkyCreate
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/components/create/index.tsx"],"sourcesContent":["import { useProvideForm, useRouteKeepAlive, useTab, useTreeWithDetails } from '@/hooks'\nimport { EpDocumentAdd } from '@/icons/EpDocumentAdd'\nimport type { CreateResult } from '@/provides'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElButton, ElCard, type CardProps } from 'element-plus'\nimport { defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport const SkyCreate = defineComponent<Partial<CardProps>>({\n name: 'SkyCreate',\n inheritAttrs: false,\n setup(_props, { slots, attrs }) {\n const { t } = useI18n()\n const route = useRoute()\n const router = useRouter()\n const { removeTab, lastTab } = useTab()\n const { formData, formRef } = useProvideForm()\n const treeWithDetails = useTreeWithDetails()\n const { removeKeepAlive } = useRouteKeepAlive()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n let controller: AbortController | undefined\n\n const { isLoading: formSubmitLoging, execute } = useAsyncState<\n CreateResult | undefined,\n [data: Record<string, unknown>]\n >(\n async (data) => {\n controller = new AbortController()\n return skyConfig.dataProvider?.create?.(route.meta.resource as string, {\n data,\n signal: controller.signal,\n })\n },\n undefined,\n {\n immediate: false,\n },\n )\n\n const onSumit = async () => {\n if (!formRef.value) {\n return\n }\n const valid = await formRef.value.validate()\n if (!valid) {\n return\n }\n const res = await execute(0, { ...formData })\n if (res) {\n if (treeWithDetails?.createSuccess) {\n treeWithDetails.createSuccess(res)\n } else {\n if (routeMeta.keepAliveName) {\n removeKeepAlive(routeMeta.keepAliveName)\n }\n removeTab(route.name as string)\n if (lastTab.value) {\n router.replace({ name: lastTab.value.routeName, params: lastTab.value.routeParams })\n }\n }\n }\n }\n\n return () => (\n <div class=\"sky-create\">\n <SkyCanAccess resource={routeMeta.resource} action=\"create\">\n <ElCard {...attrs}>\n {{\n default: slots.default,\n footer: () => (\n <div class=\"sky-create__footer\">\n <ElButton\n type=\"primary\"\n icon={EpDocumentAdd}\n loading={formSubmitLoging.value}\n onClick={onSumit}\n >\n {t('button.submit')}\n </ElButton>\n </div>\n ),\n }}\n </ElCard>\n </SkyCanAccess>\n </div>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyCreate","defineComponent","name","inheritAttrs","attrs","t","route","useRoute","router","useRouter","lastTab","formRef","treeWithDetails","useTreeWithDetails","removeKeepAlive","routeMeta","controller","isLoading","execute","useAsyncState","data","immediate","onSumit","res","removeTab","params","_createVNode","default","footer","_slot","EpDocumentAdd"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAU4C,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAE5C,MAAAE,KAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA;;IACuBC,OAAAA;AAAAA,EAAM,GAAA;;MACnBC,GAAAA;AAAAA,aACRC,IAAAC,EAAA,GACAC,IAAAC,EAAA;;MACmBC,SAAAA;AAAAA;;MACDC,SAAAA;AAAAA,aAClBC,IAAAC,EAAA;MACQC,iBAAAA;AAAAA,aACRC,IAAAT,EAAA;AAEA,QAAAU;;MAEQC,WAAAA;AAAAA,MAA6BC,SAAAA;AAAAA,IAAQ,IAAAC,EAAA,OAAAC,OAKzCJ,IAAAA,IAAAA,gBAAAA;;;IAIA,CAAA;MAIAK,WAAAA;AAAAA,IACF,CAAA,GAGFC,IAAA,YAAA;UACE,CAAAX,EAAA;AAKE;AAEF,YAAAY,IAAA,MAAAL,EAAA,GAAA;AAAA;MAA2C,CAAA;AAC3C,MAAAK,yBAEIX,EAAAA,cAAAA,CAAAA,wBAGEE,EAAAA,EAAAA,aAAAA,GAEFU,EAAAA,EAAAA,IAAAA;QAEmBtB,MAAAA,EAAAA,MAAAA;AAAAA,QAA+BuB,QAAAA,EAAAA,MAAAA;AAAAA,MAAkC,CAAA;AAAA;AAM1F,WAAA,MAAAC,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA;;MAEuC,QAAA;AAAA,IAAA,GAAA;AAAA,MAAAC,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,GAAAA;AAAAA;QAIpCC,QAAAA,MAAAA;AAAQ,cAAAC;AAAA,iBAAAH,EAAA,OAAA;AAAA,YAAA,OAAA;AAAA;YAAA,MAAA;AAAA,YAAA,MAAAI;AAAA;;;;UAQiB,CAAA,CAAA,CAAA;AAAA,QAAA;AAAA,MAGxB,CAAA,CAAA;AAAA;EAMb;AACF,CAAA;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/alert/style/css");require("element-plus/es/components/button/style/css");require("element-plus/es/components/popconfirm/style/css");require("element-plus/es/components/skeleton/style/css");require("element-plus/es/components/table/style/css");require("element-plus/es/components/table-column/style/css");require("element-plus/es/components/text/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 V=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 E=require("../../icons/EpDelete.cjs"),T=require("../../setup/index.cjs"),k=require("@vueuse/core"),r=require("element-plus"),C=require("vue-i18n"),x=require("vue-router"),D=require("../can-access/index.cjs");function R(a){return typeof a=="function"||Object.prototype.toString.call(a)==="[object Object]"&&!e.isVNode(a)}const h=e.defineComponent({name:"SkyDataTable",inheritAttrs:!1,props:{id:{type:String,default:"id"}},setup(a,{slots:d,attrs:q}){const{t:o}=C.useI18n(),i=x.useRoute(),{getList:f,listLoading:m,listData:p}=V.useList(),y=i.meta,b=e.useTemplateRef("tableRef"),l=e.shallowRef([]),u=t=>{l.value=t},s=()=>{l.value=[],b.value?.clearSelection()},g=async()=>{await S(),await f(),s()};let c;const{isLoading:v,execute:S}=k.useAsyncState(async()=>{if(l.value.map(n=>String(n[a.id])).length)return c=new AbortController,T.skyConfig.dataProvider?.deleteMany?.(i.meta.resource,{ids:l.value.map(n=>String(n[a.id])),signal:c.signal})},void 0,{immediate:!1}),N=e.computed(()=>!!(v.value||m.value));return()=>e.createVNode(r.ElSkeleton,{loading:N.value,animated:!0},{default:()=>[e.createVNode("div",{class:"sky-data-table"},[e.createVNode(D.SkyCanAccess,{resource:y.resource,action:"delete"},{default:()=>[l.value.length>0&&e.createVNode(r.ElAlert,{class:"sky-data-table__alert",type:"primary",onClose:s},{default:()=>[e.createVNode(r.ElText,{type:"primary"},{default:()=>[l.value.length,e.createTextVNode(" "),o("selectedItems")]}),e.createVNode(r.ElPopconfirm,{title:o("popconfirm.remove"),onConfirm:g},{reference:()=>{let t;return e.createVNode(r.ElButton,{text:!0,type:"danger",icon:E.EpDelete},R(t=o("button.remove"))?t:{default:()=>[t]})}})]})]}),e.createVNode(r.ElTable,e.mergeProps({ref:"tableRef",class:"sky-data-table__main",data:p.value?.data,border:!0,onSelect:t=>u(t),"onSelect-all":t=>u(t)},q),{default:()=>[e.createVNode(r.ElTableColumn,{type:"selection"},null),e.createVNode(r.ElTableColumn,{type:"index",label:"#",width:"50"},null),d.default?.()]})])]})}});exports.SkyDataTable=h;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/data-table/index.tsx"],"sourcesContent":["import { useList } from '@/hooks'\r\nimport { EpDelete } from '@/icons/EpDelete'\r\nimport type { DeleteManyResult } from '@/provides'\r\nimport { skyConfig } from '@/setup'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport {\r\n ElAlert,\r\n ElButton,\r\n ElPopconfirm,\r\n ElSkeleton,\r\n ElTable,\r\n ElTableColumn,\r\n ElText,\r\n type TableProps,\r\n} from 'element-plus'\r\nimport { computed, defineComponent, shallowRef, useTemplateRef } from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\n\r\nexport interface SkyDataTableProps {\r\n id?: string\r\n}\r\n\r\nexport const SkyDataTable = defineComponent<\r\n SkyDataTableProps & Partial<TableProps<Record<string, unknown>>>\r\n>({\r\n name: 'SkyDataTable',\r\n inheritAttrs: false,\r\n props: {\r\n id: {\r\n type: String,\r\n default: 'id',\r\n },\r\n },\r\n setup(props, { slots, attrs }) {\r\n const { t } = useI18n()\r\n const route = useRoute()\r\n const { getList, listLoading, listData } = useList()!\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n const tableRef = useTemplateRef<InstanceType<typeof ElTable> | null>('tableRef')\r\n const selectedItems = shallowRef<Record<string, unknown>[]>([])\r\n const onSelect = (selection: Record<string, unknown>[]) => {\r\n selectedItems.value = selection\r\n }\r\n const onClose = () => {\r\n selectedItems.value = []\r\n tableRef.value?.clearSelection()\r\n }\r\n const onDelete = async () => {\r\n await execute()\r\n await getList()\r\n onClose()\r\n }\r\n\r\n let controller: AbortController | undefined\r\n const { isLoading: deleteLoading, execute } = useAsyncState<DeleteManyResult | undefined>(\r\n async () => {\r\n const ids = selectedItems.value.map((item) => String(item[props.id!]))\r\n if (ids.length) {\r\n controller = new AbortController()\r\n return skyConfig.dataProvider?.deleteMany?.(route.meta.resource as string, {\r\n ids: selectedItems.value.map((item) => String(item[props.id!])),\r\n signal: controller.signal,\r\n })\r\n }\r\n },\r\n undefined,\r\n {\r\n immediate: false,\r\n },\r\n )\r\n\r\n const loading = computed<boolean>(() => Boolean(deleteLoading.value || listLoading.value))\r\n\r\n return () => (\r\n <ElSkeleton loading={loading.value} animated>\r\n <div class=\"sky-data-table\">\r\n <SkyCanAccess resource={routeMeta.resource} action=\"delete\">\r\n {selectedItems.value.length > 0 && (\r\n <ElAlert class=\"sky-data-table__alert\" type=\"primary\" onClose={onClose}>\r\n <ElText type=\"primary\">\r\n {selectedItems.value.length} {t('selectedItems')}\r\n </ElText>\r\n <ElPopconfirm title={t('popconfirm.remove')} onConfirm={onDelete}>\r\n {{\r\n reference: () => (\r\n <ElButton text type=\"danger\" icon={EpDelete}>\r\n {t('button.remove')}\r\n </ElButton>\r\n ),\r\n }}\r\n </ElPopconfirm>\r\n </ElAlert>\r\n )}\r\n </SkyCanAccess>\r\n <ElTable\r\n ref=\"tableRef\"\r\n class=\"sky-data-table__main\"\r\n data={listData.value?.data}\r\n border\r\n onSelect={(selection) => onSelect(selection)}\r\n onSelect-all={(selection) => onSelect(selection)}\r\n {...attrs}\r\n >\r\n <ElTableColumn type=\"selection\" />\r\n <ElTableColumn type=\"index\" label=\"#\" width=\"50\" />\r\n {slots.default?.()}\r\n </ElTable>\r\n </div>\r\n </ElSkeleton>\r\n )\r\n },\r\n})\r\n"],"names":["_isSlot","s","_isVNode","SkyDataTable","defineComponent","name","inheritAttrs","props","id","type","default","attrs","t","route","useRoute","listData","routeMeta","tableRef","useTemplateRef","selectedItems","shallowRef","onDelete","onClose","controller","isLoading","execute","item","ids","immediate","loading","computed","deleteLoading","listLoading","reference","_slot","_createVNode","ElTable","_mergeProps","selection","onSelect","slots"],"mappings":"k0CAkB4C,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAO5C,MAAAE,EAAAC,EAAAA,gBAAA,CAGEC,KAAAA,eACAC,aAAAA,GACAC,MAAAA,CACEC,GAAAA,CACEC,KAAAA,OACAC,QAAAA,IACF,oBAEoBC,MAAAA,CAAM,EAAA,OAClBC,EAAAA,eACRC,EAAAC,EAAAA,SAAA,2BAC8BC,SAAAA,eAC9BC,EAAAH,EAAA,KAEAI,EAAAC,EAAAA,eAAA,UAAA,EACAC,EAAAC,EAAAA,WAAA,EAAA,qCAMEH,EAAAA,OAAAA,eAAAA,GAEFI,EAAA,SAAA,qBAGEC,EAAAA,GAGF,IAAAC,QACQC,UAAAA,EAA0BC,QAAAA,gCAE9BN,EAAA,MAAA,IAAAO,GAAA,OAAAA,EAAAnB,EAAA,EAAA,CAAA,CAAA,SAEEgB,OAAAA,EAAAA,IAAAA,wEAEEI,IAAAA,EAAAA,MAAAA,IAAAA,GAAAA,OAAAA,EAAAA,EAAAA,EAAAA,CAAAA,CAAAA,iBAEF,CAAA,WAKFC,UAAAA,EACF,CAAA,EAGFC,EAAAC,EAAAA,SAAA,IAAA,GAAAC,EAAA,OAAAC,EAAA,MAAA,wDAGoC,SAAA,EAAA,EAAA,mCAAA,MAAA,qEAEY,OAAA,QAAA,EAAA,CAAAtB,QAAAA,IAAAA,CAAAA,EAAAA,MAAAA,OAAAA,GAAAA,EAAAA,YAAAA,UAAAA,CACT,MAAA,wBAAA,KAAA,mBACyC,EAAA,CAAAA,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,SAAAA,CAAA,KAAA,SAAA,EAAA,CAAAA,QAAAA,IAAAA,CAAAA,EAAAA,MAAAA,OAAAA,EAAAA,gBAAAA,GAAAA,EAAAA,EAAAA,eAAAA,CAAAA,0EAIJ,EAAA,CAE5DuB,UAAAA,IAAAA,CAAW,IAAAC,mCAAA,KAAA,GAAA,KAAA,oEAEY,CAAA,CAAA,CAEtB,CAAA,CAAA,IAIR,CAAA,EAAAC,EAAAA,YAAAC,EAAAA,QAAAC,aAAA,CAAA,IAAA,WAAA,MAAA,uBAAA,KAAAtB,EAAA,OAAA,KAKyB,OAAA,GAAA,SAAAuB,GAAAC,EAAAD,CAAA,EAEkB,eAAAA,GAAAC,EAAAD,CAAA,CACI,EAAA3B,CAAA,EAAA,CACvCD,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,gBAAAA,CAAA,KAAA,kDAAA,KAAA,QAAA,MAAA,IAAA,MAAA,IAAA,EAAA,IAAA,EAAA8B,EAAA,UAAA,CAAA,CAIS,CAAA,CAAA,CAAA,CAAA,GAK5B,CACF,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TableProps } from 'element-plus';
|
|
2
|
+
export interface SkyDataTableProps {
|
|
3
|
+
id?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare const SkyDataTable: import('vue').DefineComponent<SkyDataTableProps & Partial<TableProps<Record<string, unknown>>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyDataTableProps & Partial<TableProps<Record<string, unknown>>>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import "element-plus/es/components/alert/style/css";
|
|
2
|
+
import "element-plus/es/components/button/style/css";
|
|
3
|
+
import "element-plus/es/components/popconfirm/style/css";
|
|
4
|
+
import "element-plus/es/components/skeleton/style/css";
|
|
5
|
+
import "element-plus/es/components/table/style/css";
|
|
6
|
+
import "element-plus/es/components/table-column/style/css";
|
|
7
|
+
import "element-plus/es/components/text/style/css";
|
|
8
|
+
import { defineComponent as E, useTemplateRef as T, shallowRef as h, computed as x, createVNode as t, createTextVNode as R, mergeProps as _, isVNode as w } from "vue";
|
|
9
|
+
import "../../hooks/useUser.mjs";
|
|
10
|
+
import "../../hooks/usePermission.mjs";
|
|
11
|
+
import "../../hooks/useMenu.mjs";
|
|
12
|
+
import "../../hooks/useTab.mjs";
|
|
13
|
+
import "../../hooks/useRouteKeepAlive.mjs";
|
|
14
|
+
import "../../hooks/useSize.mjs";
|
|
15
|
+
import "../../hooks/useLang.mjs";
|
|
16
|
+
import "../../hooks/useTheme.mjs";
|
|
17
|
+
import { useList as A } from "../../hooks/useList.mjs";
|
|
18
|
+
import "../../hooks/useHiddenTitle.mjs";
|
|
19
|
+
import "../../hooks/useForm.mjs";
|
|
20
|
+
import "../../hooks/useShow.mjs";
|
|
21
|
+
import "../../hooks/useReferenceArrayField.mjs";
|
|
22
|
+
import "../../hooks/useTreeWithDetails.mjs";
|
|
23
|
+
import "../../hooks/useFormGrid.mjs";
|
|
24
|
+
import "../../hooks/useReferenceArrayInput.mjs";
|
|
25
|
+
import { EpDelete as D } from "../../icons/EpDelete.mjs";
|
|
26
|
+
import { skyConfig as L } from "../../setup/index.mjs";
|
|
27
|
+
import { useAsyncState as j } from "@vueuse/core";
|
|
28
|
+
import { ElSkeleton as I, ElAlert as N, ElText as P, ElPopconfirm as V, ElButton as B, ElTable as M, ElTableColumn as p } from "element-plus";
|
|
29
|
+
import { useI18n as O } from "vue-i18n";
|
|
30
|
+
import { useRoute as q } from "vue-router";
|
|
31
|
+
import { SkyCanAccess as z } from "../can-access/index.mjs";
|
|
32
|
+
function F(o) {
|
|
33
|
+
return typeof o == "function" || Object.prototype.toString.call(o) === "[object Object]" && !w(o);
|
|
34
|
+
}
|
|
35
|
+
const ke = /* @__PURE__ */ E({
|
|
36
|
+
name: "SkyDataTable",
|
|
37
|
+
inheritAttrs: !1,
|
|
38
|
+
props: {
|
|
39
|
+
id: {
|
|
40
|
+
type: String,
|
|
41
|
+
default: "id"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
setup(o, {
|
|
45
|
+
slots: c,
|
|
46
|
+
attrs: u
|
|
47
|
+
}) {
|
|
48
|
+
const {
|
|
49
|
+
t: a
|
|
50
|
+
} = O(), i = q(), {
|
|
51
|
+
getList: d,
|
|
52
|
+
listLoading: f,
|
|
53
|
+
listData: y
|
|
54
|
+
} = A(), g = i.meta, b = T("tableRef"), r = h([]), n = (e) => {
|
|
55
|
+
r.value = e;
|
|
56
|
+
}, m = () => {
|
|
57
|
+
r.value = [], b.value?.clearSelection();
|
|
58
|
+
}, v = async () => {
|
|
59
|
+
await k(), await d(), m();
|
|
60
|
+
};
|
|
61
|
+
let s;
|
|
62
|
+
const {
|
|
63
|
+
isLoading: S,
|
|
64
|
+
execute: k
|
|
65
|
+
} = j(async () => {
|
|
66
|
+
if (r.value.map((l) => String(l[o.id])).length)
|
|
67
|
+
return s = new AbortController(), L.dataProvider?.deleteMany?.(i.meta.resource, {
|
|
68
|
+
ids: r.value.map((l) => String(l[o.id])),
|
|
69
|
+
signal: s.signal
|
|
70
|
+
});
|
|
71
|
+
}, void 0, {
|
|
72
|
+
immediate: !1
|
|
73
|
+
}), C = x(() => !!(S.value || f.value));
|
|
74
|
+
return () => t(I, {
|
|
75
|
+
loading: C.value,
|
|
76
|
+
animated: !0
|
|
77
|
+
}, {
|
|
78
|
+
default: () => [t("div", {
|
|
79
|
+
class: "sky-data-table"
|
|
80
|
+
}, [t(z, {
|
|
81
|
+
resource: g.resource,
|
|
82
|
+
action: "delete"
|
|
83
|
+
}, {
|
|
84
|
+
default: () => [r.value.length > 0 && t(N, {
|
|
85
|
+
class: "sky-data-table__alert",
|
|
86
|
+
type: "primary",
|
|
87
|
+
onClose: m
|
|
88
|
+
}, {
|
|
89
|
+
default: () => [t(P, {
|
|
90
|
+
type: "primary"
|
|
91
|
+
}, {
|
|
92
|
+
default: () => [r.value.length, R(" "), a("selectedItems")]
|
|
93
|
+
}), t(V, {
|
|
94
|
+
title: a("popconfirm.remove"),
|
|
95
|
+
onConfirm: v
|
|
96
|
+
}, {
|
|
97
|
+
reference: () => {
|
|
98
|
+
let e;
|
|
99
|
+
return t(B, {
|
|
100
|
+
text: !0,
|
|
101
|
+
type: "danger",
|
|
102
|
+
icon: D
|
|
103
|
+
}, F(e = a("button.remove")) ? e : {
|
|
104
|
+
default: () => [e]
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
})]
|
|
108
|
+
})]
|
|
109
|
+
}), t(M, _({
|
|
110
|
+
ref: "tableRef",
|
|
111
|
+
class: "sky-data-table__main",
|
|
112
|
+
data: y.value?.data,
|
|
113
|
+
border: !0,
|
|
114
|
+
onSelect: (e) => n(e),
|
|
115
|
+
"onSelect-all": (e) => n(e)
|
|
116
|
+
}, u), {
|
|
117
|
+
default: () => [t(p, {
|
|
118
|
+
type: "selection"
|
|
119
|
+
}, null), t(p, {
|
|
120
|
+
type: "index",
|
|
121
|
+
label: "#",
|
|
122
|
+
width: "50"
|
|
123
|
+
}, null), c.default?.()]
|
|
124
|
+
})])]
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
export {
|
|
129
|
+
ke as SkyDataTable
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/components/data-table/index.tsx"],"sourcesContent":["import { useList } from '@/hooks'\r\nimport { EpDelete } from '@/icons/EpDelete'\r\nimport type { DeleteManyResult } from '@/provides'\r\nimport { skyConfig } from '@/setup'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport {\r\n ElAlert,\r\n ElButton,\r\n ElPopconfirm,\r\n ElSkeleton,\r\n ElTable,\r\n ElTableColumn,\r\n ElText,\r\n type TableProps,\r\n} from 'element-plus'\r\nimport { computed, defineComponent, shallowRef, useTemplateRef } from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\n\r\nexport interface SkyDataTableProps {\r\n id?: string\r\n}\r\n\r\nexport const SkyDataTable = defineComponent<\r\n SkyDataTableProps & Partial<TableProps<Record<string, unknown>>>\r\n>({\r\n name: 'SkyDataTable',\r\n inheritAttrs: false,\r\n props: {\r\n id: {\r\n type: String,\r\n default: 'id',\r\n },\r\n },\r\n setup(props, { slots, attrs }) {\r\n const { t } = useI18n()\r\n const route = useRoute()\r\n const { getList, listLoading, listData } = useList()!\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n const tableRef = useTemplateRef<InstanceType<typeof ElTable> | null>('tableRef')\r\n const selectedItems = shallowRef<Record<string, unknown>[]>([])\r\n const onSelect = (selection: Record<string, unknown>[]) => {\r\n selectedItems.value = selection\r\n }\r\n const onClose = () => {\r\n selectedItems.value = []\r\n tableRef.value?.clearSelection()\r\n }\r\n const onDelete = async () => {\r\n await execute()\r\n await getList()\r\n onClose()\r\n }\r\n\r\n let controller: AbortController | undefined\r\n const { isLoading: deleteLoading, execute } = useAsyncState<DeleteManyResult | undefined>(\r\n async () => {\r\n const ids = selectedItems.value.map((item) => String(item[props.id!]))\r\n if (ids.length) {\r\n controller = new AbortController()\r\n return skyConfig.dataProvider?.deleteMany?.(route.meta.resource as string, {\r\n ids: selectedItems.value.map((item) => String(item[props.id!])),\r\n signal: controller.signal,\r\n })\r\n }\r\n },\r\n undefined,\r\n {\r\n immediate: false,\r\n },\r\n )\r\n\r\n const loading = computed<boolean>(() => Boolean(deleteLoading.value || listLoading.value))\r\n\r\n return () => (\r\n <ElSkeleton loading={loading.value} animated>\r\n <div class=\"sky-data-table\">\r\n <SkyCanAccess resource={routeMeta.resource} action=\"delete\">\r\n {selectedItems.value.length > 0 && (\r\n <ElAlert class=\"sky-data-table__alert\" type=\"primary\" onClose={onClose}>\r\n <ElText type=\"primary\">\r\n {selectedItems.value.length} {t('selectedItems')}\r\n </ElText>\r\n <ElPopconfirm title={t('popconfirm.remove')} onConfirm={onDelete}>\r\n {{\r\n reference: () => (\r\n <ElButton text type=\"danger\" icon={EpDelete}>\r\n {t('button.remove')}\r\n </ElButton>\r\n ),\r\n }}\r\n </ElPopconfirm>\r\n </ElAlert>\r\n )}\r\n </SkyCanAccess>\r\n <ElTable\r\n ref=\"tableRef\"\r\n class=\"sky-data-table__main\"\r\n data={listData.value?.data}\r\n border\r\n onSelect={(selection) => onSelect(selection)}\r\n onSelect-all={(selection) => onSelect(selection)}\r\n {...attrs}\r\n >\r\n <ElTableColumn type=\"selection\" />\r\n <ElTableColumn type=\"index\" label=\"#\" width=\"50\" />\r\n {slots.default?.()}\r\n </ElTable>\r\n </div>\r\n </ElSkeleton>\r\n )\r\n },\r\n})\r\n"],"names":["_isSlot","s","_isVNode","SkyDataTable","defineComponent","name","inheritAttrs","props","id","type","default","attrs","t","route","useRoute","listData","routeMeta","tableRef","useTemplateRef","selectedItems","shallowRef","onDelete","onClose","controller","isLoading","execute","item","ids","immediate","loading","computed","deleteLoading","listLoading","reference","_slot","_createVNode","ElTable","_mergeProps","selection","onSelect","slots"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkB4C,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAO5C,MAAAE,KAAA,gBAAAC,EAAA;AAAA,EAGEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,IAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,SAAAA;AAAAA,IACF;AAAA;;;IAEoBC,OAAAA;AAAAA,EAAM,GAAA;;MAClBC,GAAAA;AAAAA,aACRC,IAAAC,EAAA;;;MAC8BC,UAAAA;AAAAA,aAC9BC,IAAAH,EAAA,MAEAI,IAAAC,EAAA,UAAA,GACAC,IAAAC,EAAA,EAAA;;;oBAMEH,EAAAA,OAAAA,eAAAA;AAAAA,OAEFI,IAAA,YAAA;4BAGEC,EAAAA;AAAAA;AAGF,QAAAC;;MACQC,WAAAA;AAAAA,MAA0BC,SAAAA;AAAAA;UAE9BN,EAAA,MAAA,IAAA,CAAAO,MAAA,OAAAA,EAAAnB,EAAA,EAAA,CAAA,CAAA;AAEEgB,eAAAA,IAAAA,IAAAA,gBAAAA;UAEEI,KAAAA,EAAAA,MAAAA,IAAAA,CAAAA,MAAAA,OAAAA,EAAAA,EAAAA,EAAAA,CAAAA,CAAAA;AAAAA;QAEF,CAAA;AAAA;MAKFC,WAAAA;AAAAA,IACF,CAAA,GAGFC,IAAAC,EAAA,MAAA,GAAAC,EAAA,SAAAC,EAAA,MAAA;;;MAGoC,UAAA;AAAA,IAAA,GAAA;AAAA;QAAA,OAAA;AAAA;;QAEY,QAAA;AAAA,MAAA,GAAA;AAAA,QAAAtB,SAAAA,MAAAA,CAAAA,EAAAA,MAAAA,SAAAA,KAAAA,EAAAA,GAAAA;AAAAA,UACT,OAAA;AAAA,UAAA,MAAA;AAAA;QACyC,GAAA;AAAA,UAAAA,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA,YAAA,MAAA;AAAA,UAAA,GAAA;AAAA,YAAAA,SAAAA,MAAAA,CAAAA,EAAAA,MAAAA,QAAAA,EAAAA,GAAAA,GAAAA,EAAAA,eAAAA,CAAAA;AAAAA;;;UAIJ,GAAA;AAAA,YAE5DuB,WAAAA,MAAAA;AAAW,kBAAAC;;gBAAA,MAAA;AAAA,gBAAA,MAAA;AAAA;;;cAEY,CAAA;AAAA,YAAA;AAAA,UAEtB,CAAA,CAAA;AAAA;MAIR,CAAA,GAAAC,EAAAC,GAAAC,EAAA;AAAA,QAAA,KAAA;AAAA,QAAA,OAAA;AAAA,QAAA,MAAAtB,EAAA,OAAA;AAAA,QAKyB,QAAA;AAAA,QAAA,UAAA,CAAAuB,MAAAC,EAAAD,CAAA;AAAA,QAEkB,gBAAA,CAAAA,MAAAC,EAAAD,CAAA;AAAA,MACI,GAAA3B,CAAA,GAAA;AAAA,QACvCD,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA,UAAA,MAAA;AAAA;UAAA,MAAA;AAAA,UAAA,OAAA;AAAA,UAAA,OAAA;AAAA,QAAA,GAAA,IAAA,GAAA8B,EAAA,UAAA,CAAA;AAAA,MAIS,CAAA,CAAA,CAAA,CAAA;AAAA;EAK5B;AACF,CAAA;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/table-column/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");const q=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 d=require("element-plus"),m=require("vue-router"),b=require("../can-access/index.cjs"),f=r.defineComponent({name:"SkyDataTableCol",inheritAttrs:!1,props:{source:String,label:String},setup(e,{slots:i,attrs:l}){const n=m.useRoute(),{addExportColumn:a}=q.useList(),u=i.default?.(),t=r.computed(()=>e.label||e.source||""),c=n.meta;return e.source&&a({[e.source]:t.value}),()=>r.createVNode(b.SkyCanAccess,{resource:c.resource,action:"list",column:e.source},{default:()=>[r.createVNode(d.ElTableColumn,r.mergeProps({prop:e.source,label:t.value},l),{default:o=>{if(u&&o.$index>-1)return u.map(s=>r.cloneVNode(s,{row:o.row}))}})]})}});exports.SkyDataTableCol=f;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/data-table-col/index.tsx"],"sourcesContent":["import { useList } from '@/hooks'\r\nimport { ElTableColumn, type TableColumnCtx } from 'element-plus'\r\nimport { cloneVNode, computed, defineComponent, type Reactive } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\n\r\nexport interface DateTableProps {\r\n source?: string\r\n label?: string\r\n}\r\n\r\nexport interface ElTableColumnScope {\r\n row: Reactive<Record<string, unknown>>\r\n column: TableColumnCtx\r\n $index: number\r\n}\r\n\r\nexport const SkyDataTableCol = defineComponent<DateTableProps>({\r\n name: 'SkyDataTableCol',\r\n inheritAttrs: false,\r\n props: {\r\n source: String,\r\n label: String,\r\n },\r\n setup(props, { slots, attrs }) {\r\n const route = useRoute()\r\n const { addExportColumn } = useList()!\r\n const children = slots.default?.()\r\n const title = computed<string>(() => props.label || props.source || '')\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n if (props.source) {\r\n addExportColumn({ [props.source]: title.value })\r\n }\r\n\r\n // h(vnode.type as Component, { key: i, scope, ...vnode.props }) 等效于 cloneVNode(vnode, { row... })\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action=\"list\" column={props.source}>\r\n <ElTableColumn prop={props.source} label={title.value} {...attrs}>\r\n {(scope: ElTableColumnScope) => {\r\n if (children && scope.$index > -1) {\r\n return children.map((vnode) => cloneVNode(vnode, { row: scope['row'] }))\r\n }\r\n }}\r\n </ElTableColumn>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\n"],"names":["SkyDataTableCol","defineComponent","name","inheritAttrs","props","source","label","attrs","route","useRoute","addExportColumn","children","slots","title","computed","routeMeta","default"],"mappings":"63BAkBAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,kBACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,OACAC,MAAAA,yBAEoBC,MAAAA,CAAM,EAAA,CAC1B,MAAAC,EAAAC,EAAAA,SAAA,GACQC,gBAAAA,eACRC,EAAAC,EAAA,UAAA,EACAC,EAAAC,EAAAA,SAAA,IAAAV,EAAA,OAAAA,EAAA,QAAA,EAAA,EACAW,EAAAP,EAAA,sBAEEE,EAAAA,CAAkB,CAAAN,EAAA,MAAA,EAAAS,EAAA,KAA4B,CAAA,wDAKJ,OAAA,OAAA,OAAAT,EAAA,MAAoC,EAAA,CAAAY,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,cAAAA,EAAAA,WAAAA,eAC3C,MAAAH,EAAA,KAAoB,EAAAN,CAAA,EAAA,wEAGsB,CAAA,CAAA,CAEzE,CAAC,CAAA,CAAA,GAIT,CACF,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TableColumnCtx } from 'element-plus';
|
|
2
|
+
import { Reactive } from 'vue';
|
|
3
|
+
export interface DateTableProps {
|
|
4
|
+
source?: string;
|
|
5
|
+
label?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ElTableColumnScope {
|
|
8
|
+
row: Reactive<Record<string, unknown>>;
|
|
9
|
+
column: TableColumnCtx;
|
|
10
|
+
$index: number;
|
|
11
|
+
}
|
|
12
|
+
export declare const SkyDataTableCol: import('vue').DefineComponent<DateTableProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<DateTableProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import "element-plus/es/components/table-column/style/css";
|
|
2
|
+
import { defineComponent as p, computed as s, createVNode as m, mergeProps as f, cloneVNode as d } 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 { useList as b } from "../../hooks/useList.mjs";
|
|
12
|
+
import "../../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 { ElTableColumn as C } from "element-plus";
|
|
20
|
+
import { useRoute as S } from "vue-router";
|
|
21
|
+
import { SkyCanAccess as g } from "../can-access/index.mjs";
|
|
22
|
+
const F = /* @__PURE__ */ p({
|
|
23
|
+
name: "SkyDataTableCol",
|
|
24
|
+
inheritAttrs: !1,
|
|
25
|
+
props: {
|
|
26
|
+
source: String,
|
|
27
|
+
label: String
|
|
28
|
+
},
|
|
29
|
+
setup(o, {
|
|
30
|
+
slots: i,
|
|
31
|
+
attrs: l
|
|
32
|
+
}) {
|
|
33
|
+
const u = S(), {
|
|
34
|
+
addExportColumn: a
|
|
35
|
+
} = b(), t = i.default?.(), r = s(() => o.label || o.source || ""), n = u.meta;
|
|
36
|
+
return o.source && a({
|
|
37
|
+
[o.source]: r.value
|
|
38
|
+
}), () => m(g, {
|
|
39
|
+
resource: n.resource,
|
|
40
|
+
action: "list",
|
|
41
|
+
column: o.source
|
|
42
|
+
}, {
|
|
43
|
+
default: () => [m(C, f({
|
|
44
|
+
prop: o.source,
|
|
45
|
+
label: r.value
|
|
46
|
+
}, l), {
|
|
47
|
+
default: (e) => {
|
|
48
|
+
if (t && e.$index > -1)
|
|
49
|
+
return t.map((c) => d(c, {
|
|
50
|
+
row: e.row
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
})]
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
export {
|
|
58
|
+
F as SkyDataTableCol
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/components/data-table-col/index.tsx"],"sourcesContent":["import { useList } from '@/hooks'\r\nimport { ElTableColumn, type TableColumnCtx } from 'element-plus'\r\nimport { cloneVNode, computed, defineComponent, type Reactive } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\n\r\nexport interface DateTableProps {\r\n source?: string\r\n label?: string\r\n}\r\n\r\nexport interface ElTableColumnScope {\r\n row: Reactive<Record<string, unknown>>\r\n column: TableColumnCtx\r\n $index: number\r\n}\r\n\r\nexport const SkyDataTableCol = defineComponent<DateTableProps>({\r\n name: 'SkyDataTableCol',\r\n inheritAttrs: false,\r\n props: {\r\n source: String,\r\n label: String,\r\n },\r\n setup(props, { slots, attrs }) {\r\n const route = useRoute()\r\n const { addExportColumn } = useList()!\r\n const children = slots.default?.()\r\n const title = computed<string>(() => props.label || props.source || '')\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n if (props.source) {\r\n addExportColumn({ [props.source]: title.value })\r\n }\r\n\r\n // h(vnode.type as Component, { key: i, scope, ...vnode.props }) 等效于 cloneVNode(vnode, { row... })\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action=\"list\" column={props.source}>\r\n <ElTableColumn prop={props.source} label={title.value} {...attrs}>\r\n {(scope: ElTableColumnScope) => {\r\n if (children && scope.$index > -1) {\r\n return children.map((vnode) => cloneVNode(vnode, { row: scope['row'] }))\r\n }\r\n }}\r\n </ElTableColumn>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\n"],"names":["SkyDataTableCol","defineComponent","name","inheritAttrs","props","source","label","attrs","route","useRoute","addExportColumn","children","slots","title","computed","routeMeta","default"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkBA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,IACAC,OAAAA;AAAAA;;;IAEoBC,OAAAA;AAAAA,EAAM,GAAA;AAC1B,UAAAC,IAAAC,EAAA;MACQC,iBAAAA;AAAAA,aACRC,IAAAC,EAAA,UAAA,GACAC,IAAAC,EAAA,MAAAV,EAAA,SAAAA,EAAA,UAAA,EAAA,GACAW,IAAAP,EAAA;uBAEEE,EAAAA;AAAAA,MAAkB,CAAAN,EAAA,MAAA,GAAAS,EAAA;AAAA,IAA4B,CAAA;;MAKJ,QAAA;AAAA,MAAA,QAAAT,EAAA;AAAA,IAAoC,GAAA;AAAA,MAAAY,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA;QAC3C,OAAAH,EAAA;AAAA,MAAoB,GAAAN,CAAA,GAAA;AAAA;;;;YAGsB,CAAA,CAAA;AAAA,QAEzE;AAAA,MAAC,CAAA,CAAA;AAAA;EAIT;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/card/style/css");require("element-plus/es/components/popconfirm/style/css");require("element-plus/es/components/skeleton/style/css");const t=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");const R=require("../../hooks/useTab.cjs"),I=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 _=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");const h=require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const j=require("../../icons/EpDelete.cjs"),M=require("../../icons/EpDocumentAdd.cjs"),m=require("../../setup/index.cjs"),f=require("@vueuse/core"),o=require("element-plus"),K=require("vue-i18n"),b=require("vue-router"),W=require("../can-access/index.cjs");function S(r){return typeof r=="function"||Object.prototype.toString.call(r)==="[object Object]"&&!t.isVNode(r)}const B=t.defineComponent({name:"SkyEdit",inheritAttrs:!1,props:{dataId:[String,Number]},setup(r,{slots:A,attrs:E}){const{t:u}=K.useI18n(),k=b.useRouter(),i=b.useRoute(),{removeTab:C,lastTab:s}=R.useTab(),l=t.computed(()=>r.dataId?r.dataId:i.params.id),{formData:N,formRef:v,editData:c}=_.useProvideForm(),n=h.useTreeWithDetails(),{removeKeepAlive:D}=I.useRouteKeepAlive(),d=i.meta;let q;const{isLoading:V,execute:w}=f.useAsyncState(async()=>{q=new AbortController;const e=await m.skyConfig.dataProvider?.getOne?.(i.meta.resource,{id:l.value,signal:q.signal});if(e?.data)return c.value=e.data,e},void 0,{immediate:!0});let g;const{isLoading:x,execute:P}=f.useAsyncState(async e=>(g=new AbortController,m.skyConfig.dataProvider?.update?.(i.meta.resource,{id:l.value,data:e,signal:g.signal})),void 0,{immediate:!1}),O=async()=>{if(!v.value||!await v.value.validate())return;const a=await P(0,{...N});a&&(n?.editSuccess?n.editSuccess(a):(o.ElMessage.success(u("submit.success")),c.value=null,await w()))};let p;const{isLoading:y,execute:T}=f.useAsyncState(async()=>(p=new AbortController,m.skyConfig.dataProvider?.deleteMany?.(i.meta.resource,{ids:[l.value],signal:p.signal})),void 0,{immediate:!1}),L=async()=>{const e=await T();e&&(n?.deleteSuccess?n.deleteSuccess(e):(d.keepAliveName&&D(d.keepAliveName),C(i.name),s.value&&k.replace({name:s.value.routeName,params:s.value.routeParams})))};return()=>t.createVNode("div",{class:"sky-edit"},[t.createVNode(W.SkyCanAccess,{resource:d.resource,action:"edit"},{default:()=>[t.createVNode(o.ElCard,E,{default:()=>t.createVNode(o.ElSkeleton,{loading:V.value,animated:!0},{default:()=>[c.value&&A.default?.()]}),footer:()=>{let e;return t.createVNode("div",{class:"sky-edit__footer"},[t.createVNode(o.ElButton,{type:"primary",icon:M.EpDocumentAdd,loading:x.value,onClick:O,disabled:y.value},S(e=u("button.submit"))?e:{default:()=>[e]}),t.createVNode(o.ElPopconfirm,{title:u("popconfirm.remove"),onConfirm:L},{reference:()=>{let a;return t.createVNode(o.ElButton,{type:"danger",text:!0,icon:j.EpDelete,disabled:y.value},S(a=u("button.remove"))?a:{default:()=>[a]})}})])}})]})])}});exports.SkyEdit=B;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/edit/index.tsx"],"sourcesContent":["import { useProvideForm, useRouteKeepAlive, useTab, useTreeWithDetails } from '@/hooks'\nimport { EpDelete } from '@/icons/EpDelete'\nimport { EpDocumentAdd } from '@/icons/EpDocumentAdd'\nimport type { DeleteManyResult, GetOneResult, Identifier, UpdateResult } from '@/provides'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElButton, ElCard, ElMessage, ElPopconfirm, ElSkeleton, type CardProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyEditProps {\n dataId?: Identifier\n}\n\nexport const SkyEdit = defineComponent<SkyEditProps & Partial<CardProps>>({\n name: 'SkyEdit',\n inheritAttrs: false,\n props: {\n dataId: [String, Number],\n },\n setup(props, { slots, attrs }) {\n const { t } = useI18n()\n const router = useRouter()\n const route = useRoute()\n const { removeTab, lastTab } = useTab()\n const id = computed<Identifier>(() => {\n if (props.dataId) {\n return props.dataId\n }\n return route.params.id as Identifier\n })\n const { formData, formRef, editData } = useProvideForm()\n const treeWithDetails = useTreeWithDetails()\n const { removeKeepAlive } = useRouteKeepAlive()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n // 获取详情\n let getOneController: AbortController | undefined\n const { isLoading: getOneLoading, execute: getOneExecute } = useAsyncState<\n GetOneResult | undefined\n >(\n async () => {\n getOneController = new AbortController()\n const res = await skyConfig.dataProvider?.getOne?.(route.meta.resource as string, {\n id: id.value,\n signal: getOneController.signal,\n })\n if (res?.data) {\n editData.value = res.data\n return res\n }\n },\n undefined,\n {\n immediate: true,\n },\n )\n\n // 更新接口\n let controller: AbortController | undefined\n const { isLoading: submitLoading, execute } = useAsyncState<\n UpdateResult | undefined,\n [data: Record<string, unknown>]\n >(\n async (data) => {\n controller = new AbortController()\n return skyConfig.dataProvider?.update?.(route.meta.resource as string, {\n id: id.value,\n data,\n signal: controller.signal,\n })\n },\n undefined,\n {\n immediate: false,\n },\n )\n\n const onSubmit = async () => {\n if (!formRef.value) {\n return\n }\n const valid = await formRef.value.validate()\n if (!valid) {\n return\n }\n const save = await execute(0, { ...formData })\n if (save) {\n if (treeWithDetails?.editSuccess) {\n treeWithDetails.editSuccess(save)\n } else {\n ElMessage.success(t('submit.success'))\n editData.value = null\n await getOneExecute()\n }\n }\n }\n\n // 删除接口\n let deleteController: AbortController | undefined\n const { isLoading: deleteLoading, execute: deleteExecute } = useAsyncState<\n DeleteManyResult | undefined\n >(\n async () => {\n deleteController = new AbortController()\n return skyConfig.dataProvider?.deleteMany?.(route.meta.resource as string, {\n ids: [id.value],\n signal: deleteController.signal,\n })\n },\n undefined,\n {\n immediate: false,\n },\n )\n\n const onDelete = async () => {\n const res = await deleteExecute()\n if (res) {\n if (treeWithDetails?.deleteSuccess) {\n treeWithDetails.deleteSuccess(res)\n } else {\n if (routeMeta.keepAliveName) {\n removeKeepAlive(routeMeta.keepAliveName)\n }\n removeTab(route.name as string)\n if (lastTab.value) {\n router.replace({ name: lastTab.value.routeName, params: lastTab.value.routeParams })\n }\n }\n }\n }\n\n return () => (\n <div class=\"sky-edit\">\n <SkyCanAccess resource={routeMeta.resource} action=\"edit\">\n <ElCard {...attrs}>\n {{\n default: () => (\n <ElSkeleton loading={getOneLoading.value} animated>\n {editData.value && slots.default?.()}\n </ElSkeleton>\n ),\n footer: () => (\n <div class=\"sky-edit__footer\">\n <ElButton\n type=\"primary\"\n icon={EpDocumentAdd}\n loading={submitLoading.value}\n onClick={onSubmit}\n disabled={deleteLoading.value}\n >\n {t('button.submit')}\n </ElButton>\n <ElPopconfirm title={t('popconfirm.remove')} onConfirm={onDelete}>\n {{\n reference: () => (\n <ElButton type=\"danger\" text icon={EpDelete} disabled={deleteLoading.value}>\n {t('button.remove')}\n </ElButton>\n ),\n }}\n </ElPopconfirm>\n </div>\n ),\n }}\n </ElCard>\n </SkyCanAccess>\n </div>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyEdit","defineComponent","name","inheritAttrs","props","dataId","attrs","t","router","useRouter","route","useRoute","lastTab","id","computed","editData","treeWithDetails","useTreeWithDetails","removeKeepAlive","routeMeta","getOneController","isLoading","execute","res","skyConfig","immediate","controller","useAsyncState","data","onSubmit","formRef","save","ElMessage","deleteController","ids","onDelete","deleteExecute","removeTab","params","_createVNode","default","footer","_slot","EpDocumentAdd","deleteLoading","reference","_slot2","EpDelete"],"mappings":"stCAW4C,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAM5C,MAAAE,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,UACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CAAAA,OAAAA,MAAAA,oBAEoBC,MAAAA,CAAM,EAAA,OAClBC,EAAAA,eACRC,EAAAC,EAAAA,UAAA,EACAC,EAAAC,EAAAA,SAAA,eACmBC,QAAAA,cACnBC,EAAAC,EAAAA,SAAA,sBAIEJ,EAAA,OAAA,EACF,wBAC2BK,SAAAA,sBAC3BC,EAAAC,EAAAA,mBAAA,GACQC,gBAAAA,yBACRC,EAAAT,EAAA,KAGA,IAAAU,QACQC,UAAAA,EAA0BC,QAAAA,6BAI9BF,EAAAA,IAAAA,gBACA,MAAAG,EAAA,MAAAC,YAAA,cAAA,SAAAd,EAAA,KAAA,SAAA,2BAGA,CAAA,aAEEK,OAAAA,EAAAA,MAAAA,EAAAA,KACAQ,WAKFE,UAAAA,EACF,CAAA,EAIF,IAAAC,QACQL,UAAAA,EAA0BC,QAAAA,CAAQ,EAAAK,EAAAA,cAAA,MAAAC,IAKtCF,EAAAA,IAAAA,qGAKA,CAAA,WAIAD,UAAAA,EACF,CAAA,EAGFI,EAAA,SAAA,IACE,CAAAC,EAAA,iCAKE,OAEF,MAAAC,EAAA,MAAAT,EAAA,EAAA,KAA4C,CAAA,EAC5CS,mBAEIf,EAAAA,YAAAA,CAAAA,GAEAgB,EAAAA,UAAAA,QAAAA,EAAAA,gBAAAA,CAAAA,4BAQN,IAAAC,QACQZ,UAAAA,EAA0BC,QAAAA,6BAI9BW,EAAAA,IAAAA,wEAEEC,IAAAA,CAAAA,EAAAA,KAAAA,iBAEF,CAAA,WAIAT,UAAAA,EACF,CAAA,EAGFU,EAAA,SAAA,CACE,MAAAZ,EAAA,MAAAa,EAAA,EACAb,qBAEIP,EAAAA,cAAAA,CAAAA,oBAGEE,EAAAA,EAAAA,aAAAA,EAEFmB,EAAAA,EAAAA,IAAAA,sBAEmBnC,KAAAA,EAAAA,MAAAA,UAA+BoC,OAAAA,EAAAA,MAAAA,WAAkC,CAAA,KAM1F,MAAA,IAAAC,EAAAA,YAAA,MAAA,CAAO,MAAA,+DAEuC,OAAA,MAAA,EAAA,CAAAC,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,OAAAA,EAAAA,CAGpCA,QAAAA,IAAAA,EAAAA,YAAAA,aAAAA,iBAC0C,SAAA,EAAA,EAAA,wCAI1CC,OAAAA,IAAAA,CAAQ,IAAAC,EAAA,OAAAH,EAAAA,YAAA,MAAA,CAAA,MAAA,+CAAA,KAAA,UAAA,KAAAI,EAAAA,8BAK0B,QAAAd,EACX,SAAAe,EAAA,0HAK6C,EAAA,CAE5DC,UAAAA,IAAAA,CAAW,IAAAC,mCAAA,KAAA,SAAA,KAAA,GAAA,KAAAC,EAAAA,SACkC,SAAAH,EAAA,iDACtB,CAAA,CAAA,CAEtB,CAAA,CAAA,CAAA,CAAA,CAIR,CAAA,CAAA,KAMb,CACF,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Identifier } from '../../provides';
|
|
2
|
+
import { CardProps } from 'element-plus';
|
|
3
|
+
export interface SkyEditProps {
|
|
4
|
+
dataId?: Identifier;
|
|
5
|
+
}
|
|
6
|
+
export declare const SkyEdit: import('vue').DefineComponent<SkyEditProps & Partial<CardProps>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyEditProps & Partial<CardProps>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import "element-plus/es/components/button/style/css";
|
|
2
|
+
import "element-plus/es/components/card/style/css";
|
|
3
|
+
import "element-plus/es/components/popconfirm/style/css";
|
|
4
|
+
import "element-plus/es/components/skeleton/style/css";
|
|
5
|
+
import { defineComponent as R, computed as T, createVNode as t, isVNode as h } from "vue";
|
|
6
|
+
import "../../hooks/useUser.mjs";
|
|
7
|
+
import "../../hooks/usePermission.mjs";
|
|
8
|
+
import "../../hooks/useMenu.mjs";
|
|
9
|
+
import { useTab as j } from "../../hooks/useTab.mjs";
|
|
10
|
+
import { useRouteKeepAlive as M } from "../../hooks/useRouteKeepAlive.mjs";
|
|
11
|
+
import "../../hooks/useSize.mjs";
|
|
12
|
+
import "../../hooks/useLang.mjs";
|
|
13
|
+
import "../../hooks/useTheme.mjs";
|
|
14
|
+
import "../../hooks/useList.mjs";
|
|
15
|
+
import "../../hooks/useHiddenTitle.mjs";
|
|
16
|
+
import { useProvideForm as K } from "../../hooks/useForm.mjs";
|
|
17
|
+
import "../../hooks/useShow.mjs";
|
|
18
|
+
import "../../hooks/useReferenceArrayField.mjs";
|
|
19
|
+
import { useTreeWithDetails as V } from "../../hooks/useTreeWithDetails.mjs";
|
|
20
|
+
import "../../hooks/useFormGrid.mjs";
|
|
21
|
+
import "../../hooks/useReferenceArrayInput.mjs";
|
|
22
|
+
import { EpDelete as W } from "../../icons/EpDelete.mjs";
|
|
23
|
+
import { EpDocumentAdd as B } from "../../icons/EpDocumentAdd.mjs";
|
|
24
|
+
import { skyConfig as d } from "../../setup/index.mjs";
|
|
25
|
+
import { useAsyncState as c } from "@vueuse/core";
|
|
26
|
+
import { ElCard as F, ElButton as y, ElPopconfirm as q, ElSkeleton as z, ElMessage as G } from "element-plus";
|
|
27
|
+
import { useI18n as H } from "vue-i18n";
|
|
28
|
+
import { useRouter as J, useRoute as Q } from "vue-router";
|
|
29
|
+
import { SkyCanAccess as U } from "../can-access/index.mjs";
|
|
30
|
+
function S(o) {
|
|
31
|
+
return typeof o == "function" || Object.prototype.toString.call(o) === "[object Object]" && !h(o);
|
|
32
|
+
}
|
|
33
|
+
const xe = /* @__PURE__ */ R({
|
|
34
|
+
name: "SkyEdit",
|
|
35
|
+
inheritAttrs: !1,
|
|
36
|
+
props: {
|
|
37
|
+
dataId: [String, Number]
|
|
38
|
+
},
|
|
39
|
+
setup(o, {
|
|
40
|
+
slots: A,
|
|
41
|
+
attrs: C
|
|
42
|
+
}) {
|
|
43
|
+
const {
|
|
44
|
+
t: a
|
|
45
|
+
} = H(), E = J(), r = Q(), {
|
|
46
|
+
removeTab: k,
|
|
47
|
+
lastTab: s
|
|
48
|
+
} = j(), l = T(() => o.dataId ? o.dataId : r.params.id), {
|
|
49
|
+
formData: w,
|
|
50
|
+
formRef: p,
|
|
51
|
+
editData: u
|
|
52
|
+
} = K(), n = V(), {
|
|
53
|
+
removeKeepAlive: x
|
|
54
|
+
} = M(), m = r.meta;
|
|
55
|
+
let f;
|
|
56
|
+
const {
|
|
57
|
+
isLoading: D,
|
|
58
|
+
execute: L
|
|
59
|
+
} = c(async () => {
|
|
60
|
+
f = new AbortController();
|
|
61
|
+
const e = await d.dataProvider?.getOne?.(r.meta.resource, {
|
|
62
|
+
id: l.value,
|
|
63
|
+
signal: f.signal
|
|
64
|
+
});
|
|
65
|
+
if (e?.data)
|
|
66
|
+
return u.value = e.data, e;
|
|
67
|
+
}, void 0, {
|
|
68
|
+
immediate: !0
|
|
69
|
+
});
|
|
70
|
+
let v;
|
|
71
|
+
const {
|
|
72
|
+
isLoading: N,
|
|
73
|
+
execute: O
|
|
74
|
+
} = c(async (e) => (v = new AbortController(), d.dataProvider?.update?.(r.meta.resource, {
|
|
75
|
+
id: l.value,
|
|
76
|
+
data: e,
|
|
77
|
+
signal: v.signal
|
|
78
|
+
})), void 0, {
|
|
79
|
+
immediate: !1
|
|
80
|
+
}), P = async () => {
|
|
81
|
+
if (!p.value || !await p.value.validate())
|
|
82
|
+
return;
|
|
83
|
+
const i = await O(0, {
|
|
84
|
+
...w
|
|
85
|
+
});
|
|
86
|
+
i && (n?.editSuccess ? n.editSuccess(i) : (G.success(a("submit.success")), u.value = null, await L()));
|
|
87
|
+
};
|
|
88
|
+
let g;
|
|
89
|
+
const {
|
|
90
|
+
isLoading: b,
|
|
91
|
+
execute: _
|
|
92
|
+
} = c(async () => (g = new AbortController(), d.dataProvider?.deleteMany?.(r.meta.resource, {
|
|
93
|
+
ids: [l.value],
|
|
94
|
+
signal: g.signal
|
|
95
|
+
})), void 0, {
|
|
96
|
+
immediate: !1
|
|
97
|
+
}), I = async () => {
|
|
98
|
+
const e = await _();
|
|
99
|
+
e && (n?.deleteSuccess ? n.deleteSuccess(e) : (m.keepAliveName && x(m.keepAliveName), k(r.name), s.value && E.replace({
|
|
100
|
+
name: s.value.routeName,
|
|
101
|
+
params: s.value.routeParams
|
|
102
|
+
})));
|
|
103
|
+
};
|
|
104
|
+
return () => t("div", {
|
|
105
|
+
class: "sky-edit"
|
|
106
|
+
}, [t(U, {
|
|
107
|
+
resource: m.resource,
|
|
108
|
+
action: "edit"
|
|
109
|
+
}, {
|
|
110
|
+
default: () => [t(F, C, {
|
|
111
|
+
default: () => t(z, {
|
|
112
|
+
loading: D.value,
|
|
113
|
+
animated: !0
|
|
114
|
+
}, {
|
|
115
|
+
default: () => [u.value && A.default?.()]
|
|
116
|
+
}),
|
|
117
|
+
footer: () => {
|
|
118
|
+
let e;
|
|
119
|
+
return t("div", {
|
|
120
|
+
class: "sky-edit__footer"
|
|
121
|
+
}, [t(y, {
|
|
122
|
+
type: "primary",
|
|
123
|
+
icon: B,
|
|
124
|
+
loading: N.value,
|
|
125
|
+
onClick: P,
|
|
126
|
+
disabled: b.value
|
|
127
|
+
}, S(e = a("button.submit")) ? e : {
|
|
128
|
+
default: () => [e]
|
|
129
|
+
}), t(q, {
|
|
130
|
+
title: a("popconfirm.remove"),
|
|
131
|
+
onConfirm: I
|
|
132
|
+
}, {
|
|
133
|
+
reference: () => {
|
|
134
|
+
let i;
|
|
135
|
+
return t(y, {
|
|
136
|
+
type: "danger",
|
|
137
|
+
text: !0,
|
|
138
|
+
icon: W,
|
|
139
|
+
disabled: b.value
|
|
140
|
+
}, S(i = a("button.remove")) ? i : {
|
|
141
|
+
default: () => [i]
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
})]);
|
|
145
|
+
}
|
|
146
|
+
})]
|
|
147
|
+
})]);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
export {
|
|
151
|
+
xe as SkyEdit
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/components/edit/index.tsx"],"sourcesContent":["import { useProvideForm, useRouteKeepAlive, useTab, useTreeWithDetails } from '@/hooks'\nimport { EpDelete } from '@/icons/EpDelete'\nimport { EpDocumentAdd } from '@/icons/EpDocumentAdd'\nimport type { DeleteManyResult, GetOneResult, Identifier, UpdateResult } from '@/provides'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElButton, ElCard, ElMessage, ElPopconfirm, ElSkeleton, type CardProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyEditProps {\n dataId?: Identifier\n}\n\nexport const SkyEdit = defineComponent<SkyEditProps & Partial<CardProps>>({\n name: 'SkyEdit',\n inheritAttrs: false,\n props: {\n dataId: [String, Number],\n },\n setup(props, { slots, attrs }) {\n const { t } = useI18n()\n const router = useRouter()\n const route = useRoute()\n const { removeTab, lastTab } = useTab()\n const id = computed<Identifier>(() => {\n if (props.dataId) {\n return props.dataId\n }\n return route.params.id as Identifier\n })\n const { formData, formRef, editData } = useProvideForm()\n const treeWithDetails = useTreeWithDetails()\n const { removeKeepAlive } = useRouteKeepAlive()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n // 获取详情\n let getOneController: AbortController | undefined\n const { isLoading: getOneLoading, execute: getOneExecute } = useAsyncState<\n GetOneResult | undefined\n >(\n async () => {\n getOneController = new AbortController()\n const res = await skyConfig.dataProvider?.getOne?.(route.meta.resource as string, {\n id: id.value,\n signal: getOneController.signal,\n })\n if (res?.data) {\n editData.value = res.data\n return res\n }\n },\n undefined,\n {\n immediate: true,\n },\n )\n\n // 更新接口\n let controller: AbortController | undefined\n const { isLoading: submitLoading, execute } = useAsyncState<\n UpdateResult | undefined,\n [data: Record<string, unknown>]\n >(\n async (data) => {\n controller = new AbortController()\n return skyConfig.dataProvider?.update?.(route.meta.resource as string, {\n id: id.value,\n data,\n signal: controller.signal,\n })\n },\n undefined,\n {\n immediate: false,\n },\n )\n\n const onSubmit = async () => {\n if (!formRef.value) {\n return\n }\n const valid = await formRef.value.validate()\n if (!valid) {\n return\n }\n const save = await execute(0, { ...formData })\n if (save) {\n if (treeWithDetails?.editSuccess) {\n treeWithDetails.editSuccess(save)\n } else {\n ElMessage.success(t('submit.success'))\n editData.value = null\n await getOneExecute()\n }\n }\n }\n\n // 删除接口\n let deleteController: AbortController | undefined\n const { isLoading: deleteLoading, execute: deleteExecute } = useAsyncState<\n DeleteManyResult | undefined\n >(\n async () => {\n deleteController = new AbortController()\n return skyConfig.dataProvider?.deleteMany?.(route.meta.resource as string, {\n ids: [id.value],\n signal: deleteController.signal,\n })\n },\n undefined,\n {\n immediate: false,\n },\n )\n\n const onDelete = async () => {\n const res = await deleteExecute()\n if (res) {\n if (treeWithDetails?.deleteSuccess) {\n treeWithDetails.deleteSuccess(res)\n } else {\n if (routeMeta.keepAliveName) {\n removeKeepAlive(routeMeta.keepAliveName)\n }\n removeTab(route.name as string)\n if (lastTab.value) {\n router.replace({ name: lastTab.value.routeName, params: lastTab.value.routeParams })\n }\n }\n }\n }\n\n return () => (\n <div class=\"sky-edit\">\n <SkyCanAccess resource={routeMeta.resource} action=\"edit\">\n <ElCard {...attrs}>\n {{\n default: () => (\n <ElSkeleton loading={getOneLoading.value} animated>\n {editData.value && slots.default?.()}\n </ElSkeleton>\n ),\n footer: () => (\n <div class=\"sky-edit__footer\">\n <ElButton\n type=\"primary\"\n icon={EpDocumentAdd}\n loading={submitLoading.value}\n onClick={onSubmit}\n disabled={deleteLoading.value}\n >\n {t('button.submit')}\n </ElButton>\n <ElPopconfirm title={t('popconfirm.remove')} onConfirm={onDelete}>\n {{\n reference: () => (\n <ElButton type=\"danger\" text icon={EpDelete} disabled={deleteLoading.value}>\n {t('button.remove')}\n </ElButton>\n ),\n }}\n </ElPopconfirm>\n </div>\n ),\n }}\n </ElCard>\n </SkyCanAccess>\n </div>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyEdit","defineComponent","name","inheritAttrs","props","dataId","attrs","t","router","useRouter","route","useRoute","lastTab","id","computed","editData","treeWithDetails","useTreeWithDetails","removeKeepAlive","routeMeta","getOneController","isLoading","execute","res","skyConfig","immediate","controller","useAsyncState","data","onSubmit","formRef","save","ElMessage","deleteController","ids","onDelete","deleteExecute","removeTab","params","_createVNode","default","footer","_slot","EpDocumentAdd","deleteLoading","reference","_slot2","EpDelete"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAW4C,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAM5C,MAAAE,KAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA,CAAAA,QAAAA,MAAAA;AAAAA;;;IAEoBC,OAAAA;AAAAA,EAAM,GAAA;;MAClBC,GAAAA;AAAAA,aACRC,IAAAC,EAAA,GACAC,IAAAC,EAAA;;MACmBC,SAAAA;AAAAA,aACnBC,IAAAC,EAAA,4BAIEJ,EAAA,OAAA,EACF;;;MAC2BK,UAAAA;AAAAA,aAC3BC,IAAAC,EAAA;MACQC,iBAAAA;AAAAA,aACRC,IAAAT,EAAA;AAGA,QAAAU;;MACQC,WAAAA;AAAAA,MAA0BC,SAAAA;AAAAA;AAI9BF,MAAAA,IAAAA,IAAAA,gBAAAA;AACA,YAAAG,IAAA,MAAAC,EAAA,cAAA,SAAAd,EAAA,KAAA,UAAA;AAAA;;MAGA,CAAA;;AAEEK,eAAAA,EAAAA,QAAAA,EAAAA,MACAQ;AAAA;MAKFE,WAAAA;AAAAA,IACF,CAAA;AAIF,QAAAC;;MACQL,WAAAA;AAAAA,MAA0BC,SAAAA;AAAAA,IAAQ,IAAAK,EAAA,OAAAC,OAKtCF,IAAAA,IAAAA,gBAAAA;;;;IAKA,CAAA;MAIAD,WAAAA;AAAAA,IACF,CAAA,GAGFI,IAAA,YAAA;UACE,CAAAC,EAAA;AAKE;AAEF,YAAAC,IAAA,MAAAT,EAAA,GAAA;AAAA;MAA4C,CAAA;AAC5C,MAAAS,uBAEIf,EAAAA,YAAAA,CAAAA,KAEAgB,EAAAA,QAAAA,EAAAA,gBAAAA,CAAAA;;AAQN,QAAAC;;MACQZ,WAAAA;AAAAA,MAA0BC,SAAAA;AAAAA,uBAI9BW,IAAAA,IAAAA,gBAAAA;MAEEC,KAAAA,CAAAA,EAAAA,KAAAA;AAAAA;IAEF,CAAA;MAIAT,WAAAA;AAAAA,IACF,CAAA,GAGFU,IAAA,YAAA;AACE,YAAAZ,IAAA,MAAAa,EAAA;AACA,MAAAb,yBAEIP,EAAAA,cAAAA,CAAAA,wBAGEE,EAAAA,EAAAA,aAAAA,GAEFmB,EAAAA,EAAAA,IAAAA;QAEmBnC,MAAAA,EAAAA,MAAAA;AAAAA,QAA+BoC,QAAAA,EAAAA,MAAAA;AAAAA,MAAkC,CAAA;AAAA;AAM1F,WAAA,MAAAC,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA;;MAEuC,QAAA;AAAA,IAAA,GAAA;AAAA,MAAAC,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,GAAAA;AAAAA,QAGpCA,SAAAA,MAAAA,EAAAA,GAAAA;AAAAA;UAC0C,UAAA;AAAA,QAAA,GAAA;AAAA;;QAI1CC,QAAAA,MAAAA;AAAQ,cAAAC;AAAA,iBAAAH,EAAA,OAAA;AAAA,YAAA,OAAA;AAAA;YAAA,MAAA;AAAA,YAAA,MAAAI;AAAA;YAK0B,SAAAd;AAAA,YACX,UAAAe,EAAA;AAAA;;;;;UAK6C,GAAA;AAAA,YAE5DC,WAAAA,MAAAA;AAAW,kBAAAC;;gBAAA,MAAA;AAAA,gBAAA,MAAA;AAAA,gBAAA,MAAAC;AAAA,gBACkC,UAAAH,EAAA;AAAA;;cACtB,CAAA;AAAA,YAAA;AAAA,UAEtB,CAAA,CAAA,CAAA;AAAA,QAAA;AAAA,MAIR,CAAA,CAAA;AAAA;EAMb;AACF,CAAA;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");const o=require("vue"),d=require("../../setup/index.cjs"),l=require("element-plus"),p=require("vue-i18n"),i=require("vue-router"),f=require("../can-access/index.cjs");function m(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!o.isVNode(t)}const y=o.defineComponent({name:"SkyEditButton",inheritAttrs:!1,props:{id:{type:String,default:"id"},row:Object},setup(t,{attrs:s}){const{t:c}=p.useI18n(),u=i.useRouter(),n=i.useRoute().meta,r=o.computed(()=>{const e=t.row?.[t.id];if(e)return String(e)}),a=()=>{const e=d.skyConfig.getEditRouteName(n.resource);r.value&&u.hasRoute(e)&&u.push({name:e,params:{id:r.value}})};return()=>{let e;return o.createVNode(f.SkyCanAccess,{resource:n.resource,action:"edit",row:r.value},{default:()=>[o.createVNode(l.ElButton,o.mergeProps({link:!0,type:"primary",onClick:a},s),m(e=c("button.edit"))?e:{default:()=>[e]})]})}}});exports.SkyEditButton=y;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/edit-button/index.tsx"],"sourcesContent":["import type { SkyLayoutRouteMeta } from '@/router'\nimport { skyConfig } from '@/setup'\nimport { ElButton, type ButtonProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyEditButtonProps {\n id?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyEditButton = defineComponent<SkyEditButtonProps & Partial<ButtonProps>>({\n name: 'SkyEditButton',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'id',\n },\n row: Object,\n },\n setup(props, { attrs }) {\n const { t } = useI18n()\n const router = useRouter()\n const route = useRoute()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n const id = computed(() => {\n const v = props.row?.[props.id!]\n if (v) {\n return String(v)\n }\n })\n\n const onEdit = () => {\n const routeName = skyConfig.getEditRouteName(routeMeta.resource)\n if (id.value && router.hasRoute(routeName)) {\n router.push({\n name: routeName,\n params: {\n id: id.value,\n },\n })\n }\n }\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action=\"edit\" row={id.value}>\n <ElButton link type=\"primary\" onClick={onEdit} {...attrs}>\n {t('button.edit')}\n </ElButton>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyEditButton","defineComponent","name","inheritAttrs","props","id","type","default","row","attrs","t","router","useRouter","routeMeta","useRoute","computed","v","params","_slot"],"mappings":"8SAM4C,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAO5C,MAAAE,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,gBACAC,aAAAA,GACAC,MAAAA,CACEC,GAAAA,CACEC,KAAAA,OACAC,QAAAA,MAEFC,IAAAA,iBAEaC,MAAAA,CAAM,EAAA,OACXC,EAAAA,eACRC,EAAAC,EAAAA,UAAA,EAEAC,EADAC,EAAAA,SAAA,EACA,KACAT,EAAAU,EAAAA,SAAA,IAAA,uBAEE,GAAAC,kBAGF,CAAA,0FAMMd,KAAAA,EACAe,OAAAA,WAEA,CACF,CAAA,cAIG,IAAAC,2DACqC,OAAA,OAAA,IAAAb,EAAA,KAA6B,EAAA,CAAAE,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,SAAAA,EAAAA,WAAAA,CAAA,KAAA,GAAA,KAAA,gEAElD,CAAA,CAAA,CAAA,CAAA,EAIzB,CACF,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ButtonProps } from 'element-plus';
|
|
2
|
+
export interface SkyEditButtonProps {
|
|
3
|
+
id?: string;
|
|
4
|
+
row?: Record<string, unknown>;
|
|
5
|
+
}
|
|
6
|
+
export declare const SkyEditButton: import('vue').DefineComponent<SkyEditButtonProps & Partial<ButtonProps>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyEditButtonProps & Partial<ButtonProps>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|