bx-1379-redesign #15
|
@ -10,7 +10,7 @@ declare module 'vue' {
|
|||
Composer: typeof import('./src/components/Promo/composer.vue')['default']
|
||||
Env: typeof import('./src/components/Promo/env.vue')['default']
|
||||
Floorplan: typeof import('./src/components/Floorplan/index.vue')['default']
|
||||
Gallery: typeof import('./src/components/Gallery/index.vue')['default']
|
||||
Gallery: typeof import('./src/components/Gallery/gallery.vue')['default']
|
||||
Game: typeof import('./src/components/Game.vue')['default']
|
||||
Home: typeof import('./src/components/Home.vue')['default']
|
||||
IIconMdiHomeOutline: typeof import('~icons/ic/on-mdi-home-outline')['default']
|
||||
|
@ -35,7 +35,7 @@ declare module 'vue' {
|
|||
Item: typeof import('./src/components/Floorplan/item.vue')['default']
|
||||
Load: typeof import('./src/components/load.vue')['default']
|
||||
Load_models: typeof import('./src/components/Promo/load_models.vue')['default']
|
||||
Main: typeof import('./src/components/Promo/main.vue')['default']
|
||||
Main: typeof import('./src/components/Main/index.vue')['default']
|
||||
ModelItem: typeof import('./src/components/Promo/modelItem.vue')['default']
|
||||
Models: typeof import('./src/components/Promo/models.vue')['default']
|
||||
Nav: typeof import('./src/components/nav.vue')['default']
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
"@iconify/vue": "^4.1.2",
|
||||
"@monogrid/gainmap-js": "^3.0.5",
|
||||
"@tresjs/cientos": "^3.9.0",
|
||||
"@tresjs/core": "^4.0.2",
|
||||
"@tresjs/core": "^4.2.9",
|
||||
"@tresjs/leches": "^0.14.0",
|
||||
"@tresjs/post-processing": "^0.7.1",
|
||||
"@vueuse/components": "^10.9.0",
|
||||
|
@ -828,13 +828,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@tresjs/core": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@tresjs/core/-/core-4.0.2.tgz",
|
||||
"integrity": "sha512-+Shy5ch4m9gQSHRlArZAn4nv2apaFJJv21bAvpOKRXTCtGu0BakKGUpWcTzzmDsTs9t6yndbjCWzyifggjFpQQ==",
|
||||
"version": "4.2.9",
|
||||
"resolved": "https://registry.npmjs.org/@tresjs/core/-/core-4.2.9.tgz",
|
||||
"integrity": "sha512-e5RIRSlIOtrIHBZr4t/5bQ0v+egzDkojENaLOPELJ2TxwJAs33QJUfPTkPPVXc0gSDHzH47qFHqUCGIQ/LYG3w==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@alvarosabu/utils": "^3.2.0",
|
||||
"@vue/devtools-api": "^6.6.2",
|
||||
"@vueuse/core": "^10.10.0"
|
||||
"@vue/devtools-api": "^6.6.3",
|
||||
"@vueuse/core": "^10.11.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"three": ">=0.133",
|
||||
|
@ -842,24 +843,26 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@tresjs/core/node_modules/@vueuse/core": {
|
||||
"version": "10.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.10.0.tgz",
|
||||
"integrity": "sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw==",
|
||||
"version": "10.11.1",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz",
|
||||
"integrity": "sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@types/web-bluetooth": "^0.0.20",
|
||||
"@vueuse/metadata": "10.10.0",
|
||||
"@vueuse/shared": "10.10.0",
|
||||
"vue-demi": ">=0.14.7"
|
||||
"@vueuse/metadata": "10.11.1",
|
||||
"@vueuse/shared": "10.11.1",
|
||||
"vue-demi": ">=0.14.8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/@tresjs/core/node_modules/@vueuse/core/node_modules/vue-demi": {
|
||||
"version": "0.14.8",
|
||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
|
||||
"integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
|
||||
"version": "0.14.10",
|
||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
|
||||
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||
"vue-demi-switch": "bin/vue-demi-switch.js"
|
||||
|
@ -881,29 +884,32 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@tresjs/core/node_modules/@vueuse/metadata": {
|
||||
"version": "10.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.10.0.tgz",
|
||||
"integrity": "sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug==",
|
||||
"version": "10.11.1",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz",
|
||||
"integrity": "sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/@tresjs/core/node_modules/@vueuse/shared": {
|
||||
"version": "10.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.10.0.tgz",
|
||||
"integrity": "sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og==",
|
||||
"version": "10.11.1",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz",
|
||||
"integrity": "sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"vue-demi": ">=0.14.7"
|
||||
"vue-demi": ">=0.14.8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/@tresjs/core/node_modules/@vueuse/shared/node_modules/vue-demi": {
|
||||
"version": "0.14.8",
|
||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
|
||||
"integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
|
||||
"version": "0.14.10",
|
||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
|
||||
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||
"vue-demi-switch": "bin/vue-demi-switch.js"
|
||||
|
@ -1318,31 +1324,32 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@volar/language-core": {
|
||||
"version": "2.2.0-alpha.10",
|
||||
"resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.2.0-alpha.10.tgz",
|
||||
"integrity": "sha512-njVJLtpu0zMvDaEk7K5q4BRpOgbyEUljU++un9TfJoJNhxG0z/hWwpwgTRImO42EKvwIxF3XUzeMk+qatAFy7Q==",
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.1.tgz",
|
||||
"integrity": "sha512-9AKhC7Qn2mQYxj7Dz3bVxeOk7gGJladhWixUYKef/o0o7Bm4an+A3XvmcTHVqZ8stE6lBVH++g050tBtJ4TZPQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@volar/source-map": "2.2.0-alpha.10"
|
||||
"@volar/source-map": "2.4.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@volar/source-map": {
|
||||
"version": "2.2.0-alpha.10",
|
||||
"resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.2.0-alpha.10.tgz",
|
||||
"integrity": "sha512-nrdWApVkP5cksAnDEyy1JD9rKdwOJsEq1B+seWO4vNXmZNcxQQCx4DULLBvKt7AzRUAQiAuw5aQkb9RBaSqdVA==",
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.1.tgz",
|
||||
"integrity": "sha512-Xq6ep3OZg9xUqN90jEgB9ztX5SsTz1yiV8wiQbcYNjWkek+Ie3dc8l7AVt3EhDm9mSIR58oWczHkzM2H6HIsmQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"muggle-string": "^0.4.0"
|
||||
}
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@volar/typescript": {
|
||||
"version": "2.2.0-alpha.10",
|
||||
"resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.2.0-alpha.10.tgz",
|
||||
"integrity": "sha512-GCa0vTVVdA9ULUsu2Rx7jwsIuyZQPvPVT9o3NrANTbYv+523Ao1gv3glC5vzNSDPM6bUl37r94HbCj7KINQr+g==",
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.1.tgz",
|
||||
"integrity": "sha512-UoRzC0PXcwajFQTu8XxKSYNsWNBtVja6Y9gC8eLv7kYm+UEKJCcZ8g7dialsOYA0HKs3Vpg57MeCsawFLC6m9Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@volar/language-core": "2.2.0-alpha.10",
|
||||
"path-browserify": "^1.0.1"
|
||||
"@volar/language-core": "2.4.1",
|
||||
"path-browserify": "^1.0.1",
|
||||
"vscode-uri": "^3.0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
|
@ -1391,24 +1398,38 @@
|
|||
"@vue/shared": "3.4.25"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-vue2": {
|
||||
"version": "2.7.16",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz",
|
||||
"integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"de-indent": "^1.0.2",
|
||||
"he": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/devtools-api": {
|
||||
"version": "6.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.2.tgz",
|
||||
"integrity": "sha512-134clD8u7cBBXdmBbXI282gHGF7T/eAbD/G7mAK2llQF62IbI4ny28IVamZVMoJSvfImC2Xxnj732hXkJvUj6g=="
|
||||
"version": "6.6.3",
|
||||
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz",
|
||||
"integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@vue/language-core": {
|
||||
"version": "2.0.14",
|
||||
"resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.14.tgz",
|
||||
"integrity": "sha512-3q8mHSNcGTR7sfp2X6jZdcb4yt8AjBXAfKk0qkZIh7GAJxOnoZ10h5HToZglw4ToFvAnq+xu/Z2FFbglh9Icag==",
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.2.tgz",
|
||||
"integrity": "sha512-tt2J7C+l0J/T5PaLhJ0jvCCi0JNwu3e8azWTYxW3jmAW5B/dac0g5UxmI7l59CQgCGFotqUqI3tXjfZgoWNtog==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@volar/language-core": "2.2.0-alpha.10",
|
||||
"@volar/language-core": "~2.4.1",
|
||||
"@vue/compiler-dom": "^3.4.0",
|
||||
"@vue/compiler-vue2": "^2.7.16",
|
||||
"@vue/shared": "^3.4.0",
|
||||
"computeds": "^0.0.1",
|
||||
"minimatch": "^9.0.3",
|
||||
"path-browserify": "^1.0.1",
|
||||
"vue-template-compiler": "^2.7.14"
|
||||
"muggle-string": "^0.4.1",
|
||||
"path-browserify": "^1.0.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "*"
|
||||
|
@ -1700,7 +1721,8 @@
|
|||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz",
|
||||
"integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/confbox": {
|
||||
"version": "0.1.7",
|
||||
|
@ -2735,12 +2757,13 @@
|
|||
"integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw=="
|
||||
},
|
||||
"node_modules/micromatch": {
|
||||
"version": "4.0.5",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
|
||||
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
||||
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"braces": "^3.0.2",
|
||||
"braces": "^3.0.3",
|
||||
"picomatch": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -2793,7 +2816,8 @@
|
|||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz",
|
||||
"integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.7",
|
||||
|
@ -2901,7 +2925,8 @@
|
|||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
|
||||
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/path-exists": {
|
||||
"version": "4.0.0",
|
||||
|
@ -3683,6 +3708,13 @@
|
|||
"vue": ">=3.2.13"
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-uri": {
|
||||
"version": "3.0.8",
|
||||
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
|
||||
"integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/vue": {
|
||||
"version": "3.4.25",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.4.25.tgz",
|
||||
|
@ -3747,26 +3779,29 @@
|
|||
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz",
|
||||
"integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"de-indent": "^1.0.2",
|
||||
"he": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-tsc": {
|
||||
"version": "2.0.14",
|
||||
"resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.14.tgz",
|
||||
"integrity": "sha512-DgAO3U1cnCHOUO7yB35LENbkapeRsBZ7Ugq5hGz/QOHny0+1VQN8eSwSBjYbjLVPfvfw6EY7sNPjbuHHUhckcg==",
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.2.tgz",
|
||||
"integrity": "sha512-PH1BDxWT3eaPhl73elyZj6DV0nR3K4IFoUM1sGzMXXQneovVUwHQytdSyAHiED5MtEINGSHpL/Hs9ch+c/tDTw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@volar/typescript": "2.2.0-alpha.10",
|
||||
"@vue/language-core": "2.0.14",
|
||||
"@volar/typescript": "~2.4.1",
|
||||
"@vue/language-core": "2.1.2",
|
||||
"semver": "^7.5.4"
|
||||
},
|
||||
"bin": {
|
||||
"vue-tsc": "bin/vue-tsc.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "*"
|
||||
"typescript": ">=5.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/webpack-sources": {
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
"@iconify/vue": "^4.1.2",
|
||||
"@monogrid/gainmap-js": "^3.0.5",
|
||||
"@tresjs/cientos": "^3.9.0",
|
||||
"@tresjs/core": "^4.0.2",
|
||||
"@tresjs/core": "^4.2.9",
|
||||
"@tresjs/leches": "^0.14.0",
|
||||
"@tresjs/post-processing": "^0.7.1",
|
||||
"@vueuse/components": "^10.9.0",
|
||||
|
|
|
@ -1,9 +1,17 @@
|
|||
<script setup lang="ts">
|
||||
import { watch } from 'vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
const route = useRoute()
|
||||
watch(() => route.params, () => {
|
||||
console.log(route.params)
|
||||
}, { deep: true })
|
||||
</script>
|
||||
<template>
|
||||
<Suspense>
|
||||
<Load />
|
||||
</Suspense>
|
||||
<Suspense>
|
||||
<RouterView />
|
||||
<RouterView :key="route.fullPath" />
|
||||
</Suspense>
|
||||
<Suspense>
|
||||
<Nav />
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
</script>
|
||||
<template>
|
||||
123
|
||||
</template>
|
|
@ -45,15 +45,7 @@ const controlsState = reactive({
|
|||
const raw_dataStore = useRawData()
|
||||
const route = useRoute()
|
||||
|
||||
const source = ref(route.params.target)
|
||||
watch(() => route.params.target, () => {
|
||||
let t = '1'
|
||||
if (route.params.target) t = route.params.target as string
|
||||
if (source.value !== t) {
|
||||
source.value = t
|
||||
sidebar.close()
|
||||
}
|
||||
})
|
||||
watch(() => route.params.target, sidebar.close)
|
||||
const sidebarFunc = () => {
|
||||
if (sidebar.is_open) {
|
||||
sidebar.close()
|
||||
|
@ -71,11 +63,10 @@ const sidebarFunc = () => {
|
|||
<div :class="[{ 'loading': raw_dataStore.data.loading }, 'canvas-wrapper']">
|
||||
<TresCanvas window-size :alpha="false" power-preference="high-performance" :clear-color="PROMOBG"
|
||||
:shadows="false">
|
||||
<Stats />
|
||||
<TresPerspectiveCamera :position="cameraPosition" ref="camera" />
|
||||
<OrbitControls v-bind="controlsState" @change="onChange" make-default />
|
||||
<Suspense>
|
||||
<LoadModels :source="source" :loaded_pan="loadedPan" v-if="route.name == 'scene'" :key="source as string" />
|
||||
<LoadModels :source="route.params.target" :loaded_pan="loadedPan" />
|
||||
</Suspense>
|
||||
</TresCanvas>
|
||||
<div class="homelink" :class="[{ open: sidebar.is_open }]">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { onMounted, onUnmounted, reactive, Ref, ref, watch } from 'vue';
|
||||
import { onMounted, onUnmounted, onUpdated, reactive, Ref, ref, watch } from 'vue';
|
||||
import {
|
||||
Box3, Color, DoubleSide, Group, Mesh, PlaneGeometry,
|
||||
MeshStandardMaterial, MeshStandardMaterialParameters,
|
||||
|
@ -22,7 +22,7 @@ import { mobileAndTabletCheck } from '../../helpers';
|
|||
import { useTimer } from '../../stores/timer';
|
||||
import { useRawData } from '../../stores/raw_data';
|
||||
|
||||
const props = defineProps(['source', 'loaded_pan'])
|
||||
const props = defineProps(['source'])
|
||||
const CON_MOVETO_COUNT = 150;
|
||||
const CAM_MOVETO_COUNT = 100;
|
||||
|
||||
|
@ -134,9 +134,12 @@ const clearValues = () => {
|
|||
sidebar_visible = []
|
||||
}
|
||||
const loadModels = async () => {
|
||||
if (!props.source) return
|
||||
if (!raw_dataStore.data) return
|
||||
|
||||
console.log(`load models ${props.source} ${process_loading.value}`)
|
||||
clearValues()
|
||||
|
||||
|
||||
loading_store.status = 'loading'
|
||||
process_loading.value = props.source
|
||||
await raw_dataStore.load(props)
|
||||
|
@ -243,12 +246,12 @@ const loadModels = async () => {
|
|||
}
|
||||
});
|
||||
const box_size = new Vector3();
|
||||
box.getSize(box_size)
|
||||
box.getSize(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),
|
||||
);
|
||||
// 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),
|
||||
// );
|
||||
(controls.value as any).enabled = true;
|
||||
raw_dataStore.data.loading = false;
|
||||
|
||||
|
@ -278,18 +281,20 @@ const gotoCenterAndDistance = () => {
|
|||
});
|
||||
}
|
||||
|
||||
watch(() => [props.source, process_loading.value], ([source, process]) => {
|
||||
if (source !== process) {
|
||||
watch(props, () => {
|
||||
if (props.source) {
|
||||
raw_dataStore.$reset()
|
||||
const loaded = seekByName(scene.value, 'loaded')
|
||||
if (loaded) {
|
||||
loaded.children = []
|
||||
}
|
||||
|
||||
console.log('props change')
|
||||
sidebar.close()
|
||||
loadModels()
|
||||
// loadModels()
|
||||
} else {
|
||||
renderer.value.dispose()
|
||||
}
|
||||
})
|
||||
}, { deep: true })
|
||||
|
||||
watch(() => sidebar, () => {
|
||||
if (sidebar.is_open == false) {
|
||||
|
@ -416,6 +421,8 @@ const clickEvent = (event: MouseEvent) => {
|
|||
}
|
||||
const timerEvent = ['click', 'contextmenu', 'mousedown', 'mouseup', 'touchstart', 'touchend', 'touchmove']
|
||||
onMounted(() => {
|
||||
console.log('mount')
|
||||
clearValues()
|
||||
loadModels()
|
||||
|
||||
document.addEventListener('click', clickEvent)
|
||||
|
@ -435,10 +442,11 @@ onUnmounted(() => {
|
|||
timerEvent.map((event: string) => {
|
||||
document.removeEventListener(event, stopTimer)
|
||||
})
|
||||
renderer.value.dispose()
|
||||
})
|
||||
</script>
|
||||
<template>
|
||||
<TresGroup name="loaded" :key="props.source">
|
||||
<TresGroup name="loaded" :key="props.source" ref="loaded">
|
||||
<Env v-bind="envVars" />
|
||||
<!-- <PostProcessing /> -->
|
||||
<template v-for="item in models">
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
<script setup lang="ts">
|
||||
import { useRoute, useRouter } from 'vue-router';
|
||||
|
||||
import { useRoute } from 'vue-router';
|
||||
import { useItem } from '../stores/item';
|
||||
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
|
||||
const pageStore = useItem()
|
||||
</script>
|
||||
<template>
|
||||
<div class="nav">
|
||||
<div class="nav-group">
|
||||
<span class="nav-icon" :class="[{ 'active': route.name == 'home' || route.fullPath == '/' }]">
|
||||
<span class="nav-icon" :class="[{ 'active': route.name == 'main' }]">
|
||||
<RouterLink :to="`/${pageStore.page.slug}`">
|
||||
<i-mdi-home-outline />
|
||||
</RouterLink>
|
||||
|
@ -21,7 +18,7 @@ const pageStore = useItem()
|
|||
<i-mdi:video-3d />
|
||||
</RouterLink>
|
||||
</span>
|
||||
<span class="nav-icon" style="font-size: 1.375rem;">
|
||||
<span class="nav-icon" :class="[{ 'active': route.name == 'gallery' }]" style="font-size: 1.375rem;">
|
||||
<RouterLink :to="`/${pageStore.page.slug}/gallery`">
|
||||
<i-mdi:vector-arrange-below />
|
||||
</RouterLink>
|
||||
|
|
|
@ -5,11 +5,13 @@ import { createWebHistory, createRouter } from 'vue-router'
|
|||
import './assets/main.scss'
|
||||
|
||||
import App from './App.vue'
|
||||
import Main from './components/Main/index.vue'
|
||||
import Gallery from './components/Gallery/index.vue'
|
||||
import Promo from './components/Promo/index.vue'
|
||||
|
||||
const routes = [
|
||||
{ path: '/', component: Gallery, name: 'home_no' },
|
||||
{ path: '/:item', component: Main, name: 'main' },
|
||||
{ path: '/:item/gallery', component: Gallery, name: 'gallery' },
|
||||
{ path: '/:item/:target', component: Promo, name: 'scene' },
|
||||
]
|
||||
|
@ -19,6 +21,17 @@ const router = createRouter({
|
|||
routes,
|
||||
})
|
||||
|
||||
router.beforeEach((to, from, next) => {
|
||||
// This function will be called before each route change
|
||||
console.log('Navigating from', from.fullPath, 'to', to.fullPath);
|
||||
|
||||
// You can perform any additional logic here
|
||||
|
||||
// Make sure to call next() to continue with the navigation
|
||||
next();
|
||||
});
|
||||
|
||||
|
||||
const pinia = createPinia()
|
||||
const app = createApp(App)
|
||||
|
||||
|
|
Loading…
Reference in New Issue