Bläddra i källkod

feat: 博博会

rindy 3 år sedan
förälder
incheckning
2d4b07d002

+ 4 - 13
.env

@@ -1,23 +1,14 @@
 
 # 场景资源地址
-VUE_APP_RESOURCE_URL=https://eurs3.4dkankan.com/
+VUE_APP_RESOURCE_URL=https://4dkk.4dage.com/
 # 静态资源地址
 VUE_APP_CDN_URL=https://4dkk.4dage.com/v4/www/
 # sdk文件地址
-VUE_APP_SDK_DIR=https://eurs3.4dkankan.com/v4/cdfg/sdk
-
+VUE_APP_SDK_DIR=https://4dkk.4dage.com/v4/sdk/4.2.0
 # socket地址
-VUE_APP_SOCKET_URL=https://vr-admin.cdfmembers.com/
-
-
-
+VUE_APP_SOCKET_URL=https://ws.4dkankan.com/
 # 静态资源目录
 VUE_APP_STATIC_DIR=viewer
-
-# 云存储环境
-VUE_APP_REGION_URL=aws
-
-
 # 接口请求地址
-VUE_APP_APIS_URL=http://192.168.0.38:8888/
+VUE_APP_APIS_URL=https://www.4dkankan.com/
 

+ 0 - 22
.env.development

@@ -1,22 +0,0 @@
-
-# 场景资源地址
-VUE_APP_RESOURCE_URL=https://eurs3.4dkankan.com/
-# 静态资源地址
-VUE_APP_CDN_URL=https://4dkk.4dage.com/v4/www/
-# sdk文件地址
-VUE_APP_SDK_DIR=https://eurs3.4dkankan.com/v4/cdfg/sdk
-
-
-# socket地址
-VUE_APP_SOCKET_URL=https://vr-admin.cdfmembers.com/
-
-
-# 静态资源目录
-VUE_APP_STATIC_DIR=viewer
-
-# 云存储环境
-VUE_APP_REGION_URL=aws
-
-# 接口请求地址
-VUE_APP_APIS_URL=http://192.168.0.38:8888/
-

+ 1 - 11
public/index.html

@@ -12,7 +12,7 @@
 
         <script src="<%= BASE_URL %><%= VUE_APP_STATIC_DIR %>/static/lib/mobile-detect.js"></script>
         <script src="<%= BASE_URL %><%= VUE_APP_STATIC_DIR %>/static/lib/flexible.min.js"></script>
-        <title>cdf澳門上葡京店</title>
+        <title></title>
     </head>
 
     <body>
@@ -25,19 +25,9 @@
         <script src="<%= BASE_URL %><%= VUE_APP_STATIC_DIR %>/static/lib/swiper/swiper-bundle.min.js"></script>
         <script src="<%= BASE_URL %><%= VUE_APP_STATIC_DIR %>/static/lib/socket.io.min.js"></script>
         <script src="<%= BASE_URL %><%= VUE_APP_STATIC_DIR %>/static/lib/zmjm.min.js"></script>
-
-
         <script src="<%= VUE_APP_STATIC_DIR %>/static/lib/jweixin-1.6.0.js"></script>
-        
         <script src="<%= VUE_APP_SDK_DIR %>/kankan-sdk-deps.js?v=4.37.3-alpha.52"></script>
         <script src="<%= VUE_APP_SDK_DIR %>/kankan-sdk.js?v=4.37.3-alpha.52"></script>
-
-        <!-- <script src="https://4dkk.4dage.com/v4/www/sdk/kankan-sdk-deps.js?v=4.0.0-alpha.44"></script>
-        <script src="https://4dkk.4dage.com/v4/www/sdk/kankan-sdk.js?v=4.0.0-alpha.44"></script> -->
-
-        <!-- <script src="https://eurs3.4dkankan.com/v4/cdfg/sdk/kankan-sdk-deps.js?v=4.0.0-alpha.45"></script>
-        <script src="https://eurs3.4dkankan.com/v4/cdfg/sdk/kankan-sdk.js?v=4.0.0-alpha.45"></script> -->
-        <!-- built files will be auto injected -->
         <script>
             if ((query = window.location.href.indexOf('vlog') != -1)) {
                 var vConsole = new window.VConsole()

+ 0 - 30
src/app.vue

@@ -348,12 +348,6 @@ onMounted(async () => {
     num: browser.getURLParam("m"),
     dom: scene$.value,
     mobile: true,
-    isLoadTags: false,
-    scene: {
-      markerOpacity: 1,
-      markerURL: "https://eurs3.4dkankan.com/cdf/file/43aa29799bfd472298a47cc6370b10cc.png",
-      pathEndColor: "#FF4641",
-    },
   });
   app.use("MinMap", { theme: { camera_fillStyle: "#ED5D18" } });
   app.use("Tag");
@@ -476,12 +470,6 @@ onMounted(async () => {
   // }
   app.Scene.on("ready", () => {
     show.value = true;
-    wxShare({
-      title: `cdf澳門上葡京店~`,
-      desc: "cdf澳門上葡京店~",
-      link: window.location.href,
-      imgUrl: "https://glp-vr.cdfmembers.com/cdf/file/91dd5305525f463286f03a31abd1c154.jpg",
-    });
   });
   app.Scene.on("error", (data) => {
     switch (data.code) {
@@ -506,25 +494,7 @@ onMounted(async () => {
 
     if (browser.getURLParam("roomId")) {
       store.commit("showShoppingguide", true);
-    } else {
-      if (!localStorage.getItem("user_guide")) {
-        Dialog.confirm({
-          showCloseIcon: false,
-          okText: "我知道了",
-          content:
-            "<span style='font-size: 16px; line-height: 1.5;'>開發者已遵守收集、使用最終用戶個人信息有關的所有可適用法律、政策和法規,保護用戶個人信息安全。<span/>",
-          title: "隱私條款:",
-          single: true,
-          func: (state) => {
-            if (state == "ok") {
-              localStorage.setItem("user_guide", Date.now());
-            }
-          },
-        });
-      }
     }
-
-    app.resource.tags(`${process.env.VUE_APP_RESOURCE_URL}cdf/hot/${browser.getURLParam("m")}/hot.json?rnd=${Math.random()}`);
     useMusicPlayer();
   });
   app.Scene.on("panorama.videorenderer.resumerender", () => {

BIN
src/assets/images/guide/novice_guide_text@2x.png


+ 30 - 134
src/components/Controls/Panel/Main.vue

@@ -1,139 +1,37 @@
 <template>
   <div>
-              
-    <Panel v-show="player.showWidgets" :class="{disabled:!showdaogou}" :isOpen="isOpen">
+    <Panel
+      v-show="player.showWidgets"
+      :class="{ disabled: !showdaogou }"
+      :isOpen="isOpen"
+    >
       <div @click="toggleOpen" class="menu color">
-        <div class="logo">
-          <img :src="require('@/assets/images/icon/logo.png')" alt="" />
-          <p>cdf澳門上葡京店</p>
-        </div>
-        <div class="vline"></div>
         <ul>
-          <!-- <li v-if="tours.length > 0">
-            <ui-icon type="preview" @click.stop="playTour"></ui-icon>
-            <div>導覽</div>
-          </li> -->
-          <li @click.stop="onClickMenu(item)" v-for="(item, i) in menulist" :key="i">
+          <li
+            @click.stop="onClickMenu(item)"
+            v-for="(item, i) in menulist"
+            :key="i"
+          >
             <ui-icon :type="item.icon"></ui-icon>
             <div>{{ item.name }}</div>
           </li>
 
-          <li v-if="showdaogou">
-            <ui-icon
-              type="guided_shopping"
-              @click.stop="
-                onClickMenu({
-                  icon: 'guided_shopping',
-                  id: 'guided_shopping',
-                  name: '一起逛',
-                })
-              "
-            ></ui-icon>
+          <li
+            v-if="showdaogou"
+            @click.stop="
+              onClickMenu({
+                icon: 'guided_shopping',
+                id: 'guided_shopping',
+                name: '一起逛',
+              })
+            "
+          >
+            <ui-icon type="guided_shopping"></ui-icon>
             <div>一起逛</div>
           </li>
-
-          <li>
-            <ui-icon
-              type="shopping"
-              @click.stop="
-                onClickMenu({
-                  icon: 'shopping',
-                  id: 'shopping',
-                  name: '購物',
-                })
-              "
-            ></ui-icon>
-            <div>購物</div>
-          </li>
         </ul>
       </div>
-
-      <div class="toolbar color">
-        <div class="navigation">
-          <div class="h3">
-            <span>專櫃導航</span>
-            <div @click="showShopList = true">
-              <img :src="require(`@/assets/images/icon/search.svg`)" alt="" />
-              搜索專櫃
-            </div>
-          </div>
-          <div class="swiper-container" id="sw-navigation">
-            <ul class="swiper-wrapper">
-              <li
-                class="swiper-slide"
-                :class="{ liactive: item.sceneUrl === currentM && item.inPosition.indexOf(currentPose) > -1 }"
-                @click.stop="onClickShop(item)"
-                v-for="(item, i) in brandlist"
-                :key="i"
-              >
-                <div v-if="item.shopLogo" class="img" :style="{ 'background-image': `url(${item.shopLogo})` }"></div>
-                <div class="name" v-if="item.shopName">
-                  <span :class="{ active: item.shopName.length > 6 }">
-                    {{ item.shopName }}
-                  </span>
-                </div>
-              </li>
-            </ul>
-          </div>
-        </div>
-
-        <div class="category">
-          <div class="swiper-container" id="sw-category">
-            <ul class="swiper-wrapper">
-              <li
-                class="swiper-slide"
-                :class="{ categoryactive: '' == currentCategory.id }"
-                @click.stop="
-                  onClickCategory({
-                    id: '',
-                    categoryName: '全部',
-                  })
-                "
-              >
-                <div>全部</div>
-              </li>
-              <li
-                @click.stop="onClickCategory(item)"
-                :class="{ categoryactive: item.id == currentCategory.id }"
-                class="swiper-slide"
-                v-for="(item, i) in categorylist"
-                :key="i"
-              >
-                <div>{{ item.categoryName }}</div>
-              </li>
-            </ul>
-          </div>
-        </div>
-      </div>
     </Panel>
-    <teleport :to="`#app`">
-      <div v-show="showShopList" class="shoplist">
-        <div class="l-title">
-          專櫃列表 ({{ searchList.length }})
-          <ui-icon type="close" @click="showShopList = false" />
-        </div>
-
-        <div class="search">
-          <img :src="require(`@/assets/images/icon/search.svg`)" alt="" />
-          <input v-model="searchKey" type="text" placeholder="專櫃搜索" />
-          <ui-icon class="close" v-if="searchKey.length > 0" @click.stop="searchKey = ''" type="state_f"></ui-icon>
-        </div>
-
-        <ul v-if="searchList.length > 0">
-          <li @click.stop="onClickShop(item)" v-for="(item, idx) in searchList" :key="idx">
-            <div class="img" :style="{ 'background-image': `url(${item.shopLogo})` }"></div>
-            <div class="name" v-if="item.shopName">
-              <span>
-                {{ item.shopName }}
-              </span>
-            </div>
-            <ui-icon class="right" type="right"></ui-icon>
-          </li>
-        </ul>
-
-        <div class="noresult" v-else>暫無結果</div>
-      </div>
-    </teleport>
   </div>
 </template>
 
@@ -152,10 +50,6 @@ const searchKey = ref("");
 
 const showShopList = ref(false);
 
-const toggleOpen = () => {
-  isOpen.value = !isOpen.value;
-};
-
 const currentCategory = ref({
   id: "",
   categoryName: "全部",
@@ -202,7 +96,7 @@ const menulist = computed(() => {
     {
       icon: "help",
       id: "help",
-      name: "助",
+      name: "助",
     },
     {
       icon: "customer_service",
@@ -293,7 +187,11 @@ const onClickShop = (item) => {
   if (!browser.hasURLParam("pose")) {
     url += `&${item.inPosition}`;
   } else {
-    url = browser.replaceQueryString(url, "pose", item.inPosition.replace("pose=", ""));
+    url = browser.replaceQueryString(
+      url,
+      "pose",
+      item.inPosition.replace("pose=", "")
+    );
   }
 
   url = browser.replaceQueryString(url, "m", item.sceneUrl);
@@ -334,10 +232,7 @@ const getSearchList = async () => {
 };
 
 onMounted(() => {
-  useApp().then((app) => {
-    getCategorylist();
-    getShoplist();
-  });
+  useApp().then((app) => {});
 });
 </script>
 
@@ -376,7 +271,8 @@ onMounted(() => {
     display: flex;
     align-items: center;
     font-size: 0;
-    justify-content: flex-end;
+    justify-content: space-around;
+    width: 100%;
     > li {
       margin-left: 0.5rem;
       &:first-of-type {

+ 6 - 54
src/components/Information/View.Mobile.vue

@@ -26,49 +26,16 @@
                 </div>
             </div>
         </transition>
-        <template v-if="isApp">
-            <transition appear name="custom-classes-transition" enter-active-class="animated slideInUp faster" leave-active-class="animated slideOutDown faster">
-                <div class="app-share" v-if="showShare">
-                    <ul :class="{ flex: player.lang == 'zh' }">
-                        <li @click="onShare('weixin')">
-                            <i class="iconfont icon_wechat"></i>
-                            <div>微信</div>
-                        </li>
-                        <li @click="onShare('weixinFriend')">
-                            <i class="iconfont icon_friend"></i>
-                            <div>朋友圈</div>
-                        </li>
-                        <li @click="onShare('qq')">
-                            <i class="iconfont icon_qq"></i>
-                            <div>QQ</div>
-                        </li>
-                        <li v-if="player.lang != 'zh'" @click="onShare('faceBook')">
-                            <i class="iconfont iconicon_share_facebook"></i>
-                            <div>Facebook</div>
-                        </li>
-                        <li v-if="player.lang != 'zh'" @click="onShare('whatsApp')">
-                            <i class="iconfont iconicon_share_whatsapp"></i>
-                            <div>WhatsApp</div>
-                        </li>
-                        <li @click="onShare('copy')">
-                            <i class="iconfont iconlink"></i>
-                            <div>複製鏈接</div>
-                        </li>
-                    </ul>
-                    <div @click="showShare = false">取消</div>
-                </div>
-            </transition>
-        </template>
         <div class="url-share" v-show="showCopy">
             <div>
                 <div class="tips">
-                    <h4>分享鏈接給好友</h4>
+                    <h4>分享链接给好友</h4>
                     <i class="iconfont iconshow_cancel" @click="showCopy = false"></i>
                 </div>
                 <div class="url">{{ copyLink }}</div>
                 <div class="btns">
                     <ui-button class="cancel" @click="showCopy = false">取消</ui-button>
-                    <ui-button class="primary" :data-clipboard-text="copyLink" ref="copy$">一鍵複製</ui-button>
+                    <ui-button class="primary" :data-clipboard-text="copyLink" ref="copy$">一键复制</ui-button>
                 </div>
             </div>
         </div>
@@ -79,7 +46,6 @@ import ClipboardJS from 'clipboard'
 import browser from '@/utils/browser'
 import { useStore } from 'vuex'
 import { Dialog } from '@/global_components/'
-import { IsApp, MessageToApp, NotchHeight } from '@/utils/platform'
 import { useMusicPlayer } from '@/utils/sound'
 import { onMounted, watch, computed, ref, nextTick } from 'vue'
 import { useApp, getApp } from '@/app'
@@ -88,7 +54,7 @@ let share_url = browser.getURLParam('share_url')
 if (share_url) {
     share_url = decodeURIComponent(share_url)
 } else {
-    share_url = `${location.origin}${location.pathname}?m=${browser.getURLParam('m')}&pose=${browser.getURLParam('pose')}`
+    share_url = `${location.origin}${location.pathname}?m=${browser.getURLParam('m')}`
 }
 const musicPlayer = useMusicPlayer()
 const store = useStore()
@@ -102,7 +68,6 @@ const player = computed(() => store.getters['player'])
 
 const copy$ = ref(null)
 const copyLink = ref(share_url)
-const isApp = ref(IsApp)
 const showCopy = ref(false)
 const showShare = ref(false)
 const isMusicPlaying = ref(false)
@@ -138,7 +103,7 @@ onMounted(() => {
     new ClipboardJS(copy$.value.$el).on('success', function (e) {
         e.clearSelection()
         showCopy.value = false
-        Dialog.toast({ content: '場景鏈接複製成功', type: 'success' })
+        Dialog.toast({ content: '场景链接复制成功', type: 'success' })
     })
 
     nextTick(() => {
@@ -201,17 +166,8 @@ const onMenuClick = name => {
     nextTick(() => {
         if (name == 'music') {
             onMusicClick()
-            // if (isMusicPlaying.value) {
-            //     musicPlayer.pause()
-            // } else {
-            //     musicPlayer.play()
-            // }
         } else if (name == 'share') {
-            if (isApp.value) {
-                showShare.value = true
-            } else {
-                showCopy.value = true
-            }
+            showCopy.value = true
         } else if (name === 'measure') {
             this.$bus.emit('measure/Handle', 'start')
         } else if (name == 'vr') {
@@ -225,11 +181,7 @@ const onShare = name => {
         this.$nextTick(() => {
             showCopy.value = true
         })
-    } else {
-        MessageToApp(`Share-${name}`)
-        showCopy.value = false
-        showShare.value = false
-    }
+    } 
 }
 const onChangeMode = () => {
     store.commit('setMode', 'panorama')

+ 21 - 46
src/components/RTC/PageRtcLive.vue

@@ -2,7 +2,7 @@
   <div id="PageRtcLive">
     <div class="member_number">
       <div class="members"></div>
-      <span>{{ user_list.length }}看</span>
+      <span>{{ user_list.length }}看</span>
     </div>
     <chat v-show="chatShow" :chatList="chatList" :user_info="user_info"></chat>
 
@@ -12,12 +12,12 @@
       <div v-if="connectStatus == 1" :class="{ disabled: !user_info.IsWords }" class="saySomething" @click="onFocus">
         <!-- <i class="speakIcon"
            :class="{'dis':!user_info.IsWords}"></i> -->
-        <span v-if="user_info.IsWords">說點什麼</span>
+        <span v-if="user_info.IsWords">说点什么</span>
         <span v-if="!user_info.IsWords">已被禁言</span>
 
         <div class="disSpeakBtn" @click.stop="chatShow = !chatShow" :class="{ dis: !chatShow }"></div>
       </div>
-      <div style="text-align: right; width: 100%" v-if="connectStatus == 0">接中...</div>
+      <div style="text-align: right; width: 100%" v-if="connectStatus == 0">接中...</div>
       <div v-if="connectStatus == 1" class="contorl_btn">
         <div v-if="isBrushes && user_info.Role == 'leader'" @click="onDrawUndo" class="brushesBack" :class="{ disabled: !canUndo }"></div>
         <div v-if="user_info.Role == 'leader'" @click="onDraw(!isBrushes)" :class="{ brushesed: isBrushes }" class="brushes"></div>
@@ -33,8 +33,8 @@
     <div class="layer" v-if="showInput" @click="closeInput">
       <div class="inputBox" @click.stop>
         <div class="msgBox">
-          <input id="input_msg" type="text" maxlength="200" v-model.trim="text" :placeholder="`說點什麼~`" />
-          <span class="iconsend_icon" :class="{ disable: text == '' }" @click.stop="sendText">送</span>
+          <input id="input_msg" type="text" maxlength="200" v-model.trim="text" :placeholder="`说点什么~`" />
+          <span class="iconsend_icon" :class="{ disable: text == '' }" @click.stop="sendText">送</span>
         </div>
       </div>
     </div>
@@ -45,7 +45,7 @@
         <div class="blurBox"></div>
         <div class="content">
           <div class="memberHeader">
-            <span> 成管理({{ user_list.length }})</span>
+            <span> 成管理({{ user_list.length }})</span>
             <i class="iconfont"></i>
           </div>
           <div class="memberList">
@@ -252,7 +252,7 @@ const setUserMuted = (res) => {
   if (res.userId) {
     if (res.userId == user_info.value.UserId && role.value == "customer") {
       user_info.value.IsMuted = res.muted;
-      Dialog.toast({ content: !user_info.value.IsMuted ? `主持人設置了開麥` : `主持人設置了靜音` });
+      Dialog.toast({ content: !user_info.value.IsMuted ? `主持人设置了开麦` : `主持人设置了静音` });
       disableMic.value = res.muted;
       audioMuted.value = res.muted;
     }
@@ -282,7 +282,7 @@ const onAllMuted = (res) => {
     user_info.value.IsMuted = res.muted;
     item.IsMuted = res.muted;
     if (role.value == "customer") {
-      Dialog.toast({ content: !user_info.value.IsMuted ? `主持人設置了開麥` : `主持人設置了靜音` });
+      Dialog.toast({ content: !user_info.value.IsMuted ? `主持人設置了开麦` : `主持人設置了静音` });
       disableMic.value = res.muted;
       audioMuted.value = res.muted;
     }
@@ -291,7 +291,7 @@ const onAllMuted = (res) => {
 
 //用戶加入
 const setUserJoin = async (res) => {
-  console.log("有人進來了", res);
+  console.log("有人进来了", res);
   // self.user_info = res.user;
   user_list.value = res.members.reduce(function (tempArr, item) {
     if (tempArr.findIndex((ele) => ele.UserId === item.UserId) === -1) {
@@ -303,7 +303,7 @@ const setUserJoin = async (res) => {
   let name = res.user.Nickname;
   if (res.user.Role == "leader") {
     name = "主持人";
-    Dialog.toast({ content: `主持人進入房間` });
+    Dialog.toast({ content: `主持人进入房间` });
     socket.value.emit("action", { type: "user-init" });
   } 
   let data = {
@@ -311,7 +311,7 @@ const setUserJoin = async (res) => {
     mode: mode.value,
     Nickname: name,
     UserId: res.user.UserId,
-    text: "進入房間",
+    text: "进入房间",
   };
   chatList.value.push(data);
   await nextTick();
@@ -424,7 +424,7 @@ const onMemberMuted = (item) => {
 };
 
 const onMemberLeave = async (res) => {
-  console.log("有人離開了", res);
+  console.log("有人离开了", res);
   user_list.value = res.members.reduce(function (tempArr, item) {
     if (tempArr.findIndex((ele) => ele.UserId === item.UserId) === -1) {
       tempArr.push(item);
@@ -434,14 +434,14 @@ const onMemberLeave = async (res) => {
   let name = res.user.Nickname;
   if (res.user.Role == "leader") {
     name = "主持人";
-    Dialog.toast({ content: `主持人離開了房間` });
+    Dialog.toast({ content: `主持人离开了房间` });
   }
   let data = {
     role: res.user.Role,
     mode: mode.value,
     Nickname: name,
     UserId: res.user.UserId,
-    text: "離開房間",
+    text: "离开房间",
   };
   chatList.value.push(data);
   await nextTick();
@@ -499,7 +499,7 @@ const startFollow = (app) => {
     }, []);
 
     if (meblist.length > 5 && role.value == "customer") {
-      Dialog.toast({ content: `房間已滿員` });
+      Dialog.toast({ content: `房间已满员` });
       emit("closeSocket");
       return;
     }
@@ -547,32 +547,7 @@ const startFollow = (app) => {
       },
     ]);
 
-    wxShare({
-      donotconfig: true,
-      title: `【好友推薦】一起雲逛店吧~`,
-      desc: "【好友推薦】一起雲逛店吧~",
-      link: shareLink.value,
-      imgUrl: "https://glp-vr.cdfmembers.com/cdf/file/91dd5305525f463286f03a31abd1c154.jpg",
-    });
-
-    if (browser.detectWeixin()) {
-      //ios的ua中无miniProgram,但都有MicroMessenger(表示是微信浏览器)
-      wx.miniProgram.getEnv((res) => {
-        if (res.miniprogram) {
-          wx.miniProgram.postMessage({
-            data: {
-              title: "【好友推薦】一起雲逛店吧~",
-              imageUrl: "https://glp-vr.cdfmembers.com/cdf/file/91dd5305525f463286f03a31abd1c154.jpg",
-              h5Url: shareLink.value,
-            },
-          });
-          //在小程序里
-        }
-      });
-    }
-
-    console.log("分享", shareLink.value);
-
+  
     let tmp = "";
 
     if (user_info.value.Role == "leader") {
@@ -594,7 +569,7 @@ const startFollow = (app) => {
         },
       ]);
     }
-    console.log("創建房間後更新url", tmp);
+    
     store.commit("rtc/setRole", user_info.value.Role);
     history.replaceState(null, null, tmp);
   });
@@ -602,7 +577,7 @@ const startFollow = (app) => {
   socket.value.on("action", (data) => {
     console.log(data,'=============');
     if (data.type == "error") {
-      Dialog.toast({ content: `房未找到`, type: "error" });
+      Dialog.toast({ content: `房未找到`, type: "error" });
       emit("closeSocket");
     } else if (data.type == "danmumsg") {
       setReceiveMsg(data.data);
@@ -614,9 +589,9 @@ const startFollow = (app) => {
       onDraw(data.open);
       if (role.value == "customer") {
         if (data.open) {
-          Dialog.toast({ content: `主持人開啟畫筆` });
+          Dialog.toast({ content: `主持人开启画笔` });
         } else {
-          Dialog.toast({ content: `主持人關閉畫筆` });
+          Dialog.toast({ content: `主持人关闭画笔` });
         }
       }
     } else if (data.type == "user-join") {
@@ -632,7 +607,7 @@ const startFollow = (app) => {
       onMemberLeave(data);
     } else if (data.type == "leader-dismiss") {
       emit("closeSocket");
-      Dialog.toast({ content: `主持人已解散房` });
+      Dialog.toast({ content: `主持人已解散房` });
     } else if (data.type == "tagclick") {
       if (role.value == "customer") {
         let item = tags.value.find((item) => item.sid == data.data.sid);

+ 2 - 2
src/components/RTC/Trtccom.vue

@@ -112,7 +112,7 @@ watch(
 
 TRTC.checkSystemRequirements().then((checkResult) => {
   if (!checkResult.result) {
-    Dialog.toast({ content: `您的設備不支持音視頻通訊`, type: "error" });
+    Dialog.toast({ content: `您的设备不支持音视频通讯`, type: "error" });
   } else {
     show.value = true;
   }
@@ -186,7 +186,7 @@ async function handleJoin() {
         okText: "确定",
         content:
           "<span style='font-size: 16px; line-height: 1.5;'>在用户与网页产生交互(例如点击、触摸页面等)之前,网页将被禁止播放带有声音的媒体。点击恢复播放<span/>",
-        title: "隱私條款:",
+        title: "隐私条款:",
         single: true,
         func: (state) => {
           if (state == "ok") {

+ 4 - 4
src/components/RTC/dialog/createdRoom.vue

@@ -3,15 +3,15 @@
     <div class="created_dialog">
       <div class="blurBox"></div>
       <div class="content">
-        <div class="dialog_title" v-if="role == 'leader'">建一起逛</div>
-        <div class="dialog_title" v-else>入一起逛</div>
+        <div class="dialog_title" v-if="role == 'leader'">建一起逛</div>
+        <div class="dialog_title" v-else>入一起逛</div>
         <div class="user_name">
           <input
             class="input_name"
             maxlength="20"
             v-model.trim="userName"
             type="text"
-            :placeholder="role == 'leader' ? ' 請輸入發起人昵稱' : '請輸入您的昵稱'"
+            :placeholder="role == 'leader' ? ' 请输入发起人昵称' : '请输入您的昵称'"
           />
           <span class="limitNum">{{ userName.length }}/20</span>
         </div>
@@ -20,7 +20,7 @@
         </div> -->
         <div class="created_btn">
           <div class="created_cancel" @click="closeCreated">取消</div>
-          <div class="created_confirm" @click="createdConfirm">確認</div>
+          <div class="created_confirm" @click="createdConfirm">确认</div>
         </div>
       </div>
     </div>

+ 1 - 1
src/components/RTC/dialog/index.vue

@@ -7,7 +7,7 @@
         <p class="dialog_desc">{{ props.desc }}</p>
         <div class="created_btn">
           <div class="end_cancel" @click="endLiveCancel">取消</div>
-          <div class="end_confirm" @click="endLiveConfirm">確認</div>
+          <div class="end_confirm" @click="endLiveConfirm">确认</div>
         </div>
       </div>
     </div>

+ 3 - 3
src/components/RTC/dialog/share.vue

@@ -12,7 +12,7 @@
 
         <div class="created_btn">
           <div class="created_cancel" @click="closeCreated">取消</div>
-          <div class="created_confirm"  ref="copylink$" :data-clipboard-text="shareLink" @click="createdConfirm">複製分享</div>
+          <div class="created_confirm"  ref="copylink$" :data-clipboard-text="shareLink" @click="createdConfirm">复制分享</div>
         </div>
       </div>
     </div>
@@ -29,7 +29,7 @@ const emit = defineEmits(["closeDialog"]);
 const props = defineProps({
   title: {
     type: String,
-    default: "邀好友",
+    default: "邀好友",
   },
   shareLink: {
     type: String,
@@ -50,7 +50,7 @@ onMounted(() => {
    nextTick(()=>{
      new ClipboardJS(copylink$.value).on('success', function (e) {
         e.clearSelection()
-        Dialog.toast({ content: '鏈接複製成功', type: 'success' })
+        Dialog.toast({ content: '链接复制成功', type: 'success' })
     })
    })
 })

+ 1 - 1
src/components/RTC/index.vue

@@ -92,7 +92,7 @@ const closeCreated = (str, link) => {
 const createdConfirm = (str, link) => {
   showCreated.value = false;
   show.value = true;
-  showguide();
+  //showguide();
 };
 
 const showguide = () => {

+ 3 - 3
src/components/RTC/trtc/Device.vue

@@ -37,7 +37,7 @@ const updateDevice = async () => {
     if (cameraItems[0]) {
       store.commit("rtc/setVideoDeviceId", cameraItems[0].deviceId);
     } else {
-      Dialog.toast({ content: `無法獲取您的攝像頭權限`, type: "error" });
+      Dialog.toast({ content: `无法获取您的摄像头权限`, type: "error" });
     }
   }
 
@@ -45,7 +45,7 @@ const updateDevice = async () => {
     if (microphoneItems[0]) {
       store.commit("rtc/setAudioDeviceId", microphoneItems[0].deviceId);
     } else {
-      Dialog.toast({ content: `無法獲取您的麥克風權限`, type: "error" });
+      Dialog.toast({ content: `无法获取您的麦克风权限`, type: "error" });
     }
   }
 };
@@ -65,7 +65,7 @@ navigator.mediaDevices
   })
   .catch((error) => {
     console.log(error, "error");
-    Dialog.toast({ content: `請授權您的麥克風${role.value == "leader" ? "和攝像頭" : ""}權限`, type: "error" });
+    Dialog.toast({ content: `请授权您的麦克风${role.value == "leader" ? "和摄像头" : ""}权限`, type: "error" });
   });
 
 navigator.mediaDevices.ondevicechange = updateDevice;

+ 5 - 14
src/main.js

@@ -4,18 +4,9 @@ import Components from "./global_components";
 import { createApp } from "vue";
 import store from "./store";
 import App from "./app.vue";
-import browser from "@/utils/browser";
 
-if (!window.location.search) {
-  window.location.href = "/index.html?m=eur-KJ-z5ZEV22AeU&pose=pano:408,qua:-0.006,0.6299,0.0049,0.7766";
-} else if (!browser.hasURLParam("pose") && browser.getURLParam("m") == "eur-KJ-z5ZEV22AeU") {
-  let url = window.location.href + `&pose=pano:408,qua:-0.006,0.6299,0.0049,0.7766`;
-  window.location.href = url;
-} else {
-  const app = createApp(App);
-
-  app.use(store);
-  app.use(Components);
-  app.directive("click-outside", ClickOutSide);
-  app.mount("#app");
-}
+const app = createApp(App);
+app.use(store);
+app.use(Components);
+app.directive("click-outside", ClickOutSide);
+app.mount("#app");

+ 1 - 174
src/views/Panel.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="panel" @mousemove.prevent @touchmove.prevent :style="{ top: panelNewTop == null ? null : `${panelNewTop}px` }">
+  <div class="panel" @mousemove.prevent @touchmove.prevent >
     <slot></slot>
   </div>
 </template>
@@ -7,179 +7,6 @@
 <script setup>
 import { ref, onMounted, computed, watch, nextTick, defineProps } from "vue";
 import { useStore } from "vuex";
-
-const props = defineProps({
-  isOpen: {
-    default: false,
-  },
-});
-
-watch(
-  () => props.isOpen,
-  () => {
-    const $panel = document.querySelector(".panel");
-    let orgTop = $panel.offsetTop;
-    let newTop = window.innerHeight - $panel.clientHeight;
-    let value = orgTop - newTop;
-    if (value > 0) {
-      openPanel($panel, orgTop, value);
-    } else {
-      resetPanel();
-    }
-  }
-);
-
-const panelNewTop = ref(null);
-const panelOrgTop = ref(0);
-
-const store = useStore();
-
-const resetPanel = () => {
-  if (panelOrgTop.value > 0) {
-    KanKan.Animate.transitions.start((progress) => {
-      const $panel = document.querySelector(".panel");
-      if (!$panel) {
-        return
-      }
-      let orgTop = $panel.offsetTop;
-      let newTop = panelOrgTop.value;
-      let value = orgTop - newTop;
-
-      panelNewTop.value = orgTop - value * progress;
-
-      const $color = $panel.querySelectorAll(".color");
-      $color.forEach((item) => {
-        item.style.backgroundColor = `rgba(0, 0, 0, ${0.2})`;
-      });
-    }, 200);
-  }
-};
-
-const openPanel = ($panel, orgTop, value) => {
-  KanKan.Animate.transitions.start((progress) => {
-    panelNewTop.value = orgTop - value * progress;
-    let opc = progress;
-    if (opc < 0.2) {
-      opc = 0.2;
-    } else if (opc > 0.5) {
-      opc = 0.5;
-    }
-
-    const $color = $panel.querySelectorAll(".color");
-    $color.forEach((item) => {
-      item.style.backgroundColor = `rgba(0, 0, 0, ${opc})`;
-    });
-  }, 200);
-};
-
-onMounted(() => {
-  nextTick(() => {
-    document.querySelector(".player").addEventListener("touchstart", () => {
-      resetPanel();
-      // openPanel();
-    });
-  });
-  const $panel = document.querySelector(".panel");
-  const $color = $panel.querySelectorAll(".color");
-  $panel.addEventListener("touchstart", down, false);
-  $panel.addEventListener("mousedown", down, false);
-
-  panelOrgTop.value = $panel.offsetTop;
-
-  let pos = {
-    top: panelOrgTop.value,
-  };
-
-  let timing = null;
-
-  function down(e) {
-    e.stopPropagation();
-
-    pos.new = ((e.touches && e.touches[0]) || e).clientY;
-    pos.org = $panel.offsetTop;
-    pos.eHeight = $panel.clientHeight;
-    pos.wHeight = window.innerHeight;
-
-    $panel.addEventListener("touchmove", move, false);
-    $panel.addEventListener("mousemove", move, false);
-    $panel.addEventListener("touchend", up, false);
-    $panel.addEventListener("mouseup", up, false);
-
-    store.commit("SetPlayerOptions", {
-      showMap: true,
-      showToolbar: true,
-      showDescription: false,
-    });
-  }
-  function move(e) {
-    e.stopPropagation();
-    let top = ((e.touches && e.touches[0]) || e).clientY + pos.org - pos.new;
-    let opc = (pos.wHeight - top) / pos.eHeight;
-    if (opc < 0.2) {
-      opc = 0.2;
-    } else if (opc > 0.5) {
-      opc = 0.5;
-    }
-
-    // if (top > pos.top) {
-    //     top = pos.top;
-    // }
-    if (top + pos.eHeight < pos.wHeight) {
-      top = pos.wHeight - pos.eHeight;
-    } else if (top > panelOrgTop.value) {
-      top = panelOrgTop.value;
-    }
-
-    $color.forEach((item) => {
-      item.style.backgroundColor = `rgba(0, 0, 0, ${opc})`;
-    });
-    panelNewTop.value = top;
-
-    if (timing == null) {
-      timing = Date.now();
-    }
-  }
-
-  function up(e) {
-    $panel.removeEventListener("touchmove", move, false);
-    $panel.removeEventListener("mousemove", move, false);
-    $panel.removeEventListener("touchend", up, false);
-    $panel.removeEventListener("mouseup", up, false);
-    pos.end = ((e.changedTouches && e.changedTouches[0]) || e).clientY;
-
-    if (Date.now() - timing < 500) {
-      let diff = pos.end - pos.new;
-      let orgTop = 0;
-      let newTop = 0;
-
-      if (Math.abs(diff) > 5) {
-        let value = 0;
-        if (diff > 0) {
-          orgTop = $panel.offsetTop;
-          newTop = panelOrgTop.value;
-          value = orgTop - newTop;
-        } else {
-          orgTop = $panel.offsetTop;
-          newTop = pos.wHeight - pos.eHeight;
-          value = orgTop - newTop;
-        }
-        KanKan.Animate.transitions.start((progress) => {
-          panelNewTop.value = orgTop - value * progress;
-          let opc = (pos.wHeight - panelNewTop.value) / pos.eHeight;
-          if (opc < 0.2) {
-            opc = 0.2;
-          } else if (opc > 0.5) {
-            opc = 0.5;
-          }
-          $color.forEach((item) => {
-            item.style.backgroundColor = `rgba(0, 0, 0, ${opc})`;
-          });
-        }, 200);
-      }
-    }
-    timing = null;
-  }
-});
 </script>
 
 <style lang="scss" scoped>

+ 0 - 5
vue.config.js

@@ -18,11 +18,6 @@ module.exports = defineConfig({
     },
     proxy: {
       "/service": {
-        // target: "https://v4-test.4dkankan.com/",
-        target: process.env.VUE_APP_APIS_URL,
-        changeOrigin: true,
-      },
-      "/api": {
         target: process.env.VUE_APP_APIS_URL,
         changeOrigin: true,
       },