jinx 10 月之前
父节点
当前提交
5e479eebec
共有 66 个文件被更改,包括 13380 次插入41425 次删除
  1. 12714 9808
      hot/package-lock.json
  2. 二进制
      hot/src/assets/images/pc/btn_S.png
  3. 二进制
      hot/src/assets/images/pc/icon_img.png
  4. 二进制
      hot/src/assets/images/pc/icon_model.png
  5. 二进制
      hot/src/assets/images/pc/icon_video.png
  6. 二进制
      hot/src/assets/images/pc/img_cloud.png
  7. 二进制
      hot/src/assets/images/pc/left.png
  8. 二进制
      hot/src/assets/images/pc/left1.png
  9. 二进制
      hot/src/assets/images/pc/line.png
  10. 二进制
      hot/src/assets/images/pc/right.png
  11. 二进制
      hot/src/assets/images/pc/right1.png
  12. 二进制
      hot/src/assets/images/pc/tab-close.png
  13. 二进制
      hot/src/assets/images/pc/tab.png
  14. 172 153
      hot/src/views/Home.vue
  15. 0 31179
      scene/package-lock.json
  16. 3 2
      scene/package.json
  17. 2 1
      scene/public/index.html
  18. 7 0
      scene/public/static/css/animate.min.css
  19. 二进制
      scene/public/static/images/4dagePoint.png
  20. 二进制
      scene/public/static/images/4dagePoint2.png
  21. 二进制
      scene/public/static/images/4dagePoint21.png
  22. 二进制
      scene/public/static/images/4dagePoint22.png
  23. 二进制
      scene/public/static/images/4dagePoint33.png
  24. 二进制
      scene/public/static/images/icon-close.png
  25. 二进制
      scene/public/static/images/icon-close1.png
  26. 二进制
      scene/src/assets/image/Vector.png
  27. 二进制
      scene/src/assets/image/btn_L.png
  28. 二进制
      scene/src/assets/image/btn_S.png
  29. 二进制
      scene/src/assets/image/enter.png
  30. 二进制
      scene/src/assets/image/home/bg.png
  31. 二进制
      scene/src/assets/image/home/icon_enter.png
  32. 二进制
      scene/src/assets/image/icon-close.png
  33. 二进制
      scene/src/assets/image/icon/icon_detail_active.png
  34. 二进制
      scene/src/assets/image/icon/icon_detail_normal.png
  35. 二进制
      scene/src/assets/image/icon/icon_dollhouse_active.png
  36. 二进制
      scene/src/assets/image/icon/icon_dollhouse_normal.png
  37. 二进制
      scene/src/assets/image/icon/icon_floor_active.png
  38. 二进制
      scene/src/assets/image/icon/icon_floor_normal.png
  39. 二进制
      scene/src/assets/image/icon/icon_point_active.png
  40. 二进制
      scene/src/assets/image/icon/icon_point_normal.png
  41. 二进制
      scene/src/assets/image/icon/icon_screen_active.png
  42. 二进制
      scene/src/assets/image/icon/icon_screen_normal.png
  43. 二进制
      scene/src/assets/image/icon/tour-pause.png
  44. 二进制
      scene/src/assets/image/icon/tour-play.png
  45. 二进制
      scene/src/assets/image/icon_end.png
  46. 二进制
      scene/src/assets/image/icon_img.png
  47. 二进制
      scene/src/assets/image/icon_left.png
  48. 二进制
      scene/src/assets/image/icon_right.png
  49. 二进制
      scene/src/assets/image/icon_scale.png
  50. 二进制
      scene/src/assets/image/icon_search.png
  51. 二进制
      scene/src/assets/image/icon_video.png
  52. 二进制
      scene/src/assets/image/img_01.png
  53. 二进制
      scene/src/assets/image/img_cloud.png
  54. 二进制
      scene/src/assets/image/img_tip.png
  55. 二进制
      scene/src/assets/image/img_title.png
  56. 二进制
      scene/src/assets/image/line.png
  57. 二进制
      scene/src/assets/image/list-bg.png
  58. 二进制
      scene/src/assets/image/list.png
  59. 二进制
      scene/src/assets/image/tab.png
  60. 115 11
      scene/src/assets/style/myBase.css
  61. 15 8
      scene/src/components/welcome/index.vue
  62. 4 2
      scene/src/pages/Home.vue
  63. 157 0
      scene/src/views/gui/components/hotList copy.vue
  64. 104 40
      scene/src/views/gui/components/hotList.vue
  65. 3 3
      scene/src/views/gui/guide.vue
  66. 84 218
      scene/src/views/gui/menu.vue

文件差异内容过多而无法显示
+ 12714 - 9808
hot/package-lock.json


二进制
hot/src/assets/images/pc/btn_S.png


二进制
hot/src/assets/images/pc/icon_img.png


二进制
hot/src/assets/images/pc/icon_model.png


二进制
hot/src/assets/images/pc/icon_video.png


二进制
hot/src/assets/images/pc/img_cloud.png


二进制
hot/src/assets/images/pc/left.png


二进制
hot/src/assets/images/pc/left1.png


二进制
hot/src/assets/images/pc/line.png


二进制
hot/src/assets/images/pc/right.png


二进制
hot/src/assets/images/pc/right1.png


二进制
hot/src/assets/images/pc/tab-close.png


二进制
hot/src/assets/images/pc/tab.png


+ 172 - 153
hot/src/views/Home.vue

@@ -1,96 +1,35 @@
 <template>
   <div class="home">
     <div class="main">
+      <!-- 底部的tab -->
+      <div class="flooTabBox" v-if="flooTab.length > 1">
+        <div @click="myType = item.type" class="tabRow" :class="{ tabRowAc: myType === item.type }" v-for="item in flooTab" :key="item.id">
+          <img :src="require(`@/assets/images/pc/icon_${item.type}.png`)" alt="" />
+          {{ item.name }}
+          <span v-if="data[item.type] && data[item.type].length && data[item.type].length > 1">{{ item.type === myType ? myInd + 1 + "/" : null }}{{ data[item.type].length }}</span>
+        </div>
+      </div>
       <div class="mainCon" v-show="!oneTxt">
-        <audio
-          id="myAudio"
-          v-if="audio"
-          v-show="isOneAduio"
-          :src="urlToFitFu(audio)"
-          controls
-        ></audio>
+        <audio id="myAudio" v-if="audio" v-show="isOneAduio" :src="urlToFitFu(audio)" controls></audio>
         <!-- 音频图标 -->
-        <div
-          class="audioIcon"
-          v-if="audio && !isOneAduio"
-          @click="audioSta = !audioSta"
-          :title="audioSta ? '关闭音频' : '打开音频'"
-        >
-          <img
-            :src="
-              require(`@/assets/images/pc/audio${audioSta ? 'Ac' : ''}.png`)
-            "
-            alt=""
-          />
+        <div class="audioIcon" v-if="audio && !isOneAduio" @click="audioSta = !audioSta" :title="audioSta ? '关闭音频' : '打开音频'">
+          <img :src="require(`@/assets/images/pc/audio${audioSta ? 'Ac' : ''}.png`)" alt="" />
         </div>
 
         <!-- 如果只有一个模块 -->
-        <div
-          class="oneTabNum"
-          v-if="
-            flooTab.length === 1 &&
-            data[myType] &&
-            data[myType].length &&
-            data[myType].length > 1
-          "
-        >
-          {{ myInd + 1 }} / {{ data[myType].length }}
-        </div>
-
-        <!-- 底部的tab -->
-        <div class="flooTabBox" v-if="flooTab.length > 1">
-          <div
-            @click="myType = item.type"
-            class="tabRow"
-            :class="{ tabRowAc: myType === item.type }"
-            v-for="item in flooTab"
-            :key="item.id"
-          >
-            <img
-              :src="
-                require(`@/assets/images/pc/icon${item.id}${
-                  myType === item.type ? 'Ac' : ''
-                }.png`)
-              "
-              alt=""
-            />
-            {{ item.name }}
-            <span
-              v-if="
-                data[item.type] &&
-                data[item.type].length &&
-                data[item.type].length > 1
-              "
-              >{{ item.type === myType ? myInd + 1 + "/" : null
-              }}{{ data[item.type].length }}</span
-            >
-          </div>
-        </div>
+        <div class="oneTabNum" v-if="flooTab.length === 1 && data[myType] && data[myType].length && data[myType].length > 1">{{ myInd + 1 }} / {{ data[myType].length }}</div>
 
         <!-- 主要内容 -->
 
         <div class="contenBoxMain">
-          <div
-            class="contenBox"
-            :class="{ contenBoxAc: index === myInd }"
-            v-for="(item, index) in data[myType]"
-            :key="myType === 'video' ? item.url : item"
-          >
+          <div class="contenBox" :class="{ contenBoxAc: index === myInd }" v-for="(item, index) in data[myType]" :key="myType === 'video' ? item.url : item">
             <!-- 模型页面 -->
             <div class="modelBox" v-if="myType === 'model'">
-              <iframe
-                :src="urlToFitFu(item)"
-                frameborder="0"
-                v-if="index === myInd"
-              ></iframe>
+              <iframe :src="urlToFitFu(item)" frameborder="0" v-if="index === myInd"></iframe>
             </div>
             <!-- 视频页面 -->
             <div class="videoBox" v-else-if="myType === 'video'">
-              <video
-                controls
-                :src="urlToFitFu(item.url)"
-                v-if="index === myInd"
-              ></video>
+              <video controls :src="urlToFitFu(item.url)" v-if="index === myInd"></video>
             </div>
             <!-- 图片页面 -->
             <div class="imgBox" v-else-if="myType === 'img'">
@@ -100,12 +39,7 @@
             </div>
           </div>
           <!-- 左右箭头 -->
-          <div
-            @click="cutMyInd(-1, myInd === 0)"
-            class="leftJJ awccJJ"
-            :class="{ noClick: myInd === 0 }"
-            v-if="data[myType] && data[myType].length > 1"
-          ></div>
+          <div @click="cutMyInd(-1, myInd === 0)" class="leftJJ awccJJ" :class="{ noClick: myInd === 0 }" v-if="data[myType] && data[myType].length > 1"></div>
           <div
             @click="cutMyInd(1, myInd === data[myType].length - 1)"
             class="rightJJ awccJJ"
@@ -116,9 +50,12 @@
       </div>
 
       <!-- 下面的文字介绍 -->
-      <div class="flooTxt" :class="{ flooTxtOne: oneTxt }">
+
+      <div class="flooTxt" :class="{ flooTxtOne: oneTxt, hideText: hideText }">
+        <div class="close-btn" @click="hideText = !hideText">收起</div>
         <div class="flooTxtBox">
           <div class="myTitle">{{ myTitle }}</div>
+          <div class="line"></div>
           <!-- 视频的介绍 -->
           <div class="myTxt" v-if="myType === 'video' && videoTxt[myInd]">
             {{ videoTxt[myInd] }}
@@ -128,6 +65,7 @@
           </div>
           <div class="myTxt" v-html="myTxt"></div>
         </div>
+        <div class="pic"></div>
       </div>
     </div>
     <!-- 查看图片 -->
@@ -137,12 +75,12 @@
   </div>
 </template>
 
-
 <script>
 export default {
   name: "Home",
   data() {
     return {
+      hideText: false,
       m: this.$route.query.m,
       id: this.$route.query.id,
       // 音频地址
@@ -205,13 +143,13 @@ export default {
   methods: {
     // 本地化 url 适配
     urlToFitFu(url) {
-      return url
+      return url;
       // const resUrl = url;
       // if (url.includes("https://super.4dage.com")) {
       //   return url.replace("https://super.4dage.com", "");
       // } else if (url.includes("http://super.4dage.com")) {
       //   return url.replace("http://super.4dage.com", "");
-      // } else return resUrl;  
+      // } else return resUrl;
     },
 
     // 点击左右箭头
@@ -228,9 +166,10 @@ export default {
     async getData() {
       // https://www.4dmodel.com/
 
-      let url = `https://super.4dage.com/data/${   // 线上数据
+      let url = `https://super.4dage.com/data/${
+        // 线上数据
 
-      // let url = `/data/${
+        // let url = `/data/${
         //本地化部署
         this.id
       }/hot/js/data.js?time=${Math.random()}`;
@@ -240,12 +179,7 @@ export default {
       if (resData) {
         this.audio = resData.backgroundMusic;
         // 只有单独的音频上传
-        if (
-          resData.backgroundMusic &&
-          !resData.model &&
-          !resData.video &&
-          !resData.images
-        ) {
+        if (resData.backgroundMusic && !resData.model && !resData.video && !resData.images) {
           this.isOneAduio = true;
         }
         // 底部的tab
@@ -296,8 +230,10 @@ export default {
   }
   width: 100%;
   height: 100%;
-  background-color: rgba(255, 252, 247, 0.6);
-  backdrop-filter: blur(10px);
+  // background-color: rgba(255, 252, 247, 0.6);
+  // backdrop-filter: blur(10px);
+  background: linear-gradient(180deg, rgba(14, 13, 10, 0.6) 0%, rgba(44, 42, 36, 0.6) 100%);
+  backdrop-filter: blur(12.5px);
   position: relative;
   #myAudio {
     z-index: 11;
@@ -313,12 +249,53 @@ export default {
     margin: 0 auto;
     height: 100%;
     padding-top: 40px;
+    .flooTabBox {
+      z-index: 10;
+      position: absolute;
+      top: 30px;
+      left: 30px;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      .tabRow {
+        width: 100px;
+        height: 40px;
+        cursor: pointer;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        font-size: 12px;
+        opacity: 0.5;
+        color: #bbab92;
+        & > img {
+          margin-right: 6px;
+          width: 18px;
+        }
+      }
+      .tabRowAc {
+        background: url(../assets/images/pc/btn_S.png) no-repeat;
+        background-size: 100% 100%;
+        pointer-events: none;
+        color: #bbab92;
+        opacity: 1;
+      }
+    }
     .mainCon {
-      position: relative;
+      // position: relative;
+      // border-radius: 6px;
+      // overflow: hidden;
+      // width: 100%;
+      // height: calc(100% - 200px);
+
+      position: absolute;
       border-radius: 6px;
       overflow: hidden;
       width: 100%;
       height: calc(100% - 200px);
+      left: 50%;
+      top: 50%;
+      transform: translate(-50%, -50%);
       .audioIcon {
         z-index: 10;
         cursor: pointer;
@@ -334,33 +311,7 @@ export default {
         transform: translateX(-50%);
         font-size: 14px;
       }
-      .flooTabBox {
-        z-index: 10;
-        position: absolute;
-        bottom: 30px;
-        left: 50%;
-        transform: translateX(-50%);
-        display: flex;
-        .tabRow {
-          cursor: pointer;
-          display: flex;
-          align-items: center;
-          margin: 0 12px;
-          font-size: 12px;
-          background-color: #dedede;
-          padding: 0px 14px;
-          height: 36px;
-          border-radius: 18px;
-          & > img {
-            margin-right: 6px;
-          }
-        }
-        .tabRowAc {
-          background-color: #b90c0c;
-          pointer-events: none;
-          color: #d6b970;
-        }
-      }
+
       .contenBoxMain {
         position: relative;
         width: 100%;
@@ -390,8 +341,12 @@ export default {
         }
         .videoBox {
           padding: 100px 100px 120px;
+          display: flex;
+          align-items: center;
+          justify-content: center;
           video {
-            width: 100%;
+            // width: 100%;
+            width: auto;
             height: 100%;
           }
         }
@@ -439,42 +394,93 @@ export default {
       }
     }
     .flooTxt {
-      margin-top: 20px;
-      width: 100%;
-      height: 160px;
+      width: 566px;
+      height: 100%;
+      position: absolute;
+      right: 0;
+      top: 0;
+      padding: 71px 62px 30px 58px;
+      background: linear-gradient(138deg, rgba(33, 28, 21, 0.9) 27.8%, rgba(90, 78, 61, 0.9) 97.76%);
+      transition: transform 0.3s;
+      transform: translateX(0);
+      &.hideText {
+        transform: translateX(566px);
+        .close-btn {
+          background: url(../assets/images/pc/tab-close.png) no-repeat;
+        }
+      }
+      .close-btn {
+        width: 69px;
+        height: 156px;
+        background: url(../assets/images/pc/tab.png) no-repeat;
+        background-size: 100% 100%;
+        position: absolute;
+        top: 23px;
+        left: -64px;
+        writing-mode: vertical-rl; /* 文字从上到下,从右到左排列 */
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        color: #bbab92;
+        font-size: 20px;
+        cursor: pointer;
+      }
       .flooTxtBox {
         width: 100%;
         height: 100%;
-        overflow-y: auto;
+        // overflow-y: auto;
+        // overflow-x: hidden;
         .myTitle {
-          color: #b90c0c;
-          font-size: 22px;
-          font-weight: 700;
+          color: #ffecb0;
+          font-size: 36px;
+          font-weight: bold;
           margin-bottom: 10px;
         }
-        .myTxt {
-          font-size: 16px;
-          color: #333333;
-          line-height: 24px;
-        }
-        &::-webkit-scrollbar {
-          /*滚动条整体样式*/
-          width: 3px; /*高宽分别对应横竖滚动条的尺寸*/
-          height: 1px;
+        .line {
+          width: 448px;
+          height: 11px;
+          background: url(../assets/images/pc/line.png) no-repeat;
+          background-size: 100% 100%;
         }
-        &::-webkit-scrollbar-thumb {
-          /*滚动条里面小方块*/
-          border-radius: 10px;
-          -webkit-box-shadow: inset 0 0 5px transparent;
-          background: #b90c0c;
-        }
-        &::-webkit-scrollbar-track {
-          /*滚动条里面轨道*/
-          -webkit-box-shadow: inset 0 0 5px transparent;
-          border-radius: 10px;
-          background: transparent;
+        .myTxt {
+          font-size: 20px;
+          color: #ffffff;
+          line-height: 40px;
+          text-align: left;
+          margin-top: 40px;
+          padding-right: 30px;
+          padding-bottom: 10px;
+          overflow-y: auto;
+          overflow-x: hidden;
+          height: calc(100% - 101px);
+          &::-webkit-scrollbar {
+            /*滚动条整体样式*/
+            width: 3px; /*高宽分别对应横竖滚动条的尺寸*/
+            height: 1px;
+          }
+          &::-webkit-scrollbar-thumb {
+            /*滚动条里面小方块*/
+            border-radius: 10px;
+            -webkit-box-shadow: inset 0 0 5px transparent;
+            background: rgba(255, 255, 255, 0.2);
+          }
+          &::-webkit-scrollbar-track {
+            /*滚动条里面轨道*/
+            -webkit-box-shadow: inset 0 0 5px transparent;
+            border-radius: 10px;
+            background: transparent;
+          }
         }
       }
+      .pic {
+        position: absolute;
+        bottom: 0;
+        right: 0;
+        width: 448px;
+        height: 373px;
+        background: url(../assets/images/pc/img_cloud.png) no-repeat;
+        background-size: 100% 100%;
+      }
     }
     .flooTxtOne {
       height: 600px;
@@ -580,5 +586,18 @@ export default {
     }
   }
 }
+/* 进入的起点、离开的终点 */
+.slide-enter,
+.slide-leave-to {
+  transform: translateX(566px);
+}
+.slide-enter-active,
+.slide-leave-active {
+  transition: 0.5s linear;
+}
+/* 进入的终点、离开的起点 */
+.hello-enter-to,
+.slide-leave {
+  transform: translateX(0);
+}
 </style>
-

文件差异内容过多而无法显示
+ 0 - 31179
scene/package-lock.json


+ 3 - 2
scene/package.json

@@ -11,15 +11,16 @@
   },
   "dependencies": {
     "axios": "^0.27.2",
-    "html2canvas": "^1.4.1",
     "core-js": "^3.6.5",
     "element-ui": "^2.15.6",
+    "html2canvas": "^1.4.1",
     "install": "^0.13.0",
     "npm": "^8.10.0",
     "swiper": "^5.3.8",
     "v-viewer": "^1.6.4",
     "vue": "^2.6.11",
     "vue-awesome-swiper": "^4.1.1",
+    "vue-click-outside": "^1.1.0",
     "vue-router": "^3.2.0"
   },
   "devDependencies": {
@@ -34,4 +35,4 @@
     "less-loader": "^5.0.0",
     "vue-template-compiler": "^2.6.11"
   }
-}
+}

+ 2 - 1
scene/public/index.html

@@ -6,12 +6,13 @@
     <meta name="viewport"
         content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <title>湖南雷锋纪念馆</title>
+    <title>众生百态——故宫博物院藏历代人物画特展(第三期)</title>
     <meta name="description" content="四维时代">
     <meta property="og:title" content="四维时代">
     <meta property="og:description" content="四维时代">
     <meta property="og:image:type" content="image/jpg">
     <link rel="icon" type="image/png" sizes="32x32" href="./favicon.ico" class="keep">
+    <link rel="stylesheet" href="<%= BASE_URL %><%= VUE_APP_STATIC_DIR %>/css/animate.min.css" />
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/css/oldVer/main0.css" />
     <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/css/main.css?v=2.25" />
     <!-- <link rel="stylesheet" href="<%= VUE_APP_STATIC_DIR %>/CAD/cad.css?v=2.25"/> -->

文件差异内容过多而无法显示
+ 7 - 0
scene/public/static/css/animate.min.css


二进制
scene/public/static/images/4dagePoint.png


二进制
scene/public/static/images/4dagePoint2.png


二进制
scene/public/static/images/4dagePoint21.png


二进制
scene/public/static/images/4dagePoint22.png


二进制
scene/public/static/images/4dagePoint33.png


二进制
scene/public/static/images/icon-close.png


二进制
scene/public/static/images/icon-close1.png


二进制
scene/src/assets/image/Vector.png


二进制
scene/src/assets/image/btn_L.png


二进制
scene/src/assets/image/btn_S.png


二进制
scene/src/assets/image/enter.png


二进制
scene/src/assets/image/home/bg.png


二进制
scene/src/assets/image/home/icon_enter.png


二进制
scene/src/assets/image/icon-close.png


二进制
scene/src/assets/image/icon/icon_detail_active.png


二进制
scene/src/assets/image/icon/icon_detail_normal.png


二进制
scene/src/assets/image/icon/icon_dollhouse_active.png


二进制
scene/src/assets/image/icon/icon_dollhouse_normal.png


二进制
scene/src/assets/image/icon/icon_floor_active.png


二进制
scene/src/assets/image/icon/icon_floor_normal.png


二进制
scene/src/assets/image/icon/icon_point_active.png


二进制
scene/src/assets/image/icon/icon_point_normal.png


二进制
scene/src/assets/image/icon/icon_screen_active.png


二进制
scene/src/assets/image/icon/icon_screen_normal.png


二进制
scene/src/assets/image/icon/tour-pause.png


二进制
scene/src/assets/image/icon/tour-play.png


二进制
scene/src/assets/image/icon_end.png


二进制
scene/src/assets/image/icon_img.png


二进制
scene/src/assets/image/icon_left.png


二进制
scene/src/assets/image/icon_right.png


二进制
scene/src/assets/image/icon_scale.png


二进制
scene/src/assets/image/icon_search.png


二进制
scene/src/assets/image/icon_video.png


二进制
scene/src/assets/image/img_01.png


二进制
scene/src/assets/image/img_cloud.png


二进制
scene/src/assets/image/img_tip.png


二进制
scene/src/assets/image/img_title.png


二进制
scene/src/assets/image/line.png


二进制
scene/src/assets/image/list-bg.png


二进制
scene/src/assets/image/list.png


二进制
scene/src/assets/image/tab.png


+ 115 - 11
scene/src/assets/style/myBase.css

@@ -13,24 +13,64 @@
 #drawer.open.noScroll.playing {
   height: 137px;
 }
+
 #thumb-container .thumbImg .overlay {
   color: #fff;
+  position: absolute;
+  top: 3px;
+  left: 3px;
+  width: calc(100% - 6px);
+  height: calc(100% - 6px);
+  background: rgba(0, 0, 0, 0.5);
+  transform: none;
+  /* display: flex;
+  align-items: center;
+  justify-content: center; */
+  box-sizing: border-box;
+  padding: 30px 0 0;
 }
 #thumb-container .active .overlay {
-  color: #D6B970;
+  color: #fff;
+  /* align-items: flex-end; */
+  top: 1.5px;
+  left: 1.5px;
+  width: calc(100% - 3px);
+  height: calc(100% - 3px);
+  box-sizing: border-box;
+  padding: 60px 0 0;
+  background: transparent;
+  text-shadow: 2px 2px 2px #000000;
 }
 #thumb-container .active > img {
-  border: 3px solid #D6B970;
-}
-#drawer {
-  background-color: rgba(185, 12, 12, 0.8);
-}
+  border: 1.5px solid rgba(255, 225, 168, 1);
+}
+.frame .slidee li img {
+  /* border: 1.5px solid transparent; */
+  /* margin-left: -1.5px; */
+}
+#drawer.open {
+  background-color: rgba(33, 28, 21, 0.8);
+  border-top: 1px solid;
+  border-image: linear-gradient(to right, rgba(252, 233, 172, 0.2) 0%, rgba(252, 233, 172, 1) 50%, rgba(252, 233, 172, 0.2) 100%) 1;
+}
+#drawer.open::after {
+  content: "";
+  position: absolute;
+  width: 11px;
+  height: 11px;
+  background: url(../image/Vector.png) no-repeat;
+  background-size: 100%;
+  left: 50%;
+  top: -5.5px;
+  transform: translateX(-50%);
+}
+
 #drawer .darkGlass {
   background-color: transparent;
 }
 #progressBar .step.active::before,
 #progressBar .step.recent::before {
-  background-color: #D6B970;
+  background-color: #d6b970;
 }
 #popup {
   background: none;
@@ -39,13 +79,77 @@
   overflow: hidden;
 }
 #cad path {
-  stroke-width: 0.5;
-  fill: rgba(185, 12, 12, 0.8);
+  stroke-width: 2;
+  fill: rgba(200, 185, 146, 0.8);
   stroke: #d1b198;
 }
+.cad {
+  /* display: none; */
+  background: rgba(56, 56, 56, 0.56) !important;
+  border: none !important;
+  border-left: 1px solid !important;
+  border-right: 1px solid !important;
+  border-image: linear-gradient(to bottom, rgba(252, 233, 172, 0.2) 0%, rgba(252, 233, 172, 1) 50%, rgba(252, 233, 172, 0.2) 100%) 1 !important;
+  border-radius: 0 !important;
+}
+
+.cad::before {
+  content: "";
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: -1;
+
+  /* 上边框渐变 */
+  border-top: 1px solid;
+  border-image: linear-gradient(to right, rgba(252, 233, 172, 0.2) 0%, rgba(252, 233, 172, 1) 50%, rgba(252, 233, 172, 0.2) 100%) 1 !important;
+  /* border-image-slice: 10 !important; */
+}
+
+.cad::after {
+  content: "";
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: -1;
+
+  /* 下边框渐变 */
+  border-bottom: 1px solid;
+  border-image: linear-gradient(to right, rgba(252, 233, 172, 0.2) 0%, rgba(252, 233, 172, 1) 50%, rgba(252, 233, 172, 0.2) 100%) 1 !important;
+  border-image-slice: 10;
+}
+
+.cad::before,
+.cad::after {
+  /* 水平方向上的平铺效果 */
+  /* background-size: 100% 10px; */
+}
+
+.cad::before {
+  /* 左边框渐变 */
+  /* border-left: 1px solid;
+  border-image: linear-gradient(to right, rgba(252, 233, 172, 0.2) 0%, rgba(252, 233, 172, 1) 50%, rgba(252, 233, 172, 0.2) 100%) 1 !important;;
+  border-image-slice: 10; */
+}
+
+.cad::after {
+  /* 右边框渐变 */
+  /* border-right: 1px solid;
+  border-image: linear-gradient(to bottom, #ff33cc 0%, #ffcc33 100%) 1;
+  border-image-slice: 10; */
+}
+
 #ele1 circle {
-  fill: rgba(185, 12, 12, 0.8);
-  r: 1;
+  fill: rgba(200, 185, 146, 0.8);
+  stroke-width: 3;
+  r: 5.5;
+}
+#ele1 path {
+
 }
 #share-modal {
   display: none !important;

+ 15 - 8
scene/src/components/welcome/index.vue

@@ -1,14 +1,15 @@
 <template>
   <div class="welcome">
     <div class="mobileBg" v-if="isMobile"></div>
-    <iframe
+    <!-- <iframe
       v-else
       src="https://zzbbh.4dage.com/SWKK/show.html?id=WK1717474784264114176&vr=fd720_Y8cO1d7Fu&lang=zh"
       frameborder="0"
-    ></iframe>
+    ></iframe> -->
+    <div v-else class="home-bg"></div>
     <div class="btn" @click.stop="$emit('close')">
-      <img src="../../assets/img/home/homeBtn.png" alt="" />
-      <p>360环顾</p>
+      <img src="../../assets/image/home/icon_enter.png" alt="" />
+      <!-- <p>360环顾</p> -->
     </div>
   </div>
 </template>
@@ -39,16 +40,22 @@ export default {
     width: 100%;
     height: 100%;
   }
+  .home-bg {
+    width: 100%;
+    height: 100%;
+    background-image: url("../../assets/image/home/bg.png");
+    background-size: 100% 100%;
+  }
 
   .btn {
     position: absolute;
     z-index: 10;
-    bottom: 10%;
+    bottom: 5%;
     left: 50%;
     transform: translateX(-50%);
     cursor: pointer;
     & > img {
-      width: 246px;
+      width: 162px;
     }
     & > p {
       color: #d6b970;
@@ -68,7 +75,7 @@ export default {
   .mobileBg {
     width: 100%;
     height: 100%;
-    background-image: url('../../assets/img/mobileBg.jpg');
+    background-image: url("../../assets/img/mobileBg.jpg");
     background-size: 100% 100%;
   }
 
@@ -85,4 +92,4 @@ export default {
     }
   }
 }
-</style>
+</style>

+ 4 - 2
scene/src/pages/Home.vue

@@ -19,7 +19,7 @@
       <!-- 三维 标签 -->
       <div class="widgets-doll-labels"></div>
 
-      <div id="gui" style="display: none">
+      <div id="gui" v-show="!loading">
         <!-- 退出VR模式按钮 -->
         <div id="vrOff">
           <img id="vrOffImg" src="images/vrOffImg.png" alt="" />
@@ -32,7 +32,7 @@
         <v-title />
 
         <!-- 底部菜单 -->
-        <v-menu :hideTools="hideTools" @toHome="showWelcome = true" />
+        <v-menu  :hideTools="hideTools" @toHome="showWelcome = true" />
 
         <!-- 导览 -->
         <v-guide />
@@ -158,11 +158,13 @@ export default {
       window.evt = document.createEvent("HTMLEvents");
       window.evt.initEvent("loadfinish", false, false);
       window.addEventListener("loadfinish", () => {
+        console.error('loadfinish')
         this.loading = false;
         // document.title = "珠海高新区中共党史学习教育园地线上展厅";
         this.getHotSpotList();
         window.player.on("openTips", () => {
           this.$showTips();
+       
         });
 
         window.player.on("openHotspot", (data) => {

+ 157 - 0
scene/src/views/gui/components/hotList copy.vue

@@ -0,0 +1,157 @@
+<template>
+  <div class="hotList">
+    <div class="title">
+      <div class="titleLL">热点列表</div>
+      <div class="titleRR" @click="$emit('close')">
+        <img src="../../../assets/img/close.png" alt="" />
+      </div>
+    </div>
+    <div class="main">
+      <div class="txtNone" v-if="data.length === 0">暂无热点</div>
+      <div class="txt" v-else>
+        <span
+          :class="{ active: hotInd === index }"
+          @click="openHot(item, index)"
+          v-for="(item, index) in data"
+          :key="index"
+          >{{ item.info.title ? item.info.title : "热点" }}</span
+        >
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  data() {
+    return {
+      data: [],
+      hotInd: null,
+    };
+  },
+  computed: {},
+  watch: {},
+  methods: {
+    openHot(e, index) {
+      // 停止自动导览
+      window.player.director.stopTour();
+      setTimeout(() => {
+        e && e.examine(window.player, true);
+        this.hotInd = index;
+      }, 200);
+    },
+  },
+  created() {
+    this.data = window.myHotList || [];
+  },
+  mounted() {},
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+.hotList {
+  position: absolute;
+  width: 940px;
+  height: 640px;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  background-image: url("../../../assets/img/open/bg-list.png");
+  background-size: 100% 100%;
+  padding: 60px 80px;
+  .title {
+    height: 60px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    .titleLL {
+      font-size: 24px;
+      color: #d6b970;
+    }
+    .titleRR {
+      cursor: pointer;
+    }
+  }
+  .main {
+    margin-top: 20px;
+    width: calc(100% - 14px);
+    height: calc(100% - 100px);
+    overflow-y: auto;
+    .txtNone {
+      height: 100%;
+      color: #d6b970;
+      font-size: 20px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+    .txt {
+      width: calc(100% - 10px);
+      color: #fff;
+      font-size: 16px;
+      & > span {
+        border-top: 1px solid #f0e2c0;
+        padding: 15px 0;
+        cursor: pointer;
+        display: block;
+        width: 100%;
+        &:last-child {
+          margin-bottom: 60px;
+          border-bottom: 1px solid #f0e2c0;
+        }
+        &:hover {
+          color: #d6b970;
+        }
+      }
+      .active {
+        color: #d6b970;
+      }
+    }
+    &::-webkit-scrollbar-thumb {
+      outline: 2px solid #d6b970;
+    }
+    &::-webkit-scrollbar {
+      width: 2px;
+    }
+  }
+}
+@media screen and (max-width: 1000px) {
+  .hotList {
+    max-width: 500px;
+    width: 94%;
+    height: 90%;
+    padding: 30px 10px 30px 30px;
+    .title {
+      .titleLL {
+        font-size: 18px;
+      }
+      .titleRR {
+        position: absolute;
+        right: -5px;
+        top: 5px;
+      }
+    }
+    .main {
+      margin-top: 10px;
+      .txt {
+        font-size: 14px;
+        & > span {
+          &:hover {
+            color: #fff;
+          }
+        }
+        .active {
+          color: #d6b970 !important;
+        }
+      }
+    }
+  }
+}
+</style>

+ 104 - 40
scene/src/views/gui/components/hotList.vue

@@ -1,35 +1,39 @@
 <template>
-  <div class="hotList">
+  <div class="hotList" v-click-outside="handleClickOutside">
     <div class="title">
-      <div class="titleLL">热点列表</div>
-      <div class="titleRR" @click="$emit('close')">
+      <!-- <div class="titleLL">热点列表</div> -->
+      <!-- <div class="titleRR" @click="$emit('close')">
         <img src="../../../assets/img/close.png" alt="" />
+      </div> -->
+      <div class="pic-one"></div>
+      <div class="pic-two"></div>
+      <div class="search-box">
+        <input @input="handlerSearch" v-model="searchKey" type="text" placeholder="请输入关键词..." />
+        <div class="search-icon"></div>
       </div>
     </div>
+
     <div class="main">
       <div class="txtNone" v-if="data.length === 0">暂无热点</div>
       <div class="txt" v-else>
-        <span
-          :class="{ active: hotInd === index }"
-          @click="openHot(item, index)"
-          v-for="(item, index) in data"
-          :key="index"
-          >{{ item.info.title ? item.info.title : "热点" }}</span
-        >
+        <span :class="{ active: hotInd === index }" @click="openHot(item, index)" v-for="(item, index) in data" :key="index">{{ item.info.title ? item.info.title : "热点" }}</span>
       </div>
     </div>
   </div>
 </template>
 
 <script>
+import ClickOutside from "vue-click-outside";
 export default {
   components: {},
   data() {
     return {
       data: [],
       hotInd: null,
+      searchKey: "",
     };
   },
+  directives: { ClickOutside },
   computed: {},
   watch: {},
   methods: {
@@ -41,9 +45,25 @@ export default {
         this.hotInd = index;
       }, 200);
     },
+    handlerSearch() {
+      if (this.searchKey != "") {
+        this.data = window.myHotList.filter((item) => {
+          return item.info.title && item.info.title.toLowerCase().indexOf(this.searchKey.toLowerCase()) != -1;
+        });
+      } else {
+        // console.error('空')
+        this.data = window.myHotList || [];
+      }
+    },
+    handleClickOutside() {
+      console.log("handleClickOutside");
+      this.$emit("close");
+    },
   },
   created() {
-    this.data = window.myHotList || [];
+    this.$nextTick(() => {
+      this.data = window.myHotList || [];
+    });
   },
   mounted() {},
   beforeCreate() {}, //生命周期 - 创建之前
@@ -55,38 +75,79 @@ export default {
   activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
 };
 </script>
-<style lang='less' scoped>
+<style lang="less" scoped>
 .hotList {
-  position: absolute;
-  width: 940px;
-  height: 640px;
-  top: 50%;
-  left: 50%;
-  transform: translate(-50%, -50%);
-  background-image: url("../../../assets/img/open/bg-list.png");
+  position: fixed;
+  // width: 940px;
+  // height: 640px;
+  top: 0;
+  right: 0;
+  width: 434px;
+  height: 100vh;
+  background: url(../../../assets/image/list-bg.png) no-repeat;
   background-size: 100% 100%;
-  padding: 60px 80px;
   .title {
-    height: 60px;
+    height: 318px;
+    width: 100%;
+    position: relative;
+    .pic-one {
+      width: 331px;
+      height: 220px;
+      background: url(../../../assets/image/img_01.png) no-repeat;
+      background-size: 100% 100%;
+      position: absolute;
+      right: 0;
+      top: 0;
+    }
+    .pic-two {
+      width: 158px;
+      height: 248px;
+      background: url(../../../assets/image/img_title.png) no-repeat;
+      background-size: 100% 100%;
+      position: absolute;
+      left: -68px;
+      top: 48px;
+    }
+  }
+  .search-box {
+    position: absolute;
+    bottom: 0;
+    right: 60px;
+    width: 244px;
+    border-bottom: 1px solid #bbab92;
     display: flex;
     align-items: center;
-    justify-content: space-between;
-    .titleLL {
-      font-size: 24px;
-      color: #d6b970;
-    }
-    .titleRR {
+    .search-icon {
+      width: 21px;
+      height: 21px;
+      background: url(../../../assets/image/icon_search.png) no-repeat;
+      background-size: 100% 100%;
       cursor: pointer;
     }
+    input {
+      flex: 1;
+      color: #fff;
+      background: transparent;
+      outline: none;
+      border: none;
+      padding: 10px;
+      &::placeholder {
+        color: rgba(187, 171, 146, 0.5) !important;
+      }
+    }
   }
   .main {
-    margin-top: 20px;
-    width: calc(100% - 14px);
-    height: calc(100% - 100px);
+    // margin-top: 20px;
+    width: 100%;
+    padding: 10px 60px 0 78px;
+    height: calc(100% - 318px);
     overflow-y: auto;
+    position: absolute;
+    bottom: 0;
+    right: 0;
     .txtNone {
       height: 100%;
-      color: #d6b970;
+      color: rgba(255, 224, 168, 1);
       font-size: 20px;
       display: flex;
       align-items: center;
@@ -94,28 +155,31 @@ export default {
     }
     .txt {
       width: calc(100% - 10px);
-      color: #fff;
+      color: rgba(255, 255, 255, 0.8);
       font-size: 16px;
       & > span {
-        border-top: 1px solid #f0e2c0;
-        padding: 15px 0;
+        // border-top: 1px solid #f0e2c0;
+        padding: 10px 0;
         cursor: pointer;
         display: block;
         width: 100%;
+        font-family: Source Han Sans CN, Source Han Sans CN;
+        font-weight: 400;
+        font-size: 16px;
         &:last-child {
-          margin-bottom: 60px;
-          border-bottom: 1px solid #f0e2c0;
+          margin-bottom: 30px;
+          // border-bottom: 1px solid #f0e2c0;
         }
         &:hover {
-          color: #d6b970;
+          color: rgba(255, 224, 168, 1);
         }
       }
       .active {
-        color: #d6b970;
+        color: rgba(255, 224, 168, 1);
       }
     }
     &::-webkit-scrollbar-thumb {
-      outline: 2px solid #d6b970;
+      outline: 2px solid rgba(255, 224, 168, 1);
     }
     &::-webkit-scrollbar {
       width: 2px;
@@ -154,4 +218,4 @@ export default {
     }
   }
 }
-</style>
+</style>

+ 3 - 3
scene/src/views/gui/guide.vue

@@ -1,12 +1,12 @@
 <template>
   <div id="drawer-container">
-    <div id="drawer" class="fullWidth">
+    <div id="drawer" class="fullWidth" >
       <div class="frame-container darkGlass">
         <div id="scrollFrame" class="frame">
           <ul id="thumb-container" class="slidee"></ul>
         </div>
-        <div class="scrollbar" id="scroller">
-          <div class="handle"></div>
+        <div class="scrollbar" id="scroller" style="height: 5px;">
+          <div class="handle" style="background: rgba(187, 171, 146, 0.50);"></div>
         </div>
       </div>
     </div>

+ 84 - 218
scene/src/views/gui/menu.vue

@@ -4,43 +4,23 @@
       <div id="view-controllers"></div>
     </div>
     <div class="pinBottom left">
-      <div v-if="isMobile" id='myClickBox' style="">
+      <div v-if="isMobile" id="myClickBox" style="">
         <div id="go" />
         <div id="back" />
       </div>
 
       <div>
         <div class="viewContainer">
-          <div
-            id="previous"
-            class="previous desktop-only ui-icon"
-            style="display: none"
-          >
+          <div id="previous" class="previous desktop-only ui-icon" style="display: none">
             <a>
-              <img
-                rel="tooltip"
-                title=""
-                :src="require('@/assets/images/play.png')"
-                width="24"
-                height="24"
-                data-original-title="播放"
-              />
+              <img rel="tooltip" title="" :src="require('@/assets/images/play.png')" width="24" height="24" data-original-title="播放" />
             </a>
           </div>
-          <div
-            id="play"
-            class="ui-icon"
-            rel="tooltip"
-            data-original-title="播放"
-          >
+          <div id="play" class="ui-icon" rel="tooltip" data-original-title="播放">
             <!-- 鼠标移入的显示 -->
             <div class="hoverTit">自动导览</div>
             <a>
-              <img
-                :src="require('@/assets/images/icon/play.png')"
-                width="24"
-                height="24"
-              />
+              <img :src="require('@/assets/image/icon/tour-play.png')" width="24" height="24" />
             </a>
           </div>
           <div id="pause" class="ui-icon" style="display: none">
@@ -48,222 +28,62 @@
             <div class="hoverTit">自动导览</div>
 
             <a>
-              <img
-                rel="tooltip"
-                title=""
-                :src="require('@/assets/images/icon/pause.png')"
-                width="24"
-                height="24"
-                data-original-title="暂停"
-              />
+              <img rel="tooltip" title="" :src="require('@/assets/image/icon/tour-pause.png')" width="24" height="24" data-original-title="暂停" />
             </a>
           </div>
-          <div
-            id="next"
-            class="next desktop-only ui-icon wide"
-            style="display: none"
-          >
+          <div id="next" class="next desktop-only ui-icon wide" style="display: none">
             <a>
-              <i
-                rel="tooltip"
-                title=""
-                class="icon icon-dpad-right"
-                data-original-title="下一个"
-              ></i>
+              <i rel="tooltip" title="" class="icon icon-dpad-right" data-original-title="下一个"></i>
             </a>
           </div>
           <div id="gui-modes-map" class="ui-icon double active">
-            <div
-              data-original-title="导览"
-              @click="isGuide = !isGuide"
-              id="pullTab"
-              rel="tooltip"
-              title="场景导览"
-            >
+            <div data-original-title="导览" @click="isGuide = !isGuide" id="pullTab" rel="tooltip" title="场景导览">
               <!-- 鼠标移入的显示 -->
               <div class="hoverTit">导览列表</div>
 
-              <img
-                title=""
-                class="icon icon-inside"
-                :src="
-                  require(`@/assets/images/icon/auto${
-                    !isGuide ? '_active' : ''
-                  }.png`)
-                "
-              />
+              <img title="" class="icon icon-inside" :src="require(`@/assets/image/icon/icon_point${!isGuide ? '_active' : '_normal'}.png`)" />
             </div>
 
-            <div
-              data-original-title="全景漫游"
-              id="gui-modes-inside"
-              rel="tooltip"
-            >
+            <!-- 热点列表 -->
+            <div v-show="!hideTools" id="myHotList" @click="openInd = 1">
               <!-- 鼠标移入的显示 -->
-              <div class="hoverTit">全景漫游</div>
-
-              <img
-                class="icon icon-inside"
-                :src="require('@/assets/images/icon/inside.png')"
-              />
-              <img
-                class="icon icon-inside active"
-                :src="require('@/assets/images/icon/inside_active.png')"
-              />
+              <div class="hoverTit">热点列表</div>
+              <img :src="require(`@/assets/image/icon/icon_detail${openInd == 1 ? '_active' : '_normal'}.png`)" alt="" />
             </div>
-            <div
-              title="迷你漫游"
-              data-original-title="迷你模型"
-              id="gui-modes-dollhouse"
-              rel="tooltip"
-            >
+            <div title="迷你漫游" data-original-title="迷你模型" id="gui-modes-dollhouse" rel="tooltip">
               <!-- 鼠标移入的显示 -->
               <div class="hoverTit">三维视觉</div>
-              <img
-                class="icon icon-inside"
-                :src="require('@/assets/images/icon/dollhouse.png')"
-              />
-              <img
-                class="icon icon-inside active"
-                :src="require('@/assets/images/icon/dollhouse_active.png')"
-              />
+              <img class="icon icon-inside" :src="require('@/assets/image/icon/icon_dollhouse_normal.png')" />
+              <img class="icon icon-inside active" :src="require('@/assets/image/icon/icon_dollhouse_active.png')" />
             </div>
-            <div
-              data-original-title="俯视图"
-              id="gui-modes-floorplan"
-              rel="tooltip"
-              title="顶部俯视"
-            >
+            <div data-original-title="俯视图" id="gui-modes-floorplan" rel="tooltip" title="顶部俯视">
               <!-- 鼠标移入的显示 -->
               <div class="hoverTit">平面视觉</div>
-              <img
-                class="icon icon-inside"
-                :src="require('@/assets/images/icon/floor.png')"
-              />
-              <img
-                class="active icon icon-inside active"
-                :src="require('@/assets/images/icon/floor_active.png')"
-              />
+              <img class="icon icon-inside" :src="require('@/assets/image/icon/icon_floor_normal.png')" />
+              <img class="active icon icon-inside active" :src="require('@/assets/image/icon/icon_floor_active.png')" />
             </div>
-
-            <!-- 热点列表 -->
-            <div v-show="!hideTools" id="myHotList" @click="openInd = 1">
+            <div @click="onFullScreen" rel="tooltip" title="顶部俯视" id="gui-modes-floorplan" data-original-title="俯视图">
               <!-- 鼠标移入的显示 -->
-              <div class="hoverTit">热点列表</div>
-              <img src="../../assets/img/hot.png" alt="" />
-            </div>
-
-            <div
-              data-original-title="VR"
-              id="vr"
-              rel="tooltip"
-              title=""
-              style="display: none"
-            >
-              <img
-                class="icon icon-inside"
-                :src="require('@/assets/images/VR.png')"
-              />
-            </div>
-            <div
-              data-original-title="消除外壳"
-              id="gui-remove-face"
-              rel="tooltip"
-              title=""
-              style="display: none; float: left"
-            >
-              <img
-                class="icon icon-inside"
-                :src="require('@/assets/images/face.jpg')"
-              />
+              <div class="hoverTit" v-if="!isFullscreen">全屏</div>
+              <div class="hoverTit" v-else>退出全屏</div>
+              <img class="icon icon-inside" :src="require(`@/assets/image/icon/icon_screen${isFullscreen ? '_active' : '_normal'}.png`)" />
             </div>
           </div>
         </div>
       </div>
     </div>
 
-    <div v-show="!hideTools" class="pinBottom right hideTarget">
-      <div class="rightViewContainer clearfix">
-        <div class="gui-floor">
-          <div class="gui-floor-title"></div>
-          <div class="gui-floor-icon">
-            <span class="gui-floor-number"></span>
-          </div>
-          <div class="container"></div>
-        </div>
-
-        <div id="vr" class="ui-icon wide hidden" style="display: none">
-          <a>
-            <i
-              rel="tooltip"
-              title="{[{ VIEW_IN_VR }]}"
-              class="icon icon-webvr"
-            ></i>
-          </a>
-        </div>
-        <div id="sharing" class="ui-icon wide hidden" style="display: none">
-          <a>
-            <i
-              rel="tooltip"
-              title="{[{ SOCIAL_SHARING }]}"
-              class="icon icon-share"
-            ></i>
-          </a>
-        </div>
-        <div class="pull-right terms terms2">
-          <a>{[{ TERMS }]}</a>
-        </div>
-
-        <!-- 回到pc页面(首页) -->
-        <div class="toHomeBox" @click="toHomeFu">
-          <!-- 鼠标移入的显示 -->
-          <div class="hoverTit">回到首页</div>
-          <img src="../../assets/img/toHome.png" alt="" />
-        </div>
+    <div v-show="!hideTools" class="pinBottom right hideTarget"></div>
 
-        <!-- vr -->
-        <div class="toHomeBox" @click="openVR">
-          <!-- 鼠标移入的显示 -->
-          <div class="hoverTit">VR</div>
-          <img src="../../assets/img/openVR.png" alt="" />
-        </div>
-
-        <!-- 音乐 -->
-        <div id="volume" class="ui-icon bgandshare wide">
-          <!-- 鼠标移入的显示 -->
-          <div class="hoverTit">{{ musicState ? "关闭" : "打开" }}音乐</div>
-          <div>
-            <img
-              id="openMusic"
-              style="display: block"
-              @click="switchBGM(true)"
-              src="../../assets/img/musicAc.png"
-              alt=""
-            />
-            <img
-              id="closeMusic"
-              style="display: none"
-              @click="switchBGM(false)"
-              src="../../assets/img/music.png"
-              alt=""
-            />
-          </div>
-        </div>
-        <!-- 分享 -->
-        <div class="toHomeBox" @click="openInd = 2">
-          <!-- 鼠标移入的显示 -->
-          <div class="hoverTit">分享</div>
-          <img src="../../assets/img/share.png" alt="" />
-        </div>
-      </div>
-    </div>
-
-    <div class="openBox" :class="{ openBoxAc: openInd }">
+    <!-- <div class="openBox" :class="{ openBoxAc: openInd }">
       <HotList v-if="openInd === 1" @close="openInd = 0" />
       <Share v-show="openInd === 2" @close="openInd = 0" :openInd="openInd" />
-    </div>
+    </div> -->
     <!-- 手动触发导览 -->
 
+    <transition name="slide" appear>
+      <HotList v-if="openInd === 1" @close="openInd = 0" />
+    </transition>
   </div>
 </template>
 
@@ -274,7 +94,7 @@ import Share from "./components/share.vue";
 export default {
   components: { HotList, Share },
   props: {
-    hideTools: Boolean
+    hideTools: Boolean,
   },
   data() {
     return {
@@ -282,12 +102,45 @@ export default {
       musicState: false,
       // vr---热点列表---分享
       openInd: 0,
+      isFullscreen: false,
     };
   },
   watch: {},
   computed: {},
-  mounted() {},
+  mounted() {
+    let events = ["fullscreenchange", "webkitfullscreenchange", "mozfullscreenchange", "MSFullscreenChange"];
+    events.forEach((item, index) => {
+      window.addEventListener(item, () => {
+        this.isFullscreen = !this.isFullscreen;
+      });
+    });
+  },
   methods: {
+    onFullScreen() {
+      let element = document.documentElement;
+      if (this.isFullscreen) {
+        if (document.exitFullscreen) {
+          document.exitFullscreen();
+        } else if (document.webkitCancelFullScreen) {
+          document.webkitCancelFullScreen();
+        } else if (document.mozCancelFullScreen) {
+          document.mozCancelFullScreen();
+        } else if (document.msExitFullscreen) {
+          document.msExitFullscreen();
+        }
+      } else {
+        if (element.requestFullscreen) {
+          element.requestFullscreen();
+        } else if (element.webkitRequestFullScreen) {
+          element.webkitRequestFullScreen();
+        } else if (element.mozRequestFullScreen) {
+          element.mozRequestFullScreen();
+        } else if (element.msRequestFullscreen) {
+          element.msRequestFullscreen();
+        }
+      }
+      // 改变当前全屏状态
+    },
     switchBGM(flag) {
       this.musicState = flag;
       if (flag) {
@@ -296,8 +149,7 @@ export default {
         document.querySelector("#closeMusic").style.display = "block";
 
         // 手动停止自动导览
-        window.player.director.stopTour()
-
+        window.player.director.stopTour();
       } else {
         window.manage.switchBgmState(false);
         document.querySelector("#openMusic").style.display = "block";
@@ -350,7 +202,7 @@ export default {
   height: 37px;
   line-height: 30px;
   text-align: center;
-  background: url("../../assets/img/hoverTit.png");
+  background: url("../../assets/image/img_tip.png");
   background-size: 100% 100%;
   font-size: 14px;
   color: #fff;
@@ -538,7 +390,7 @@ export default {
     }
   }
 }
-#myClickBox{
+#myClickBox {
   display: flex;
   flex-direction: column;
   position: fixed;
@@ -548,8 +400,8 @@ export default {
   width: 146px;
   height: 146px;
   transform: translateX(-50%);
-  background: url('../../assets/img/m_btn.png') no-repeat center / contain;
-  transition: .2s bottom linear;
+  background: url("../../assets/img/m_btn.png") no-repeat center / contain;
+  transition: 0.2s bottom linear;
 
   > div {
     flex: 1;
@@ -558,4 +410,18 @@ export default {
 .pinBottom.open #myClickBox {
   bottom: calc(118px + 20px);
 }
+/* 进入的起点、离开的终点 */
+.slide-enter,
+.slide-leave-to {
+  transform: translateX(100%);
+}
+.slide-enter-active,
+.slide-leave-active {
+  transition: 0.5s linear;
+}
+/* 进入的终点、离开的起点 */
+.hello-enter-to,
+.slide-leave {
+  transform: translateX(0);
+}
 </style>