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,60 @@
|
|
|
1
|
+
import "element-plus/es/components/button/style/css";
|
|
2
|
+
import { defineComponent as m, computed as a, createVNode as i, mergeProps as p, isVNode as d } from "vue";
|
|
3
|
+
import { skyConfig as f } from "../../setup/index.mjs";
|
|
4
|
+
import { ElButton as l } from "element-plus";
|
|
5
|
+
import { useI18n as y } from "vue-i18n";
|
|
6
|
+
import { useRouter as S, useRoute as g } from "vue-router";
|
|
7
|
+
import { SkyCanAccess as k } from "../can-access/index.mjs";
|
|
8
|
+
function b(e) {
|
|
9
|
+
return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !d(e);
|
|
10
|
+
}
|
|
11
|
+
const B = /* @__PURE__ */ m({
|
|
12
|
+
name: "SkyEditButton",
|
|
13
|
+
inheritAttrs: !1,
|
|
14
|
+
props: {
|
|
15
|
+
id: {
|
|
16
|
+
type: String,
|
|
17
|
+
default: "id"
|
|
18
|
+
},
|
|
19
|
+
row: Object
|
|
20
|
+
},
|
|
21
|
+
setup(e, {
|
|
22
|
+
attrs: u
|
|
23
|
+
}) {
|
|
24
|
+
const {
|
|
25
|
+
t: s
|
|
26
|
+
} = y(), r = S(), n = g().meta, o = a(() => {
|
|
27
|
+
const t = e.row?.[e.id];
|
|
28
|
+
if (t)
|
|
29
|
+
return String(t);
|
|
30
|
+
}), c = () => {
|
|
31
|
+
const t = f.getEditRouteName(n.resource);
|
|
32
|
+
o.value && r.hasRoute(t) && r.push({
|
|
33
|
+
name: t,
|
|
34
|
+
params: {
|
|
35
|
+
id: o.value
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
return () => {
|
|
40
|
+
let t;
|
|
41
|
+
return i(k, {
|
|
42
|
+
resource: n.resource,
|
|
43
|
+
action: "edit",
|
|
44
|
+
row: o.value
|
|
45
|
+
}, {
|
|
46
|
+
default: () => [i(l, p({
|
|
47
|
+
link: !0,
|
|
48
|
+
type: "primary",
|
|
49
|
+
onClick: c
|
|
50
|
+
}, u), b(t = s("button.edit")) ? t : {
|
|
51
|
+
default: () => [t]
|
|
52
|
+
})]
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
export {
|
|
58
|
+
B as SkyEditButton
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","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":";;;;;;;AAM4C,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAO5C,MAAAE,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,IAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFC,KAAAA;AAAAA;;IAEaC,OAAAA;AAAAA,EAAM,GAAA;;MACXC,GAAAA;AAAAA,aACRC,IAAAC,EAAA,GAEAC,IADAC,EAAA,EACA,MACAT,IAAAU,EAAA,MAAA;;AAEE,UAAAC;;IAGF,CAAA;;;QAMMd,MAAAA;AAAAA,QACAe,QAAAA;AAAAA;QAEA;AAAA,MACF,CAAA;AAAA;;AAIG,UAAAC;;;QACqC,QAAA;AAAA,QAAA,KAAAb,EAAA;AAAA,MAA6B,GAAA;AAAA,QAAAE,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,UAAA,MAAA;AAAA,UAAA,MAAA;AAAA;;;QAElD,CAAA,CAAA;AAAA,MAAA,CAAA;AAAA;EAIzB;AACF,CAAA;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/dialog/style/css");require("element-plus/es/components/form-item/style/css");require("element-plus/es/components/icon/style/css");require("element-plus/es/components/upload/style/css");const e=require("vue"),L=require("../../icons/EpPlus.cjs"),u=require("element-plus"),x=require("vue-router"),M=require("@vueuse/core");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 _=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");const A=require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const S=require("../../setup/index.cjs"),D=require("../can-access/index.cjs"),T=require("../../icons/EpUploadFilled.cjs"),G=require("vue-i18n"),$=e.defineComponent({name:"SkyFileMultipleInput",inheritAttrs:!1,props:{reference:{type:String,required:!0},source:{type:String,required:!0},type:{type:String,default:"file"},dataId:{type:String,default:"id"},dataName:{type:String,default:"name"},dataUrl:{type:String,default:"url"},label:String,rules:Object,limit:{type:Number,default:1},fileList:{type:Array,default:()=>[]},autoUpload:{type:Boolean,default:!0}},setup(t,{slots:c,attrs:h}){const{t:s}=G.useI18n(),N=x.useRoute(),F=A.useFormGrid(),{formData:n,editData:f}=_.useForm(),U=e.computed(()=>t.label||t.source),r=e.shallowRef(t.fileList),o=e.useTemplateRef("uploadRef"),V=N.meta;f.value&&(n[t.source]=f.value[t.source]);const w=a=>{if(t.limit===1){o.value?.clearFiles();const l=a[0];l.uid=u.genFileId(),o.value?.handleStart(l),t.autoUpload&&o.value?.submit()}},E=()=>{n[t.source]=r.value.map(a=>a.id)},d=e.ref(!1),m=e.ref(),b=a=>{m.value=a.url,d.value=!0};let v;const{isLoading:k}=M.useAsyncState(async()=>{const a=n[t.source];if(a){v=new AbortController;const l=await S.skyConfig.dataProvider?.getMany?.(t.reference,{ids:a,signal:v.signal});if(l?.data)return r.value=l.data.map(i=>({id:i[t.dataId],name:i[t.dataName],url:i[t.dataUrl]})),l}},void 0,{immediate:!0}),y=e.ref(""),g=e.shallowRef(),q=e.shallowRef(),p=e.ref(),I=e.ref(),P=async a=>{const l=await S.skyConfig.dataProvider?.getUploadConfig?.({file:a});l?.data&&(y.value=l.data.action,g.value=l.data.data,q.value=l.data.headers,p.value=l.data.method,I.value=l.data.name)},R=e.computed(()=>t.type==="image"?"image/*":void 0),C=e.computed(()=>t.type==="image"?"picture-card":"text");return()=>e.createVNode(D.SkyCanAccess,{resource:V.resource,action:["create","edit"],column:t.source},{default:()=>[e.createVNode(u.ElFormItem,{class:["sky-file-multiple-input",`is-${t.type}`],label:U.value,prop:t.source,rules:t.rules,style:F?`grid-area: ${t.source}`:""},{default:()=>[e.createVNode(u.ElUpload,e.mergeProps({ref:"uploadRef",action:y.value,method:p.value,name:t.name,withCredentials:t.withCredentials,multiple:t.limit>1,limit:t.limit,beforeUpload:P,onSuccess:E,onExceed:w,headers:q.value,data:g.value,listType:C.value,fileList:r.value,"onUpdate:file-list":a=>r.value=a,autoUpload:t.autoUpload,drag:t.type==="file",showFileList:!0,onPreview:b,accept:R.value},h),{default:()=>t.type==="image"?e.createVNode(u.ElIcon,null,{default:()=>[e.createVNode(L.EpPlus,null,null)]}):e.createVNode(e.Fragment,null,[e.createVNode(u.ElIcon,{class:"sky-file-multiple-input__icon"},{default:()=>[e.createVNode(T.EpUploadFilled,null,null)]}),e.createVNode("div",{class:"sky-file-multiple-input__text"},[s("upload.drop"),e.createVNode("em",null,[s("upload.click")])])]),file:a=>{if(c.default){const l=c.default();return e.withDirectives(e.h(e.Fragment,l.map(i=>e.cloneVNode(i,{...a}))),[[u.ElLoadingDirective,k.value]])}}}),e.createVNode(u.ElDialog,{appendToBody:!0,modelValue:d.value,"onUpdate:modelValue":a=>d.value=a},{default:()=>[e.createVNode("img",{class:"sky-file-multiple-input__img",src:m.value},null)]})]})]})}});exports.SkyFileMultipleInput=$;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/file-multiple-input/index.tsx"],"sourcesContent":["import { EpPlus } from '@/icons/EpPlus'\r\nimport type { GetManyResult, Identifier } from '@/provides'\r\nimport {\r\n ElDialog,\r\n ElFormItem,\r\n ElIcon,\r\n ElLoadingDirective,\r\n ElUpload,\r\n genFileId,\r\n type FormItemRule,\r\n type UploadFile,\r\n type UploadInstance,\r\n type UploadProps,\r\n type UploadRawFile,\r\n} from 'element-plus'\r\nimport {\r\n cloneVNode,\r\n computed,\r\n defineComponent,\r\n Fragment,\r\n h,\r\n ref,\r\n shallowRef,\r\n useTemplateRef,\r\n withDirectives,\r\n} from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport { useForm, useFormGrid, type SkyUploadUserFile } from '@/hooks'\r\nimport { skyConfig } from '@/setup'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport { EpUploadFilled } from '@/icons/EpUploadFilled'\r\nimport { useI18n } from 'vue-i18n'\r\n\r\nexport interface SkyFileMultipleInputProps {\r\n reference: string\r\n source: string\r\n type?: 'file' | 'image'\r\n dataId?: string\r\n dataName?: string\r\n dataUrl?: string\r\n label?: string\r\n rules?: FormItemRule | FormItemRule[]\r\n name?: string\r\n withCredentials?: boolean\r\n limit?: number\r\n fileList?: SkyUploadUserFile[]\r\n autoUpload?: UploadProps['autoUpload']\r\n}\r\n\r\nexport const SkyFileMultipleInput = defineComponent<\r\n SkyFileMultipleInputProps & Partial<UploadProps>\r\n>({\r\n name: 'SkyFileMultipleInput',\r\n inheritAttrs: false,\r\n props: {\r\n reference: {\r\n type: String,\r\n required: true,\r\n },\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n type: {\r\n type: String,\r\n default: 'file',\r\n },\r\n dataId: {\r\n type: String,\r\n default: 'id',\r\n },\r\n dataName: {\r\n type: String,\r\n default: 'name',\r\n },\r\n dataUrl: {\r\n type: String,\r\n default: 'url',\r\n },\r\n label: String,\r\n rules: Object,\r\n limit: {\r\n type: Number,\r\n default: 1,\r\n },\r\n fileList: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n autoUpload: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n setup(props, { slots, attrs }) {\r\n const { t } = useI18n()\r\n const route = useRoute()\r\n const formGrid = useFormGrid()\r\n const { formData, editData } = useForm()!\r\n const title = computed<string>(() => props.label || props.source)\r\n // init fileList\r\n const fileList = shallowRef<SkyUploadUserFile[]>(props.fileList!)\r\n const uploadRef = useTemplateRef<UploadInstance>('uploadRef')\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n if (editData.value) {\r\n formData[props.source] = editData.value[props.source]\r\n }\r\n\r\n const onExceed = (files: File[]) => {\r\n if (props.limit === 1) {\r\n uploadRef.value?.clearFiles()\r\n const file = files[0] as UploadRawFile\r\n file.uid = genFileId()\r\n uploadRef.value?.handleStart(file)\r\n if (props.autoUpload) {\r\n uploadRef.value?.submit()\r\n }\r\n }\r\n }\r\n\r\n const onSuccess = () => {\r\n formData[props.source] = fileList.value.map((f) => f.id!)\r\n }\r\n\r\n const preview = ref(false)\r\n const previewUrl = ref<string>()\r\n const onPreview = (file: UploadFile) => {\r\n previewUrl.value = file.url\r\n preview.value = true\r\n }\r\n\r\n let controller: AbortController | undefined\r\n const { isLoading } = useAsyncState<GetManyResult | undefined>(\r\n async () => {\r\n const ids = formData[props.source]\r\n if (ids) {\r\n controller = new AbortController()\r\n const res = await skyConfig.dataProvider?.getMany?.(props.reference, {\r\n ids: ids as Identifier[],\r\n signal: controller.signal,\r\n })\r\n\r\n if (res?.data) {\r\n fileList.value = res.data.map((d) => ({\r\n id: d[props.dataId!] as Identifier,\r\n name: d[props.dataName!] as string,\r\n url: d[props.dataUrl!] as string,\r\n }))\r\n return res\r\n }\r\n }\r\n },\r\n undefined,\r\n {\r\n immediate: true,\r\n },\r\n )\r\n\r\n const action = ref('')\r\n const data = shallowRef<Record<string, unknown>>()\r\n const headers = shallowRef<Record<string, unknown>>()\r\n const method = ref()\r\n const name = ref<string>()\r\n const beforeUpload = async (rawFile: UploadRawFile) => {\r\n const res = await skyConfig.dataProvider?.getUploadConfig?.({\r\n file: rawFile,\r\n })\r\n if (res?.data) {\r\n action.value = res.data.action\r\n data.value = res.data.data\r\n headers.value = res.data.headers\r\n method.value = res.data.method\r\n name.value = res.data.name\r\n }\r\n }\r\n\r\n const accept = computed(() => (props.type === 'image' ? 'image/*' : undefined))\r\n const listType = computed(() => (props.type === 'image' ? 'picture-card' : 'text'))\r\n\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\r\n <ElFormItem\r\n class={['sky-file-multiple-input', `is-${props.type}`]}\r\n label={title.value}\r\n prop={props.source}\r\n rules={props.rules}\r\n style={formGrid ? `grid-area: ${props.source}` : ''}\r\n >\r\n <ElUpload\r\n ref=\"uploadRef\"\r\n action={action.value}\r\n method={method.value}\r\n name={props.name}\r\n withCredentials={props.withCredentials}\r\n multiple={props.limit! > 1}\r\n limit={props.limit}\r\n beforeUpload={beforeUpload}\r\n onSuccess={onSuccess}\r\n onExceed={onExceed}\r\n headers={headers.value}\r\n data={data.value}\r\n listType={listType.value}\r\n fileList={fileList.value}\r\n onUpdate:file-list={(fs: SkyUploadUserFile[]) => (fileList.value = fs)}\r\n autoUpload={props.autoUpload}\r\n drag={props.type === 'file'}\r\n showFileList\r\n onPreview={onPreview}\r\n // https://developer.mozilla.org/zh-CN/docs/Web/HTML/Reference/Attributes/accept\r\n accept={accept.value}\r\n {...attrs}\r\n >\r\n {{\r\n default: () =>\r\n props.type === 'image' ? (\r\n <ElIcon>\r\n <EpPlus />\r\n </ElIcon>\r\n ) : (\r\n <>\r\n <ElIcon class=\"sky-file-multiple-input__icon\">\r\n <EpUploadFilled />\r\n </ElIcon>\r\n <div class=\"sky-file-multiple-input__text\">\r\n {t('upload.drop')}\r\n <em>{t('upload.click')}</em>\r\n </div>\r\n </>\r\n ),\r\n file: (scope: { file: UploadFile; index: number }) => {\r\n if (slots.default) {\r\n const vnodes = slots.default()\r\n return withDirectives(\r\n h(\r\n Fragment,\r\n vnodes.map((vnode) => cloneVNode(vnode, { ...scope })),\r\n ),\r\n [[ElLoadingDirective, isLoading.value]],\r\n )\r\n }\r\n },\r\n }}\r\n </ElUpload>\r\n <ElDialog\r\n appendToBody\r\n modelValue={preview.value}\r\n onUpdate:modelValue={(v) => (preview.value = v)}\r\n >\r\n <img class=\"sky-file-multiple-input__img\" src={previewUrl.value} />\r\n </ElDialog>\r\n </ElFormItem>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\n"],"names":["SkyFileMultipleInput","defineComponent","name","inheritAttrs","props","reference","type","required","source","default","dataId","dataName","dataUrl","label","rules","limit","fileList","autoUpload","attrs","t","route","useRoute","formGrid","useFormGrid","editData","title","computed","shallowRef","uploadRef","useTemplateRef","routeMeta","formData","file","files","preview","ref","previewUrl","controller","isLoading","ids","res","skyConfig","id","url","immediate","action","data","headers","method","beforeUpload","rawFile","accept","listType","onSuccess","onExceed","fs","onPreview","_createVNode","_Fragment","ElIcon","vnodes","slots","withDirectives","h","Fragment","vnode","cloneVNode","ElLoadingDirective","v"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FormItemRule, UploadProps } from 'element-plus';
|
|
2
|
+
import { SkyUploadUserFile } from '../../hooks';
|
|
3
|
+
export interface SkyFileMultipleInputProps {
|
|
4
|
+
reference: string;
|
|
5
|
+
source: string;
|
|
6
|
+
type?: 'file' | 'image';
|
|
7
|
+
dataId?: string;
|
|
8
|
+
dataName?: string;
|
|
9
|
+
dataUrl?: string;
|
|
10
|
+
label?: string;
|
|
11
|
+
rules?: FormItemRule | FormItemRule[];
|
|
12
|
+
name?: string;
|
|
13
|
+
withCredentials?: boolean;
|
|
14
|
+
limit?: number;
|
|
15
|
+
fileList?: SkyUploadUserFile[];
|
|
16
|
+
autoUpload?: UploadProps['autoUpload'];
|
|
17
|
+
}
|
|
18
|
+
export declare const SkyFileMultipleInput: import('vue').DefineComponent<SkyFileMultipleInputProps & Partial<UploadProps>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyFileMultipleInputProps & Partial<UploadProps>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import "element-plus/es/components/dialog/style/css";
|
|
2
|
+
import "element-plus/es/components/form-item/style/css";
|
|
3
|
+
import "element-plus/es/components/icon/style/css";
|
|
4
|
+
import "element-plus/es/components/upload/style/css";
|
|
5
|
+
import { defineComponent as T, computed as m, shallowRef as c, useTemplateRef as V, ref as o, createVNode as l, mergeProps as q, withDirectives as B, h as G, Fragment as w, cloneVNode as $ } from "vue";
|
|
6
|
+
import { EpPlus as j } from "../../icons/EpPlus.mjs";
|
|
7
|
+
import { ElFormItem as O, ElUpload as z, ElLoadingDirective as H, ElIcon as F, ElDialog as J, genFileId as K } from "element-plus";
|
|
8
|
+
import { useRoute as Q } from "vue-router";
|
|
9
|
+
import { useAsyncState as W } from "@vueuse/core";
|
|
10
|
+
import "../../hooks/useUser.mjs";
|
|
11
|
+
import "../../hooks/usePermission.mjs";
|
|
12
|
+
import "../../hooks/useMenu.mjs";
|
|
13
|
+
import "../../hooks/useTab.mjs";
|
|
14
|
+
import "../../hooks/useRouteKeepAlive.mjs";
|
|
15
|
+
import "../../hooks/useSize.mjs";
|
|
16
|
+
import "../../hooks/useLang.mjs";
|
|
17
|
+
import "../../hooks/useTheme.mjs";
|
|
18
|
+
import "../../hooks/useList.mjs";
|
|
19
|
+
import "../../hooks/useHiddenTitle.mjs";
|
|
20
|
+
import { useForm as X } from "../../hooks/useForm.mjs";
|
|
21
|
+
import "../../hooks/useShow.mjs";
|
|
22
|
+
import "../../hooks/useReferenceArrayField.mjs";
|
|
23
|
+
import "../../hooks/useTreeWithDetails.mjs";
|
|
24
|
+
import { useFormGrid as Y } from "../../hooks/useFormGrid.mjs";
|
|
25
|
+
import "../../hooks/useReferenceArrayInput.mjs";
|
|
26
|
+
import { skyConfig as b } from "../../setup/index.mjs";
|
|
27
|
+
import { SkyCanAccess as Z } from "../can-access/index.mjs";
|
|
28
|
+
import { EpUploadFilled as ee } from "../../icons/EpUploadFilled.mjs";
|
|
29
|
+
import { useI18n as te } from "vue-i18n";
|
|
30
|
+
const _e = /* @__PURE__ */ T({
|
|
31
|
+
name: "SkyFileMultipleInput",
|
|
32
|
+
inheritAttrs: !1,
|
|
33
|
+
props: {
|
|
34
|
+
reference: {
|
|
35
|
+
type: String,
|
|
36
|
+
required: !0
|
|
37
|
+
},
|
|
38
|
+
source: {
|
|
39
|
+
type: String,
|
|
40
|
+
required: !0
|
|
41
|
+
},
|
|
42
|
+
type: {
|
|
43
|
+
type: String,
|
|
44
|
+
default: "file"
|
|
45
|
+
},
|
|
46
|
+
dataId: {
|
|
47
|
+
type: String,
|
|
48
|
+
default: "id"
|
|
49
|
+
},
|
|
50
|
+
dataName: {
|
|
51
|
+
type: String,
|
|
52
|
+
default: "name"
|
|
53
|
+
},
|
|
54
|
+
dataUrl: {
|
|
55
|
+
type: String,
|
|
56
|
+
default: "url"
|
|
57
|
+
},
|
|
58
|
+
label: String,
|
|
59
|
+
rules: Object,
|
|
60
|
+
limit: {
|
|
61
|
+
type: Number,
|
|
62
|
+
default: 1
|
|
63
|
+
},
|
|
64
|
+
fileList: {
|
|
65
|
+
type: Array,
|
|
66
|
+
default: () => []
|
|
67
|
+
},
|
|
68
|
+
autoUpload: {
|
|
69
|
+
type: Boolean,
|
|
70
|
+
default: !0
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
setup(e, {
|
|
74
|
+
slots: s,
|
|
75
|
+
attrs: k
|
|
76
|
+
}) {
|
|
77
|
+
const {
|
|
78
|
+
t: f
|
|
79
|
+
} = te(), E = Q(), I = Y(), {
|
|
80
|
+
formData: r,
|
|
81
|
+
editData: p
|
|
82
|
+
} = X(), C = m(() => e.label || e.source), u = c(e.fileList), n = V("uploadRef"), L = E.meta;
|
|
83
|
+
p.value && (r[e.source] = p.value[e.source]);
|
|
84
|
+
const P = (t) => {
|
|
85
|
+
if (e.limit === 1) {
|
|
86
|
+
n.value?.clearFiles();
|
|
87
|
+
const a = t[0];
|
|
88
|
+
a.uid = K(), n.value?.handleStart(a), e.autoUpload && n.value?.submit();
|
|
89
|
+
}
|
|
90
|
+
}, R = () => {
|
|
91
|
+
r[e.source] = u.value.map((t) => t.id);
|
|
92
|
+
}, d = o(!1), v = o(), _ = (t) => {
|
|
93
|
+
v.value = t.url, d.value = !0;
|
|
94
|
+
};
|
|
95
|
+
let y;
|
|
96
|
+
const {
|
|
97
|
+
isLoading: x
|
|
98
|
+
} = W(async () => {
|
|
99
|
+
const t = r[e.source];
|
|
100
|
+
if (t) {
|
|
101
|
+
y = new AbortController();
|
|
102
|
+
const a = await b.dataProvider?.getMany?.(e.reference, {
|
|
103
|
+
ids: t,
|
|
104
|
+
signal: y.signal
|
|
105
|
+
});
|
|
106
|
+
if (a?.data)
|
|
107
|
+
return u.value = a.data.map((i) => ({
|
|
108
|
+
id: i[e.dataId],
|
|
109
|
+
name: i[e.dataName],
|
|
110
|
+
url: i[e.dataUrl]
|
|
111
|
+
})), a;
|
|
112
|
+
}
|
|
113
|
+
}, void 0, {
|
|
114
|
+
immediate: !0
|
|
115
|
+
}), g = o(""), h = c(), S = c(), U = o(), A = o(), D = async (t) => {
|
|
116
|
+
const a = await b.dataProvider?.getUploadConfig?.({
|
|
117
|
+
file: t
|
|
118
|
+
});
|
|
119
|
+
a?.data && (g.value = a.data.action, h.value = a.data.data, S.value = a.data.headers, U.value = a.data.method, A.value = a.data.name);
|
|
120
|
+
}, N = m(() => e.type === "image" ? "image/*" : void 0), M = m(() => e.type === "image" ? "picture-card" : "text");
|
|
121
|
+
return () => l(Z, {
|
|
122
|
+
resource: L.resource,
|
|
123
|
+
action: ["create", "edit"],
|
|
124
|
+
column: e.source
|
|
125
|
+
}, {
|
|
126
|
+
default: () => [l(O, {
|
|
127
|
+
class: ["sky-file-multiple-input", `is-${e.type}`],
|
|
128
|
+
label: C.value,
|
|
129
|
+
prop: e.source,
|
|
130
|
+
rules: e.rules,
|
|
131
|
+
style: I ? `grid-area: ${e.source}` : ""
|
|
132
|
+
}, {
|
|
133
|
+
default: () => [l(z, q({
|
|
134
|
+
ref: "uploadRef",
|
|
135
|
+
action: g.value,
|
|
136
|
+
method: U.value,
|
|
137
|
+
name: e.name,
|
|
138
|
+
withCredentials: e.withCredentials,
|
|
139
|
+
multiple: e.limit > 1,
|
|
140
|
+
limit: e.limit,
|
|
141
|
+
beforeUpload: D,
|
|
142
|
+
onSuccess: R,
|
|
143
|
+
onExceed: P,
|
|
144
|
+
headers: S.value,
|
|
145
|
+
data: h.value,
|
|
146
|
+
listType: M.value,
|
|
147
|
+
fileList: u.value,
|
|
148
|
+
"onUpdate:file-list": (t) => u.value = t,
|
|
149
|
+
autoUpload: e.autoUpload,
|
|
150
|
+
drag: e.type === "file",
|
|
151
|
+
showFileList: !0,
|
|
152
|
+
onPreview: _,
|
|
153
|
+
accept: N.value
|
|
154
|
+
}, k), {
|
|
155
|
+
default: () => e.type === "image" ? l(F, null, {
|
|
156
|
+
default: () => [l(j, null, null)]
|
|
157
|
+
}) : l(w, null, [l(F, {
|
|
158
|
+
class: "sky-file-multiple-input__icon"
|
|
159
|
+
}, {
|
|
160
|
+
default: () => [l(ee, null, null)]
|
|
161
|
+
}), l("div", {
|
|
162
|
+
class: "sky-file-multiple-input__text"
|
|
163
|
+
}, [f("upload.drop"), l("em", null, [f("upload.click")])])]),
|
|
164
|
+
file: (t) => {
|
|
165
|
+
if (s.default) {
|
|
166
|
+
const a = s.default();
|
|
167
|
+
return B(G(w, a.map((i) => $(i, {
|
|
168
|
+
...t
|
|
169
|
+
}))), [[H, x.value]]);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}), l(J, {
|
|
173
|
+
appendToBody: !0,
|
|
174
|
+
modelValue: d.value,
|
|
175
|
+
"onUpdate:modelValue": (t) => d.value = t
|
|
176
|
+
}, {
|
|
177
|
+
default: () => [l("img", {
|
|
178
|
+
class: "sky-file-multiple-input__img",
|
|
179
|
+
src: v.value
|
|
180
|
+
}, null)]
|
|
181
|
+
})]
|
|
182
|
+
})]
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
export {
|
|
187
|
+
_e as SkyFileMultipleInput
|
|
188
|
+
};
|
|
189
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/components/file-multiple-input/index.tsx"],"sourcesContent":["import { EpPlus } from '@/icons/EpPlus'\r\nimport type { GetManyResult, Identifier } from '@/provides'\r\nimport {\r\n ElDialog,\r\n ElFormItem,\r\n ElIcon,\r\n ElLoadingDirective,\r\n ElUpload,\r\n genFileId,\r\n type FormItemRule,\r\n type UploadFile,\r\n type UploadInstance,\r\n type UploadProps,\r\n type UploadRawFile,\r\n} from 'element-plus'\r\nimport {\r\n cloneVNode,\r\n computed,\r\n defineComponent,\r\n Fragment,\r\n h,\r\n ref,\r\n shallowRef,\r\n useTemplateRef,\r\n withDirectives,\r\n} from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport { useForm, useFormGrid, type SkyUploadUserFile } from '@/hooks'\r\nimport { skyConfig } from '@/setup'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport { EpUploadFilled } from '@/icons/EpUploadFilled'\r\nimport { useI18n } from 'vue-i18n'\r\n\r\nexport interface SkyFileMultipleInputProps {\r\n reference: string\r\n source: string\r\n type?: 'file' | 'image'\r\n dataId?: string\r\n dataName?: string\r\n dataUrl?: string\r\n label?: string\r\n rules?: FormItemRule | FormItemRule[]\r\n name?: string\r\n withCredentials?: boolean\r\n limit?: number\r\n fileList?: SkyUploadUserFile[]\r\n autoUpload?: UploadProps['autoUpload']\r\n}\r\n\r\nexport const SkyFileMultipleInput = defineComponent<\r\n SkyFileMultipleInputProps & Partial<UploadProps>\r\n>({\r\n name: 'SkyFileMultipleInput',\r\n inheritAttrs: false,\r\n props: {\r\n reference: {\r\n type: String,\r\n required: true,\r\n },\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n type: {\r\n type: String,\r\n default: 'file',\r\n },\r\n dataId: {\r\n type: String,\r\n default: 'id',\r\n },\r\n dataName: {\r\n type: String,\r\n default: 'name',\r\n },\r\n dataUrl: {\r\n type: String,\r\n default: 'url',\r\n },\r\n label: String,\r\n rules: Object,\r\n limit: {\r\n type: Number,\r\n default: 1,\r\n },\r\n fileList: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n autoUpload: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n setup(props, { slots, attrs }) {\r\n const { t } = useI18n()\r\n const route = useRoute()\r\n const formGrid = useFormGrid()\r\n const { formData, editData } = useForm()!\r\n const title = computed<string>(() => props.label || props.source)\r\n // init fileList\r\n const fileList = shallowRef<SkyUploadUserFile[]>(props.fileList!)\r\n const uploadRef = useTemplateRef<UploadInstance>('uploadRef')\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n if (editData.value) {\r\n formData[props.source] = editData.value[props.source]\r\n }\r\n\r\n const onExceed = (files: File[]) => {\r\n if (props.limit === 1) {\r\n uploadRef.value?.clearFiles()\r\n const file = files[0] as UploadRawFile\r\n file.uid = genFileId()\r\n uploadRef.value?.handleStart(file)\r\n if (props.autoUpload) {\r\n uploadRef.value?.submit()\r\n }\r\n }\r\n }\r\n\r\n const onSuccess = () => {\r\n formData[props.source] = fileList.value.map((f) => f.id!)\r\n }\r\n\r\n const preview = ref(false)\r\n const previewUrl = ref<string>()\r\n const onPreview = (file: UploadFile) => {\r\n previewUrl.value = file.url\r\n preview.value = true\r\n }\r\n\r\n let controller: AbortController | undefined\r\n const { isLoading } = useAsyncState<GetManyResult | undefined>(\r\n async () => {\r\n const ids = formData[props.source]\r\n if (ids) {\r\n controller = new AbortController()\r\n const res = await skyConfig.dataProvider?.getMany?.(props.reference, {\r\n ids: ids as Identifier[],\r\n signal: controller.signal,\r\n })\r\n\r\n if (res?.data) {\r\n fileList.value = res.data.map((d) => ({\r\n id: d[props.dataId!] as Identifier,\r\n name: d[props.dataName!] as string,\r\n url: d[props.dataUrl!] as string,\r\n }))\r\n return res\r\n }\r\n }\r\n },\r\n undefined,\r\n {\r\n immediate: true,\r\n },\r\n )\r\n\r\n const action = ref('')\r\n const data = shallowRef<Record<string, unknown>>()\r\n const headers = shallowRef<Record<string, unknown>>()\r\n const method = ref()\r\n const name = ref<string>()\r\n const beforeUpload = async (rawFile: UploadRawFile) => {\r\n const res = await skyConfig.dataProvider?.getUploadConfig?.({\r\n file: rawFile,\r\n })\r\n if (res?.data) {\r\n action.value = res.data.action\r\n data.value = res.data.data\r\n headers.value = res.data.headers\r\n method.value = res.data.method\r\n name.value = res.data.name\r\n }\r\n }\r\n\r\n const accept = computed(() => (props.type === 'image' ? 'image/*' : undefined))\r\n const listType = computed(() => (props.type === 'image' ? 'picture-card' : 'text'))\r\n\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\r\n <ElFormItem\r\n class={['sky-file-multiple-input', `is-${props.type}`]}\r\n label={title.value}\r\n prop={props.source}\r\n rules={props.rules}\r\n style={formGrid ? `grid-area: ${props.source}` : ''}\r\n >\r\n <ElUpload\r\n ref=\"uploadRef\"\r\n action={action.value}\r\n method={method.value}\r\n name={props.name}\r\n withCredentials={props.withCredentials}\r\n multiple={props.limit! > 1}\r\n limit={props.limit}\r\n beforeUpload={beforeUpload}\r\n onSuccess={onSuccess}\r\n onExceed={onExceed}\r\n headers={headers.value}\r\n data={data.value}\r\n listType={listType.value}\r\n fileList={fileList.value}\r\n onUpdate:file-list={(fs: SkyUploadUserFile[]) => (fileList.value = fs)}\r\n autoUpload={props.autoUpload}\r\n drag={props.type === 'file'}\r\n showFileList\r\n onPreview={onPreview}\r\n // https://developer.mozilla.org/zh-CN/docs/Web/HTML/Reference/Attributes/accept\r\n accept={accept.value}\r\n {...attrs}\r\n >\r\n {{\r\n default: () =>\r\n props.type === 'image' ? (\r\n <ElIcon>\r\n <EpPlus />\r\n </ElIcon>\r\n ) : (\r\n <>\r\n <ElIcon class=\"sky-file-multiple-input__icon\">\r\n <EpUploadFilled />\r\n </ElIcon>\r\n <div class=\"sky-file-multiple-input__text\">\r\n {t('upload.drop')}\r\n <em>{t('upload.click')}</em>\r\n </div>\r\n </>\r\n ),\r\n file: (scope: { file: UploadFile; index: number }) => {\r\n if (slots.default) {\r\n const vnodes = slots.default()\r\n return withDirectives(\r\n h(\r\n Fragment,\r\n vnodes.map((vnode) => cloneVNode(vnode, { ...scope })),\r\n ),\r\n [[ElLoadingDirective, isLoading.value]],\r\n )\r\n }\r\n },\r\n }}\r\n </ElUpload>\r\n <ElDialog\r\n appendToBody\r\n modelValue={preview.value}\r\n onUpdate:modelValue={(v) => (preview.value = v)}\r\n >\r\n <img class=\"sky-file-multiple-input__img\" src={previewUrl.value} />\r\n </ElDialog>\r\n </ElFormItem>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\n"],"names":["SkyFileMultipleInput","defineComponent","name","inheritAttrs","props","reference","type","required","source","default","dataId","dataName","dataUrl","label","rules","limit","fileList","autoUpload","attrs","t","route","useRoute","formGrid","useFormGrid","editData","title","computed","shallowRef","uploadRef","useTemplateRef","routeMeta","formData","file","files","preview","ref","previewUrl","controller","isLoading","ids","res","skyConfig","id","url","immediate","action","data","headers","method","beforeUpload","rawFile","accept","listType","onSuccess","onExceed","fs","onPreview","_createVNode","_Fragment","ElIcon","vnodes","slots","withDirectives","h","Fragment","vnode","cloneVNode","ElLoadingDirective","v"],"mappings":"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"}
|
|
@@ -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/form/style/css");require("element-plus/es/components/form-item/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 q=require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");const a=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 u=require("element-plus"),d=require("vue-i18n");function f(r){return typeof r=="function"||Object.prototype.toString.call(r)==="[object Object]"&&!e.isVNode(r)}const m=e.defineComponent({name:"SkyFilter",setup(r,{slots:o}){const{t:n}=d.useI18n(),{formData:i}=a.useProvideForm(),{filterData:l,getList:s}=q.useList(),c=()=>{Object.assign(l,i),s()};return()=>{let t;return e.createVNode(u.ElForm,{class:"sky-filter",inline:!0,model:i},{default:()=>[o.default?.(),e.createVNode(u.ElFormItem,null,{default:()=>[e.createVNode(u.ElButton,{type:"primary",onClick:c},f(t=n("button.query"))?t:{default:()=>[t]})]})]})}}});exports.SkyFilter=m;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/filter/index.tsx"],"sourcesContent":["import { useList, useProvideForm } from '@/hooks'\r\nimport { ElButton, ElForm, ElFormItem, type FormProps } from 'element-plus'\r\nimport { defineComponent } from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\n\r\nexport const SkyFilter = defineComponent<Partial<FormProps>>({\r\n name: 'SkyFilter',\r\n setup(_props, { slots }) {\r\n const { t } = useI18n()\r\n const { formData } = useProvideForm()\r\n const { filterData, getList } = useList()!\r\n const onClick = () => {\r\n Object.assign(filterData, formData)\r\n getList()\r\n }\r\n return () => (\r\n <ElForm class=\"sky-filter\" inline model={formData}>\r\n {slots.default?.()}\r\n <ElFormItem>\r\n <ElButton type=\"primary\" onClick={onClick}>\r\n {t('button.query')}\r\n </ElButton>\r\n </ElFormItem>\r\n </ElForm>\r\n )\r\n },\r\n})\r\n"],"names":["_isSlot","s","_isVNode","SkyFilter","defineComponent","name","slots","t","formData","getList","Object","_slot","default"],"mappings":"u8BAGkC,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAElC,MAAAE,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,qBACgBC,MAAAA,CAAM,EAAA,OACZC,EAAAA,gBACAC,SAAAA,oCACYC,QAAAA,sBAElBC,OAAAA,OAAAA,EAAAA,CAAAA,EACAD,EAAAA,cAEK,IAAAE,iCAAA,MAAA,aAAA,OAAA,UAC4C,EAAA,6DAC7BC,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,WAAAA,CAAA,KAAA,8DAGI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAK5B,CACF,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { FormProps } from 'element-plus';
|
|
2
|
+
export declare const SkyFilter: import('vue').DefineComponent<Partial<FormProps>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Partial<FormProps>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import "element-plus/es/components/button/style/css";
|
|
2
|
+
import "element-plus/es/components/form/style/css";
|
|
3
|
+
import "element-plus/es/components/form-item/style/css";
|
|
4
|
+
import { defineComponent as s, createVNode as r, isVNode as u } 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 { useList as c } from "../../hooks/useList.mjs";
|
|
14
|
+
import "../../hooks/useHiddenTitle.mjs";
|
|
15
|
+
import { useProvideForm as f } from "../../hooks/useForm.mjs";
|
|
16
|
+
import "../../hooks/useShow.mjs";
|
|
17
|
+
import "../../hooks/useReferenceArrayField.mjs";
|
|
18
|
+
import "../../hooks/useTreeWithDetails.mjs";
|
|
19
|
+
import "../../hooks/useFormGrid.mjs";
|
|
20
|
+
import "../../hooks/useReferenceArrayInput.mjs";
|
|
21
|
+
import { ElForm as a, ElFormItem as d, ElButton as y } from "element-plus";
|
|
22
|
+
import { useI18n as b } from "vue-i18n";
|
|
23
|
+
function k(t) {
|
|
24
|
+
return typeof t == "function" || Object.prototype.toString.call(t) === "[object Object]" && !u(t);
|
|
25
|
+
}
|
|
26
|
+
const G = /* @__PURE__ */ s({
|
|
27
|
+
name: "SkyFilter",
|
|
28
|
+
setup(t, {
|
|
29
|
+
slots: e
|
|
30
|
+
}) {
|
|
31
|
+
const {
|
|
32
|
+
t: m
|
|
33
|
+
} = b(), {
|
|
34
|
+
formData: i
|
|
35
|
+
} = f(), {
|
|
36
|
+
filterData: p,
|
|
37
|
+
getList: n
|
|
38
|
+
} = c(), l = () => {
|
|
39
|
+
Object.assign(p, i), n();
|
|
40
|
+
};
|
|
41
|
+
return () => {
|
|
42
|
+
let o;
|
|
43
|
+
return r(a, {
|
|
44
|
+
class: "sky-filter",
|
|
45
|
+
inline: !0,
|
|
46
|
+
model: i
|
|
47
|
+
}, {
|
|
48
|
+
default: () => [e.default?.(), r(d, null, {
|
|
49
|
+
default: () => [r(y, {
|
|
50
|
+
type: "primary",
|
|
51
|
+
onClick: l
|
|
52
|
+
}, k(o = m("button.query")) ? o : {
|
|
53
|
+
default: () => [o]
|
|
54
|
+
})]
|
|
55
|
+
})]
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
export {
|
|
61
|
+
G as SkyFilter
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/components/filter/index.tsx"],"sourcesContent":["import { useList, useProvideForm } from '@/hooks'\r\nimport { ElButton, ElForm, ElFormItem, type FormProps } from 'element-plus'\r\nimport { defineComponent } from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\n\r\nexport const SkyFilter = defineComponent<Partial<FormProps>>({\r\n name: 'SkyFilter',\r\n setup(_props, { slots }) {\r\n const { t } = useI18n()\r\n const { formData } = useProvideForm()\r\n const { filterData, getList } = useList()!\r\n const onClick = () => {\r\n Object.assign(filterData, formData)\r\n getList()\r\n }\r\n return () => (\r\n <ElForm class=\"sky-filter\" inline model={formData}>\r\n {slots.default?.()}\r\n <ElFormItem>\r\n <ElButton type=\"primary\" onClick={onClick}>\r\n {t('button.query')}\r\n </ElButton>\r\n </ElFormItem>\r\n </ElForm>\r\n )\r\n },\r\n})\r\n"],"names":["_isSlot","s","_isVNode","SkyFilter","defineComponent","name","slots","t","formData","getList","Object","_slot","default"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAGkC,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAElC,MAAAE,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA;IACgBC,OAAAA;AAAAA,EAAM,GAAA;;MACZC,GAAAA;AAAAA;MACAC,UAAAA;AAAAA;;MACYC,SAAAA;AAAAA;AAElBC,aAAAA,OAAAA,GAAAA,CAAAA,GACAD,EAAAA;AAAAA;;AAEK,UAAAE;;QAAA,OAAA;AAAA,QAAA,QAAA;AAAA;MAC4C,GAAA;AAAA;UAC7BC,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA,YAAA,MAAA;AAAA;;;UAGI,CAAA,CAAA;AAAA,QAAA,CAAA,CAAA;AAAA,MAAA,CAAA;AAAA;EAK5B;AACF,CAAA;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/image/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");require("../../hooks/useList.cjs");const a=require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const c=require("element-plus"),d=require("vue-router"),q=require("../can-access/index.cjs"),m=e.defineComponent({name:"SkyImageField",inheritAttrs:!1,props:{source:{type:String,required:!0},src:{type:String,default:"src"},label:String,row:Object},setup(r,{attrs:i}){const n=d.useRoute(),l=a.useHiddenTitle(),o=e.computed(()=>r.label||r.source),s=n.meta,t=e.computed(()=>{const u=r.row?.[r.source];return u?typeof u!="object"?String(u):u[r.src]||"":""});return()=>e.createVNode(q.SkyCanAccess,{resource:s.resource,action:["list","show"],column:r.source},{default:()=>[t.value&&(l?e.createVNode(c.ElImage,e.mergeProps({src:t.value},i),null):e.createVNode("div",{class:"sky-image-field"},[o.value&&e.createVNode("h4",null,[o.value]),e.createVNode(c.ElImage,e.mergeProps({src:t.value},i),null)]))]})}});exports.SkyImageField=m;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/image-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\nimport { ElImage, type ImageProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport type { SkyLayoutRouteMeta } from '@/router'\n\nexport interface SkyImageFieldProps {\n source: string\n src?: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyImageField = defineComponent<SkyImageFieldProps & Partial<ImageProps>>({\n name: 'SkyImageField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n src: {\n type: String,\n default: 'src',\n },\n label: String,\n row: Object,\n },\n setup(props, { attrs }) {\n const route = useRoute()\n const hiddenTitle = useHiddenTitle()\n const title = computed<string>(() => props.label || props.source)\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 ''\n }\n if (typeof v !== 'object') {\n return String(v)\n }\n return (v as Record<string, string>)[props.src!] || ''\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n {field.value &&\n (hiddenTitle ? (\n <ElImage src={field.value} {...attrs} />\n ) : (\n <div class=\"sky-image-field\">\n {title.value && <h4>{title.value}</h4>}\n <ElImage src={field.value} {...attrs} />\n </div>\n ))}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyImageField","defineComponent","name","inheritAttrs","props","source","type","required","src","default","label","row","attrs","route","useRoute","hiddenTitle","useHiddenTitle","title","computed","routeMeta","field","v","_createVNode","ElImage","_mergeProps"],"mappings":"s3BAcAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,gBACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,IAAAA,CACEF,KAAAA,OACAG,QAAAA,OAEFC,MAAAA,OACAC,IAAAA,iBAEaC,MAAAA,CAAM,EAAA,CACnB,MAAAC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,eAAA,EACAC,EAAAC,EAAAA,SAAA,IAAAd,EAAA,OAAAA,EAAA,MAAA,EACAe,EAAAN,EAAA,KAEAO,EAAAF,EAAAA,SAAA,IAAA,oCAKE,OAAAG,GAAA,mBAGAA,EAAAjB,EAAA,GAAA,GAAA,GALE,EAMJ,CAAA,8DAG4C,OAAA,CAAA,OAAA,MAAA,EAA0B,OAAAA,EAAA,MAAsB,EAAA,CAAAK,QAAAA,IAAAA,CAAAA,EAAAA,QAAAA,EAAAA,EAAAA,YAAAA,EAAAA,QAAAA,aAAAA,CAE1E,IAAAW,EAAA,qCAC0B,MAAA,iBAAA,EAAA,CAAAH,EAAA,OAAAK,EAAAA,YAAA,KAAA,KAAA,CAAAL,EAAA,KAAA,CAAA,EAAAK,cAAAC,EAAAA,QAAAC,EAAAA,WAAA,CAGI,IAAAJ,EAAA,qBAMlD,CACF,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ImageProps } from 'element-plus';
|
|
2
|
+
export interface SkyImageFieldProps {
|
|
3
|
+
source: string;
|
|
4
|
+
src?: string;
|
|
5
|
+
label?: string;
|
|
6
|
+
row?: Record<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
export declare const SkyImageField: import('vue').DefineComponent<SkyImageFieldProps & Partial<ImageProps>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyImageFieldProps & Partial<ImageProps>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import "element-plus/es/components/image/style/css";
|
|
2
|
+
import { defineComponent as a, computed as u, createVNode as t, 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 d } 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 { ElImage as n } from "element-plus";
|
|
20
|
+
import { useRoute as f } from "vue-router";
|
|
21
|
+
import { SkyCanAccess as g } from "../can-access/index.mjs";
|
|
22
|
+
const R = /* @__PURE__ */ a({
|
|
23
|
+
name: "SkyImageField",
|
|
24
|
+
inheritAttrs: !1,
|
|
25
|
+
props: {
|
|
26
|
+
source: {
|
|
27
|
+
type: String,
|
|
28
|
+
required: !0
|
|
29
|
+
},
|
|
30
|
+
src: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: "src"
|
|
33
|
+
},
|
|
34
|
+
label: String,
|
|
35
|
+
row: Object
|
|
36
|
+
},
|
|
37
|
+
setup(e, {
|
|
38
|
+
attrs: i
|
|
39
|
+
}) {
|
|
40
|
+
const c = f(), s = d(), m = u(() => e.label || e.source), p = c.meta, o = u(() => {
|
|
41
|
+
const r = e.row?.[e.source];
|
|
42
|
+
return r ? typeof r != "object" ? String(r) : r[e.src] || "" : "";
|
|
43
|
+
});
|
|
44
|
+
return () => t(g, {
|
|
45
|
+
resource: p.resource,
|
|
46
|
+
action: ["list", "show"],
|
|
47
|
+
column: e.source
|
|
48
|
+
}, {
|
|
49
|
+
default: () => [o.value && (s ? t(n, l({
|
|
50
|
+
src: o.value
|
|
51
|
+
}, i), null) : t("div", {
|
|
52
|
+
class: "sky-image-field"
|
|
53
|
+
}, [m.value && t("h4", null, [m.value]), t(n, l({
|
|
54
|
+
src: o.value
|
|
55
|
+
}, i), null)]))]
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
export {
|
|
60
|
+
R as SkyImageField
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/components/image-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\nimport { ElImage, type ImageProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport type { SkyLayoutRouteMeta } from '@/router'\n\nexport interface SkyImageFieldProps {\n source: string\n src?: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyImageField = defineComponent<SkyImageFieldProps & Partial<ImageProps>>({\n name: 'SkyImageField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n src: {\n type: String,\n default: 'src',\n },\n label: String,\n row: Object,\n },\n setup(props, { attrs }) {\n const route = useRoute()\n const hiddenTitle = useHiddenTitle()\n const title = computed<string>(() => props.label || props.source)\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 ''\n }\n if (typeof v !== 'object') {\n return String(v)\n }\n return (v as Record<string, string>)[props.src!] || ''\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n {field.value &&\n (hiddenTitle ? (\n <ElImage src={field.value} {...attrs} />\n ) : (\n <div class=\"sky-image-field\">\n {title.value && <h4>{title.value}</h4>}\n <ElImage src={field.value} {...attrs} />\n </div>\n ))}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyImageField","defineComponent","name","inheritAttrs","props","source","type","required","src","default","label","row","attrs","route","useRoute","hiddenTitle","useHiddenTitle","title","computed","routeMeta","field","v","_createVNode","ElImage","_mergeProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAcA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,KAAAA;AAAAA,MACEF,MAAAA;AAAAA,MACAG,SAAAA;AAAAA;IAEFC,OAAAA;AAAAA,IACAC,KAAAA;AAAAA;;IAEaC,OAAAA;AAAAA,EAAM,GAAA;AACnB,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,MAAAd,EAAA,SAAAA,EAAA,MAAA,GACAe,IAAAN,EAAA,MAEAO,IAAAF,EAAA,MAAA;;iBAKE,OAAAG,KAAA,uBAGAA,EAAAjB,EAAA,GAAA,KAAA,KALE;AAAA,IAMJ,CAAA;;;MAG4C,QAAA,CAAA,QAAA,MAAA;AAAA,MAA0B,QAAAA,EAAA;AAAA,IAAsB,GAAA;AAAA,MAAAK,SAAAA,MAAAA,CAAAA,EAAAA,UAAAA,IAAAA,EAAAA,GAAAA,EAAAA;AAAAA,QAE1E,KAAAW,EAAA;AAAA;QAC0B,OAAA;AAAA,MAAA,GAAA,CAAAH,EAAA,SAAAK,EAAA,MAAA,MAAA,CAAAL,EAAA,KAAA,CAAA,GAAAK,EAAAC,GAAAC,EAAA;AAAA,QAGI,KAAAJ,EAAA;AAAA;;EAMlD;AACF,CAAA;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export * from './can-access';
|
|
2
|
+
export * from './list';
|
|
3
|
+
export * from './filter';
|
|
4
|
+
export * from './data-table';
|
|
5
|
+
export * from './data-table-col';
|
|
6
|
+
export * from './edit-button';
|
|
7
|
+
export * from './show-button';
|
|
8
|
+
export * from './show';
|
|
9
|
+
export * from './show-simple-layout';
|
|
10
|
+
export * from './text-field';
|
|
11
|
+
export * from './image-field';
|
|
12
|
+
export * from './reference-image-field';
|
|
13
|
+
export * from './reference-array-field';
|
|
14
|
+
export * from './single-field-list';
|
|
15
|
+
export * from './link-field';
|
|
16
|
+
export * from './reference-field';
|
|
17
|
+
export * from './create';
|
|
18
|
+
export * from './simple-form';
|
|
19
|
+
export * from './text-input';
|
|
20
|
+
export * from './radio-button-group-input';
|
|
21
|
+
export * from './reference-array-input';
|
|
22
|
+
export * from './auto-complete-array-input';
|
|
23
|
+
export * from './avatar-input';
|
|
24
|
+
export * from './file-multiple-input';
|
|
25
|
+
export * from './tree-select-input';
|
|
26
|
+
export * from './tree-with-details';
|
|
27
|
+
export * from './edit';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/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");require("../../hooks/useList.cjs");const a=require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const o=require("element-plus"),q=require("vue-router"),k=require("../can-access/index.cjs"),m=e.defineComponent({name:"SkyLinkField",inheritAttrs:!1,props:{source:{type:String,required:!0},label:String,row:Object},emits:["click"],setup(r,{emit:t,attrs:u}){const c=q.useRoute(),l=a.useHiddenTitle(),s=c.meta,i=e.computed(()=>{const n=r.row?.[r.source];return n?String(n):""}),d=e.computed(()=>r.label||r.source);return()=>e.createVNode(k.SkyCanAccess,{resource:s.resource,action:["list","show"],column:r.source},{default:()=>[l?e.createVNode("div",null,[e.createVNode(o.ElButton,e.mergeProps({type:"primary",text:!0,bg:!0,onClick:()=>t("click",r.row)},u),{default:()=>[i.value]})]):e.createVNode("div",{class:"sky-link-field"},[e.createVNode("h4",null,[d.value]),e.createVNode(o.ElButton,e.mergeProps({type:"primary",text:!0,bg:!0,onClick:()=>t("click",r.row)},u),{default:()=>[i.value]})])]})}});exports.SkyLinkField=m;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","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":"u3BAaAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,eACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OACAC,IAAAA,wCAGmBC,MAAAA,CAAM,EAAA,CACzB,MAAAC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,eAAA,EACAC,EAAAJ,EAAA,KAEAK,EAAAC,EAAAA,SAAA,IAAA,2BAEE,OAAAC,YAGA,EACF,CAAA,EAEAC,EAAAF,EAAAA,SAAA,IACEb,EAAA,OAAAA,EAAA,MACF,8DAG4C,OAAA,CAAA,OAAA,MAAA,EAA0B,OAAAA,EAAA,MAAsB,EAAA,iFAC5E,KAAA,UAAA,KAAA,GAAA,GAAA,+BAEgE,EAAAM,CAAA,EAAA,CAAWU,QAAAA,IAAAA,CAAAA,EAAAA,KAAAA,CACrE,CAAA,CAAA,CAAA,EAAAC,EAAAA,YAAA,MAAA,CAAA,MAAA,6FAKE,KAAA,UAAA,KAAA,GAAA,GAAA,+BACwD,EAAAX,CAAA,EAAA,CAAWU,QAAAA,IAAAA,CAAAA,EAAAA,KAAAA,QAO7F,CACF,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ButtonProps } from 'element-plus';
|
|
2
|
+
export interface SkyLinkFieldProps {
|
|
3
|
+
source: string;
|
|
4
|
+
label?: string;
|
|
5
|
+
row?: Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
export declare const SkyLinkField: import('vue').DefineComponent<SkyLinkFieldProps & Partial<ButtonProps>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyLinkFieldProps & Partial<ButtonProps>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|