menu.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539
  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. <!-- 热点列表 -->
  140. <div id="myHotList" @click="openInd = 1">
  141. <!-- 鼠标移入的显示 -->
  142. <div class="hoverTit">热点列表</div>
  143. <img src="../../assets/img/hot.png" alt="" />
  144. </div>
  145. <div
  146. data-original-title="VR"
  147. id="vr"
  148. rel="tooltip"
  149. title=""
  150. style="display: none"
  151. >
  152. <img
  153. class="icon icon-inside"
  154. :src="require('@/assets/images/VR.png')"
  155. />
  156. </div>
  157. <div
  158. data-original-title="消除外壳"
  159. id="gui-remove-face"
  160. rel="tooltip"
  161. title=""
  162. style="display: none; float: left"
  163. >
  164. <img
  165. class="icon icon-inside"
  166. :src="require('@/assets/images/face.jpg')"
  167. />
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. <div class="pinBottom right hideTarget">
  174. <div class="rightViewContainer clearfix">
  175. <div class="gui-floor">
  176. <div class="gui-floor-title"></div>
  177. <div class="gui-floor-icon">
  178. <span class="gui-floor-number"></span>
  179. </div>
  180. <div class="container"></div>
  181. </div>
  182. <div id="vr" class="ui-icon wide hidden" style="display: none">
  183. <a>
  184. <i
  185. rel="tooltip"
  186. title="{[{ VIEW_IN_VR }]}"
  187. class="icon icon-webvr"
  188. ></i>
  189. </a>
  190. </div>
  191. <div id="sharing" class="ui-icon wide hidden" style="display: none">
  192. <a>
  193. <i
  194. rel="tooltip"
  195. title="{[{ SOCIAL_SHARING }]}"
  196. class="icon icon-share"
  197. ></i>
  198. </a>
  199. </div>
  200. <div class="pull-right terms terms2">
  201. <a>{[{ TERMS }]}</a>
  202. </div>
  203. <!-- 回到pc页面(首页) -->
  204. <div class="toHomeBox" @click="toHomeFu">
  205. <!-- 鼠标移入的显示 -->
  206. <div class="hoverTit">回到首页</div>
  207. <img src="../../assets/img/toHome.png" alt="" />
  208. </div>
  209. <!-- vr -->
  210. <div class="toHomeBox" @click="openVR">
  211. <!-- 鼠标移入的显示 -->
  212. <div class="hoverTit">VR</div>
  213. <img src="../../assets/img/openVR.png" alt="" />
  214. </div>
  215. <!-- 音乐 -->
  216. <div id="volume" class="ui-icon bgandshare wide">
  217. <!-- 鼠标移入的显示 -->
  218. <div class="hoverTit">{{ musicState ? "关闭" : "打开" }}音乐</div>
  219. <div>
  220. <img
  221. id="openMusic"
  222. style="display: block"
  223. @click="switchBGM(true)"
  224. src="../../assets/img/musicAc.png"
  225. alt=""
  226. />
  227. <img
  228. id="closeMusic"
  229. style="display: none"
  230. @click="switchBGM(false)"
  231. src="../../assets/img/music.png"
  232. alt=""
  233. />
  234. </div>
  235. </div>
  236. <!-- 分享 -->
  237. <div class="toHomeBox" @click="openInd = 2">
  238. <!-- 鼠标移入的显示 -->
  239. <div class="hoverTit">分享</div>
  240. <img src="../../assets/img/share.png" alt="" />
  241. </div>
  242. </div>
  243. </div>
  244. <div class="openBox" :class="{ openBoxAc: openInd }">
  245. <HotList v-if="openInd === 1" @close="openInd = 0" />
  246. <Share v-show="openInd === 2" @close="openInd = 0" :openInd="openInd" />
  247. </div>
  248. <!-- 手动触发导览 -->
  249. <div id='myClickBox' style="">6666</div>
  250. </div>
  251. </template>
  252. <script>
  253. import HotList from "./components/hotList.vue";
  254. import Share from "./components/share.vue";
  255. export default {
  256. components: { HotList, Share },
  257. data() {
  258. return {
  259. isGuide: true,
  260. musicState: false,
  261. // vr---热点列表---分享
  262. openInd: 0,
  263. };
  264. },
  265. watch: {},
  266. computed: {},
  267. mounted() {},
  268. methods: {
  269. switchBGM(flag) {
  270. this.musicState = flag;
  271. if (flag) {
  272. window.manage.switchBgmState(true);
  273. document.querySelector("#openMusic").style.display = "none";
  274. document.querySelector("#closeMusic").style.display = "block";
  275. } else {
  276. window.manage.switchBgmState(false);
  277. document.querySelector("#openMusic").style.display = "block";
  278. document.querySelector("#closeMusic").style.display = "none";
  279. }
  280. },
  281. // 点击vr
  282. openVR() {
  283. window.open("https://www.720yun.com/t/acvkiwdegqb?scene_id=34882556");
  284. },
  285. // 点击回到首页
  286. toHomeFu() {
  287. this.switchBGM(false);
  288. this.$emit("toHome");
  289. },
  290. },
  291. };
  292. </script>
  293. <style lang="less" scoped>
  294. ::-webkit-scrollbar {
  295. width: 5px; /*高宽分别对应横竖滚动条的尺寸*/
  296. }
  297. ::-webkit-scrollbar-thumb {
  298. // box-shadow : inset 0 0 5px rgba(0, 0, 0, 0.2);
  299. background: #edd3b0;
  300. border-color: #edd3b0;
  301. color: #edd3b0;
  302. outline: none;
  303. }
  304. // 鼠标移入显示的文字和图片
  305. #gui-modes-inside {
  306. position: relative;
  307. }
  308. #gui-modes-dollhouse {
  309. position: relative;
  310. }
  311. #gui-modes-floorplan {
  312. position: relative;
  313. }
  314. .hoverTit {
  315. pointer-events: none;
  316. transition: all 0.5s;
  317. opacity: 0;
  318. position: absolute;
  319. left: 50%;
  320. transform: translateX(-50%);
  321. top: -40px;
  322. width: 80px;
  323. height: 37px;
  324. line-height: 30px;
  325. text-align: center;
  326. background: url("../../assets/img/hoverTit.png");
  327. background-size: 100% 100%;
  328. font-size: 14px;
  329. color: #fff;
  330. }
  331. #play:hover {
  332. .hoverTit {
  333. opacity: 1;
  334. }
  335. }
  336. #pause:hover {
  337. .hoverTit {
  338. opacity: 1;
  339. }
  340. }
  341. #gui-modes-map > div:hover {
  342. .hoverTit {
  343. opacity: 1;
  344. }
  345. }
  346. #volume {
  347. margin-right: 16px;
  348. }
  349. #volume,
  350. #gui-fullscreen,
  351. #gui-fullscreen-exit {
  352. position: relative;
  353. .hoverTit {
  354. width: 70px;
  355. }
  356. &:hover {
  357. .hoverTit {
  358. opacity: 1;
  359. }
  360. }
  361. }
  362. // 右侧菜单栏
  363. @wh: 44px;
  364. @margin: 0px;
  365. #play,
  366. #pause {
  367. margin-right: @margin;
  368. img {
  369. width: @wh;
  370. height: @wh;
  371. }
  372. }
  373. .rightViewContainer {
  374. display: flex !important;
  375. align-items: center !important;
  376. }
  377. #gui-modes-map {
  378. > div {
  379. margin-right: @margin;
  380. > img {
  381. width: @wh;
  382. height: @wh;
  383. display: block !important;
  384. }
  385. .active {
  386. display: none !important;
  387. }
  388. }
  389. .active {
  390. > img {
  391. display: none !important;
  392. }
  393. .active {
  394. display: block !important;
  395. }
  396. }
  397. }
  398. .pinBottom.right .ui-icon {
  399. background: none;
  400. }
  401. #gui-fullscreen img {
  402. width: 44px;
  403. }
  404. #volume {
  405. width: 44px;
  406. }
  407. #gui-fullscreen-exit img {
  408. width: 44px !important;
  409. }
  410. .bgandshare {
  411. background: none !important;
  412. // margin-right: 20px!important;
  413. > div {
  414. width: 100%;
  415. cursor: pointer;
  416. img {
  417. width: 100%;
  418. }
  419. }
  420. }
  421. .toHomeBox {
  422. margin-right: 20px;
  423. cursor: pointer;
  424. position: relative;
  425. width: 44px;
  426. img {
  427. width: 44px;
  428. }
  429. &:hover {
  430. .hoverTit {
  431. opacity: 1;
  432. }
  433. }
  434. }
  435. .pinBottom-container {
  436. #myHotList {
  437. position: relative;
  438. float: left;
  439. width: 70px;
  440. display: flex;
  441. justify-content: center;
  442. align-items: center;
  443. cursor: pointer;
  444. }
  445. .openBox {
  446. opacity: 0;
  447. pointer-events: none;
  448. transition: all 0.3s;
  449. position: fixed;
  450. z-index: 9999;
  451. top: 0;
  452. left: 0;
  453. width: 100%;
  454. height: 100%;
  455. // background-color: rgba(255, 255, 255, 0.6);
  456. backdrop-filter: blur(10px);
  457. }
  458. .openBoxAc {
  459. opacity: 1;
  460. pointer-events: auto;
  461. }
  462. }
  463. // 移动端
  464. @media screen and (max-width: 1000px) {
  465. .hoverTit {
  466. opacity: 0 !important;
  467. }
  468. .viewContainer {
  469. & > div {
  470. img {
  471. width: 33px !important;
  472. height: 33px !important;
  473. }
  474. }
  475. }
  476. .pinBottom-container #myHotList {
  477. width: 50px;
  478. margin-bottom: 15px;
  479. }
  480. .pinBottom-container {
  481. .pinBottom.right.hideTarget {
  482. position: fixed;
  483. top: 200px;
  484. right: 10px;
  485. .rightViewContainer {
  486. flex-direction: column;
  487. & > div,
  488. #volume {
  489. width: 50px !important;
  490. text-align: right;
  491. margin-right: 0;
  492. margin-bottom: 10px;
  493. & > div {
  494. display: flex;
  495. justify-content: flex-end;
  496. }
  497. img {
  498. width: 33px;
  499. height: 33px;
  500. }
  501. }
  502. }
  503. }
  504. }
  505. }
  506. #myClickBox{
  507. position: fixed;
  508. z-index: 999;
  509. top: 50px;
  510. left: 50px;
  511. background-color: red;
  512. color: #fff;
  513. }
  514. </style>