library-picturebook-activity/frontend/src/components/ModelViewer.vue

44 lines
1.0 KiB
Vue
Raw Normal View History

2026-01-09 18:14:35 +08:00
<template>
2026-01-12 20:04:11 +08:00
<!-- 这个组件作为跳转器使用实际查看器在 /model-viewer 页面 -->
2026-01-09 18:14:35 +08:00
<span></span>
</template>
<script setup lang="ts">
2026-01-12 20:04:11 +08:00
import { watch } from "vue"
2026-01-09 18:14:35 +08:00
import { useRouter } from "vue-router"
interface Props {
open: boolean
modelUrl: string
}
interface Emits {
(e: "update:open", value: boolean): void
}
const props = defineProps<Props>()
const emit = defineEmits<Emits>()
const router = useRouter()
// 监听打开状态,跳转到全屏页面
watch(
2026-01-12 20:04:11 +08:00
() => props.open,
(newOpen) => {
console.log("ModelViewer watch triggered:", { open: newOpen, url: props.modelUrl })
if (newOpen && props.modelUrl) {
console.log("正在跳转到模型查看页面:", props.modelUrl)
// 先关闭状态
emit("update:open", false)
// 跳转到模型查看页面
router.push({
path: "/model-viewer",
query: { url: props.modelUrl }
2026-01-09 18:14:35 +08:00
})
2026-01-12 20:04:11 +08:00
} else if (newOpen && !props.modelUrl) {
console.error("模型URL为空无法跳转")
emit("update:open", false)
2026-01-09 18:14:35 +08:00
}
2026-01-12 20:04:11 +08:00
}
2026-01-09 18:14:35 +08:00
)
</script>