Browse Source

feat: 离线模式

rindy 2 years ago
parent
commit
3e3881c261
3 changed files with 50 additions and 71 deletions
  1. 1 1
      public/smart-bim.html
  2. 47 22
      src/pages/Bim.vue
  3. 2 48
      src/pages/LaserBim.vue

+ 1 - 1
public/smart-bim.html

@@ -28,6 +28,6 @@
             <strong>We're sorry but doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
             <strong>We're sorry but doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
         </noscript>
         </noscript>
         <div id="app"></div>
         <div id="app"></div>
-        <script src="https://static.bimface.com/api/BimfaceSDKLoader/BimfaceSDKLoader@latest-release.js"></script>
+        <script src="https://test.4dkankan.com/bim/local/jssdk/BimfaceSDKLoader@latest-release.js"></script>
     </body>
     </body>
 </html>
 </html>

+ 47 - 22
src/pages/Bim.vue

@@ -4,51 +4,62 @@
 <script setup>
 <script setup>
 import { onMounted } from 'vue'
 import { onMounted } from 'vue'
 
 
-let viewToken = 'ffe9f0c3d80f4a1bb064b66917503d1f'
+let viewToken = 'c34b3bf046e140968d1d3a30bdc229f4'
 // 声明Viewer及App
 // 声明Viewer及App
 let app
 let app
 let viewer3D
 let viewer3D
 let viewAdded = false
 let viewAdded = false
 
 
 // 加载成功回调函数
 // 加载成功回调函数
-const successCallback = viewMetaData => {
+const successCallback1 = viewMetaData => {
     let dom4Show = document.getElementById('domId')
     let dom4Show = document.getElementById('domId')
     // 设置WebApplication3D的配置项
     // 设置WebApplication3D的配置项
     let webAppConfig = new Glodon.Bimface.Application.WebApplicationRfaConfig()
     let webAppConfig = new Glodon.Bimface.Application.WebApplicationRfaConfig()
     webAppConfig.domElement = dom4Show
     webAppConfig.domElement = dom4Show
     webAppConfig.EnableFamilyList = false
     webAppConfig.EnableFamilyList = false
     // 设置模型爆炸配置项
     // 设置模型爆炸配置项
-    webAppConfig.enableExplosion = true
+    webAppConfig.enableExplosion = false
     // 创建WebApplication3D,用以显示模型
     // 创建WebApplication3D,用以显示模型
     app = new Glodon.Bimface.Application.WebApplicationRfa(webAppConfig)
     app = new Glodon.Bimface.Application.WebApplicationRfa(webAppConfig)
-    app.addView(viewToken)
+
     viewer3D = app.getViewer()
     viewer3D = app.getViewer()
+    viewer3D.loadModel({ viewMetaData })
     // 监听添加view完成的事件
     // 监听添加view完成的事件
     viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.ViewAdded, function () {
     viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.ViewAdded, function () {
         //自适应屏幕大小
         //自适应屏幕大小
         window.onresize = function () {
         window.onresize = function () {
-            viewer3D.resize(document.documentElement.clientWidth, document.documentElement.clientHeight/* - 40*/)
+            viewer3D.resize(document.documentElement.clientWidth, document.documentElement.clientHeight /* - 40*/)
         }
         }
         viewAdded = true
         viewAdded = true
         // 渲染3D模型
         // 渲染3D模型
         viewer3D.render()
         viewer3D.render()
- 
+
         window.loaded.resolve(viewer3D)
         window.loaded.resolve(viewer3D)
     })
     })
+}
+
+const successCallback2 = viewMetaData => {
+    var view = document.getElementById('domId')
+    var config = new Glodon.Bimface.Application.WebApplicationRfaConfig()
+    config.domElement = view
+    config.EnableFamilyList = false
+    // 设置模型爆炸配置项
+    config.enableExplosion = false
+    var eventManager = Glodon.Bimface.Application.WebApplication3DEvent
+    app = new Glodon.Bimface.Application.WebApplicationRfa(config)
+    viewer3D = app.getViewer()
+    viewer3D.loadModel({ viewMetaData })
+    viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.ViewAdded, function () {
+        //自适应屏幕大小
+        window.onresize = function () {
+            viewer3D.resize(document.documentElement.clientWidth, document.documentElement.clientHeight /* - 40*/)
+        }
+        viewAdded = true
+        // 渲染3D模型
+        viewer3D.render()
 
 
-    /*
-    let measureConfig = new Glodon.Bimface.Plugins.Measure.MeasureConfig();
-    console.log('measureConfig', measureConfig)
-    measureConfig.viewer = viewer3D;
-    let measure = new Glodon.Bimface.Plugins.Measure.Measure(measureConfig);
-    measure.switchOn();  //measure.isOpen   div.bf-measure-conext
-    */
-    
-    /*viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.MouseClicked, function (objectdata) {
-     // 调用viewerDrawing对象的Method,可以继续扩展功能
-        alert('objectId : ' + JSON.stringify(objectdata.objectId) + '\n' + 'worldPosition : ' + JSON.stringify(objectdata.worldPosition))
-    })*/ 
-    
+        window.loaded.resolve(viewer3D)
+    })
 }
 }
 
 
 // 加载失败回调函数
 // 加载失败回调函数
@@ -57,9 +68,15 @@ const failureCallback = error => {
 }
 }
 
 
 onMounted(() => {
 onMounted(() => {
-    let loaderConfig = new BimfaceSDKLoaderConfig()
-    loaderConfig.viewToken = viewToken
-    BimfaceSDKLoader.load(loaderConfig, successCallback, failureCallback)
+    // let loaderConfig = new BimfaceSDKLoaderConfig()
+    // loaderConfig.viewToken = viewToken
+    // BimfaceSDKLoader.load(loaderConfig, successCallback1, failureCallback)
+
+    let BimfaceLoaderConfig = new BimfaceSDKLoaderConfig()
+    BimfaceLoaderConfig.dataEnvType = BimfaceEnvOption.Local
+    BimfaceLoaderConfig.sdkPath = 'https://test.4dkankan.com/bim/local/jssdk'
+    BimfaceLoaderConfig.path = 'https://test.4dkankan.com/bim/local2/viewToken.json'
+    BimfaceSDKLoader.load(BimfaceLoaderConfig, successCallback2, failureCallback)
 })
 })
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>
@@ -68,3 +85,11 @@ onMounted(() => {
     height: 100%;
     height: 100%;
 }
 }
 </style>
 </style>
+<style lang="scss">
+.bf-loading .bf-loading-gif {
+    width: 80px !important;
+    height: 80px !important;
+    background-size: contain;
+    background-repeat: no-repeat
+}
+</style>

+ 2 - 48
src/pages/LaserBim.vue

@@ -128,29 +128,10 @@ const onLoadTarget = () => {
     targetApp = targetFrame.value.contentWindow
     targetApp = targetFrame.value.contentWindow
  
  
     targetApp.loaded.then(viewer=>{
     targetApp.loaded.then(viewer=>{
-        //console.log(viewer.getViewer().camera)
         window.viewer2 = targetApp.viewer
         window.viewer2 = targetApp.viewer
         initConvertView() 
         initConvertView() 
     })
     })
- 
- 
- 
- 
-    // targetApp.Scene.on('loaded', () => {
-    //     targetApp.Camera.setCompassDisplay(false)
-    //     targetApp.Connect.sync.start()
-    //     targetApp.VRScreenSYNC = false
-    //     console.log('targetApp.Scene loaded')
 
 
-    //     views.bind({ targetApp })
-    //     sourceApp && sourceApp.Connect.sync.sync()
-    // })
-    // targetApp.Connect.sync.on('data', data => {
-    //     if (sourceApp) {
-    //         views.applyDiff(sourceApp, data)
-    //         sourceApp.Connect.sync.receive(data)
-    //     }
-    // })
 }
 }
 
 
 
 
@@ -244,20 +225,6 @@ const onPrevDate = name => {
         index = scenes.length - 1
         index = scenes.length - 1
     }
     }
 
 
-    // if (name) {
-    //     if (name == 'source') {
-    //         if (scenes[index].num == target.value.num) {
-    //             index--
-    //         }
-    //     } else {
-    //         if (scenes[index].num == source.value.num) {
-    //             index--
-    //         }
-    //     }
-    // }
-    // if (index == -1) {
-    //     index = scenes.length - 1
-    // }
     scene.value = scenes[index]
     scene.value = scenes[index]
 }
 }
 const onNextDate = name => {
 const onNextDate = name => {
@@ -274,27 +241,14 @@ const onNextDate = name => {
     if (++index > scenes.length - 1) {
     if (++index > scenes.length - 1) {
         index = 0
         index = 0
     }
     }
-    // if (name) {
-    //     if (name == 'source') {
-    //         if (scenes[index].num == target.value.num) {
-    //             index++
-    //         }
-    //     } else {
-    //         if (scenes[index].num == source.value.num) {
-    //             index++
-    //         }
-    //     }
-    // }
-    // if (index > scenes.length - 1) {
-    //     index = 0
-    // }
+   
     scene.value = scenes[index]
     scene.value = scenes[index]
 }
 }
 
 
 onMounted(() => {
 onMounted(() => {
     project.value = projects[0]
     project.value = projects[0]
     if (project.value) {
     if (project.value) {
-        source.value = scenes[2] //scenes.find(item => item.num == project.value.num)
+        source.value = scenes[0] //scenes.find(item => item.num == project.value.num)
     }
     }
 })
 })
 </script>
 </script>