jinx недель назад: 2
Родитель
Сommit
8814819cf7

+ 37 - 37
scene/public/static/data/data.json

@@ -15,7 +15,7 @@
       },
       {
         "name": "午门",
-        "num": "",
+        "num": "KJ-2RrIplEXSsg",
         "img": "2.jpg",
         "content": {
           "title": "",
@@ -25,7 +25,7 @@
       },
       {
         "name": "东雁翅楼",
-        "num": "",
+        "num": "KJ-bCrCE1lkby9",
         "img": "3.jpg",
         "content": {
           "title": "",
@@ -41,7 +41,7 @@
     "sceneList": [
       {
         "name": "钟表馆",
-        "num": "",
+        "num": "KJ-VdxHkdSIXHx",
         "img": "4.jpg",
         "content": {
           "title": "",
@@ -67,7 +67,7 @@
       },
       {
         "name": "午门",
-        "num": "",
+        "num": "KJ-Mb2d80mpraf",
         "img": "6.jpg",
         "content": {
           "title": "",
@@ -77,7 +77,7 @@
       },
       {
         "name": "东雁翅楼",
-        "num": "",
+        "num": "KJ-pCBliwYZvmJ",
         "img": "7.jpg",
         "content": {
           "title": "",
@@ -103,7 +103,7 @@
       },
       {
         "name": "午门",
-        "num": "",
+        "num": "KJ-QFIWeWWNdKK",
         "img": "9.jpg",
         "content": {
           "title": "",
@@ -113,7 +113,7 @@
       },
       {
         "name": "东雁翅楼",
-        "num": "",
+        "num": "KJ-rDXanbWOVC5",
         "img": "10.jpg",
         "content": {
           "title": "",
@@ -139,7 +139,7 @@
       },
       {
         "name": "午门",
-        "num": "",
+        "num": "KJ-G0en2rLoTMs",
         "img": "12.jpg",
         "content": {
           "title": "",
@@ -149,7 +149,7 @@
       },
       {
         "name": "东雁翅楼",
-        "num": "",
+        "num": "KJ-YpIuSwambrF",
         "img": "13.jpg",
         "content": {
           "title": "",
@@ -165,7 +165,7 @@
     "sceneList": [
       {
         "name": "一号厅",
-        "num": "",
+        "num": "KJ-ZDyk3xcBffS",
         "img": "14.jpg",
         "content": {
           "title": "",
@@ -175,7 +175,7 @@
       },
       {
         "name": "二号厅",
-        "num": "",
+        "num": "KJ-Q1XqSFnM5WQ",
         "img": "15.jpg",
         "content": {
           "title": "",
@@ -191,7 +191,7 @@
     "sceneList": [
       {
         "name": "石渠宝笈·编纂篇(第一期)",
-        "num": "",
+        "num": "KJ-m6rqs8fn6Kj",
         "img": "16.jpg",
         "content": {
           "title": "",
@@ -201,7 +201,7 @@
       },
       {
         "name": "一楼",
-        "num": "",
+        "num": "KJ-3tG6CQuYAX0",
         "img": "17.jpg",
         "content": {
           "title": "",
@@ -211,7 +211,7 @@
       },
       {
         "name": "二楼",
-        "num": "",
+        "num": "KJ-278a7xXynVk",
         "img": "18.jpg",
         "content": {
           "title": "",
@@ -227,7 +227,7 @@
     "sceneList": [
       {
         "name": "石渠宝笈·典藏篇(第一期)",
-        "num": "",
+        "num": "KJ-oDFTPUUeWk6",
         "img": "19.jpg",
         "content": {
           "title": "",
@@ -237,7 +237,7 @@
       },
       {
         "name": "石渠宝笈·典藏篇(第二期)",
-        "num": "",
+        "num": "KJ-7yhsDEilcgE",
         "img": "20.jpg",
         "content": {
           "title": "",
@@ -253,7 +253,7 @@
     "sceneList": [
       {
         "name": "西雁翅楼",
-        "num": "",
+        "num": null,
         "img": "21.jpg",
         "content": {
           "title": "",
@@ -263,7 +263,7 @@
       },
       {
         "name": "午门",
-        "num": "",
+        "num": null,
         "img": "22.jpg",
         "content": {
           "title": "",
@@ -273,7 +273,7 @@
       },
       {
         "name": "东雁翅楼",
-        "num": "",
+        "num": null,
         "img": "23.jpg",
         "content": {
           "title": "",
@@ -289,7 +289,7 @@
     "sceneList": [
       {
         "name": "文华殿",
-        "num": "",
+        "num": null,
         "img": "24.jpg",
         "content": {
           "title": "",
@@ -305,7 +305,7 @@
     "sceneList": [
       {
         "name": "文华殿",
-        "num": "",
+        "num": null,
         "img": "25.jpg",
         "content": {
           "title": "",
@@ -321,7 +321,7 @@
     "sceneList": [
       {
         "name": "西雁翅楼",
-        "num": "",
+        "num": null,
         "img": "26.jpg",
         "content": {
           "title": "",
@@ -331,7 +331,7 @@
       },
       {
         "name": "午门",
-        "num": "",
+        "num": null,
         "img": "27.jpg",
         "content": {
           "title": "",
@@ -341,7 +341,7 @@
       },
       {
         "name": "东雁翅楼",
-        "num": "",
+        "num": null,
         "img": "28.jpg",
         "content": {
           "title": "",
@@ -351,7 +351,7 @@
       },
       {
         "name": "午门",
-        "num": "",
+        "num": null,
         "img": "29.jpg",
         "content": {
           "title": "",
@@ -361,7 +361,7 @@
       },
       {
         "name": "西雁翅楼",
-        "num": "",
+        "num": null,
         "img": "30.jpg",
         "content": {
           "title": "",
@@ -377,7 +377,7 @@
     "sceneList": [
       {
         "name": "西雁翅楼",
-        "num": "",
+        "num": null,
         "img": "31.jpg",
         "content": {
           "title": "",
@@ -387,7 +387,7 @@
       },
       {
         "name": "午门",
-        "num": "",
+        "num": null,
         "img": "32.jpg",
         "content": {
           "title": "",
@@ -397,7 +397,7 @@
       },
       {
         "name": "东雁翅楼",
-        "num": "",
+        "num": null,
         "img": "33.jpg",
         "content": {
           "title": "",
@@ -413,7 +413,7 @@
     "sceneList": [
       {
         "name": "复原窟",
-        "num": "",
+        "num": null,
         "img": "34.jpg",
         "content": {
           "title": "",
@@ -423,7 +423,7 @@
       },
       {
         "name": "西雁翅楼",
-        "num": "",
+        "num": null,
         "img": "35.jpg",
         "content": {
           "title": "",
@@ -433,7 +433,7 @@
       },
       {
         "name": "午门",
-        "num": "",
+        "num": null,
         "img": "36.jpg",
         "content": {
           "title": "",
@@ -443,7 +443,7 @@
       },
       {
         "name": "东雁翅楼",
-        "num": "",
+        "num": null,
         "img": "37.jpg",
         "content": {
           "title": "",
@@ -459,7 +459,7 @@
     "sceneList": [
       {
         "name": "武英殿",
-        "num": "",
+        "num": null,
         "img": "38.jpg",
         "content": {
           "title": "",
@@ -469,7 +469,7 @@
       },
       {
         "name": "浴德堂",
-        "num": "",
+        "num": null,
         "img": "39.jpg",
         "content": {
           "title": "",
@@ -479,7 +479,7 @@
       },
       {
         "name": "西配殿",
-        "num": "",
+        "num": null,
         "img": "40.jpg",
         "content": {
           "title": "",
@@ -489,7 +489,7 @@
       },
       {
         "name": "东配殿",
-        "num": "",
+        "num": null,
         "img": "41.jpg",
         "content": {
           "title": "",

+ 5 - 3
scene/src/View.vue

@@ -25,6 +25,7 @@
 import { mapGetters, mapMutations } from "vuex";
 import { getExhibitionInfoAPI } from "@/utils/api";
 import browser from "@/utils/browser";
+import common from "@/utils/common";
 export default {
   data() {
     return {
@@ -73,7 +74,7 @@ export default {
   },
   mounted() {
     getExhibitionInfoAPI().then((res) => {
-      let id = browser.getURLParam("projectId");
+      let id = common.getURLParam("projectId");
       let index = res.findIndex((item) => item.id == id);
       if (index != -1) {
         this.sceneList = res[index].sceneList;
@@ -104,6 +105,7 @@ export default {
     height: 100%;
   }
   .switch-btn {
+    max-width: 200px;
     // position: absolute;
     // top: 50%;
     // transform: translateY(-50%);
@@ -133,11 +135,11 @@ export default {
       background-color: rgba(55, 54, 53, 0.5);
       color: #a88959;
       border: 1px solid rgba(113, 88, 49, 0.8);
-      border-radius: 23px;
+      border-radius: 100px;
       cursor: pointer;
       transition: all 0.3s ease;
       padding: 0 20px;
-      height: 47px;
+      min-height: 47px;
       display: flex;
       align-items: center;
       justify-content: center;

+ 34 - 158
scene/src/utils/browser.js

@@ -1,160 +1,36 @@
-// function versions() {
-//   var u = window.navigator.userAgent;
-//   return {
-//     // IE内核
-//     trident: u.indexOf("Trident") > -1,
-//     // Firefox
-//     firefox: u.indexOf("Firefox") > -1,
-//     // edge
-//     edge: u.indexOf("Edge") > -1,
-//     // opera内核
-//     presto: u.indexOf("Presto") > -1,
-//     // 苹果、谷歌内核
-//     webKit: u.indexOf("AppleWebKit") > -1,
-//     // 火狐内核
-//     gecko: u.indexOf("Gecko") > -1 && u.indexOf("KHTML") === -1,
-//     // 是否为移动终端
-//     mobile: /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent),
-//     // ios终端
-//     ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
-//     // android终端或者uc浏览器
-//     android: u.indexOf("Android") > -1 || u.indexOf("Linux") > -1,
-//     // 是否为iPhone或者安卓QQ浏览器
-//     iPhone: u.indexOf("iPhone") > -1 || u.indexOf("Mac") > -1,
-//     // 是否为iPad
-//     iPad: u.indexOf("iPad") > -1,
-//     // 是否为web应用程序,没有头部与底部
-//     webApp: u.indexOf("Safari") === -1,
-//     // 是否为微信浏览器
-//     weixin: ~u.indexOf("MicroMessenger"),
-//     // 获取浏览器语言
-//     language: (navigator.browserLanguage || navigator.language).toLowerCase(),
-//   };
-// }
+function versions() {
+  var u = window.navigator.userAgent;
+  return {
+    // IE内核
+    trident: u.indexOf("Trident") > -1,
+    // Firefox
+    firefox: u.indexOf("Firefox") > -1,
+    // edge
+    edge: u.indexOf("Edge") > -1,
+    // opera内核
+    presto: u.indexOf("Presto") > -1,
+    // 苹果、谷歌内核
+    webKit: u.indexOf("AppleWebKit") > -1,
+    // 火狐内核
+    gecko: u.indexOf("Gecko") > -1 && u.indexOf("KHTML") === -1,
+    // 是否为移动终端
+    mobile: /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent),
+    // ios终端
+    ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
+    // android终端或者uc浏览器
+    android: u.indexOf("Android") > -1 || u.indexOf("Linux") > -1,
+    // 是否为iPhone或者安卓QQ浏览器
+    iPhone: u.indexOf("iPhone") > -1 || u.indexOf("Mac") > -1,
+    // 是否为iPad
+    iPad: u.indexOf("iPad") > -1,
+    // 是否为web应用程序,没有头部与底部
+    webApp: u.indexOf("Safari") === -1,
+    // 是否为微信浏览器
+    weixin: ~u.indexOf("MicroMessenger"),
+    // 获取浏览器语言
+    language: (navigator.browserLanguage || navigator.language).toLowerCase(),
+  };
+}
 
-// export default versions();
-export default {
-  hasURLParam: function (key) {
-    let querys = window.location.search.substring(1).split("&");
-    for (let i = 0; i < querys.length; i++) {
-      let keypair = querys[i].split("=");
-      if (keypair[0] == key) {
-        return true;
-      }
-    }
-    return false;
-  },
-  getLang() {
-    return this.getURLParam("lang") || "zh";
-  },
-  getURLParam: function (key) {
-    let querys = window.location.search.substring(1).split("&");
-    for (let i = 0; i < querys.length; i++) {
-      let keypair = querys[i].split("=");
-      if (keypair.length === 2 && keypair[0] === key) {
-        try {
-          return decodeURIComponent(keypair[1]);
-        } catch (error) {
-          return keypair[1];
-        }
-      }
-    }
-    return "";
-  },
-  valueFromUrl(key) {
-    return this.urlHasValue(key, true);
-  },
-  urlHasValue: function (key, isGetValue) {
-    if (
-      key === "m" &&
-      window.__ProjectNum &&
-      window.__ProjectNum != "__ProjectNum__"
-    ) {
-      return window.__ProjectNum;
-    }
+export default versions();
 
-    let querys = window.location.search.substr(1).split("&");
-    if (isGetValue) {
-      for (let i = 0; i < querys.length; i++) {
-        let keypair = querys[i].split("=");
-        if (keypair.length === 2 && keypair[0] === key) {
-          return keypair[1];
-        }
-      }
-      return "";
-    } else {
-      //return window.location.search.match("&" + key + "|\\?" + key) != null  有bug
-      for (let i = 0; i < querys.length; i++) {
-        let keypair = querys[i].split("=");
-        if (keypair[0] == key) {
-          return true;
-        }
-      }
-      return false;
-    }
-  },
-  detectWeixin: function () {
-    //微信 包括PC的微信
-    return (
-      window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) ==
-      "micromessenger"
-    );
-  },
-  detectWeixinMiniProgram: function () {
-    return window.navigator.userAgent.match("miniProgram");
-  },
-  detectIOS: function () {
-    return this.detectIPhone() || this.detectIPad() || this.detectIPod();
-  },
-  detectIPhone: function () {
-    var e = window.navigator.userAgent,
-      t = /iPhone/;
-    return t.test(e);
-  },
-  detectIPad: function () {
-    if (
-      window.navigator.platform === "MacIntel" &&
-      window.navigator.maxTouchPoints > 1
-    ) {
-      return true;
-    }
-    var e = window.navigator.userAgent,
-      t = /iPad/;
-    return t.test(e);
-  },
-  detectIPod: function () {
-    var e = window.navigator.userAgent,
-      t = /iPod/;
-    return t.test(e);
-  },
-  detectAndroid: function () {
-    var e = window.navigator.userAgent;
-    return e.indexOf("Android") !== -1;
-  },
-  detectIE: function () {
-    var e = window.navigator.userAgent,
-      t = e.indexOf("MSIE ");
-    return t !== -1 || !!navigator.userAgent.match(/Trident.*rv\:11\./);
-  },
-  detectOpera: function () {
-    var e = window.navigator.userAgent;
-    return e.indexOf("OPR") !== -1;
-  },
-  detectSafari: function () {
-    var e = window.navigator.userAgent,
-      t = e.indexOf("Safari");
-    return t !== -1 && !this.detectOpera() && !this.detectChrome(); //xzw add detectOpera
-  },
-  detectFirefox: function () {
-    var e = window.navigator.userAgent;
-    return e.indexOf("Firefox") !== -1;
-  },
-  detectChrome: function () {
-    var e = window.navigator.userAgent;
-    return e.indexOf("Chrome") !== -1 && !this.detectOpera();
-  },
-  detectAndroidMobile: function () {
-    var e = window.navigator.userAgent;
-    return this.detectAndroid() && e.indexOf("Mobile") !== -1;
-  },
-};

+ 125 - 0
scene/src/utils/common.js

@@ -0,0 +1,125 @@
+export default {
+  hasURLParam: function (key) {
+    let querys = window.location.search.substring(1).split("&");
+    for (let i = 0; i < querys.length; i++) {
+      let keypair = querys[i].split("=");
+      if (keypair[0] == key) {
+        return true;
+      }
+    }
+    return false;
+  },
+  getLang() {
+    return this.getURLParam("lang") || "zh";
+  },
+  getURLParam: function (key) {
+    let querys = window.location.search.substring(1).split("&");
+    for (let i = 0; i < querys.length; i++) {
+      let keypair = querys[i].split("=");
+      if (keypair.length === 2 && keypair[0] === key) {
+        try {
+          return decodeURIComponent(keypair[1]);
+        } catch (error) {
+          return keypair[1];
+        }
+      }
+    }
+    return "";
+  },
+  valueFromUrl(key) {
+    return this.urlHasValue(key, true);
+  },
+  urlHasValue: function (key, isGetValue) {
+    if (
+      key === "m" &&
+      window.__ProjectNum &&
+      window.__ProjectNum != "__ProjectNum__"
+    ) {
+      return window.__ProjectNum;
+    }
+
+    let querys = window.location.search.substr(1).split("&");
+    if (isGetValue) {
+      for (let i = 0; i < querys.length; i++) {
+        let keypair = querys[i].split("=");
+        if (keypair.length === 2 && keypair[0] === key) {
+          return keypair[1];
+        }
+      }
+      return "";
+    } else {
+      //return window.location.search.match("&" + key + "|\\?" + key) != null  有bug
+      for (let i = 0; i < querys.length; i++) {
+        let keypair = querys[i].split("=");
+        if (keypair[0] == key) {
+          return true;
+        }
+      }
+      return false;
+    }
+  },
+  detectWeixin: function () {
+    //微信 包括PC的微信
+    return (
+      window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) ==
+      "micromessenger"
+    );
+  },
+  detectWeixinMiniProgram: function () {
+    return window.navigator.userAgent.match("miniProgram");
+  },
+  detectIOS: function () {
+    return this.detectIPhone() || this.detectIPad() || this.detectIPod();
+  },
+  detectIPhone: function () {
+    var e = window.navigator.userAgent,
+      t = /iPhone/;
+    return t.test(e);
+  },
+  detectIPad: function () {
+    if (
+      window.navigator.platform === "MacIntel" &&
+      window.navigator.maxTouchPoints > 1
+    ) {
+      return true;
+    }
+    var e = window.navigator.userAgent,
+      t = /iPad/;
+    return t.test(e);
+  },
+  detectIPod: function () {
+    var e = window.navigator.userAgent,
+      t = /iPod/;
+    return t.test(e);
+  },
+  detectAndroid: function () {
+    var e = window.navigator.userAgent;
+    return e.indexOf("Android") !== -1;
+  },
+  detectIE: function () {
+    var e = window.navigator.userAgent,
+      t = e.indexOf("MSIE ");
+    return t !== -1 || !!navigator.userAgent.match(/Trident.*rv\:11\./);
+  },
+  detectOpera: function () {
+    var e = window.navigator.userAgent;
+    return e.indexOf("OPR") !== -1;
+  },
+  detectSafari: function () {
+    var e = window.navigator.userAgent,
+      t = e.indexOf("Safari");
+    return t !== -1 && !this.detectOpera() && !this.detectChrome(); //xzw add detectOpera
+  },
+  detectFirefox: function () {
+    var e = window.navigator.userAgent;
+    return e.indexOf("Firefox") !== -1;
+  },
+  detectChrome: function () {
+    var e = window.navigator.userAgent;
+    return e.indexOf("Chrome") !== -1 && !this.detectOpera();
+  },
+  detectAndroidMobile: function () {
+    var e = window.navigator.userAgent;
+    return this.detectAndroid() && e.indexOf("Mobile") !== -1;
+  },
+};

+ 5 - 3
scene/src/views/gui/components/layerMap.vue

@@ -3,7 +3,7 @@
   <div class="layer-box" :class="{ isMobile }">
     <div class="layer-close" @click="$emit('close')"></div>
     <div class="layer-content">
-      <div class="wep-options">
+      <div class="wep-options" v-if="sceneList && sceneList.length > 1">
         <div
           class="wep-option"
           :class="{ onselected: sceneNum === i.num }"
@@ -134,6 +134,7 @@
 import { mapGetters, mapMutations } from "vuex";
 // import imageUrl from "../../../assets/image/icon/new-icon/map.jpg";
 import browser from "@/utils/browser";
+import common from "@/utils/common";
 import { getExhibitionInfoAPI } from "@/utils/api";
 export default {
   //import引入的组件需要注入到对象中才能使用
@@ -219,7 +220,7 @@ export default {
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
     getExhibitionInfoAPI().then((res) => {
-      let m = browser.getURLParam("m") || "";
+      let m = common.getURLParam("m") || "";
       this.sceneNum = m;
       let id = 0;
       res.forEach((item, index) => {
@@ -289,7 +290,8 @@ export default {
       height: 100%;
       .wep-option {
         width: 180px;
-        height: 60px;
+        min-height: 60px;
+        padding: 10px 20px;
         background: hsla(0, 0%, 100%, 0.8);
         border-radius: 83px;
         border: 1px solid #8e564b;