浏览代码

Merge branch 'dev3.8' of http://192.168.3.207:10080/qmx/jy into dev3.8

wangshan 4 年之前
父节点
当前提交
f8d692542b
共有 35 个文件被更改,包括 4148 次插入2502 次删除
  1. 6 3
      src/jfw/modules/app/src/web/staticres/jyapp/css/coupon-list-template.css
  2. 31 0
      src/jfw/modules/app/src/web/staticres/jyapp/css/land-page-coupon.css
  3. 9 5
      src/jfw/modules/app/src/web/staticres/jyapp/css/pay-order-template.css
  4. 91 0
      src/jfw/modules/app/src/web/staticres/jyapp/js/coupon-template.js
  5. 55 0
      src/jfw/modules/app/src/web/staticres/jyapp/js/land-page-coupon.js
  6. 217 34
      src/jfw/modules/app/src/web/staticres/jyapp/js/pay-order-template.js
  7. 1 1
      src/jfw/modules/app/src/web/staticres/jyapp/me/css/selectProduct.css
  8. 9 88
      src/jfw/modules/app/src/web/staticres/jyapp/me/js/coupon-template.js
  9. 1043 913
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_index_new.js
  10. 103 1
      src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_renew.js
  11. 112 83
      src/jfw/modules/app/src/web/templates/dataExport/dataExport_payOrder.html
  12. 9 85
      src/jfw/modules/app/src/web/templates/frontRouter/coupon/free/myCoupon.html
  13. 42 78
      src/jfw/modules/app/src/web/templates/frontRouter/coupon/free/selectCoupon.html
  14. 19 31
      src/jfw/modules/app/src/web/templates/frontRouter/coupon/free/selectProduct.html
  15. 10 2
      src/jfw/modules/app/src/web/templates/vipsubscribe/vip_index_new.html
  16. 21 0
      src/jfw/modules/app/src/web/templates/vipsubscribe/vip_introduce.html
  17. 1225 1104
      src/jfw/modules/app/src/web/templates/vipsubscribe/vip_purchase.html
  18. 10 4
      src/jfw/modules/app/src/web/templates/vipsubscribe/vip_renew.html
  19. 31 0
      src/web/staticres/css/land-page-coupon.css
  20. 258 0
      src/web/staticres/css/pay-order-template.css
  21. 1 2
      src/web/staticres/frontRouter/wx/coupon/css/pay-order-template.css
  22. 1 1
      src/web/staticres/frontRouter/wx/coupon/css/selectProduct.css
  23. 27 25
      src/web/staticres/frontRouter/wx/coupon/js/coupon-template.js
  24. 55 0
      src/web/staticres/js/land-page-coupon.js
  25. 308 0
      src/web/staticres/js/pay-order-template.js
  26. 4 0
      src/web/staticres/me/css/mine-icons.css
  27. 128 0
      src/web/staticres/vipsubscribe/js/vip_index_new.js
  28. 7 9
      src/web/templates/frontRouter/wx/coupon/free/myCoupon.html
  29. 19 22
      src/web/templates/frontRouter/wx/coupon/free/selectProduct.html
  30. 92 3
      src/web/templates/weixin/dataExport/dataExport_payOrder.html
  31. 10 0
      src/web/templates/weixin/my.html
  32. 8 2
      src/web/templates/weixin/vipsubscribe/vip_index_new.html
  33. 23 4
      src/web/templates/weixin/vipsubscribe/vip_introduce.html
  34. 84 1
      src/web/templates/weixin/vipsubscribe/vip_purchase.html
  35. 79 1
      src/web/templates/weixin/vipsubscribe/vip_renew.html

+ 6 - 3
src/jfw/modules/app/src/web/staticres/jyapp/css/coupon-list-template.css

@@ -172,14 +172,17 @@
   border-radius: 8px 0 0 0;
 }
 .coupon-list-template .select-radio{
-  width: .48rem;
-  height: .48rem;
+  width: .36rem;
+  height: .36rem;
   margin: 0;
   background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMoSURBVHgBzVjdUdtAEP72ZPGQJ6UDUUGcScgMAxmsCmIqACqAVACuIFBBoII4FdiekPgBMnYqiNOBn/KALW12Tz/IYIMVbItvRtxZ6G4/rXb3dpdQEK1u10dYqROZV2CugeGB5FIwhjIf6MXMHYzGzSDYHBTYXpbOS+T7z31i3pNpDcXQZ4rOgq135/M8/Cih1rerGhF9lqlvb6gWDDU5RAdO2MeNOwiC10P7bKvnYW0kzzlVhKGsMx8y7UG0RlHjMWIzCenmxo2OGXyUbQg+w6hynhKYB4lmj9MXItBpNDKNWXvQdDJdn1z3i0yrqhEmbgTbG6d4AlqXV0dC5lPyc8CjUTDNvmgGmRbiN5q58L9IzbG3mVzQ83IL+osko9C9dE/dW2XoV7B2N4uQ2kyO/e4iydwhtasy5KomMjNknywxPvUmyIL1ZZDJI/l8PZl6ErOC4P1GW+9nGko8QWyYPy6bjMJqCtywsuOwEvOwbG+1M6htv13HCtG+vP4tgy8x6kBjlNWQkDnUUQMXVgwb2ywHs2fH5Fsqy6Fo5yVWjNizQ5XvuS+Mb+BW6vG/qIkSoBGbI3zV+c3fcNcQ047+YAo7KA3Utn8lgzBi1n5yt4+yEIap7JoatW+ncmqjNCSymT0lZEN3kRN80cjJ9gyeGZTQbXJVEnKyhxmhONMrC5nsgZEYkLp7FWVhzbGyJWr/MTBsXY7g7KAkyNGVym4bLVXslLleoh3Fp4VwMUmq0Ya6vzvex4qhmQbi0NNXLtbtmehCR0nCD7FiZHmY1G46WkLB1ptzxCmlr9UBVoTOj2tVgK+y03otC4ySRh7oKFo61pQES4bKEA+3pVU+D8sIaU7LDFWbrTyWSSpXDkFl5qvZyaNj7JxgokRZPKlcEepDzSSWmeF5F4qKXDGnD9pSZRGGrgZMFVv2+HigCH2w2YBKeEKENBTM1b24t4fEtiSc+HrP2ql8pkLNholN73Qv4qaUtGPilHd6OyZ0quRgBxHXJ9ox4slpQTgLRRtW+qZFD+G2aPZiYQ2re8TU81xt6UlxwKI1vSZbeqpBCSHRLzjS0tss5hD/AKCFuJpwctRRAAAAAElFTkSuQmCC) no-repeat center center;
   background-size: contain;
   box-sizing: border-box;
 }
-.coupon-list-template .select-radio:checked{
+.coupon-list-template .select-radio-checked{
+  width: .36rem;
+  height: .36rem;
+  margin: 0;
   background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMfSURBVHgBxZhNUhpBFIDfexhduOEGmSxSJaRSMCcQtLLITk8gniDkBOAJ1BNETqC7VCVRdJH1QFKF7DK5AZuUMRX65b3mV5wJMzCMr6qhmX7d/THd76cbIaZsffSczDrsMWABEEsIkGUp2ib1ntR9ZvQJ+jf9P3DRfev6ccbHqIr5S6/CmDlA4BLEkxawOe3sumdRlOcCbX32SpShD1J1YDnxBexoHlgokHPuZTezmRozVyFBQcaTX9Q/8stuL7A96KHuE9qgc6kWYTXim3tTDtpfGALThOWXaCEomv6hy5QSjJ1OV8FpelkIA9I9kxLMSIqbxs45lvGSqVkDWmtKXUxflu6Ne631yRtCqsETydCtDOr6Yd9OGkuFfMZgGgEtzpBhAIRI72DVwnDUKRcPb3fcShCURgELpGbOq/M3E5jdQn30EznDsyoaknJfO88JJVBCijBbzfaBEFUCdX/f7xNCZhtShCGGszB1JCwQIjvBY4knRfNCC2jEXjHMoA+WRCfYupBNo1t2fS3raMrAfAGrhBlIFvNXbQ5pfBRrxDRPYJ5FzsDkvnh7SDZQRxL6T5sNsmqFoweSy1Q1p4GIMPlPXpEonvdXoB7Eg6oHQgXA4Bo1R+ltROnNAxpBeS9lgmkow+ZwwgKNBGBUfNlr5iaCYvbZGnnWhwylq6noX+Nqvny7U6gkACN/zPzE3KVXldBxHLkXUr1Tfh24j5ZN7pjNe2KC6OZse5l6vvm9ljSMHVpYSP2MxJHrOB0V6tXlt+MkYURayrKmtT5zQ1x2KU5vRq6KDyvJofCaJDYtsmemRYzkVL/HGWPuqv0D001fx6JhSgxDQ9TEMXJ/YsapA035tTGQzWmHry1dGDjtTp1mH4SOdYI6LBLZF4WRpbojU59+9gCoJcdbSTf2VRFSgGHJImaP1I+Cq5qeKq4SSsZu6Rw612xbYLRXxQ0chAVIGkb2zF0IjMr86xg5nkhoqS3rEuwSiSWPDoRhEvnCSsHEeUpyhrFOKCxRQK50Gt2kLqwegTU9Bw3sIeC29HZkCCljL92zhQUCuM0LXOn9A06rk6ZU1XotAAAAAElFTkSuQmCC) no-repeat center center;
   background-size: contain;
 }

+ 31 - 0
src/jfw/modules/app/src/web/staticres/jyapp/css/land-page-coupon.css

@@ -0,0 +1,31 @@
+#land-page-coupon.coupon-tips{
+  position: absolute;
+  top: -0.4rem;
+  right: .96rem;
+  display: flex;
+  flex-direction: column;
+}
+#land-page-coupon .coupon-text-area{
+  display: flex;
+  align-items: center;
+  padding: 0 .32rem;
+  height: .68rem;
+  background: linear-gradient(to right, #FFA674 0%, #F01212 100%);
+  border-radius: 4px;
+  font-size: .24rem;
+  color: #fff;
+  z-index: 99;
+}
+#land-page-coupon .coupon-arrow-area{
+  display: flex;
+  justify-content: flex-end;
+  margin-top: -1px;
+}
+#land-page-coupon .coupon-arrow-icon{
+  display: inline-block;
+  width: .2rem;
+  height: .12rem;
+  margin-right: .18rem;
+  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAPCAYAAADzun+cAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKESURBVHgBlZW9jhNBDIDtmcmdIqCIED1vwCsQnoB0lIQHgEuDhBDSpjsaFFqqhQLRkSuQqJBo0IkCbYUQBczVCN1W/FzYGNvzswuX3OUmkTw79vizPZ5dPLx0cWacvY3OAjmLLAl7FqFnAa0l6BmeO0BnQHTggo4loNg4E9bis0qx63XWrAH1x88iyZqpGXz7voPGvAXDAOQ/C0AgmQOzVMpAA4RigMRPxGZEuo7BRvfplHiOaY7Bp0pZYNW8d+dJYWRv0/s1IiAvUEKFiRkJTEBhU2AkLUEKMupAIAKVRVXrhhBcULLmK8JiLEsKHvi6XuLWkKeHIVIk0qgjLAHEWoIzIXTABA6pUQbFMuUKIgv0v/8sr+GkrDM4wL1vjLml2ZicooDYYYw6pNFOg29KAAymHDRoeeXIwl6ExtCof6/0iZfBCv/s5ywKbM9aBsXU2+w75xkzjFmzoTWInUrEQHe27pZVl/UPWMaFj1+mLMq8MZQ1ZJmCiQGQnKcJyhakKJKyq5lZFvb+s8f/c46BZSzgaMJOKoVBhmJqotR8bfVz81EKVquBuGcfPJ+uYqwEDypfL0wz4rM+EIvYaNGpZkiEbXNht9QxEP4dOPwxhjXDrFMM9j95vukjdlIn5+EaqeN8jvka5eumNn7RwBCLeX1msIzz76qKvU5SG6dG0usWE5ZqLLF7taBu4GjY333hT/J9Iljhbz6UXN5p520EqXHSueZqhGa62d+d+9P8ngqWce71+4KzLePLIL6h8pWJ3SeDCvfw5d4mPjcCK/zV/pjrO4uZ62sxXCeF11zyyfaj+XRTfwhnHD9vXL3MX5fr1tkrsMVfGuOq7b57irP1jbRq/AXAacGublEdIQAAAABJRU5ErkJggg==) no-repeat center center;
+  background-size: 100% 100%;
+}

+ 9 - 5
src/jfw/modules/app/src/web/staticres/jyapp/css/pay-order-template.css

@@ -1,6 +1,5 @@
 .order-template{
-  
-  
+  width: 100%;
 }
 .order-template .order-template-mask{
   position: fixed;
@@ -152,6 +151,7 @@
 .order-template .handle-price .price-info{
   display: flex;
   align-items: center;
+  flex-wrap: wrap;
 }
 .order-template .price-info .price-info-label{
   padding-right: .16rem;
@@ -168,7 +168,7 @@
 .order-template .sale-info{
   display: flex;
   align-items: center;
-  margin-top: .12rem;
+  /* margin-top: .12rem; */
 }
 .order-template .sale-info-label{
   display: flex;
@@ -203,7 +203,7 @@
 .order-template .order-service{
   display: flex;
   align-items: center;
-  padding: .16rem 0;
+  padding: .16rem 0 .24rem;
 }
 .order-template .order-service .service-checkbox{
   width: .36rem;
@@ -213,9 +213,13 @@
   background-size: contain;
   box-sizing: border-box;
 }
-.order-template .order-service .service-checkbox:checked{
+.order-template .order-service .checkbox-checked{
+  width: .36rem;
+  height: .36rem;
+  margin: 0;
   background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMfSURBVHgBxZhNUhpBFIDfexhduOEGmSxSJaRSMCcQtLLITk8gniDkBOAJ1BNETqC7VCVRdJH1QFKF7DK5AZuUMRX65b3mV5wJMzCMr6qhmX7d/THd76cbIaZsffSczDrsMWABEEsIkGUp2ib1ntR9ZvQJ+jf9P3DRfev6ccbHqIr5S6/CmDlA4BLEkxawOe3sumdRlOcCbX32SpShD1J1YDnxBexoHlgokHPuZTezmRozVyFBQcaTX9Q/8stuL7A96KHuE9qgc6kWYTXim3tTDtpfGALThOWXaCEomv6hy5QSjJ1OV8FpelkIA9I9kxLMSIqbxs45lvGSqVkDWmtKXUxflu6Ne631yRtCqsETydCtDOr6Yd9OGkuFfMZgGgEtzpBhAIRI72DVwnDUKRcPb3fcShCURgELpGbOq/M3E5jdQn30EznDsyoaknJfO88JJVBCijBbzfaBEFUCdX/f7xNCZhtShCGGszB1JCwQIjvBY4knRfNCC2jEXjHMoA+WRCfYupBNo1t2fS3raMrAfAGrhBlIFvNXbQ5pfBRrxDRPYJ5FzsDkvnh7SDZQRxL6T5sNsmqFoweSy1Q1p4GIMPlPXpEonvdXoB7Eg6oHQgXA4Bo1R+ltROnNAxpBeS9lgmkow+ZwwgKNBGBUfNlr5iaCYvbZGnnWhwylq6noX+Nqvny7U6gkACN/zPzE3KVXldBxHLkXUr1Tfh24j5ZN7pjNe2KC6OZse5l6vvm9ljSMHVpYSP2MxJHrOB0V6tXlt+MkYURayrKmtT5zQ1x2KU5vRq6KDyvJofCaJDYtsmemRYzkVL/HGWPuqv0D001fx6JhSgxDQ9TEMXJ/YsapA035tTGQzWmHry1dGDjtTp1mH4SOdYI6LBLZF4WRpbojU59+9gCoJcdbSTf2VRFSgGHJImaP1I+Cq5qeKq4SSsZu6Rw612xbYLRXxQ0chAVIGkb2zF0IjMr86xg5nkhoqS3rEuwSiSWPDoRhEvnCSsHEeUpyhrFOKCxRQK50Gt2kLqwegTU9Bw3sIeC29HZkCCljL92zhQUCuM0LXOn9A06rk6ZU1XotAAAAAElFTkSuQmCC) no-repeat center center;
   background-size: contain;
+  box-sizing: border-box;
 }
 .order-template .service-content{
   flex: 1;

+ 91 - 0
src/jfw/modules/app/src/web/staticres/jyapp/js/coupon-template.js

@@ -0,0 +1,91 @@
+Vue.component('coupon-list', {
+  delimiters: ['@@', '@@'],
+  // props: ['couponList', 'mold', 'isSelect', 'disabled'],
+  props: {
+    couponList: Array,
+    mold: Number || String,
+    isSelect: Boolean,
+    disabled: Boolean
+  },
+  data: function () {
+    return {
+      defaultTitle: '使用说明: 1.不与其他活动优惠同时享受,在线支付专享。 2.支付时可抵扣现金,不可拆分、不可叠加、不可找零。',
+      activeTitle: '使用说明:<br> 1.不与其他活动优惠同时享受,在线支付专享。<br> 2.支付时可抵扣现金,不可拆分、不可叠加、不可找零。<br> 适用产品:<br>'
+    }
+  },
+  template: `
+  <div class="coupon-list-template">
+    <div class="card" v-for="(item,index) in couponList" :key="item.lotteryId">
+    <div class="card-content">
+      <div :class="['type', mold == 4 ? 'type-active' : '']">@@item.lotteryAttribute@@</div>
+      <label class="card-content-text">
+        <div class="card-text-top">
+          <div>
+            <span :class="['price', mold == 2 || disabled ? 'gray' : '']">¥<strong>@@item.reduce@@</strong></span>
+            <span class="usable" :class="[ mold == 2 || disabled ? 'gray gray-bg' : '']">满@@item.full@@元可用</span>
+          </div>
+          <div class="use-time">@@item.lotteryBeginDate@@ - @@item.lotteryEndDate@@</div>
+        </div>
+        <div class="use-btn" v-if="mold == 4 && !isSelect" @click="toUseFn(item.lotteryId)">去使用</div>
+        <input @click="changeRadio(item)" :checked="item.isChecked" v-if="isSelect && !disabled" :class="[item.isChecked ?'select-radio-checked' : 'select-radio']" type="radio" name="coupon" />
+      </label>
+      <div class="use-range ellipsis-2" :class="[ mold == 2 || disabled ? 'gray' : '']">
+        适用于: 
+        <span>@@item.str@@</span>  
+      </div>
+      <div class="outer-race red-race" v-if="mold == 3">
+        <div class="inner-race red-race">已使用</div>
+      </div>
+      <div class="outer-race gray-race"  v-if="mold == 2">
+        <div class="inner-race gray-race">已失效</div>
+      </div>
+      <div class="cro_left_bottom"></div>
+      <div class="cro_right_bottom"></div>
+    </div>
+    <div class="van-hairline--top card-footer">
+      <div class="cro_left_top"></div>
+      <div class="cro_right_top"></div>
+      <van-cell 
+        :title-class="item.isOpen ? '' : 'ellipsis' " 
+        :style="{lineHeight:(item.isOpen ? '0.36rem' : '')}"
+        :arrow-direction="item.isOpen ? 'down' : 'up'" 
+        is-link 
+        @click="switchEvent(index)" >
+        <template #title>
+          <span class="custom-title" v-html="item.isOpen ? (activeTitle + item.str) : defaultTitle "></span>
+        </template>
+      </van-cell>
+    </div>
+  </div>
+  `,
+  created() {
+    console.log(this.couponList)
+    this.getTextByProducts(this.couponList)
+  },
+  methods: {
+    switchEvent: function(index) {
+      this.$set(this.couponList[index], 'isOpen', !this.couponList[index].isOpen)
+    },
+    toUseFn: function (id) {
+      location.href = '/jyapp/frontPage/coupon/free/selectProduct?couponId=' + id;
+    },
+    changeRadio: function (item){
+      this.couponList.forEach(function(v){
+        v.isChecked = false
+      })
+      item.isChecked = true
+      this.$emit('child-select-coupon', item)
+    },
+    getTextByProducts: function (arr) {
+      arr.forEach(function(s) {
+        var newArr = [];
+        if(s.products) {
+          s.products.forEach(function(v) {
+            newArr.push(v.name)
+          })
+          s.str = newArr.join('、')
+        }
+      })
+    }
+  }
+})

+ 55 - 0
src/jfw/modules/app/src/web/staticres/jyapp/js/land-page-coupon.js

@@ -0,0 +1,55 @@
+// 获取产品id
+function getProductId(type) {
+  var type = type.indexOf('vip') > -1 ? 'vip' : type
+  var id;
+  switch (type) {
+    case 'vip':
+      id = 101
+      break;
+    case 'dataExport':
+      id = 102
+      break;
+    case 'bidFile':
+      id = 103
+      break;
+    case 'big':
+      id = 104
+      break;
+    case 'big-7day':
+      id = 1001
+      break;
+    case 'big-sj':
+      id = 1002
+      break;
+    case 'big-zh':
+      id = 1003
+      break;
+    case 'big-zj':
+      id = 1004
+      break;
+    case 'jyPoints':
+      id = 105
+      break;
+  }
+  return id;
+}
+// 获取优惠券
+function getCoupon(type,callback) {
+  $.ajax({
+    type:'POST',
+    url:'/jyCoupon/optimalCoupon',
+    data:{
+      pId: getProductId(type),
+      price: 0,
+      priceBool: true
+    },
+    success:function(res) {
+      if (res.data) {
+        return callback && callback(res.data)
+      }
+    },
+    error:function(err) {
+      console.log(err)
+    }
+  })
+}

+ 217 - 34
src/jfw/modules/app/src/web/staticres/jyapp/js/pay-order-template.js

@@ -1,26 +1,31 @@
-Vue.component('pay-order-template', {
+var couponTem = {
   delimiters: ['@@', '@@'],
   props: {
     config: {
-      initPrice: 0,
-      couponPrice: 0,
-      realPrice: 0,
-      // once
-      type: 'dataExport',
-      checkboxStatus: false,
-      buttons: {
-        preview: event,
-        submit: event
-      },
-      links: [
-        {
-          text: '',
-          url: '',
-          event: event
+      type: Object,
+      default: function() {
+        return {
+          initPrice: Number, // 原价
+          disPrice: Number, // 折扣价(仅数据导出)
+          // once
+          type: String,
+          checkboxStatus: Boolean,
+          buttons: {
+            preview: Function,
+            submit: Function,
+            cancel:Function
+          },
+          links: [
+            {
+              text: String,
+              url: String,
+              event: Function
+            }
+          ],
+          jyPoints: Number || String,
+          showJyPoint: Boolean
         }
-      ],
-      jyPoints: 100,
-      showJyPoint: false
+      }
     }
   },
   data: function () {
@@ -29,7 +34,13 @@ Vue.component('pay-order-template', {
       mask: false,
       isShowDetail: false,
       submitStatus:true,
-      couponValue: 50
+      coupon: {
+        list: [],
+        type: '满减券',
+        value: 0,
+        checkedId: ''
+      },
+      btnText: this.config.type == 'vip-update' ? '立即升级':'提交订单'
     }
   },
   template: `
@@ -44,25 +55,30 @@ Vue.component('pay-order-template', {
           <div>
             <p class="detail-item">
               <span class="detail-item-label">原价</span>
-              <span class="detail-item-value">¥@@config.initPrice@@</span>
+              <span class="detail-item-value">¥@@formatMoney(config.initPrice)@@</span>
+            </p>
+            <p class="detail-item" v-if="config.type == 'dataExport'">
+              <span class="detail-item-label">折扣价</span>
+              <span class="detail-item-value">¥@@formatMoney(config.disPrice)@@</span>
             </p>
             <p class="detail-item">
               <span class="detail-item-label">优惠券</span>
-              <span class="detail-item-value red-value">-¥@@config.couponPrice@@</span>
+              <span class="detail-item-value red-value">-¥@@coupon.value@@</span>
             </p>
             <p class="detail-item">
               <span class="detail-item-label">实付</span>
-              <span class="detail-item-value red-value">¥@@config.realPrice@@</span>
+              <span class="detail-item-value red-value">¥@@formatMoney(realPrice)@@</span>
             </p>
           </div>
         </div>
         <div v-show="!isShowDetail" class="order-coupon">
           <div class="coupon-label">优惠券</div>
           <div class="coupon-value" @click="selectCoupon">
-            <div class="coupon-value-box">
+            <div class="coupon-value-box" v-if="coupon.list && coupon.list.length > 0">
               <span class="label-text">已选</span>
-              <span class="value-text">¥@@couponValue@@ <em class="coupon-type-tip">满减券</em> </span>
+              <span class="value-text">¥@@coupon.value@@ <em class="coupon-type-tip">@@coupon.type@@</em> </span>
             </div>
+            <div class="label-text" v-else>暂无可用优惠券</div> 
             <i class="order__right__icon"></i>
           </div>
         </div>
@@ -75,25 +91,41 @@ Vue.component('pay-order-template', {
             </div> 
             <div class="price-info">
               <span class="price-info-label">实付:</span>
-              <span class="price-info-value">¥<em>@@config.realPrice@@</em></span>
+              <span class="price-info-value">¥<em>@@formatMoney(realPrice)@@</em></span>
             </div>
             <div class="sale-info">
               <span class="sale-info-label" @click="openDetail">优惠明细 <i class="arrow__up__down" :class="[arrowTurn ? 'arrow__turn':'']"></i></span>
-              <span class="original-price">原价:<em class="line-through">¥@@config.initPrice@@</em></span>
+              <span class="original-price">原价:<em class="line-through">¥@@formatMoney(config.initPrice)@@</em></span>
             </div> 
           </div>
           <div class="handle-btn">
-            <div v-if="config.type == 'dataExport'" class="btn-item btn-default">预览数据</div>
-            <button type="button" class="btn-item btn-primary" :disabled="submitStatus">提交订单</button> 
+            <div v-if="config.type == 'dataExport'" class="btn-item btn-default" @click="previewFn">预览数据</div>
+            <div v-if="config.type == 'vip-update'" class="btn-item btn-default" @click="cancelFn">取&nbsp;&nbsp;&nbsp;&nbsp;消</div>
+            <button type="button" class="btn-item btn-primary" :disabled="submitStatus" @click="submitFn">@@btnText@@</button> 
           </div>
         </div>
         <div class="order-service">
-          <input v-model="config.checkboxStatus" @click="chooseCheckbox" type="checkbox" id="service-checkbox" class="service-checkbox" />
-          <div class="service-content"> <label for="service-checkbox">我已阅读,理解并接受</label><a class="service-html ">《剑鱼标讯线上购买与服务条款》</a></div>
+          <input :checked="config.checkboxStatus" @click="chooseCheckbox" type="checkbox" id="service-checkbox" :class="[config.checkboxStatus ? 'checkbox-checked':'service-checkbox']" />
+          <div class="service-content"> 
+            <label for="service-checkbox">我已阅读,理解并接受</label>
+            <a v-for="s in config.links" @click="toLinks(s)" class="service-html">@@s.text@@</a>
+          </div>
         </div>
       </div>
     </div>  
   `,
+  mounted() {
+    this.$emit('mounted')
+  },
+  computed: {
+    realPrice: function () {
+      if (this.config.type === 'dataExport') {
+        return this.config.disPrice - this.coupon.value
+      } else {
+        return this.config.initPrice - this.coupon.value
+      } 
+    }
+  },
   methods: {
     // 展开明细
     openDetail: function () {
@@ -109,18 +141,169 @@ Vue.component('pay-order-template', {
     },
     // 跳转选择优惠券
     selectCoupon: function () {
-      location.href = '/jyapp/frontPage/coupon/free/selectCoupon'
+      var pId = this.getProductId();
+      var price = this.config.type === 'dataExport' ? this.config.disPrice : this.config.initPrice;
+      var checkedId = this.coupon.checkedId;
+      if(this.coupon.list.length > 0) {
+        location.href = '/jyapp/frontPage/coupon/free/selectCoupon?pId=' + pId + '&price=' + price + '&checkedId=' + checkedId;
+        // 通知父组件,父组件可通过save事件进行存储数据等操作
+        this.$emit('save')
+      }
     },
     // checkbox事件
     chooseCheckbox:function() {
       this.config.checkboxStatus = !this.config.checkboxStatus
       // 通知父组件
       this.$emit('update', {
-        check: this.checkboxStatus,
+        check: this.config.checkboxStatus,
         callback: (s) => {
           this.submitStatus = !(this.config.checkboxStatus && s)
         }
       })
+    },
+    // 阅读协议点击事件
+    toLinks: function(link) {
+      if (link.url) {
+        location.href = link.url
+      } else {
+        link.event()
+      }
+    },
+    // 预览数据
+    previewFn: function () {
+      this.config.buttons.preview()
+    },
+    // 取消按钮(vip升级适用)
+    cancelFn: function () {
+      console.log("11111")
+      this.config.buttons.cancel()
+    },
+    // 提交订单事件
+    submitFn: function () {
+      this.config.buttons.submit()
+    },
+    // 获取产品id
+    getProductId: function() {
+      var type = this.config.type.indexOf('vip') > -1 ? 'vip' : this.config.type
+      var id;
+      switch (type) {
+        case 'vip':
+          id = 101
+          break;
+        case 'dataExport':
+          id = 102
+          break;
+        case 'bidFile':
+          id = 103
+          break;
+        case 'big':
+          id = 104
+          break;
+        case 'big-7day':
+          id = 1001
+          break;
+        case 'big-sj':
+          id = 1002
+          break;
+        case 'big-zh':
+          id = 1003
+          break;
+        case 'big-zj':
+          id = 1004
+          break;
+        case 'jyPoints':
+          id = 105
+          break;
+      }
+      return id;
+    },
+    // 获取优惠券
+    getCoupon: function () {
+      var _this = this;
+      this.coupon.list = []
+      this.coupon.type = ''
+      this.coupon.value = 0
+      this.coupon.checkedId = ''
+      var couponStorage = JSON.parse(sessionStorage.getItem('$select-coupon')) || null;
+      var arr = [];
+      if (couponStorage) {
+        arr.push(couponStorage)
+        _this.coupon.list = arr;
+        _this.coupon.value = couponStorage.reduce;
+        _this.coupon.type = couponStorage.lotteryAttribute;
+        sessionStorage.removeItem('$select-coupon')
+        _this.$emit('update-coupon',_this.coupon)
+      } else {
+        $.ajax({
+          type:'POST',
+          url:'/jyCoupon/optimalCoupon',
+          data:{
+            pId: _this.getProductId(),
+            // 单位:分  数据导出有折扣价  应传折扣后价格 其他产品为现价
+            price: _this.config.type == 'dataExport' ? _this.config.disPrice*100 : _this.config.initPrice*100 
+          },
+          success:function(res) {
+            if (res.data) {
+              if (res.data.list && res.data.list.length > 0) {
+                res.data.list.forEach(function(v){
+                  if (v.userLotteryId == res.data.select) {
+                    _this.coupon.value = v.reduce;
+                    _this.coupon.type = v.lotteryAttribute;
+                    _this.coupon.checkedId = v.userLotteryId
+                  }
+                })
+                _this.coupon.list = res.data.list;
+                _this.$emit('update-coupon',_this.coupon)
+              } else {
+                console.log('没有优惠券')
+              }
+            }
+          },
+          error:function(err) {
+            console.log(err)
+          }
+        })
+      }
+    },
+    // 金额转换加逗号
+    formatMoney: function (s, n) {
+      if (n === undefined) {
+        n = -1
+      } else {
+        n = n > 0 && n <= 20 ? n : 2;
+      }
+      var intS = parseInt(s)
+      var point = '.'
+      var left;
+      var right;
+      s = parseFloat((s + '').replace(/[^\d\.-]/g, ''))
+      // 没传n,默认(如果为整数,则不保留小数。如果为浮点数,则保留两位小数)
+      if (n === -1) {
+        if (s === intS) {
+            n = 0
+            right = ''
+            point = ''
+        } else {
+            n = 2
+            s = s.toFixed(n);
+            right = s.split('.')[1];
+        }
+        s = s + ''
+        left = s.split('.')[0].split('').reverse();
+      } else {
+        s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + '';
+        left = s.split('.')[0].split('').reverse();
+        right = s.split('.')[1];
+      }
+      t = '';
+      for (i = 0; i < left.length; i++) {
+        t += left[i] + ((i + 1) % 3 == 0 && (i + 1) != left.length ? ',' : '');
+      }
+      var money = t.split('').reverse().join('') + point + right;
+      return money;
     }
   }
-})
+}
+if (typeof Vue !== 'undefined') {
+  Vue.component('pay-order-template', couponTem)
+}

+ 1 - 1
src/jfw/modules/app/src/web/staticres/jyapp/me/css/selectProduct.css

@@ -63,7 +63,7 @@
   background-image: url(/jyapp/images/product/dahuiyuan1.png);
 }
 .big-vip2-icon{
-  background-image: url(/jyapp/images/product/dahuiyuan1.png);
+  background-image: url(/jyapp/images/product/dahuiyuan2.png);
 }
 .big-vip3-icon{
   background-image: url(/jyapp/images/product/dahuiyuan3.png);

+ 9 - 88
src/jfw/modules/app/src/web/staticres/jyapp/me/js/coupon-template.js

@@ -1,88 +1,9 @@
-Vue.component('coupon-list', {
-  delimiters: ['@@', '@@'],
-  // props: ['couponList', 'mold', 'isSelect', 'disabled'],
-  props: {
-    couponList: Array,
-    mold: Number || String,
-    isSelect: Boolean,
-    disabled: Boolean
-  },
-  data: function () {
-    return {
-      defaultTitle: '使用说明: 1.不与其他活动优惠同时享受,在线支付专享。 2.支付时可抵扣现金,不可拆分、不可叠加、不可找零。',
-      activeTitle: '使用说明:<br> 1.不与其他活动优惠同时享受,在线支付专享。<br> 2.支付时可抵扣现金,不可拆分、不可叠加、不可找零。<br> 适用产品:<br>',
-      str: ''
-    }
-  },
-  template: `
-  <div class="coupon-list-template">
-    <div class="card" v-for="(item,index) in couponList" :key="item.lotteryId">
-    <div class="card-content">
-      <div :class="['type', mold == 4 ? 'type-active' : '']">@@item.lotteryAttribute@@</div>
-      <div class="card-content-text">
-        <div class="card-text-top">
-          <div>
-            <span :class="['price', mold == 3 || disabled ? 'gray' : '']">¥<strong>@@item.reduce@@</strong></span>
-            <span class="usable" :class="[ mold == 3 || disabled ? 'gray gray-bg' : '']">满@@item.full@@元可用</span>
-          </div>
-          <div class="use-time">@@item.lotteryBeginDate@@ - @@item.lotteryEndDate@@</div>
-        </div>
-        <div class="use-btn" v-if="mold == 4 && !isSelect" @click="toUseFn(item.lotteryId)">去使用</div>
-        <input @click="changeRadio(item.lotteryId)" v-if="isSelect && !disabled" class="select-radio" type="radio" name="coupon" />
-      </div>
-      <div class="use-range ellipsis-2" :class="[ mold == 3 ? 'gray' : '']">
-        适用于: 
-        <span>@@str@@</span>  
-      </div>
-      <div class="outer-race red-race" v-if="mold == 2">
-        <div class="inner-race red-race">已使用</div>
-      </div>
-      <div class="outer-race gray-race"  v-if="mold == 3">
-        <div class="inner-race gray-race">已失效</div>
-      </div>
-      <div class="cro_left_bottom"></div>
-      <div class="cro_right_bottom"></div>
-    </div>
-    <div class="van-hairline--top card-footer">
-      <div class="cro_left_top"></div>
-      <div class="cro_right_top"></div>
-      <van-cell 
-        :title-class="item.isOpen ? '' : 'ellipsis' " 
-        :style="{lineHeight:(item.isOpen ? '0.36rem' : '')}"
-        :arrow-direction="item.isOpen ? 'down' : 'up'" 
-        is-link 
-        @click="switchEvent(index)" >
-        <template #title>
-          <span class="custom-title" v-html="item.isOpen ? (activeTitle + str) : defaultTitle "></span>
-        </template>
-      </van-cell>
-    </div>
-  </div>
-  `,
-  created() {
-    this.getTextByProducts(this.couponList, this)
-  },
-  methods: {
-    switchEvent: function(index) {
-      this.$set(this.couponList[index], 'isOpen', !this.couponList[index].isOpen)
-    },
-    toUseFn: function (id) {
-      location.href = '/jyapp/frontPage/coupon/free/selectProduct?couponId=' + id;
-    },
-    changeRadio: function (id){
-      console.log(id)
-      this.$emit('child-select-coupon', id)
-    },
-    getTextByProducts(arr, that) {
-      arr.map(function(v){
-        v.products.map(function(item){
-          that.str += item.name + "、"
-        })
-      })
-      //去掉最后一个符号
-      if (that.str.length > 0) {
-        that.str = that.str.substr(0,that.str.length - 1);
-      }
-    }
-  }
-})
+/*
+ * @Editor: Created with VScode
+ * @Descripttion: 
+ * @Author: Do not edit
+ * @Date: 2021-04-15 15:43:35
+ * @LastEditors: yangfeng
+ * @LastEditTime: 2021-04-15 15:43:36
+ * @target: 
+ */

文件差异内容过多而无法显示
+ 1043 - 913
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_index_new.js


+ 103 - 1
src/jfw/modules/app/src/web/staticres/jyapp/vipsubscribe/js/vip_renew.js

@@ -190,6 +190,7 @@ var purchase = {
             $('.computed_price').html(showPrice);
         }
         this.flushSelectTime(times, flag === undefined ? 1 : flag);
+        coupon.updatePrice(price)
     },
     flushSelectTime(thisValue, flag) {
         if (this.endTime) {
@@ -421,7 +422,7 @@ $(function () {
     });
     //是否点击已读
     if (sessionStorage.getItem("vipSub_read") === "true") {
-        $('.checkbox').addClass("checked");
+      $('.checkbox').addClass("checked");
     }
 
     /* -------- 选择按年订阅  radio触发的事件------- */
@@ -554,3 +555,104 @@ function pickerShow(selector, f) {
         $(selector).hide(300);
     }
 }
+/* vue 代码 start */
+var coupon = new Vue({ 
+  el: '#coupon-vue',
+  data: function () {
+    return {
+      type: 'vip',
+      initPrice: 0, // 原价
+      realPrice: 0, // 实付价
+      checkboxStatus: false, // checkbox状态
+      submitStatus: true,  // 提交按钮状态
+      links: [
+        {
+          text: '《剑鱼标讯线上购买与服务条款》',
+          url: '/jyapp/front/staticPage/dataExport_serviceterms.html',
+          event: this.readEvent
+        }
+      ],
+      buttons: {
+        submit: this.submitOrder
+      },
+    }
+  },
+  mounted () {
+    this.init(this.$data)
+  }, 
+  methods: {
+    // 更新价格相关
+    updatePrice: function (before) {
+      console.log( '原价:' + before)
+      this.initPrice = before;
+      // 调用子组件查询最优卡券
+      this.$refs.couponRef.getCoupon();
+    },
+    // 初始化及回显相关
+    init: function (data) {
+      if (sessionStorage.getItem("vipSub_read") === "true") {
+        this.checkboxStatus = true
+      }
+      var areaSelect = JSON.parse(sessionStorage.getItem("vipSubSelectArea"));
+      var industrySelect = JSON.parse(sessionStorage.getItem("vipSubSelectIndustry"));
+      var endTime = sessionStorage.getItem("endTime")
+      var readStorage = sessionStorage.getItem("vipSub_read") == "true" ? true : false
+      console.log(areaSelect,industrySelect,endTime)
+      if (areaSelect && industrySelect && endTime && readStorage) {
+        this.$refs.couponRef.submitStatus = false
+      } else {
+        this.$refs.couponRef.submitStatus = true
+      }
+    },
+    // 勾选阅读协议
+    updateS: function(data) {
+      data.callback(this.checkSubmitStatus(data.check))
+    },
+    // 校验checkbox
+    checkSubmitStatus: function (checkStatus) {
+      sessionStorage.setItem("vipSub_read", checkStatus);
+      purchase.flushSubmit();
+      return purchase.timeCheckOk && sessionStorage.getItem("vipSub_read") === "true"
+    },
+    // 阅读协议点击事件
+    readEvent: function () {
+      toRead()
+    },
+    // 订单提交事件
+    submitOrder: function () {
+      this.$refs.couponRef.submitStatus = true
+      $('.vip-footer.renew .confirm').attr("disabled", "disabled");
+      //支付请求
+      var area = purchase.areaSelect;
+      var industry = purchase.industrySelect;
+      if (area["全国"]) {
+        area = {};
+      }
+      if (industry.length === 1 && industry[0] === "全部行业") {
+        industry = [];
+      }
+      //付费用户
+      var param = {
+        "area": JSON.stringify(area),
+        "industry": industry.join(","),
+        "time": purchase.timeValue.trim(),
+        "orderType": 5,
+        "disWord":GetQueryString("disWord"),
+      };
+      $DoPost("/subscribepay/vipsubscribe/createOrder", param, function (r) {
+        if (r.success) {
+          try {
+            clearSessionStorage()
+            history.replaceState({}, '', '/jyapp/vipsubscribe/toOrderDetailPage?orderCode=' + r.data.code);
+            window.location.href = "/jyapp/pay/checkout_subvip?orderCode=" + r.data.code + "&t=1&from=buy"
+          } catch (e) {
+            showToast(e)
+          }
+        }
+      }, false);
+      $('.vip-footer.renew .confirm').removeAttr("disabled");
+      this.$refs.couponRef.submitStatus = false
+    }
+  }
+})
+/* vue 代码 end */

+ 112 - 83
src/jfw/modules/app/src/web/templates/dataExport/dataExport_payOrder.html

@@ -36,13 +36,16 @@
         #code {
             margin-left: -0.2rem;
         }
+        .checkbox-checked{
+          z-index: 8;
+        }
     </style>
 </head>
 <body>
 <div class="loading_" style="display:none;">
     <p><span></span></p>
 </div>
-<div class="app-layout-header jy-app-header">
+<div class="app-layout-header jy-app-header" style="z-index: 8;">
     <span class="app-back jyapp-icon jyapp-icon-zuojiantou"></span>
     数据导出
     <span></span>
@@ -164,7 +167,7 @@
             </div>
         </main>
         <div class="fixed-bottom-box p15" id="coupon-vue">
-          <pay-order-template :config="$data" @update="updateS"></pay-order-template>
+          <pay-order-template ref="couponRef" :config="$data" @update="updateS"></pay-order-template>
         </div>
         <div class="fixed-bottom-box p15" id="bottombox" style="display: none;">
             <div class="price">
@@ -266,62 +269,6 @@
 <script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
 <script>
-  window.couponData = {
-    checkboxStatus: true
-  }
-  window.couponFn = {} 
-  var coupon = new Vue({ 
-    el: '#coupon-vue',
-    data: function () {
-      return {
-        type: 'dataExport',
-        initPrice: 0,
-        couponPrice: 0,
-        realPrice: 0,
-        checkboxStatus: false,
-        submitStatus:true,
-        jyPoints: 100
-      }
-  },
-  mounted() {}, 
-  methods: {
-      // 更新价格相关
-      updatePrice:function (after,before) {
-        console.log('实付:' + after, '原价:' + before)
-        this.initPrice = before
-        this.realPrice = after
-      },
-      // 初始化及回显相关
-      init (data) {
-        this.checkStatus = data.checkStatus
-      },
-      // 勾选阅读协议
-      updateS: function(data) {
-        console.log(data)
-        data.callback(this.checkSubmitStatus(data.check))
-      },
-      checkSubmitStatus: (checkStatus) => {
-        if (checkStatus) {
-          if (finishEmailVerity && finishPhoneVerity) {
-              sessionStorage.setItem("ischecked", "ischecked");
-              readClause = true;
-              sessionStorage.readClause = "true";
-          } else {
-              readClause = true;
-              sessionStorage.readClause = "true";
-          }
-        } else {
-          sessionStorage.removeItem("ischecked");
-          readClause = false;
-          sessionStorage.readClause = "false";
-        }
-        return finishEmailVerity && finishPhoneVerity
-      }
-    }
-  })
-</script>
-<script>
-    
     window.addEventListener('pageshow', function (event) {
         if (event.persisted) {
             location.reload();
@@ -566,8 +513,10 @@
 
         //缓存判断是否点击我已阅读
         if (sessionStorage.readClause == "true") {
+            coupon.checkboxStatus = true
             if (finishPhoneVerity && finishEmailVerity) {
                 $(".toPay").removeAttr("disabled")
+                coupon.$refs.couponRef.submitStatus = false
                 readClause = true;
             }
             if (!$(".fixed-bottom-box .weui-check").is(":checked")) {
@@ -875,9 +824,9 @@
                 previewDataTime++
                 if (regInt.test($(".sendCode").text())) {
                     var email_input = $(".email_input").val().replace(/\s*/g, "");
-//							if (/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/.test(email_input)){
-//								sessionStorage.setItem("send_email_"+{{.T._id}}, $(".email_input").val().replace(/\s*/g,""));
-//							}
+                    // if (/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/.test(email_input)){
+                    // sessionStorage.setItem("send_email_"+{{.T._id}}, $(".email_input").val().replace(/\s*/g,""));
+                    //}
                 }
                 if ($("#phone_input").val()) {
                     sessionStorage.setItem("order_phone" +{{.T._id}}, $("#phone_input").val().replace(/\s*/g, ""));
@@ -967,29 +916,29 @@
 
     //提示框
     var EasyAlert = {
-        timeout: null,
-        waitTime: 1000,
-        show: function (text, css, waitTime) {
-            if (this.timeout != null) {
-                clearTimeout(this.timeout);
-                this.hide();
-                this.timeout = null;
-            }
-            var thisClass = this;
-            this.timeout = setTimeout(function () {
-                thisClass.hide();
-                thisClass.timeout = null;
-            }, waitTime ? waitTime : this.waitTime);
-            $("body").append('<div class="easyalert" id="easyAlert">' + text + '</div>');
-            $("#easyAlert").css({
-                "left": "50%",
-                "margin-top": -($("#easyAlert").outerHeight() / 2),
-                "margin-left": -($("#easyAlert").outerWidth() / 2)
-            }).show();
-        },
-        hide: function () {
-            $("#easyAlert").remove();
+      timeout: null,
+      waitTime: 1000,
+      show: function (text, css, waitTime) {
+        if (this.timeout != null) {
+          clearTimeout(this.timeout);
+          this.hide();
+          this.timeout = null;
         }
+        var thisClass = this;
+        this.timeout = setTimeout(function () {
+          thisClass.hide();
+          thisClass.timeout = null;
+        }, waitTime ? waitTime : this.waitTime);
+        $("body").append('<div class="easyalert" id="easyAlert">' + text + '</div>');
+        $("#easyAlert").css({
+          "left": "50%",
+          "margin-top": -($("#easyAlert").outerHeight() / 2),
+          "margin-left": -($("#easyAlert").outerWidth() / 2)
+        }).show();
+      },
+      hide: function () {
+        $("#easyAlert").remove();
+      }
     }
 
     //
@@ -997,6 +946,86 @@
         EasyAlert.show(content, "", 3000);
     }
     
+    /* vue 卡券部分代码 start */
+    var coupon = new Vue({ 
+      el: '#coupon-vue',
+      data: function () {
+        return {
+          type: 'dataExport',
+          initPrice: 0, // 原价
+          realPrice: 0, // 实付价
+          disPrice: 0,  // 折扣价(仅数据导出)
+          checkboxStatus: false, // checkbox状态
+          submitStatus:true,  // 提交按钮状态
+          links: [
+            {
+              text: '《剑鱼标讯线上购买与服务条款》',
+              url: '',
+              event: this.readEvent
+            }
+          ],
+          buttons: {
+            preview: this.previewEvent,
+            submit: this.submitOrder
+          },
+        }
+    },
+    mounted () {
+      console.log(finishEmailVerity,finishPhoneVerity, sessionStorage.readClause, sessionStorage.getItem("ischecked"))
+      console.log(localStorage.getItem("new_email_" + userId))
+      this.init()
+    }, 
+    methods: {
+        // 更新价格相关
+        updatePrice: function (after, before) {
+          console.log( '原价:' + before, '折扣价:' + after)
+          this.initPrice = before;
+          this.disPrice = after;
+          // 调用子组件查询最优卡券
+          this.$refs.couponRef.getCoupon();
+        },
+        // 初始化及回显相关
+        init: function () {
+          
+        },
+        // 勾选阅读协议
+        updateS: function(data) {
+          data.callback(this.checkSubmitStatus(data.check))
+        },
+        // 校验checkbox
+        checkSubmitStatus: function (checkStatus) {
+          console.log(finishEmailVerity,finishPhoneVerity, sessionStorage.readClause)
+          if (checkStatus) {
+            if (finishEmailVerity && finishPhoneVerity) {
+              sessionStorage.setItem("ischecked", "ischecked");
+              readClause = true;
+              sessionStorage.readClause = "true";
+            } else {
+              readClause = true;
+              sessionStorage.readClause = "true";
+            }
+          } else {
+            sessionStorage.removeItem("ischecked");
+            readClause = false;
+            sessionStorage.readClause = "false";
+          }
+          return finishEmailVerity && finishPhoneVerity
+        },
+        // 阅读协议点击事件
+        readEvent: function () {
+          toRead()
+        },
+        // 数据导出预览数据
+        previewEvent: function () {
+          $(".dataPreview").trigger("click")
+        },
+        // 订单提交事件
+        submitOrder: function () {
+          $(".toPay").trigger("click")
+        }
+      }
+    })
+    /* vue 卡券部分代码 end */
 </script>
 <!--百度统计end-->
 {{include "/common/baiducc.html"}}

+ 9 - 85
src/jfw/modules/app/src/web/templates/frontRouter/coupon/free/myCoupon.html

@@ -30,7 +30,7 @@
                 <p class="empty-text">暂无奖券</p>
               </div>
             </van-tab>
-            <van-tab title="已使用" name="2">
+            <van-tab title="已使用" name="3">
               <div v-if="list.used && list.used.length > 0">
                 <coupon-list :coupon-list="list.used" :mold="2"></coupon-list>
               </div>
@@ -39,7 +39,7 @@
                 <p class="empty-text">暂无奖券</p>
               </div>
             </van-tab>
-            <van-tab title="已失效" name="3">
+            <van-tab title="已失效" name="2">
               <div v-if="list.expired && list.expired.length > 0">
                 <coupon-list :coupon-list="list.expired" :mold="3"></coupon-list>
               </div>
@@ -59,7 +59,7 @@
   <script src=//cdn.jsdelivr.net/npm/zepto@1.2.0/dist/zepto.min.js></script>
   <!--E-当前页面的资源-->
   {{include "/big-member/commonjs.html"}}
-  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/me/js/coupon-template.js?v={{Msg "seo" "version"}}'></script>
+  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/coupon-template.js?v={{Msg "seo" "version"}}'></script>
   <script>
     var vNode = {
       delimiters: ['${', '}'],
@@ -68,84 +68,9 @@
         offsetTOP: 0,
         active: 0,
         list: {
-          unused: [
-            // {
-            //   lotteryId: '001', 
-            //   lotteryAttribute: '满减券',
-            //   lotteryBeginDate: '2020.12.01', 
-            //   lotteryEndDate: '2020.12.31',
-            //   products: [
-            //     {
-            //       name: "招标解读文档",
-            //       url: "/bid/pc/page/bidfile_landpage",
-            //       describe: "招标文件解读介绍内容"
-            //     },
-            //     {
-            //       name: "大会员",
-            //       url: "/big/page/index",
-            //       describe: "大会员介绍内容"
-            //     }
-            //   ], 
-            //   available: true,
-            //   full: 100,
-            //   reduce: 10, 
-            //   instructions: '使用说明',
-            //   userLotteryId: '465c',
-            //   isOpen: false
-            // }
-          ],
-          used: [
-            // {
-            //   lotteryId: '001', 
-            //   lotteryAttribute: '满减券',
-            //   lotteryBeginDate: '2020.12.01', 
-            //   lotteryEndDate: '2020.12.31',
-            //   products: [
-            //     {
-            //       name: "招标解读文档",
-            //       url: "/bid/pc/page/bidfile_landpage",
-            //       describe: "招标文件解读介绍内容"
-            //     },
-            //     {
-            //       name: "大会员",
-            //       url: "/big/page/index",
-            //       describe: "大会员介绍内容"
-            //     }
-            //   ], 
-            //   available: true,
-            //   full: 100,
-            //   reduce: 10, 
-            //   instructions: '使用说明',
-            //   userLotteryId: '465c',
-            //   isOpen: false
-            // }
-          ],
-          expired: [
-            // {
-            //   lotteryId: '001', 
-            //   lotteryAttribute: '满减券',
-            //   lotteryBeginDate: '2020.12.01', 
-            //   lotteryEndDate: '2020.12.31',
-            //   products: [
-            //     {
-            //       name: "招标解读文档",
-            //       url: "/bid/pc/page/bidfile_landpage",
-            //       describe: "招标文件解读介绍内容"
-            //     },
-            //     {
-            //       name: "大会员",
-            //       url: "/big/page/index",
-            //       describe: "大会员介绍内容"
-            //     }
-            //   ], 
-            //   available: true,
-            //   full: 100,
-            //   reduce: 10, 
-            //   instructions: '使用说明',
-            //   userLotteryId: '465c',
-            //   isOpen: false
-            // }
-          ]
+          unused: [],
+          used: [],
+          expired: []
         },
         refreshing: false
       },
@@ -155,7 +80,6 @@
       },
       mounted() {
         this.getDomOffsetTop()
-        // this.getCoupon(1)
         var _this = this;
         window.addEventListener('resize',function() {
           _this.getDomOffsetTop()
@@ -172,7 +96,7 @@
           console.log(name)
           this.getCoupon(name)
         },
-        // 获取奖券信息 默认mold:0 全部,mold:1 未使用 mold:2 已使用 mold:3 已过期
+        // 获取奖券信息 默认mold:0 全部,mold:2 已过期 mold:3 已使用 mold:4 未使用
         getCoupon: function (mold, currentPage) {
           var _this = this;
           $.ajax({
@@ -194,10 +118,10 @@
                   case 4:
                     _this.list.unused = res.data.list
                     break;
-                  case 2:
+                  case 3:
                     _this.list.used = res.data.list
                     break;
-                  case 3:
+                  case 2:
                     _this.list.expired = res.data.list
                     break;
                   default:

+ 42 - 78
src/jfw/modules/app/src/web/templates/frontRouter/coupon/free/selectCoupon.html

@@ -46,7 +46,7 @@
               <i class="mark-icon"></i>
               <span>以下优惠券不可用</span>
             </p>
-            <!-- <coupon-list :coupon-list="disabledCoupon" :mold="4" :is-select="true" :disabled="true"></coupon-list> -->
+            <coupon-list :coupon-list="disabledCoupon" :mold="4" :is-select="true" :disabled="true"></coupon-list>
           </div>
         </div>
         <div class="j-footer">
@@ -63,81 +63,21 @@
   <script src=//cdn.jsdelivr.net/npm/zepto@1.2.0/dist/zepto.min.js></script>
   <!--E-当前页面的资源-->
   {{include "/big-member/commonjs.html"}}
-  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/me/js/coupon-template.js?v={{Msg "seo" "version"}}'></script>
+  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/coupon-template.js?v={{Msg "seo" "version"}}'></script>
   <script>
     
     var vNode = {
       delimiters: ['${', '}'],
       el: '#selectCoupon',
       data: {
-        allCouponData:[
-          {
-            lotteryId: '001', 
-            lotteryAttribute: '满减券',
-            lotteryBeginDate: '2020.12.01', 
-            lotteryEndDate: '2020.12.31',
-            products: [
-              {
-                name: "招标解读文档",
-                url: "/bid/pc/page/bidfile_landpage",
-                describe: "招标文件解读介绍内容"
-              },
-              {
-                name: "大会员",
-                url: "/big/page/index",
-                describe: "大会员介绍内容"
-              }
-            ], 
-            available: true,
-            full: 100,
-            reduce: 10, 
-            instructions: '使用说明',
-            userLotteryId: '465c',
-            isOpen: false
-          },
-          {
-            lotteryId: '001', 
-            lotteryAttribute: '折扣券',
-            lotteryBeginDate: '2020.12.01', 
-            lotteryEndDate: '2020.12.31',
-            products: [
-            {
-              name: "超级订阅",
-              url: "/front/subscribe.html",
-              describe: "超级订阅介绍内容"
-            },
-            {
-              name: "数据导出",
-              url: "/front/dataExport/toSieve",
-              describe: "数据导出介绍内容"
-            },
-            ,
-            {
-              name: "大会员7天试用",
-              url: "/big/page/index",
-              describe: "大会员试用介绍内容"
-            }],
-            available: false,
-            full: 100,
-            reduce: 10, 
-            instructions: '使用说明',
-            userLotteryId: '465c',
-            isOpen: false
-          }
-        ],
         activeId: '',
         usableCoupon: [], // 可用优惠券
-        disabledCoupon: [] // 不可用优惠券
+        disabledCoupon: [], // 不可用优惠券
+        selectCoupon: {}
       },
       computed: {
         confirmDisabled: function () {
-          return !this.activeId
-        }
-      },
-      created () {
-        var session = sessionStorage.getItem('$select-coupon-id')
-        if(session) {
-          this.activeId = session
+          return !(Object.keys(this.selectCoupon).length > 0)
         }
       },
       mounted() {
@@ -148,24 +88,48 @@
           var _this= this;
           var arr1 = []
           var arr2 = []
-          this.allCouponData.forEach(function(v) {
-            v.isOpen = false
-            if(v.available) {
-              arr1.push(v)
-            } else {
-              arr2.push(v)
+          var checkedId = utils.getParam('checkedId')
+          $.ajax({
+            type:'POST',
+            url:'/jyCoupon/showCoupons',
+            data:{
+              pId: utils.getParam('pId'),
+              price: parseInt(utils.getParam('price')*100)
+            },
+            success:function(res) {
+              if (res.data && res.data.length > 0) {
+                res.data.forEach(function(v) {
+                  v.isOpen = false;
+                  v.isChecked = false;
+                  v.lotteryBeginDate = v.lotteryBeginDate.replace(/\-/g,'.')
+                  v.lotteryEndDate = v.lotteryEndDate.replace(/\-/g,'.')
+                  if (v.available) {
+                    if(v.userLotteryId == checkedId) {
+                      v.isChecked = true
+                      _this.selectCoupon = v
+                    }
+                    arr1.push(v)
+                  } else {
+                    arr2.push(v)
+                  }
+                })
+                _this.usableCoupon = arr1;
+                _this.disabledCoupon = arr2;
+              } else {
+                console.log('没有优惠券')
+              }
+            },
+            error:function(err) {
+              console.log(err)
             }
           })
-          _this.usableCoupon = arr1;
-          _this.disabledCoupon = arr2
-          console.log(this.usableCoupon,this.disabledCoupon)
         },
-        parentFn: function (id) {
-          console.log('父组件接收:' + id)
-          this.activeId = id
+        parentFn: function (obj) {
+          // console.log('父组件接收:' + JSON.stringify(obj))
+          this.selectCoupon = obj
         },
         saveCouponFn: function () {
-          sessionStorage.setItem('$select-coupon-id', this.activeId)
+          sessionStorage.setItem('$select-coupon', JSON.stringify(this.selectCoupon))
           history.back()
         }
       }

+ 19 - 31
src/jfw/modules/app/src/web/templates/frontRouter/coupon/free/selectProduct.html

@@ -25,7 +25,7 @@
             <div class="list-content">
               <div class="product-info">
                 <p class="p-name">${item.name}</p>
-                <p class="p-desc">${item.desc}</p>
+                <p class="p-desc">${item.describe}</p>
               </div>
               <van-icon name="arrow" color="#C0C4CC" size="16"></van-icon>
             </div>
@@ -42,46 +42,35 @@
   {{include "/big-member/commonjs.html"}}
   <script>
     var jyProduct = [
-      {name: '超级订阅', icon: 'vip-icon', desc: '招投标信息抢先知,重要项目不遗漏', url: '/jyapp/vipsubscribe/introducePage'},
-      {name: '数据导出', icon: 'export-icon', desc: '多维度细分数据,提供企业决策参考', url: '/jyapp/front/dataExport/toSieve'},
-      {name: '结构化招标数据', icon: 'structured-icon', desc: '准确率超98%,数据全面有保障', url: '/jyapp/structed/index'},
-      {name: '数据报告', icon: 'report-icon', desc: '宏观视角数据分析,发现更多商机', url: '/datareport/page/introduce'},
-      {name: '企业商机管理', icon: 'manage-icon', desc: '全覆盖整合商机,管理模式更清晰', url: '/page_entniche/page/introduce_page.html'},
-      {name: '中标必听课', icon: 'course-icon', desc: '全线解密招投标中不能说的秘密!', url: '/jyxsapp/'},
-      {name: '大会员', icon: 'big-vip0-icon', desc: '辅助投标决策、洞察市场、把握潜在商机', url: '/jyapp/big/page/landingPage'},
-      {name: '大会员专家版', icon: 'big-vip1-icon', desc: '辅助投标决策、洞察市场、把握潜在商机', url: '/jyapp/big/page/landingPage'},
-      {name: '大会员商机版', icon: 'big-vip2-icon', desc: '辅助投标决策、洞察市场、把握潜在商机', url: '/jyapp/big/page/landingPage'},
-      {name: '大会员智慧版', icon: 'big-vip3-icon', desc: '辅助投标决策、洞察市场、把握潜在商机', url: '/jyapp/big/page/landingPage'},
-      {name: '大会员试用版', icon: 'big-vip4-icon', desc: '辅助投标决策、洞察市场、把握潜在商机', url: '/jyapp/big/page/landingPage'},
-      {name: '剑鱼文库', icon: 'docs-icon', desc: '最实用的招投标资料库', url: '/page_docs_mobile/home'}
+      {name: '超级订阅', icon: 'vip-icon'},
+      {name: '数据导出', icon: 'export-icon'},
+      {name: '结构化招标数据', icon: 'structured-icon'},
+      {name: '数据报告', icon: 'report-icon'},
+      {name: '企业商机管理', icon: 'manage-icon'},
+      {name: '中标必听课', icon: 'course-icon'},
+      {name: '大会员', icon: 'big-vip0-icon'},
+      {name: '大会员专家版', icon: 'big-vip1-icon'},
+      {name: '大会员商机版', icon: 'big-vip2-icon'},
+      {name: '大会员智慧版', icon: 'big-vip3-icon'},
+      {name: '大会员试用版', icon: 'big-vip4-icon'},
+      {name: '剑鱼文库', icon: 'docs-icon'}
     ]
     var vNode = {
       delimiters: ['${', '}'],
       el: '#product',
       data: {
         couponId: '',
-        productList: [
-          // {name: '超级订阅'},
-          // {name: '数据导出'},
-          // {name: '结构化招标数据'},
-          // {name: '数据报告'},
-          // {name: '企业商机管理'},
-          // {name: '中标必听课'},
-          // {name: '大会员'},
-          // {name: '大会员专家版'},
-          // {name: '大会员商机版'},
-          // {name: '大会员智慧版'},
-          // {name: '大会员试用版'},
-          // {name: '剑鱼文库'}
-        ]
+        productList: []
       },
       computed: {
         getData: function() {
           var arr = [];
-          this.productList.forEach(function(v) {
-            jyProduct.forEach(function(s){
+          var _this = this;
+          jyProduct.forEach(function(s){
+            _this.productList.forEach(function(v) {
               if (v.name === s.name) {
-                arr.push(s)
+                v.icon = s.icon
+                arr.push(v)
               }
             })
           })
@@ -106,7 +95,6 @@
               platform: 'A'
             },
             success: function(res){
-              console.log(res)
               if (res.error_code == 1 && res.data) {
                 _this.productList = res.data
               }

+ 10 - 2
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_index_new.html

@@ -24,6 +24,7 @@
   <link rel="stylesheet" type="text/css" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/layout.css' />
   <link rel="stylesheet" type="text/css"
     href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/font.css?v={{Msg "seo" "version"}}' />
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
   <style>
     .jy-switch:before {
       background-color: #fbfbfb;
@@ -359,7 +360,11 @@
           </div>
         </div>
         <!-- 升级 -->
-        <div class="vip-footer upgrade">
+        <!-- vue组件 -->
+        <div class="vip-footer upgrade" id="coupon-vue">
+          <pay-order-template ref="couponRef" :config="$data" @update="updateS" @save="savePageData"></pay-order-template>
+        </div>
+        <!-- <div class="vip-footer upgrade" style="display: none;">
           <div class="j-notice-bar bar-red vip-bar" style="display: none">限时6折,现在购买,帮您省<span class="reduce-price">0</span>元</div>
           <div class="footer-preview-container">
             <div class="price-preview">
@@ -392,7 +397,7 @@
             <button class="button-l reset j-button-cancel1">取消</button>
             <button data-need-bind-phone class="button-r confirm j-button-confirm1" disabled>立即升级</button>
           </div>
-        </div>
+        </div> -->
         <!-- 修改  p18版本不需要保存修改-->
         <!-- <div class="vip-footer modify">
           <div class="footer-button-group j-button-group">
@@ -640,10 +645,13 @@
       </div>
       <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/jquery.min.js'></script>
       <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.js'></script>
+      <script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
       <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}'>
       </script>
       <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "mod_version"}}'></script>
       <!--<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/check-bind-phone.js?v={{Msg "seo" "version"}}'></script>-->
+      
+      <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
         <script>
         $(window).on("pageshow", function (event) {
           if (event.originalEvent.persisted) {

+ 21 - 0
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_introduce.html

@@ -15,6 +15,7 @@
     <link rel="stylesheet" type="text/css" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/layout.css"/>
     <link rel="stylesheet" type="text/css" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/vip_introduce.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" type="text/css" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/font.css?v={{Msg "seo" "version"}}"/>
+    <link rel="stylesheet" type="text/css" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/land-page-coupon.css?v={{Msg "seo" "version"}}"/>
 </head>
 <body>
 <div class="j-container" id="vip-intro-container">
@@ -154,11 +155,16 @@
                 <span class="text">去续费</span>
             </span>
         </div>
+        <div id="land-page-coupon" class="coupon-tips" style="display:none;">
+          <div class="coupon-text-area">用奖券最高立减 <em class="coupon-num"></em>元</div>
+          <div class="coupon-arrow-area"><span class="coupon-arrow-icon"></span></div>
+        </div>
     </div>
 </div>
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/jquery.min.js'></script>
 <!--<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/check-bind-phone.js?v={{Msg "seo" "version"}}'></script>-->
 <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "mod_version"}}'></script>
+<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/land-page-coupon.js?v={{Msg "seo" "mod_version"}}'></script>
     <script>
         $("#vip-introduce,#vip-free-7days").on('click', function () {
             window.location.replace($(this).attr('data-url'))
@@ -209,6 +215,21 @@
                 headerDOM.addClass('transparent-header')
             }
         })
+
+        // 获取是否有优惠券 并展示
+      getCoupon('vip',function(res) {
+        console.log(res)
+        if (res.list && res.list.length > 0) {
+          $('.coupon-tips').show()
+          var max = res.list.sort(function(a,b){
+              return b.reduce - a.reduce;
+          })[0];
+          console.log(max.reduce) 
+          $('.coupon-num').html(max.reduce)
+        } else {
+          $('.coupon-tips').hide()
+        }
+      })
     })
 </script>
 

+ 1225 - 1104
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_purchase.html

@@ -2,1203 +2,1324 @@
 <html>
 
 <head>
-    <meta charset="utf-8">
-    <meta name="viewport"
-          content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
-    <title>超级订阅</title>
-    <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/rem.js"></script>
-    <link rel="stylesheet" type="text/css"
-          href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}"/>
-    <link rel="stylesheet" type="text/css" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.css">
-    <link rel="stylesheet" type="text/css"
-          href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
-    <link rel="stylesheet" type="text/css"
-          href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/public_.css?v={{Msg "seo" "version"}}"/>
-    <link rel="stylesheet" type="text/css"
-          href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/appbutton.css?v={{Msg "seo" "version"}}"/>
-    <link rel="stylesheet" type="text/css"
-          href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/vip_purchase.css?v={{Msg "seo" "version"}}">
-    <link rel="stylesheet" type="text/css" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/layout.css"/>
-    <link rel="stylesheet" type="text/css"
-          href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/font.css?v={{Msg "seo" "version"}}"/>
-    <style>
-        .vip_purchase {
-            height: 100%;
-        }
-    </style>
-    <!--S-手机号输入样式-->
-    <style>
-    .order-phone-group {
-      background: #FFFFFF;
-      color: #5F5E64;
-      font-size: 15px;
-      line-height: 22px;
-      letter-spacing: 0px;
-      text-align: left;
-      padding: 8px 16px;
-      box-sizing: border-box;
-      margin-bottom: 8px;
-    }
-    .order-phone-group label {
-      display: inline-block;
-      min-width: 80px;
-      padding: 8px 0;
-    }
-    .order-phone-group.error input {
-      color: #FB483D;
-    }
-    .order-phone-group.error p {
-      display: inherit;
-    }
-    .order-phone-group input {
-      padding: 8px 0;
-      color: #5F5E64;
-      font-size: 16px;
-      line-height: 24px;
-      letter-spacing: 0px;
-      text-align: left;
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
+  <title>超级订阅</title>
+  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/rem.js'></script>
+  <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/base.css?v={{Msg "seo" "version"}}'/>
+  <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.css'>
+  <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}'>
+  <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/public_.css?v={{Msg "seo" "version"}}'/>
+  <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/appbutton.css?v={{Msg "seo" "version"}}'/>
+  <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/vip_purchase.css?v={{Msg "seo" "version"}}'>
+  <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/layout.css'/>
+  <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/font.css?v={{Msg "seo" "version"}}'/>
+  <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
+  <style>
+    .vip_purchase {
+      height: 100%;
     }
-    .order-phone-group input::placeholder {
-      color: #C0C4CC;
-    }
-    .order-phone-group p {
-      display: none;
-      color: #FB483D;
-      font-size: 12px;
-      line-height: 18px;
-      letter-spacing: 0px;
-      text-align: left;
-      margin-top: 2px;
-    }
-    </style>
-    <!--E-手机号输入样式-->
+  </style>
+  <!--S-手机号输入样式-->
+  <style>
+  .order-phone-group {
+    background: #FFFFFF;
+    color: #5F5E64;
+    font-size: 15px;
+    line-height: 22px;
+    letter-spacing: 0px;
+    text-align: left;
+    padding: 8px 16px;
+    box-sizing: border-box;
+    margin-bottom: 8px;
+  }
+  .order-phone-group label {
+    display: inline-block;
+    min-width: 80px;
+    padding: 8px 0;
+  }
+  .order-phone-group.error input {
+    color: #FB483D;
+  }
+  .order-phone-group.error p {
+    display: inherit;
+  }
+  .order-phone-group input {
+    padding: 8px 0;
+    color: #5F5E64;
+    font-size: 16px;
+    line-height: 24px;
+    letter-spacing: 0px;
+    text-align: left;
+  }
+  .order-phone-group input::placeholder {
+    color: #C0C4CC;
+  }
+  .order-phone-group p {
+    display: none;
+    color: #FB483D;
+    font-size: 12px;
+    line-height: 18px;
+    letter-spacing: 0px;
+    text-align: left;
+    margin-top: 2px;
+  }
+  </style>
+  <!--E-手机号输入样式-->
 </head>
 <body  data-weui-theme="light">
-<div class="app-layout-header jy-app-header">
+  <div class="app-layout-header jy-app-header" style="z-index: 8;">
     <span class="app-back jyapp-icon jyapp-icon-zuojiantou"></span>
     超级订阅{{if not .T.isTrial }}{{else}}(试用){{end}}
-    <span></span></div>
-<div class="app-layout-content-b">
+    <span></span>
+  </div>
+  <div class="app-layout-content-b">
     <div style="height: 100%">
-        <div class="vip_purchase">
-
-            {{if not .T.isTrial }}
-                <div class="j-notice-bar bar-red free-7day-tip give" style="display: none;min-height: 0.62rem;;z-index:66;">
-                    <span class="label" style="width: 100%;text-align: center;">限时购买,3个月起,买多久送多久!</span>
-                </div>
-                <div class="hot-bought" style="display:none;">
-                    <span class="j-icon icon-cart"></span>
-                    <span class="bought-text">已有<span class="bought-num">0</span>人购买</span>
-                </div>
-            {{else}}
-                <div class="j-notice-bar bar-red free-7day-tip give" style="display: none;z-index:66;">
-                    <span class="label">限时购买,3个月起,买多久送多久! </span>
-                    <a href="/jyapp/vipsubscribe/vipsubscribe_new" class="link" style="padding: 0.10rem 0.44rem;">去抢</a>
+      <div class="vip_purchase">
+        {{if not .T.isTrial }}
+          <div class="j-notice-bar bar-red free-7day-tip give" style="display: none;min-height: 0.62rem;;z-index:66;">
+            <span class="label" style="width: 100%;text-align: center;">限时购买,3个月起,买多久送多久!</span>
+          </div>
+          <div class="hot-bought" style="display:none;">
+            <span class="j-icon icon-cart"></span>
+            <span class="bought-text">已有<span class="bought-num">0</span>人购买</span>
+          </div>
+        {{else}}
+          <div class="j-notice-bar bar-red free-7day-tip give" style="display: none;z-index:66;">
+            <span class="label">限时购买,3个月起,买多久送多久! </span>
+            <a href="/jyapp/vipsubscribe/vipsubscribe_new" class="link" style="padding: 0.10rem 0.44rem;">去抢</a>
+          </div>
+          <div class="j-notice-bar bar-red free-7day-tip" style="display: none">
+            <span class="label">现在购买,可享6折优惠。</span>
+            <a href="/jyapp/vipsubscribe/vipsubscribe_new" class="link">去购买</a>
+          </div>
+        {{end}}
+        <div class="choose_condition">
+            <ul class="chooseList">
+              <li class="choose_item">
+                <a href="/jyapp/vipsubscribe/toChooseArea">
+                  <span class="label">区域</span>
+                  {{if not .T.isTrial }}
+                    <input type="text" disabled value="" placeholder="1个市" class="info choose_area">
+                  {{else}}
+                    <input type="text" disabled value="" placeholder="选择全国、省份、地市" class="info choose_area">
+                  {{end}}
+                  <i class="iconfont icon-arrow"></i>
+                </a>
+                <p class="add_tips area_warn" style="display: none;">请选择区域</p>
+                <!-- 无选择时不显示 -->
+                <p class="add_tips area" style="display:none">已选择 0 个省级区域、0 个地市</p>
+              </li>
+              <li class="choose_item">
+                <a href="/jyapp/vipsubscribe/toChooseIndustry">
+                  <span class="label" style="white-space: nowrap;">采购单位行业</span>
+                  {{if not .T.isTrial }}
+                      <input type="text" disabled value="" placeholder="1个行业" class="info choose_industry">
+                  {{else}}
+                      <input type="text" disabled value="" placeholder="选择采购单位行业" class="info choose_industry">
+                  {{end}}
+                  <i class="iconfont icon-arrow"></i>
+                </a>
+                <!-- 无选择时不显示 -->
+                <p class="add_tips industry_warn" style="display: none;">请选择行业</p>
+                <p class="add_tips industry" style="display:none">已选择 0 个行业</p>
+              </li>
+              <li class="choose_item select_cycle">
+                <!-- 需要选择订阅周期就用a标签,div.class="free-7day"隐藏 opacity: 1 !important; -->
+                <!-- 需要选择试用就用div标签,a标签隐藏 -->
+                {{if not .T.isTrial }}
+                  <a href="javascript:;">
+                    <span class="label">订阅周期</span>
+                    <span class="show_time">一个月</span>
+                    <input type="text" readonly="readonly" disabled style="display:none;" value="1个月" class="info choose_time">
+                    <i class="iconfont icon-arrow"></i>
+                  </a>
+                {{else}}
+                  <div class="free-7day">
+                      <span class="label">订阅周期</span>
+                      <i class="info">免费试用7天</i>
+                  </div>
+                {{end}}
+              </li>
+            </ul>
+            <!-- <div class="pay_mode">
+              {{if not .T.isTrial }}
+                <div class="select_payment choose_item">
+                  <a href="javascript:;">
+                    <span class="label">支付方式</span>
+                    <span class="info choose_way">微信支付</span>
+                    <i class="iconfont icon-arrow"></i>
+                  </a>
                 </div>
-                <div class="j-notice-bar bar-red free-7day-tip" style="display: none">
-                    <span class="label">现在购买,可享6折优惠。</span>
-                    <a href="/jyapp/vipsubscribe/vipsubscribe_new" class="link">去购买</a>
+              {{end}}
+            </div> -->
+            <!--S-手机号输入-->
+            <div class='order-phone-group'>
+              <label for='order_phone'>手机号码</label>
+              <input id='order_phone' autocomplete='off' placeholder='请输入手机号码' maxlength='11' type='tel' />
+              <p>手机号码输入错误</p>
+            </div>
+            <!--E-手机号输入-->
+            {{if not .T.isTrial }}
+              <ul class="chooseList" id="giveTimeBox" style="display: none;">
+                <li class="choose_item select_cycle">
+                  <div class="free-7day give">
+                    <span class="label">赠送周期</span>
+                    <i class="info"></i>
+                  </div>
+                </li>
+              </ul>
+              <div class="chooseList coupon-code-tx" style="display:none;">
+                <div class="coupon-code-sel choose_item">
+                  <a href="javascript:;">
+                    <span class="label">优惠码</span>
+                    <span class="info">输入优惠码</span>
+                    <i class="iconfont icon-arrow"></i>
+                </a>
                 </div>
+              </div>
             {{end}}
-            <div class="choose_condition">
-                <ul class="chooseList">
-                    <li class="choose_item">
-                        <a href="/jyapp/vipsubscribe/toChooseArea">
-                            <span class="label">区域</span>
-                            {{if not .T.isTrial }}
-                                <input type="text" disabled value="" placeholder="1个市"
-                                       class="info choose_area">
-                            {{else}}
-                                <input type="text" disabled value="" placeholder="选择全国、省份、地市" class="info choose_area">
-                            {{end}}
-                            <i class="iconfont icon-arrow"></i>
-                        </a>
-                        <p class="add_tips area_warn" style="display: none;">请选择区域</p>
-                        <!-- 无选择时不显示 -->
-                        <p class="add_tips area" style="display:none">已选择 0 个省级区域、0 个地市</p>
-                    </li>
-                    <li class="choose_item">
-                        <a href="/jyapp/vipsubscribe/toChooseIndustry">
-                            <span class="label" style="white-space: nowrap;">采购单位行业</span>
-                            {{if not .T.isTrial }}
-                                <input type="text" disabled value="" placeholder="1个行业"
-                                       class="info choose_industry">
-                            {{else}}
-                                <input type="text" disabled value="" placeholder="选择采购单位行业"
-                                       class="info choose_industry">
-                            {{end}}
-                            <i class="iconfont icon-arrow"></i>
-                        </a>
-                        <!-- 无选择时不显示 -->
-                        <p class="add_tips industry_warn" style="display: none;">请选择行业</p>
-                        <p class="add_tips industry" style="display:none">已选择 0 个行业</p>
-                    </li>
-                    <li class="choose_item select_cycle">
-                        <!-- 需要选择订阅周期就用a标签,div.class="free-7day"隐藏 opacity: 1 !important; -->
-                        <!-- 需要选择试用就用div标签,a标签隐藏 -->
-                        {{if not .T.isTrial }}
-                            <a href="javascript:;">
-                                <span class="label">订阅周期</span>
-                                <span class="show_time">一个月</span>
-                                <input type="text" readonly="readonly" disabled style="display:none;" value="1个月"
-                                       class="info choose_time">
-                                <i class="iconfont icon-arrow"></i>
-                            </a>
-                        {{else}}
-                            <div class="free-7day">
-                                <span class="label">订阅周期</span>
-                                <i class="info">免费试用7天</i>
-                            </div>
-                        {{end}}
-                    </li>
-                </ul>
-                <!-- <div class="pay_mode">
-                    {{if not .T.isTrial }}
-                        <div class="select_payment choose_item">
-                            <a href="javascript:;">
-                                <span class="label">支付方式</span>
-                                <span class="info choose_way">微信支付</span>
-                                <i class="iconfont icon-arrow"></i>
-                            </a>
-                        </div>
-                    {{end}}
-                </div> -->
-                <!--S-手机号输入-->
-                <div class='order-phone-group'>
-                    <label for='order_phone'>手机号码</label>
-                    <input id='order_phone' autocomplete='off' placeholder='请输入手机号码' maxlength='11' type='tel' />
-                    <p>手机号码输入错误</p>
-                </div>
-                <!--E-手机号输入-->
-                {{if not .T.isTrial }}
-                    <ul class="chooseList" id="giveTimeBox" style="display: none;">
-                        <li class="choose_item select_cycle">
-                            <div class="free-7day give">
-                                <span class="label">赠送周期</span>
-                                <i class="info"></i>
-                            </div>
-                        </li>
-                    </ul>
-                    <div class="chooseList coupon-code-tx" style="display:none;">
-                        <div class="coupon-code-sel choose_item">
-                            <a href="javascript:;">
-                                <span class="label">优惠码</span>
-                                <span class="info">输入优惠码</span>
-                                <i class="iconfont icon-arrow"></i>
-                            </a>
-                        </div>
-                    </div>
-                {{end}}
 
-                <div class="vip_rules">
-                    <!--
-                      <div class="auto_renew weui-cells_checkbox radio-form">
-                          <label class="weui-cell weui-check__label" for="auto-renew">
+            <div class="vip_rules">
+              <!--
+                <div class="auto_renew weui-cells_checkbox radio-form">
+                  <label class="weui-cell weui-check__label" for="auto-renew">
+                    <div class="weui-cell__hd">
+                      <input type="checkbox" class="weui-check" name="autoRenewService" id="auto-renew" />
+                      <i class="weui-icon-checked"></i>
+                    </div>
+                    <div class="weui-cell__bd read">
+                      <p>开通自动续费,根据当前订阅条件,服务到期时系统将为您自动续费</p>
+                    </div>
+                  </label>
+                </div>
+              -->
+              <div class="vip_prise_table">
+                <table class="monthly">
+                  <caption class="table_title b-line">超级订阅价格</caption>
+                  <tr>
+                    <td class="table-label" colspan="2">按月购买</td>
+                  </tr>
+                  <tr>
+                    <td><span>5.8</span>元 月/市/行业</td>
+                    <td><span>18</span>元 月/市/全行业</td>
+                  </tr>
+                  <tr>
+                    <td><span>11.8</span>元 月/省/行业</td>
+                    <td><span>38</span>元 月/省/全行业</td>
+                  </tr>
+                  <tr>
+                    <td><span>118</span>元 月/全国/行业</td>
+                    <td><span>388</span>元 月/全国/全行业</td>
+                  </tr>
+                </table>
+                <table class="yearly">
+                  <tr>
+                    <td class="table-label" colspan="2">按年购买</td>
+                  </tr>
+                  <tr>
+                    <td><span>58</span>元 年/市/行业</td>
+                    <td><span>180</span>元 年/市/全行业</td>
+                  </tr>
+                  <tr>
+                    <td><span>118</span>元 年/省/行业</td>
+                    <td><span>380</span>元 年/省/全行业</td>
+                  </tr>
+                  <tr>
+                    <td><span>1180</span>元 年/全国/行业</td>
+                    <td><span>3880</span>元 年/全国/全行业</td>
+                  </tr>
+                </table>
+                <dl class="tips">
+                  <dt class="b-line">购买须知</dt>
+                  <dd>套餐周期内,不支持套餐降级,续费可降级;</dd>
+                  <dd>用户最多购买/续费3年套餐;</dd>
+                  <dd>支持套餐升级,补差价(按月进行补差价,不足一个月按一个月计算)。</dd>
+                  <dd>3个市及以上即为全省,10个省及以上即为全国。4个行业及以上即为全行业。</dd>
+                  <dd>购买的采购单位行业与地域为个数,购买后可不限次数进行更换。</dd>
+                </dl>
+              </div>
+            </div>
+        </div>
+        <!-- vue组件 -->
+        <div class="fixed-bottom-box p15" id="coupon-vue">
+          <pay-order-template ref="couponRef" :config="$data" @update="updateS"></pay-order-template>
+        </div>
+        <div class="fixed-bottom-box p15" style="display: none;">
+          {{if not .T.isTrial }}
+            <div class="j-notice-bar bar-red vip-bar" style="display:none;">限时6折,现在购买,帮您省
+              <span class="reduce-price">0</span>元
+            </div>
+          {{end}}
+          <div class="price">
+            <span class="billing-total">合计:</span>
+            <!-- <strong>&yen;1,300.00</strong> -->
+            <div class="billing-list-btn">
+              <span class="billing-mon">&yen;</span>
+              <strong class="billing-price">5.80</strong>
+            </div>
+          </div>
+          {{if not .T.isTrial }}
+            <div class="origin-price" style="display:none;">
+              <span class="discount-button">
+                <span>优惠明细</span>
+                <span class="iconfont icon-arrow"></span>
+              </span>
+              <span class="price-label">原价:</span>
+              <div class="price-container">
+                <span class="currency-type">&yen;</span>
+                <span class="price-num">5.80</span>
+              </div>
+            </div>
+          {{end}}
+          <div class="weui-cells weui-cells_checkbox radio-form">
+            <label class="weui-cell weui-check__label" for="buy">
+              <div class="weui-cell__hd">
+                <input type="checkbox" class="weui-check" name="buyService" id="buy"/>
+                <i class="weui-icon-checked"></i>
+              </div>
+              <div class="weui-cell__bd read">
+                <p>
+                  我已阅读,理解并接受
+                  <a href="/jyapp/front/staticPage/wx-serviceterms.html">
+                      《剑鱼标讯线上购买与服务条款》
+                  </a>
+                </p>
+              </div>
+            </label>
+          </div>
+          <div class="form-btn j-footer">
+            <button data-need-bind-phone class="btn enter j-button" disabled id="payHandle">提交订单</button>
+          </div>
+        </div>
+        <!-- 选择行业 -->
+        <div class="js_dialog time_cycle p13" id="time_cycle" style="display: none;">
+          <div class="weui-mask"></div>
+            <div class="box">
+              <div class="box_hd">
+                  <h3>选择订阅周期</h3>
+                  <span class="cancel">
+                      <span class="j-icon icon-del-grey"></span>
+                  </span>
+              </div>
+              <div class="box_bd">
+                  <!-- <div class="tips monthly_tips" style="display: none">
+                          3-6个月6折,大于6个月5折
+                      </div>
+                      <div class="tips yearly_tips" style="display: none">
+                          1-2年5折,3年4折
+                      </div> -->
+                  <!--<div class="tips profit_tips" style="display: none">已选择10个月,建议“按年订阅”</div>-->
+                  <div class="computed">
+                      <span class="computed_mon">¥</span>
+                      <div class="computed_price"></div>
+                  </div>
+                  <div class="bd_select">
+                      <div class="weui-cells weui-cells_checkbox choose-form">
+                        <label class="weui-cell weui-check__label monthly_label" for="monthly">
+                          <div class="weui-cell__hd">
+                            <input type="radio" class="weui-check monthly" name="time" value="month" id="monthly"/>
+                            <i class="weui-icon-checked"></i>
+                          </div>
+                          <div class="weui-cell__bd">
+                            <p>按月订阅</p>
+                          </div>
+                        </label>
+                        <div class="number_box" id="number_box_month" data-numbox-step="1" data-numbox-min="1" data-numbox-max="12">
+                            <button class="weui-btn weui-btn_plain-default" type="button" disabled>
+                              <div class="jy_icon decrease"></div>
+                            </button>
+                            <span class="month_number">1</span>
+                            <button class="weui-btn weui-btn_plain-default add" type="button">
+                              <div class="jy_icon increase"></div>
+                            </button>
+                          </div>
+                      </div>
+                      <div class="weui-cells weui-cells_checkbox choose-form">
+                          <label class="weui-cell weui-check__label yearly_label" for="yearly">
                               <div class="weui-cell__hd">
-                                  <input type="checkbox" class="weui-check" name="autoRenewService" id="auto-renew" />
+                                  <input type="radio" class="weui-check yearly" name="time" value="year" id="yearly" checked/>
                                   <i class="weui-icon-checked"></i>
                               </div>
-                              <div class="weui-cell__bd read">
-                                  <p>开通自动续费,根据当前订阅条件,服务到期时系统将为您自动续费</p>
+                              <div class="weui-cell__bd">
+                                  <p>按年订阅</p>
                               </div>
                           </label>
+                          <div class="number_box" id="number_box_year" style="border: 0;">
+                              <span class="year_number j-button-select" data-id="1">1年</span>
+                              <span class="year_number j-button-select" data-id="2">2年</span>
+                              <span class="year_number j-button-select" data-id="3">3年</span>
+                          </div>
                       </div>
-                    -->
-                    <div class="vip_prise_table">
-                        <table class="monthly">
-                            <caption class="table_title b-line">超级订阅价格</caption>
-                            <tr>
-                                <td class="table-label" colspan="2">按月购买</td>
-                            </tr>
-                            <tr>
-                                <td><span>5.8</span>元 月/市/行业</td>
-                                <td><span>18</span>元 月/市/全行业</td>
-                            </tr>
-                            <tr>
-                                <td><span>11.8</span>元 月/省/行业</td>
-                                <td><span>38</span>元 月/省/全行业</td>
-                            </tr>
-                            <tr>
-                                <td><span>118</span>元 月/全国/行业</td>
-                                <td><span>388</span>元 月/全国/全行业</td>
-                            </tr>
-                        </table>
-                        <table class="yearly">
-                            <tr>
-                                <td class="table-label" colspan="2">按年购买</td>
-                            </tr>
-                            <tr>
-                                <td><span>58</span>元 年/市/行业</td>
-                                <td><span>180</span>元 年/市/全行业</td>
-                            </tr>
-                            <tr>
-                                <td><span>118</span>元 年/省/行业</td>
-                                <td><span>380</span>元 年/省/全行业</td>
-                            </tr>
-                            <tr>
-                                <td><span>1180</span>元 年/全国/行业</td>
-                                <td><span>3880</span>元 年/全国/全行业</td>
-                            </tr>
-                        </table>
-                        <dl class="tips">
-                            <dt class="b-line">购买须知</dt>
-                            <dd>套餐周期内,不支持套餐降级,续费可降级;</dd>
-                            <dd>用户最多购买/续费3年套餐;</dd>
-                            <dd>支持套餐升级,补差价(按月进行补差价,不足一个月按一个月计算)。</dd>
-                            <dd>3个市及以上即为全省,10个省及以上即为全国。4个行业及以上即为全行业。</dd>
-                            <dd>购买的采购单位行业与地域为个数,购买后可不限次数进行更换。</dd>
-                        </dl>
-                    </div>
-                </div>
-            </div>
-            <div class="fixed-bottom-box p15">
-                {{if not .T.isTrial }}
-                    <div class="j-notice-bar bar-red vip-bar" style="display:none;">限时6折,现在购买,帮您省<span
-                                class="reduce-price">0</span>元
-                    </div>
-                {{end}}
-                <div class="price">
-                    <span class="billing-total">合计:</span>
-                    <!-- <strong>&yen;1,300.00</strong> -->
-                    <div class="billing-list-btn">
-                        <span class="billing-mon">&yen;</span>
-                        <strong class="billing-price">5.80</strong>
-                    </div>
-                </div>
-                {{if not .T.isTrial }}
-                    <div class="origin-price" style="display:none;">
-                        <span class="discount-button">
-                            <span>优惠明细</span>
-                            <span class="iconfont icon-arrow"></span>
-                        </span>
-                        <span class="price-label">原价:</span>
-                        <div class="price-container">
-                            <span class="currency-type">&yen;</span>
-                            <span class="price-num">5.80</span>
-                        </div>
-                    </div>
-                {{end}}
-                <div class="weui-cells weui-cells_checkbox radio-form">
-                    <label class="weui-cell weui-check__label" for="buy">
-                        <div class="weui-cell__hd">
-                            <input type="checkbox" class="weui-check" name="buyService" id="buy"/>
-                            <i class="weui-icon-checked"></i>
-                        </div>
-                        <div class="weui-cell__bd read">
-                            <p>
-                                我已阅读,理解并接受
-                                <a href="/jyapp/front/staticPage/wx-serviceterms.html">
-                                    《剑鱼标讯线上购买与服务条款》
-                                </a>
-                            </p>
-                        </div>
-                    </label>
+                  </div>
                 </div>
                 <div class="form-btn j-footer">
-                    <button data-need-bind-phone class="btn enter j-button" disabled id="payHandle">提交订单</button>
+                    <button class="btn enter j-button" id="enter_period">确认</button>
                 </div>
             </div>
-            <!-- 选择行业 -->
-            <div class="js_dialog time_cycle p13" id="time_cycle" style="display: none;">
-                <div class="weui-mask"></div>
-                <div class="box">
-                    <div class="box_hd">
-                        <h3>选择订阅周期</h3>
-                        <span class="cancel">
-                            <span class="j-icon icon-del-grey"></span>
-                        </span>
-                    </div>
-                    <div class="box_bd">
-                        <!-- <div class="tips monthly_tips" style="display: none">
-                                3-6个月6折,大于6个月5折
+        </div>
+        <!-- 选择支付方式 -->
+        <div class="js_dialog pay_way" id="pay_way" style="display: none;">
+            <div class="weui-mask"></div>
+            <div class="box">
+                <div class="box_hd">
+                    <span></span>
+                    <h3>支付方式</h3>
+                    <span class="cancel">取消</span>
+                </div>
+                <div class="box_bd">
+                    <div class="weui-cells weui-cells_checkbox choose-form">
+                        <label class="weui-cell weui-check__label wx_label" for="wx">
+                            <div class="weui-cell__bd read">
+                                <p>
+                                    <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/image/weixin.png?v={{Msg "seo" "version"}}">微信支付
+                                </p>
                             </div>
-                            <div class="tips yearly_tips" style="display: none">
-                                1-2年5折,3年4折
-                            </div> -->
-                        <!--<div class="tips profit_tips" style="display: none">已选择10个月,建议“按年订阅”</div>-->
-                        <div class="computed">
-                            <span class="computed_mon">¥</span>
-                            <div class="computed_price"></div>
-                        </div>
-                        <div class="bd_select">
-                            <div class="weui-cells weui-cells_checkbox choose-form">
-                                <label class="weui-cell weui-check__label monthly_label" for="monthly">
-                                    <div class="weui-cell__hd">
-                                        <input type="radio" class="weui-check monthly" name="time" value="month"
-                                               id="monthly"/>
-                                        <i class="weui-icon-checked"></i>
-                                    </div>
-                                    <div class="weui-cell__bd">
-                                        <p>按月订阅</p>
-                                    </div>
-                                </label>
-                                <div class="number_box" id="number_box_month" data-numbox-step="1" data-numbox-min="1"
-                                     data-numbox-max="12">
-                                    <button class="weui-btn weui-btn_plain-default" type="button" disabled>
-                                        <div class="jy_icon decrease"></div>
-                                    </button>
-                                    <span class="month_number">1</span>
-                                    <button class="weui-btn weui-btn_plain-default add" type="button">
-                                        <div class="jy_icon increase"></div>
-                                    </button>
-                                </div>
+                            <div class="weui-cell__hd">
+                                <input type="radio" class="weui-check" name="way" value="微信支付" id="wx" checked/>
+                                <i class="weui-icon-checked"></i>
                             </div>
-                            <div class="weui-cells weui-cells_checkbox choose-form">
-                                <label class="weui-cell weui-check__label yearly_label" for="yearly">
-                                    <div class="weui-cell__hd">
-                                        <input type="radio" class="weui-check yearly" name="time" value="year"
-                                               id="yearly" checked/>
-                                        <i class="weui-icon-checked"></i>
-                                    </div>
-                                    <div class="weui-cell__bd">
-                                        <p>按年订阅</p>
-                                    </div>
-                                </label>
-                                <div class="number_box" id="number_box_year" style="border: 0;">
-                                    <span class="year_number j-button-select" data-id="1">1年</span>
-                                    <span class="year_number j-button-select" data-id="2">2年</span>
-                                    <span class="year_number j-button-select" data-id="3">3年</span>
-                                </div>
+                        </label>
+                        <label class="weui-cell weui-check__label zfb_label" for="zfb">
+                            <div class="weui-cell__bd read">
+                                <p>
+                                    <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/image/zhifubao.png?v={{Msg "seo" "version"}}">支付宝支付
+                                </p>
                             </div>
-                        </div>
-                    </div>
-                    <div class="form-btn j-footer">
-                        <button class="btn enter j-button" id="enter_period">确认</button>
+                            <div class="weui-cell__hd">
+                                <input type="radio" class="weui-check" name="way" value="支付宝支付" id="zfb"/>
+                                <i class="weui-icon-checked"></i>
+                            </div>
+                        </label>
                     </div>
                 </div>
             </div>
-            <!-- 选择支付方式 -->
-            <div class="js_dialog pay_way" id="pay_way" style="display: none;">
-                <div class="weui-mask"></div>
-                <div class="box">
-                    <div class="box_hd">
-                        <span></span>
-                        <h3>支付方式</h3>
-                        <span class="cancel">取消</span>
-                    </div>
-                    <div class="box_bd">
-                        <div class="weui-cells weui-cells_checkbox choose-form">
-                            <label class="weui-cell weui-check__label wx_label" for="wx">
-                                <div class="weui-cell__bd read">
-                                    <p>
-                                        <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/image/weixin.png?v={{Msg "seo" "version"}}">微信支付
-                                    </p>
-                                </div>
-                                <div class="weui-cell__hd">
-                                    <input type="radio" class="weui-check" name="way" value="微信支付" id="wx" checked/>
-                                    <i class="weui-icon-checked"></i>
-                                </div>
-                            </label>
-                            <label class="weui-cell weui-check__label zfb_label" for="zfb">
-                                <div class="weui-cell__bd read">
-                                    <p>
-                                        <img src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/image/zhifubao.png?v={{Msg "seo" "version"}}">支付宝支付
-                                    </p>
-                                </div>
-                                <div class="weui-cell__hd">
-                                    <input type="radio" class="weui-check" name="way" value="支付宝支付" id="zfb"/>
-                                    <i class="weui-icon-checked"></i>
-                                </div>
-                            </label>
-                        </div>
+        </div>
+        <!-- 优惠码弹窗 -->
+        <div class="j-picker adaption coupon-picker" style="display:none;">
+            <div class="weui-mask weui-animate-fade-in"></div>
+            <div class="weui-half-screen-dialog weui-picker weui-animate-slide-up">
+                <div class="weui-half-screen-dialog__hd">
+                    <div class="weui-half-screen-dialog__hd__main">
+                        <strong class="weui-half-screen-dialog__title">优惠码</strong>
                     </div>
+                    <span class="j-icon icon-del-grey cancel"></span>
                 </div>
-            </div>
-            <!-- 优惠码弹窗 -->
-            <div class="j-picker adaption coupon-picker" style="display:none;">
-                <div class="weui-mask weui-animate-fade-in"></div>
-                <div class="weui-half-screen-dialog weui-picker weui-animate-slide-up">
-                    <div class="weui-half-screen-dialog__hd">
-                        <div class="weui-half-screen-dialog__hd__main">
-                            <strong class="weui-half-screen-dialog__title">优惠码</strong>
-                        </div>
-                        <span class="j-icon icon-del-grey cancel"></span>
-                    </div>
-                    <div class="weui-half-screen-dialog__bd">
-                        <div class="weui-picker__bd">
-                            <div class="weui-picker__group">
-                                <input type="text" class="weui-input" maxlength="9" placeholder="输入优惠码,即可赠送30天订阅周期">
-                            </div>
+                <div class="weui-half-screen-dialog__bd">
+                    <div class="weui-picker__bd">
+                        <div class="weui-picker__group">
+                            <input type="text" class="weui-input" maxlength="9" placeholder="输入优惠码,即可赠送30天订阅周期">
                         </div>
                     </div>
-                    <div class="weui-half-screen-dialog__ft">
-                        <button disabled class="weui-btn weui-btn_primary weui-picker__btn"
-                                data-action="select">确定
-                        </button>
-                    </div>
+                </div>
+                <div class="weui-half-screen-dialog__ft">
+                    <button disabled class="weui-btn weui-btn_primary weui-picker__btn"
+                            data-action="select">确定
+                    </button>
                 </div>
             </div>
-            <!-- 优惠明细 -->
-            <div class="j-picker adaption discount-details" style="display:none;">
-                <div class="weui-mask"></div>
-                <div class="weui-half-screen-dialog weui-picker">
-                    <div class="weui-half-screen-dialog__hd">
-                        <div class="weui-half-screen-dialog__hd__main">
-                            <strong class="weui-half-screen-dialog__title">优惠明细</strong>
-                        </div>
-                        <span class="j-icon icon-del-grey cancel"></span>
+        </div>
+        <!-- 优惠明细 -->
+        <div class="j-picker adaption discount-details" style="display:none;">
+            <div class="weui-mask"></div>
+            <div class="weui-half-screen-dialog weui-picker">
+                <div class="weui-half-screen-dialog__hd">
+                    <div class="weui-half-screen-dialog__hd__main">
+                        <strong class="weui-half-screen-dialog__title">优惠明细</strong>
                     </div>
-                    <div class="weui-half-screen-dialog__bd">
-                        <div class="weui-picker__bd">
-                            <div class="details-bd-item origin-price">
-                                <div class="d-b-left">原价</div>
-                                <div class="d-b-right">
-                                    <span class="dis-mon">&yen;</span>
-                                    <span class="dis-price price-num">0</span>
-                                </div>
+                    <span class="j-icon icon-del-grey cancel"></span>
+                </div>
+                <div class="weui-half-screen-dialog__bd">
+                    <div class="weui-picker__bd">
+                        <div class="details-bd-item origin-price">
+                            <div class="d-b-left">原价</div>
+                            <div class="d-b-right">
+                                <span class="dis-mon">&yen;</span>
+                                <span class="dis-price price-num">0</span>
                             </div>
-                            <div class="details-bd-item discount-price">
-                                <div class="d-b-left">限时优惠</div>
-                                <div class="d-b-right text-red">
-                                    <span class="dis-mon">-&yen;</span>
-                                    <span class="dis-price">0</span>
-                                </div>
+                        </div>
+                        <div class="details-bd-item discount-price">
+                            <div class="d-b-left">限时优惠</div>
+                            <div class="d-b-right text-red">
+                                <span class="dis-mon">-&yen;</span>
+                                <span class="dis-price">0</span>
                             </div>
-                            <div class="details-bd-item now-price">
-                                <div class="d-b-left">实付</div>
-                                <div class="d-b-right text-red">
-                                    <span class="dis-mon">&yen;</span>
-                                    <span class="dis-price">0</span>
-                                </div>
+                        </div>
+                        <div class="details-bd-item now-price">
+                            <div class="d-b-left">实付</div>
+                            <div class="d-b-right text-red">
+                                <span class="dis-mon">&yen;</span>
+                                <span class="dis-price">0</span>
                             </div>
                         </div>
                     </div>
                 </div>
             </div>
         </div>
-        <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/jquery.min.js"></script>
-        <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.js"></script>
-        <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
-        <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "mod_version"}}"></script>
-        <!--<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/check-bind-phone.js?v={{Msg "seo" "version"}}'></script>-->
-        <script>
-            // @订单手机号-S
-            function OrderPhone (data) {
-              this.addListener = function () {
-                var _this = this
-                $(this.data.el).on('input propertychange change',   function () {
-                  _this.OrderPhoneCheck && clearTimeout(_this.OrderPhoneCheck)
-                  var o_phone = $(this).val()
-                  _this.result.phone = o_phone
-                  _this.result.status = _this.check_phone(o_phone)
-                  var o_parent = $(this).parents()
-                  _this.OrderPhoneCheck = setTimeout( () => {
-                    if (_this.result.status) {
-                      o_parent.removeClass('error')
-                      typeof _this.data.success === 'function' && _this.data.success()
-                    } else {
-                      o_parent.addClass('error')
-                      typeof _this.data.error === 'function' && _this.data.error()
-                    }
-                  }, _this.data.time || 300)
-                })
-              }
-              this.check_phone = function (phone) {
-                if (phone.trim().length === 0) {
-                  return true
-                }
-                var result = /^[1][3-9][0-9]{9}$/.test(phone)
-                if (result) {
-                  sessionStorage.setItem(_this.OrderPhoneCheckKey, phone)
-                }
-                return result
-              }
-              this.update = function (str) {
-                if (this.check_phone(str)) {
-                  $(this.data.el).val(str)
-                  this.result.phone = str
-                  this.result.status = true
-                }
-              }
-              this.ajaxPhone = function () {
-                var isCache = sessionStorage.getItem(this.OrderPhoneCheckKey)
-                if (isCache) {
-                  this.update(isCache)
-                }
-                var _this = this
-                $.get("/jypay/user/getAccountInfo?t=" + new Date().getTime(), function (r) {
-                  if (r && r.data && r.data.phone) {
-                    _this.update(r.data.phone)
-                  }
-                })
-              }
-              this.removeCachePhone = function () {
-                var levelTime = sessionStorage.getItem(_this.OrderPhoneCheckKey + '_level_time') || false
-                if (levelTime) {
-                  var nowTime = new Date().getTime()
-                  if (nowTime - levelTime > 5 * 60 * 1000) {
-                    sessionStorage.removeItem(_this.OrderPhoneCheckKey)
-                  }
+      </div>
+      <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/jquery.min.js"></script>
+      <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/weui.min.js"></script>
+      <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
+      <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "mod_version"}}"></script>
+      <!--<script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/check-bind-phone.js?v={{Msg "seo" "version"}}'></script>-->
+      <script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
+      <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
+      <script>
+        // @订单手机号-S
+        function OrderPhone (data) {
+          this.addListener = function () {
+            var _this = this
+            $(this.data.el).on('input propertychange change',   function () {
+              _this.OrderPhoneCheck && clearTimeout(_this.OrderPhoneCheck)
+              var o_phone = $(this).val()
+              _this.result.phone = o_phone
+              _this.result.status = _this.check_phone(o_phone)
+              var o_parent = $(this).parents()
+              _this.OrderPhoneCheck = setTimeout( () => {
+                if (_this.result.status) {
+                  o_parent.removeClass('error')
+                  typeof _this.data.success === 'function' && _this.data.success()
+                } else {
+                  o_parent.addClass('error')
+                  typeof _this.data.error === 'function' && _this.data.error()
                 }
-                sessionStorage.setItem(_this.OrderPhoneCheckKey + '_level_time', nowTime)
-                window.addEventListener('pageshow', function(event) {
-                  if (event.persisted || window.performance && window.performance.navigation.type != 2) {
-                    sessionStorage.removeItem(_this.OrderPhoneCheckKey)
-                  }
-                }, false);
-                window.addEventListener('beforeunload', function () {
-                  sessionStorage.setItem(_this.OrderPhoneCheckKey + '_level_time', new Date().getTime())
-                })
+              }, _this.data.time || 300)
+            })
+          }
+          this.check_phone = function (phone) {
+            if (phone.trim().length === 0) {
+              return true
+            }
+            var result = /^[1][3-9][0-9]{9}$/.test(phone)
+            if (result) {
+              sessionStorage.setItem(_this.OrderPhoneCheckKey, phone)
+            }
+            return result
+          }
+          this.update = function (str) {
+            if (this.check_phone(str)) {
+              $(this.data.el).val(str)
+              this.result.phone = str
+              this.result.status = true
+            }
+          }
+          this.ajaxPhone = function () {
+            var isCache = sessionStorage.getItem(this.OrderPhoneCheckKey)
+            if (isCache) {
+              this.update(isCache)
+            }
+            var _this = this
+            $.get("/jypay/user/getAccountInfo?t=" + new Date().getTime(), function (r) {
+              if (r && r.data && r.data.phone) {
+                _this.update(r.data.phone)
               }
-              this.data = data || {
-                el: 'input#order_phone',
-                time: 300
+            })
+          }
+          this.removeCachePhone = function () {
+            var levelTime = sessionStorage.getItem(_this.OrderPhoneCheckKey + '_level_time') || false
+            if (levelTime) {
+              var nowTime = new Date().getTime()
+              if (nowTime - levelTime > 5 * 60 * 1000) {
+                sessionStorage.removeItem(_this.OrderPhoneCheckKey)
               }
-              var _this = this
-
-              this.OrderPhoneCheck = null
-              this.OrderPhoneCheckKey = 'p19.3_order_phone'
-              this.result = {
-                phone: '',
-                status: true,
-                update: _this.update.bind(_this)
+            }
+            sessionStorage.setItem(_this.OrderPhoneCheckKey + '_level_time', nowTime)
+            window.addEventListener('pageshow', function(event) {
+              if (event.persisted || window.performance && window.performance.navigation.type != 2) {
+                sessionStorage.removeItem(_this.OrderPhoneCheckKey)
               }
-              this.removeCachePhone()
-              this.addListener()
-              this.ajaxPhone()
-              return this.result
+            }, false);
+            window.addEventListener('beforeunload', function () {
+              sessionStorage.setItem(_this.OrderPhoneCheckKey + '_level_time', new Date().getTime())
+            })
+          }
+          this.data = data || {
+            el: 'input#order_phone',
+            time: 300
+          }
+          var _this = this
+          this.OrderPhoneCheck = null
+          this.OrderPhoneCheckKey = 'p19.3_order_phone'
+          this.result = {
+            phone: '',
+            status: true,
+            update: _this.update.bind(_this)
+          }
+          this.removeCachePhone()
+          this.addListener()
+          this.ajaxPhone()
+          return this.result
+        }
+        var OrderPhoneCheck = new OrderPhone()
+        // @订单手机号-E
+        function checkMonth (temp) {
+          if ($("#giveTimeBox").is('[data-new-year]')) {
+            var tempTime = temp || $(".free-7day.give .info").text().trim()
+            if (tempTime.indexOf('个月') === 1 && tempTime.slice(0, -2) < 3) {
+              $("#giveTimeBox").hide()
+            } else {
+              $("#giveTimeBox").show()
             }
-            var OrderPhoneCheck = new OrderPhone()
-            // @订单手机号-E
-            function checkMonth (temp) {
-              if ($("#giveTimeBox").is('[data-new-year]')) {
-                var tempTime = temp || $(".free-7day.give .info").text().trim()
-                if (tempTime.indexOf('个月') === 1 && tempTime.slice(0, -2) < 3) {
-                  $("#giveTimeBox").hide()
-                } else {
-                  $("#giveTimeBox").show()
-                }
+          }
+        }
+        function showGiveStatus(t) {
+          if (t) {
+            $(".j-notice-bar.bar-red.free-7day-tip.give").css('display', 'flex')
+            $(".vip_purchase .choose_condition .chooseList").css('margin-top', 0)
+            $("#giveTimeBox").show()
+            $("#giveTimeBox").attr('data-new-year', 'true')
+            // @NewYearMarketing 2021/1/25
+            checkMonth()
+
+            // $(".origin-price").css('display', 'flex')
+            // $('.discount-button').show().on('click', function () {
+            //     var details = $('.discount-details')
+            //     if (details.is(':hidden')) {
+            //         $('.discount-details').show()
+            //         $(this).children('.icon-arrow').addClass('up')
+            //     } else {
+            //         $('.discount-details').hide()
+            //         $(this).children('.icon-arrow').removeClass('up')
+            //     }
+            // })
+          } else {
+            $(".j-notice-bar.bar-red.free-7day-tip.give").hide()
+            $("#giveTimeBox").hide()
+            // $(".origin-price").hide()
+          }
+        }
+        // @NewYearMarketing 2021/1/25
+        getNewYearMarketing()
+        function getNewYearMarketing () {
+          $.ajax({
+            url: '/getJson/NewYearMarketing?t=' + new Date().getTime(),
+            success: function (r) {
+              if (r && r.status) {
+                showGiveStatus(true)
               }
             }
-            function showGiveStatus(t) {
-                if (t) {
-                    $(".j-notice-bar.bar-red.free-7day-tip.give").css('display', 'flex')
-                    $(".vip_purchase .choose_condition .chooseList").css('margin-top', 0)
-                    $("#giveTimeBox").show()
-                    $("#giveTimeBox").attr('data-new-year', 'true')
-                    // @NewYearMarketing 2021/1/25
-                    checkMonth()
+          })
+        }
+        
+        $(window).bind("pageshow", function (event) {
+          if (event.originalEvent.persisted) {
+            window.location.reload();
+          }
+        });
+        //微信支付start
+        {{if not .T.isTrial }}
+          sessionStorage.removeItem("vipSubisTrial");//非试用界面
+        {{else}}
+          sessionStorage.setItem("vipSubisTrial", "1");//试用界面
+          //试用用户
+        {{end}}
 
-                    // $(".origin-price").css('display', 'flex')
-                    // $('.discount-button').show().on('click', function () {
-                    //     var details = $('.discount-details')
-                    //     if (details.is(':hidden')) {
-                    //         $('.discount-details').show()
-                    //         $(this).children('.icon-arrow').addClass('up')
-                    //     } else {
-                    //         $('.discount-details').hide()
-                    //         $(this).children('.icon-arrow').removeClass('up')
-                    //     }
-                    // })
-                } else {
-                    $(".j-notice-bar.bar-red.free-7day-tip.give").hide()
-                    $("#giveTimeBox").hide()
-                    // $(".origin-price").hide()
+        /* vue 代码 start */
+        var coupon = new Vue({ 
+          el: '#coupon-vue',
+          data: function () {
+            return {
+              type: 'vip',
+              initPrice: 0, // 原价
+              realPrice: 0, // 实付价
+              checkboxStatus: false, // checkbox状态
+              submitStatus: true,  // 提交按钮状态
+              links: [
+                {
+                  text: '《剑鱼标讯线上购买与服务条款》',
+                  url: '/jyapp/front/staticPage/dataExport_serviceterms.html',
+                  event: this.readEvent
                 }
+              ],
+              buttons: {
+                submit: this.submitOrder
+              },
             }
-            // @NewYearMarketing 2021/1/25
-            getNewYearMarketing()
-            function getNewYearMarketing () {
-              $.ajax({
-                url: '/getJson/NewYearMarketing?t=' + new Date().getTime(),
-                success: function (r) {
-                  if (r && r.status) {
-                    showGiveStatus(true)
-                  }
+          },
+          mounted () {
+            console.log(OrderPhoneCheck)
+            this.init(this.$data)
+          }, 
+          methods: {
+            // 更新价格相关
+            updatePrice: function (before) {
+              console.log( '原价:' + before)
+              this.initPrice = before;
+              // 调用子组件查询最优卡券
+              this.$refs.couponRef.getCoupon();
+            },
+            // 初始化及回显相关
+            init: function (data) {
+              var areaStorage = sessionStorage.getItem('vipSubSelectArea');
+              var industryStorage = sessionStorage.getItem('vipSubSelectIndustry');
+              var readStorage = sessionStorage.getItem('vipSub_read') == 'true' ? true : false;
+              console.log(areaStorage, industryStorage, readStorage)
+              if(readStorage) {
+                this.checkboxStatus = true
+              }
+              if (areaStorage && industryStorage && readStorage && OrderPhoneCheck.status) {
+                this.$refs.couponRef.submitStatus = false
+              } else {
+                this.$refs.couponRef.submitStatus = true
+              }
+            },
+            // 勾选阅读协议
+            updateS: function(data) {
+              console.log(data, 'data')
+              data.callback(this.checkSubmitStatus(data.check))
+            },
+            // 校验checkbox
+            checkSubmitStatus: function (checkStatus) {
+              $('#buy').prop('checked', checkStatus)
+              var areaStorage = sessionStorage.getItem('vipSubSelectArea');
+              var industryStorage = sessionStorage.getItem('vipSubSelectIndustry');
+              var readStorage = sessionStorage.getItem('vipSub_read');
+              return areaStorage && industryStorage && readStorage && OrderPhoneCheck.status
+            },
+            // 阅读协议点击事件
+            readEvent: function () {
+              console.log('事件触发跳转')
+            },
+            // 订单提交事件
+            submitOrder: function () {
+              this.$refs.couponRef.submitStatus = true
+              // $("#payHandle").attr("disabled", "disabled");
+              //支付请求
+              var area = purchase.areaSelect;
+              var industry = purchase.industrySelect;
+              var _this = this;
+              if (area["全国"]) {
+                area = {};
+              }
+              if (industry.length === 1 && industry[0] === "全部行业") {
+                industry = [];
+              }
+
+              {{if not .T.isTrial}}
+                //优惠码
+                var activeCode = $('.coupon-picker .weui-input').val();
+                // alert(activeCode)
+                var activeCodes = "";
+                if (activeCode.toLowerCase() === "jianyu360" && $('.coupon-code-tx .info').text() === "支付成功赠送30天订阅周期") {
+                  activeCodes = "jianyu360";
                 }
-              })
-            }
-            $(window).bind("pageshow", function (event) {
-                if (event.originalEvent.persisted) {
-                    window.location.reload();
+                //付费用户
+                var param = {
+                  "area": JSON.stringify(area),
+                  "industry": industry.join(","),
+                  "time": $(".info:eq(2)").val().trim(),
+                  "orderType":{{.T.orderType}},
+                  "activeCode": activeCodes,
+                  "disWord":getParam("disWord")
+                };
+                // @订单手机号-S
+                if (OrderPhoneCheck.status) {
+                  param.order_phone = OrderPhoneCheck.phone
                 }
-            });
-            //微信支付start
-            {{if not .T.isTrial }}
-            sessionStorage.removeItem("vipSubisTrial");//非试用界面
-            {{else}}
-            sessionStorage.setItem("vipSubisTrial", "1");//试用界面
-            //试用用户
-            {{end}}
-            var purchase = {
-                areaSelect: {"一个省": ["一个市"]},//已选择地区 {"一个省":["一个市"]}计算价格临时变量
-                industrySelect: ["一个行业"],// 已选择行业 一个行业(计算价格临时变量)
-                timeSelect: [1, 2],//已选择时间 timeSelect[0]时长  timeSelect[1] 1:年 2:月
-                price: {}, //价格
-                nowBuyset: {},
-                vipSubisTrial: false,
-                payWay: "wx_app",
-                initData: function () {
-                    //已选择
+                // @订单手机号-E
+                $DoPost("/subscribepay/vipsubscribe/createOrder", param, function (r) {
+                  if (r.success) {
                     try {
-                        if (sessionStorage.getItem("vipSubSelectArea")) {
-                            this.areaSelect = JSON.parse(sessionStorage.getItem("vipSubSelectArea"));
-                        }
-                        if (sessionStorage.getItem("vipSubSelectIndustry")) {
-                            this.industrySelect = JSON.parse(sessionStorage.getItem("vipSubSelectIndustry"));
-                        }
-                        if (sessionStorage.getItem("payWay")) {
-                            if (sessionStorage.getItem("payWay").indexOf("ali") > -1) {
-                                this.payWay = "ali_app";
-                                $("#zfb").prop("checked", true);
-                                $(".choose_way").text("支付宝支付");
-                            }
-                        }
-                        if (sessionStorage.liveActiveCode_purchase === "jianyu360") {
-                            $('.coupon-code-tx .info').text("支付成功赠送30天订阅周期");
-                            $('.coupon-picker .weui-input').val("jianyu360");
-                            $('.coupon-code-tx').off('click');
-                        }
-                        {{if eq .T.orderType 5 }}
-                        $('#payHandle').text("立即续费");
-                        //即将到期 回显已购买
-                        if (!sessionStorage.getItem("vipSubSelectArea") || !sessionStorage.getItem("vipSubSelectIndustry")) {
-                            $DoPost("/subscribepay/vipsubscribe/getSubBuyMsg", {}, function (r) {
-                                if (r.success) {
-                                    if (!$.isEmptyObject(r.data.area)) {
-                                        purchase.areaSelect = r.data.area
-                                    } else {
-                                        purchase.areaSelect = {"全国": []}
-                                    }
-                                    if (r.data.industry.length != 0) {
-                                        purchase.industrySelect = r.data.industry
-                                    } else {
-                                        purchase.industrySelect = ["全部行业"]
-                                    }
-                                    sessionStorage.setItem("vipSubSelectArea", JSON.stringify(purchase.areaSelect));
-                                    sessionStorage.setItem("vipSubSelectIndustry", JSON.stringify(purchase.industrySelect));
-                                }
-                            }, false)
-                        }
-                        {{end}}
-                        {{if .T.again}}    //再次购买回显
-                        {{if eq .T.again 1 }}
-                        var orderCode = getParam("orderCode")
-                        if (orderCode != "undefined") {
-                            if (!sessionStorage.getItem("vipSubSelectArea") || !sessionStorage.getItem("vipSubSelectIndustry")) {
-                                $DoPost("/subscribepay/orderListDetails/getVipOrderInfo", {"orderCode": orderCode}, function (r) {
-                                    if (!$.isEmptyObject(r.data.area)) {
-                                        purchase.areaSelect = r.data.area
-                                    } else {
-                                        purchase.areaSelect = {"全国": []}
-                                    }
-                                    if (r.data.industry.length != 0) {
-                                        purchase.industrySelect = r.data.industry
-                                    } else {
-                                        purchase.industrySelect = ["全部行业"]
-                                    }
-                                    //                          if (r.timeSelect!=undefined&&r.company!=undefined){
-                                    //                         		purchase.timeSelect=[r.timeSelect,r.company];
-                                    //                          }
-                                    $(".weui-icon-checked").click();
-                                    sessionStorage.setItem("vipSubSelectArea", JSON.stringify(purchase.areaSelect));
-                                    sessionStorage.setItem("vipSubSelectIndustry", JSON.stringify(purchase.industrySelect));
-                                    //sessionStorage.setItem("vipSubSelectTime", JSON.stringify(purchase.timeSelect));
-
-                                }, false)
-                            }
-                        }
-                        {{end}}
-                        {{end}}
-                        if (sessionStorage.getItem("vipSubSelectTime")) {
-                            this.timeSelect = JSON.parse(sessionStorage.getItem("vipSubSelectTime"));
-                        }
-                        //是否已经点击已读
-                        if (sessionStorage.getItem("vipSub_read") === "true") $("#buy").prop("checked", true);
-                        //是否试用界面
-                        if (sessionStorage.getItem("vipSubisTrial")) this.vipSubisTrial = true;
-
-                        //加载价格
-                        $DoPost("/subscribepay/vipsubscribe/getPrice", {}, function (r) {
-                            if (r) {
-                                purchase.price = r;
-                                // if (r.isActiving && r.isWritten === 0) {
-                                //     showGiveStatus(true)
-                                // } else {
-                                //     showGiveStatus(false)
-                                // }
-                            }
-                        }, false)
-                        sessionStorage.removeItem("pay_read_cache");
+                      clearSessionStorage()
+                      history.replaceState({}, '', '/jyapp/vipsubscribe/toOrderDetailPage?orderCode=' + r.data.code);
+                      window.location.href = "/jyapp/pay/checkout_subvip?orderCode=" + r.data.code + "&t=3&from=buy"
                     } catch (e) {
-                        console.log(e)
-                    }
-                    this.nowBuyset = getBuySet(purchase.areaSelect, purchase.industrySelect, this.price);
-                },
-                showArea: function () {
-                    if (!$.isEmptyObject(this.areaSelect) && !this.areaSelect["一个省"]) { //有选择
-                        if (this.nowBuyset.areacount === -1) {
-                            $(".choose_area").val("全国");
-                        } else {
-                            var tipTxt = "已选择 ";
-                            if (this.nowBuyset.areacount > 0) tipTxt += this.nowBuyset.areacount + " 个省";
-                            var count = 0;
-                            this.nowBuyset.citys.forEach(function (item, index) {
-                                count += item;
-                            });
-                            if (count > 0) {
-                                if (this.nowBuyset.areacount > 0) tipTxt += "、";
-                                tipTxt += count + " 个市";
-                                if (this.nowBuyset.citys.length > 1) tipTxt += "(分布在" + this.nowBuyset.citys.length + "个省内)"
-                            }
-                            $(".choose_area").val(tipTxt);
-                        }
-                    } else {
-                        $(".choose_area").val("");
-                        //是否勾选已阅读
-                        if (sessionStorage.getItem("vipSub_read") === "true") {
-                            $(".area_warn").css("display", "");
-                        }
+                      showToast(e)
                     }
-                },
-                showPrice: function () {
-                    $('.monthly span:eq(0)').text(purchase.price.month.oneCity_oneBuyerClass / 100);
-                    $('.monthly span:eq(1)').text(purchase.price.month.oneCity_allBuyerClass / 100);
-                    $('.monthly span:eq(2)').text(purchase.price.month.oneProvince_oneBuyerClass / 100);
-                    $('.monthly span:eq(3)').text(purchase.price.month.oneProvince_allBuyerClass / 100);
-                    $('.monthly span:eq(4)').text(purchase.price.month.allProvince_oneBuyerClass / 100);
-                    $('.monthly span:eq(5)').text(purchase.price.month.allProvince_allBuyerClass / 100);
+                  }
+                  $("#payHandle").removeAttr("disabled")
+                  _this.$refs.couponRef.submitStatus = false
+                });
+              {{else}}
+                //试用用户
+                $DoPost("/subscribepay/order/trialPay", {
+                  "area": JSON.stringify(area),
+                  "industry": industry.join(","),
+                  "order_phone": OrderPhoneCheck.phone
+                }, function (r) {
+                  if (r.success) {
+                    clearSessionStorage();
+                    $("#payHandle").attr("disabled", "disabled");
+                    _this.$refs.couponRef.submitStatus = true
+                    window.location.replace("/jyapp/subvip/paySuccess?orderCode=" + r.data.code);
+                  }
+                });
+              {{end}}
+            }
+          }
+        })
+        /* vue 代码 end */
 
-                    $('.yearly span:eq(0)').text(purchase.price.year.oneCity_oneBuyerClass / 100);
-                    $('.yearly span:eq(1)').text(purchase.price.year.oneCity_allBuyerClass / 100);
-                    $('.yearly span:eq(2)').text(purchase.price.year.oneProvince_oneBuyerClass / 100);
-                    $('.yearly span:eq(3)').text(purchase.price.year.oneProvince_allBuyerClass / 100);
-                    $('.yearly span:eq(4)').text(purchase.price.year.allProvince_oneBuyerClass / 100);
-                    $('.yearly span:eq(5)').text(purchase.price.year.allProvince_allBuyerClass / 100);
-                },
-                showIndustry: function () {
-                    if (this.industrySelect.length > 0 && this.industrySelect[0] != "一个行业") { //选择有行业信息
-                        if (this.nowBuyset.buyerclasscount == -1) {
-                            $(".choose_industry").val("全部行业");
-                        } else {
-                            var tipTxt = "已选择 ";
-                            $(".choose_industry").val(tipTxt + this.nowBuyset.buyerclasscount + " 个行业");
-                        }
-                    } else {
-                        $(".choose_industry").val("");
-                        //是否勾选已阅读
-                        if (sessionStorage.getItem("vipSub_read") === "true") {
-                            $(".industry_warn").css("display", "");
-                        }
+
+        var purchase = {
+          areaSelect: {"一个省": ["一个市"]},//已选择地区 {"一个省":["一个市"]}计算价格临时变量
+          industrySelect: ["一个行业"],// 已选择行业 一个行业(计算价格临时变量)
+          timeSelect: [1, 2],//已选择时间 timeSelect[0]时长  timeSelect[1] 1:年 2:月
+          price: {}, //价格
+          nowBuyset: {},
+          vipSubisTrial: false,
+          payWay: "wx_app",
+          initData: function () {
+            //已选择
+            try {
+              if (sessionStorage.getItem("vipSubSelectArea")) {
+                this.areaSelect = JSON.parse(sessionStorage.getItem("vipSubSelectArea"));
+              }
+              if (sessionStorage.getItem("vipSubSelectIndustry")) {
+                this.industrySelect = JSON.parse(sessionStorage.getItem("vipSubSelectIndustry"));
+              }
+              if (sessionStorage.getItem("payWay")) {
+                if (sessionStorage.getItem("payWay").indexOf("ali") > -1) {
+                  this.payWay = "ali_app";
+                  $("#zfb").prop("checked", true);
+                  $(".choose_way").text("支付宝支付");
+                }
+              }
+              if (sessionStorage.liveActiveCode_purchase === "jianyu360") {
+                $('.coupon-code-tx .info').text("支付成功赠送30天订阅周期");
+                $('.coupon-picker .weui-input').val("jianyu360");
+                $('.coupon-code-tx').off('click');
+              }
+              {{if eq .T.orderType 5 }}
+                $('#payHandle').text("立即续费");
+                //即将到期 回显已购买
+                if (!sessionStorage.getItem("vipSubSelectArea") || !sessionStorage.getItem("vipSubSelectIndustry")) {
+                  $DoPost("/subscribepay/vipsubscribe/getSubBuyMsg", {}, function (r) {
+                    if (r.success) {
+                      if (!$.isEmptyObject(r.data.area)) {
+                        purchase.areaSelect = r.data.area
+                      } else {
+                        purchase.areaSelect = {"全国": []}
+                      }
+                      if (r.data.industry.length != 0) {
+                        purchase.industrySelect = r.data.industry
+                      } else {
+                        purchase.industrySelect = ["全部行业"]
+                      }
+                      sessionStorage.setItem("vipSubSelectArea", JSON.stringify(purchase.areaSelect));
+                      sessionStorage.setItem("vipSubSelectIndustry", JSON.stringify(purchase.industrySelect));
                     }
-                },
-                showTime: function () {
-                    var tmp = this.timeSelect[0];
-                    if (this.timeSelect[1] == 1) {
-                        tmp += "年";
-                        $("#yearly").prop('checked', true);
-                        $('.year_number:eq(' + (this.timeSelect[0] - 1) + ')').addClass("active");
-                        //$(".number_box:eq(1)").addClass("active");
-                    } else {
-                        tmp += "个月";
-                        $("#monthly").prop('checked', true);
-                        $(".number_box:eq(0)").addClass("active");
-                        $("#number_box_month .month_number").text(this.timeSelect[0]);
-                        /*if (this.timeSelect[0] >= 10) {
-                            $('.profit_tips').text("已选择" + this.timeSelect[0] + "个月,建议“按年订阅”").show();
-                        }*/
-                        if (this.timeSelect[0] == 1) {
-                            $('#number_box_month button:eq(0)').attr("disabled", "disabled");
+                  }, false)
+                }
+              {{end}}
+              {{if .T.again}}    //再次购买回显
+                {{if eq .T.again 1 }}
+                  var orderCode = getParam("orderCode")
+                  if (orderCode != "undefined") {
+                    if (!sessionStorage.getItem("vipSubSelectArea") || !sessionStorage.getItem("vipSubSelectIndustry")) {
+                      $DoPost("/subscribepay/orderListDetails/getVipOrderInfo", {"orderCode": orderCode}, function (r) {
+                        if (!$.isEmptyObject(r.data.area)) {
+                          purchase.areaSelect = r.data.area
                         } else {
-                            $('#number_box_month button:eq(0)').removeAttr("disabled");
+                          purchase.areaSelect = {"全国": []}
                         }
-                    }
-                    $(".choose_item .show_time").text(tmp);
-                    var giveTime = tmp
-                    if (giveTime.indexOf('年') !== -1) {
-                        giveTime = '1年'
-                    }
-                    $(".free-7day.give .info").text(giveTime)
-                    $(".info.choose_time").val(tmp);
-                  // @NewYearMarketing 2021/1/25
-                  checkMonth(giveTime)
-                },
-                flushPrice: function (time, flag) {
-                    if (this.vipSubisTrial) {
-                        $('.price .billing-price').text('0.00');
-                        $('.now-price .dis-price').text('0.00');  // 优惠明细
-                    } else {
-                        var price = getsubVipOrderPriceBybuyset(this.nowBuyset, time);
-                        var givePrice = getsubVipOrderPriceBybuyset(this.nowBuyset, [time[1] === 1 ? 1 :time[0], time[1]]);
-                        //var price = getsubVipOrderPrice(this.areaSelect, this.industrySelect, time, this.price);
-                        var showPrice = formatMoney(price);
-                        if (flag === 1) {
-                            $('.price .billing-price').text(showPrice);
-                            $('.now-price .dis-price').text(showPrice); // 优惠明细
-
-                            $('.origin-price .price-num').text(formatMoney(price + givePrice));
-                            $('.discount-price .dis-price').text(formatMoney(givePrice))
-                        } else if (flag === 2) {
-                            $('.computed_price').html(showPrice);
+                        if (r.data.industry.length != 0) {
+                          purchase.industrySelect = r.data.industry
                         } else {
-                            $('.price .billing-price').text(showPrice);
-                            $('.now-price .dis-price').text(showPrice); // 优惠明细
-
-                            $('.origin-price .price-num').text(formatMoney(price + givePrice));
-                            $('.computed_price').html(showPrice);
-                            $('.discount-price .dis-price').text(formatMoney(givePrice))
+                          purchase.industrySelect = ["全部行业"]
                         }
-
+                        // if (r.timeSelect!=undefined&&r.company!=undefined){
+                        //    purchase.timeSelect=[r.timeSelect,r.company];
+                        // }
+                        $(".weui-icon-checked").click();
+                        sessionStorage.setItem("vipSubSelectArea", JSON.stringify(purchase.areaSelect));
+                        sessionStorage.setItem("vipSubSelectIndustry", JSON.stringify(purchase.industrySelect));
+                        //sessionStorage.setItem("vipSubSelectTime", JSON.stringify(purchase.timeSelect));
+                      }, false)
                     }
+                  }
+                {{end}}
+              {{end}}
+              if (sessionStorage.getItem("vipSubSelectTime")) {
+                this.timeSelect = JSON.parse(sessionStorage.getItem("vipSubSelectTime"));
+              }
+              //是否已经点击已读
+              if (sessionStorage.getItem("vipSub_read") === "true") $("#buy").prop("checked", true);
+              //是否试用界面
+              if (sessionStorage.getItem("vipSubisTrial")) this.vipSubisTrial = true;
+
+              //加载价格
+              $DoPost("/subscribepay/vipsubscribe/getPrice", {}, function (r) {
+                if (r) {
+                  purchase.price = r;
+                  // if (r.isActiving && r.isWritten === 0) {
+                  //     showGiveStatus(true)
+                  // } else {
+                  //     showGiveStatus(false)
+                  // }
                 }
-            };
+              }, false)
+              sessionStorage.removeItem("pay_read_cache");
+            } catch (e) {
+              console.log(e)
+            }
+            this.nowBuyset = getBuySet(purchase.areaSelect, purchase.industrySelect, this.price);
+          },
+          showArea: function () {
+            if (!$.isEmptyObject(this.areaSelect) && !this.areaSelect["一个省"]) { //有选择
+              if (this.nowBuyset.areacount === -1) {
+                $(".choose_area").val("全国");
+              } else {
+                var tipTxt = "已选择 ";
+                if (this.nowBuyset.areacount > 0) tipTxt += this.nowBuyset.areacount + " 个省";
+                var count = 0;
+                this.nowBuyset.citys.forEach(function (item, index) {
+                    count += item;
+                });
+                if (count > 0) {
+                    if (this.nowBuyset.areacount > 0) tipTxt += "、";
+                    tipTxt += count + " 个市";
+                    if (this.nowBuyset.citys.length > 1) tipTxt += "(分布在" + this.nowBuyset.citys.length + "个省内)"
+                }
+                $(".choose_area").val(tipTxt);
+              }
+            } else {
+              $(".choose_area").val("");
+              //是否勾选已阅读
+              if (sessionStorage.getItem("vipSub_read") === "true") {
+                $(".area_warn").css("display", "");
+              }
+            }
+          },
+          showPrice: function () {
+            $('.monthly span:eq(0)').text(purchase.price.month.oneCity_oneBuyerClass / 100);
+            $('.monthly span:eq(1)').text(purchase.price.month.oneCity_allBuyerClass / 100);
+            $('.monthly span:eq(2)').text(purchase.price.month.oneProvince_oneBuyerClass / 100);
+            $('.monthly span:eq(3)').text(purchase.price.month.oneProvince_allBuyerClass / 100);
+            $('.monthly span:eq(4)').text(purchase.price.month.allProvince_oneBuyerClass / 100);
+            $('.monthly span:eq(5)').text(purchase.price.month.allProvince_allBuyerClass / 100);
 
+            $('.yearly span:eq(0)').text(purchase.price.year.oneCity_oneBuyerClass / 100);
+            $('.yearly span:eq(1)').text(purchase.price.year.oneCity_allBuyerClass / 100);
+            $('.yearly span:eq(2)').text(purchase.price.year.oneProvince_oneBuyerClass / 100);
+            $('.yearly span:eq(3)').text(purchase.price.year.oneProvince_allBuyerClass / 100);
+            $('.yearly span:eq(4)').text(purchase.price.year.allProvince_oneBuyerClass / 100);
+            $('.yearly span:eq(5)').text(purchase.price.year.allProvince_allBuyerClass / 100);
+          },
+          showIndustry: function () {
+            if (this.industrySelect.length > 0 && this.industrySelect[0] != "一个行业") { //选择有行业信息
+              if (this.nowBuyset.buyerclasscount == -1) {
+                $(".choose_industry").val("全部行业");
+              } else {
+                var tipTxt = "已选择 ";
+                $(".choose_industry").val(tipTxt + this.nowBuyset.buyerclasscount + " 个行业");
+              }
+            } else {
+              $(".choose_industry").val("");
+              //是否勾选已阅读
+              if (sessionStorage.getItem("vipSub_read") === "true") {
+                $(".industry_warn").css("display", "");
+              }
+            }
+          },
+          showTime: function () {
+              var tmp = this.timeSelect[0];
+              if (this.timeSelect[1] == 1) {
+                tmp += "年";
+                $("#yearly").prop('checked', true);
+                $('.year_number:eq(' + (this.timeSelect[0] - 1) + ')').addClass("active");
+                //$(".number_box:eq(1)").addClass("active");
+              } else {
+                tmp += "个月";
+                $("#monthly").prop('checked', true);
+                $(".number_box:eq(0)").addClass("active");
+                $("#number_box_month .month_number").text(this.timeSelect[0]);
+                /*if (this.timeSelect[0] >= 10) {
+                    $('.profit_tips').text("已选择" + this.timeSelect[0] + "个月,建议“按年订阅”").show();
+                }*/
+                if (this.timeSelect[0] == 1) {
+                  $('#number_box_month button:eq(0)').attr("disabled", "disabled");
+                } else {
+                  $('#number_box_month button:eq(0)').removeAttr("disabled");
+                }
+              }
+              $(".choose_item .show_time").text(tmp);
+              var giveTime = tmp
+              if (giveTime.indexOf('年') !== -1) {
+                giveTime = '1年'
+              }
+              $(".free-7day.give .info").text(giveTime)
+              $(".info.choose_time").val(tmp);
+            // @NewYearMarketing 2021/1/25
+            checkMonth(giveTime)
+          },
+          flushPrice: function (time, flag) {
+              if (this.vipSubisTrial) {
+                $('.price .billing-price').text('0.00');
+                $('.now-price .dis-price').text('0.00');  // 优惠明细
+              } else {
+                var price = getsubVipOrderPriceBybuyset(this.nowBuyset, time);
+                var givePrice = getsubVipOrderPriceBybuyset(this.nowBuyset, [time[1] === 1 ? 1 :time[0], time[1]]);
+                //var price = getsubVipOrderPrice(this.areaSelect, this.industrySelect, time, this.price);
+                var showPrice = formatMoney(price);
+                if (flag === 1) {
+                  $('.price .billing-price').text(showPrice);
+                  $('.now-price .dis-price').text(showPrice); // 优惠明细
 
-            $(function () {
-                purchase.initData();
-                purchase.showArea();
-                purchase.showIndustry();
-                purchase.showPrice();
-                purchase.showTime();
-                purchase.flushPrice(purchase.timeSelect);
-                checkOk();
-                var time_limit;//定义一个周期变量
-                /*------ 关闭弹窗事件  点击取消或遮罩层 -----*/
-                $('.weui-mask').click(hideDialog);
-                $('.cancel').click(hideDialog);
+                  $('.origin-price .price-num').text(formatMoney(price + givePrice));
+                  $('.discount-price .dis-price').text(formatMoney(givePrice))
+                } else if (flag === 2) {
+                    $('.computed_price').html(showPrice);
+                } else {
+                  $('.price .billing-price').text(showPrice);
+                  $('.now-price .dis-price').text(showPrice); // 优惠明细
 
-                /* -----  订阅周期、支付方式弹窗弹出事件 -------*/
-                // 选择订阅周期
-                $('.select_cycle a').click(function (e) {
-                    $('#time_cycle').show(200);
-                });
+                  $('.origin-price .price-num').text(formatMoney(price + givePrice));
+                  $('.computed_price').html(showPrice);
+                  $('.discount-price .dis-price').text(formatMoney(givePrice))
+                }
+                coupon.updatePrice(price)
+              }
+            }
+        };
 
+        $(function () {
+          purchase.initData();
+          purchase.showArea();
+          purchase.showIndustry();
+          purchase.showPrice();
+          purchase.showTime();
+          purchase.flushPrice(purchase.timeSelect);
+          checkOk();
+          var time_limit;//定义一个周期变量
+          /*------ 关闭弹窗事件  点击取消或遮罩层 -----*/
+          $('.weui-mask').click(hideDialog);
+          $('.cancel').click(hideDialog);
 
-                /* -----  选择完支付方式、订阅周期 回显到页面 -------*/
-                $('.select_payment .choose_way').click(function () {
-                    $('#pay_way').show(200);
-                });
-                // 对支付方式选择的input绑定点击事件
-                $('#pay_way input:radio[name="way"]').click(function () {
-                    var checkValue = $('input:radio[name="way"]:checked').val();
-                    $('.pay_way').hide(200);
-                    $('.pay_mode .select_payment .choose_way.info').html(checkValue);
-                    if (checkValue === "微信支付") {
-                        purchase.payWay = "wx_app"
-                    } else {
-                        purchase.payWay = "ali_app"
-                    }
-                    sessionStorage.setItem("payWay", purchase.payWay);
-                });
-                // 对订阅时间选择的input绑定点击事件
-                $('#time_cycle input:radio[name="time"]').on('click', function (e) {
-                    // 解除确认按钮的锁定
-                    if ($(e.target).hasClass('monthly') !== $('#number_box_month').hasClass('active')) {
-                      $('#time_cycle .form-btn button').removeAttr('disabled');
-                    }
-                    if ($(e.target).hasClass('monthly')) {
-                        // 按月订阅
-                        $('#number_box_month').addClass('active');
-                        $('#number_box_year span').removeClass('active');
-                    } else {
-                        // 按年订阅
-                        $('#number_box_month').removeClass('active');
-                        // $('#number_box_year span:eq(0)').addClass('active').siblings().removeClass('active');
-                    }
-                });
+          /* -----  订阅周期、支付方式弹窗弹出事件 -------*/
+          // 选择订阅周期
+          $('.select_cycle a').click(function (e) {
+            $('#time_cycle').show(200);
+          });
 
-                /* --------控制月份number_box的事件  点击加减号触发的事件------- */
-                $('#number_box_month').on('click', 'button', function (e) {
-                    // 点击加减号让input radio选中
-                    $('#monthly').prop('checked', true);
-                    $('#yearly').prop('checked', false);
-                    $('.number_box span').removeClass('active');
-                    $('#number_box_month').addClass('active');
 
-                    var $number = $('#number_box_month span.month_number');
-                    var $monthlyInput = $('#monthly');
-                    // 未整理的data数组,里面的值都是字符串
-                    var preData = e.delegateTarget.dataset;
-                    var currentNum = parseInt($number.text());
-                    var data = {};
-                    // 把字符串转换成数字
-                    for (var i in preData) {
-                        data[i] = preData[i] - 0
-                    }
+          /* -----  选择完支付方式、订阅周期 回显到页面 -------*/
+          $('.select_payment .choose_way').click(function () {
+            $('#pay_way').show(200);
+          });
+          // 对支付方式选择的input绑定点击事件
+          $('#pay_way input:radio[name="way"]').click(function () {
+            var checkValue = $('input:radio[name="way"]:checked').val();
+            $('.pay_way').hide(200);
+            $('.pay_mode .select_payment .choose_way.info').html(checkValue);
+            if (checkValue === "微信支付") {
+                purchase.payWay = "wx_app"
+            } else {
+                purchase.payWay = "ali_app"
+            }
+            sessionStorage.setItem("payWay", purchase.payWay);
+          });
+          // 对订阅时间选择的input绑定点击事件
+          $('#time_cycle input:radio[name="time"]').on('click', function (e) {
+            // 解除确认按钮的锁定
+            if ($(e.target).hasClass('monthly') !== $('#number_box_month').hasClass('active')) {
+              $('#time_cycle .form-btn button').removeAttr('disabled');
+            }
+            if ($(e.target).hasClass('monthly')) {
+              // 按月订阅
+              $('#number_box_month').addClass('active');
+              $('#number_box_year span').removeClass('active');
+            } else {
+              // 按年订阅
+              $('#number_box_month').removeClass('active');
+              // $('#number_box_year span:eq(0)').addClass('active').siblings().removeClass('active');
+            }
+          });
 
-                    if (!$monthlyInput.prop('checked')) {
-                        return
-                    }
-                    // 判断是点击的是+ 还是-
-                    if ($(e.target).hasClass('add') || $(e.currentTarget).hasClass('add')) {
-                        if (currentNum == 11) { //12个月自动跳转1年
-                            $("#number_box_year .year_number:eq(0)").trigger("click");
-                            return
-                        }
-                        // 点的+
-                        // currentNum = currentNum >= 12 ? 12 : currentNum + 1;
-                        currentNum = currentNum >= data.numboxMax ? data.numboxMax : (currentNum + data
-                            .numboxStep);
-                    } else {
-                        // 点的-
-                        // currentNum = currentNum <= 1 ? 1 : currentNum - 1;
-                        currentNum = currentNum <= data.numboxMin ? data.numboxMin : (currentNum - data
-                            .numboxStep);
-                    }
-                    $number.text(currentNum);
-                    purchase.timeSelect_tmp = [Number(currentNum), 2];
-                    purchase.flushPrice(purchase.timeSelect_tmp, 2);
-                    //var price = (5.8 * currentNum).toFixed(1);
-                    //$('.computed_price').html('¥' + price)
-                    var firstButton = $('#number_box_month button:first');
-                    var lastButton = $('#number_box_month button:last');
-                    /*if (currentNum >= 10) {
-                        $('.profit_tips').text("已选择" + currentNum + "个月,建议“按年订阅”").show();
-                    } else {
-                        $('.profit_tips').hide();
-                    }*/
-                    // 如果为操作后的结果为1,则锁定减号按钮
-                    if (currentNum === data.numboxMin) {
-                        firstButton.attr('disabled', true)
-                    } else {
-                        firstButton.removeAttr('disabled')
-                    }
-                    // 如果为操作后的结果为12,则锁定加号按钮
-                    if (currentNum === data.numboxMax) {
-                        lastButton.attr('disabled', true)
-                    } else {
-                        lastButton.removeAttr('disabled')
-                    }
-                });
+          /* --------控制月份number_box的事件  点击加减号触发的事件------- */
+          $('#number_box_month').on('click', 'button', function (e) {
+            // 点击加减号让input radio选中
+            $('#monthly').prop('checked', true);
+            $('#yearly').prop('checked', false);
+            $('.number_box span').removeClass('active');
+            $('#number_box_month').addClass('active');
 
-                /* -------- 控制年份number_box的事件  点击1年 2年 3年触发的事件------- */
-                $('#number_box_year').on('click', 'span', function (e) {
-                    console.log(e.target.dataset.id);
-                    $('#number_box_month').removeClass('active');
-                    var id = e.target.dataset.id;
-                    //$('.profit_tips').hide();
-                    $(this).addClass('active').siblings().removeClass('active');
-                    $('#yearly').prop('checked', true);
-                    $("#monthly").prop('checked', false);
+            var $number = $('#number_box_month span.month_number');
+            var $monthlyInput = $('#monthly');
+            // 未整理的data数组,里面的值都是字符串
+            var preData = e.delegateTarget.dataset;
+            var currentNum = parseInt($number.text());
+            var data = {};
+            // 把字符串转换成数字
+            for (var i in preData) {
+              data[i] = preData[i] - 0
+            }
 
-                    // 渲染结果 保留一位小数
-                    //var result = (Number(id) * 58).toFixed(1);
-                    //$('.computed_price').html('¥' + result)
-                    purchase.timeSelect_tmp = [Number(id), 1]
-                    purchase.flushPrice(purchase.timeSelect_tmp, 2);
-                });
+            if (!$monthlyInput.prop('checked')) {
+              return
+            }
+            // 判断是点击的是+ 还是-
+            if ($(e.target).hasClass('add') || $(e.currentTarget).hasClass('add')) {
+              if (currentNum == 11) { //12个月自动跳转1年
+                $("#number_box_year .year_number:eq(0)").trigger("click");
+                return
+              }
+              // 点的+
+              // currentNum = currentNum >= 12 ? 12 : currentNum + 1;
+              currentNum = currentNum >= data.numboxMax ? data.numboxMax : (currentNum + data.numboxStep);
+            } else {
+              // 点的-
+              // currentNum = currentNum <= 1 ? 1 : currentNum - 1;
+              currentNum = currentNum <= data.numboxMin ? data.numboxMin : (currentNum - data.numboxStep);
+            }
+            $number.text(currentNum);
+            purchase.timeSelect_tmp = [Number(currentNum), 2];
+            purchase.flushPrice(purchase.timeSelect_tmp, 2);
+            //var price = (5.8 * currentNum).toFixed(1);
+            //$('.computed_price').html('¥' + price)
+            var firstButton = $('#number_box_month button:first');
+            var lastButton = $('#number_box_month button:last');
+            /*if (currentNum >= 10) {
+              $('.profit_tips').text("已选择" + currentNum + "个月,建议“按年订阅”").show();
+            } else {
+              $('.profit_tips').hide();
+            }*/
+            // 如果为操作后的结果为1,则锁定减号按钮
+            if (currentNum === data.numboxMin) {
+              firstButton.attr('disabled', true)
+            } else {
+              firstButton.removeAttr('disabled')
+            }
+            // 如果为操作后的结果为12,则锁定加号按钮
+            if (currentNum === data.numboxMax) {
+              lastButton.attr('disabled', true)
+            } else {
+              lastButton.removeAttr('disabled')
+            }
+          });
 
-                /* -------- 选择按月订阅  radio触发的事件------- */
-                $('#monthly').on('change', function (e) {
-                    var isChecked = $(this).is(':checked');
-                    var val = $('.month_number').text();
-                    /*if (val >= 10) {
-                        $('.profit_tips').show()
-                    }*/
-                    if (!isChecked) {
-                        $('#number_box_month button').attr('disabled', true)
-                    }
-                    //var result = (Number(val) * 5.8).toFixed(1);
-                    //$('.computed_price').html('¥' + result);
-                    purchase.timeSelect_tmp = [Number(val), 2];
-                    purchase.flushPrice(purchase.timeSelect_tmp, 2);
+          /* -------- 控制年份number_box的事件  点击1年 2年 3年触发的事件------- */
+          $('#number_box_year').on('click', 'span', function (e) {
+            console.log(e.target.dataset.id);
+            $('#number_box_month').removeClass('active');
+            var id = e.target.dataset.id;
+            //$('.profit_tips').hide();
+            $(this).addClass('active').siblings().removeClass('active');
+            $('#yearly').prop('checked', true);
+            $("#monthly").prop('checked', false);
 
-                });
-                /* -------- 选择按年订阅  radio触发的事件------- */
-                $('#yearly').on('change', function (e) {
-                    //$('.profit_tips').hide();
-                    // console.log($(this).is(':checked'))
-                    var isChecked = $(this).is(':checked');
-                    // 按年订阅默认选择1年
-                    var val = 1;
-                    //$('.computed_price').html('¥' + Number(val) * 58)
-                    if (isChecked) {
-                        $('#number_box_year span:eq(0)').addClass('active').siblings().removeClass('active')
-                    }
-                    purchase.timeSelect_tmp = [Number(val), 1];
-                    purchase.flushPrice(purchase.timeSelect_tmp, 2);
-                });
+            // 渲染结果 保留一位小数
+            //var result = (Number(id) * 58).toFixed(1);
+            //$('.computed_price').html('¥' + result)
+            purchase.timeSelect_tmp = [Number(id), 1]
+            purchase.flushPrice(purchase.timeSelect_tmp, 2);
+          });
 
-                // 确认订阅周期
-                $('#enter_period').on('click', function () {
-                    var val;
-                    $('input[name="time"]').each(function (i, v) {
-                        var isChecked = $(v).is(':checked');
-                        if ($(v).is(':checked') === true && $('.year_number').hasClass('active')) {
-                            val = $('.active').html();
-                            $('#time_cycle').hide(function () {
-                                $('.choose_time').val(val);
-                                var giveTime = val
-                                if (giveTime.indexOf('年') !== -1) {
-                                    giveTime = '1年'
-                                }
-                                $(".free-7day.give .info").text(giveTime)
-                                $('.show_time').text(val);
-                              // @NewYearMarketing 2021/1/25
-                              checkMonth(giveTime)
-                            });
-                            purchase.timeSelect_tmp = [parseInt(val[0]), 1]
-                        } else if ($(v).is(':checked') === true) {
-                            val = $('.month_number').html();
-                            $('#time_cycle').hide(function () {
-                                $('.choose_time').val(val + '个月');
-                                $('.show_time').text(val + '个月');
-                                $(".free-7day.give .info").text(val + '个月')
-                              // @NewYearMarketing 2021/1/25
-                              checkMonth(val + '个月')
-                            });
-                            purchase.timeSelect_tmp = [parseInt(val), 2]
-                        }
-                    });
-                    purchase.timeSelect = purchase.timeSelect_tmp;
-                    purchase.flushPrice(purchase.timeSelect, 1);
-                    sessionStorage.setItem("vipSubSelectTime", JSON.stringify(purchase.timeSelect));
-                });
-                $("input").bind("input propertychange change", function (event) {
-                    checkOk();
-                });
+          /* -------- 选择按月订阅  radio触发的事件------- */
+          $('#monthly').on('change', function (e) {
+            var isChecked = $(this).is(':checked');
+            var val = $('.month_number').text();
+            /*if (val >= 10) {
+              $('.profit_tips').show()
+            }*/
+            if (!isChecked) {
+              $('#number_box_month button').attr('disabled', true)
+            }
+            //var result = (Number(val) * 5.8).toFixed(1);
+            //$('.computed_price').html('¥' + result);
+            purchase.timeSelect_tmp = [Number(val), 2];
+            purchase.flushPrice(purchase.timeSelect_tmp, 2);
+          });
+          /* -------- 选择按年订阅  radio触发的事件------- */
+          $('#yearly').on('change', function (e) {
+            //$('.profit_tips').hide();
+            // console.log($(this).is(':checked'))
+            var isChecked = $(this).is(':checked');
+            // 按年订阅默认选择1年
+            var val = 1;
+            //$('.computed_price').html('¥' + Number(val) * 58)
+            if (isChecked) {
+              $('#number_box_year span:eq(0)').addClass('active').siblings().removeClass('active')
+            }
+            purchase.timeSelect_tmp = [Number(val), 1];
+            purchase.flushPrice(purchase.timeSelect_tmp, 2);
+          });
 
-                $('#payHandle').click(function () {
-                    $("#payHandle").attr("disabled", "disabled");
-                    //支付请求
-                    var area = purchase.areaSelect;
-                    var industry = purchase.industrySelect;
-                    if (area["全国"]) {
-                        area = {};
-                    }
-                    if (industry.length === 1 && industry[0] === "全部行业") {
-                        industry = [];
-                    }
-                    {{if not .T.isTrial}}
-                    //优惠码
-                    var activeCode = $('.coupon-picker .weui-input').val();
-                    // alert(activeCode)
-                    var activeCodes = "";
-                    if (activeCode.toLowerCase() === "jianyu360" && $('.coupon-code-tx .info').text() === "支付成功赠送30天订阅周期") {
-                        activeCodes = "jianyu360";
-                    }
-                    //付费用户
-                    var param = {
-                        "area": JSON.stringify(area),
-                        "industry": industry.join(","),
-                        "time": $(".info:eq(2)").val().trim(),
-                        "orderType":{{.T.orderType}},
-						            "activeCode": activeCodes,
-                        "disWord":getParam("disWord")//分销系统 口令
-                    };
-                    // alert(activeCodes)
-                    // @订单手机号-S
-                    if (OrderPhoneCheck.status) {
-                      param.order_phone = OrderPhoneCheck.phone
+          // 确认订阅周期
+          $('#enter_period').on('click', function () {
+            var val;
+            $('input[name="time"]').each(function (i, v) {
+                var isChecked = $(v).is(':checked');
+                if ($(v).is(':checked') === true && $('.year_number').hasClass('active')) {
+                  val = $('.active').html();
+                  $('#time_cycle').hide(function () {
+                    $('.choose_time').val(val);
+                    var giveTime = val
+                    if (giveTime.indexOf('年') !== -1) {
+                        giveTime = '1年'
                     }
-                    // @订单手机号-E
-                    $DoPost("/subscribepay/vipsubscribe/createOrder", param, function (r) {
-                        if (r.success) {
-                            try {
-                                clearSessionStorage()
-                                history.replaceState({}, '', '/jyapp/vipsubscribe/toOrderDetailPage?orderCode=' + r.data.code);
-                                window.location.href = "/jyapp/pay/checkout_subvip?orderCode=" + r.data.code + "&t=3&from=buy"
-                            } catch (e) {
-                                showToast(e)
-                            }
-                        }
-                        $("#payHandle").removeAttr("disabled")
-                    });
-
-                    {{else}}
-                    //试用用户
-                    $DoPost("/subscribepay/order/trialPay", {
-                        "area": JSON.stringify(area),
-                        "industry": industry.join(","),
-                        "order_phone": OrderPhoneCheck.phone
-                    }, function (r) {
-                        if (r.success) {
-                            clearSessionStorage();
-                            $("#payHandle").attr("disabled", "disabled");
-                            window.location.replace("/jyapp/subvip/paySuccess?orderCode=" + r.data.code);
-                        }
-                    });
-                    {{end}}
-                })
-
+                    $(".free-7day.give .info").text(giveTime)
+                    $('.show_time').text(val);
+                    // @NewYearMarketing 2021/1/25
+                    checkMonth(giveTime)
+                  });
+                  purchase.timeSelect_tmp = [parseInt(val[0]), 1]
+                } else if ($(v).is(':checked') === true) {
+                  val = $('.month_number').html();
+                  $('#time_cycle').hide(function () {
+                    $('.choose_time').val(val + '个月');
+                    $('.show_time').text(val + '个月');
+                    $(".free-7day.give .info").text(val + '个月')
+                    // @NewYearMarketing 2021/1/25
+                    checkMonth(val + '个月')
+                  });
+                  purchase.timeSelect_tmp = [parseInt(val), 2]
+                }
             });
+            purchase.timeSelect = purchase.timeSelect_tmp;
+            purchase.flushPrice(purchase.timeSelect, 1);
+            sessionStorage.setItem("vipSubSelectTime", JSON.stringify(purchase.timeSelect));
+          });
+          $("input").bind("input propertychange change", function (event) {
+            checkOk();
+          });
 
-            // 隐藏dialog选择框
-            function hideDialog() {
-                $('#pay_way').hide(200);
-                $('#time_cycle').hide(200);
-                $('.coupon-picker').hide()
-                $('.discount-details').hide()
-                $('.discount-button .icon-arrow').removeClass('up')
+          $('#payHandle').click(function () {
+            $("#payHandle").attr("disabled", "disabled");
+            //支付请求
+            var area = purchase.areaSelect;
+            var industry = purchase.industrySelect;
+            if (area["全国"]) {
+              area = {};
             }
-
-
-            function showToast(content) {
-                weui.toast(content, {
-                    duration: 2000,
-                    className: 'custom-toast',
-                });
+            if (industry.length === 1 && industry[0] === "全部行业") {
+              industry = [];
+            }
+            {{if not .T.isTrial}}
+            //优惠码
+            var activeCode = $('.coupon-picker .weui-input').val();
+            // alert(activeCode)
+            var activeCodes = "";
+            if (activeCode.toLowerCase() === "jianyu360" && $('.coupon-code-tx .info').text() === "支付成功赠送30天订阅周期") {
+              activeCodes = "jianyu360";
             }
+            //付费用户
+            var param = {
+              "area": JSON.stringify(area),
+              "industry": industry.join(","),
+              "time": $(".info:eq(2)").val().trim(),
+              "orderType":{{.T.orderType}},
+              "activeCode": activeCodes,
+              "disWord":getParam("disWord")//分销系统 口令
+            };
+            // alert(activeCodes)
+            // @订单手机号-S
+            if (OrderPhoneCheck.status) {
+              param.order_phone = OrderPhoneCheck.phone
+            }
+            // @订单手机号-E
+            $DoPost("/subscribepay/vipsubscribe/createOrder", param, function (r) {
+              if (r.success) {
+                try {
+                  clearSessionStorage()
+                  history.replaceState({}, '', '/jyapp/vipsubscribe/toOrderDetailPage?orderCode=' + r.data.code);
+                  window.location.href = "/jyapp/pay/checkout_subvip?orderCode=" + r.data.code + "&t=3&from=buy"
+                } catch (e) {
+                  showToast(e)
+                }
+              }
+              $("#payHandle").removeAttr("disabled")
+            });
 
-            //app支付 公共方法 结束
+            {{else}}
+            //试用用户
+            $DoPost("/subscribepay/order/trialPay", {
+              "area": JSON.stringify(area),
+              "industry": industry.join(","),
+              "order_phone": OrderPhoneCheck.phone
+            }, function (r) {
+              if (r.success) {
+                clearSessionStorage();
+                $("#payHandle").attr("disabled", "disabled");
+                window.location.replace("/jyapp/subvip/paySuccess?orderCode=" + r.data.code);
+              }
+            });
+            {{end}}
+          })
+        });
 
+        // 隐藏dialog选择框
+        function hideDialog() {
+          $('#pay_way').hide(200);
+          $('#time_cycle').hide(200);
+          $('.coupon-picker').hide()
+          $('.discount-details').hide()
+          $('.discount-button .icon-arrow').removeClass('up')
+        }
 
-            //是否可点击
-            function checkOk() {
-                var area = $(".info:eq(0)").val().trim();
-                var industry = $(".info:eq(1)").val().trim();
-                var checked = $('#buy').prop('checked');
-                if (area != '' && industry != '' && checked == true && OrderPhoneCheck.status) {
-                    $("#payHandle").removeAttr('disabled');
-                } else {
-                    $("#payHandle").attr({
-                        'disabled': 'true'
-                    });
-                }
-                if (checked) {
-                    if (area === '') {
-                        $(".area_warn").css("display", "block");
-                    }
-                    if (industry === "") {
-                        $(".industry_warn").css("display", "block");
-                    }
-                }
+        function showToast(content) {
+          weui.toast(content, {
+            duration: 2000,
+            className: 'custom-toast',
+          });
+        }
 
-                sessionStorage.setItem("vipSub_read", checked)
+        //app支付 公共方法 结束
 
+        //是否可点击
+        function checkOk() {
+          var area = $(".info:eq(0)").val().trim();
+          var industry = $(".info:eq(1)").val().trim();
+          var checked = $('#buy').prop('checked');
+          if (area != '' && industry != '' && checked == true && OrderPhoneCheck.status) {
+            $("#payHandle").removeAttr('disabled');
+          } else {
+            $("#payHandle").attr({
+              'disabled': 'true'
+            });
+          }
+          if (checked) {
+            if (area === '') {
+              $(".area_warn").css("display", "block");
             }
+            if (industry === "") {
+              $(".industry_warn").css("display", "block");
+            }
+          }
+          sessionStorage.setItem("vipSub_read", checked)
+        }
 
-            function clearSessionStorage() {
-                sessionStorage.removeItem("vipSubSelectArea");
-                sessionStorage.removeItem("vipSubSelectIndustry");
-                sessionStorage.removeItem("vipSubSelectTime");
-                sessionStorage.removeItem("vipSub_read");
-                sessionStorage.removeItem("historypushDataCache");
-                sessionStorage.removeItem("payWay");
-                sessionStorage.To_introducePage = 2;
-                //订阅首页
-                sessionStorage.removeItem("sub_vip_state");
-                sessionStorage.removeItem("vip_index_read");
-                sessionStorage.removeItem("vip_change_time");
+        function clearSessionStorage() {
+          sessionStorage.removeItem("vipSubSelectArea");
+          sessionStorage.removeItem("vipSubSelectIndustry");
+          sessionStorage.removeItem("vipSubSelectTime");
+          sessionStorage.removeItem("vipSub_read");
+          sessionStorage.removeItem("historypushDataCache");
+          sessionStorage.removeItem("payWay");
+          sessionStorage.To_introducePage = 2;
+          //订阅首页
+          sessionStorage.removeItem("sub_vip_state");
+          sessionStorage.removeItem("vip_index_read");
+          sessionStorage.removeItem("vip_change_time");
 
-                sessionStorage.removeItem("pay_read_cache");
-                sessionStorage.removeItem("liveActiveCode_purchase");
-            }
+          sessionStorage.removeItem("pay_read_cache");
+          sessionStorage.removeItem("liveActiveCode_purchase");
+        }
 
-            /******* 获取url参数(正则)********/
-            function getParam(name) {
-                var search = document.location.search;
-                // alert(search);
-                var pattern = new RegExp("[?&]" + name + "\=([^&]+)", "g");
-                var matcher = pattern.exec(search);
-                var items = null;
-                if (null != matcher) {
-                    try {
-                        items = decodeURIComponent(decodeURIComponent(matcher[1]));
-                    } catch (e) {
-                        try {
-                            items = decodeURIComponent(matcher[1]);
-                        } catch (e) {
-                            items = matcher[1];
-                        }
-                    }
-                }
-                return items;
-            };
-        </script>
+        /******* 获取url参数(正则)********/
+        function getParam(name) {
+          var search = document.location.search;
+          // alert(search);
+          var pattern = new RegExp("[?&]" + name + "\=([^&]+)", "g");
+          var matcher = pattern.exec(search);
+          var items = null;
+          if (null != matcher) {
+            try {
+              items = decodeURIComponent(decodeURIComponent(matcher[1]));
+            } catch (e) {
+              try {
+                items = decodeURIComponent(matcher[1]);
+              } catch (e) {
+                items = matcher[1];
+              }
+            }
+          }
+          return items;
+        };
+      </script>
     </div>
-</div>
-{{include "/common/baiducc.html"}}
+  </div>
+  {{include "/common/baiducc.html"}}
 </body>
 
 </html>

+ 10 - 4
src/jfw/modules/app/src/web/templates/vipsubscribe/vip_renew.html

@@ -18,7 +18,7 @@
     <link rel="stylesheet" type="text/css" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/css/vip_renew.css?v={{Msg "seo" "version"}}'>
     <link rel="stylesheet" type="text/css" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/layout.css'/>
     <link rel="stylesheet" type="text/css" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/font.css?v={{Msg "seo" "version"}}'/>
-
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
     <style>
         .vip-header {
             display: none;
@@ -146,7 +146,11 @@
                 </li>
             </ul>
         </div>
-        <div class="vip-footer renew">
+        <!-- vue组件 -->
+        <div class="vip-footer" id="coupon-vue">
+          <pay-order-template ref="couponRef" :config="$data" @update="updateS"></pay-order-template>
+        </div>
+        <div class="vip-footer renew" style="display: none;">
             <div class="footer-preview-container">
                 <div class="price-preview">
                     <span class="preview-label">合计:</span>
@@ -409,7 +413,9 @@
     <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
     <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/UpgradePrice.js?v={{Msg "seo" "version"}}"></script>
     <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/common.js?v={{Msg "seo" "mod_version"}}"></script>
-	{{include "/common/iosJS.html"}}
+  {{include "/common/iosJS.html"}}
+    <script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
+    <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
 	<script>
       $(window).bind("pageshow", function (event) {
 	        if (event.originalEvent.persisted) {
@@ -470,7 +476,7 @@
         }
       }
 	</script>
-	<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/vip_renew.js?v={{Msg "seo" "version"}}1"></script>
+	<script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/vipsubscribe/js/vip_renew.js?v={{Msg "seo" "version"}}"></script>
 </div>
 {{include "/common/baiducc.html"}}
 </body>

+ 31 - 0
src/web/staticres/css/land-page-coupon.css

@@ -0,0 +1,31 @@
+#land-page-coupon.coupon-tips{
+  position: absolute;
+  top: -0.4rem;
+  right: .96rem;
+  display: flex;
+  flex-direction: column;
+}
+#land-page-coupon .coupon-text-area{
+  display: flex;
+  align-items: center;
+  padding: 0 .32rem;
+  height: .68rem;
+  background: linear-gradient(to right, #FFA674 0%, #F01212 100%);
+  border-radius: 4px;
+  font-size: .24rem;
+  color: #fff;
+  z-index: 99;
+}
+#land-page-coupon .coupon-arrow-area{
+  display: flex;
+  justify-content: flex-end;
+  margin-top: -1px;
+}
+#land-page-coupon .coupon-arrow-icon{
+  display: inline-block;
+  width: .2rem;
+  height: .12rem;
+  margin-right: .18rem;
+  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAPCAYAAADzun+cAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKESURBVHgBlZW9jhNBDIDtmcmdIqCIED1vwCsQnoB0lIQHgEuDhBDSpjsaFFqqhQLRkSuQqJBo0IkCbYUQBczVCN1W/FzYGNvzswuX3OUmkTw79vizPZ5dPLx0cWacvY3OAjmLLAl7FqFnAa0l6BmeO0BnQHTggo4loNg4E9bis0qx63XWrAH1x88iyZqpGXz7voPGvAXDAOQ/C0AgmQOzVMpAA4RigMRPxGZEuo7BRvfplHiOaY7Bp0pZYNW8d+dJYWRv0/s1IiAvUEKFiRkJTEBhU2AkLUEKMupAIAKVRVXrhhBcULLmK8JiLEsKHvi6XuLWkKeHIVIk0qgjLAHEWoIzIXTABA6pUQbFMuUKIgv0v/8sr+GkrDM4wL1vjLml2ZicooDYYYw6pNFOg29KAAymHDRoeeXIwl6ExtCof6/0iZfBCv/s5ywKbM9aBsXU2+w75xkzjFmzoTWInUrEQHe27pZVl/UPWMaFj1+mLMq8MZQ1ZJmCiQGQnKcJyhakKJKyq5lZFvb+s8f/c46BZSzgaMJOKoVBhmJqotR8bfVz81EKVquBuGcfPJ+uYqwEDypfL0wz4rM+EIvYaNGpZkiEbXNht9QxEP4dOPwxhjXDrFMM9j95vukjdlIn5+EaqeN8jvka5eumNn7RwBCLeX1msIzz76qKvU5SG6dG0usWE5ZqLLF7taBu4GjY333hT/J9Iljhbz6UXN5p520EqXHSueZqhGa62d+d+9P8ngqWce71+4KzLePLIL6h8pWJ3SeDCvfw5d4mPjcCK/zV/pjrO4uZ62sxXCeF11zyyfaj+XRTfwhnHD9vXL3MX5fr1tkrsMVfGuOq7b57irP1jbRq/AXAacGublEdIQAAAABJRU5ErkJggg==) no-repeat center center;
+  background-size: 100% 100%;
+}

文件差异内容过多而无法显示
+ 258 - 0
src/web/staticres/css/pay-order-template.css


+ 1 - 2
src/web/staticres/frontRouter/wx/coupon/css/pay-order-template.css

@@ -1,6 +1,5 @@
 .order-template{
-  
-  
+  width: 100%;
 }
 .order-template .order-template-mask{
   position: fixed;

+ 1 - 1
src/web/staticres/frontRouter/wx/coupon/css/selectProduct.css

@@ -63,7 +63,7 @@
   background-image: url(/frontRouter/wx/coupon/image/product/dahuiyuan1.png);
 }
 .big-vip2-icon{
-  background-image: url(/frontRouter/wx/coupon/image/product/dahuiyuan1.png);
+  background-image: url(/frontRouter/wx/coupon/image/product/dahuiyuan2.png);
 }
 .big-vip3-icon{
   background-image: url(/frontRouter/wx/coupon/image/product/dahuiyuan3.png);

+ 27 - 25
src/web/staticres/frontRouter/wx/coupon/js/coupon-template.js

@@ -10,8 +10,7 @@ Vue.component('coupon-list', {
   data: function () {
     return {
       defaultTitle: '使用说明: 1.不与其他活动优惠同时享受,在线支付专享。 2.支付时可抵扣现金,不可拆分、不可叠加、不可找零。',
-      activeTitle: '使用说明:<br> 1.不与其他活动优惠同时享受,在线支付专享。<br> 2.支付时可抵扣现金,不可拆分、不可叠加、不可找零。<br> 适用产品:<br>',
-      str: ''
+      activeTitle: '使用说明:<br> 1.不与其他活动优惠同时享受,在线支付专享。<br> 2.支付时可抵扣现金,不可拆分、不可叠加、不可找零。<br> 适用产品:<br>'
     }
   },
   template: `
@@ -19,25 +18,25 @@ Vue.component('coupon-list', {
     <div class="card" v-for="(item,index) in couponList" :key="item.lotteryId">
     <div class="card-content">
       <div :class="['type', mold == 4 ? 'type-active' : '']">@@item.lotteryAttribute@@</div>
-      <div class="card-content-text">
+      <label class="card-content-text">
         <div class="card-text-top">
           <div>
-            <span :class="['price', mold == 3 || disabled ? 'gray' : '']">¥<strong>@@item.reduce@@</strong></span>
-            <span class="usable" :class="[ mold == 3 || disabled ? 'gray gray-bg' : '']">满@@item.full@@元可用</span>
+            <span :class="['price', mold == 2 || disabled ? 'gray' : '']">¥<strong>@@item.reduce@@</strong></span>
+            <span class="usable" :class="[ mold == 2 || disabled ? 'gray gray-bg' : '']">满@@item.full@@元可用</span>
           </div>
           <div class="use-time">@@item.lotteryBeginDate@@ - @@item.lotteryEndDate@@</div>
         </div>
         <div class="use-btn" v-if="mold == 4 && !isSelect" @click="toUseFn(item.lotteryId)">去使用</div>
-        <input @click="changeRadio(item.lotteryId)" v-if="isSelect && !disabled" class="select-radio" type="radio" name="coupon" />
-      </div>
-      <div class="use-range ellipsis-2" :class="[ mold == 3 ? 'gray' : '']">
+        <input @click="changeRadio(item)" :checked="item.isChecked" v-if="isSelect && !disabled" :class="[item.isChecked ?'select-radio-checked' : 'select-radio']" type="radio" name="coupon" />
+      </label>
+      <div class="use-range ellipsis-2" :class="[ mold == 2 || disabled ? 'gray' : '']">
         适用于: 
-        <span>@@str@@</span>  
+        <span>@@item.str@@</span>  
       </div>
-      <div class="outer-race red-race" v-if="mold == 2">
+      <div class="outer-race red-race" v-if="mold == 3">
         <div class="inner-race red-race">已使用</div>
       </div>
-      <div class="outer-race gray-race"  v-if="mold == 3">
+      <div class="outer-race gray-race"  v-if="mold == 2">
         <div class="inner-race gray-race">已失效</div>
       </div>
       <div class="cro_left_bottom"></div>
@@ -53,14 +52,14 @@ Vue.component('coupon-list', {
         is-link 
         @click="switchEvent(index)" >
         <template #title>
-          <span class="custom-title" v-html="item.isOpen ? (activeTitle + str) : defaultTitle "></span>
+          <span class="custom-title" v-html="item.isOpen ? (activeTitle + item.str) : defaultTitle "></span>
         </template>
       </van-cell>
     </div>
   </div>
   `,
   created() {
-    this.getTextByProducts(this.couponList, this)
+    this.getTextByProducts(this.couponList)
   },
   methods: {
     switchEvent: function(index) {
@@ -69,20 +68,23 @@ Vue.component('coupon-list', {
     toUseFn: function (id) {
       location.href = '/weixin/frontPage/coupon/free/selectProduct?couponId=' + id;
     },
-    changeRadio: function (id){
-      console.log(id)
-      this.$emit('child-select-coupon', id)
+    changeRadio: function (item){
+      this.couponList.forEach(function(v){
+        v.isChecked = false
+      })
+      item.isChecked = true
+      this.$emit('child-select-coupon', item)
     },
-    getTextByProducts(arr, that) {
-      arr.map(function(v){
-        v.products.map(function(item){
-          that.str += item.name + "、"
-        })
+    getTextByProducts: function (arr) {
+      arr.forEach(function(s) {
+        var newArr = [];
+        if(s.products) {
+          s.products.forEach(function(v) {
+            newArr.push(v.name)
+          })
+          s.str = newArr.join('、')
+        }
       })
-      //去掉最后一个符号
-      if (that.str.length > 0) {
-        that.str = that.str.substr(0,that.str.length - 1);
-      }
     }
   }
 })

+ 55 - 0
src/web/staticres/js/land-page-coupon.js

@@ -0,0 +1,55 @@
+// 获取产品id
+function getProductId(type) {
+  var type = type.indexOf('vip') > -1 ? 'vip' : type
+  var id;
+  switch (type) {
+    case 'vip':
+      id = 101
+      break;
+    case 'dataExport':
+      id = 102
+      break;
+    case 'bidFile':
+      id = 103
+      break;
+    case 'big':
+      id = 104
+      break;
+    case 'big-7day':
+      id = 1001
+      break;
+    case 'big-sj':
+      id = 1002
+      break;
+    case 'big-zh':
+      id = 1003
+      break;
+    case 'big-zj':
+      id = 1004
+      break;
+    case 'jyPoints':
+      id = 105
+      break;
+  }
+  return id;
+}
+// 获取优惠券
+function getCoupon(type,callback) {
+  $.ajax({
+    type:'POST',
+    url:'/jyCoupon/optimalCoupon',
+    data:{
+      pId: getProductId(type),
+      price: 0,
+      priceBool: true
+    },
+    success:function(res) {
+      if (res.data) {
+        return callback && callback(res.data)
+      }
+    },
+    error:function(err) {
+      console.log(err)
+    }
+  })
+}

+ 308 - 0
src/web/staticres/js/pay-order-template.js

@@ -0,0 +1,308 @@
+var couponTem = {
+  delimiters: ['@@', '@@'],
+  props: {
+    config: {
+      type: Object,
+      default: function() {
+        return {
+          initPrice: Number, // 原价
+          disPrice: Number, // 折扣价(仅数据导出)
+          // once
+          type: String,
+          checkboxStatus: Boolean,
+          buttons: {
+            preview: Function,
+            submit: Function,
+            cancel:Function
+          },
+          links: [
+            {
+              text: String,
+              url: String,
+              event: Function
+            }
+          ],
+          jyPoints: Number || String,
+          showJyPoint: Boolean
+        }
+      }
+    }
+  },
+  data: function () {
+    return {
+      arrowTurn: false,
+      mask: false,
+      isShowDetail: false,
+      submitStatus:true,
+      coupon: {
+        list: [],
+        type: '满减券',
+        value: 0,
+        checkedId: ''
+      },
+      btnText: this.config.type == 'vip-update' ? '立即升级':'提交订单'
+    }
+  },
+  template: `
+    <div class="order-template">
+      <div v-show="mask" class="order-template-mask"></div>
+      <div class="order-template-main" :style="{borderRadius : isShowDetail ? '8px 8px 0 0' : '0'}">
+        <div v-show="isShowDetail" class="order-detail">
+          <div class="order-detail-title">
+            <span class="detail-title-label">优惠明细</span>
+            <span @click="closeDetail" class="icon-close"></span>
+          </div>
+          <div>
+            <p class="detail-item">
+              <span class="detail-item-label">原价</span>
+              <span class="detail-item-value">¥@@formatMoney(config.initPrice)@@</span>
+            </p>
+            <p class="detail-item" v-if="config.type == 'dataExport'">
+              <span class="detail-item-label">折扣价</span>
+              <span class="detail-item-value">¥@@formatMoney(config.disPrice)@@</span>
+            </p>
+            <p class="detail-item">
+              <span class="detail-item-label">优惠券</span>
+              <span class="detail-item-value red-value">-¥@@coupon.value@@</span>
+            </p>
+            <p class="detail-item">
+              <span class="detail-item-label">实付</span>
+              <span class="detail-item-value red-value">¥@@formatMoney(realPrice)@@</span>
+            </p>
+          </div>
+        </div>
+        <div v-show="!isShowDetail" class="order-coupon">
+          <div class="coupon-label">优惠券</div>
+          <div class="coupon-value" @click="selectCoupon">
+            <div class="coupon-value-box" v-if="coupon.list && coupon.list.length > 0">
+              <span class="label-text">已选</span>
+              <span class="value-text">¥@@coupon.value@@ <em class="coupon-type-tip">@@coupon.type@@</em> </span>
+            </div>
+            <div class="label-text" v-else>暂无可用优惠券</div> 
+            <i class="order__right__icon"></i>
+          </div>
+        </div>
+        <div class="order-handle">
+          <div class="handle-price">
+            <div class="points-tip" v-if="config.showJyPoint">
+              <em class="points-triangle"></em>
+              <i class="points-icon"></i>
+              <span>@@config.jyPoints@@</span>
+            </div> 
+            <div class="price-info">
+              <span class="price-info-label">实付:</span>
+              <span class="price-info-value">¥<em>@@formatMoney(realPrice)@@</em></span>
+            </div>
+            <div class="sale-info">
+              <span class="sale-info-label" @click="openDetail">优惠明细 <i class="arrow__up__down" :class="[arrowTurn ? 'arrow__turn':'']"></i></span>
+              <span class="original-price">原价:<em class="line-through">¥@@formatMoney(config.initPrice)@@</em></span>
+            </div> 
+          </div>
+          <div class="handle-btn">
+            <div v-if="config.type == 'dataExport'" class="btn-item btn-default" @click="previewFn">预览数据</div>
+            <div v-if="config.type == 'vip-update'" class="btn-item btn-default" @click="cancelFn">取&nbsp;&nbsp;&nbsp;&nbsp;消</div>
+            <button type="button" class="btn-item btn-primary" :disabled="submitStatus" @click="submitFn">@@btnText@@</button> 
+          </div>
+        </div>
+        <div class="order-service">
+          <input :checked="config.checkboxStatus" @click="chooseCheckbox" type="checkbox" id="service-checkbox" :class="[config.checkboxStatus ? 'checkbox-checked':'service-checkbox']" />
+          <div class="service-content"> 
+            <label for="service-checkbox">我已阅读,理解并接受</label>
+            <a v-for="s in config.links" @click="toLinks(s)" class="service-html">@@s.text@@</a>
+          </div>
+        </div>
+      </div>
+    </div>  
+  `,
+  mounted() {
+    this.$emit('mounted')
+  },
+  computed: {
+    realPrice: function () {
+      if (this.config.type === 'dataExport') {
+        return this.config.disPrice - this.coupon.value
+      } else {
+        return this.config.initPrice - this.coupon.value
+      } 
+    }
+  },
+  methods: {
+    // 展开明细
+    openDetail: function () {
+      this.arrowTurn = !this.arrowTurn
+      this.mask = !this.mask
+      this.isShowDetail = !this.isShowDetail
+    },
+    // 关闭明细
+    closeDetail: function () {
+      this.mask = false
+      this.arrowTurn = false
+      this.isShowDetail = false
+    },
+    // 跳转选择优惠券
+    selectCoupon: function () {
+      var pId = this.getProductId();
+      var price = this.config.type === 'dataExport' ? this.config.disPrice : this.config.initPrice;
+      var checkedId = this.coupon.checkedId;
+      if(this.coupon.list.length > 0) {
+        location.href = '/jyapp/frontPage/coupon/free/selectCoupon?pId=' + pId + '&price=' + price + '&checkedId=' + checkedId;
+        // 通知父组件,父组件可通过save事件进行存储数据等操作
+        this.$emit('save')
+      }
+    },
+    // checkbox事件
+    chooseCheckbox:function() {
+      this.config.checkboxStatus = !this.config.checkboxStatus
+      // 通知父组件
+      this.$emit('update', {
+        check: this.config.checkboxStatus,
+        callback: (s) => {
+          this.submitStatus = !(this.config.checkboxStatus && s)
+        }
+      })
+    },
+    // 阅读协议点击事件
+    toLinks: function(link) {
+      if (link.url) {
+        location.href = link.url
+      } else {
+        link.event()
+      }
+    },
+    // 预览数据
+    previewFn: function () {
+      this.config.buttons.preview()
+    },
+    // 取消按钮(vip升级适用)
+    cancelFn: function () {
+      this.config.buttons.cancel()
+    },
+    // 提交订单事件
+    submitFn: function () {
+      this.config.buttons.submit()
+    },
+    // 获取产品id
+    getProductId: function() {
+      var type = this.config.type.indexOf('vip') > -1 ? 'vip' : this.config.type
+      var id;
+      switch (type) {
+        case 'vip':
+          id = 101
+          break;
+        case 'dataExport':
+          id = 102
+          break;
+        case 'bidFile':
+          id = 103
+          break;
+        case 'big':
+          id = 104
+          break;
+        case 'big-7day':
+          id = 1001
+          break;
+        case 'big-sj':
+          id = 1002
+          break;
+        case 'big-zh':
+          id = 1003
+          break;
+        case 'big-zj':
+          id = 1004
+          break;
+        case 'jyPoints':
+          id = 105
+          break;
+      }
+      return id;
+    },
+    // 获取优惠券
+    getCoupon: function () {
+      var _this = this;
+      this.coupon.list = []
+      this.coupon.type = ''
+      this.coupon.value = 0
+      this.coupon.checkedId = ''
+      var couponStorage = JSON.parse(sessionStorage.getItem('$select-coupon')) || null;
+      var arr = [];
+      if (couponStorage) {
+        arr.push(couponStorage)
+        _this.coupon.list = arr;
+        _this.coupon.value = couponStorage.reduce;
+        _this.coupon.type = couponStorage.lotteryAttribute;
+        sessionStorage.removeItem('$select-coupon')
+        _this.$emit('update-coupon',_this.coupon)
+      } else {
+        $.ajax({
+          type:'POST',
+          url:'/jyCoupon/optimalCoupon',
+          data:{
+            pId: _this.getProductId(),
+            // 单位:分  数据导出有折扣价  应传折扣后价格 其他产品为现价
+            price: _this.config.type == 'dataExport' ? _this.config.disPrice*100 : _this.config.initPrice*100 
+          },
+          success:function(res) {
+            if (res.data) {
+              if (res.data.list && res.data.list.length > 0) {
+                res.data.list.forEach(function(v){
+                  if (v.userLotteryId == res.data.select) {
+                    _this.coupon.value = v.reduce;
+                    _this.coupon.type = v.lotteryAttribute;
+                    _this.coupon.checkedId = v.userLotteryId
+                  }
+                })
+                _this.coupon.list = res.data.list;
+                _this.$emit('update-coupon',_this.coupon)
+              } else {
+                console.log('没有优惠券')
+              }
+            }
+          },
+          error:function(err) {
+            console.log(err)
+          }
+        })
+      }
+    },
+    // 金额转换加逗号
+    formatMoney: function (s, n) {
+      if (n === undefined) {
+        n = -1
+      } else {
+        n = n > 0 && n <= 20 ? n : 2;
+      }
+      var intS = parseInt(s)
+      var point = '.'
+      var left;
+      var right;
+      s = parseFloat((s + '').replace(/[^\d\.-]/g, ''))
+      // 没传n,默认(如果为整数,则不保留小数。如果为浮点数,则保留两位小数)
+      if (n === -1) {
+        if (s === intS) {
+            n = 0
+            right = ''
+            point = ''
+        } else {
+            n = 2
+            s = s.toFixed(n);
+            right = s.split('.')[1];
+        }
+        s = s + ''
+        left = s.split('.')[0].split('').reverse();
+      } else {
+        s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + '';
+        left = s.split('.')[0].split('').reverse();
+        right = s.split('.')[1];
+      }
+      t = '';
+      for (i = 0; i < left.length; i++) {
+        t += left[i] + ((i + 1) % 3 == 0 && (i + 1) != left.length ? ',' : '');
+      }
+      var money = t.split('').reverse().join('') + point + right;
+      return money;
+    }
+  }
+}
+if (typeof Vue !== 'undefined') {
+  Vue.component('pay-order-template', couponTem)
+}

+ 4 - 0
src/web/staticres/me/css/mine-icons.css

@@ -129,4 +129,8 @@
 /* /jyapp/me/images/my_docs.png */
 .icon-docs {
   background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANfSURBVHgB7ZjNThNRFMfPmQ5DiZtiTfyKSX2DBlQa2AxvoEtXDAQTTDStT0B9Aoe4EIPR8gTAE9AFJrjQ1CegC6JYP5iNSEvnHu+UDum003Lnoy0k80uazsy9p/P/d86de+4FiIiIiBgmCB5ZXHqmIsayDCANIYEIBhKUTWJb71dfFzzFinbUcrmEXKUNfqhCfynWR/FRQdcNkc4SCDJSo23ov3gLtflHCSFkYGEppxGFlzICqAtLzzWRjrJIJwlpznEBoQQMX/DgMoSAaUKCZPoALeNKQsm6Z+G8WCED0JY6dcZzdFUvQ4jwMTbLU+ew5ZLQExceA62ELb7xm52DNiES58vARUI0hbqiPcmlZZleEUDKS1zj3X+C82tregkCENjAiEwblnjPMyIP4gPXejWPQwACpxAJ5mq/6GkgfS+jTk7NbPfqwwBfgl8IV3o183vvTdyf1nr1wR7BZzPvjZu3IJlMgqKMNtrevVlxxFllRvzY25M4joPR/uZZfJol69s061CpVODg+7dmC22aY8p8qVjsKC9cx8BEZnqZ54Zqn1s/9Of3L7iavNYw0k5TiFDt0gtb+M/KD35strTgQ+mo9pUf5NtjXJ/A5NT0Hm9KubUpigLVajXPJLZe2t0tQwikVTXBBWZlWc47hTswPn/62DHguxiYITifMhEVghixhSNgjis5NwW5gQ69QgYIqMxvkgJ3PBsREc6LRwPb2nwbMNG8K4OsMWJzQYyICpckXKnHZT327+QwFAN2YDqTSfkx4lW4/bbppsO3ARtRI/xT5IEGF6d5ES6qw8JXKdH8Z/PcSKGHEetcayjA7sLNMVn/4vJ+FyVQLSRoxEFYwm0CF3MWIkbCFm4TigGbMyOqqseOTJXAPF1V8S0TdkXZDFO4TagGbJqDcbP56SuXfkUWGRg2kYFhI2TAqmVgwKTTqv99Iat8bj2X/54sw4CR4rWs4wKB6/aL+zyAsM4DzkSTBLnJBzMaIYU+EbnenjDB7+94AoRs3a2vqwF2rOjSaM1ZDvBqkp8PJpXaij9eEJYZkuuk6JpCpVLRYMhm21NpGJyKN2e7LZJi3QIP9veN63dub0kkjTd23hDiMEBOl5T0lo0pj0s7Owfd+gnvCGb4IgYGyG5IOx4REREXnP/2G7L/stZoqgAAAABJRU5ErkJggg==);
+}
+/* /jyapp/me/images/my_coupon.png */
+.icon-coupon {
+  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJZSURBVHgB7ZhdbtNAEMdnNi1J34KEGvfNEp+PzQ3ICYALgCpxgPQELSeI8o4UwQVIT9DeoHlELUh+w8kLfiN2qYddFap41vVatF677f6e4s0kM3/P7HjWAA6Hw+G4z2Deoue98AnOJ0S4jQhdqBuCKWKyG4ZBwL/SBKjgU0qPGxH4KggRUtLnIgS3k8GPGhe8gqBLsD7hy5oAGfxraCqI23xpzfSbeXiCUCM97xldXpBeGQJuOU5A3Rj3wE3z7u17Wr3+9PnjtfaYMQO9reejbte33laVz97W05HJzlxCRMP2xvqhTRHKl/IJhEOTbbk9IEeK9kZ7Dywhg99TPsvYagJU36f0/I38GGS+kJnwvCcvoWLUKJNz5wOEdBAvk4fcPjcDi8X3qTTuAxMhh7vKn9IppDzTgYolDL8dRVEQcfsrS0gZS9U7mUXEV1A1BJnSoRR28wL/R+EeWC5/z9iSDxUjZ7GMgMXiZFpkXyigSLktTN2vUMDm5uNszRPMoHIwWL3qdNYKu9GVApRyFK3Mg4TQggBMDzI+QUyKsqAJUMaPZLtsdx4cA6t5AckHqBgk4jXvq1i0ariMiSGNf7ZAHALfsETjvDPpTaPapVQxZsu+rIYvmbPBX8o9iZFmcXy2D5aIf53tU8n9VmYWGss/HNjsSMpXEieDnExoGAXM56fDOtqp8jn/cWoc5qyfB647/3PckbJu7t6ZWLavaPXNXF7vbRI5b+bIwrzznxAc8CVdALR2VBagYVxURqK1VU1AGH4NBIq+VDKFBnBxM+lIoP5m2uFwOByOP4x73mRKPn1RAAAAAElFTkSuQmCC);
 }

+ 128 - 0
src/web/staticres/vipsubscribe/js/vip_index_new.js

@@ -60,6 +60,133 @@ function getNewYearMarketing () {
 });*/
 
 $(function () {
+    /* vue 代码 start 提交订单 */
+  var coupon = new Vue({ 
+    el: '#coupon-vue',
+    data: function () {
+      return {
+        type: 'vip-update',
+        initPrice: 0, // 原价
+        realPrice: 0, // 实付价
+        checkboxStatus: false, // checkbox状态
+        submitStatus: true,  // 提交按钮状态
+        links: [
+          {
+            text: '《剑鱼标讯线上购买与服务条款》',
+            url: '/front/staticPage/wx-serviceterms.html',
+            event: this.readEvent
+          }
+        ],
+        buttons: {
+          submit: this.submitOrder,
+          cancel: this.cancelEvent
+        },
+      }
+    },
+    mounted () {
+      this.init()
+    }, 
+    methods: {
+      // 更新价格相关
+      updatePrice: function (before) {
+        console.log( '原价:' + before)
+        this.initPrice = before;
+        // 调用子组件查询最优卡券
+        this.$refs.couponRef.getCoupon();
+      },
+      // 初始化及回显相关
+      init: function () {
+        if (sessionStorage.getItem("vip_index_read") === "true") {
+          this.checkboxStatus = true
+          this.$refs.couponRef.submitStatus = false
+        } else {
+          this.checkboxStatus = false
+          this.$refs.couponRef.submitStatus = true
+        }
+      },
+      // 勾选阅读协议
+      updateS: function(data) {
+        data.callback(this.checkSubmitStatus(data.check))
+      },
+      // 校验checkbox
+      checkSubmitStatus: function (checkStatus) {
+        if(checkStatus) {
+          $('.checkbox').addClass("checked");
+        } else {
+          $('.checkbox').removeClass("checked");
+        }
+        $('.vip-footer.upgrade .confirm').prop('disabled', !checkStatus);
+        sessionStorage.setItem("vip_index_read", checkStatus ? true : false);
+        return sessionStorage.getItem("vip_index_read") == 'true';
+      },
+      // 阅读协议点击事件
+      readEvent: function () {},
+      // 点击优惠券跳转存储当前页面数据
+      savePageData: function () {
+        sessionStorage.setItem('index_read_cache', '0');
+      },
+      cancelEvent: function() {
+        $('.weui-mask').trigger('click')
+        window.history.back();
+      },
+      // 订单提交事件
+      submitOrder: function () {
+        this.$refs.couponRef.submitStatus = true
+        $('.vip-footer .button-r.confirm').trigger('click')
+        var submited = false;
+        var noshow = false;
+        if (submited) {
+          return
+        }
+        submited = true;
+        setTimeout(function () {
+          submited = false;
+        }, 1000);
+        weui.loading()
+        $DoPost('/subscribepay/vipsubscribe/saveChange', {
+          "area": reqData.area["全国"] ? '{}' : JSON.stringify(reqData.area),
+          "industry": reqData.industry.join(","),
+          "time": selectTime,
+          "price": parseInt((submitPrice).toFixed(0))
+        }, function (r) {
+          if (r.success) {
+            if (r.data.needPay) {
+              weui.loading().hide()
+              //创建支付订单
+              clearSessionStorage()
+              history.replaceState({"flag": "pay"}, '', '/jyapp/vipsubscribe/toOrderDetailPage?orderCode=' + r.data.code);
+              var nextHref = "/jyapp/pay/checkout_subvip?orderCode=" + r.data.code + '&from=buy'
+              if (reqData.isTrial) {
+                nextHref += "&t=3"
+              }else {
+                nextHref += "&t=2"
+              }
+              window.location.href = nextHref
+            } else {
+              weui.loading().hide()
+              //订阅修改
+              if (r.data.doSuccess) {
+                noshow = true;
+                clearSessionStorage();
+                getDataWitXHR()
+                // window.history.go(-1);
+                // locationReplace(location.pathname)
+              } else {
+                weui.toast('修改保存失败', {
+                  duration: 1500,
+                  className: 'jy-toast',
+                });
+              }
+            }
+          }else{
+            weui.loading().hide();
+          }
+        }, false);
+        this.$refs.couponRef.submitStatus = false
+      }
+    }
+  })
+  /* vue 代码 end */
     //项目匹配开关
     var checkedflag = true;
 
@@ -896,6 +1023,7 @@ $(function () {
                 // 优惠提示
                 $('.j-notice-bar.vip-bar').css('display', 'flex')
             }
+            coupon.updatePrice(status[0])
         }
 
         if (reqData.isTrial) {//试用购买

+ 7 - 9
src/web/templates/frontRouter/wx/coupon/free/myCoupon.html

@@ -44,7 +44,7 @@
                 <p class="empty-text">暂无奖券</p>
               </div>
             </van-tab>
-            <van-tab title="已使用" name="2">
+            <van-tab title="已使用" name="3">
               <div v-if="list.used && list.used.length > 0">
                 <coupon-list :coupon-list="list.used" :mold="2"></coupon-list>
               </div>
@@ -53,7 +53,7 @@
                 <p class="empty-text">暂无奖券</p>
               </div>
             </van-tab>
-            <van-tab title="已失效" name="3">
+            <van-tab title="已失效" name="2">
               <div v-if="list.expired && list.expired.length > 0">
                 <coupon-list :coupon-list="list.expired" :mold="3"></coupon-list>
               </div>
@@ -82,10 +82,8 @@
         active: 0,
         list: {
           unused: [],
-          used: [
-          ],
-          expired: [
-          ]
+          used: [],
+          expired: []
         },
         refreshing: false
       },
@@ -112,7 +110,7 @@
           console.log(name)
           this.getCoupon(name)
         },
-        // 获取奖券信息 默认mold:0 全部,mold:1 未使用 mold:2 已使用 mold:3 已过期
+        // 获取奖券信息 默认mold:0 全部,mold:2 已过期 mold:3 已使用 mold:4 未使用
         getCoupon: function (mold, currentPage) {
           var _this = this;
           $.ajax({
@@ -134,10 +132,10 @@
                   case 4:
                     _this.list.unused = res.data.list
                     break;
-                  case 2:
+                  case 3:
                     _this.list.used = res.data.list
                     break;
-                  case 3:
+                  case 2:
                     _this.list.expired = res.data.list
                     break;
                   default:

+ 19 - 22
src/web/templates/frontRouter/wx/coupon/free/selectProduct.html

@@ -40,7 +40,7 @@
             <div class="list-content">
               <div class="product-info">
                 <p class="p-name">${item.name}</p>
-                <p class="p-desc">${item.desc}</p>
+                <p class="p-desc">${item.describe}</p>
               </div>
               <van-icon name="arrow" color="#C0C4CC" size="16"></van-icon>
             </div>
@@ -57,37 +57,35 @@
   <script src='{{Msg "seo" "cdn"}}/big-member/js/utils.js?v={{Msg "seo" "version"}}'></script>
   <script>
     var jyProduct = [
-      {name: '超级订阅', icon: 'vip-icon', desc: '招投标信息抢先知,重要项目不遗漏', url: '/front/vipsubscribe/introducePage'},
-      {name: '数据导出', icon: 'export-icon', desc: '多维度细分数据,提供企业决策参考', url: '/front/wx_dataExport/toSieve'},
-      {name: '剑鱼文库', icon: 'docs-icon', desc: '最实用的招投标资料库', url: '/page_docs_mobile/home'}
+      {name: '超级订阅', icon: 'vip-icon'},
+      {name: '数据导出', icon: 'export-icon'},
+      {name: '结构化招标数据', icon: 'structured-icon'},
+      {name: '数据报告', icon: 'report-icon'},
+      {name: '企业商机管理', icon: 'manage-icon'},
+      {name: '中标必听课', icon: 'course-icon'},
+      {name: '大会员', icon: 'big-vip0-icon'},
+      {name: '大会员专家版', icon: 'big-vip1-icon'},
+      {name: '大会员商机版', icon: 'big-vip2-icon'},
+      {name: '大会员智慧版', icon: 'big-vip3-icon'},
+      {name: '大会员试用版', icon: 'big-vip4-icon'},
+      {name: '剑鱼文库', icon: 'docs-icon'}
     ]
     var vNode = {
       delimiters: ['${', '}'],
       el: '#product',
       data: {
         couponId: '',
-        productList: [
-          // {name: '超级订阅'},
-          // {name: '数据导出'},
-          // {name: '结构化招标数据'},
-          // {name: '数据报告'},
-          // {name: '企业商机管理'},
-          // {name: '中标必听课'},
-          // {name: '大会员'},
-          // {name: '大会员专家版'},
-          // {name: '大会员商机版'},
-          // {name: '大会员智慧版'},
-          // {name: '大会员试用版'},
-          // {name: '剑鱼文库'}
-        ]
+        productList: []
       },
       computed: {
         getData: function() {
           var arr = [];
-          this.productList.forEach(function(v) {
-            jyProduct.forEach(function(s){
+          var _this = this;
+          jyProduct.forEach(function(s){
+            _this.productList.forEach(function(v) {
               if (v.name === s.name) {
-                arr.push(s)
+                v.icon = s.icon
+                arr.push(v)
               }
             })
           })
@@ -112,7 +110,6 @@
               platform: 'W'
             },
             success: function(res){
-              console.log(res)
               if (res.error_code == 1 && res.data) {
                 _this.productList = res.data
               }

+ 92 - 3
src/web/templates/weixin/dataExport/dataExport_payOrder.html

@@ -14,8 +14,10 @@
           href="{{Msg "seo" "cdn"}}/wx_dataExport/iconfont/iconfont.css?v={{Msg "seo" "version"}}"/>
     <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/wx_dataExport/css/pay_order.css?v={{Msg "seo" "version"}}36">
     <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/css/wxbutton.css?v={{Msg "seo" "version"}}3">
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
     <script src="{{Msg "seo" "cdn"}}/js/jquery-3.2.1.min.js"></script>
     <script src="{{Msg "seo" "cdn"}}/wx_dataExport/js/weui.min.js"></script>
+    
 </head>
 <body>
 <style>
@@ -144,7 +146,10 @@
 
         </div>
     </main>
-    <div class="fixed-bottom-box p15" id="bottombox">
+    <div class="fixed-bottom-box p15" id="coupon-vue">
+      <pay-order-template ref="couponRef" :config="$data" @update="updateS"></pay-order-template>
+    </div>
+    <div class="fixed-bottom-box p15" id="bottombox" style="display: none;">
         <div class="price">
             <div class="totalnum">
                 合计:
@@ -203,6 +208,8 @@
     </div>
 </div>
 <!--<script src='{{Msg "seo" "cdn"}}/js/check-bind-phone.js?v={{Msg "seo" "version"}}'></script>-->
+<script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
+<script src='{{Msg "seo" "cdn"}}/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
 
 <script>
     window.addEventListener('pageshow', function (event) {
@@ -395,13 +402,15 @@
             $(".phone_input").val(phone_lastInput);
             finishPhoneVerity = true;
         }
-
-        if (readClause && finishPhoneVerity && finishEmailVerity) {
+        console.log(sessionStorage.readClause == "true", finishPhoneVerity, finishEmailVerity, '111111')
+        if (sessionStorage.readClause == "true" && finishPhoneVerity && finishEmailVerity) {
             $(".toPay").removeAttr("disabled")
+            coupon.$refs.couponRef.submitStatus = false
         }
 
         //判断支付按钮状态
         if (sessionStorage.readClause == "true") {
+            coupon.checkboxStatus = true
             if (finishPhoneVerity && finishEmailVerity) {
                 $(".toPay").removeAttr("disabled")
                 readClause = true;
@@ -835,6 +844,7 @@
         beforePay = beforePay > orderMinPrice ? beforePay : orderMinPrice;
         $(".pay_discount").text(shouldPay);
         $(".pay_before").text(beforePay)
+        coupon.updatePrice(shouldPay,beforePay)
     }
 
     //
@@ -851,6 +861,85 @@
         }
         window.location.href = "/front/staticPage/wx-serviceterms.html";
     }
+    /* vue 卡券部分代码 start */
+    var coupon = new Vue({ 
+      el: '#coupon-vue',
+      data: function () {
+        return {
+          type: 'dataExport',
+          initPrice: 0, // 原价
+          realPrice: 0, // 实付价
+          disPrice: 0,  // 折扣价(仅数据导出)
+          checkboxStatus: false, // checkbox状态
+          submitStatus:true,  // 提交按钮状态
+          links: [
+            {
+              text: '《剑鱼标讯线上购买与服务条款》',
+              url: '',
+              event: this.readEvent
+            }
+          ],
+          buttons: {
+            preview: this.previewEvent,
+            submit: this.submitOrder
+          },
+        }
+    },
+    mounted () {
+      this.init()
+    }, 
+    methods: {
+        // 更新价格相关
+        updatePrice: function (after, before) {
+          console.log( '原价:' + before, '折扣价:' + after)
+          this.initPrice = before;
+          this.disPrice = after;
+          // 调用子组件查询最优卡券
+          this.$refs.couponRef.getCoupon();
+        },
+        // 初始化及回显相关
+        init: function () {
+          console.log(sessionStorage.readClause == "true",finishPhoneVerity,finishEmailVerity, '22222')
+        },
+        // 勾选阅读协议
+        updateS: function(data) {
+          data.callback(this.checkSubmitStatus(data.check))
+        },
+        // 校验checkbox
+        checkSubmitStatus: function (checkStatus) {
+          console.log(finishEmailVerity,finishPhoneVerity, sessionStorage.readClause)
+          if (checkStatus) {
+            if (finishEmailVerity && finishPhoneVerity) {
+              readClause = true;
+              sessionStorage.readClause = "true";
+              $(".toPay").removeAttr("disabled")
+            } else {
+              readClause = true;
+              sessionStorage.readClause = "true";
+              $(".toPay").attr("disabled", "disabled");
+            }
+          } else {
+            readClause = false;
+            sessionStorage.readClause = "false";
+            $(".toPay").attr("disabled", "disabled");
+          }
+          return finishEmailVerity && finishPhoneVerity
+        },
+        // 阅读协议点击事件
+        readEvent: function () {
+          toRead()
+        },
+        // 数据导出预览数据
+        previewEvent: function () {
+          $(".dataPreview").trigger('click')
+        },
+        // 订单提交事件
+        submitOrder: function () {
+          $(".toPay").trigger('click')
+        }
+      }
+    })
+    /* vue 卡券部分代码 end */
 </script>
 {{include "/common/baiducc.html"}}
 </body>

+ 10 - 0
src/web/templates/weixin/my.html

@@ -158,6 +158,16 @@
                           <span class="j-icon base-icon icon-arrow-right"></span>
                       </div>
                   </div>
+                  <div class="menu-list-item clickable"  data-href="/weixin/frontPage/coupon/free/myCoupon">
+                    <div class="m-l-i-left">
+                        <span class="j-icon base-icon icon-coupon"></span>
+                        <span class="m-l-i-label">我的奖券</span>
+                    </div>
+                    <div class="m-l-i-right">
+                        <i class="dot-red"></i>
+                        <span class="j-icon base-icon icon-arrow-right"></span>
+                    </div>
+                </div>
                 </div>
                 <div class="menu-list">
                     <a class="menu-list-item clickable" id="help" href="https://mp.weixin.qq.com/mp/homepage?__biz=MzIyNTM1NDUyNw==&hid=3&sn=badf2d7da08654c58b58169e773f58f0#wechat_redirect">

+ 8 - 2
src/web/templates/weixin/vipsubscribe/vip_index_new.html

@@ -16,6 +16,7 @@
     <link rel="stylesheet" type="text/css" href="/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}"/>
     <link rel="stylesheet" href="/css/wxbutton.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="/vipsubscribe/css/vip_index_new.css?v={{Msg "seo" "version"}}1">
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
     <style>
         .jy-switch:before {
             background-color: #fbfbfb;
@@ -326,7 +327,10 @@
       </div>
     </div>
     <!-- 升级 -->
-    <div class="vip-footer upgrade">
+    <div class="vip-footer upgrade" id="coupon-vue">
+      <pay-order-template ref="couponRef" :config="$data" @update="updateS" @cancel="cancelEvent"></pay-order-template>
+    </div>
+    <!-- <div class="vip-footer upgrade">
         <div class="j-notice-bar bar-red vip-bar">限时6折,现在购买,帮您省<span class="reduce-price">0</span>元</div>
         <div class="footer-preview-container">
             <div class="price-preview">
@@ -359,7 +363,7 @@
             <button class="button-l reset j-button-cancel1">取消</button>
             <button data-need-bind-phone class="button-r confirm j-button-confirm1" disabled>立即升级</button>
         </div>
-    </div>
+    </div> -->
     <!-- 修改 p18取消保存按键-->
     <!-- <div class="vip-footer modify">
         <div class="footer-button-group j-button-group">
@@ -652,6 +656,8 @@
 <script src="/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
 <script src="/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
 <!--<script src='{{Msg "seo" "cdn"}}/js/check-bind-phone.js?v={{Msg "seo" "version"}}'></script>-->
+<script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
+<script src='{{Msg "seo" "cdn"}}/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
 {{include "/common/weixin.html"}}
 <script>
     $(window).bind("pageshow", function (event) {

+ 23 - 4
src/web/templates/weixin/vipsubscribe/vip_introduce.html

@@ -14,6 +14,7 @@
     <link rel="stylesheet" type="text/css" href="/vipsubscribe/css/public.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" type="text/css" href="/css/wxbutton.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" type="text/css" href="/vipsubscribe/css/vip_introduce.css?v={{Msg "seo" "version"}}1">
+    <link rel="stylesheet" type="text/css" href="/css/land-page-coupon.css?v={{Msg "seo" "version"}}1"> 
 </head>
 
 <body>
@@ -149,22 +150,27 @@
                     <span class="text">去续费</span>
                 </span>
             </div>
+            <div id="land-page-coupon" class="coupon-tips" style="display:none;">
+              <div class="coupon-text-area">用奖券最高立减 <em class="coupon-num"></em>元</div>
+              <div class="coupon-arrow-area"><span class="coupon-arrow-icon"></span></div>
+            </div>
         </div>
     </div>
     {{include "/common/weixin.html"}}
     <script src='{{Msg "seo" "cdn"}}/structuredata/mobile/js/jquery.min.js'></script>
     <script src='{{Msg "seo" "cdn"}}/vipsubscribe/js/share.js?v={{Msg "seo" "version"}}'></script>
     <!--<script src='{{Msg "seo" "cdn"}}/js/check-bind-phone.js?v={{Msg "seo" "version"}}'></script>-->
+    <script src='{{Msg "seo" "cdn"}}/js/land-page-coupon.js?v={{Msg "seo" "version"}}'></script>
     <script>
         $("*[data-need-bind-phone]").on('click', function () {
             window.location.replace($(this).attr('data-url'))
         })
     </script>
     <script>
-    if (location.href.lastIndexOf('type=renew') !== -1) {
-        $("#vip-introduce").hide()
-        $("#vip-introduce-renew").show()
-    }
+      if (location.href.lastIndexOf('type=renew') !== -1) {
+          $("#vip-introduce").hide()
+          $("#vip-introduce-renew").show()
+      }
         initShare({{.T.signature }});
       // @NewYearMarketing 2021/1/25
       getNewYearMarketing()
@@ -180,6 +186,19 @@
           }
         })
       }
+      // 获取是否有优惠券 并展示
+      getCoupon('vip',function(res) {
+        if (res.list && res.list.length > 0) {
+          $('.coupon-tips').show()
+          var max = res.list.sort(function(a,b){
+              return b.reduce - a.reduce;
+          })[0];
+          console.log(max.reduce) 
+          $('.coupon-num').html(max.reduce)
+        } else {
+          $('.coupon-tips').hide()
+        }
+      })
     </script>
     {{include "/common/baiducc.html"}}
 </body>

+ 84 - 1
src/web/templates/weixin/vipsubscribe/vip_purchase.html

@@ -13,6 +13,7 @@
     <link rel="stylesheet" href="/vipsubscribe/iconfont/iconfont.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/css/wxbutton.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="/vipsubscribe/css/vip_purchase.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
     <!--S-手机号输入样式-->
     <style>
     .order-phone-group {
@@ -218,7 +219,11 @@
                     </div>
                 </div>
             </div>
-            <div class="fixed-bottom-box p15">
+            <!-- vue组件 -->
+            <div class="fixed-bottom-box p15" id="coupon-vue">
+              <pay-order-template ref="couponRef" :config="$data" @update="updateS"></pay-order-template>
+            </div>
+            <div class="fixed-bottom-box p15" style="display: none;">
                 {{if not .T.isTrial }}
                     <div class="j-notice-bar bar-red vip-bar" style="display:none;">限时6折,现在购买,帮您省<span
                                 class="reduce-price">0</span>元
@@ -434,6 +439,8 @@
         <script src="/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
         <script src="/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
         <!--<script src='{{Msg "seo" "cdn"}}/js/check-bind-phone.js?v={{Msg "seo" "version"}}'></script>-->
+        <script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
+        <script src='{{Msg "seo" "cdn"}}/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
         {{include "/common/weixin.html"}}
         <script>
           // @订单手机号-S
@@ -592,6 +599,81 @@
             sessionStorage.setItem("vipSubisTrial", "1");//试用界面
             //试用用户
             {{end}}
+
+            /* vue 代码 start */
+            var coupon = new Vue({ 
+              el: '#coupon-vue',
+              data: function () {
+                return {
+                  type: 'vip',
+                  initPrice: 0, // 原价
+                  realPrice: 0, // 实付价
+                  checkboxStatus: false, // checkbox状态
+                  submitStatus: true,  // 提交按钮状态
+                  links: [
+                    {
+                      text: '《剑鱼标讯线上购买与服务条款》',
+                      url: '/front/staticPage/wx-serviceterms.html',
+                      event: this.readEvent
+                    }
+                  ],
+                  buttons: {
+                    submit: this.submitOrder
+                  },
+                }
+              },
+              mounted () {
+                this.init()
+              }, 
+              methods: {
+                // 更新价格相关
+                updatePrice: function (before) {
+                  console.log( '原价:' + before)
+                  this.initPrice = before;
+                  // 调用子组件查询最优卡券
+                  this.$refs.couponRef.getCoupon();
+                },
+                // 初始化及回显相关
+                init: function () {
+                  var areaStorage = sessionStorage.getItem('vipSubSelectArea');
+                  var industryStorage = sessionStorage.getItem('vipSubSelectIndustry');
+                  var readStorage = sessionStorage.getItem('vipSub_read') == 'true' ? true : false;
+                  console.log(areaStorage, industryStorage, readStorage)
+                  if(readStorage) {
+                    this.checkboxStatus = true
+                  }
+                  if (areaStorage && industryStorage && readStorage && OrderPhoneCheck.status) {
+                    this.$refs.couponRef.submitStatus = false
+                  } else {
+                    this.$refs.couponRef.submitStatus = true
+                  }
+                },
+                // 勾选阅读协议
+                updateS: function(data) {
+                  data.callback(this.checkSubmitStatus(data.check))
+                },
+                // 校验checkbox
+                checkSubmitStatus: function (checkStatus) {
+                  $('#buy').prop('checked', checkStatus)
+                  var areaStorage = sessionStorage.getItem('vipSubSelectArea');
+                  var industryStorage = sessionStorage.getItem('vipSubSelectIndustry');
+                  var readStorage = sessionStorage.getItem('vipSub_read');
+                  return areaStorage && industryStorage && readStorage && OrderPhoneCheck.status
+                },
+                // 阅读协议点击事件
+                readEvent: function () {
+                  console.log('事件触发跳转')
+                },
+                // 订单提交事件
+                submitOrder: function () {
+                  this.$refs.couponRef.submitStatus = true
+                  $('#payHandle').trigger('click')
+                  this.$refs.couponRef.submitStatus = false
+                }
+              }
+            })
+            /* vue 代码 end */
+
             var purchase = {
                 areaSelect: {"一个省": ["一个市"]},//已选择地区 {"一个省":["一个市"]}计算价格临时变量
                 industrySelect: ["一个行业"],// 已选择行业 一个行业(计算价格临时变量)
@@ -804,6 +886,7 @@
                         }
 
                     }
+                    coupon.updatePrice(price)
                 }
             };
 

+ 79 - 1
src/web/templates/weixin/vipsubscribe/vip_renew.html

@@ -16,6 +16,7 @@
     <link rel="stylesheet" href="/vipsubscribe/css/public.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="/css/wxbutton.css?v={{Msg "seo" "version"}}">
     <link rel="stylesheet" href="/vipsubscribe/css/vip_renew.css?v={{Msg "seo" "version"}}">
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
     <style>
         .vip-header {
             display: none;
@@ -113,7 +114,11 @@
                 </li>
             </ul>
         </div>
-        <div class="vip-footer renew">
+        <!-- vue组件 -->
+        <div class="vip-footer renew" id="coupon-vue">
+          <pay-order-template ref="couponRef" :config="$data" @update="updateS"></pay-order-template>
+        </div>
+        <div class="vip-footer renew" style="display: none;">
             <div class="footer-preview-container">
                 <div class="price-preview">
                     <span class="preview-label"></span>
@@ -372,6 +377,8 @@
     </div>
     <script src="/vipsubscribe/js/jquery-2.1.4.js?v={{Msg "seo" "version"}}"></script>
     <!--<script src='{{Msg "seo" "cdn"}}/js/check-bind-phone.js?v={{Msg "seo" "version"}}'></script>-->
+    <script src=//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js></script>
+    <script src='{{Msg "seo" "cdn"}}/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
     <script src="/vipsubscribe/js/weui.min.js?v={{Msg "seo" "version"}}"></script>
     <script src="/vipsubscribe/js/common.js?v={{Msg "seo" "version"}}"></script>
     <script src="/vipsubscribe/js/UpgradePrice.js?v={{Msg "seo" "version"}}"></script>
@@ -636,6 +643,7 @@
 
                 }
                 this.flushSelectTime(times, flag === undefined ? 1 : flag);
+                coupon.updatePrice(price)
             },
             flushSelectTime(thisValue, flag) {
                 if (this.endTime) {
@@ -1043,6 +1051,76 @@
             }, 100);
         })
 
+        /* vue 代码 start */
+        var coupon = new Vue({ 
+          el: '#coupon-vue',
+          data: function () {
+            return {
+              type: 'vip',
+              initPrice: 0, // 原价
+              realPrice: 0, // 实付价
+              checkboxStatus: false, // checkbox状态
+              submitStatus: true,  // 提交按钮状态
+              links: [
+                {
+                  text: '《剑鱼标讯线上购买与服务条款》',
+                  url: '/front/staticPage/wx-serviceterms.html',
+                  event: this.readEvent
+                }
+              ],
+              buttons: {
+                submit: this.submitOrder
+              },
+            }
+          },
+          mounted () {
+            this.init()
+          }, 
+          methods: {
+            // 更新价格相关
+            updatePrice: function (before) {
+              console.log( '原价:' + before)
+              this.initPrice = before;
+              // 调用子组件查询最优卡券
+              this.$refs.couponRef.getCoupon();
+            },
+            // 初始化及回显相关
+            init: function () {
+              if (sessionStorage.getItem("vipSub_read") === "true") {
+                this.checkboxStatus = true
+              }
+              var areaSelect = JSON.parse(sessionStorage.getItem("vipSubSelectArea"));
+              var industrySelect = JSON.parse(sessionStorage.getItem("vipSubSelectIndustry"));
+              var endTime = sessionStorage.getItem("endTime")
+              var readStorage = sessionStorage.getItem("vipSub_read") == "true" ? true : false
+              console.log(areaSelect,industrySelect,endTime)
+              if (areaSelect && industrySelect && endTime && readStorage) {
+                this.$refs.couponRef.submitStatus = false
+              } else {
+                this.$refs.couponRef.submitStatus = true
+              }
+            },
+            // 勾选阅读协议
+            updateS: function(data) {
+              data.callback(this.checkSubmitStatus(data.check))
+            },
+            // 校验checkbox
+            checkSubmitStatus: function (checkStatus) {
+              sessionStorage.setItem("vipSub_read", checkStatus);
+              purchase.flushSubmit();
+              return purchase.timeCheckOk && sessionStorage.getItem("vipSub_read") === "true"
+            },
+            // 阅读协议点击事件
+            readEvent: function () {},
+            // 订单提交事件
+            submitOrder: function () {
+              this.$refs.couponRef.submitStatus = true
+              $('.vip-footer.renew .confirm').trigger('click')
+              this.$refs.couponRef.submitStatus = false
+            }
+          }
+        })
+        /* vue 代码 end */
     </script>
     {{include "/common/baiducc.html"}}
 </body>

部分文件因为文件数量过多而无法显示