@done-coding/admin-core 0.17.1-alpha.0 → 0.18.1-alpha.0
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/README.md +77 -1
- package/es/_virtual/_plugin-vue_export-helper.mjs +7 -6
- package/es/bridge/config-hook.mjs +49 -37
- package/es/bridge/index.mjs +152 -109
- package/es/bridge/layout.mjs +45 -31
- package/es/bridge/plugin.mjs +22 -12
- package/es/bridge/route.mjs +59 -50
- package/es/bridge/state.mjs +54 -39
- package/es/bridge/storage.mjs +18 -8
- package/es/bridge/theme/index.mjs +200 -97
- package/es/bridge/theme/persist.mjs +11 -7
- package/es/bridge/theme/system-dark.mjs +13 -6
- package/es/components/app-layout/AppAside.vue.mjs +4 -4
- package/es/components/app-layout/AppAside.vue2.mjs +37 -30
- package/es/components/app-layout/AppBody.vue.mjs +4 -4
- package/es/components/app-layout/AppBody.vue2.mjs +97 -60
- package/es/components/app-layout/AppBreadcrumb.vue.mjs +4 -4
- package/es/components/app-layout/AppBreadcrumb.vue2.mjs +59 -38
- package/es/components/app-layout/AppCollapseToggle.vue.mjs +4 -4
- package/es/components/app-layout/AppCollapseToggle.vue2.mjs +51 -42
- package/es/components/app-layout/AppFooter.vue.mjs +4 -4
- package/es/components/app-layout/AppFooter.vue2.mjs +15 -12
- package/es/components/app-layout/AppHeader.vue.mjs +4 -4
- package/es/components/app-layout/AppHeader.vue2.mjs +81 -58
- package/es/components/app-layout/AppLayout.vue.mjs +4 -4
- package/es/components/app-layout/AppLayout.vue2.mjs +148 -112
- package/es/components/app-layout/AppPage.vue.mjs +4 -4
- package/es/components/app-layout/AppPage.vue2.mjs +254 -197
- package/es/components/app-layout/AppShell.vue.mjs +44 -42
- package/es/components/app-layout/AppShell.vue2.mjs +2 -2
- package/es/components/app-layout/AppSidebar.vue.mjs +4 -4
- package/es/components/app-layout/AppSidebar.vue2.mjs +76 -59
- package/es/components/app-layout/AppTheme.vue.mjs +4 -4
- package/es/components/app-layout/AppTheme.vue2.mjs +69 -57
- package/es/components/app-layout/app-page-geometry.mjs +44 -42
- package/es/components/app-layout/keep-alive.mjs +27 -19
- package/es/components/app-layout/viewport.mjs +4 -3
- package/es/components/data-view/DataListView.vue.mjs +4 -4
- package/es/components/data-view/DataListView.vue2.mjs +133 -93
- package/es/components/data-view/DataListViewItem.vue.mjs +4 -4
- package/es/components/data-view/DataListViewItem.vue2.mjs +11 -9
- package/es/components/data-view/utils.mjs +36 -34
- package/es/components/display/ActionBtn.vue.mjs +94 -71
- package/es/components/display/ActionBtn.vue2.mjs +2 -2
- package/es/components/display/ActionBtnGroup.vue.mjs +54 -48
- package/es/components/display/ActionBtnGroup.vue2.mjs +2 -2
- package/es/components/display/ActionConfirm.vue.mjs +4 -4
- package/es/components/display/ActionConfirm.vue2.mjs +116 -92
- package/es/components/display/BooleanTag.vue.mjs +24 -18
- package/es/components/display/BooleanTag.vue2.mjs +2 -2
- package/es/components/display/HeightProvider.vue.mjs +37 -27
- package/es/components/display/HeightProvider.vue2.mjs +2 -2
- package/es/components/display/TabsHeader.vue.mjs +4 -4
- package/es/components/display/TabsHeader.vue2.mjs +86 -57
- package/es/components/display/TabsMain.vue.mjs +156 -125
- package/es/components/display/TabsMain.vue2.mjs +2 -2
- package/es/components/display/TabsNaturalFlow.vue.mjs +15 -11
- package/es/components/display/TabsNaturalFlow.vue2.mjs +2 -2
- package/es/components/display/TabsRefineFlow.vue.mjs +55 -42
- package/es/components/display/TabsRefineFlow.vue2.mjs +2 -2
- package/es/components/display/TabsTile.vue.mjs +4 -4
- package/es/components/display/TabsTile.vue2.mjs +204 -146
- package/es/components/display/WatchSize.vue.mjs +50 -30
- package/es/components/display/WatchSize.vue2.mjs +2 -2
- package/es/components/display/use-tabs-query-sync.mjs +21 -17
- package/es/components/form/FormItem.vue.mjs +4 -4
- package/es/components/form/FormItem.vue2.mjs +183 -121
- package/es/components/form/FormItemNestForm.vue.mjs +4 -4
- package/es/components/form/FormItemNestForm.vue2.mjs +38 -34
- package/es/components/form/FormItemNestFormList.vue.mjs +4 -4
- package/es/components/form/FormItemNestFormList.vue2.mjs +135 -106
- package/es/components/form/FormMain.vue.mjs +4 -4
- package/es/components/form/FormMain.vue2.mjs +226 -139
- package/es/components/form/FormRadioGroup.vue.mjs +67 -52
- package/es/components/form/FormRadioGroup.vue2.mjs +2 -2
- package/es/components/form/FormSearch.vue.mjs +4 -4
- package/es/components/form/FormSearch.vue2.mjs +194 -156
- package/es/components/form/FormSelect.vue.mjs +69 -42
- package/es/components/form/FormSelect.vue2.mjs +2 -2
- package/es/components/form/FormSubmitBtn.vue.mjs +30 -25
- package/es/components/form/FormSubmitBtn.vue2.mjs +2 -2
- package/es/components/form/FormSubmitPanel.vue.mjs +4 -4
- package/es/components/form/FormSubmitPanel.vue2.mjs +129 -96
- package/es/components/form/FormTree.vue.mjs +19 -16
- package/es/components/form/FormTree.vue2.mjs +2 -2
- package/es/components/form/FormVerifyCode.vue.mjs +58 -41
- package/es/components/form/FormVerifyCode.vue2.mjs +2 -2
- package/es/components/form/FormVerifyImage.vue.mjs +4 -4
- package/es/components/form/FormVerifyImage.vue2.mjs +62 -40
- package/es/components/form/form-search-utils.mjs +83 -52
- package/es/components/form/nest-form-item-list.mjs +63 -55
- package/es/components/form/nest-form-item.mjs +30 -30
- package/es/components/form/nest-registry.mjs +4 -4
- package/es/components/form/use-form-submit.mjs +18 -15
- package/es/components/form/use-layout-by-container.mjs +23 -15
- package/es/components/form/use-nest-form-list.mjs +19 -16
- package/es/components/form/use-nest-form.mjs +37 -28
- package/es/components/form/use-nest-layout-scale.mjs +11 -10
- package/es/components/form/utils.mjs +233 -145
- package/es/components/list-page/ListPage.vue.mjs +4 -4
- package/es/components/list-page/ListPage.vue2.mjs +313 -207
- package/es/components/list-page/use-sticky.mjs +45 -33
- package/es/components/menu/MenuItemSub.vue.mjs +47 -43
- package/es/components/menu/MenuItemSub.vue2.mjs +2 -2
- package/es/components/menu/MenuTree.vue.mjs +84 -61
- package/es/components/menu/MenuTree.vue2.mjs +2 -2
- package/es/components/misc/AutoRefresh.vue.mjs +4 -4
- package/es/components/misc/AutoRefresh.vue2.mjs +78 -53
- package/es/components/misc/AutoRefreshGroup.vue.mjs +4 -4
- package/es/components/misc/AutoRefreshGroup.vue2.mjs +54 -51
- package/es/components/misc/SelectModule.vue.mjs +54 -45
- package/es/components/misc/SelectModule.vue2.mjs +2 -2
- package/es/components/misc/TriggerAutoImport.vue.mjs +7 -5
- package/es/components/misc/TriggerAutoImport.vue2.mjs +2 -2
- package/es/components/modal/ModalConfirm.vue.mjs +4 -4
- package/es/components/modal/ModalConfirm.vue2.mjs +160 -125
- package/es/components/modal/ModalDetail.vue.mjs +50 -39
- package/es/components/modal/ModalDetail.vue2.mjs +2 -2
- package/es/components/modal/ModalForm.vue.mjs +63 -52
- package/es/components/modal/ModalForm.vue2.mjs +2 -2
- package/es/components/modal/ModalPorter.vue.mjs +51 -36
- package/es/components/modal/ModalPorter.vue2.mjs +2 -2
- package/es/components/modal/ModalShelf.vue.mjs +38 -28
- package/es/components/modal/ModalShelf.vue2.mjs +2 -2
- package/es/components/modal/modal-shelf-core.mjs +52 -36
- package/es/components/modal/modal-shelf-hierarchy.mjs +11 -9
- package/es/components/panel/PanelEditSwitch.vue.mjs +4 -4
- package/es/components/panel/PanelEditSwitch.vue2.mjs +88 -66
- package/es/components/panel/PanelItem.vue.mjs +4 -4
- package/es/components/panel/PanelItem.vue2.mjs +103 -77
- package/es/components/panel/PanelItemNestForm.vue.mjs +4 -4
- package/es/components/panel/PanelItemNestForm.vue2.mjs +61 -52
- package/es/components/panel/PanelItemNestPanel.vue.mjs +22 -20
- package/es/components/panel/PanelItemNestPanel.vue2.mjs +2 -2
- package/es/components/panel/PanelMain.vue.mjs +4 -4
- package/es/components/panel/PanelMain.vue2.mjs +92 -74
- package/es/components/panel/nest-panel-form.mjs +44 -38
- package/es/components/panel/nest-panel-item.mjs +18 -17
- package/es/components/slot-layout/SlotLayoutFlowAside.vue.mjs +4 -4
- package/es/components/slot-layout/SlotLayoutFlowAside.vue2.mjs +55 -42
- package/es/components/slot-layout/SlotLayoutTemplate.vue.mjs +11 -9
- package/es/components/slot-layout/SlotLayoutTemplate.vue2.mjs +2 -2
- package/es/components/table/TableMain.vue.mjs +4 -4
- package/es/components/table/TableMain.vue2.mjs +378 -275
- package/es/components/table/TableSkeleton.vue.mjs +4 -4
- package/es/components/table/TableSkeleton.vue2.mjs +95 -74
- package/es/components/table/TableToolbar.vue.mjs +4 -4
- package/es/components/table/TableToolbar.vue2.mjs +170 -154
- package/es/components/table/ToolbarButtons.vue.mjs +12 -10
- package/es/components/table/ToolbarButtons.vue2.mjs +2 -2
- package/es/components/table/constants.mjs +4 -3
- package/es/components/table/use-fill-height.mjs +12 -10
- package/es/components/table/use-table-skeleton.mjs +19 -15
- package/es/config/list-model.mjs +2 -2
- package/es/config/route.mjs +4 -3
- package/es/helpers/form.mjs +35 -25
- package/es/helpers/list-helper.mjs +59 -44
- package/es/hooks/activated.mjs +49 -33
- package/es/hooks/feel-size.mjs +39 -23
- package/es/hooks/menus-dispatch.mjs +68 -35
- package/es/hooks/timeout.mjs +29 -14
- package/es/hooks/use-breakpoint.mjs +35 -23
- package/es/hooks/use-channel-viewport-height.mjs +30 -20
- package/es/hooks/use-custom-breakpoint.mjs +48 -31
- package/es/hooks/use-observe-size.mjs +37 -20
- package/es/hooks/use-theme-apply.mjs +175 -124
- package/es/hooks/use-viewport-apply.mjs +39 -27
- package/es/index.mjs +239 -239
- package/es/inject/key.mjs +52 -41
- package/es/injectInfo.json.mjs +2 -2
- package/es/router/group-redirect.mjs +22 -16
- package/es/router/guard/index.mjs +26 -21
- package/es/router/guard/login.mjs +4 -2
- package/es/router/guard/permission.mjs +4 -2
- package/es/store/app.mjs +163 -123
- package/es/store/router-permission.mjs +75 -46
- package/es/store/user.mjs +100 -71
- package/es/style.css +769 -1
- package/es/utils/dom.mjs +20 -16
- package/es/utils/export.mjs +34 -18
- package/es/utils/id.mjs +5 -3
- package/es/utils/router.mjs +21 -14
- package/es/utils/theme-scale.mjs +50 -35
- package/es/utils/time.mjs +20 -14
- package/package.json +4 -3
- package/src/bridge/README.md +5 -0
- package/src/bridge/docs/README.md +72 -0
- package/src/components/README.md +84 -0
- package/src/components/app-layout/README.md +46 -0
- package/src/components/app-layout/docs/README-AppAside.md +69 -0
- package/src/components/app-layout/docs/README-AppBody.md +81 -0
- package/src/components/app-layout/docs/README-AppBreadcrumb.md +71 -0
- package/src/components/app-layout/docs/README-AppFooter.md +41 -0
- package/src/components/app-layout/docs/README-AppHeader.md +73 -0
- package/src/components/app-layout/docs/README-AppLayout.md +83 -0
- package/src/components/app-layout/docs/README-AppPage.md +80 -0
- package/src/components/app-layout/docs/README-AppSidebar.md +70 -0
- package/src/components/app-layout/docs/README-AppTheme.md +66 -0
- package/src/components/data-view/README.md +19 -0
- package/src/components/data-view/docs/README-DataListView.md +114 -0
- package/src/components/display/README.md +23 -0
- package/src/components/display/docs/README-ActionBtn.md +84 -0
- package/src/components/display/docs/README-ActionBtnGroup.md +96 -0
- package/src/components/display/docs/README-ActionConfirm.md +77 -0
- package/src/components/display/docs/README-BooleanTag.md +76 -0
- package/src/components/display/docs/README-HeightProvider.md +74 -0
- package/src/components/display/docs/README-TabsMain.md +99 -0
- package/src/components/display/docs/README-WatchSize.md +70 -0
- package/src/components/form/README.md +24 -0
- package/src/components/form/docs/README-FormItemNestForm.md +86 -0
- package/src/components/form/docs/README-FormItemNestFormList.md +93 -0
- package/src/components/form/docs/README-FormMain.md +101 -0
- package/src/components/form/docs/README-FormSearch.md +89 -0
- package/src/components/form/docs/README-FormSubmitBtn.md +72 -0
- package/src/components/form/docs/README-FormSubmitPanel.md +97 -0
- package/src/components/list-page/README.md +16 -0
- package/src/components/list-page/docs/README-ListPage.md +136 -0
- package/src/components/menu/README.md +19 -0
- package/src/components/menu/docs/README-MenuItemSub.md +53 -0
- package/src/components/menu/docs/README-MenuTree.md +76 -0
- package/src/components/misc/README.md +21 -0
- package/src/components/misc/docs/README-AutoRefresh.md +74 -0
- package/src/components/misc/docs/README-AutoRefreshGroup.md +74 -0
- package/src/components/misc/docs/README-SelectModule.md +72 -0
- package/src/components/modal/README.md +21 -0
- package/src/components/modal/docs/README-ModalConfirm.md +105 -0
- package/src/components/modal/docs/README-ModalDetail.md +103 -0
- package/src/components/modal/docs/README-ModalForm.md +97 -0
- package/src/components/modal/docs/README-ModalPorter.md +92 -0
- package/src/components/modal/docs/README-ModalShelf.md +115 -0
- package/src/components/panel/README.md +19 -0
- package/src/components/panel/docs/README-PanelMain.md +149 -0
- package/src/components/slot-layout/README.md +17 -0
- package/src/components/slot-layout/docs/README-SlotLayoutFlowAside.md +83 -0
- package/src/components/slot-layout/docs/README-SlotLayoutTemplate.md +73 -0
- package/src/components/table/README.md +17 -0
- package/src/components/table/docs/README-TableMain.md +140 -0
- package/src/hooks/README.md +5 -0
- package/src/hooks/docs/README.md +49 -0
- package/types/bridge/config-hook.d.ts +68 -0
- package/types/bridge/index.d.ts +411 -0
- package/types/bridge/layout.d.ts +40 -0
- package/types/bridge/plugin.d.ts +18 -0
- package/types/bridge/route.d.ts +20 -1
- package/types/bridge/state.d.ts +14 -0
- package/types/bridge/storage.d.ts +9 -0
- package/types/bridge/theme/index.d.ts +7 -0
- package/types/bridge/theme/persist.d.ts +12 -0
- package/types/bridge/theme/system-dark.d.ts +12 -0
- package/types/bridge/theme/types.d.ts +238 -0
- package/types/components/app-layout/AppAside.vue.d.ts +1 -0
- package/types/components/app-layout/AppCollapseToggle.vue.d.ts +3 -0
- package/types/components/app-layout/AppHeader.vue.d.ts +3 -0
- package/types/components/app-layout/AppLayout.vue.d.ts +12 -0
- package/types/components/app-layout/AppPage.vue.d.ts +17 -0
- package/types/components/app-layout/AppSidebar.vue.d.ts +2 -0
- package/types/components/app-layout/app-page-geometry.d.ts +48 -0
- package/types/components/app-layout/keep-alive.d.ts +17 -0
- package/types/components/app-layout/types.d.ts +125 -0
- package/types/components/app-layout/viewport.d.ts +28 -0
- package/types/components/data-view/DataListViewItem.vue.d.ts +8 -0
- package/types/components/data-view/index.d.ts +4 -0
- package/types/components/data-view/types.d.ts +42 -0
- package/types/components/data-view/utils.d.ts +3 -0
- package/types/components/display/TabsHeader.vue.d.ts +2 -0
- package/types/components/display/TabsMain.vue.d.ts +2 -0
- package/types/components/display/TabsRefineFlow.vue.d.ts +1 -0
- package/types/components/display/TabsTile.vue.d.ts +247 -12
- package/types/components/display/WatchSize.vue.d.ts +9 -0
- package/types/components/display/index.d.ts +37 -1
- package/types/components/display/types.d.ts +163 -0
- package/types/components/display/use-tabs-query-sync.d.ts +29 -0
- package/types/components/form/FormItemNestForm.vue.d.ts +5 -0
- package/types/components/form/FormItemNestFormList.vue.d.ts +17 -0
- package/types/components/form/FormVerifyCode.vue.d.ts +9 -0
- package/types/components/form/FormVerifyImage.vue.d.ts +1 -0
- package/types/components/form/form-search-utils.d.ts +34 -0
- package/types/components/form/nest-form-item-list.d.ts +28 -0
- package/types/components/form/nest-form-item.d.ts +21 -0
- package/types/components/form/nest-registry.d.ts +14 -0
- package/types/components/form/types.d.ts +208 -8
- package/types/components/form/use-form-submit.d.ts +13 -0
- package/types/components/form/use-layout-by-container.d.ts +23 -0
- package/types/components/form/use-nest-form-list.d.ts +13 -0
- package/types/components/form/use-nest-form.d.ts +15 -0
- package/types/components/form/use-nest-layout-scale.d.ts +12 -0
- package/types/components/form/utils.d.ts +56 -1
- package/types/components/list-page/ListPage.vue.d.ts +6 -0
- package/types/components/list-page/types.d.ts +50 -2
- package/types/components/list-page/use-sticky.d.ts +23 -0
- package/types/components/misc/index.d.ts +6 -1
- package/types/components/misc/types.d.ts +7 -0
- package/types/components/modal/ModalConfirm.vue.d.ts +29 -0
- package/types/components/modal/index.d.ts +7 -1
- package/types/components/modal/modal-shelf-core.d.ts +3 -0
- package/types/components/modal/modal-shelf-hierarchy.d.ts +4 -0
- package/types/components/modal/modal-shelf-types.d.ts +34 -0
- package/types/components/modal/types.d.ts +63 -2
- package/types/components/panel/PanelItemNestForm.vue.d.ts +6 -0
- package/types/components/panel/PanelItemNestPanel.vue.d.ts +5 -0
- package/types/components/panel/nest-panel-form.d.ts +21 -0
- package/types/components/panel/nest-panel-item.d.ts +14 -0
- package/types/components/panel/types.d.ts +52 -1
- package/types/components/slot-layout/SlotLayoutTemplate.vue.d.ts +21 -0
- package/types/components/slot-layout/types.d.ts +4 -0
- package/types/components/table/constants.d.ts +8 -0
- package/types/components/table/types.d.ts +140 -9
- package/types/components/table/use-fill-height.d.ts +14 -0
- package/types/components/table/use-table-skeleton.d.ts +16 -0
- package/types/config/list-model.d.ts +29 -0
- package/types/config/route.d.ts +2 -0
- package/types/helpers/form.d.ts +5 -0
- package/types/helpers/list-helper.d.ts +26 -0
- package/types/helpers/types.d.ts +11 -0
- package/types/hooks/activated.d.ts +23 -0
- package/types/hooks/feel-size.d.ts +2 -0
- package/types/hooks/menus-dispatch.d.ts +4 -0
- package/types/hooks/timeout.d.ts +4 -0
- package/types/hooks/use-channel-viewport-height.d.ts +8 -0
- package/types/hooks/use-custom-breakpoint.d.ts +19 -0
- package/types/hooks/use-observe-size.d.ts +29 -0
- package/types/hooks/use-theme-apply.d.ts +23 -0
- package/types/hooks/use-viewport-apply.d.ts +12 -0
- package/types/inject/key.d.ts +163 -0
- package/types/injectInfo.json.d.ts +1 -1
- package/types/router/group-redirect.d.ts +9 -0
- package/types/router/guard/index.d.ts +13 -0
- package/types/router/guard/login.d.ts +1 -0
- package/types/router/guard/permission.d.ts +1 -0
- package/types/router/guard/types.d.ts +3 -0
- package/types/store/app.d.ts +27 -0
- package/types/store/router-permission.d.ts +53 -0
- package/types/store/user.d.ts +24 -0
- package/types/types/dot-path.d.ts +8 -0
- package/types/types/route.d.ts +45 -0
- package/types/types/utility-types.d.ts +7 -0
- package/types/utils/dom.d.ts +22 -0
- package/types/utils/export.d.ts +16 -1
- package/types/utils/id.d.ts +1 -0
- package/types/utils/router.d.ts +2 -0
- package/types/utils/theme-scale.d.ts +31 -0
- package/types/utils/time.d.ts +1 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineComponent
|
|
2
|
-
import
|
|
3
|
-
const
|
|
1
|
+
import { defineComponent, computed, openBlock, createBlock, withCtx, renderSlot } from "vue";
|
|
2
|
+
import _sfc_main$1 from "./ModalForm.vue.mjs";
|
|
3
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
4
4
|
__name: "ModalDetail",
|
|
5
5
|
props: {
|
|
6
6
|
data: {},
|
|
@@ -20,44 +20,55 @@ const T = /* @__PURE__ */ w({
|
|
|
20
20
|
direction: {}
|
|
21
21
|
},
|
|
22
22
|
emits: ["update:show", "afterAdd", "afterEdit"],
|
|
23
|
-
setup(
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
23
|
+
setup(__props, { emit: __emit }) {
|
|
24
|
+
const props = __props;
|
|
25
|
+
const emits = __emit;
|
|
26
|
+
const assertData = computed(() => props.data);
|
|
27
|
+
const titleFinal = computed(() => {
|
|
28
|
+
return `${props.type === "add" ? "新增" : "编辑"}${props.subTitle || ""}`;
|
|
29
|
+
});
|
|
30
|
+
const titleResolved = computed(() => props.title ?? titleFinal.value);
|
|
31
|
+
const detailSubmitFn = (data) => {
|
|
32
|
+
const api = props.type === "add" ? props.addApi : props.editApi;
|
|
33
|
+
return (api == null ? void 0 : api(data)) ?? Promise.resolve();
|
|
34
|
+
};
|
|
35
|
+
const onShow = (value) => {
|
|
36
|
+
emits("update:show", value);
|
|
37
|
+
};
|
|
38
|
+
const onSubmitSuccess = (data) => {
|
|
39
|
+
emits(props.type === "add" ? "afterAdd" : "afterEdit", data);
|
|
40
|
+
};
|
|
41
|
+
return (_ctx, _cache) => {
|
|
42
|
+
return openBlock(), createBlock(_sfc_main$1, {
|
|
43
|
+
class: "dc-detail-modal",
|
|
44
|
+
title: titleResolved.value,
|
|
45
|
+
show: __props.show,
|
|
46
|
+
list: __props.list,
|
|
47
|
+
data: assertData.value,
|
|
48
|
+
submitFn: detailSubmitFn,
|
|
49
|
+
width: __props.width,
|
|
50
|
+
layerType: __props.layerType,
|
|
51
|
+
direction: __props.direction,
|
|
52
|
+
formLayout: __props.formLayout,
|
|
53
|
+
labelWidth: __props.labelWidth,
|
|
54
|
+
formRowGutter: __props.formRowGutter,
|
|
55
|
+
formProps: __props.formProps,
|
|
56
|
+
headerDivider: false,
|
|
57
|
+
footerDivider: false,
|
|
58
|
+
"onUpdate:show": onShow,
|
|
59
|
+
onSubmitSuccess
|
|
60
|
+
}, {
|
|
61
|
+
header: withCtx(() => [
|
|
62
|
+
renderSlot(_ctx.$slots, "header")
|
|
63
|
+
]),
|
|
64
|
+
footer: withCtx(() => [
|
|
65
|
+
renderSlot(_ctx.$slots, "footer")
|
|
66
|
+
]),
|
|
67
|
+
_: 3
|
|
68
|
+
}, 8, ["title", "show", "list", "data", "width", "layerType", "direction", "formLayout", "labelWidth", "formRowGutter", "formProps"]);
|
|
31
69
|
};
|
|
32
|
-
return (o, a) => (y(), p(b, {
|
|
33
|
-
class: "dc-detail-modal",
|
|
34
|
-
title: u.value,
|
|
35
|
-
show: t.show,
|
|
36
|
-
list: t.list,
|
|
37
|
-
data: n.value,
|
|
38
|
-
submitFn: m,
|
|
39
|
-
width: t.width,
|
|
40
|
-
layerType: t.layerType,
|
|
41
|
-
direction: t.direction,
|
|
42
|
-
formLayout: t.formLayout,
|
|
43
|
-
labelWidth: t.labelWidth,
|
|
44
|
-
formRowGutter: t.formRowGutter,
|
|
45
|
-
formProps: t.formProps,
|
|
46
|
-
headerDivider: !1,
|
|
47
|
-
footerDivider: !1,
|
|
48
|
-
"onUpdate:show": c,
|
|
49
|
-
onSubmitSuccess: h
|
|
50
|
-
}, {
|
|
51
|
-
header: r(() => [
|
|
52
|
-
l(o.$slots, "header")
|
|
53
|
-
]),
|
|
54
|
-
footer: r(() => [
|
|
55
|
-
l(o.$slots, "footer")
|
|
56
|
-
]),
|
|
57
|
-
_: 3
|
|
58
|
-
}, 8, ["title", "show", "list", "data", "width", "layerType", "direction", "formLayout", "labelWidth", "formRowGutter", "formProps"]));
|
|
59
70
|
}
|
|
60
71
|
});
|
|
61
72
|
export {
|
|
62
|
-
|
|
73
|
+
_sfc_main as default
|
|
63
74
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { defineComponent
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
const
|
|
1
|
+
import { defineComponent, ref, computed, watch, openBlock, createBlock, withCtx, createVNode, unref, mergeProps, renderSlot } from "vue";
|
|
2
|
+
import FormMain from "../form/FormMain.vue.mjs";
|
|
3
|
+
import ModalConfirm from "./ModalConfirm.vue.mjs";
|
|
4
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
5
5
|
__name: "ModalForm",
|
|
6
6
|
props: {
|
|
7
7
|
show: { type: Boolean },
|
|
@@ -16,60 +16,71 @@ const T = /* @__PURE__ */ m({
|
|
|
16
16
|
formProps: {},
|
|
17
17
|
formRowGutter: {},
|
|
18
18
|
labelWidth: { default: "auto" },
|
|
19
|
-
headerDivider: { type: Boolean, default:
|
|
20
|
-
footerDivider: { type: Boolean, default:
|
|
19
|
+
headerDivider: { type: Boolean, default: true },
|
|
20
|
+
footerDivider: { type: Boolean, default: true }
|
|
21
21
|
},
|
|
22
22
|
emits: ["update:show", "submitSuccess"],
|
|
23
|
-
setup(
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
setup(__props, { emit: __emit }) {
|
|
24
|
+
const props = __props;
|
|
25
|
+
const emits = __emit;
|
|
26
|
+
const formMain = ref();
|
|
27
|
+
const assertData = computed(() => props.data);
|
|
28
|
+
const onShow = (value) => {
|
|
29
|
+
emits("update:show", value);
|
|
30
|
+
};
|
|
31
|
+
const onConfirm = () => {
|
|
32
|
+
var _a;
|
|
33
|
+
return (_a = formMain.value) == null ? void 0 : _a.validate().then(async () => {
|
|
34
|
+
const stringifyData = formMain.value.stringify();
|
|
35
|
+
await props.submitFn(stringifyData);
|
|
36
|
+
emits("submitSuccess", stringifyData);
|
|
31
37
|
});
|
|
32
38
|
};
|
|
33
|
-
|
|
34
|
-
() =>
|
|
35
|
-
(
|
|
36
|
-
var
|
|
37
|
-
|
|
39
|
+
watch(
|
|
40
|
+
() => props.show,
|
|
41
|
+
(n) => {
|
|
42
|
+
var _a;
|
|
43
|
+
if (!n) {
|
|
44
|
+
(_a = formMain.value) == null ? void 0 : _a.clearValidate();
|
|
45
|
+
}
|
|
38
46
|
}
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
47
|
+
);
|
|
48
|
+
return (_ctx, _cache) => {
|
|
49
|
+
return openBlock(), createBlock(ModalConfirm, {
|
|
50
|
+
class: "dc-form-modal",
|
|
51
|
+
title: __props.title,
|
|
52
|
+
show: __props.show,
|
|
53
|
+
onConfirm,
|
|
54
|
+
useLoading: "",
|
|
55
|
+
width: __props.width,
|
|
56
|
+
layerType: __props.layerType,
|
|
57
|
+
direction: __props.direction,
|
|
58
|
+
headerDivider: __props.headerDivider,
|
|
59
|
+
footerDivider: __props.footerDivider,
|
|
60
|
+
"onUpdate:show": onShow
|
|
61
|
+
}, {
|
|
62
|
+
"main-header": withCtx(() => [
|
|
63
|
+
renderSlot(_ctx.$slots, "header")
|
|
64
|
+
]),
|
|
65
|
+
"main-footer": withCtx(() => [
|
|
66
|
+
renderSlot(_ctx.$slots, "footer")
|
|
67
|
+
]),
|
|
68
|
+
default: withCtx(() => [
|
|
69
|
+
createVNode(unref(FormMain), mergeProps({
|
|
70
|
+
ref_key: "formMain",
|
|
71
|
+
ref: formMain,
|
|
72
|
+
list: __props.list,
|
|
73
|
+
data: assertData.value,
|
|
74
|
+
layout: __props.formLayout,
|
|
75
|
+
labelWidth: __props.labelWidth,
|
|
76
|
+
"row-gutter": __props.formRowGutter
|
|
77
|
+
}, __props.formProps), null, 16, ["list", "data", "layout", "labelWidth", "row-gutter"])
|
|
78
|
+
]),
|
|
79
|
+
_: 3
|
|
80
|
+
}, 8, ["title", "show", "width", "layerType", "direction", "headerDivider", "footerDivider"]);
|
|
81
|
+
};
|
|
71
82
|
}
|
|
72
83
|
});
|
|
73
84
|
export {
|
|
74
|
-
|
|
85
|
+
_sfc_main as default
|
|
75
86
|
};
|
|
@@ -1,49 +1,64 @@
|
|
|
1
|
-
import { defineComponent
|
|
2
|
-
import { getModalShelfInjectionKey
|
|
3
|
-
import { useActivated
|
|
4
|
-
const
|
|
1
|
+
import { defineComponent, getCurrentInstance, inject, renderSlot } from "vue";
|
|
2
|
+
import { getModalShelfInjectionKey } from "../../inject/key.mjs";
|
|
3
|
+
import { useActivated } from "../../hooks/activated.mjs";
|
|
4
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
5
5
|
__name: "ModalPorter",
|
|
6
6
|
props: {
|
|
7
7
|
modalList: {}
|
|
8
8
|
},
|
|
9
|
-
setup(
|
|
10
|
-
var
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
setup(__props, { expose: __expose }) {
|
|
10
|
+
var _a;
|
|
11
|
+
const props = __props;
|
|
12
|
+
const uid = ((_a = getCurrentInstance()) == null ? void 0 : _a.uid) ?? Math.floor(Math.random() * 1e9);
|
|
13
|
+
const namedShelves = {
|
|
14
|
+
app: inject(getModalShelfInjectionKey("app"), null),
|
|
15
|
+
page: inject(getModalShelfInjectionKey("page"), null)
|
|
14
16
|
};
|
|
15
|
-
function
|
|
16
|
-
return `p${
|
|
17
|
+
function nsOf(key) {
|
|
18
|
+
return `p${uid}:${key}`;
|
|
17
19
|
}
|
|
18
|
-
function
|
|
19
|
-
if (
|
|
20
|
-
const
|
|
21
|
-
|
|
20
|
+
function resolveShelf(shelf) {
|
|
21
|
+
if (shelf === "app" || shelf === "page") {
|
|
22
|
+
const c = namedShelves[shelf];
|
|
23
|
+
if (!c) {
|
|
24
|
+
console.error(`[ModalPorter] 未找到 level="${shelf}" 的 ModalShelf`);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
return c;
|
|
22
28
|
}
|
|
23
|
-
return
|
|
29
|
+
return shelf;
|
|
24
30
|
}
|
|
25
|
-
function
|
|
26
|
-
const
|
|
27
|
-
if (!
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
function evoke(key, payload) {
|
|
32
|
+
const entry = props.modalList.find((e) => e.key === key);
|
|
33
|
+
if (!entry) {
|
|
34
|
+
console.error(`[ModalPorter] 未配置的弹窗 key: ${String(key)}`);
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const shelf = resolveShelf(entry.shelf);
|
|
38
|
+
if (!shelf) return null;
|
|
39
|
+
return shelf.evoke(nsOf(String(key)), entry.component, {
|
|
40
|
+
payload,
|
|
41
|
+
sameKeyStrategy: entry.sameKeyStrategy
|
|
42
|
+
});
|
|
34
43
|
}
|
|
35
|
-
|
|
36
|
-
if (
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
if (!
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
useActivated((info) => {
|
|
45
|
+
if (info.isActivated) return;
|
|
46
|
+
const byShelf = /* @__PURE__ */ new Map();
|
|
47
|
+
props.modalList.forEach((e) => {
|
|
48
|
+
const s = resolveShelf(e.shelf);
|
|
49
|
+
if (!s) return;
|
|
50
|
+
const arr = byShelf.get(s) ?? [];
|
|
51
|
+
arr.push(nsOf(String(e.key)));
|
|
52
|
+
byShelf.set(s, arr);
|
|
53
|
+
});
|
|
54
|
+
byShelf.forEach((keys, s) => s.remove(keys));
|
|
55
|
+
});
|
|
56
|
+
__expose({ evoke });
|
|
57
|
+
return (_ctx, _cache) => {
|
|
58
|
+
return renderSlot(_ctx.$slots, "default");
|
|
59
|
+
};
|
|
45
60
|
}
|
|
46
61
|
});
|
|
47
62
|
export {
|
|
48
|
-
|
|
63
|
+
_sfc_main as default
|
|
49
64
|
};
|
|
@@ -1,38 +1,48 @@
|
|
|
1
|
-
import { defineComponent
|
|
2
|
-
import { createShelfController
|
|
3
|
-
import { assertLevelHierarchy
|
|
4
|
-
import { getModalShelfInjectionKey
|
|
5
|
-
const
|
|
1
|
+
import { defineComponent, provide, onMounted, inject, openBlock, createElementBlock, Fragment, renderSlot, renderList, unref, createBlock, resolveDynamicComponent, defineAsyncComponent } from "vue";
|
|
2
|
+
import { createShelfController } from "./modal-shelf-core.mjs";
|
|
3
|
+
import { assertLevelHierarchy } from "./modal-shelf-hierarchy.mjs";
|
|
4
|
+
import { getModalShelfInjectionKey } from "../../inject/key.mjs";
|
|
5
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
6
6
|
__name: "ModalShelf",
|
|
7
7
|
props: {
|
|
8
8
|
level: {}
|
|
9
9
|
},
|
|
10
|
-
setup(
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
setup(__props, { expose: __expose }) {
|
|
11
|
+
const props = __props;
|
|
12
|
+
const level = props.level;
|
|
13
|
+
const controller = createShelfController(level);
|
|
14
|
+
__expose(controller);
|
|
15
|
+
provide(getModalShelfInjectionKey(level), controller);
|
|
16
|
+
function resolveComp(c) {
|
|
17
|
+
return typeof c === "function" ? defineAsyncComponent(c) : c;
|
|
15
18
|
}
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
["app", "page", "custom"].forEach((
|
|
19
|
-
|
|
19
|
+
onMounted(() => {
|
|
20
|
+
const ancestors = [];
|
|
21
|
+
["app", "page", "custom"].forEach((lv) => {
|
|
22
|
+
if (lv === level) return;
|
|
23
|
+
if (inject(getModalShelfInjectionKey(lv), null)) ancestors.push(lv);
|
|
20
24
|
});
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
const sameLevel = inject(getModalShelfInjectionKey(level), null);
|
|
26
|
+
if (sameLevel && sameLevel !== controller) ancestors.push(level);
|
|
27
|
+
assertLevelHierarchy(level, ancestors);
|
|
28
|
+
});
|
|
29
|
+
return (_ctx, _cache) => {
|
|
30
|
+
return openBlock(), createElementBlock(Fragment, null, [
|
|
31
|
+
renderSlot(_ctx.$slots, "default"),
|
|
32
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(controller).items.value, (item) => {
|
|
33
|
+
return openBlock(), createBlock(resolveDynamicComponent(resolveComp(item.component)), {
|
|
34
|
+
key: item.id,
|
|
35
|
+
show: item.show,
|
|
36
|
+
payload: item.payload,
|
|
37
|
+
closeFn: () => unref(controller).close(item),
|
|
38
|
+
removeFn: () => unref(controller).remove(item.nsKey),
|
|
39
|
+
"onUpdate:show": (v) => !v && unref(controller).close(item)
|
|
40
|
+
}, null, 40, ["show", "payload", "closeFn", "removeFn", "onUpdate:show"]);
|
|
41
|
+
}), 128))
|
|
42
|
+
], 64);
|
|
43
|
+
};
|
|
34
44
|
}
|
|
35
45
|
});
|
|
36
46
|
export {
|
|
37
|
-
|
|
47
|
+
_sfc_main as default
|
|
38
48
|
};
|
|
@@ -1,52 +1,68 @@
|
|
|
1
|
-
import { ref
|
|
2
|
-
const
|
|
3
|
-
function
|
|
4
|
-
let
|
|
5
|
-
const
|
|
6
|
-
function
|
|
7
|
-
return
|
|
1
|
+
import { ref } from "vue";
|
|
2
|
+
const CLOSE_ANIM_MS = 300;
|
|
3
|
+
function createShelfController(level) {
|
|
4
|
+
let seq = 0;
|
|
5
|
+
const items = ref([]);
|
|
6
|
+
function indexByNsKey(nsKey) {
|
|
7
|
+
return items.value.findIndex((it) => it.nsKey === nsKey);
|
|
8
8
|
}
|
|
9
|
-
function
|
|
10
|
-
|
|
9
|
+
function clearItemTimer(item) {
|
|
10
|
+
if (item.timer !== void 0) {
|
|
11
|
+
clearTimeout(item.timer);
|
|
12
|
+
item.timer = void 0;
|
|
13
|
+
}
|
|
11
14
|
}
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
function remove(nsKey) {
|
|
16
|
+
const keys = Array.isArray(nsKey) ? nsKey : [nsKey];
|
|
17
|
+
keys.forEach((k) => {
|
|
18
|
+
const i = indexByNsKey(k);
|
|
19
|
+
if (i > -1) {
|
|
20
|
+
clearItemTimer(items.value[i]);
|
|
21
|
+
items.value.splice(i, 1);
|
|
22
|
+
}
|
|
16
23
|
});
|
|
17
24
|
}
|
|
18
|
-
function
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
function close(item) {
|
|
26
|
+
const target = items.value.find((it) => it.id === item.id);
|
|
27
|
+
if (!target) return;
|
|
28
|
+
if (target.timer !== void 0) return;
|
|
29
|
+
target.show = false;
|
|
30
|
+
target.timer = setTimeout(() => {
|
|
31
|
+
const i = items.value.findIndex((it) => it.id === item.id);
|
|
32
|
+
if (i > -1) items.value.splice(i, 1);
|
|
33
|
+
}, CLOSE_ANIM_MS);
|
|
24
34
|
}
|
|
25
|
-
function
|
|
35
|
+
function handleFor(nsKey) {
|
|
26
36
|
return {
|
|
27
37
|
close: () => {
|
|
28
|
-
const
|
|
29
|
-
|
|
38
|
+
const cur = items.value.find((it) => it.nsKey === nsKey);
|
|
39
|
+
if (cur) close(cur);
|
|
30
40
|
},
|
|
31
|
-
update: (
|
|
32
|
-
const
|
|
33
|
-
|
|
41
|
+
update: (partial) => {
|
|
42
|
+
const cur = items.value.find((it) => it.nsKey === nsKey);
|
|
43
|
+
if (cur) cur.payload = { ...cur.payload, ...partial };
|
|
34
44
|
}
|
|
35
45
|
};
|
|
36
46
|
}
|
|
37
|
-
function
|
|
38
|
-
const { payload
|
|
39
|
-
if (
|
|
40
|
-
const
|
|
41
|
-
if (
|
|
42
|
-
|
|
47
|
+
function evoke(nsKey, component, options) {
|
|
48
|
+
const { payload, sameKeyStrategy = "recreate" } = options;
|
|
49
|
+
if (sameKeyStrategy === "update") {
|
|
50
|
+
const existing = items.value.find((it) => it.nsKey === nsKey);
|
|
51
|
+
if (existing) {
|
|
52
|
+
clearItemTimer(existing);
|
|
53
|
+
existing.show = true;
|
|
54
|
+
existing.payload = payload;
|
|
55
|
+
return handleFor(nsKey);
|
|
56
|
+
}
|
|
43
57
|
}
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
|
|
58
|
+
remove(nsKey);
|
|
59
|
+
const id = ++seq;
|
|
60
|
+
const item = { id, nsKey, component, payload, show: true };
|
|
61
|
+
items.value.push(item);
|
|
62
|
+
return handleFor(nsKey);
|
|
47
63
|
}
|
|
48
|
-
return { level
|
|
64
|
+
return { level, items, evoke, remove, close };
|
|
49
65
|
}
|
|
50
66
|
export {
|
|
51
|
-
|
|
67
|
+
createShelfController
|
|
52
68
|
};
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
function
|
|
2
|
-
if (
|
|
1
|
+
function assertLevelHierarchy(level, ancestorLevels) {
|
|
2
|
+
if (level === "app" && ancestorLevels.length > 0) {
|
|
3
3
|
console.error(
|
|
4
|
-
`[ModalShelf] level="app" 必须最顶层,但其上存在: ${
|
|
4
|
+
`[ModalShelf] level="app" 必须最顶层,但其上存在: ${ancestorLevels.join(
|
|
5
5
|
", "
|
|
6
6
|
)}`
|
|
7
7
|
);
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
|
-
if (
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
if (level === "page") {
|
|
11
|
+
const bad = ancestorLevels.filter((l) => l === "custom");
|
|
12
|
+
if (bad.length > 0) {
|
|
13
|
+
console.error(
|
|
14
|
+
`[ModalShelf] level="page" 之上不得套 custom,发现: ${bad.join(", ")}`
|
|
15
|
+
);
|
|
16
|
+
}
|
|
15
17
|
}
|
|
16
18
|
}
|
|
17
19
|
export {
|
|
18
|
-
|
|
20
|
+
assertLevelHierarchy
|
|
19
21
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _sfc_main from "./PanelEditSwitch.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
4
|
-
const
|
|
3
|
+
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
+
const PanelEditSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-65f056ab"]]);
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
PanelEditSwitch as default
|
|
7
7
|
};
|