index.vue 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <div class="bigscene">
  3. {{cItem.type}}
  4. <iframe allowfullscreen v-if="cItem.type=='bigscene'" :src="cItem.link" frameborder="0"></iframe>
  5. <pano :panoid="$route.params.id" v-else />
  6. <transition name="fade1">
  7. <list :show="isList" />
  8. </transition>
  9. <ul class="aside" :class="{asideactive:isList}">
  10. <li @click="$router.push({path:'/'})">
  11. <img :src="require(`@/assets/images/aside/home.png`)" alt />
  12. </li>
  13. <li @click="isList=!isList">
  14. <img
  15. :src="require(`@/assets/images/aside/list${isList ? '_active' : ''}.png`)"
  16. />
  17. </li>
  18. </ul>
  19. </div>
  20. </template>
  21. <script>
  22. import list from "@/views/list";
  23. import { data } from "@/data/hotspot";
  24. import pano from "@/views/panorama/pano";
  25. export default {
  26. components:{list,pano},
  27. data(){
  28. return {
  29. isList: false
  30. }
  31. },
  32. computed:{
  33. cItem(){
  34. let {id} = this.$route.params
  35. let tmp = data.find(item=>item.id==id)
  36. return tmp
  37. },
  38. },
  39. mounted(){
  40. this.$bus.$on('toggleList', data=>{
  41. this.isList = data
  42. })
  43. }
  44. }
  45. </script>
  46. <style lang="less" scoped>
  47. .bigscene{
  48. width: 100%;
  49. height: 100%;
  50. font-size: 0;
  51. >iframe{
  52. width: 100%;
  53. height: 100%;
  54. }
  55. .aside {
  56. position: fixed;
  57. right: 0;
  58. top: 50%;
  59. transform: translateY(-50%);
  60. background: rgba(#9E4923, 0.9);
  61. border-radius: 20px 0px 0px 20px;
  62. li {
  63. cursor: pointer;
  64. margin: 30px 14px;
  65. img {
  66. cursor: pointer;
  67. width: 50px;
  68. }
  69. }
  70. }
  71. }
  72. @media screen and (max-width: 600px) {
  73. .bigscene{
  74. .aside {
  75. top: 20%;
  76. li {
  77. margin: 26px 10px;
  78. img {
  79. cursor: pointer;
  80. width: 40px;
  81. }
  82. }
  83. }
  84. .asideactive{
  85. right:50%;
  86. }
  87. }
  88. }
  89. </style>