diff --git a/src/components/dialog/GlobalDialog.vue b/src/components/dialog/GlobalDialog.vue
index a20b030b9..e44f09ff2 100644
--- a/src/components/dialog/GlobalDialog.vue
+++ b/src/components/dialog/GlobalDialog.vue
@@ -25,6 +25,10 @@
v-bind="item.contentProps"
:maximized="item.dialogComponentProps.maximized"
/>
+
+
+
+
diff --git a/src/stores/dialogStore.ts b/src/stores/dialogStore.ts
index 6fdda26db..675858a5a 100644
--- a/src/stores/dialogStore.ts
+++ b/src/stores/dialogStore.ts
@@ -7,11 +7,24 @@ import { type Component, markRaw, ref } from 'vue'
import type GlobalDialog from '@/components/dialog/GlobalDialog.vue'
+type DialogPosition =
+ | 'center'
+ | 'top'
+ | 'bottom'
+ | 'left'
+ | 'right'
+ | 'topleft'
+ | 'topright'
+ | 'bottomleft'
+ | 'bottomright'
+
interface CustomDialogComponentProps {
maximizable?: boolean
maximized?: boolean
onClose?: () => void
closable?: boolean
+ modal?: boolean
+ position?: DialogPosition
pt?: DialogPassThroughOptions
}
@@ -25,6 +38,7 @@ interface DialogInstance {
headerComponent?: Component
component: Component
contentProps: Record
+ footerComponent?: Component
dialogComponentProps: DialogComponentProps
}
@@ -32,6 +46,7 @@ export interface ShowDialogOptions {
key?: string
title?: string
headerComponent?: Component
+ footerComponent?: Component
component: Component
props?: Record
dialogComponentProps?: DialogComponentProps
@@ -66,6 +81,7 @@ export const useDialogStore = defineStore('dialog', () => {
key: string
title?: string
headerComponent?: Component
+ footerComponent?: Component
component: Component
props?: Record
dialogComponentProps?: DialogComponentProps
@@ -81,6 +97,9 @@ export const useDialogStore = defineStore('dialog', () => {
headerComponent: options.headerComponent
? markRaw(options.headerComponent)
: undefined,
+ footerComponent: options.footerComponent
+ ? markRaw(options.footerComponent)
+ : undefined,
component: markRaw(options.component),
contentProps: { ...options.props },
dialogComponentProps: {