Bim.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <div id="domId"></div>
  3. </template>
  4. <script setup>
  5. import { onMounted } from 'vue'
  6. import browser from '@/utils/browser'
  7. let viewToken = 'c34b3bf046e140968d1d3a30bdc229f4'
  8. // 声明Viewer及App
  9. let app
  10. let viewer3D
  11. let viewAdded = false
  12. // 加载成功回调函数
  13. const successCallback1 = viewMetaData => {
  14. let dom4Show = document.getElementById('domId')
  15. // 设置WebApplication3D的配置项
  16. let webAppConfig = new Glodon.Bimface.Application.WebApplicationRfaConfig()
  17. webAppConfig.domElement = dom4Show
  18. webAppConfig.EnableFamilyList = false
  19. // 设置模型爆炸配置项
  20. webAppConfig.enableExplosion = false
  21. // 创建WebApplication3D,用以显示模型
  22. app = new Glodon.Bimface.Application.WebApplicationRfa(webAppConfig)
  23. viewer3D = app.getViewer()
  24. viewer3D.loadModel({ viewMetaData })
  25. // 监听添加view完成的事件
  26. viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.ViewAdded, function () {
  27. //自适应屏幕大小
  28. window.onresize = function () {
  29. viewer3D.resize(document.documentElement.clientWidth, document.documentElement.clientHeight /* - 40*/)
  30. }
  31. viewAdded = true
  32. // 渲染3D模型
  33. viewer3D.render()
  34. window.loaded.resolve(viewer3D)
  35. })
  36. }
  37. const successCallback2 = viewMetaData => {
  38. var view = document.getElementById('domId')
  39. var config = new Glodon.Bimface.Application.WebApplicationRfaConfig()
  40. config.domElement = view
  41. config.EnableFamilyList = false
  42. // 设置模型爆炸配置项
  43. config.enableExplosion = false
  44. var eventManager = Glodon.Bimface.Application.WebApplication3DEvent
  45. app = new Glodon.Bimface.Application.WebApplicationRfa(config)
  46. viewer3D = app.getViewer()
  47. viewer3D.loadModel({ viewMetaData })
  48. viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.ViewAdded, function () {
  49. //自适应屏幕大小
  50. window.onresize = function () {
  51. viewer3D.resize(document.documentElement.clientWidth, document.documentElement.clientHeight /* - 40*/)
  52. }
  53. viewAdded = true
  54. // 渲染3D模型
  55. viewer3D.render()
  56. window.loaded.resolve(viewer3D)
  57. })
  58. }
  59. // 加载失败回调函数
  60. const failureCallback = error => {
  61. console.log(error)
  62. }
  63. onMounted(() => {
  64. // let loaderConfig = new BimfaceSDKLoaderConfig()
  65. // loaderConfig.viewToken = viewToken
  66. // BimfaceSDKLoader.load(loaderConfig, successCallback1, failureCallback)
  67. const m = browser.valueFromUrl('m')
  68. let BimfaceLoaderConfig = new BimfaceSDKLoaderConfig()
  69. BimfaceLoaderConfig.dataEnvType = BimfaceEnvOption.Local
  70. BimfaceLoaderConfig.sdkPath = 'https://4dkk.4dage.com/bim/jssdk'
  71. BimfaceLoaderConfig.path = `${m}viewToken.json`
  72. BimfaceSDKLoader.load(BimfaceLoaderConfig, successCallback2, failureCallback)
  73. })
  74. </script>
  75. <style lang="scss" scoped>
  76. #domId {
  77. width: 100%;
  78. height: 100%;
  79. }
  80. </style>
  81. <style lang="scss">
  82. .bf-loading .bf-loading-gif {
  83. width: 80px !important;
  84. height: 80px !important;
  85. background-size: contain;
  86. background-repeat: no-repeat
  87. }
  88. .bf-toolbar.bf-toolbar-bottom{
  89. bottom: 40px !important;
  90. }
  91. </style>