소스 검색

update 迁移数据后的链接

tremble 2 년 전
부모
커밋
eea3db35ab
5개의 변경된 파일458개의 추가작업 그리고 196개의 파일을 삭제
  1. 35 4
      public/code/pano/data.json
  2. 2 1
      src/framework/show/fdkk.vue
  3. 234 92
      src/framework/show/pano.vue
  4. 2 2
      src/framework/showMobile/fdkk.vue
  5. 185 97
      src/framework/showMobile/pano.vue

+ 35 - 4
public/code/pano/data.json

@@ -1,9 +1,40 @@
 {
   "list": [{
-    "title":"拱北重点区域",
-    "id":"WK1588431100043161600"
+    "title":"空军静展区",
+    "id":"1",
+    "type":"4dkk",
+    "scenes": [
+      {
+        "id": "KJ-ICZUvSY8p7",
+        "title": "空军静展区-1"
+      },
+      {
+        "id": "KJ-v4Ho4SuIG5",
+        "title": "空军静展区-2"
+      },
+      {
+        "id": "KJ-V9BxWXrBLj",
+        "title": "空军静展区-3"
+      },
+      {
+        "id": "KJ-9xwL5oV2qF",
+        "title": "空军静展区-4"
+      }
+    ]
   },{
-    "title":"雨花台",
-    "id":"WK1578926366500417536"
+    "title":"商业示范飞行展区",
+    "id":"WK1589958192614436864"
+  },{
+    "title":"商用及公务机展区2",
+    "id":"WK1589927751274557440"
+  },{
+    "title":"军方飞行展区",
+    "id":"WK1589958145407545344"
+  },{
+    "title":"通航展区",
+    "id":"WK1589927778667556864"
+  },{
+    "title":"航空工业静展区",
+    "id":"WK1589927719381069824"
   }]
 }

+ 2 - 1
src/framework/show/fdkk.vue

@@ -4,7 +4,7 @@
       allowfullscreen="true"
       ref="iframe"
       :key="selected.id"
-      :src="`https://www.4dkankan.com/spc.html?m=${selected.id}`"
+      :src="`https://airshow.4dkankan.com/spc.html?m=${selected.id}`"
       frameborder="0"
       @click="handleifrclk"
       @load="onIframLoad"
@@ -20,6 +20,7 @@
           >
             <div>
               <img :src="`https://4dkk.4dage.com/images/images${item.id}/floor_0.png?t=1667802021476?v=0&rnd=0.5813201205835572&x-oss-process=image/resize,m_fill,w_80,h_60/quality,q_70`" v-errorimg="`${fdkk_CDN}/hangzhan/images/images${item.id}/result.png`" alt="" />
+              <!-- <img :src="`https://airshow.4dkankan.com/images/images${item.id}/smallPic.jpg`" v-errorimg="`${fdkk_CDN}/hangzhan/images/images${item.id}/result.png`" alt="" /> -->
               <rollName
                 :offset="20"
                 :active="selected.id == item.id"

+ 234 - 92
src/framework/show/pano.vue

@@ -1,56 +1,37 @@
 <template>
   <div class="ifrcon">
-    <iframe
-      allowfullscreen="true"
-      ref="iframe"
-      :key="selected.id"
-      :src="`https://www.4dkankan.com/spc.html?m=${selected.id}`"
-      frameborder="0"
-      @click="handleifrclk"
-      @load="onIframLoad"
-    ></iframe>
-    <mbui :type="type" :isShow="isShow" @close="isShow =false">
-      <div class="img_ul" slot="imgList">
-        <ul v-if="selectExh.scenes">
-          <li
-            v-for="(item, i) in selectExh.scenes"
-            @click="selected = item"
-            :key="i"
-            :class="{ active: selected.id == item.id }"
-          >
+    <iframe v-if="selectExh.type === '4dkk'" allowfullscreen="true" ref="iframe" :key="selected.id"
+      :src="`https://airshow.4dkankan.com/spc.html?m=${selected.id}`" frameborder="0"></iframe>
+    <div v-else id="pano" class="pano"></div>
+
+    <div v-if="selected && selectExh.type != '4dkk'" class="title">{{ selected.sceneTitle }}</div>
+    <mbui :type="type" :class="{ uicon: exhibition }" :isShow="isShowM" @close="isShowM = false">
+      <div class="img_ul clip-scroller" slot="imgList">
+        <ul>
+          <li v-for="(item, i) in currentScenes" @click="handleItem(item)" :key="i"
+            :class="{ active: selected.id == item.id }">
             <div>
-              <img :src="`https://4dkk.4dage.com/images/images${item.id}/floor_0.png?t=1667802021476?v=0&rnd=0.5813201205835572&x-oss-process=image/resize,m_fill,w_80,h_60/quality,q_70`" v-errorimg="`${fdkk_CDN}/hangzhan/images/images${item.id}/result.png`" alt="" />
-              <rollName
-                :offset="20"
-                :active="selected.id == item.id"
-                class="pic-name"
-                :myref="'subw' + item.id"
-                :name="item.title"
-              />
+              <img :src="item.icon" alt="" />
+              <rollName :offset="20" :active="selected.id == item.id" class="pic-name" :myref="'subw' + item.id"
+                :name="item.sceneTitle || item.title" />
             </div>
             <span class="bar"></span>
           </li>
         </ul>
       </div>
-
-      <div class="txt_ul" slot="txtList">
+      <div class="txt_ul clip-scroller" slot="txtList" v-if="!exhibition">
         <ul>
-          <li
-            v-for="(item, i) in list"
-            @click="selectExh = item"
-            :key="i"
-            :class="{ active: selectExh.id == item.id }"
-          >
-            <span>{{ selectExh.id == item.id ? item.title : item.short }}</span>
+          <li v-for="(item, i) in list" @click="selectExh = item" :key="i" :class="{ active: selectExh.id == item.id }">
+            <span>{{ item.title }}</span>
           </li>
         </ul>
       </div>
 
-      <div v-if="!isShow" @click="isShow = true" class="btn_zhankai" slot="btn_zhankai">
+      <div v-if="!isShowM" @click="isShowM = true" class="btn_zhankai" slot="btn_zhankai">
         <i class="iconfont icon-more"></i>
       </div>
-      <vAside class="ui_header" slot="aside"/>
-      <vSelect slot="select" :type="type"></vSelect>
+      <vAside class="ui_header" slot="aside" />
+      <vSelect slot="select" v-if="!exhibition" :type="type"></vSelect>
     </mbui>
   </div>
 </template>
@@ -61,8 +42,9 @@ import vAside from "./ui/aside.vue";
 import vSelect from "./ui/select.vue";
 
 
+
 export default {
-  props:['type'],
+  props: ['type', 'exhibition'],
   components: {
     mbui,
     vSelect,
@@ -71,72 +53,210 @@ export default {
   data() {
     return {
       params: "",
-      isShow:true,
-      selected: '',
-      selectExh:{},
-      list:[]
+      isShowM: true,
+      selected: {},
+      selectExh: {},
+      currentScenes: [],
+      list: [],
+      isFirst: true,
+      loadFinish: false
     };
   },
-  watch:{
-    selected:{
-      deep:true,
-      handler:function (newVal) {
-        console.log(newVal);
+  watch: {
+    selectExh: {
+      deep: true,
+      handler: function (newVal) {
+        if (newVal) {
+          this.isFirst = true
+          if (newVal.type === '4dkk') {
+            this.selectExh = this.list[0]
+            this.selected = this.selectExh.scenes[0]
+            this.currentScenes = this.selectExh.scenes.map(item => {
+              return {
+                ...item,
+                icon: `https://4dkk.4dage.com/images/images${item.id}/floor_0.png?t=1667802021476?v=0&rnd=0.5813201205835572&x-oss-process=image/resize,m_fill,w_80,h_60/quality,q_70`
+              }
+            })
+            this.loadFinish = true
+          }
+          else {
+            window.$.ajax({
+              dataType: 'json',
+              url: `https://airshow.4dkankan.com/pano/${newVal.id}/someData.json?_=${Math.random()}`, success: (data) => {
+                this.selected = data.scenes[0]
+                this.currentScenes = data.scenes
+                this.loadFinish = false
+              }
+            })
+          }
+
+        }
+      }
+    },
+    selected: {
+      deep: true,
+      handler: function (newVal) {
+
+        window.vrViewFn = () => {
+          try {
+            this.loadFilsh = true
+            if (this.isFirst) {
+              this.isFirst = false
+            }
+            setTimeout(() => {
+              this.loadFinish = true
+            }, 4000);
+          } catch (error) {
+            error;
+          }
+        };
+
+        var settings = {
+          "events[skin_events].onloadcomplete": "js(window.vrViewFn());",
+          "skin_settings.littleplanetintro": this.isFirst,
+          "view.vlookat": newVal.initVisual ? newVal.initVisual.vlookat : 0,
+          "view.hlookat": newVal.initVisual ? newVal.initVisual.hlookat : 0,
+        };
+
+
+        window.$("#pano").empty();
+        window.removepano("#pano");
+
+        if (this.selectExh.type != '4dkk') {
+          window.embedpano({
+            // https://4dkk.4dage.com/720yun_fd_manage/fd720_FC5BmPHcV/vtour/tour.xml
+            // xml: "%HTMLPATH%/static/template/tour.xml",
+            xml: `https://airshow.4dkankan.com/pano/${this.selectExh.id}/${newVal.sceneCode}/vtour/tour.xml`,
+            swf: `${this.g_CDN}resource/tour.swf`,
+            target: "pano",
+            html5: "auto",
+            mobilescale: 1,
+            vars: settings,
+            passQueryParameters: true,
+          });
+        }
+
       }
     }
   },
   methods: {
-    handleifrclk(){
-      console.log(1111);
-    },
-    getList(){
-      window.$.ajax({url:`${this.g_CDN}fdkk/data2.json`,success:(data)=>{
-        this.list=data.list
-        this.selectExh = this.list[0]
-        this.selected = this.selectExh.scenes[0]
-      }})
-    },
-    onIframLoad() {
-      window.onmessage = () => {
-      
-      };
+    handleItem(item) {
+      if (this.loadFinish) {
+        this.selected = item
+      }
     },
+    getList() {
+      // window.$.ajax({url:`code/pano/data.json`,success:(data)=>{
+      window.$.ajax({
+        url: `${this.g_CDN}pano/data.json`, success: (data) => {
+          this.list = data.list
+          if (this.exhibition) {
+            this.selectExh = this.list.find(item => item.id == this.exhibition)
+          } else {
+            this.selectExh = this.list[0]
+          }
+        }
+      })
+    }
   },
-  mounted(){
+  mounted() {
     this.getList()
-    this.$bus.$on('showM',()=>{
-      this.isShowM = true
-    })
+    this.$nextTick(() => {
+      let el1 = window.$(".clip-scroller > ul")
+      Array.from(el1).forEach(item => {
+        let frame1 = new window.PerfectScrollbar(item, {
+          useBothWheelAxes: true,
+          suppressScrollY: true,
+          wheelSpeed: 0.8,
+        });
+        window.$(item).data("scrollbar", frame1);
+      })
+    });
   }
 };
 </script>
-
 <style lang="less" scoped>
 .ifrcon {
   width: 100%;
   height: 100%;
   background: #fcfcfc;
   text-align: center;
-  > iframe {
+
+  >iframe {
     width: 100%;
     height: 100%;
   }
-  .img_ul {
+
+  .pano {
     width: 100%;
+    height: 100%;
+  }
+
+  .title {
+    --height: 40px;
+    position: fixed;
+    z-index: 99;
+    margin: 0;
+    height: var(--height);
+    line-height: var(--height);
+    font-size: 18px;
+    font-weight: 700;
+    color: #fff;
+    padding: 0 15px;
+    display: inline-block;
+    text-shadow: 1px 0 2px rgb(0 0 0 / 16%);
+    left: 50%;
+    -webkit-transform: translateX(-50%) translateY(0);
+    transform: translateX(-50%) translateY(0);
+    -webkit-transition: background 0.3s ease, min-width 0.3s ease,
+      border-radius 0.3s ease;
+    transition: background 0.3s ease, min-width 0.3s ease,
+      border-radius 0.3s ease;
+    width: 40%;
+    top: 20px;
+    background: -webkit-gradient(linear,
+        left top,
+        right top,
+        from(transparent),
+        color-stop(29%, rgba(0, 0, 0, 0.2)),
+        color-stop(69%, rgba(0, 0, 0, 0.2)),
+        to(transparent));
+    background: linear-gradient(90deg,
+        transparent,
+        rgba(0, 0, 0, 0.2) 29%,
+        rgba(0, 0, 0, 0.2) 69%,
+        transparent);
+    margin-top: 0;
+    text-align: center;
+  }
+
+  .uicon {
+    & /deep/ .btm-menu {
+      height: 250px;
+    }
+  }
+
+  .img_ul {
     position: relative;
-    > ul {
-      overflow-x: auto;
+    display: inline-block;
+    min-width: 50%;
+    max-width: 100%;
+
+    >ul {
       display: inline-block;
-      background: linear-gradient(to right,rgba(32,32,32,0),rgba(32,32,32,1),rgba(32,32,32,0));
-      min-width: 50%;
-      > li {
+      white-space: nowrap;
+      background: linear-gradient(to right, rgba(32, 32, 32, 0), rgba(32, 32, 32, 1), rgba(32, 32, 32, 0));
+      width: 100%;
+
+      >li {
         cursor: pointer;
         list-style: none;
         display: inline-block;
         margin: 8px 10px;
         position: relative;
         padding-bottom: 8px;
-        > div {
+
+        >div {
           width: 68px;
           height: 68px;
           overflow: hidden;
@@ -144,20 +264,23 @@ export default {
           border-radius: 4px;
           cursor: pointer;
           color: rgba(256, 256, 256, 0.4);
-          > img {
+
+          >img {
             position: absolute;
             top: 50%;
             left: 50%;
             height: 100%;
             transform: translate(-50%, -50%);
           }
+
           .iconfont {
             position: absolute;
             left: 4px;
             top: 4px;
             z-index: 99;
           }
-          > span {
+
+          >span {
             text-align: center;
             display: inline-block;
             background: rgba(0, 0, 0, 0.3);
@@ -170,21 +293,25 @@ export default {
             width: 100%;
           }
         }
+
         .bar {
           display: none;
         }
+
         .pic-name {
           background: rgba(0, 0, 0, 0.6);
           position: absolute;
           left: 0;
           bottom: 0;
           text-align: center;
+
           /deep/ span {
             word-break: keep-all;
             white-space: nowrap;
             font-size: 12px;
           }
         }
+
         &.active {
           .bar {
             display: inline-block;
@@ -196,7 +323,8 @@ export default {
             height: 2px;
             background: @color;
           }
-          >div{
+
+          >div {
             color: rgba(256, 256, 256, 1);
           }
         }
@@ -209,20 +337,24 @@ export default {
     border: 2px solid @color;
     border-radius: 30px;
     padding: 6px 15px;
-    display: inline-block;
-    > ul {
-      overflow-x: auto;
-      display: flex;
-      &::-webkit-scrollbar {
-        display: none;
-      }
-      > li {
+    display: block;
+    position: relative;
+    max-width: 864px;
+
+    >ul {
+      width: 100%;
+      display: inline-block;
+      white-space: nowrap;
+
+      >li {
         border: 1px solid rgba(256, 256, 256, 0.4);
         border-radius: 24px;
         padding: 6px 9px;
         margin: 0 5px;
         cursor: pointer;
-        > span {
+        display: inline-block;
+
+        >span {
           font-size: 16px;
           display: inline-block;
           vertical-align: middle;
@@ -230,30 +362,40 @@ export default {
           word-break: keep-all;
           color: rgba(256, 256, 256, 0.4);
         }
+
         &.active {
           padding: 6px 12px;
           border: 1px solid @color;
-          > span {
+
+          >span {
             color: #fff;
           }
         }
       }
     }
   }
-  
-  .btn_zhankai{
+
+  .btn_zhankai {
     position: fixed;
     left: 50%;
     bottom: 8px;
     transform: translateX(-50%);
-    background: rgba(0,0,0,.3);
+    background: rgba(0, 0, 0, .3);
     border-radius: 50%;
     padding: 6px;
     cursor: pointer;
-    >i{
+
+    >i {
       font-size: 28px;
       cursor: pointer;
     }
   }
+
 }
 </style>
+
+<style lang="less">
+.ps__thumb-x {
+  width: 0px !important;
+}
+</style>

+ 2 - 2
src/framework/showMobile/fdkk.vue

@@ -4,7 +4,7 @@
       allowfullscreen="true"
       ref="iframe"
       :key="selected.id"
-      :src="`https://www.4dkankan.com/spc.html?m=${selected.id}`"
+      :src="`https://airshow.4dkankan.com/spc.html?m=${selected.id}`"
       frameborder="0"
       @click="handleifrclk"
     ></iframe>
@@ -18,7 +18,7 @@
             :class="{ active: selected.id == item.id }"
           >
             <div>
-              <img :src="`https://4dkk.4dage.com/images/images${item.id}/floor_0.png?t=1667802021476?v=0&rnd=0.5813201205835572&x-oss-process=image/resize,m_fill,w_80,h_60/quality,q_70`" v-errorimg="`${fdkk_CDN}/hangzhan/images/images${item.id}/result.png`" alt="" />
+              <img :src="`https://airshow.4dkankan.com/images/images${item.id}/smallPic.jpg`" v-errorimg="`${fdkk_CDN}/hangzhan/images/images${item.id}/result.png`" alt="" />
               <rollName
                 :offset="20"
                 :active="selected.id == item.id"

+ 185 - 97
src/framework/showMobile/pano.vue

@@ -1,55 +1,37 @@
 <template>
   <div class="ifrcon">
-    <iframe
-      allowfullscreen="true"
-      ref="iframe"
-      :key="selected.id"
-      :src="`https://www.4dkankan.com/spc.html?m=${selected.id}`"
-      frameborder="0"
-      @click="handleifrclk"
-    ></iframe>
-    <mbui :isShow="isShowM" @close="isShowM =false">
+    <iframe v-if="selectExh.type === '4dkk'" allowfullscreen="true" ref="iframe" :key="selected.id"
+      :src="`https://airshow.4dkankan.com/spc.html?m=${selected.id}`" frameborder="0"></iframe>
+    <div v-else id="pano" class="pano"></div>
+
+    <mbui :isShow="isShowM" :class="{ uicon: exhibition }" @close="isShowM = false">
       <div class="img_ul" slot="imgList">
-        <ul v-if="selectExh.scenes">
-          <li
-            v-for="(item, i) in selectExh.scenes"
-            @click="selected = item"
-            :key="i"
-            :class="{ active: selected.id == item.id }"
-          >
+        <ul v-if="currentScenes">
+          <li v-for="(item, i) in currentScenes" @click="handleItem(item)" :key="i"
+            :class="{ active: selected.id == item.id }">
             <div>
-              <img :src="`https://4dkk.4dage.com/images/images${item.id}/floor_0.png?t=1667802021476?v=0&rnd=0.5813201205835572&x-oss-process=image/resize,m_fill,w_80,h_60/quality,q_70`" v-errorimg="`${fdkk_CDN}/hangzhan/images/images${item.id}/result.png`" alt="" />
-              <rollName
-                :offset="20"
-                :active="selected.id == item.id"
-                class="pic-name"
-                :myref="'subw' + item.id"
-                :name="item.title"
-              />
+              <img :src="item.icon" alt="" />
+              <rollName :offset="20" :active="selected.id == item.id" class="pic-name" :myref="'subw' + item.id"
+                :name="item.sceneTitle || item.title" />
             </div>
             <span class="bar"></span>
           </li>
         </ul>
       </div>
 
-      <div class="txt_ul" slot="txtList">
+      <div class="txt_ul" slot="txtList" v-if="!exhibition && list.length > 0">
         <ul>
-          <li
-            v-for="(item, i) in list"
-            @click="selectExh = item"
-            :key="i"
-            :class="{ active: selectExh.id == item.id }"
-          >
-            <span>{{ selectExh.id == item.id ? item.title : item.short }}</span>
+          <li v-for="(item, i) in list" @click="selectExh = item" :key="i" :class="{ active: selectExh.id == item.id }">
+            <span>{{ item.title }}</span>
           </li>
         </ul>
       </div>
 
       <div class="btn_zhankai" slot="btn_zhankai">
-        <img @click="isShowM=true"  :src="require('@/assets/images/menu.png')" alt="">
+        <img @click="isShowM = true" :src="require('@/assets/images/menu.png')" alt="">
       </div>
-      <vHeader class="ui_header" slot="header"/>
-      <vSelect :type="type" slot="select"></vSelect>
+      <vHeader :vtitle="selected.sceneTitle" class="ui_header" slot="header" />
+      <vSelect v-if="!exhibition" :type="type" slot="select"></vSelect>
     </mbui>
   </div>
 </template>
@@ -61,7 +43,7 @@ import vSelect from "./ui/select.vue";
 
 
 export default {
-  props:['type'],
+  props: ['type', 'exhibition'],
   components: {
     mbui,
     vSelect,
@@ -70,37 +52,116 @@ export default {
   data() {
     return {
       params: "",
-      isShowM:true,
+      isShowM: true,
       selected: '',
-      selectExh:{},
-      list:[]
+      selectExh: {},
+      currentScenes: [],
+      list: [],
+      isChange: true,
+      loadFinish: false,
+      isFirst: true
     };
   },
-  watch:{
-    selected:{
-      deep:true,
-      handler:function (newVal) {
-        console.log(newVal);
+  watch: {
+    selectExh: {
+      deep: true,
+      handler: function (newVal) {
+        if (newVal) {
+          this.isFirst = true
+          if (newVal.type === '4dkk') {
+            this.selectExh = this.list[0]
+            this.selected = this.selectExh.scenes[0]
+            this.currentScenes = this.selectExh.scenes.map(item => {
+              return {
+                ...item,
+                icon: `https://4dkk.4dage.com/images/images${item.id}/floor_0.png?t=1667802021476?v=0&rnd=0.5813201205835572&x-oss-process=image/resize,m_fill,w_80,h_60/quality,q_70`
+              }
+            })
+            this.loadFinish = true
+          }
+          else {
+            window.$.ajax({
+              dataType: 'json',
+              url: `https://airshow.4dkankan.com/pano/${newVal.id}/someData.json?_=${Math.random()}`, success: (data) => {
+                this.selected = data.scenes[0]
+                this.currentScenes = data.scenes
+                this.loadFinish = false
+              }
+            })
+          }
+
+        }
+      }
+    },
+    selected: {
+      deep: true,
+      handler: function (newVal) {
+
+        window.vrViewFn = () => {
+          try {
+            this.loadFilsh = true
+            if (this.isFirst) {
+              this.isFirst = false
+            }
+            setTimeout(() => {
+              this.loadFinish = true
+            }, 4000);
+          } catch (error) {
+            error;
+          }
+        };
+
+        var settings = {
+          "events[skin_events].onloadcomplete": "js(window.vrViewFn());",
+          "skin_settings.littleplanetintro": this.isFirst,
+          "view.vlookat": newVal.initVisual ? newVal.initVisual.vlookat : 0,
+          "view.hlookat": newVal.initVisual ? newVal.initVisual.hlookat : 0,
+        };
+
+
+        window.$("#pano").empty();
+        window.removepano("#pano");
+
+        if (this.selectExh.type != '4dkk') {
+          window.embedpano({
+            // https://4dkk.4dage.com/720yun_fd_manage/fd720_FC5BmPHcV/vtour/tour.xml
+            // xml: "%HTMLPATH%/static/template/tour.xml",
+            xml: `https://airshow.4dkankan.com/pano/${this.selectExh.id}/${newVal.sceneCode}/vtour/tour.xml`,
+            // xml: `https://4dkk.4dage.com/720yun_fd_manage/${newVal.sceneCode}/vtour/tour.xml`,
+            swf: `${this.g_CDN}resource/tour.swf`,
+            target: "pano",
+            html5: "auto",
+            mobilescale: 1,
+            vars: settings,
+            passQueryParameters: true,
+          });
+        }
+
       }
     }
   },
   methods: {
-    handleifrclk(){
-      console.log(1111111);
+    handleItem(item) {
+      if (this.loadFinish) {
+        this.selected = item
+      }
     },
-    getList(){
-      window.$.ajax({url:`${this.g_CDN}fdkk/data2.json`,success:(data)=>{
-        this.list=data.list
-        this.selectExh = this.list[0]
-        this.selected = this.selectExh.scenes[0]
-      }})
+    getList() {
+      // window.$.ajax({url:`code/pano/data.json`,success:(data)=>{
+      window.$.ajax({
+        url: `${this.g_CDN}pano/data.json`, success: (data) => {
+          this.list = data.list
+          if (this.exhibition) {
+            this.selectExh = this.list.find(item => item.id == this.exhibition)
+          } else {
+            this.selectExh = this.list[0]
+          }
+        }
+      })
     }
   },
-  mounted(){
+  mounted() {
     this.getList()
-    this.$bus.$on('showM',()=>{
-      this.isShowM = true
-    })
   }
 };
 </script>
@@ -110,75 +171,93 @@ export default {
   width: 100%;
   height: 100%;
   background: #fcfcfc;
-  > iframe {
+
+  >iframe {
     width: 100%;
     height: 100%;
   }
+
+  .pano {
+    width: 100%;
+    height: 100%;
+  }
+
+  .uicon {
+    & /deep/ .btm-menu {
+      height: 160px;
+    }
+  }
+
   .img_ul {
     width: 100%;
     position: relative;
-    // &::before,
-    // &::after {
-    //   background: linear-gradient(
-    //     to right,
-    //     rgba(0, 0, 0, 0.4),
-    //     rgba(0, 0, 0, 0)
-    //   );
-    //   position: absolute;
-    //   content: "";
-    //   width: 80px;
-    //   height: 67px;
-    //   top: 0;
-    //   z-index: 10;
-    //   pointer-events: none;
-    // }
-    // &::before {
-    //   left: 0;
-    // }
-    // &::after {
-    //   right: 0;
-    //   background: linear-gradient(
-    //     to left,
-    //     rgba(0, 0, 0, 0.4),
-    //     rgba(0, 0, 0, 0)
-    //   );
-    // }
-    > ul {
+
+    &::before,
+    &::after {
+      background: linear-gradient(to right,
+          rgba(0, 0, 0, 0.4),
+          rgba(0, 0, 0, 0));
+      position: absolute;
+      content: "";
+      width: 80px;
+      height: 67px;
+      top: 0;
+      z-index: 10;
+      pointer-events: none;
+    }
+
+    &::before {
+      left: 0;
+    }
+
+    &::after {
+      right: 0;
+      background: linear-gradient(to left,
+          rgba(0, 0, 0, 0.4),
+          rgba(0, 0, 0, 0));
+    }
+
+    >ul {
       overflow-x: auto;
       display: flex;
       justify-content: center;
+
       &::-webkit-scrollbar {
         display: none;
       }
 
-      > li {
+      >li {
         cursor: pointer;
         list-style: none;
         display: inline-block;
         margin: 0 5px;
         position: relative;
         padding-bottom: 7px;
-        > div {
+
+        >div {
           width: 68px;
           height: 68px;
           overflow: hidden;
           position: relative;
           border-radius: 8px;
           cursor: pointer;
-          > img {
+
+          >img {
             position: absolute;
             top: 50%;
             left: 50%;
             height: 100%;
             transform: translate(-50%, -50%);
           }
+
           .iconfont {
             position: absolute;
             left: 4px;
             top: 4px;
             z-index: 99;
           }
-          > span {
+
+          >span {
             text-align: center;
             display: inline-block;
             background: rgba(0, 0, 0, 0.3);
@@ -191,21 +270,25 @@ export default {
             width: 100%;
           }
         }
+
         .bar {
           display: none;
         }
+
         .pic-name {
           background: rgba(0, 0, 0, 0.6);
           position: absolute;
           left: 0;
           bottom: 0;
           text-align: center;
+
           /deep/ span {
             word-break: keep-all;
             white-space: nowrap;
             font-size: 12px;
           }
         }
+
         &.active {
           .bar {
             display: inline-block;
@@ -228,18 +311,22 @@ export default {
     border: 2px solid @color;
     border-radius: 30px;
     padding: 8px 15px 10px;
-    > ul {
+
+    >ul {
       overflow-x: auto;
       display: flex;
+
       &::-webkit-scrollbar {
         display: none;
       }
-      > li {
+
+      >li {
         border: 1px solid rgba(256, 256, 256, 0.4);
         border-radius: 24px;
         padding: 6px 9px;
         margin: 0 5px;
-        > span {
+
+        >span {
           font-size: 16px;
           display: inline-block;
           vertical-align: middle;
@@ -247,25 +334,26 @@ export default {
           word-break: keep-all;
           color: rgba(256, 256, 256, 0.4);
         }
+
         &.active {
           padding: 6px 12px;
           border: 1px solid @color;
-          > span {
+
+          >span {
             color: #fff;
           }
         }
       }
     }
   }
-  
-  .ui_header{
-  }
-  .btn_zhankai{
+
+  .btn_zhankai {
     position: fixed;
     left: 50%;
     bottom: 24px;
     transform: translateX(-50%);
-    >img{
+
+    >img {
       width: 40px;
       height: 40px;
     }