This commit is contained in:
YunaiV
2025-06-15 17:39:34 +08:00
4 changed files with 17530 additions and 7 deletions

View File

@@ -1,9 +1,11 @@
<script lang="ts" setup>
import { propTypes } from '@/utils/propTypes'
import { isNumber } from '@/utils/is'
defineOptions({ name: 'Dialog' })
const slots = useSlots()
const emits = defineEmits(['update:modelValue'])
const props = defineProps({
modelValue: propTypes.bool.def(false),
@@ -55,6 +57,17 @@ const dialogStyle = computed(() => {
height: unref(dialogHeight)
}
})
const closing = ref(false)
function closeHandler() {
emits('update:modelValue', false)
closing.value = true
}
function closedHandler() {
closing.value = false
}
</script>
<template>
@@ -68,7 +81,8 @@ const dialogStyle = computed(() => {
draggable
class="com-dialog"
:show-close="false"
@close="$emit('update:modelValue', false)"
@close="closeHandler"
@closed="closedHandler"
>
<template #header="{ close }">
<div class="relative h-54px flex items-center justify-between pl-15px pr-15px">
@@ -102,7 +116,9 @@ const dialogStyle = computed(() => {
</ElScrollbar>
<slot v-else></slot>
<template v-if="slots.footer" #footer>
<slot name="footer"></slot>
<div :style="{ 'pointer-events': closing ? 'none' : 'auto' }">
<slot name="footer"></slot>
</div>
</template>
</ElDialog>
</template>