From 50ee7232f3c98fe24a1f2e31dba9508cfec14887 Mon Sep 17 00:00:00 2001
From: gjj <Ganjj@probim.com.cn>
Date: Fri, 21 Feb 2025 17:35:39 +0800
Subject: [PATCH] 模型预览
---
public/config.js | 6 ++-
src/Dashboard.vue | 6 +-
src/views/Home.vue | 68 +++++++++++++++++++++++++++++-----
3 files changed, 65 insertions(+), 15 deletions(-)
diff --git a/public/config.js b/public/config.js
index 0089ef1..298537a 100644
--- a/public/config.js
+++ b/public/config.js
@@ -6,6 +6,8 @@
workflowWebURL: "http://workflow.probim.cn",
pid: "71f7a5df-a7e3-42f4-bcea-36d7d2924ddd",
mapboxToken: 'pk.eyJ1Ijoiemhlbmd4dWZhbmciLCJhIjoiY2w5ejNiOWJ1MDE0bTN1cnp4MjNmM2dpNCJ9.qy3k-99E6-XSK5ldYUFz-A',
- modelUrl: '//multiverse-server.vothing.com', // 模型服务 数据请求地址
-
+ modelUrl: '//dev.vothing.com/scenemanagerVothing/#/', // 模型预览地址
+ panoUrl: '//47.95.223.61:6004', // 全景预览地址
+ panoBaseUrl: '//47.95.223.61:6003', // 全景图及文档接口
+ sceneUrl: 'http://dev.vothing.com/#/sceneDetail?linkToken=YjkzMWEyMzItNjQwOC00OTljLTlmOGItY2UxYWI4Mzc5YzQyLDFjMTc5NjE3LWE3ZDktNDI0My1iODEzLTg0ZmE1NWExN2NlNyxjODA0YzAzMS02ZGRmLTRkNmItYTM2ZC0xY2ExZjM4MzJiYTk=', // 场景地址
}
\ No newline at end of file
diff --git a/src/Dashboard.vue b/src/Dashboard.vue
index 5e6dc05..d9c19bd 100644
--- a/src/Dashboard.vue
+++ b/src/Dashboard.vue
@@ -2,14 +2,13 @@
* @Author: gjj Ganjj@probim.com.cn
* @Date: 2025-02-14 14:32:17
* @LastEditors: gjj Ganjj@probim.com.cn
- * @LastEditTime: 2025-02-20 15:46:39
+ * @LastEditTime: 2025-02-21 16:54:08
* @FilePath: \北京交通大学\src\Dashboard.vue
-->
<!-- eslint-disable vue/no-textarea-mustache -->
<!-- eslint-disable vue/html-self-closing -->
<template>
<main
- v-loading="isAuthenticating || isLoadingPrjList"
id="appWrapper"
class="absolute top-[50%] left-[50%] -translate-x-[50%] w-screen h-screen -translate-y-[50%] font-pingfang text-white select-none"
:style="{
@@ -98,7 +97,8 @@
},
data() {
return {
- backgroundImage: new URL('@/assets/images/backgrounds/screen.png', import.meta.url).href
+ backgroundImage: new URL('@/assets/images/backgrounds/screen.png', import.meta.url).href,
+ currentProjectId: '1c179617-a7d9-4243-b813-84fa55a17ce7'
};
},
computed: {
diff --git a/src/views/Home.vue b/src/views/Home.vue
index 9e8fbf5..da552b2 100644
--- a/src/views/Home.vue
+++ b/src/views/Home.vue
@@ -55,15 +55,19 @@
</div>
<!-- 主要内容区域 -->
- <div class="main-content">
+ <div class="main-content" v-loading="isLoading">
<!-- 模型 -->
- <div class="content" v-if="currentView === 'model'">
- <iframe id="model-iframe" class="content-frame" src="" frameborder="0"></iframe>
+ <div class="w-full h-full" v-if="currentView === 'model'" >
+ <iframe id="model-iframe" class="content-frame w-full h-[588px]" src="" frameborder="0"></iframe>
</div>
<!-- 720 -->
- <div class="pano-content" v-if="currentView === '720'">
- <div id="panoviewpreview" class="pano-frame">
+ <div class="w-full h-full bg-white" v-if="currentView === '720'">
+ <div id="panoviewpreview" class="pano-frame w-full h-[588px]">
</div>
+ </div>
+ <!-- 项目 -->
+ <div class="w-full h-full" v-if="currentView === 'project'" >
+ <iframe id="scene-iframe" class="scene-frame w-full h-[588px]" src="" frameborder="0"></iframe>
</div>
</div>
</div>
@@ -86,6 +90,7 @@
</template>
<script>
+import { nextTick } from 'vue'
export default {
name: 'Home',
components: {
@@ -102,24 +107,68 @@
}
},
bottomImage: new URL('@/assets/images/titles/shigong.png', import.meta.url).href,
+ isLoading: false
}
},
methods: {
handleChange(view) {
+ this.isLoading = true
this.currentView = view
-
+ if (view === 'model') {
+ removepano('krpanoSWFObject')
+ nextTick(() => {
+ this.modelShow()
+ })
+ } else if (view === '720') {
+ nextTick(() => {
+ this.panoShow()
+ })
+ } else if (view === 'project') {
+ nextTick(() => {
+ this.sceneShow()
+ })
+ }
},
modelShow() {
const iframe = document.getElementById('model-iframe')
- let token = ''
+ const token = '08168BBAD572518D1AB6EC233A13C3E2FA9C16340A21C6B6D0F2785DBDF2CB3506A0873877DA22C7E7ADA6CB1012493B4C702FC75B529ABD'
+ const projectId = '1c179617-a7d9-4243-b813-84fa55a17ce7'
let ifrSrc = ''
console.log('模型中查看')
- ifrSrc = `${window.IP_CONFIG.SCENE_URL}?token=${token}&projectId=${_this.projectID}&isPreview=1&edit=false`
+ ifrSrc = `${window.ProjectConfig.modelUrl}?token=${token}&projectId=${projectId}&isPreview=1&edit=false`
iframe.src = ifrSrc
console.log('加载iframe地址', ifrSrc)
+ this.isLoading = false
+ },
+ panoShow(item, scene) {
+ this.isLoading = false
+ const basepath = `${window.ProjectConfig.panoUrl}/Panorama${item.PbUrl}/vtour/`
+ const xmlurl = `${basepath}tour.xml?r=${(Math.random() * 100000 + 1)}`
+ let setting = {}
+ if (scene) {
+ const scenename = 'scene_' + scene.PsScenename
+ setting = { startscene: scenename }
+ }
+ this.$nextTick(() => {
+ embedpano({
+ xml: xmlurl,
+ target: 'panoviewpreview',
+ basepath,
+ vars: setting,
+ html5: 'auto',
+ passQueryParameters: true
+ })
+ })
+ },
+ sceneShow() {
+ const iframe = document.getElementById('scene-iframe')
+ const ifrSrc = window.ProjectConfig.sceneUrl
+ iframe.src = ifrSrc
+ this.isLoading = false
}
},
mounted() {
+ this.isLoading = true
this.modelShow()
},
}
@@ -245,8 +294,7 @@
.main-content {
flex: 1;
- padding: 20px;
- background-color: #0a1931;
+ background-color: #fff;
width: 100%;
height: 588px;
}
--
Gitblit v1.9.3