From d5b292c8c84383f7854503d094257dff3ca6abb2 Mon Sep 17 00:00:00 2001 From: zzxming Date: Mon, 20 May 2024 10:10:45 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=F0=9F=90=9E=20fix:=20model.service=20?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/components/model/src/model.vue | 26 ++++---- packages/components/model/src/service.ts | 77 ++++++++++++++++-------- packages/hooks/use-model-value/index.ts | 3 +- packages/theme/src/model.less | 10 +-- 4 files changed, 70 insertions(+), 46 deletions(-) diff --git a/packages/components/model/src/model.vue b/packages/components/model/src/model.vue index caf95d6..2c3e104 100644 --- a/packages/components/model/src/model.vue +++ b/packages/components/model/src/model.vue @@ -12,9 +12,10 @@ const [, bem] = useBem('model'); const { model } = useModelValue(props, false); const { nextZIndex } = useZIndex(); -const contentRended = ref(false); +const contentRended = ref(model.value); const zIndex = ref(nextZIndex()); +const disabledTeleport = computed(() => !props.fullscreen); const contentStyle = computed(() => { const modelStyle: CSSProperties = {}; if (props.width) { @@ -22,46 +23,41 @@ const contentStyle = computed(() => { } return modelStyle; }); +const overlayStyle = computed(() => ({ + zIndex: disabledTeleport.value ? 0 : zIndex.value, +})); const close = () => { if (!props.maskClose) return; model.value = false; }; -watch( - model, - () => { - if (props.destroyOnClose && !model.value) { - contentRended.value = false; - } else { - contentRended.value = true; - } - }, - { immediate: true } -); watch(model, () => { if (model.value) { zIndex.value = nextZIndex(); + contentRended.value = true; } else { + props.destroyOnClose && (contentRended.value = false); emits('close'); } }); +console.log(props);