index.tsx 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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 style={{ display: 'none' }} />
  50. {/* 热点列表 */}
  51. <HotSpotList />
  52. {/* 底部菜单 */}
  53. <Menu />
  54. {/* 导览 */}
  55. <Guide />
  56. </div>
  57. <WebVr />
  58. <Vrcon />
  59. <Other />
  60. </div>
  61. {/* TODO: 没有控制权,耦合严重;放在此处为了防止元素未渲染导致报错 */}
  62. <JsScript src="/js/manage.js" onLoad={() => (this.manageJsLoaded = true)} />
  63. {this.manageJsLoaded && (
  64. <>
  65. <JsScript src="/js/Hot.js" onLoad={() => (this.hotJsLoaded = true)} />
  66. {this.hotJsLoaded && (
  67. <>
  68. <JsScript src="/js/main_2020_show.js" />
  69. {/* 延迟加载 */}
  70. <JsScript src="/js/lib/player-0.0.12.min.js" />
  71. <JsScript src="/js/lib/Tween.js" />
  72. <JsScript src="/js/SpecialScene.js" />
  73. <JsScript src="/js/loadCAD.js" />
  74. </>
  75. )}
  76. </>
  77. )}
  78. </div>
  79. );
  80. },
  81. });