Kaynağa Gözat

提交代码

tangning 1 yıl önce
ebeveyn
işleme
811178fc26

+ 4 - 1
.env

@@ -4,7 +4,7 @@ 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
+VUE_APP_SDK_DIR=https://eurs3.4dkankan.com/v4/cdfg/sdk-test-show
 
 # socket地址
 VUE_APP_SOCKET_URL=https://vr-admin.cdfmembers.com/
@@ -23,3 +23,6 @@ VUE_APP_REGION_URL=aws
 # 接口请求地址
 VUE_APP_APIS_URL=http://192.168.0.38:8888/
 
+# html 标题
+VUE_APP_APIS_TITLE='cdf Beauty'
+

+ 4 - 1
.env.bendi

@@ -5,7 +5,7 @@ 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
+VUE_APP_SDK_DIR=https://eurs3.4dkankan.com/v4/cdfg/sdk-test-show
 
 
 # socket地址
@@ -24,3 +24,6 @@ VUE_APP_REGION_URL=aws
 # 接口请求地址
 VUE_APP_APIS_URL=https://zhongmian.4dage.com/
 
+# html 标题
+VUE_APP_APIS_TITLE='cdf Beauty'
+

+ 5 - 2
.env.development

@@ -5,7 +5,7 @@ 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
+VUE_APP_SDK_DIR=https://eurs3.4dkankan.com/v4/cdfg/sdk-test-show
 
 
 # socket地址
@@ -22,4 +22,7 @@ VUE_APP_STATIC_DIR=viewer
 VUE_APP_REGION_URL=aws
 
 # 接口请求地址
-VUE_APP_APIS_URL=https://zhongmian.4dage.com/
+VUE_APP_APIS_URL=https://zhongmian.4dage.com/
+
+# html 标题
+VUE_APP_APIS_TITLE='cdf Beauty'

+ 26 - 0
.env.hkprod

@@ -0,0 +1,26 @@
+# 场景资源地址
+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
+
+# 云存储环境
+VUE_APP_REGION_URL=aws
+
+# 接口请求地址
+VUE_APP_APIS_URL=https://vr.cdfmembers.com/
+
+# html 标题
+VUE_APP_APIS_TITLE='Duty Zero'

+ 5 - 2
.env.mytest

@@ -5,7 +5,7 @@ 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
+VUE_APP_SDK_DIR=https://eurs3.4dkankan.com/v4/cdfg/sdk-test-show
 
 
 # socket地址
@@ -22,4 +22,7 @@ VUE_APP_STATIC_DIR=viewer
 VUE_APP_REGION_URL=aws
 
 # 接口请求地址
-VUE_APP_APIS_URL=https://zhongmian.4dage.com/
+VUE_APP_APIS_URL=https://zhongmian.4dage.com/
+
+# html 标题
+VUE_APP_APIS_TITLE='cdf Beauty'

+ 5 - 3
.env.prod

@@ -3,8 +3,7 @@ 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
-
+VUE_APP_SDK_DIR=https://eurs3.4dkankan.com/v4/cdfg/sdk-test-show
 
 # socket地址
 VUE_APP_SOCKET_URL=https://vr-admin.cdfmembers.com/
@@ -20,4 +19,7 @@ VUE_APP_STATIC_DIR=viewer
 VUE_APP_REGION_URL=aws
 
 # 接口请求地址
-VUE_APP_APIS_URL=https://vr.cdfmembers.com/
+VUE_APP_APIS_URL=https://vr.cdfmembers.com/
+
+# html 标题
+VUE_APP_APIS_TITLE='cdf Beauty'

+ 1 - 0
package.json

@@ -8,6 +8,7 @@
     "serve-HK": "vue-cli-service serve --mode bendi",
     "build-test": "vue-cli-service build --mode mytest",
     "build": "vue-cli-service build --mode prod",
+    "build-hk": "vue-cli-service build --mode hkprod",
     "lint": "vue-cli-service lint"
   },
   "dependencies": {

+ 3 - 4
public/index.html

@@ -13,7 +13,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>Duty Zero by cdf</title>
+    <title><%= htmlWebpackPlugin.options.title %></title>
   </head>
 
   <body>
@@ -26,11 +26,10 @@
     <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>
-    <script src="https://cdn.jsdelivr.net/npm/party-js@latest/bundle/party.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.81"></script>
-    <script src="<%= VUE_APP_SDK_DIR %>/kankan-sdk.js?v=4.37.3-alpha.81"></script>
+    <script src="<%= VUE_APP_SDK_DIR %>/kankan-sdk-deps.js?v=4.37.3-alpha.82"></script>
+    <script src="<%= VUE_APP_SDK_DIR %>/kankan-sdk.js?v=4.37.3-alpha.82"></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> -->

+ 13 - 6
src/app.vue

@@ -11,7 +11,7 @@
     </div>
     <div class="scene" ref="scene$"></div>
     <template v-if="dataLoaded">
-      <!-- <Information v-if="!isshoppingguide" /> -->
+      <Information v-if="!isshoppingguide" />
       <Control />
 
       <!-- <teleport v-if="refMiniMap && player.showWidgets" :to="refMiniMap">
@@ -354,7 +354,7 @@ const guideclicktag = (tag) => {
 const getCurrentHotJson = ()=>{
   let lang = browser.getURLParam('lang')
   let jsonname = lang == 'zh_CN'?'hot_eshop_cn':(lang == 'zh_HK'?'hot_eshop_zh':'hot_eshop_en')
-  if(metadata.value.cdfRegionData.region == 'AM'){
+  if(metadata.value.cdfRegionData?.region == 'AM'){
       jsonname = 'hot'
     }
   return `https://glp-vr.cdfmembers.com/cdf/hot/${browser.getURLParam('m')}/${jsonname}.json?rnd=${Math.random()}`
@@ -392,8 +392,8 @@ onMounted(async () => {
       render(data) {
         console.log('dataTagView',data);
         if (data.type == 'waterfall' || data.type == 'exhibits') {
-          return `<span class="tag-icon animate ${data.type == 'waterfall'?'waterfall':''}" style="background-image:url(${data.brand?.brandLogo?data.brand.brandLogo : data.icon})"></span>
-                  <span class="tag-icon animate ${data.type == 'waterfall'?'waterfall':''}" style="display:${data.brand?.outlineImage?'inline-block':'none'};background-image:url(${data.brand && data.brand.outlineImage});position: absolute;top: 0;left: 0;"></span>`;
+          return `<span class="tag-icon animate ${data.type == 'waterfall'?'waterfall':'exhibits'}" style="background-image:url(${data.brand?.brandLogo?data.brand.brandLogo : data.icon})"></span>
+                  <span class="tag-icon animate ${data.type == 'waterfall'?'waterfall':'exhibits'}" style="display:${data.brand?.outlineImage?'inline-block':'none'};background-image:url(${data.brand && data.brand.outlineImage});position: absolute;top: 0;left: 0;"></span>`;
         } else if (data.type == 'coupon') {
           return `<span class="tag-icon coupon animate" style="background-image:url({{icon}})"></span>`;
         } else if (data.type == 'applet_link') {
@@ -470,6 +470,7 @@ onMounted(async () => {
             app.Camera.flyToPano(hotcontent.videoId)
           }
           else if (tag.type == 'waterfall' || tag.type == 'exhibits') {
+            console.log('setTagClickType',tag);
             store.commit('tag/setTagClickType', {
               type: 'waterfall',
               data: tag,
@@ -694,6 +695,7 @@ onMounted(async () => {
 }
 .personalStyle{
   position: fixed;
+  top: 0;
   width: 100vw;
   height: 100vh;
   z-index: 2;
@@ -844,12 +846,17 @@ onMounted(async () => {
   .waterfall {
     // width: 90px !important;
     // height: 90px !important;
-    width: 120px !important;
-    height: 120px !important;
+    width: 60px !important;
+    height: 60px !important;
     &.animate {
       animation: tag-animate-zoom 2s -1s linear infinite !important;
     }
   }
+  .exhibits{
+    width: 75px !important;
+    height: 75px !important;
+  }
+
 
   .applet_link {
     width: 64px !important;

BIN
src/assets/images/christmas/bofang.png


+ 55 - 33
src/components/Controls/Panel/Main.vue

@@ -10,7 +10,8 @@
           <li>
             <!-- <ui-icon type="icon_other_on" @click.stop="onMusicClick"></ui-icon> -->
             
-            <img class="iconImg" @click.stop="onMusicClick" :src="require(`@/assets/images/christmas/icon_other_on@3x.png`)" alt="">
+            <img class="iconImg" v-if="showMusicPlaying.value" @click.stop="onMusicClick" :src="require(`@/assets/images/christmas/icon_other_on@3x.png`)" alt="">
+            <img class="iconImg" v-else @click.stop="onMusicClick" :src="require(`@/assets/images/christmas/icon_other_on@3x.png`)" alt="">
             <div>{{$t('mode.music')}}</div>
           </li>
 
@@ -20,10 +21,10 @@
             <img class="iconImg" @click.stop="
                 onClickMenu({
                   icon: 'guided_shopping',
-                  id: 'heguided_shoppinglp',
+                  id: 'guided_shopping',
                   name: $t('common.mode'),
                 })
-              " :src="require(`@/assets/images/christmas/icon_shopping@3x.png`)" alt="">
+              " :src="require(`@/assets/images/christmas/icon_shopping_together@3x.png`)" alt="">
             <!-- <ui-icon
               type="icon_shopping"
               @click.stop="
@@ -72,7 +73,7 @@
             <ui-icon type="preview" @click.stop="playTour"></ui-icon>
             <div>{{$t('common.tour')}}</div>
           </li>
-          <li v-show="metadata.cdfProductSource.region == 'AM'" @click.stop="onClickMenu(item)" v-for="(item, i) in menulist" :key="i">
+          <li v-show="metadata.cdfRegionData?.region == 'AM'" @click.stop="onClickMenu(item)" v-for="(item, i) in menulist" :key="i">
             <!-- <ui-icon :type="item.icon"></ui-icon> -->
             <img class="iconImg" :src="require(`@/assets/images/christmas/icon_customer_service@3x.png`)" alt="">
             <div>{{ item.name }}</div>
@@ -133,30 +134,30 @@
         </div> -->
         <div class="search">
           <img :src="require(`@/assets/images/icon/search.svg`)" alt="" />
-          <input v-model="searchKey" type="text" :placeholder="$t('common.guideSearch')" />
-          <ui-icon class="close" v-if="searchKey.length > 0" @click.stop="searchKey = ''" type="state_f"></ui-icon>
+          <input v-model="searchKey" type="text" @focus="searchKeyFocus" @blur="searchKeyBlur" :placeholder="$t('common.guideSearch')" />
+          <ui-icon class="close" v-if="searchKey.length > 0" @click.stop="searchKey = '';inputFocus = false" type="state_f"></ui-icon>
         </div>
         <div class="brandList">
-          <div class="recommendList" v-show="searchKey.length == 0">
+          <div class="recommendList" v-if="!inputFocus">
             <div class="recommenditem recommendListTop">
               <div class="recommenditemText">
-                <p>精选推荐</p>
-                <div>{{metadata.sceneRecommend?.selectionMsg||'圣诞主题妆容商品,独家优惠!'}}</div>
+                <p>{{ $t('common.recommendSelection') }}</p>
+                <div>{{metadata.sceneRecommend?.selectionMsg|| $t('common.recommendSelectiontips') }}</div>
               </div>
-              <div class="swiper-container" id="sw-navigation">
+              <div class="swiper-container" id="sw-navigation" :class="{nobg:tags.filter(res => res.recommendSelection == 1).length<8}">
                 <ul class="swiper-wrapper">
                   <li
                     class="swiper-slide"
                     :class="{ liactive: item.sceneUrl === currentM && item.inPosition.indexOf(currentPose) > -1 }"
                     @click.stop="onClickHotItem(item)"
-                    v-for="(item, i) in tags.filter(res => res.recommendBrand == 1)"
+                    v-for="(item, i) in tags.filter(res => res.recommendSelection == 1)"
                     :key="i"
                   >
                     <div class="img" :style="{ 'background-image': `url(${item.brand && item.brand.brandLogo || item.icon})` }"></div>
                     <div v-if="item.brand && item.brand.outlineImage" class="imgborder" :style="{ 'background-image': `url(${item.brand.outlineImage})` }"></div>
-                    <div class="name" v-if="item.shopName">
-                      <span :class="{ active: item.shopName.length > 6 }">
-                        {{ item.shopName }}
+                    <div class="name" v-if="item.title">
+                      <span :class="{ active: item.title.length > 4 }">
+                        {{ item.title }}
                       </span>
                     </div>
                   </li>
@@ -165,23 +166,23 @@
             </div>
             <div class="recommenditem recommendListBottom">
               <div class="recommenditemText">
-                <p>品牌推荐</p>
-                <div>{{metadata.sceneRecommend?.brandMsg||'Top 10最受欢迎品牌推荐!'}}</div>
+                <p>{{ $t('common.recommendBrand') }}</p>
+                <div>{{metadata.sceneRecommend?.brandMsg|| $t('common.recommendBrandtips')}}</div>
               </div>
-              <div class="swiper-container" id="sw-navigation">
+              <div class="swiper-container" id="sw-navigation" :class="{nobg:tags.filter(res => res.recommendBrand == 1).length<8}">
                 <ul class="swiper-wrapper">
                   <li
                     class="swiper-slide"
                     :class="{ liactive: item.sceneUrl === currentM && item.inPosition.indexOf(currentPose) > -1 }"
                     @click.stop="onClickHotItem(item)"
-                    v-for="(item, i) in tags.filter(res => res.recommendSelection == 1)"
+                    v-for="(item, i) in tags.filter(res => res.recommendBrand == 1)"
                     :key="i"
                   >
                     <div class="img" :style="{ 'background-image': `url(${item.brand && item.brand.brandLogo || item.icon})` }"></div>
                     <div v-if="item.brand && item.brand.outlineImage" class="imgborder" :style="{ 'background-image': `url(${item.brand.outlineImage})` }"></div>
-                    <div class="name" v-if="item.shopName">
-                      <span :class="{ active: item.shopName.length > 6 }">
-                        {{ item.shopName }}
+                    <div class="name" v-if="item.title">
+                      <span :class="{ active: item.title.length > 4 }">
+                        {{ item.title }}
                       </span>
                     </div>
                   </li>
@@ -189,8 +190,8 @@
               </div>
             </div>
           </div>
-          <div v-show="searchKey.length != 0" class="searchKeyList">
-            <div v-if="searchList.length > 0">
+          <div v-else class="searchKeyList">
+            <div v-if="searchList.length != 0">
               <div @click="onClickHotItem(item)" class="searchKeyItem" v-for="(item, index) in searchList" :key="index">
                 <div class="img" :style="{ 'background-image': `url(${item.brand && item.brand.brandLogo || item.icon})` }"></div>
                 <span>{{ item.title }}</span>
@@ -311,7 +312,7 @@ const categorylist = ref([]);
 const brandlist = ref([]);
 
 const searchList = ref([]);
-
+const inputFocus = ref(false)
 const brandScroll = () => {
   nextTick(() => {
     let t = setTimeout(() => {
@@ -352,19 +353,21 @@ const brandScroll = () => {
 };
 
 const onClickMenu = (item) => {
+  console.log('onClickMenu',item);
   if (item.id == 'kefu') {
     let mglink =
       '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', 
+    `${metadata.value.cdfProductSource.cdfHost}/shop/${metadata.value.cdfProductSource.cdfMchId}/shoppingcart`, 
     '/subPackage/pages/shoppingcart/shoppingcart',
-    `https://glp.cdfmembers.com/shoppingcart`
+    `${metadata.value.cdfProductSource.cdfHostPc}/shoppingcart`
     );
   } else if (item.id == 'help') {
     store.commit('showUserGuide', true);
   } else if (item.id == 'guided_shopping') {
+    console.log('showShoppingguide');
     store.commit('showShoppingguide', true);
   }
 };
@@ -394,7 +397,16 @@ const onClickShop = (item) => {
 };
 const onClickHotItem = (item) => {
   guideclicktag(item)
-  console.log('onClickHotItem',item);
+}
+function searchKeyBlur() {
+  if(!searchKey){
+    searchList.value = []
+    inputFocus.value = false
+  }
+}
+function searchKeyFocus() {
+  searchList.value = tags.value
+  inputFocus.value = true
 }
 watch(
   () => currentCategory,
@@ -424,6 +436,10 @@ const getShoplist = async () => {
 };
 
 const guideclicktag = (tag) => {
+  store.commit('tag/setTagClickType', {
+    type: '',
+    data: {},
+  });
   useApp().then((app) => {
     app.Plugins.TagView.focus(tag.sid)
     showShopList.value = false
@@ -444,7 +460,7 @@ const getSearchList = async () => {
   let search = searchKey.value.toLowerCase()
   arr = arr.filter((row) => {
     if(row.recommendBrand == 1){
-      return row.title.includes(search) || row.brand.enName.toLowerCase().includes(search) || row.brand.zhName.includes(search) || row.brand.ftName.includes(search)
+      return row.title.includes(search) || row.brand&&((row.brand.enName&&row.brand.enName.toLowerCase().includes(search)) || row.brand.zhName&&row.brand.zhName.toLowerCase().includes(search) || row.brand.ftName&&row.brand.ftName.toLowerCase().includes(search))
     }else{
       return row.title.includes(search)
     }
@@ -455,13 +471,12 @@ const getSearchList = async () => {
 onMounted(() => {
   useApp().then((app) => {
     app.Scene.on("loaded", () => {
-      console.log('treasureTag',treasureTag.value);
+    musicPlayer.pause()
     if(treasureTag.value.show){
       handleTreasure()
     }
   });
-    // getCategorylist();
-    // getShoplist();
+  brandScroll();
   });
 });
 musicPlayer.on('play', () => (showMusicPlaying.value = true))
@@ -469,6 +484,11 @@ musicPlayer.on('pause', () => (showMusicPlaying.value = false))
 </script>
 
 <style lang="scss" scoped>
+.nobg{
+  &::after{
+    display: none !important;
+  }
+}
 .iconImg{
   height: 18px;
   width: 18px;
@@ -710,6 +730,7 @@ musicPlayer.on('pause', () => (showMusicPlaying.value = false))
             padding: 2px 4px;
             box-sizing: border-box;
             word-break: break-all;
+            z-index: 2;
             > span {
               display: inline-block;
               white-space: nowrap;
@@ -829,7 +850,7 @@ musicPlayer.on('pause', () => (showMusicPlaying.value = false))
           font-family: PingFangSC, PingFang SC;
           font-weight: 400;
           color: #FFFFFF;
-          line-height: 17px;
+          line-height: 12px;
         }
       }
     }
@@ -856,7 +877,7 @@ musicPlayer.on('pause', () => (showMusicPlaying.value = false))
     }
     .swiper-container {
       width: 100%;
-      height: 130px;
+      height: 3.47rem;
       overflow: hidden;
       margin-top: 14px;
       margin-bottom: 5px;
@@ -919,6 +940,7 @@ musicPlayer.on('pause', () => (showMusicPlaying.value = false))
             padding: 2px 4px;
             box-sizing: border-box;
             word-break: break-all;
+            z-index: 2;
             > span {
               display: inline-block;
               white-space: nowrap;

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

@@ -134,6 +134,7 @@ export default {
         history.replaceState(null, null, tempUrl);
         console.log(tempUrl);
       }
+      console.log('role',this.role);
       this.store.commit("rtc/setRole", this.role);
 
       this.$nextTick(() => {

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

@@ -79,7 +79,7 @@ const confirmDialog = async () => {
 const closeCreated = (str, link) => {
   store.commit("showShoppingguide", false);
   showCreated.value = false;
-  showguide();
+  // showguide();
   if (browser.getURLParam("role")) {
     let tempUrl = window.location.href;
     ["mode", "name", "role", "roomId", "vruserId"].forEach((item) => {

+ 2 - 4
src/components/Tags/goods-list.vue

@@ -178,8 +178,6 @@ const addCart = async (item) => {
     return;
   }
   Loading.show();
-  console.log('addCart', item);
-  debugger
   let result = await apis.inCat({
     AccessToken: browser.getURLParam("AccessToken"),
     skuId: item.currentSku.id,
@@ -245,7 +243,6 @@ const updateProductsById = async (idx) => {
       },
       cartnum: 1,
     };
-
     store.commit("tag/setTagClickType", {
       type: tagclick.value.type,
       data: tempData,
@@ -261,7 +258,8 @@ watch(
   (val, old) => {
     if (mysw.value) {
       if (val === "goodlist") {
-        current.value = 0;
+        current.value = tagclick.value.data?.selectGoodId || 0;
+        mysw.value.slideTo(current.value);
         updateProductsById(current.value);
       }
       if (!val) {

+ 19 - 17
src/components/Tags/treasure.vue

@@ -5,7 +5,6 @@
         <!-- <p>恭喜您,找到寶藏!</p> -->
         <img
           class="liwutext"
-          @click="confetti($event)"
           ref="partyRef"
           :src="require('@/assets/images/christmas/liwutext.png')"
           alt=""
@@ -31,7 +30,9 @@
         </div>
       </div>
       <img class="zhixie" v-if="zhixieShow" :src="zhixie" alt="">
-      <ui-icon class="close" @click.stop="emit('close')" type="close"></ui-icon>
+      <div class="close">
+        <ui-icon @click.stop="emit('close')" :size="15" type="close"></ui-icon>
+      </div>
     </div>
   </transition>
 </template>
@@ -50,8 +51,8 @@ import {
 import { useApp, getApp } from "@/app";
 import { useStore } from "vuex";
 import browser from "@/utils/browser";
-import "@/utils/party.min.js";
-console.error(party);
+// import "@/utils/party.min.js";
+// console.error(party);
 const store = useStore();
 const partyRef = ref(null);
 const tagclick = computed(() => store.getters["tag/tagClickType"]);
@@ -59,14 +60,14 @@ const zhixie = require('@/assets/images/christmas/zhixie.png')
 const zhixieShow = ref(false)
 const emit = defineEmits(["close"]);
 onMounted(() => {
-  nextTick(() => {
-    partyRef.value && partyRef.value.addEventListener("click", function (e) {
-      party.confetti(this,{
-        count: party.variation.range(10, 60),
-        size: party.variation.range(0.5, 2),
-      });
-    });
-  });
+  // nextTick(() => {
+  //   partyRef.value && partyRef.value.addEventListener("click", function (e) {
+  //     party.confetti(this,{
+  //       count: party.variation.range(10, 60),
+  //       size: party.variation.range(0.5, 2),
+  //     });
+  //   });
+  // });
 });
 watch(
   () => tagclick.value.type,
@@ -90,11 +91,6 @@ watch(
        )
     }
 })
-const confetti = (e) =>{
-  party.confetti(e);
-  party.confetti(e);
-  party.confetti(e);
-}
 const goto_now = (e) => {
   let tag = {};
   try {
@@ -205,8 +201,14 @@ const goto_now = (e) => {
     position: absolute;
     right: 30px;
     font-size: 20px;
+    height: 26px;
+    width: 26px;
+    text-align: center;
+    line-height: 21px;
     top: 50px;
     color: #fff;
+    border-radius: 50%;
+    border: 1px solid #fff;
   }
 }
 

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

@@ -10,7 +10,7 @@
           <ui-icon @click="emit('close')" type="close"></ui-icon>
         </div>
         <ul class="wfcon">
-          <li @click.stop="gotoGoods(item)" v-for="(item, i) in tagclick.data.products" :key="i">
+          <li @click.stop="gotoGoods(item,i)" v-for="(item, i) in tagclick.data.products" :key="i">
             <template v-if="tagclick.data.type!=='exhibits'">
               <img v-if="i <= 2" :src="require(`@/assets/images/icon/${i + 1}.svg`)" alt="" />
               <span v-else>{{ i + 1 }}</span>
@@ -45,13 +45,15 @@ console.log('{{ tagclick }}',tagclick);
 const isshoppingguide = computed(() => store.getters["shoppingguide"]);
 
 const emit = defineEmits(["close"]);
-const gotoGoods = (item) => {
+const gotoGoods = (item,idx) => {
   if (isshoppingguide.value) {
       return;
   }
   const temp = tagclick.value
   temp.type = 'goodlist'
-  temp.data.products = [item]
+  temp.data.selectGoodId = idx
+  // temp.data.products[idx] = item
+  console.log('gotoGoods', idx, temp.data.products[idx]);
   store.commit('tag/setTagClickType', temp);
   // apis.burying_point({ type: 3, productId: item.id });
   // console.log(item,'item');

+ 5 - 5
src/components/openVideo/index.vue

@@ -1,10 +1,10 @@
 <template>
   <transition appear name="custom-classes-transition" leave-active-class="animated fadeOut faster">
     <div class="open-video">
-      <!-- <div class="vmask"></div> -->
+      <!-- <div class="vmask"> autoplay</div> -->
       <video x5-playsinline="true" playsinline="true" webkit-playsinline="true" class="video" ref="openvideo$" preload autoplay :src="videourl"></video>
       <div v-show="videourl && !bofanging" @click.stop="countdown==0&&emit('close')" class="jump">{{countdown>0?$t('common.jumpTips',{second:countdown}):$t('common.jump')}}</div>
-      <!-- <img v-show="videourl && bofanging" @click.stop="bofang" class="bofang" :src="require('@/assets/images/icon/start_vr.png')" alt="" /> -->
+      <img v-show="videourl && bofanging" @click.stop="bofang" class="bofang" :src="require('@/assets/images/christmas/bofang.png')" alt="" />
     </div>
   </transition>
 </template>
@@ -51,12 +51,12 @@ onMounted(() => {
     }
     videourl.value = res.data.videoUrl;
     openvideo$.value.volume = 0;
-    openvideo$.value && openvideo$.value.play();
+    // openvideo$.value && openvideo$.value.play();
     openvideo$.value.addEventListener("ended", () => {
       emit("close");
     });
 
-    openvideo$.value.addEventListener("playing", () => {
+    openvideo$.value.addEventListener("play", () => {
       if (bofanging.value) {
         bofanging.value = false;
       }
@@ -108,7 +108,7 @@ onMounted(() => {
     top: 50%;
     transform: translate(-50%, -50%);
     left: 50%;
-    width: 220px;
+    width: 150px;
     height: auto;
     z-index: 999;
   }

+ 5 - 1
src/locales/en.json

@@ -75,7 +75,11 @@
     "shuliang":"Quantity:",
     "guideSearch":"Search",
     "isOver":"Are you sure to end the livestream?",
-    "wenxintips":"Tips"
+    "wenxintips":"Tips",
+    "recommendSelection":"Selected recommendations",
+    "recommendBrand":"Brand recommendation",
+    "recommendSelectiontips":"Christmas themed makeup products with exclusive discounts!",
+    "recommendBrandtips":"Top 10 Most Popular Brand Recommendations!"
 
   },
   "share": {

+ 6 - 2
src/locales/zh_CN.json

@@ -73,9 +73,13 @@
     "onlyOffLine":"仅供线下门店购买",
     "guige":"规格:",
     "shuliang":"数量:",
-    "guideSearch":"专柜搜索",
+    "guideSearch":"搜索关键词",
     "isOver":"是否结束带看?",
-    "wenxintips":"温馨提示"
+    "wenxintips":"温馨提示",
+    "recommendSelection":"精选推荐",
+    "recommendBrand":"品牌推荐",
+    "recommendSelectiontips":"圣诞主题妆容商品,独家优惠!",
+    "recommendBrandtips":"Top 10最受欢迎品牌推荐!"
 
   },
   "share": {

+ 6 - 3
src/locales/zh_HK.json

@@ -73,10 +73,13 @@
     "onlyOffLine":"僅供線下門店購買",
     "guige":"規格:",
     "shuliang":"數量:",
-    "guideSearch":"專櫃搜索",
+    "guideSearch":"搜尋關鍵字",
     "isOver":"是否結束帶看?",
-    "wenxintips":"溫馨提示"
-
+    "wenxintips":"溫馨提示",
+    "recommendSelection":"精選推薦",
+    "recommendBrand":"品牌推薦",
+    "recommendSelectiontips":"聖誕主題妝容商品,獨家優惠!",
+    "recommendBrandtips":"Top 10最受歡迎品牌推薦!"
   },
   "share": {
     "wechat": "微信",

+ 1 - 1
src/views/viewimg.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="imgcon">
     <div class="swiper-container" :class="keyid" >
-    <ul  class="swiper-wrapper imgul">
+    <ul  class="swiper-wrapper imgul asd">list{{ list }}
       <li  class="swiper-slide img" v-for="(pic, picii) in list" :key="picii" :style="{ backgroundImage: `url(${pic})` }"></li>
     </ul>
     <ul class="pagination">

+ 7 - 0
vue.config.js

@@ -9,6 +9,13 @@ module.exports = defineConfig({
       scss: {},
     },
   },
+  // 修改或新增html-webpack-plugin的值,在index.html里面能读取htmlWebpackPlugin.options.title
+  chainWebpack: config =>{
+      config.plugin('html').tap(args => {
+          args[0].title = process.env.VUE_APP_APIS_TITLE;
+          return args;
+      })
+  },
   devServer: {
     // port: 443,
     https: false,

BIN
香港展示端正式1.zip