Przeglądaj źródła

Merge branch 'main' into feature/v1.1.1

yuelujie 3 miesięcy temu
rodzic
commit
dd778c5e67

+ 15 - 6
apps/bigmember_pc/src/router/modules/order.js

@@ -92,7 +92,9 @@ export default [
         },
         components: commonOrder({
           info: () => import('@/views/order/components/big-member/info.vue'),
-          desc: () => import('@/views/order/components/big-member/desc.vue')
+          desc: () => import('@/views/order/components/big-member/desc.vue'),
+          headerAdsense: () =>
+            import('@/views/order/components/big-member/header-adsense.vue')
         }),
         children: [
           {
@@ -172,7 +174,9 @@ export default [
           info: () => import('@/views/order/components/vipsubscribe/info.vue'),
           desc: () => import('@/views/vipsubscribe/components/Contrast.vue'),
           adsense: () =>
-            import('@/views/order/components/vipsubscribe/adsense.vue')
+            import('@/views/order/components/vipsubscribe/adsense.vue'),
+          headerAdsense: () =>
+            import('@/views/order/components/vipsubscribe/header-adsense.vue')
         }),
         children: [
           {
@@ -192,7 +196,9 @@ export default [
         path: 'data-pack',
         alias: '/front/dataPack/createOrder',
         components: commonOrder({
-          info: () => import('@/views/order/components/data-pack/info.vue')
+          info: () => import('@/views/order/components/data-pack/info.vue'),
+          headerAdsense: () =>
+            import('@/views/order/components/data-pack/header-adsense.vue')
         }),
         children: [
           {
@@ -220,7 +226,8 @@ export default [
         components: commonOrder({
           title: () => import('@/views/order/components/doc-member/title.vue'),
           info: () => import('@/views/order/components/doc-member/info.vue'),
-          adsense: () => import('@/views/order/components/doc-member/adsense.vue')
+          adsense: () =>
+            import('@/views/order/components/doc-member/adsense.vue')
         }),
         children: [
           {
@@ -242,9 +249,11 @@ export default [
           title: '报告下载包充值'
         },
         components: commonOrder({
-          title: () => import('@/views/order/components/download-pack/title.vue'),
+          title: () =>
+            import('@/views/order/components/download-pack/title.vue'),
           info: () => import('@/views/order/components/download-pack/info.vue'),
-          footer: () => import('@/views/order/components/download-pack/footer.vue')
+          footer: () =>
+            import('@/views/order/components/download-pack/footer.vue')
         }),
         children: [
           {

+ 29 - 0
apps/bigmember_pc/src/views/order/components/big-member/header-adsense.vue

@@ -0,0 +1,29 @@
+<template>
+  <div className="data-pack-header-adsense">
+    <AdContainer
+      :exposure-prefix="'PC购买页轮播广告位-' + code + '-'"
+      :code="code"
+    />
+  </div>
+</template>
+
+<script>
+import AdContainer from '@/views/workspace/components/AdContainer.vue'
+
+export default {
+  name: 'data-pack-header-adsense',
+  components: {
+    AdContainer
+  },
+  data() {
+    return {
+      code: 'equity_pc_bigmember_top_code'
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.vip-subscribe-adsense {
+}
+</style>

+ 28 - 0
apps/bigmember_pc/src/views/order/components/data-pack/header-adsense.vue

@@ -0,0 +1,28 @@
+<template>
+  <div class="data-pack-header-adsense">
+    <AdContainer
+      :exposure-prefix="'PC购买页轮播广告位-' + code + '-'"
+      :code="code"
+    />
+  </div>
+</template>
+
+<script>
+import AdContainer from '@/views/workspace/components/AdContainer.vue'
+export default {
+  name: 'data-pack-header-adsense',
+  components: {
+    AdContainer
+  },
+  data() {
+    return {
+      code: 'equity_pc_datapack_top_code'
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.vip-subscribe-adsense {
+}
+</style>

+ 50 - 0
apps/bigmember_pc/src/views/order/components/vipsubscribe/header-adsense.vue

@@ -0,0 +1,50 @@
+<template>
+  <div class="vip-subscribe-header-adsense">
+    <AdContainer
+      :exposure-prefix="'PC购买页轮播广告位-' + code + '-'"
+      :code="code"
+    />
+  </div>
+</template>
+
+<script>
+import AdContainer from '@/views/workspace/components/AdContainer.vue'
+export default {
+  name: 'vip-subscribe-header-adsense',
+  components: {
+    AdContainer
+  },
+  data() {
+    return {
+      buyType: '',
+      code: ''
+    }
+  },
+  created() {
+    this.getType()
+  },
+  methods: {
+    getType() {
+      const { type } = this.$route.query
+      const types = ['buy', 'upgrade', 'renew']
+      if (types.includes(type)) {
+        this.buyType = type || types[0]
+      } else {
+        this.buyType = types[0]
+      }
+      if (this.buyType === 'buy') {
+        this.code = 'equity_pc_vip_top_buy_code'
+      } else if (this.buyType === 'upgrade') {
+        this.code = 'equity_pc_vip_top_upgrade_code'
+      } else if (this.buyType === 'renew') {
+        this.code = 'equity_pc_vip_top_renew_code'
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.vip-subscribe-adsense {
+}
+</style>

+ 1 - 0
apps/bigmember_pc/src/views/order/layout.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="page-create-order" v-loading="loading">
     <router-view name="head" v-if="pageLayout.header"></router-view>
+    <router-view name="headerAdsense"></router-view>
     <div class="page-create-order-content v-w1200">
       <router-view
         class="page-create-order-content-title"

+ 2 - 2
apps/bigmember_pc/src/views/order/ui/offers/list.vue

@@ -1,8 +1,8 @@
 <template>
   <div class="order-offers-list">
     <SpecCard
-      :key="coupon.id"
-      v-for="coupon in couponList"
+      :key="coupon.id + '_' + index"
+      v-for="(coupon, index) in couponList"
       :class="{
         [coupon.className]: true,
         disabled: !coupon.usable

+ 22 - 3
apps/jy-pc/src/views/equity/Exchange.vue

@@ -201,6 +201,7 @@
                   <span>获取状态</span>
                   <span>获取权益</span>
                   <span>获取时间</span>
+                  <span>操作</span>
                 </div>
                 <div class="t-body">
                   <div
@@ -230,6 +231,16 @@
                       <p>-</p>
                     </span>
                     <span>{{ item.ex_date || '-' }}</span>
+                    <span v-if="item.address">
+                      <el-link
+                        :underline="false"
+                        class="get-code-now"
+                        type="primary"
+                        @click="goExchangePage(item.address)"
+                      >
+                        去兑换
+                      </el-link>
+                    </span>
                   </div>
                 </div>
               </div>
@@ -569,6 +580,11 @@ export default {
         window.open(this.thirdPartyExchange.address)
       }
     },
+    goExchangePage(address) {
+      if (address) {
+        window.open(address)
+      }
+    },
     getCurrentThirdPartySelected() {
       const selectedId = this.thirdPartyExchange.thirdPowerCheck
       const arr = this.thirdPartyExchange.thirdPowerList
@@ -831,11 +847,11 @@ export default {
         }
 
         &:nth-of-type(2) {
-          width: 15%;
+          width: 12%;
         }
 
         &:nth-of-type(3) {
-          width: 15%;
+          width: 12%;
         }
 
         &:nth-of-type(4) {
@@ -843,7 +859,10 @@ export default {
         }
 
         &:nth-of-type(5) {
-          width: 15%;
+          width: 12%;
+        }
+        &:nth-of-type(6) {
+          width: 9%;
         }
       }
 

+ 21 - 6
apps/mobile/src/components/ad/Swipe.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="my-swipe">
+  <div class="my-swipe" v-show='canShowModule'>
     <van-skeleton avatar :loading="this.getImages.length === 0">
       <van-swipe
         :id="'ad-' + (ad || 'swipe')"
@@ -59,6 +59,10 @@ export default {
    * @property {array} images 广告位数据数组
    */
   props: {
+    skeleton: {
+      type: Boolean,
+      default: true
+    },
     exposurePrefix: {
       type: String,
       default: ''
@@ -94,6 +98,13 @@ export default {
     },
     getImages() {
       return this.ad ? this.list : this.images
+    },
+    canShowModule () {
+      if (this.skeleton) {
+        return true
+      } else {
+        return this.getImages.length > 0
+      }
     }
   },
   created() {
@@ -112,7 +123,10 @@ export default {
       })
         .then((res) => {
           if (res?.error_code === 0 && typeof res?.data === 'object') {
-            this.list = Object.values(res.data).flat().map(adConfigFormatter)
+            const temp = Object.values(res.data).flat().filter(v => v)
+            if (Array.isArray(temp)) {
+              this.list = temp.map(adConfigFormatter)
+            }
           }
         })
         .catch((e) => {
@@ -134,14 +148,15 @@ export default {
       return openLinkOfAd(ad)
     },
     bindPhoneOpen(item) {
+      const next = () => {
+        this.open(item)
+      }
       return {
         props: {
           name: '广告位-' + item.title || item.name
         },
-        pass: !item?.script ? this.open : null,
-        next: () => {
-          this.open(item)
-        }
+        pass: !item?.script?.tip ? next : null,
+        next: next
       }
     }
   }

+ 2 - 2
apps/mobile/src/components/create-order/CouponNew.vue

@@ -64,8 +64,8 @@
                   :coupon="item"
                   :checked="item.lotteryId === selectedId"
                   :specOriginPrice="specOriginPrice"
-                  v-for="item in canUseCoupon"
-                  :key="item.lotteryId"
+                  v-for="(item, index) in canUseCoupon"
+                  :key="item.lotteryId + '_' + index"
                   @onChange="onRadioChange"
                 >
                 </CouponList>

+ 8 - 2
apps/mobile/src/router/modules/order.js

@@ -29,6 +29,8 @@ export default [
         components: createRouterNamedComponents({
           default: () =>
             import('@/views/create-order/components/vipsubscribe/Default'),
+          headerAdsense: () =>
+            import('@/views/create-order/components/vipsubscribe/HeaderAdsense'),
           adsense: () =>
             import('@/views/create-order/components/vipsubscribe/Adsense'),
           desc: () =>
@@ -111,7 +113,9 @@ export default [
         components: createRouterNamedComponents({
           default: () =>
             import('@/views/create-order/components/bigmember/Default'),
-          desc: () => import('@/views/order/components/bigmember/Introduction')
+          desc: () => import('@/views/order/components/bigmember/Introduction'),
+          headerAdsense: () =>
+            import('@/views/create-order/components/bigmember/HeaderAdsense'),
         })
       },
       {
@@ -170,7 +174,9 @@ export default [
         components: createRouterNamedComponents({
           default: () =>
             import('@/views/create-order/components/datapack/Default'),
-          desc: () => import('@/views/order/components/datapack/Introduction')
+          desc: () => import('@/views/order/components/datapack/Introduction'),
+          headerAdsense: () =>
+            import('@/views/create-order/components/datapack/HeaderAdsense'),
         })
       },
       {

+ 1 - 0
apps/mobile/src/views/create-order/CreateOrderLayout.vue

@@ -8,6 +8,7 @@
       />
     </div>
     <div class="j-main create-order-content" @scroll="onScroll">
+      <router-view name="headerAdsense" class="create-order-adsense" />
       <router-view name="default" class="create-order-default" />
       <router-view
         v-if="pageLayout.activity"

+ 29 - 0
apps/mobile/src/views/create-order/components/bigmember/HeaderAdsense.vue

@@ -0,0 +1,29 @@
+<template>
+  <div class='header-show-group'>
+    <!-- 轮播广告位 -->
+    <Swipe :skeleton='false' :exposure-prefix="'移动端购买页轮播广告位-' + getContentAdID + '-'"  :ad="getContentAdID" />
+  </div>
+</template>
+<script>
+import Swipe from '@/components/ad/Swipe'
+export default {
+  name: 'HeaderAdsense',
+  components: {
+    Swipe
+  },
+  computed: {
+    getContentAdID() {
+      return `equity_mobile_bigmember_top_code`
+    }
+  }
+}
+</script>
+<style lang="scss">
+.header-show-group {
+  background-color: #fff;
+
+  .my-swipe {
+    margin: 4px 0;
+  }
+}
+</style>

+ 29 - 0
apps/mobile/src/views/create-order/components/datapack/HeaderAdsense.vue

@@ -0,0 +1,29 @@
+<template>
+  <div class='header-show-group'>
+    <!-- 轮播广告位 -->
+    <Swipe :skeleton='false' :exposure-prefix="'移动端购买页轮播广告位-' + getContentAdID + '-'"  :ad="getContentAdID" />
+  </div>
+</template>
+<script>
+import Swipe from '@/components/ad/Swipe'
+export default {
+  name: 'HeaderAdsense',
+  components: {
+    Swipe
+  },
+  computed: {
+    getContentAdID() {
+      return `equity_mobile_datapack_top_code`
+    }
+  }
+}
+</script>
+<style lang="scss">
+.header-show-group {
+  background-color: #fff;
+
+  .my-swipe {
+    margin: 4px 0;
+  }
+}
+</style>

+ 42 - 0
apps/mobile/src/views/create-order/components/vipsubscribe/HeaderAdsense.vue

@@ -0,0 +1,42 @@
+<template>
+  <div class='header-show-group'>
+    <!-- 轮播广告位 -->
+    <Swipe :skeleton='false' :exposure-prefix="'移动端购买页轮播广告位-' + getContentAdID + '-'"  :ad="getContentAdID" />
+  </div>
+</template>
+<script>
+import Swipe from '@/components/ad/Swipe'
+export default {
+  name: 'HeaderAdsense',
+  components: {
+    Swipe
+  },
+  computed: {
+    getContentAdID() {
+      return `equity_mobile_vip_top_${this.type}_code`
+    }
+  },
+  data() {
+    return {
+      type: 'buy'
+    }
+  },
+  created() {
+    this.getQuery()
+  },
+  methods: {
+    getQuery() {
+      this.type = this.$route.query.type || 'buy'
+    }
+  }
+}
+</script>
+<style lang="scss">
+.header-show-group {
+  background-color: #fff;
+
+  .my-swipe {
+    margin: 4px 0;
+  }
+}
+</style>

+ 35 - 1
apps/mobile/src/views/equitycenter/index.vue

@@ -168,8 +168,9 @@
                           <span
                             class="highlight-text"
                             @click="getOtherProductInfo(item)"
-                            >立即获取</span
                           >
+                            立即获取
+                          </span>
                         </div>
                       </div>
 
@@ -280,6 +281,17 @@
                             {{ formatDate(item.ex_date) }}
                           </div>
                         </div>
+                        <div class="records-line" v-if="item.address">
+                          <div class="records-line-left">操作:</div>
+                          <div class="records-line-right">
+                            <span
+                              class="highlight-text"
+                              @click="goToExChangePage(item.address)"
+                            >
+                              去兑换
+                            </span>
+                          </div>
+                        </div>
                       </div>
                     </div>
                     <div v-else>
@@ -327,6 +339,18 @@
                             {{ formatDate(item.ex_date) }}
                           </div>
                         </div>
+
+                        <div class="records-line" v-if="item.address">
+                          <div class="records-line-left">操作:</div>
+                          <div class="records-line-right">
+                            <span
+                              class="highlight-text"
+                              @click="goToExChangePage(item.address)"
+                            >
+                              去兑换
+                            </span>
+                          </div>
+                        </div>
                       </div>
                     </div>
 
@@ -615,6 +639,16 @@ export default {
         openLinkOfOther(this.exChangeAddress)
       }
     },
+    goToExChangePage(address) {
+      if (!address) {
+        return this.$toast('获取兑换地址异常')
+      }
+      if (this.$envs.inApp) {
+        appCallOpenWindow(address, '兑换')
+      } else {
+        openLinkOfOther(address)
+      }
+    },
     doCopyCode(code) {
       if (!code) {
         return this.$toast('获取兑换码异常')

+ 1 - 1
plugins/bind-phone-mobile/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@jy/plugin-bind-phone",
-  "version": "1.0.7",
+  "version": "1.0.8",
   "private": false,
   "description": "移动端绑定手机弹框插件",
   "files": [

+ 7 - 0
plugins/bind-phone-mobile/src/utils/directives/bind-phone.js

@@ -9,6 +9,13 @@ const BindPhoneDirective = {
       // event.isProgrammaticClick = false
       event.stopPropagation()
       event.preventDefault()
+      // 手动上报点击信息
+      try {
+        window.__EasyJTrack.addCustomEventTrack(event)
+      } catch (e) {
+        console.warn(e)
+      }
+
       const { props = {}, pass, bound, close, next } = value
       /**
        * props: 接受的传参