Przeglądaj źródła

Merge branch 'feature/99年卡活动' into develop

huangxiaojing 2 lat temu
rodzic
commit
32258528ab

+ 20 - 19
pages/activity/lottery/index.vue

@@ -31,7 +31,7 @@
           <div v-for="item in mealList" :key="item.id" :class="selMealId===item.id ? 'coupon-2 active' : 'coupon-2'" @click="selMealId=item.id;makePoint(item.day === 30 ? 'activity_38月卡' : 'activity_268年卡')">
             <img v-if="selMealId===item.id" class="coupon-select-icon" src="~/assets/image/activity/lottery/select-icon.png" alt="">
             <img v-else class="coupon-select-icon" src="~/assets/image/activity/lottery/unselect-icon.png" alt="">
-            <div class="coupon-title"><span class="txt2">{{item.actualPrice}}</span><span>元</span></div>
+            <div class="coupon-title"><span class="txt2">{{item.originalPrice ? item.originalPrice : item.actualPrice}}</span><span>元</span></div>
             <div class="txt4">{{item.day === 30 ? '月卡' : '年卡'}}</div>
             <img class="w111h73" src="~/assets/image/activity/lottery/coupon-2.png" alt="">
           </div>
@@ -66,7 +66,7 @@
           <div v-for="item in mealList" :key="item.id" :class="selMealId===item.id ? 'coupon-2 active' : 'coupon-2'" @click="selMealId=item.id;makePoint(item.day === 30 ? 'activity_38月卡' : 'activity_268年卡')">
             <img v-if="selMealId===item.id" class="coupon-select-icon" src="~/assets/image/activity/lottery/select-icon.png" alt="">
             <img v-else class="coupon-select-icon" src="~/assets/image/activity/lottery/unselect-icon.png" alt="">
-            <div class="coupon-title"><span class="txt2">{{item.actualPrice}}</span><span>元</span></div>
+            <div class="coupon-title"><span class="txt2">{{item.originalPrice ? item.originalPrice : item.actualPrice}}</span><span>元</span></div>
             <div class="txt4">{{item.day === 30 ? '月卡' : '年卡'}}</div>
             <img class="w111h73" src="~/assets/image/activity/lottery/coupon-2.png" alt="">
           </div>
@@ -96,27 +96,28 @@
             <div class="txt7"> 参与活动前,请仔细阅读购买协议,特别是产品说明和注意事项。用户参与本活动即视为已充分阅读、理解本活动规则,并自愿受活动规则约束。</div>
             <div class="txt8 mt14 fw500">年卡特惠包 </div>
             <div class="txt9 mt5">每月自动续,时长不用愁</div>
-            <div class="txt8 mt5 fw500">360H 每月30H</div>
-            <div class="txt9 mt5">按实际使用计时,VIP机型可用,立即生效</div>
-            <div class="txt9 mt14"><span class="txt7">有效时间:</span>按实际使用云手机的时间计时,不使用不计时;每月30H,当月时长不跨月;12个月,每月自动续</div>
-            <div class="txt9"><span class="txt7">可用范围:</span>VIP机型</div>
+            <div class="txt8 mt5 fw500">1年使用权  每月30小时</div>
+            <div class="txt9 mt5">按实际使用计时,星曜机型可用,立即生效</div>
+            <div class="txt9 mt14"><span class="txt7">有效时间:</span>按实际使用云手机的时间计时,不使用不计时;每月30H,当月时长不跨月;</div>
+            <div class="txt9"><span class="txt7">可用范围:</span>星曜机型</div>
             <div class="txt9"><span class="txt7">生效方式:</span>立即生效</div>
             <div class="txt9"><span class="txt7">订购次数:</span>不可重复订购</div>
             <div class="txt9"><span class="txt7">退订说明:</span>特惠产品,不支持退订</div>
             <div class="txt9 mt14">产品说明:</div>
-            <div class="txt7">1、产品内容:本产品为臂云科技旗下双子星VIP机型新人特惠年包,包含每月360H的VIP机型云手机使用时长,连续12个月每月自动续30H时长;按实际使用云手机的时间计时,不使用不计时。</div>
-            <div class="txt7">2、生效时间:订购扣费后立即生效</div>
+            <div class="txt7">1、产品内容:本产品为臂云科技旗下双子星云手机星曜机型新人特惠年包,包含星曜机型云手机1年使用权,连续12个月每月发放30H时长;进入云手机开始计时,下机后不计时。</div>
+            <div class="txt7">2、生效时间:订购扣费后立即生效</div>
             <div class="txt7">3、注意事项:</div>
-            <div class="txt7">(1)本产品合约期12个月,自生效当月起每月自动续30H时长;</div>
+            <div class="txt7">(1)本产品合约期12个月,自生效当月起每月发放30H时长;</div>
             <div class="txt7">(2)合约到期后需用户另外购买时长;</div>
             <div class="txt7">(3)合约到期后,年卡特惠包剩余时长自动失效;</div>
             <div class="txt7">(4)合约到期后,另外续费时长包所得的时长仍有效,云机可继续使用;</div>
             <div class="txt7">(5)年卡特惠包云手机与普通包月云手机计时逻辑不同,两种云手机时长不可叠加,若另外订购普通包月云手机将获得一台新云手机。</div>
             <div class="txt8 mt14">温馨提示:</div>
-            <div class="txt7">1、请您理解:通过任何不正当手段参与活动,如借助非自然流量/外挂工具;利用技术漏洞,恶意退款,批量注册账号、买号等搅乱平台管理秩序的行为,臂云科技有权限制/取消用户的活动资格,不予发放/</div>
+            <div class="txt7">1、请您理解:通过任何不正当手段参与活动,如借助非自然流量或外挂工具;利用技术漏洞,恶意退款,批量注册账号、买号等搅乱平台管理秩序的行为,臂云科技有权限制或取消用户的活动资格,不予发放或撤销相关交易及福利内容。</div>
+            <div class="txt7">2、如有疑问请联系双子星APP客服咨询</div>
             <div class="txt8 mt5 fw500" style="color: #EC6250;">时长包使用规则</div>
             <div class="txt7 mt5">年卡特惠云手机,按需补充时长包</div>
-            <div class="txt7">有效时间:<span class="txt10">时长用完前一直有效,支持跨月</span></div>
+            <div class="txt7">有效时间:<span class="txt10">时长用完前一直有效,支持跨月</span></div>
             <div class="txt7">可用范围:<span class="txt10">可续时长的机型</span></div>
             <div class="txt7">生效方式:<span class="txt10">立即生效</span></div>
             <div class="txt7">退订说明:<span class="txt10">立即生效产品,不支持退订</span></div>
@@ -257,6 +258,7 @@ export default {
         taocan = this.sort_ASCII(taocan);
         const sign = this.jiaqian(JSON.stringify(taocan));
         const res = await this.$axios.$post('/pay/v1/order/create', taocan, { headers: { Authorization: this.token, sign } });
+        Toast.clear();
         if (this.$userAgent.isSzx && this.$userAgent.isAndroid) {
           window.native.startPay(this.payType === 'aliPay' ? 3 : 2, res.data.myOrderNum, 1);
         } else if (this.$userAgent.isSzx && this.$userAgent.isIos) {
@@ -270,7 +272,7 @@ export default {
             Toast({
               message: '微信小程序不支持支付宝支付',
               position: 'top',
-              duration: 3000
+              duration: 4000
             });
             return false
           }
@@ -293,13 +295,12 @@ export default {
         }
         this.showPay = false
       } catch (error) {
+        Toast.clear();
         Toast({
           message: error.message,
           position: 'top',
-          duration: 3000
+          duration: 4000
         });
-      } finally {
-        Toast.clear();
       }
     },
     sort_ASCII(obj) {
@@ -382,7 +383,7 @@ export default {
         Toast({
           message: res.msg,
           position: 'top',
-          duration: 3000
+          duration: 4000
         });
       }
     },
@@ -406,7 +407,7 @@ export default {
         Toast({
           message: '当前活动已过期',
           position: 'top',
-          duration: 3000
+          duration: 4000
         });
         return false;
       }
@@ -414,7 +415,7 @@ export default {
         Toast({
           message: '当前活动未开启',
           position: 'top',
-          duration: 3000
+          duration: 4000
         });
         return false;
       }
@@ -422,7 +423,7 @@ export default {
         Toast({
           message: '当前活动已结束',
           position: 'top',
-          duration: 3000
+          duration: 4000
         });
         return false;
       }

Plik diff jest za duży
+ 1657 - 1720
static/screenAndroid/WXtrialInterface.html


+ 80 - 0
static/screenAndroid/css/WXtrialInterface.css

@@ -965,3 +965,83 @@ li {
   width: calc(100vh - 50px);
   height: 100vw;
 }
+
+.count-view {
+  min-width: 5.16rem;
+  height: 1.63rem;
+  background: rgba(0, 0, 0, 0.6);
+  border-radius: 1.13rem;
+  position: absolute;
+  top: 0.45rem;
+  right: 0.45rem;
+  padding: 0.31rem 0.27rem 0.31rem 0.45rem;
+  box-sizing: border-box;
+  color: #ffffff;
+  font-weight: 500;
+  font-size: 0.72rem;
+  font-weight: 500;
+  margin: 0 0.18rem;
+  z-index: 10000;
+  display: none;
+}
+.fnca {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-around;
+  align-items: center;
+}
+.wh22 {
+  width: 0.99rem;
+  height: 0.99rem;
+}
+.line {
+  width: 1px;
+  height: 0.81rem;
+  background: #FFFFFF;
+  border-radius: 1px;
+  opacity: 0.3;
+}
+.dialog-jifei {
+  width: 13.26rem;
+  height: 13.17rem;
+  background: #FFFFFF;
+  border-radius: 0.36rem;
+  position: fixed;
+  top: 8.15rem;
+  left: calc(50% - 6.63rem);
+  display: none;
+}
+.w100h130 {
+  width: 4.52rem;
+  display: block;
+  height: 5.88rem;
+  margin: 0 auto;
+}
+.fs16 {
+  font-size: 0.72rem;
+  font-weight: 500;
+  color: #363636;
+  text-align: center;
+}
+.fs14 {
+  font-size: 0.63rem;
+  color: #757580;
+  line-height: 0.9rem;
+  margin-top: 0.45rem;
+  text-align: center;
+}
+.c00DB88 {
+  color: #00DB88;
+}
+.jishi-close-icon {
+  width: 9.375rem;
+  height: 1.81rem;
+  background: linear-gradient(90deg, #00A3FF 0%, #04F79A 100%);
+  border-radius: 0.36rem;
+  font-size: 0.72rem;
+  font-weight: 500;
+  color: #FFFFFF;
+  line-height: 1.81rem;
+  text-align: center;
+  margin: 0.9rem auto 0;
+}

+ 107 - 0
static/screenAndroid/timer.js

@@ -0,0 +1,107 @@
+function handleQuit() {
+  $.actions({
+    actions: [{
+      text: "退出",
+      onClick: function () {
+        decodeWoker.postMessage('close');
+        decodeWoker.terminate();
+        quit();
+      }
+    }, {
+      text: "退出并下机",
+      onClick: function () {
+        $.ajax({
+          url: baseUrl + '/api/resources/yearMember/downline?userCardId=' + userCardId,
+          headers: {
+            Authorization: token
+          },
+          type: 'get',
+          dataType: 'json',
+          function(res) {
+            if (res.status === 0) {
+              decodeWoker.postMessage('close');
+              decodeWoker.terminate();
+              quit();
+            } else {
+              $.toast(res.msg, 'text');
+            }
+          },
+        });
+      }
+    }]
+  });
+}
+var residueTime = 0, residueTimer, isShowCountdown = +parameters['isShowCountdown'], isShowRule = +parameters['isShowRule'];
+if (isShowCountdown) {
+  $('#countView').show();
+}
+if (sourceType === 5) {
+  $.ajax({
+    url: baseUrl + '/api/resources/yearMember/getResidueTime?userCardId=' + userCardId,
+    headers: {
+      Authorization: token,
+    },
+    type: 'get',
+    dataType: 'json',
+    async: false,
+    success: function (res) {
+      if (res.status === 0) {
+        residueTime = res.data;
+        if (residueTime > 0) {
+          $('.count').text(residueTimeStamp(residueTime))
+        }
+        residueTimer = setInterval(() => {
+          if (residueTime > 0) {
+            residueTime--;
+            $('.count').text(residueTimeStamp(residueTime))
+          } else {
+            clearInterval(residueTimer);
+            quit();
+          }
+        }, 1000);
+      } else {
+        $.toast(res.msg, 'text');
+      }
+    },
+  });
+}
+function residueTimeStamp(value) {
+  let theTime = value;//秒
+  let middle = 0;//分
+  let hour = 0;//小时
+  if (theTime > 59) {
+    middle = parseInt(theTime / 60);
+    theTime = parseInt(theTime % 60);
+  }
+  if (middle > 59) {
+    hour = parseInt(middle / 60);
+    middle = parseInt(middle % 60);
+  }
+  theTime < 10 ? theTime = '0' + theTime : theTime = theTime
+  middle < 10 ? middle = '0' + middle : middle = middle
+  hour < 10 ? hour = '0' + hour : hour = hour
+  console.log(hour + ':' + middle + ':' + theTime)
+  return hour + ':' + middle + ':' + theTime
+}
+function handleclose() {
+  $.ajax({
+    url: baseUrl + '/api/resources/yearMember/closeRemind?userCardId=' + userCardId,
+    headers: {
+      Authorization: token,
+    },
+    type: 'get',
+    dataType: 'json',
+    async: false,
+    success: function (res) {
+      if (res.status === 0) {
+        clearInterval(residueTimer);
+        $("#countView").hide()
+      } else {
+        $.toast(res.msg, 'text');
+      }
+    },
+  });
+}
+function handleCloseDialog() {
+  $('.dialog-jifei').hide();
+}

Plik diff jest za duży
+ 1512 - 1541
static/screenIos/WXtrialInterface.html


+ 79 - 0
static/screenIos/css/WXtrialInterface.css

@@ -892,3 +892,82 @@ textarea {
   width: calc(100vh - 50px);
   height: 100vw;
 }
+.count-view {
+  min-width: 5.16rem;
+  height: 1.63rem;
+  background: rgba(0, 0, 0, 0.6);
+  border-radius: 1.13rem;
+  position: absolute;
+  top: 0.45rem;
+  right: 0.45rem;
+  padding: 0.31rem 0.27rem 0.31rem 0.45rem;
+  box-sizing: border-box;
+  color: #ffffff;
+  font-weight: 500;
+  font-size: 0.72rem;
+  font-weight: 500;
+  margin: 0 0.18rem;
+  z-index: 10000;
+  display: none;
+}
+.fnca {
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-around;
+  align-items: center;
+}
+.wh22 {
+  width: 0.99rem;
+  height: 0.99rem;
+}
+.line {
+  width: 1px;
+  height: 0.81rem;
+  background: #FFFFFF;
+  border-radius: 1px;
+  opacity: 0.3;
+}
+.dialog-jifei {
+  width: 13.26rem;
+  height: 13.17rem;
+  background: #FFFFFF;
+  border-radius: 0.36rem;
+  position: fixed;
+  top: 8.15rem;
+  left: calc(50% - 6.63rem);
+  display: none;
+}
+.w100h130 {
+  width: 4.52rem;
+  display: block;
+  height: 5.88rem;
+  margin: 0 auto;
+}
+.fs16 {
+  font-size: 0.72rem;
+  font-weight: 500;
+  color: #363636;
+  text-align: center;
+}
+.fs14 {
+  font-size: 0.63rem;
+  color: #757580;
+  line-height: 0.9rem;
+  margin-top: 0.45rem;
+  text-align: center;
+}
+.c00DB88 {
+  color: #00DB88;
+}
+.jishi-close-icon {
+  width: 9.375rem;
+  height: 1.81rem;
+  background: linear-gradient(90deg, #00A3FF 0%, #04F79A 100%);
+  border-radius: 0.36rem;
+  font-size: 0.72rem;
+  font-weight: 500;
+  color: #FFFFFF;
+  line-height: 1.81rem;
+  text-align: center;
+  margin: 0.9rem auto 0;
+}

+ 109 - 0
static/screenIos/timer.js

@@ -0,0 +1,109 @@
+function handleQuit() {
+  $.actions({
+    actions: [{
+      text: "退出",
+      onClick: function () {
+        clearInterval(intervaler);
+        quit();
+        ws.close();
+        wsss.close();
+      }
+    }, {
+      text: "退出并下机",
+      onClick: function () {
+        $.ajax({
+          url: baseUrl + '/api/resources/yearMember/downline?userCardId=' + userCardId,
+          headers: {
+            Authorization: token
+          },
+          type: 'get',
+          dataType: 'json',
+          function(res) {
+            if (res.status === 0) {
+              clearInterval(intervaler);
+              quit();
+              ws.close();
+              wsss.close();
+            } else {
+              $.toast(res.msg, 'text');
+            }
+          },
+        });
+      }
+    }]
+  });
+}
+var residueTime = 0, residueTimer, isShowCountdown = +parameters['isShowCountdown'], isShowRule = +parameters['isShowRule'];
+if (isShowCountdown) {
+  $('#countView').show();
+}
+if (sourceType === 5) {
+  $.ajax({
+    url: baseUrl + '/api/resources/yearMember/getResidueTime?userCardId=' + userCardId,
+    headers: {
+      Authorization: token,
+    },
+    type: 'get',
+    dataType: 'json',
+    async: false,
+    success: function (res) {
+      if (res.status === 0) {
+        residueTime = res.data;
+        if (residueTime > 0) {
+          $('.count').text(residueTimeStamp(residueTime))
+        }
+        residueTimer = setInterval(() => {
+          if (residueTime > 0) {
+            residueTime--;
+            $('.count').text(residueTimeStamp(residueTime))
+          } else {
+            clearInterval(residueTimer);
+            quit();
+          }
+        }, 1000);
+      } else {
+        $.toast(res.msg, 'text');
+      }
+    },
+  });
+}
+function residueTimeStamp(value) {
+  let theTime = value;//秒
+  let middle = 0;//分
+  let hour = 0;//小时
+  if (theTime > 59) {
+    middle = parseInt(theTime / 60);
+    theTime = parseInt(theTime % 60);
+  }
+  if (middle > 59) {
+    hour = parseInt(middle / 60);
+    middle = parseInt(middle % 60);
+  }
+  theTime < 10 ? theTime = '0' + theTime : theTime = theTime
+  middle < 10 ? middle = '0' + middle : middle = middle
+  hour < 10 ? hour = '0' + hour : hour = hour
+  console.log(hour + ':' + middle + ':' + theTime)
+  return hour + ':' + middle + ':' + theTime
+}
+function handleclose() {
+  $.ajax({
+    url: baseUrl + '/api/resources/yearMember/closeRemind?userCardId=' + userCardId,
+    headers: {
+      Authorization: token,
+    },
+    type: 'get',
+    dataType: 'json',
+    async: false,
+    success: function (res) {
+      if (res.status === 0) {
+        clearInterval(residueTimer);
+        $("#countView").hide()
+      } else {
+        $.toast(res.msg, 'text');
+      }
+    },
+  });
+}
+function handleCloseDialog() {
+  $('.dialog-jifei').hide();
+}

BIN
static/static/img/close.png


BIN
static/static/img/jishi-icon.png