Files
pikasTech-HWLAB/web/hwlab-cloud-web/src/components/common/BaseDialog.vue
T

33 lines
986 B
Vue

<!-- SPEC: PJ2026-010405 云端控制台. -->
<!-- Implementation reference: draft-2026-07-13-p0-cloud-console. -->
<script setup lang="ts">
import OverlaySurface from "./OverlaySurface.vue";
const props = withDefaults(defineProps<{
open: boolean;
title: string;
description?: string;
wide?: boolean;
fullscreen?: boolean;
closeOnBackdrop?: boolean;
busy?: boolean;
initialFocus?: string;
surfaceClass?: string;
}>(), {
description: "",
wide: false,
fullscreen: false,
closeOnBackdrop: true,
busy: false,
initialFocus: "",
surfaceClass: ""
});
defineEmits<{ close: [] }>();
</script>
<template>
<OverlaySurface :open="open" :title="title" :description="description" :wide="wide" :fullscreen="fullscreen" :close-on-backdrop="closeOnBackdrop" :busy="busy" :initial-focus="initialFocus" :surface-class="surfaceClass" @close="$emit('close')"><slot /><template v-if="$slots.footer" #footer><slot name="footer" /></template></OverlaySurface>
</template>