Эх сурвалжийг харах

feat: 新增数据包充值页面

cuiyalong 4 жил өмнө
parent
commit
b3ad1e0d90

+ 118 - 0
src/jfw/modules/app/src/web/templates/frontRouter/my_data_packet/sess/recharge.html

@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+    <!--引入公共资源头部-->
+    {{include "/big-member/meta.html"}}
+    <title>充值数据流量包</title>
+    <!--S-当前页面的css资源-->
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/icon/local.css />
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/big-member/css/j-icons.css?v={{Msg "seo" "version"}}'>
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/coupon/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
+    <link rel="stylesheet" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/data-pack/css/recharge.css?v={{Msg "seo" "version"}}' />
+</head>
+<body>
+  <div class="j-container">
+    {{include "/big-member/header.html"}}
+    <div class="j-main recharge" id="app" v-cloak>
+      <div class="j-container">
+        <div class="j-main">
+            <van-cell-group>
+              <van-cell center title="充值条数" is-link :value="charge.count + '条'" @click="chargeCount.pickerShow = true"></van-cell>
+              <van-cell center title="有效期" is-link :value="charge.duration + '年'"></van-cell>
+            </van-cell-group>
+            <div class="spec-list-container">
+              <div class="spec-title">请选择数据规格</div>
+              <div class="spec-list">
+                <div
+                  class="spec-item"
+                  :class="{ active: item.id == specActive }"
+                  v-for="(item, index) in specList"
+                  @click="clickSpec(item)"
+                  :key="index">
+                  <div class="spec-i-label">${ item.label }</div>                    
+                  <div class="spec-i-sub">
+                    <div class="spec-i-text del">${ item.price * charge.discount }元/条</div>
+                    <div class="spec-i-text">${ item.price }元/条</div>
+                  </div>                    
+                </div>
+              </div>
+              <div class="spec-question">
+                <span>标准字段包、高级字段包</span>
+                <van-icon name="question-o" @click="showQuestion"></van-icon>
+              </div>
+            </div>
+            <div class="notes-to-buy">
+              购买须知:<br />
+              1、数据流量包是数据自助导出充值服务,最低1000条起充,仅针对线上自助充值使用(与线下企业数据充值账户不可共享);<br />
+              2、已购数据包条数按导出数据量扣除(数据已排重,相同数据多次导出,不重复计费),有效期2年,因产品特殊性,购买后不支持退款。
+            </div>
+        </div>
+        <div class="j-footer">
+          <pay-order-template ref="couponRef" :config="bottomConf" @update="updateS"></pay-order-template>
+        </div>
+        <van-popup
+          v-model="chargeCount.pickerShow"
+          closeable
+          round
+          position="bottom"
+          close-icon="clear"
+          class="j-popup"
+          :style="{ height: '45%' }">
+          <div class="j-container">
+            <div class="popup-header header-title">充值条数</div>
+            <div class="j-main">
+              <div class="select-group">
+                <div class="select-item"
+                  v-for="(item, index) in chargeCount.infoList"
+                  :key="index"
+                  @click="chargeCount.value = item.value"
+                  :class="{ active: chargeCount.value === item.value }">
+                  <span class="item-label">${ item.label }</span>
+                  <span class="j-icon base-icon icon-tick"></span>
+                </div>
+              </div>
+            </div>
+            <div class="j-button-group">
+              <button class="j-button-confirm" @click="charge.count = chargeCount.value;chargeCount.pickerShow = false">确定</button>
+            </div>
+          </div>
+        </van-popup>
+        <van-dialog
+          v-model="dialog.question"
+          title="字段包说明"
+          confirm-button-text="我知道了"
+          confirm-button-color="#2abed1"
+          class="question-tip"
+          @confirm="dialog.question = false">
+          <div class="content-list">
+            <div class="content-item">
+              <div class="content-label">· 标准字段包</div>
+              <div class="content-text">
+                省份、城市、公告标题、剑鱼标讯地址、公告类别、发布时间、采购单位、中标单位、中标金额、项目名称、公告内容
+              </div>
+            </div>
+            <div class="content-item">
+              <div class="content-label">· 高级字段包</div>
+              <div class="content-text">
+                省份、城市、公告标题、公告类别、公告内容、发布时间、公告地址、剑鱼标讯地址、项目名称、项目范围、预算金额、中标金额、开标日期、采购单位、采购单位信息(采购单位联系人、采购单位联系电话、招标代理机构)、中标单位信息(中标单位、中标单位联系人、中标单位联系电话)(来源:招标公告网站)、中标单位信息(中标单位联系人、中标单位联系电话、电子邮箱)(来源:国家企业公示网站)
+              </div>
+            </div>
+          </div>
+        </van-dialog>
+      </div>
+    </div>
+  </div>
+  <!--S-当前页面的资源-->
+  <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
+  <script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
+  <script src=//cdn-common.jianyu360.com/cdn/lib/zepto/1.2.0/zepto.min.js></script>
+  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/coupon/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
+  <script src='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/data-pack/js/recharge.js?v={{Msg "seo" "version"}}'></script>
+  <!--E-当前页面的资源-->
+  {{include "/big-member/commonjs.html"}}
+  {{include "/common/baiducc.html"}}
+</body>
+
+</html>

+ 159 - 0
src/web/staticres/common-module/data-pack/css/recharge.css

@@ -0,0 +1,159 @@
+.van-cell {
+  height: 1.08rem;
+}
+.van-cell__title {
+  font-size: .32rem;
+  color: #171826;
+  line-height: .48rem;
+}
+.van-cell__value {
+  font-size: .28rem;
+  color: #9b9ca3;
+  line-height: .4rem;
+}
+
+.spec-list-container {
+  margin-top: .16rem;
+  padding: .32rem;
+  background-color: #fff;
+}
+.spec-title {
+  font-size: .28rem;
+  color: #171826;
+  line-height: .4rem;
+}
+.spec-list {
+  margin: .2rem 0;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+.spec-item {
+  position: relative;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: space-between;
+  flex: 1;
+  padding: .32rem 0;
+  background-color: #f5f6f7;
+  border-radius: .16rem;
+  border: 2px solid transparent;
+}
+.spec-item:not(:last-of-type) {
+  margin-right: .24rem;
+}
+.spec-i-label {
+  font-size: .32rem;
+  font-weight: bold;
+  color: #171826;
+  line-height: .48rem;
+}
+.spec-i-sub {
+  margin-top: .16rem;
+  display: flex;
+}
+.spec-i-text {
+  font-size: .24rem;
+  color: #5f5e64;
+  line-height: .36rem;
+}
+.spec-i-text:not(:last-of-type) {
+  margin-right: .16rem;
+}
+.spec-i-text.del {
+  text-decoration: line-through;
+}
+.spec-item.active {
+  border-color: #2abed1;
+}
+.spec-item.active::after {
+  content: '';
+  position: absolute;
+  right: -1px;
+  bottom: -1px;
+  width: 0.28rem;
+  height: 0.28rem;
+  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKySURBVHgB7Zg/aNRQHMd/eXfWP6i9omJBhBOXa0W4bK6ni6Murro76Cgu1kF0aysOjnXTyTopLkEcHM8TxIMOHghFQfBAaUtp8/P9Qt+Rpnm99y+XBO6zXJJ7gc83v+S9XwIwZsyY0jIbdB54UFIuBF/mEfFu6QLUX7drR2qVeUC8RfulChDJT7KAbzbFsdIEaLxt19nBSL4eP16KADJ5ovAB9pMnCh1g9n276VVZgAA12RgGBaURdG4OkycKWYGZoHPHQ1hQGVu4CkSrq6I8UagKkDwgzOmcU5gAojUATXIPkGwNdMk1QFproEtuAYYtUKrkEsCVPDHyAC7liZEGUGkNdBnZQqbaGugykgrotAa6ZF4B3dZAlwpkiElrILg2PQVL/nm4ceYE/N3ahu6/jdRxmd1Cpq0BQfKPZs4O9inApY9fU8dWwTGiNUDD1iApT1AAGU4DDFoDRKPWIE2eePb9l/QcZ7eQ7QIlk7//7Qe8+flHep6TAHnJE9azUFJedfYQ2MgTVgGoNWAT7BPfnBbHnl6sw8mJA3C8WoErpyZhdWNTGsJWntM3XshkrQGJxyFBEk3iQJ7oGVWAWgOG8JxvHkr+93tzK7rycZKVcCTPn2B8px1gpzV4IvufJElWFqJx9LAbeU6IuKg1C+m0BrKrnIaJPLHmhVPKFaDWgMvfUx0vq0QSU3l++yyttPxXQ1dim9ZgeUdMVgljeU4I+JB+961A7KvBVTBEVgkbeURY7F5uvqRtaQVcvruKStw+dxqO8Wn28cqquTyfOtdZOCf2Ux9i1y/eriB59MJWt+X3xLE9C1mR5T0vvB6XJ3ZVIIuvBi5Iu/KCQQWy+mpgCz2w617op8kTUQWy/GpgSB8xfIEMFmTiAs/mxdshfX6te9zjM78pPqyx7eVey++rnPgfnLxxiLvERTEAAAAASUVORK5CYII=) no-repeat;
+  background-size: contain;
+}
+.spec-item.active .spec-i-label {
+  color: #2abed1;
+}
+.spec-question {
+  display: flex;
+  align-items: center;
+}
+.spec-question .van-icon-question-o {
+  margin-left: .16rem;
+  color: #2abed1;
+  font-size: .3rem;
+}
+.notes-to-buy {
+  padding: .32rem;
+  font-size: .24rem;
+  color: #9b9ca3;
+  line-height: .36rem;
+}
+
+/* popup */
+.j-popup .van-popup__close-icon {
+  top: .48rem;
+}
+.j-popup .popup-header {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  height: 1.28rem;
+  padding: 0 .32rem;
+}
+.j-popup .header-title {
+  font-size: .4rem;
+  color: #171826;
+}
+.j-popup .select-group {
+  padding-left: .32rem;
+}
+.j-popup .select-item {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0.24rem 0.32rem;
+  padding-left: 0;
+  font-size: 0.28rem;
+  line-height: 0.4rem;
+  color: #5f5e64;
+}
+.j-popup .select-item .j-icon {
+  opacity: 0;
+  transform: opacity .5s ease;
+}
+.j-popup .select-item.active {
+  color: #2abed1;
+}
+.j-popup .select-item.active .j-icon {
+  opacity: 1;
+}
+.j-popup .select-item:not(:last-of-type) {
+  border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
+}
+
+/* question dialog */
+.van-dialog {
+  border-radius: 8px;
+}
+.van-dialog__header {
+  font-size: .34rem;
+  font-weight: 700;
+}
+.van-dialog__content {
+  padding: .32rem;
+}
+
+.question-tip .content-label {
+  font-weight: 700;
+  margin: .24rem 0;
+}
+.question-tip .content-text {
+  line-height: .38rem;
+}

+ 307 - 0
src/web/staticres/common-module/data-pack/js/recharge.js

@@ -0,0 +1,307 @@
+var vm = new Vue({
+  delimiters: ['${', '}'],
+  el: '#app',
+  data: function () {
+    return {
+      sessKey: '$data-data-pack-recharge',
+      priceInfo: {},
+      price: {
+        before: 0, // 优惠前价格
+        after: 0 // 优惠后价格
+      },
+      specActive: 0,
+      charge: {
+        discount: 1,
+        count: 1000,
+        duration: 2, // 单位年
+      },
+      specList: [
+        {
+          label: '标准字段包',
+          price: 0.45,
+          id: 0
+        },
+        {
+          label: '高级字段包',
+          price: 0.9,
+          id: 1
+        }
+      ],
+      chargeCount: {
+        value: 1000, // 选择器暂存数据
+        pickerShow: false,
+        infoList: [
+          {
+            label: '1000条',
+            value: 1000,
+            normal_discount: 1,
+            senior_discount: 1
+          },
+          {
+            label: '3000条',
+            value: 3000,
+            normal_discount: 1,
+            senior_discount: 1
+          },
+          {
+            label: '5000条',
+            value: 5000,
+            normal_discount: 1,
+            senior_discount: 1
+          }
+        ],
+      },
+      dialog: {
+        question: false
+      },
+      bottomConf: {
+        type: 'dataExport',
+        initPrice: 0,
+        realPrice: 0,
+        disPrice: 0,
+        checkboxStatus: false,
+        hideCoupon: false,
+        links: [
+          {
+            text: '《剑鱼标讯线上购买与服务条款》',
+            url: '',
+            event: this.readEvent
+          }
+        ],
+        buttons: {
+          submit: this.submitOrder
+        }
+      }
+    }
+  },
+  watch: {
+    'charge.count': function () {
+      this.calcPrice()
+    },
+    specActive: function () {
+      this.calcPrice()
+    }
+  },
+  created: function () {
+    var restore = this.restoreState()
+    if (!restore) {
+      this.getGoodsList()
+    }
+  },
+  mounted: function () {
+    $('#previewButton').hide()
+  },
+  methods: {
+    showLoading: function () {
+      return this.$toast.loading({
+        duration: 0,
+        forbidClick: true,
+        message: 'loading...',
+      })
+    },
+    showToast: function (message) {
+      return this.$toast({
+        duration: 1500,
+        forbidClick: true,
+        message: message,
+      })
+    },
+    showDialog: function (conf) {
+      var defaultConf = {
+        title: '提示',
+        message: 'message',
+        className: 'j-confirm-dialog',
+        showConfirmButton: true,
+        showCancelButton: true,
+        confirmButtonColor: '#2abed1'
+      }
+      if (conf) {
+        Object.assign(defaultConf, conf)
+      }
+      return this.$dialog.confirm(defaultConf)
+    },
+    getGoodsList: function () {
+      var _this = this
+      var loading = this.showLoading()
+      $.ajax({
+        url: '/subscribepay/dataExportPack/goodsList',
+        type: 'POST',
+        success: function (res) {
+          loading && loading.clear()
+          if (res) {
+            Object.assign(_this.priceInfo, res)
+            _this.sortPrice(res)
+            _this.calcPrice()
+          }
+        },
+        error: function () {
+          loading && loading.clear()
+        }
+      })
+    },
+    sortPrice: function (info) {
+      var discount = info.discount
+      this.charge.discount = discount
+      this.charge.duration = info.packs_validityYear
+      // 标准字段包
+      this.specList[0].before = info.unitPrice_normal // 普通字段包单价,单位元
+      this.specList[0].price = info.unitPrice_normal * discount
+      // 高级字段包
+      this.specList[1].before = info.unitPrice_senior // 高级字段包单价,单位元
+      this.specList[1].price = info.unitPrice_senior * discount
+
+      var list = []
+      if (Array.isArray(info.packs_showList)) {
+        info.packs_showList.forEach(function (item) {
+          list.push({
+            label: item.packNum + '条',
+            value: item.packNum,
+            normal_discount: item.normal_discount,
+            senior_discount: item.senior_discount
+          })
+        })
+        this.chargeCount.infoList = list
+        this.chargeCount.value = this.chargeCount.infoList[0].value
+        this.charge.count = this.chargeCount.value
+      }
+    },
+    calcPrice: function () {
+      var specItem = this.getSpecItem()
+      var countItem = this.getCountItem()
+      // 数据包折扣
+      var discount = this.charge.discount
+      // 条数折扣
+      var cDiscount = this.specActive == 1 ? countItem.senior_discount : countItem.normal_discount
+      // 优惠前价格
+      var beforePrice = specItem.before * 1 * countItem.value * 1
+      // 优惠后价格
+      var afterPrice = specItem.before * discount * countItem.value * cDiscount
+
+      this.price.before = beforePrice.toFixed(2)
+      this.price.after = afterPrice.toFixed(2)
+
+      this.updatePrice(this.price.after, this.price.before)
+    },
+    getSpecItem: function () {
+      var _this = this
+      var t = {}
+      this.specList.some(function (item) {
+        var gotThis = item.id == _this.specActive
+        if (gotThis) {
+          t = item
+        }
+        return gotThis
+      })
+      return t
+    },
+    getCountItem: function () {
+      var _this = this
+      var t = {}
+      this.chargeCount.infoList.some(function (item) {
+        var gotThis = item.value == _this.charge.count
+        if (gotThis) {
+          t = item
+        }
+        return gotThis
+      })
+      return t
+    },
+    clickSpec: function (item) {
+      this.specActive = item.id
+    },
+    showQuestion: function () {
+      this.dialog.question = true
+    },
+    updateS: function (data) {
+      var check = data.check
+      var callback = data.callback
+      callback(this.checkSubmitStatus(check))
+    },
+    checkSubmitStatus: function (checkStatus) {
+      this.bottomConf.checkboxStatus = checkStatus
+      return checkStatus
+    },
+    readEvent: function () {
+      this.savePageState()
+      if (utils.isWeiXinBrowser) {
+        location.href = '/front/staticPage/wx-serviceterms.html'
+      } else {
+        location.href = '/jyapp/front/staticPage/dataExport_serviceterms.html'
+      }
+    },
+    getPickId: function () {
+      var specMap = {
+        0: 'normal',
+        1: 'senior'
+      }
+      return [specMap[this.specActive], this.charge.count].join('_')
+    },
+    submitOrder: function () {
+      var loading = this.showLoading()
+      var packId = this.getPickId()
+      var data = {
+        packId: packId,
+        lotteryId: this.$refs.couponRef.coupon.userLotteryId
+      }
+      $.ajax({
+        url: '/subscribepay/dataExportPack/createOrder',
+        type: 'POST',
+        data: data,
+        success: function (res) {
+          loading && loading.clear()
+          if (res.error_code === 0 && res.data) {
+            if (utils.isWeiXinBrowser) {
+              history.replaceState({}, '', '/front/wx_dataExport/wxToOrderDetail?orderCode=' + res.data.orderCode);
+              location.href = '/weixin/pay/checkout_dataexport?orderCode=' + res.data.orderCode
+            } else {
+              history.replaceState({}, '', '/jyapp/front/dataExport/toOrderDetail?orderCode=' + res.data.orderCode);
+              location.href = "/jyapp/pay/checkout_dataexport?orderCode=" + res.data.orderCode + '&from=buy'
+            }
+          }
+        },
+        error: function () {
+          loading && loading.clear()
+        }
+      })
+    },
+    updatePrice: function (after, before) {
+      console.log('原价:' + before, '折扣价:' + after)
+      this.bottomConf.disPrice = after;
+      this.bottomConf.initPrice = before;
+      this.$refs.couponRef.getCoupon()
+    },
+    restoreState: function () {
+      var $data = sessionStorage.getItem(this.sessKey)
+      if ($data) {
+        $data = JSON.parse($data)
+        Object.assign(this.priceInfo, $data.priceInfo)
+        Object.assign(this.price, $data.price)
+        this.specActive = $data.specActive
+        Object.assign(this.charge, $data.charge)
+        Object.assign(this.specList, $data.specList)
+        Object.assign(this.chargeCount, $data.chargeCount)
+        Object.assign(this.bottomConf, $data.bottomConf)
+
+        sessionStorage.removeItem(this.sessKey)
+      }
+      return !!$data
+    },
+    savePageState: function () {
+      var data = {
+        priceInfo: this.priceInfo,
+        price: this.price,
+        specActive: this.specActive,
+        charge: this.charge,
+        specList: this.specList,
+        chargeCount: this.chargeCount,
+        bottomConf: {
+          initPrice: this.bottomConf.initPrice,
+          realPrice: this.bottomConf.realPrice,
+          disPrice: this.bottomConf.disPrice,
+          checkboxStatus: this.bottomConf.checkboxStatus
+        }
+      }
+      sessionStorage.setItem(this.sessKey, JSON.stringify(data))
+    }
+  }
+})

+ 131 - 0
src/web/templates/frontRouter/wx/my_data_packet/sess/recharge.html

@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+    <meta charset="utf-8">
+    <meta name="keywords" content="剑鱼标讯">
+    <meta name="description" content="剑鱼标讯">
+    <meta name="author" content="剑鱼标讯">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
+    <meta name="browsermode" content="application">
+    <meta name="x5-orientation" content="portrait">
+    <meta name="screen-orientation" content="portrait">
+    <meta name="x5-page-mode" content="app">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black">
+    <meta name="format-detection" content="telephone=no">
+    <title>我的数据流量包</title>
+    <!--S-当前页面的css资源-->
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/reset-css/5.0.1/reset.min.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css />
+    <link rel="stylesheet" href=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/icon/local.css />
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/big-member/css/j-icons.css?v={{Msg "seo" "version"}}'>
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/big-member/css/public.css?v={{Msg "seo" "version"}}'>
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/coupon/css/pay-order-template.css?v={{Msg "seo" "version"}}' />
+    <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/common-module/data-pack/css/recharge.css?v={{Msg "seo" "version"}}' />
+</head>
+<body>
+  <div class="j-container">
+    {{include "/big-member/header.html"}}
+    <div class="j-main recharge" id="app" v-cloak>
+      <div class="j-container">
+        <div class="j-main">
+            <van-cell-group>
+              <van-cell center title="充值条数" is-link :value="charge.count + '条'" @click="chargeCount.pickerShow = true"></van-cell>
+              <van-cell center title="有效期" is-link :value="charge.duration + '年'"></van-cell>
+            </van-cell-group>
+            <div class="spec-list-container">
+              <div class="spec-title">请选择数据规格</div>
+              <div class="spec-list">
+                <div
+                  class="spec-item"
+                  :class="{ active: item.id == specActive }"
+                  v-for="(item, index) in specList"
+                  @click="clickSpec(item)"
+                  :key="index">
+                  <div class="spec-i-label">${ item.label }</div>                    
+                  <div class="spec-i-sub">
+                    <div class="spec-i-text del">${ item.price * charge.discount }元/条</div>
+                    <div class="spec-i-text">${ item.price }元/条</div>
+                  </div>                    
+                </div>
+              </div>
+              <div class="spec-question">
+                <span>标准字段包、高级字段包</span>
+                <van-icon name="question-o" @click="showQuestion"></van-icon>
+              </div>
+            </div>
+            <div class="notes-to-buy">
+              购买须知:<br />
+              1、数据流量包是数据自助导出充值服务,最低1000条起充,仅针对线上自助充值使用(与线下企业数据充值账户不可共享);<br />
+              2、已购数据包条数按导出数据量扣除(数据已排重,相同数据多次导出,不重复计费),有效期2年,因产品特殊性,购买后不支持退款。
+            </div>
+        </div>
+        <div class="j-footer">
+          <pay-order-template ref="couponRef" :config="bottomConf" @update="updateS"></pay-order-template>
+        </div>
+        <van-popup
+          v-model="chargeCount.pickerShow"
+          closeable
+          round
+          position="bottom"
+          close-icon="clear"
+          class="j-popup"
+          :style="{ height: '45%' }">
+          <div class="j-container">
+            <div class="popup-header header-title">充值条数</div>
+            <div class="j-main">
+              <div class="select-group">
+                <div class="select-item"
+                  v-for="(item, index) in chargeCount.infoList"
+                  :key="index"
+                  @click="chargeCount.value = item.value"
+                  :class="{ active: chargeCount.value === item.value }">
+                  <span class="item-label">${ item.label }</span>
+                  <span class="j-icon base-icon icon-tick"></span>
+                </div>
+              </div>
+            </div>
+            <div class="j-button-group">
+              <button class="j-button-confirm" @click="charge.count = chargeCount.value;chargeCount.pickerShow = false">确定</button>
+            </div>
+          </div>
+        </van-popup>
+        <van-dialog
+          v-model="dialog.question"
+          title="字段包说明"
+          confirm-button-text="我知道了"
+          confirm-button-color="#2abed1"
+          class="question-tip"
+          @confirm="dialog.question = false">
+          <div class="content-list">
+            <div class="content-item">
+              <div class="content-label">· 标准字段包</div>
+              <div class="content-text">
+                省份、城市、公告标题、剑鱼标讯地址、公告类别、发布时间、采购单位、中标单位、中标金额、项目名称、公告内容
+              </div>
+            </div>
+            <div class="content-item">
+              <div class="content-label">· 高级字段包</div>
+              <div class="content-text">
+                省份、城市、公告标题、公告类别、公告内容、发布时间、公告地址、剑鱼标讯地址、项目名称、项目范围、预算金额、中标金额、开标日期、采购单位、采购单位信息(采购单位联系人、采购单位联系电话、招标代理机构)、中标单位信息(中标单位、中标单位联系人、中标单位联系电话)(来源:招标公告网站)、中标单位信息(中标单位联系人、中标单位联系电话、电子邮箱)(来源:国家企业公示网站)
+              </div>
+            </div>
+          </div>
+        </van-dialog>
+      </div>
+    </div>
+  </div>
+  <!--S-当前页面的资源-->
+  <script src="/big-member/js/rem.js"></script>
+  <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
+  <script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
+  <script src=//cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js></script>
+  <!--E-当前页面的资源-->
+  {{include "/big-member/commonjs.html"}}
+  <script src='{{Msg "seo" "cdn"}}/common-module/coupon/js/pay-order-template.js?v={{Msg "seo" "version"}}'></script>
+  <script src='{{Msg "seo" "cdn"}}/common-module/data-pack/js/recharge.js?v={{Msg "seo" "version"}}'></script>
+  {{include "/common/baiducc.html"}}
+</body>
+
+</html>