index.tsx 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import { defineComponent, ref } from 'vue';
  2. import JsScript from '@/components/js-script';
  3. import Title from './components/title';
  4. import WebVr from './components/web-vr';
  5. import Other from './components/other';
  6. import Guide from './components/guide';
  7. import Vrcon from './components/vrcon';
  8. import Menu from './components/menu';
  9. import GuiLoading from './components/gui-loading';
  10. import Popup from './components/popup';
  11. import HotSpotList from './components/hot-spot-list';
  12. import './index.scss';
  13. export default defineComponent({
  14. name: 'home',
  15. components: {
  16. Title,
  17. WebVr,
  18. Other,
  19. Vrcon,
  20. GuiLoading,
  21. JsScript,
  22. Popup,
  23. },
  24. setup() {
  25. const manageJsLoaded = ref(false);
  26. const hotJsLoaded = ref(false);
  27. return {
  28. manageJsLoaded,
  29. hotJsLoaded,
  30. };
  31. },
  32. render() {
  33. return (
  34. <div class="home">
  35. {/* 进度条加载 */}
  36. <GuiLoading />
  37. {/* 加载初始页面 */}
  38. <div id="gui-thumb" />
  39. {/* 热点弹出框 */}
  40. <Popup />
  41. {/* 场景canvs主容器 */}
  42. <div id="player" />
  43. {/* 底部菜单 */}
  44. <div id="gui-parent">
  45. {/* 热点气泡 */}
  46. <div id="hot" />
  47. <div id="gui" style="display: none;">
  48. {/* 标题 */}
  49. <Title />
  50. {/* 热点列表 */}
  51. <HotSpotList />
  52. {/* 底部菜单 */}
  53. <Menu />
  54. {/* 导览 */}
  55. <Guide />
  56. <div class="home_logo">
  57. <img src="images/btm_logo.png" />
  58. <span>提供技术支持</span>
  59. </div>
  60. </div>
  61. <WebVr />
  62. <Vrcon />
  63. <Other />
  64. </div>
  65. {/* TODO: 没有控制权,耦合严重;放在此处为了防止元素未渲染导致报错 */}
  66. <JsScript src="/js/manage.js" onLoad={() => (this.manageJsLoaded = true)} />
  67. {this.manageJsLoaded && (
  68. <>
  69. <JsScript src="/js/Hot.js" onLoad={() => (this.hotJsLoaded = true)} />
  70. {this.hotJsLoaded && (
  71. <>
  72. <JsScript src="/js/main_2020_show.js" />
  73. {/* 延迟加载 */}
  74. <JsScript src="/js/lib/player-0.0.12.min.js" />
  75. <JsScript src="/js/lib/Tween.js" />
  76. <JsScript src="/js/SpecialScene.js" />
  77. <JsScript src="/js/loadCAD.js" />
  78. </>
  79. )}
  80. </>
  81. )}
  82. </div>
  83. );
  84. },
  85. });