fix(fleet): preserve drafts before dialog close and respect dashboard permissions

This commit is contained in:
2026-10-07 18:21:03 +08:00
parent 2477667c27
commit 2bc095ecac
11 changed files with 150 additions and 34 deletions
+8 -2
View File
@@ -25,6 +25,7 @@ const props = withDefaults(defineProps<{
lockWhileSubmitting?: boolean
fullscreenable?: boolean
defaultFullscreen?: boolean
beforeClose?: (done: () => void) => void | Promise<void>
}>(), {
width: 'min(560px, calc(100vw - 28px))',
loading: false,
@@ -63,8 +64,12 @@ function toggleFullscreen() {
function closeDialog() {
if (submittingLocked.value) return
open.value = false
emit('cancel')
const done = () => {
open.value = false
emit('cancel')
}
if (props.beforeClose) void props.beforeClose(done)
else done()
}
</script>
@@ -79,6 +84,7 @@ function closeDialog() {
:close-on-click-modal="closeOnClickModal && !submittingLocked"
:close-on-press-escape="closeOnPressEscape && !submittingLocked"
:destroy-on-close="destroyOnClose"
:before-close="beforeClose"
:fullscreen="fullscreenable && fullscreen"
:class="{ 'has-native-fullscreen-control': fullscreenable && !$slots.header }"
>