Browse Source

Merge branch 'v1.0.0'

任一存 1 year ago
parent
commit
539cfbeee5

+ 5 - 3
.env.development

@@ -1,6 +1,6 @@
 
 # 场景资源地址
-VUE_APP_RESOURCE_URL=https://eurs3.4dkankan.com/
+VUE_APP_RESOURCE_URL=https://testeurs3.4dkankan.com/
 # 静态资源地址
 VUE_APP_CDN_URL=https://4dkk.4dage.com/v4/www/
 # sdk文件地址
@@ -11,6 +11,9 @@ VUE_APP_SDK_DIR=https://eurs3.4dkankan.com/v4/cdfg/sdk-new
 VUE_APP_SOCKET_URL=https://vr-admin.cdfmembers.com/
 
 
+# 热点地址
+VUE_APP_HOT_URL=https://glp-vr.cdfmembers.com/
+
 # 静态资源目录
 VUE_APP_STATIC_DIR=viewer
 
@@ -18,6 +21,5 @@ 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://vr.cdfmembers.com/
+VUE_APP_APIS_URL=https://zhongmian.4dage.com/
 

+ 5 - 3
.env

@@ -1,15 +1,18 @@
 
 # 场景资源地址
-VUE_APP_RESOURCE_URL=https://eurs3.4dkankan.com/
+VUE_APP_RESOURCE_URL=https://testeurs3.4dkankan.com/
 # 静态资源地址
 VUE_APP_CDN_URL=https://4dkk.4dage.com/v4/www/
 # sdk文件地址
 VUE_APP_SDK_DIR=https://eurs3.4dkankan.com/v4/cdfg/sdk-new
 
+
 # socket地址
 VUE_APP_SOCKET_URL=https://vr-admin.cdfmembers.com/
 
 
+# 热点地址
+VUE_APP_HOT_URL=https://glp-vr.cdfmembers.com/
 
 # 静态资源目录
 VUE_APP_STATIC_DIR=viewer
@@ -17,7 +20,6 @@ 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://zhongmian.4dage.com/
 

+ 10 - 3
.env.prod

@@ -1,10 +1,19 @@
+
 # 场景资源地址
-VUE_APP_RESOURCE_URL=https://glp-vr.cdfmembers.com/
+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-new
 
+
+# socket地址
+VUE_APP_SOCKET_URL=https://vr-admin.cdfmembers.com/
+
+
+# 热点地址
+VUE_APP_HOT_URL=https://glp-vr.cdfmembers.com/
+
 # 静态资源目录
 VUE_APP_STATIC_DIR=viewer
 
@@ -14,5 +23,3 @@ VUE_APP_REGION_URL=aws
 # 接口请求地址
 VUE_APP_APIS_URL=https://vr.cdfmembers.com/
 
-# socket地址
-VUE_APP_SOCKET_URL=https://vr-admin.cdfmembers.com/

+ 68 - 24
README.md

@@ -1,24 +1,68 @@
-# cdfg_vue3
-
-## Project setup
-```
-npm install
-```
-
-### Compiles and hot-reloads for development
-```
-npm run serve
-```
-
-### Compiles and minifies for production
-```
-npm run build
-```
-
-### Lints and fixes files
-```
-npm run lint
-```
-
-### Customize configuration
-See [Configuration Reference](https://cli.vuejs.org/config/).
+# 这是啥
+中免-展示端-澳门
+
+# 翻墙
+测试环境,有时候不翻墙会拿不到资源文件。但正式环境,翻墙了又会有明显的缓存问题……
+
+# 分支
+v1.0.0
+
+# 开发时
+如果遇到报错:Cannot read properties of undefined (reading 'sceneResolution') 说明场景码用错了,默认的场景码也会导致这个报错,因为默认场景码是正式环境的,而开发时要用测试环境的场景码。
+
+# 测试环境
+
+## url
+https://zhongmian.4dage.com/index.html?m=KJ-t-eur-jQNf6bUbybH
+
+## 部署位置
+WinSCP连接221.4.210.172,/Default/aws/中免/aws-中免-18.156.200.112/var/www/html/zhongmian-test/dist/
+
+# 正式环境
+
+## url
+https://vr.cdfmembers.com/index.html?m=eur-KJ-UuYn0F0iY6
+
+## 部署位置
+WinSCP连接221.4.210.172,/Default/aws/中免/aws-中免-18.156.200.112/var/www/html/cdfmembers
+
+# SAAS 海鲲 AR预览界面相关接口 这文档写的什么垃圾,有错误……
+接口名称:获取skuid及预览url列表
+接口类型:GET HTTP
+接口地址:https://ar-admin.cdfmembers.com/api/getSkuList
+
+接口查询逻辑:
+1.传入规格id和商品id,如果有对应商品存在,则返回skuid+url,否则返回空;
+2.传入规格id,如果该规格id有对应商品id存在,则返回skuid+url列表,否则返回空。
+
+接口示例:https://ar-admin.cdfmembers.com/api/getSkuList?spuId=p15685542&storeId=1
+
+请求参数:
+字段:      skuId       skuId      storeID  
+字段说明:   商品id       规格id     门店ID
+类型:      String      String     String     
+是否必填:   是           否        是   
+
+线上门店ID列表:
+澳门店:1
+东涌店:2
+柬中免店:3
+会员购店:12
+
+返回结果:
+[
+    {
+        "skuId": "c75494370",
+        "url": "https://ar.cdfmembers.com/spu?showType=makeup"
+    },
+    {
+        "skuId": "c75494370",
+        "url": "https://ar.cdfmembers.com/spu?showType=makeup"
+    }
+]
+
+拿到返回结果后,拼接URL和用户信息等参数,向预览界面跳转
+参数:
+userId,storeId,spuId,AccessToken,cookieId等(makeup这个参数是我们提供的,所以需要将前面的参数拼接到返回URL上面)
+请求示例:
+https://ar.cdfmembers.com/spu?showType=makeup&spuId=p15685542&storeId=1&userId=601131887&AccessToken=05508E6249DF10D42876C63E6823E98AAFCA8B1CD592F0D5B5A112BF3B51BB01BD5C8661A63D9D16039DA34FD0352B184F892FAB146A3531&cookieId=24fb1f47-cf3f-4a3d-c0fe-62be0c99a400

+ 3 - 2
package.json

@@ -1,11 +1,12 @@
 {
   "name": "cdfg_vue3",
-  "version": "0.1.0",
+  "version": "1.0.1",
   "private": true,
   "scripts": {
     "serve": "vue-cli-service serve",
     "serve-prod": "vue-cli-service serve --mode prod",
-    "build": "vue-cli-service build",
+    "build-test": "vue-cli-service build --mode mytest",
+    "build-prod": "vue-cli-service build --mode prod",
     "lint": "vue-cli-service lint"
   },
   "dependencies": {

+ 3 - 2
public/index.html

@@ -8,7 +8,7 @@
     <link rel="stylesheet" href="//at.alicdn.com/t/font_2596172_ejg30arrayu.css" />
     <link rel="stylesheet" href="//at.alicdn.com/t/font_3423899_m7c62apktz.css" />
     <link rel="stylesheet" href="<%= BASE_URL %><%= VUE_APP_STATIC_DIR %>/static/lib/animate/animate.min.css" />
-    <link rel="stylesheet" href="<%= BASE_URL %><%= VUE_APP_STATIC_DIR %>/static/lib/swiper/swiper-bundle.min.css" />
+    <link rel="stylesheet" href="<%= BASE_URL %><%= VUE_APP_STATIC_DIR %>/static/lib/swiper/swiper.min.css" />
 
     <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>
@@ -22,7 +22,7 @@
     <div id="app"></div>
     <script src="<%= BASE_URL %><%= VUE_APP_STATIC_DIR %>/static/lib/flv.min.js"></script>
     <script src="<%= BASE_URL %><%= VUE_APP_STATIC_DIR %>/static/lib/vconsole.js"></script>
-    <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/swiper/swiper.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>
 
@@ -41,6 +41,7 @@
       if ((query = window.location.href.indexOf('vlog') != -1)) {
         var vConsole = new window.VConsole();
       }
+      // new VConsole()
     </script>
   </body>
 </html>

File diff suppressed because it is too large
+ 5 - 5
public/viewer/static/lib/swiper/swiper.min.css


File diff suppressed because it is too large
+ 6 - 6
public/viewer/static/lib/swiper/swiper.min.js


BIN
src/assets/images/icon/AR.png


BIN
src/assets/images/icon/music_off@2x.png


BIN
src/assets/images/icon/music_on@2x.png


+ 10 - 1
src/components/Controls/Panel/Main.vue

@@ -17,6 +17,7 @@
             <div>{{ item.name }}</div>
           </li>
 
+          <!-- 一起逛 -->
           <li v-if="showdaogou">
             <ui-icon
               type="guided_shopping"
@@ -230,11 +231,15 @@ const brandScroll = () => {
         grid: {
           rows: 2,
         },
+        observer:true,
         on: {
           touchMove(swiper, e) {
             e.stopPropagation();
             e.preventDefault();
           },
+          observerUpdate(swiper, e) {
+            swiper.slideTo(0)
+          }, 
         },
       });
 
@@ -259,7 +264,11 @@ const onClickMenu = (item) => {
       'https://webpage.qidian.qq.com/2/chat/h5/index.html?linkType=1&env=ol&kfuin=3009110132&fid=3655&key=9b4334768c39150ead3f23e11e5dc2e4&cate=7&source=0&isLBS=0&isCustomEntry=0&type=10&ftype=1&_type=wpa&qidian=true&_pid=kvrmvu.74cg11.l43qvbcu&translateSwitch=0&isSsc=0&roleValue=4&roleData=922223821';
     window.open(mglink, '_blank');
   } else if (item.id == 'shopping') {
-    browser.openLink('/subPackage/pages/shoppingcart/shoppingcart', 'https://m.cdfmembers.com/shop/600667208/shoppingcart', '/subPackage/pages/shoppingcart/shoppingcart');
+    browser.openLink('/subPackage/pages/shoppingcart/shoppingcart', 
+    'https://m.cdfmembers.com/shop/600667208/shoppingcart', 
+    '/subPackage/pages/shoppingcart/shoppingcart',
+    `https://glp.cdfmembers.com/shoppingcart`
+    );
   } else if (item.id == 'help') {
     store.commit('showUserGuide', true);
   } else if (item.id == 'guided_shopping') {

+ 3 - 1
src/components/RTC/dialog/createdRoom.vue

@@ -29,6 +29,9 @@
 
 <script setup>
 import { useI18n, getLocale } from "@/i18n";
+import { ref } from "vue";
+
+const userName = ref('')
 const { t } = useI18n({ useScope: "global" });
 </script>
 
@@ -53,7 +56,6 @@ export default {
         },
       ],
       store: useStore(),
-      userName: "",
       roomId: browser.getURLParam("roomId"),
       $t: this.t,
     };

+ 77 - 10
src/components/Tags/goods-list.vue

@@ -60,8 +60,12 @@
               <div class="goods-button">
                 <span v-if="i.saleChannel == 1" class="tipss">{{$t('common.onlyOffLine')}}</span>
                 <template v-else>
-                  <div @click.stop="viewDetail(i)">{{$t('common.viewDetail')}}</div>
-                  <div @click.stop="addCart(i)">{{$t('common.addCart')}}</div>
+                  <div class="btn-try-use" v-if="i?.skuList?.length" @click.stop="onClickTryUse(i)">
+                    <img class="icon" src="@/assets/images/icon/AR.png" alt="" draggable="false">
+                    <span>{{ $t('common.tryUse') }}</span>
+                  </div>
+                  <div class="btn-normal" @click.stop="viewDetail(i)">{{$t('common.viewDetail')}}</div>
+                  <div class="btn-normal" @click.stop="addCart(i)">{{$t('common.addCart')}}</div>
                 </template>
               </div>
             </div>
@@ -105,7 +109,9 @@ const viewDetail = (item) => {
   browser.openLink(
     `/pages/item/item?productId=${item.id}`,
     `https://m.cdfmembers.com/shop/600667208/item?productId=${item.id}`,
-    `/pages/item/item?productId=${item.id}`
+    `/pages/item/item?productId=${item.id}`,
+    `https://glp.cdfmembers.com/item/${item.id}`
+
   );
 };
 
@@ -123,6 +129,33 @@ const onClickSku = (item) => {
   });
 };
 
+function onClickTryUse(productInfo) {
+  Loading.show()
+  console.log(productInfo);
+
+  const userId = browser.getURLParam("userId")
+  const accessToken = browser.getURLParam("AccessToken")
+  const cookieId = browser.getURLParam("cookieId")
+  if (userId && accessToken && cookieId) {
+    const urlObj = new URL(productInfo.skuList[0].url)
+    urlObj.searchParams.set('tagid', tagclick.value.data.sid)
+    urlObj.searchParams.set('userId', userId)
+    urlObj.searchParams.set('AccessToken', AccessToken)
+    urlObj.searchParams.set('cookieId', cookieId)
+    location.assign(urlObj.href)
+  } else {
+    let callbackUrl = `${window.location.origin}${window.location.pathname}?m=${browser.getURLParam("m")}&${getApp().Camera.getPoseUrlParams()}`;
+
+    if (!browser.hasURLParam("tagid")) {
+      callbackUrl += `&tagid=${tagclick.value.data.sid}`;
+    } else {
+      callbackUrl = browser.replaceQueryString(callbackUrl, "tagid", tagclick.value.data.sid);
+    }
+
+    location.hrf = `https://glp.cdfmembers.com/login?redirectUrl=${encodeURIComponent(callbackUrl)}`
+  }
+}
+
 const addCart = async (item) => {
   if (isshoppingguide.value) {
     return;
@@ -153,7 +186,8 @@ const addCart = async (item) => {
     browser.openLink(
       `/pages/login/login?callbackHttpUrl=${encodeURIComponent(callbackUrl)}`,
       `https://m.cdfmembers.com/shop/600667208/h5login?redirectUrl=${encodeURIComponent(callbackUrl)}`,
-      `/pages/login/login?callbackHttpUrl=${encodeURIComponent(callbackUrl)}`
+      `/pages/login/login?callbackHttpUrl=${encodeURIComponent(callbackUrl)}`,
+      `https://glp.cdfmembers.com/login?redirectUrl=${encodeURIComponent(callbackUrl)}`,
     );
   }
 };
@@ -231,7 +265,7 @@ const brandScroll = () => {
         on: {
           touchMove(swiper, e) {
             e.stopPropagation();
-            e.preventDefault();
+            // e.preventDefault();
           },
           slideChange() {
             if (tagclick.value.type) {
@@ -267,6 +301,8 @@ onMounted(() => {
   align-items: center;
   flex-direction: column;
   justify-content: center;
+  padding-top: 20px;
+  padding-bottom: 20px;
   .head-pages {
     display: flex;
     justify-content: space-between;
@@ -300,13 +336,21 @@ onMounted(() => {
         overflow: hidden;
 
         > div {
-        background: #fff;
-        padding-bottom: 14px;
-
+          background: #fff;
+          max-height: 100%;
+          display: flex;
+          flex-direction: column;
+          >.imgcon{
+            flex: 0 0 auto;
+            height: 34vh;
+          }
           .info {
+            flex: 0 1 auto;
             font-size: 14px;
             color: #131d34;
             padding: 16px 20px;
+            box-sizing: border-box;
+            overflow: auto;
             > p {
               font-size: 16px;
               width: 100%;
@@ -382,12 +426,35 @@ onMounted(() => {
             }
           }
           .goods-button {
+            flex: 0 0 auto;
             display: flex;
             justify-content: space-between;
             font-size: 16px;
             padding: 0 20px;
-
-            > div {
+            gap: 10px;
+            padding-top: 14px;
+            padding-bottom: 14px;
+            >div.btn-try-use{
+              display: flex;
+              flex-direction: column;
+              justify-content: center;
+              margin-right: 29px;
+              align-items: center;
+              >img{
+                width: 18px;
+                height: 18px;
+                margin-bottom: 4px;
+              }
+              >span{
+                font-size: 9px;
+                font-family: PingFangSC-Regular, PingFang SC;
+                font-weight: 400;
+                color: #909090;
+                line-height: 13px;
+                white-space: pre;
+              }
+            }
+            > div.btn-normal {
               height: 42px;
               background: #ff8e24;
               border-radius: 4px;

+ 2 - 1
src/components/Tags/treasure.vue

@@ -33,7 +33,8 @@ const goto_now = () => {
     browser.openLink(
       "/subPackage/pages/activity/activity?pageId=" + tag.couponLink,
       `https://m.cdfmembers.com/shop/600667208/showactivity?pageId=${tag.couponLink}`,
-      `/pages/showactivity/showactivity?pageId=${tag.couponLink}`
+      `/pages/showactivity/showactivity?pageId=${tag.couponLink}`,
+      `https://glp.cdfmembers.com/showactivity/${tag.couponLink}`
     );
     emit("close");
   } catch (error) {

+ 14 - 3
src/components/Tags/waterfall.vue

@@ -3,7 +3,8 @@
     <div class="waterfall" v-if="tagclick.type == 'waterfall'">
       <div class="waterfallcon">
         <div class="wfheader">
-          <img :src="require('@/assets/images/icon/top5.png')" alt="" />
+          <!-- <img :src="require('@/assets/images/icon/top5.png')" alt="" /> -->
+          <img class="" :src="tagclick.data.icon" alt="" draggable="false">
           <ui-icon @click="emit('close')" type="close"></ui-icon>
         </div>
         <ul class="wfcon">
@@ -43,8 +44,16 @@ const gotoGoods = (item) => {
   if (isshoppingguide.value) {
       return;
   }
-  apis.burying_point({ type: 3, productId: item.id });
-  browser.openLink(`/pages/item/item?productId=${item.id}`, `https://m.cdfmembers.com/shop/600667208/item?productId=${item.id}`,`/pages/item/item?productId=${item.id}`);
+  const temp = tagclick.value
+  temp.type = 'goodlist'
+  temp.data.products = [item]
+  store.commit('tag/setTagClickType', temp);
+  // apis.burying_point({ type: 3, productId: item.id });
+  // browser.openLink(`/pages/item/item?productId=${item.id}`,
+  //  `https://m.cdfmembers.com/shop/600667208/item?productId=${item.id}`,
+  //  `/pages/item/item?productId=${item.id}`,
+  //  `https://glp.cdfmembers.com/item/${item.id}`
+  //  );
 };
 </script>
 
@@ -80,6 +89,8 @@ const gotoGoods = (item) => {
       align-items: center;
       > img {
         width: 80px;
+        max-height: 80px;
+        object-fit: contain;
       }
     }
     .wfcon {

+ 1 - 0
src/locales/en.json

@@ -67,6 +67,7 @@
     "viewDetailFail": "Failed to get the product information; Please try again later",
     "addCart": "Add to cart",
     "viewDetail": "View details",
+    "tryUse": "Try it on!",
     "onlyOffLine":"Offline shopping only",
     "guige":"Specification:",
     "shuliang":"Quantity:",

+ 1 - 0
src/locales/zh_CN.json

@@ -67,6 +67,7 @@
     "viewDetailFail": "获取商品详情失败,请稍后再试",
     "addCart": "加入购物车",
     "viewDetail": "查看详情",
+    "tryUse": "AR试用",
     "onlyOffLine":"仅供线下门店购买",
     "guige":"规格:",
     "shuliang":"数量:",

+ 1 - 0
src/locales/zh_HK.json

@@ -67,6 +67,7 @@
     "viewDetailFail": "獲取商品詳情失敗,請稍後再試",
     "addCart": "加入購物車",
     "viewDetail": "查看詳情",
+    "tryUse": "AR試用",
     "onlyOffLine":"僅供線下門店購買",
     "guige":"規格:",
     "shuliang":"數量:",

+ 2 - 0
src/pages/scene.js

@@ -7,6 +7,8 @@ import App from "./scene.vue";
 import browser from "@/utils/browser";
 import i18n, { getLocale, setI18nLanguage, loadLocaleMessages } from './i18n'
 
+console.log(`version: ${process.env.VUE_APP_VERSION}`)
+
 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") {

+ 73 - 63
src/pages/scene.vue

@@ -371,74 +371,81 @@ onMounted(async () => {
     })
     .then((view) => {
       view.on('click', (e) => {
-        var tag = e.data;
-        // 聚焦當前點擊的熱點
-        view.focus(tag.sid).then(() => {
-          if (tag.type == 'coupon') {
-            try {
-              if (isshoppingguide.value) {
-                return;
-              }
-              document.querySelector(`[data-tag-id="${tag.sid}"] .tag-icon`).style.display = 'none';
-              let hotcontent = typeof tag.hotContent == 'string' ? JSON.parse(tag.hotContent) : tag.hotContent;
-              browser.openLink(
-                '/subPackage/pages/activity/activity?pageId=' + hotcontent.couponLink,
-                `https://m.cdfmembers.com/shop/600667208/showactivity?pageId=${hotcontent.couponLink}`,
-                `/pages/showactivity/showactivity?pageId=${hotcontent.couponLink}`
-              );
-              apis.burying_point({ type: 2 });
-            } catch (error) {}
-          } else if (tag.type == 'waterfall') {
-            store.commit('tag/setTagClickType', {
-              type: 'waterfall',
-              data: tag,
-            });
-            guideclicktag(tag);
-          } else if (tag.type == 'applet_link') {
-            try {
-              if (isshoppingguide.value) {
-                return;
-              }
-              let hotcontent = typeof tag.hotContent == 'string' ? JSON.parse(tag.hotContent) : tag.hotContent;
-              browser.openLink(
-                '/subPackage/pages/home/home?pageType=2&pageId=' + hotcontent.liveLink,
-                `https://m.cdfmembers.com/shop/600667208/showactivity?pageId=${hotcontent.liveLink}`,
-                `/pages/showactivity/showactivity?pageId=${hotcontent.liveLink}`
-              );
-            } catch (error) {}
-          } else if (tag.type == 'link_scene') {
-            guideclicktag(tag);
-            let sceneFirstView = tag.hotContent.sceneFirstView;
-            window.location.href = jumpNewScene(sceneFirstView);
-          }
-        });
+      var tag = e.data;
+      // 聚焦當前點擊的熱點
+      view.focus(tag.sid).then(() => {
+        if (tag.type == 'coupon') {
+          try {
+            if (isshoppingguide.value) {
+              return;
+            }
+            document.querySelector(`[data-tag-id="${tag.sid}"] .tag-icon`).style.display = 'none';
+            let hotcontent = typeof tag.hotContent == 'string' ? JSON.parse(tag.hotContent) : tag.hotContent;
+            browser.openLink(
+              '/subPackage/pages/activity/activity?pageId=' + hotcontent.couponLink,
+              `https://m.cdfmembers.com/shop/600667208/showactivity?pageId=${hotcontent.couponLink}`,
+              `/pages/showactivity/showactivity?pageId=${hotcontent.couponLink}`,
+              `https://glp.cdfmembers.com/showactivity/${hotcontent.couponLink}`
+            );
+            apis.burying_point({ type: 2 });
+          } catch (error) {}
+        } else if (tag.type == 'waterfall') {
+          store.commit('tag/setTagClickType', {
+            type: 'waterfall',
+            data: tag,
+          });
+          guideclicktag(tag);
+        } else if (tag.type == 'applet_link') {
+          try {
+            if (isshoppingguide.value) {
+              return;
+            }
+            let hotcontent = typeof tag.hotContent == 'string' ? JSON.parse(tag.hotContent) : tag.hotContent;
+            browser.openLink(
+              '/subPackage/pages/home/home?pageType=2&pageId=' + hotcontent.liveLink,
+              `https://m.cdfmembers.com/shop/600667208/showactivity?pageId=${hotcontent.liveLink}`,
+              `/pages/showactivity/showactivity?pageId=${hotcontent.liveLink}`,
+              `https://m.cdfmembers.com/shop/600667208/showactivity?pageId=${hotcontent.liveLink}`,
+            );
+          } catch (error) {}
+        } else if (tag.type == 'link_scene') {
+          guideclicktag(tag);
+          let sceneFirstView = tag.hotContent.sceneFirstView;
+          window.location.href = jumpNewScene(sceneFirstView);
+        }
       });
+    });
 
-      view.on('focus', (e) => {
-        document.querySelectorAll('[xui_tags_view] >div').forEach((el) => {
-          if (el.getAttribute('data-tag-type') == 'link_scene' || el.getAttribute('data-tag-type') == 'commodity') {
-            el.querySelector('.tag-body').classList.remove('show');
-            el.style.zIndex = 'auto';
-          }
-        });
-        if (e.data.type == 'commodity' || e.data.type == 'link_scene') {
-          e.target.style.zIndex = '999';
-          e.target.querySelector('.tag-body').classList.add('show');
-          e.target.querySelector('.tag-commodity').removeEventListener('click', onClickTagInfo);
-          e.target.querySelector('.tag-commodity').addEventListener('click', onClickTagInfo);
+    view.on('focus', (e) => {
+      document.querySelectorAll('[xui_tags_view] >div').forEach((el) => {
+        if (el.getAttribute('data-tag-type') == 'link_scene' || el.getAttribute('data-tag-type') == 'commodity') {
+          el.querySelector('.tag-body').classList.remove('show');
+          el.style.zIndex = 'auto';
+        }
+      });
+      if (e.data.type == 'commodity' || e.data.type == 'link_scene') {
+        e.target.style.zIndex = '999';
+        e.target.querySelector('.tag-body').classList.add('show');
+        e.target.querySelector('.tag-commodity').removeEventListener('click', onClickTagInfo);
+        e.target.querySelector('.tag-commodity').addEventListener('click', onClickTagInfo);
 
+        setTimeout(() => {
           if (tagid) {
-            document.querySelector(`[data-id="${tagid}"]`) && document.querySelector(`[data-id="${tagid}"]`).click();
+            const clickTarget = document.querySelector(`[data-id="${tagid}"]`)
+            if (clickTarget) {
+              clickTarget.click();
+            }
             tagid = null;
           }
-        }
-      });
-
-      view.on('rendered', (e) => {
-        tagid && view.focus(tagid);
-      }); //dom渲染完成
+        }, 2000);
+      }
     });
 
+    view.on('rendered', (e) => {
+      tagid && view.focus(tagid);
+    }); //dom渲染完成
+  });
+
   app.use('TourPlayer');
 
   app.TourManager.on('loaded', (list) => {
@@ -500,7 +507,7 @@ onMounted(async () => {
       }
     }
 
-    app.resource.tags(`${process.env.VUE_APP_RESOURCE_URL}cdf/hot/${browser.getURLParam('m')}/hot.json?rnd=${Math.random()}`);
+    app.resource.tags(`https://glp-vr.cdfmembers.com/cdf/hot/${browser.getURLParam('m')}/hot.json?rnd=${Math.random()}`);
     useMusicPlayer();
   });
   app.Scene.on('panorama.videorenderer.resumerender', () => {
@@ -744,8 +751,11 @@ onMounted(async () => {
   }
 
   .waterfall {
-    width: 90px !important;
-    height: 90px !important;
+    width: 120px !important;
+    height: 120px !important;
+    &.animate {
+      animation: tag-animate-zoom 2s -1s linear infinite !important;
+    }
   }
 
   .applet_link {

+ 13 - 6
src/utils/browser.js

@@ -361,7 +361,7 @@ var browser = {
     }
     return (url.replace(re, name + "=" + value)).replace("?&",'?');
   },
-  openLink(mglink, h5link, appLink) {
+  openLink(mglink, h5link, appLink,pcLink) {
     if (this.getURLParam("isBuyerApp") === "1") {
       if (appLink) {
         wx.miniProgram.navigateTo({
@@ -397,11 +397,18 @@ var browser = {
         });
       }
     } else {
-      if (h5link) {
-        if (this.detectIOS()) {
-          window.location.href = h5link;
-        } else {
-          window.open(h5link, "_blank");
+      if (this.isMobile()) {
+        if (h5link) {
+          if (this.detectIOS()) {
+            window.location.href = h5link;
+          } else {
+            window.open(h5link, "_blank");
+          }
+        }
+      }
+      else {
+        if (pcLink){
+          window.location.href = pcLink;
         }
       }
     }

+ 2 - 0
vue.config.js

@@ -1,3 +1,5 @@
+process.env.VUE_APP_VERSION = require('./package.json').version
+
 const { defineConfig } = require("@vue/cli-service");
 module.exports = defineConfig({
   transpileDependencies: true,