menu.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619
  1. <template>
  2. <div class="pinBottom-container" @touchstart.stop @keydown.stop>
  3. <div class="pinBottom center">
  4. <div id="view-controllers"></div>
  5. </div>
  6. <div class="pinBottom left">
  7. <div>
  8. <div class="viewContainer">
  9. <div
  10. id="previous"
  11. class="previous desktop-only ui-icon"
  12. style="display: none"
  13. >
  14. <a>
  15. <img
  16. rel="tooltip"
  17. title=""
  18. :src="require('@/assets/images/play.png')"
  19. width="24"
  20. height="24"
  21. data-original-title="播放"
  22. />
  23. </a>
  24. </div>
  25. <div
  26. id="play"
  27. class="ui-icon"
  28. rel="tooltip"
  29. data-original-title="播放"
  30. >
  31. <!-- 鼠标移入的显示 -->
  32. <div class="hoverTit">自动导览</div>
  33. <a>
  34. <img
  35. :src="require('@/assets/images/icon/play.png')"
  36. width="24"
  37. height="24"
  38. />
  39. </a>
  40. </div>
  41. <div id="pause" class="ui-icon" style="display: none">
  42. <!-- 鼠标移入的显示 -->
  43. <div class="hoverTit">自动导览</div>
  44. <a>
  45. <img
  46. rel="tooltip"
  47. title=""
  48. :src="require('@/assets/images/icon/pause.png')"
  49. width="24"
  50. height="24"
  51. data-original-title="暂停"
  52. />
  53. </a>
  54. </div>
  55. <div
  56. id="next"
  57. class="next desktop-only ui-icon wide"
  58. style="display: none"
  59. >
  60. <a>
  61. <i
  62. rel="tooltip"
  63. title=""
  64. class="icon icon-dpad-right"
  65. data-original-title="下一个"
  66. ></i>
  67. </a>
  68. </div>
  69. <div id="gui-modes-map" class="ui-icon double active">
  70. <div
  71. data-original-title="导览"
  72. @click="isGuide = !isGuide"
  73. id="pullTab"
  74. rel="tooltip"
  75. title="场景导览"
  76. >
  77. <!-- 鼠标移入的显示 -->
  78. <div class="hoverTit">导览列表</div>
  79. <img
  80. title=""
  81. class="icon icon-inside"
  82. :src="
  83. require(`@/assets/images/icon/auto${
  84. !isGuide ? '_active' : ''
  85. }.png`)
  86. "
  87. />
  88. </div>
  89. <div
  90. data-original-title="全景漫游"
  91. id="gui-modes-inside"
  92. rel="tooltip"
  93. >
  94. <!-- 鼠标移入的显示 -->
  95. <div class="hoverTit">全景漫游</div>
  96. <img
  97. class="icon icon-inside"
  98. :src="require('@/assets/images/icon/inside.png')"
  99. />
  100. <img
  101. class="icon icon-inside active"
  102. :src="require('@/assets/images/icon/inside_active.png')"
  103. />
  104. </div>
  105. <div
  106. title="迷你漫游"
  107. data-original-title="迷你模型"
  108. id="gui-modes-dollhouse"
  109. rel="tooltip"
  110. >
  111. <!-- 鼠标移入的显示 -->
  112. <div class="hoverTit">三维视觉</div>
  113. <img
  114. class="icon icon-inside"
  115. :src="require('@/assets/images/icon/dollhouse.png')"
  116. />
  117. <img
  118. class="icon icon-inside active"
  119. :src="require('@/assets/images/icon/dollhouse_active.png')"
  120. />
  121. </div>
  122. <div
  123. data-original-title="俯视图"
  124. id="gui-modes-floorplan"
  125. rel="tooltip"
  126. title="顶部俯视"
  127. >
  128. <!-- 鼠标移入的显示 -->
  129. <div class="hoverTit">平面视觉</div>
  130. <img
  131. class="icon icon-inside"
  132. :src="require('@/assets/images/icon/floor.png')"
  133. />
  134. <img
  135. class="active icon icon-inside active"
  136. :src="require('@/assets/images/icon/floor_active.png')"
  137. />
  138. </div>
  139. <div
  140. data-original-title="VR"
  141. id="vr"
  142. rel="tooltip"
  143. title=""
  144. style="display: none"
  145. >
  146. <img
  147. class="icon icon-inside"
  148. :src="require('@/assets/images/VR.png')"
  149. />
  150. </div>
  151. <div
  152. data-original-title="热点列表"
  153. id="hotList"
  154. rel="tooltip"
  155. title=""
  156. >
  157. <img
  158. class="icon icon-inside"
  159. :src="require('@/assets/images/hotlist.png')"
  160. />
  161. <img
  162. class="icon icon-inside active"
  163. :src="require('@/assets/images/hotlist.png')"
  164. />
  165. </div>
  166. <div
  167. data-original-title="消除外壳"
  168. id="gui-remove-face"
  169. rel="tooltip"
  170. title=""
  171. style="display: none; float: left"
  172. >
  173. <img
  174. class="icon icon-inside"
  175. :src="require('@/assets/images/face.jpg')"
  176. />
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. </div>
  182. <div class="pinBottom right hideTarget">
  183. <div class="rightViewContainer clearfix">
  184. <div class="gui-floor">
  185. <div class="gui-floor-title"></div>
  186. <div class="gui-floor-icon">
  187. <span class="gui-floor-number"></span>
  188. </div>
  189. <div class="container"></div>
  190. </div>
  191. <div id="vr" class="ui-icon wide hidden" style="display: none">
  192. <a>
  193. <i
  194. rel="tooltip"
  195. title="{[{ VIEW_IN_VR }]}"
  196. class="icon icon-webvr"
  197. ></i>
  198. </a>
  199. </div>
  200. <div id="sharing" class="ui-icon wide hidden" style="display: none">
  201. <a>
  202. <i
  203. rel="tooltip"
  204. title="{[{ SOCIAL_SHARING }]}"
  205. class="icon icon-share"
  206. ></i>
  207. </a>
  208. </div>
  209. <div class="pull-right terms terms2">
  210. <a>{[{ TERMS }]}</a>
  211. </div>
  212. <!-- 回到pc页面(首页) -->
  213. <div class="toHomeBox">
  214. <!-- 鼠标移入的显示 -->
  215. <div class="hoverTit" @click="toHomeFu">回到首页</div>
  216. <img src="../../assets/img/toHome.png" alt="" />
  217. </div>
  218. <!-- 音乐 -->
  219. <div id="volume" class="ui-icon bgandshare wide">
  220. <!-- 鼠标移入的显示 -->
  221. <div class="hoverTit">{{ musicState ? "关闭" : "打开" }}音乐</div>
  222. <div>
  223. <img
  224. id="openMusic"
  225. style="display: block"
  226. @click="switchBGM(true)"
  227. src="../../assets/img/musicAc.png"
  228. alt=""
  229. />
  230. <img
  231. id="closeMusic"
  232. style="display: none"
  233. @click="switchBGM(false)"
  234. src="../../assets/img/music.png"
  235. alt=""
  236. />
  237. </div>
  238. </div>
  239. <!-- 全屏 -->
  240. <div
  241. id="gui-fullscreen"
  242. class="ui-icon wide"
  243. data-placement="top"
  244. rel="tooltip"
  245. >
  246. <!-- 鼠标移入的显示 -->
  247. <div class="hoverTit">全屏浏览</div>
  248. <a>
  249. <img :src="require('@/assets/img/full.png')" />
  250. </a>
  251. </div>
  252. <div
  253. id="gui-fullscreen-exit"
  254. class="ui-icon wide"
  255. data-placement="top"
  256. rel="tooltip"
  257. style="display: none"
  258. >
  259. <div class="hoverTit">退出全屏</div>
  260. <a>
  261. <img
  262. :src="require('@/assets/img/fullAc.png')"
  263. style="width: 50px"
  264. />
  265. </a>
  266. </div>
  267. </div>
  268. </div>
  269. <!-- 左上方的标题 -->
  270. <div class="leftTitle" :class="{ leftTitleHide: !leftTitleShow }">
  271. <img
  272. class="leftIcon"
  273. @click="leftTitleShow = false"
  274. src="../../assets/img/left.svg"
  275. alt=""
  276. />
  277. <div class="leftXian"></div>
  278. <div class="leftTxt">{{ leftTitleTxt }}</div>
  279. </div>
  280. <div
  281. class="leftTitleShow"
  282. @click="leftTitleShow = true"
  283. :class="{ leftTitleShowAc: !leftTitleShow }"
  284. >
  285. <img class="leftIcon" src="../../assets/img/right.svg" alt="" />
  286. </div>
  287. </div>
  288. </template>
  289. <script>
  290. export default {
  291. components: {},
  292. data() {
  293. return {
  294. isGuide: true,
  295. musicState: false,
  296. // 左上方的标题
  297. leftTitleTxt: "务川博物馆",
  298. leftTitleShow: true,
  299. };
  300. },
  301. watch: {},
  302. computed: {},
  303. mounted() {
  304. let url = window.location.href;
  305. const obj = {
  306. "KJ-ztJ9nPQyf64": "精品文物厅",
  307. "KJ-wlpyvYdFNXN": "书画厅",
  308. "KJ-Rytmid9ku2a": "中国仡佬族民族文化展厅",
  309. };
  310. for (const k in obj) {
  311. if (url.includes(k)) this.leftTitleTxt = obj[k];
  312. }
  313. },
  314. methods: {
  315. switchBGM(flag) {
  316. this.musicState = flag;
  317. if (flag) {
  318. window.manage.switchBgmState(true);
  319. document.querySelector("#openMusic").style.display = "none";
  320. document.querySelector("#closeMusic").style.display = "block";
  321. } else {
  322. window.manage.switchBgmState(false);
  323. document.querySelector("#openMusic").style.display = "block";
  324. document.querySelector("#closeMusic").style.display = "none";
  325. }
  326. },
  327. // 点击回到首页
  328. toHomeFu() {
  329. window.location.href = "/";
  330. setTimeout(() => {
  331. location.reload(true);
  332. }, 200);
  333. },
  334. },
  335. };
  336. </script>
  337. <style lang="less" scoped>
  338. .leftTitle {
  339. transition: all 0.3s;
  340. position: fixed;
  341. left: 0;
  342. top: 30px;
  343. z-index: 9999;
  344. display: flex;
  345. background-color: rgba(94, 26, 19, 0.8);
  346. height: 36px;
  347. align-items: center;
  348. padding-right: 30px;
  349. border-radius: 0 18px 18px 0;
  350. .leftIcon {
  351. cursor: pointer;
  352. position: relative;
  353. top: 1px;
  354. margin: 0 10px;
  355. width: 16px;
  356. }
  357. .leftXian {
  358. width: 1px;
  359. height: 16px;
  360. margin-right: 10px;
  361. background: linear-gradient(
  362. rgba(255, 255, 255, 0.2),
  363. rgba(255, 255, 255, 1),
  364. rgba(255, 255, 255, 0.2)
  365. );
  366. }
  367. }
  368. .leftTitleHide {
  369. left: -300px;
  370. }
  371. .leftTitleShow {
  372. transition: all 0.3s;
  373. opacity: 0;
  374. pointer-events: none;
  375. position: fixed;
  376. left: 0;
  377. top: 30px;
  378. z-index: 9999;
  379. display: flex;
  380. background-color: rgba(94, 26, 19, 0.8);
  381. height: 36px;
  382. align-items: center;
  383. padding-right: 5px;
  384. border-radius: 0 18px 18px 0;
  385. .leftIcon {
  386. cursor: pointer;
  387. position: relative;
  388. top: 1px;
  389. margin: 0 10px;
  390. width: 16px;
  391. }
  392. }
  393. .leftTitleShowAc {
  394. opacity: 1;
  395. pointer-events: auto;
  396. }
  397. #hotList {
  398. display: none !important;
  399. }
  400. ::-webkit-scrollbar {
  401. width: 5px; /*高宽分别对应横竖滚动条的尺寸*/
  402. }
  403. ::-webkit-scrollbar-thumb {
  404. // box-shadow : inset 0 0 5px rgba(0, 0, 0, 0.2);
  405. background: #edd3b0;
  406. border-color: #edd3b0;
  407. color: #edd3b0;
  408. outline: none;
  409. }
  410. // 鼠标移入显示的文字和图片
  411. #gui-modes-inside {
  412. position: relative;
  413. }
  414. #gui-modes-dollhouse {
  415. position: relative;
  416. }
  417. #gui-modes-floorplan {
  418. position: relative;
  419. }
  420. .hoverTit {
  421. pointer-events: none;
  422. transition: all 0.5s;
  423. opacity: 0;
  424. position: absolute;
  425. left: 50%;
  426. transform: translateX(-50%);
  427. top: -40px;
  428. width: 80px;
  429. height: 37px;
  430. line-height: 30px;
  431. text-align: center;
  432. background: url("../../assets/img/hoverTit.png");
  433. background-size: 100% 100%;
  434. font-size: 14px;
  435. color: #fff;
  436. }
  437. #play:hover {
  438. .hoverTit {
  439. opacity: 1;
  440. }
  441. }
  442. #pause:hover {
  443. .hoverTit {
  444. opacity: 1;
  445. }
  446. }
  447. #gui-modes-map > div:hover {
  448. .hoverTit {
  449. opacity: 1;
  450. }
  451. }
  452. #volume {
  453. margin: 0 16px 0 20px;
  454. }
  455. #volume,
  456. #gui-fullscreen,
  457. #gui-fullscreen-exit {
  458. position: relative;
  459. .hoverTit {
  460. width: 70px;
  461. }
  462. &:hover {
  463. .hoverTit {
  464. opacity: 1;
  465. }
  466. }
  467. }
  468. // 右侧菜单栏
  469. @wh: 44px;
  470. @margin: 0px;
  471. #play,
  472. #pause {
  473. margin-right: @margin;
  474. img {
  475. width: @wh;
  476. height: @wh;
  477. }
  478. }
  479. .rightViewContainer {
  480. display: flex !important;
  481. align-items: center !important;
  482. }
  483. #gui-modes-map {
  484. > div {
  485. margin-right: @margin;
  486. > img {
  487. width: @wh;
  488. height: @wh;
  489. display: block !important;
  490. }
  491. .active {
  492. display: none !important;
  493. }
  494. }
  495. .active {
  496. > img {
  497. display: none !important;
  498. }
  499. .active {
  500. display: block !important;
  501. }
  502. }
  503. }
  504. .pinBottom.right .ui-icon {
  505. background: none;
  506. }
  507. #gui-fullscreen img {
  508. width: 44px;
  509. }
  510. #volume {
  511. width: 44px;
  512. }
  513. #gui-fullscreen-exit img {
  514. width: 44px !important;
  515. }
  516. .bgandshare {
  517. background: none !important;
  518. // margin-right: 20px!important;
  519. > div {
  520. width: 100%;
  521. cursor: pointer;
  522. img {
  523. width: 100%;
  524. }
  525. }
  526. }
  527. @media only screen and (max-width: 487px) {
  528. #myMoMu {
  529. display: block !important;
  530. }
  531. #myMoMu img {
  532. margin-left: 12px;
  533. }
  534. .viewContainer {
  535. background-color: rgba(0, 0, 0, 0.5);
  536. padding: 15px 0 10px;
  537. border-radius: 50px;
  538. }
  539. @wh: 22px;
  540. @margin: 10px;
  541. #play,
  542. #pause {
  543. margin-bottom: @margin;
  544. img {
  545. width: @wh;
  546. height: @wh;
  547. }
  548. }
  549. #gui-modes-map {
  550. > div {
  551. margin-bottom: @margin;
  552. > img {
  553. width: @wh;
  554. height: @wh;
  555. display: block;
  556. }
  557. .active {
  558. display: none;
  559. }
  560. }
  561. .active {
  562. > img {
  563. display: none;
  564. }
  565. .active {
  566. display: block;
  567. }
  568. }
  569. }
  570. .bgandshare {
  571. display: none !important;
  572. display: flex;
  573. position: fixed;
  574. left: 50px;
  575. bottom: 25px;
  576. flex-direction: column;
  577. margin-right: 10px !important;
  578. > div {
  579. width: @wh!important;
  580. img {
  581. width: 100%;
  582. }
  583. }
  584. }
  585. }
  586. .toHomeBox {
  587. cursor: pointer;
  588. position: relative;
  589. width: 44px;
  590. img {
  591. width: 44px;
  592. }
  593. &:hover {
  594. .hoverTit {
  595. opacity: 1;
  596. }
  597. }
  598. }
  599. </style>