From 9dee0d4894388c003275fb579105c805137d48f9 Mon Sep 17 00:00:00 2001 From: aarizona Date: Thu, 29 Aug 2024 17:47:05 +0300 Subject: [PATCH] forward and back --- front/src/components/Promo/load_models.vue | 33 +++++++++++----------- front/src/components/Promo/main.vue | 8 +++--- front/src/components/nav.vue | 6 ++-- front/src/main.ts | 5 ---- 4 files changed, 25 insertions(+), 27 deletions(-) diff --git a/front/src/components/Promo/load_models.vue b/front/src/components/Promo/load_models.vue index 10d4375..66a4256 100644 --- a/front/src/components/Promo/load_models.vue +++ b/front/src/components/Promo/load_models.vue @@ -10,6 +10,7 @@ import { MultiplyBlending, AdditiveBlending, } from 'three'; +import { useRoute, useRouter } from 'vue-router'; import { useTresContext, useSeek, useTexture, useLoop } from '@tresjs/core'; import { useGLTF } from '@tresjs/cientos' @@ -55,9 +56,8 @@ const groundTexture = await useTexture({ const pointerTexture = await useTexture({ map: '/pointer_texture.png' }) - const loadModels = async () => { - const res = await fetch(`${SERVER_URL}/api/obj/scene/${props.source}`) + const res = await fetch(`${SERVER_URL}/api/obj/scene/${props.source}/`) const raw_data = await res.json() as scene3D loading_store.status = 'other' @@ -233,7 +233,7 @@ const loadModels = async () => { }); const box_size = new Vector3(); box.getSize(box_size) - console.log(box_size) + // console.log(box_size) props.loaded_pan( new Vector3(box_size.x * 0.5, box_size.y * 0.5, box_size.z * 0.5), new Vector3(box_size.x * -0.25, box_size.y * -0.25, box_size.z * -0.25), @@ -265,18 +265,19 @@ const gotoCenterAndDistance = () => { }); } -watch(() => props.source, () => { - if (props.source) { - const loaded = seekByName(scene.value, 'loaded') - if (loaded) { - loaded.children = [] - } - sidebar.close() - try { - loadModels() - } catch (error) { - console.log(error) - } +watch(() => props.source, (s) => { + const loaded = seekByName(scene.value, 'loaded') + if (loaded) { + loaded.children = [] + } + models.value = [] + clickable_items.value = [] + clickable_refs.value = [] + sidebar.close() + try { + loadModels() + } catch (error) { + console.log(error) } }) @@ -400,7 +401,7 @@ const clickEvent = (event: MouseEvent) => { const timerEvent = ['click', 'contextmenu', 'mousedown', 'mouseup', 'touchstart', 'touchend', 'touchmove'] onMounted(() => { loadModels() - + document.addEventListener('click', clickEvent) timerEvent.map((event: string) => { diff --git a/front/src/components/Promo/main.vue b/front/src/components/Promo/main.vue index 49dbcd5..1c44f49 100644 --- a/front/src/components/Promo/main.vue +++ b/front/src/components/Promo/main.vue @@ -48,16 +48,16 @@ const set_model_load_status = (status: boolean) => { const route = useRoute() -const source = ref(route.params.target ? (route.params.target.toString() + '/') : '1/') +const source = ref(route.params.target) watch(() => route.params.target, () => { - let t = '1/' - if (route.params.target) t = route.params.target.toString() + '/' + let t = '1' + if (route.params.target) t = route.params.target if (source.value !== t) { source.value = t models_loading.value = true sidebar.close() } -}, { deep: true }) +},) const sidebarFunc = () => { if (sidebar.is_open) { diff --git a/front/src/components/nav.vue b/front/src/components/nav.vue index 7502c63..3b778e1 100644 --- a/front/src/components/nav.vue +++ b/front/src/components/nav.vue @@ -29,12 +29,14 @@ console.log(router)