tremble 3 年之前
父節點
當前提交
86f5d3cb43
共有 5 個文件被更改,包括 171 次插入69 次删除
  1. 45 0
      package-lock.json
  2. 1 0
      package.json
  3. 113 64
      src/app.vue
  4. 10 3
      src/components/RTC/PageRtcLive.vue
  5. 2 2
      src/utils/wxshare.js

+ 45 - 0
package-lock.json

@@ -11,6 +11,7 @@
         "axios": "^0.21.1",
         "clipboard": "^2.0.8",
         "core-js": "^3.8.3",
+        "jsonp": "^0.2.1",
         "socket.io": "^4.5.1",
         "trtc-js-sdk": "^4.13.0",
         "vue": "^3.2.36",
@@ -6002,6 +6003,27 @@
         "graceful-fs": "^4.1.6"
       }
     },
+    "node_modules/jsonp": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmmirror.com/jsonp/-/jsonp-0.2.1.tgz",
+      "integrity": "sha512-pfog5gdDxPdV4eP7Kg87M8/bHgshlZ5pybl+yKxAnCZ5O7lCIn7Ixydj03wOlnDQesky2BPyA91SQ+5Y/mNwzw==",
+      "dependencies": {
+        "debug": "^2.1.3"
+      }
+    },
+    "node_modules/jsonp/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/jsonp/node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+    },
     "node_modules/kind-of": {
       "version": "6.0.3",
       "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",
@@ -14627,6 +14649,29 @@
         "universalify": "^2.0.0"
       }
     },
+    "jsonp": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmmirror.com/jsonp/-/jsonp-0.2.1.tgz",
+      "integrity": "sha512-pfog5gdDxPdV4eP7Kg87M8/bHgshlZ5pybl+yKxAnCZ5O7lCIn7Ixydj03wOlnDQesky2BPyA91SQ+5Y/mNwzw==",
+      "requires": {
+        "debug": "^2.1.3"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+        }
+      }
+    },
     "kind-of": {
       "version": "6.0.3",
       "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",

+ 1 - 0
package.json

@@ -12,6 +12,7 @@
     "axios": "^0.21.1",
     "clipboard": "^2.0.8",
     "core-js": "^3.8.3",
+    "jsonp": "^0.2.1",
     "socket.io": "^4.5.1",
     "trtc-js-sdk": "^4.13.0",
     "vue": "^3.2.36",

+ 113 - 64
src/app.vue

@@ -8,7 +8,7 @@
     <template v-if="dataLoaded">
       <Information v-if="!isshoppingguide" />
       <Control />
-      <teleport v-if="refMiniMap && player.showWidgets" :to="refMiniMap">
+      <!-- <teleport v-if="refMiniMap && player.showWidgets" :to="refMiniMap">
         <span :class="{ gudieDisabled: isshoppingguide && role != 'leader' }" class="button-switch" @click.stop="toggleMap">
           <ui-icon type="show_map_collect"></ui-icon>
         </span>
@@ -17,8 +17,17 @@
           <ui-icon type="show_3d_normal"></ui-icon>
           3D模型
         </p>
-      </teleport>
-      <template v-if="refMiniMap && player.showWidgets">
+      </teleport> -->
+          <teleport v-if="refMiniMap && player.showWidgets" :to="refMiniMap">
+                <span :class="{ gudieDisabled: isshoppingguide && role != 'leader' }" class="button-switch" @click.stop="toggleMap">
+                    <ui-icon type="show_map_collect"></ui-icon>
+                </span>
+                <div v-if="controls.showDollhouse" :class="{ gudieDisabled: isshoppingguide && role != 'leader' }" class="change" @click="changeMode('dollhouse')">
+                    <ui-icon type="show_3d_normal"></ui-icon>
+                    <span> 3D模型</span>
+                </div>
+            </teleport>
+      <!-- <template v-if="refMiniMap && player.showWidgets">
         <div
           :class="{ disabled: flying, gudieDisabled: isshoppingguide && role != 'leader' }"
           v-show="mode != 'panorama'"
@@ -38,7 +47,26 @@
             <div class="background" ref="background"></div>
           </div>
         </div>
-      </template>
+      </template> -->
+
+      <template v-if="refMiniMap && player.showWidgets">
+                <div 
+          :class="{ disabled: flying, gudieDisabled: isshoppingguide && role != 'leader' }"
+                v-show="mode != 'panorama'" v-if="controls.showFloorplan && controls.showDollhouse" class="tab-layer">
+                    <div class="tabs" v-if="controls.showMap">
+                        <span :class="{ active: mode === 'floorplan' }" ref="floorplan_ref" @click="changeMode('floorplan', $event)">
+                            <ui-icon :type="mode == 'floorplan' ? 'show_plane_selected' : 'show_plane_normal'"></ui-icon>
+                            二維
+                        </span>
+                        <span :class="{ active: mode === 'dollhouse' }" ref="dollhouse_ref" @click="changeMode('dollhouse', $event)">
+                            <ui-icon :type="mode == 'dollhouse' ? 'show_3d_selected' : 'show_3d_normal'"></ui-icon>
+
+                            三維
+                        </span>
+                        <div class="background" ref="background"></div>
+                    </div>
+                </div>
+            </template>
     </template>
     <!-- <UiTags /> -->
   </div>
@@ -62,6 +90,8 @@ import OpenVideo from "@/components/openVideo/";
 import Guide from "@/components/shared/Guide.vue";
 import { Dialog } from "@/global_components/";
 
+
+
 import { createApp } from "@/app";
 import { ref, onMounted, computed, nextTick, watch } from "vue";
 import { useStore } from "vuex";
@@ -226,23 +256,42 @@ watch(
     deep: true,
   }
 );
-const changeMode = (name, e, focus3d = false) => {
-  if (!flying.value) {
-    let width, left;
-    store.commit("setMode", name);
-    nextTick(() => {
-      if (focus3d) {
-        let $active = document.querySelector(".tabs>span:last-of-type");
-        background.value.style.width = $active.getBoundingClientRect().width + "px";
-        background.value.style.left = $active.offsetLeft + "px";
-      } else {
-        background.value.style.width = width || e.srcElement.getBoundingClientRect().width + "px";
-        background.value.style.left = left || e.srcElement.offsetLeft + "px";
-      }
-    });
-  }
-  // console.dir(document.querySelector(".tabs>span:last-of-type"));
-};
+
+
+watch(
+    () => mode.value,
+    (val, old) => {
+        console.log(val)
+        let timer = setTimeout(() => {
+            clearTimeout(timer)
+            if (val == 'floorplan') {
+                if (floorplan_ref.value && floorplan_ref.value) {
+                    background.value.style.width = floorplan_ref.value.getBoundingClientRect().width + 'px'
+                    background.value.style.left = floorplan_ref.value.offsetLeft + 'px'
+                }
+            } else if (val == 'dollhouse') {
+                if (dollhouse_ref.value && dollhouse_ref.value) {
+                    background.value.style.width = dollhouse_ref.value.getBoundingClientRect().width + 'px'
+                    background.value.style.left = dollhouse_ref.value.offsetLeft + 'px'
+                }
+            }
+        }, 0)
+    },
+    {
+        deep: true
+    }
+)
+const floorplan_ref = ref(null)
+const dollhouse_ref = ref(null)
+const changeMode = (name, e) => {
+    if (e) {
+        if (!flying.value) {
+            store.commit('setMode', name)
+        }
+    } else {
+        store.commit('setMode', name)
+    }
+}
 const toggleMap = () => {
   isCollapse.value = !isCollapse.value;
   let $minmap = document.querySelector("[xui_min_map]");
@@ -563,53 +612,53 @@ onMounted(async () => {
   pointer-events: none;
 }
 .tabs {
-  pointer-events: auto;
-  position: relative;
-  display: flex;
-  background: #222222;
-  border-radius: 6px;
-  padding: 2px;
-  justify-content: center;
-  align-items: center;
-  border: 1px solid rgba(255, 255, 255, 0.1);
-  box-shadow: inset 0px 0px 6px 0px rgba(0, 0, 0, 0.5);
-  .background {
-    position: absolute;
-    left: 2px;
-    top: 2px;
-    bottom: 2px;
-    width: 50%;
-    border-radius: 4px;
-    background: #444444;
-    box-shadow: 2px 0px 4px 0px rgba(0, 0, 0, 0.3);
-    z-index: 0;
-    transition: left 0.3s;
-  }
-  span {
-    flex: 1;
-    color: #fff;
-    opacity: 0.5;
-    border-radius: 6px;
-    height: 0.94737rem;
-    font-size: 0.36842rem;
-    transition: all 0.3s ease;
+    pointer-events: auto;
+    position: relative;
     display: flex;
-    align-items: center;
+    background: #222222;
+    border-radius: 6px;
+    padding: 2px;
     justify-content: center;
-    padding-left: 10px;
-    padding-right: 10px;
-    white-space: nowrap;
-    z-index: 1;
-    i {
-      font-size: 0.47368rem;
-      margin-right: 4px;
-      pointer-events: none;
+    align-items: center;
+    border: 1px solid rgba(255, 255, 255, 0.1);
+    box-shadow: inset 0px 0px 6px 0px rgba(0, 0, 0, 0.5);
+    .background {
+        position: absolute;
+        left: 2px;
+        top: 2px;
+        bottom: 2px;
+        width: 50%;
+        border-radius: 4px;
+        background: #444444;
+        box-shadow: 2px 0px 4px 0px rgba(0, 0, 0, 0.3);
+        z-index: 0;
+        transition: left 0.3s;
+    }
+    span {
+        flex: 1;
+        color: #fff;
+        opacity: 0.5;
+        border-radius: 6px;
+        height: 0.94737rem;
+        font-size: 0.36842rem;
+        transition: all 0.3s ease;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        padding-left: 10px;
+        padding-right: 10px;
+        white-space: nowrap;
+        z-index: 1;
+        i {
+            font-size: 0.47368rem;
+            margin-right: 4px;
+            pointer-events: none;
+        }
     }
-  }
 
-  span.active {
-    opacity: 1;
-  }
+    span.active {
+        opacity: 1;
+    }
 }
 
 [xui_tags_view] {

+ 10 - 3
src/components/RTC/PageRtcLive.vue

@@ -104,6 +104,7 @@ import { mapGetters } from "vuex";
 import chat from "./chat/chat.vue";
 import Trtccom from "./Trtccom.vue";
 import browser from "@/utils/browser";
+import wxShare from "@/utils/wxshare";
 
 const emit = defineEmits(["openDialog"]);
 
@@ -210,7 +211,7 @@ const onClickShare = () => {
             h5Url: shareLink.value,
           },
         });
-        console.log('分享url-------------',shareLink.value);
+        console.log("分享url-------------", shareLink.value);
         //在小程序里
       } else {
         openDialog("dialogShare", shareLink.value);
@@ -544,6 +545,13 @@ const startFollow = (app) => {
       },
     ]);
 
+    wxShare({
+      title: `【好友推薦】一起雲逛店吧~`,
+      desc: "【好友推薦】一起雲逛店吧~",
+      link: window.location.href.split("#")[0],
+      imgUrl: "https://glp-vr.cdfmembers.com/cdf/file/91dd5305525f463286f03a31abd1c154.jpg",
+    });
+
     let tmp = "";
 
     if (user_info.value.Role == "leader") {
@@ -557,7 +565,6 @@ const startFollow = (app) => {
           val: user_info.value.UserId,
         },
       ]);
-      
     } else {
       tmp = getUrl(window.location.href, [
         {
@@ -567,7 +574,7 @@ const startFollow = (app) => {
       ]);
     }
     console.log("創建房間後更新url", tmp);
-    store.commit("rtc/setRole", user_info.value.Role)
+    store.commit("rtc/setRole", user_info.value.Role);
     history.replaceState(null, null, tmp);
   });
 

+ 2 - 2
src/utils/wxshare.js

@@ -3,7 +3,7 @@ import { http } from './request'
 import jsonp from 'jsonp'
 function toConfigure() {
     return new Promise((resolve, reject) => {
-        let name = '厦门四维时代微信公众号'
+        let name = '中免项目'
         name = encodeURIComponent(name)
         let uri = encodeURIComponent(location.href.split('#')[0])
         jsonp(
@@ -12,7 +12,7 @@ function toConfigure() {
                 param: 'callback',
             },
             function (err, data) {
-                console.log(data)
+                console.log(data,'-------------------------------------=========')
                 wx.config({
                     debug: false,
                     appId: data.appId,