|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <view class="zf"> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <view class="zf_time">支付剩余时间 <u-count-down :time="30 * 60 * 60 * 1000" format="HH:mm"></u-count-down></view> | 
|---|
|  |  |  | <view class="zf_price">¥{{info.price}}</view> | 
|---|
|  |  |  | <view class="zf_tc">骑行套餐</view> | 
|---|
|  |  |  | <view class="zf_list"> | 
|---|
|  |  |  | <view class="zf_list_row"> | 
|---|
|  |  |  | <view class="zf_list_row_left"> | 
|---|
|  |  |  | <image src="@/static/icon/ic_wechat@2x.png" mode="widthFix"></image> | 
|---|
|  |  |  | <text>微信支付</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="zf_list_row_icon"> | 
|---|
|  |  |  | <image src="@/static/icon/ic_choose@2x.png" mode="widthFix"></image> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="tcx_footer" @click="pay"> | 
|---|
|  |  |  | <viwe class="tcx_footer_button">确认支付</viwe> | 
|---|
|  |  |  | <view style="padding-bottom: env(safe-area-inset-bottom)"></view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | id: null, | 
|---|
|  |  |  | info: null | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onLoad(options) { | 
|---|
|  |  |  | this.id = options.id | 
|---|
|  |  |  | this.getDesc() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | async getDesc() { | 
|---|
|  |  |  | let res = await this.$u.api.discountDetail({ id: this.id }) | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | this.info = res.data | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | async pay() { | 
|---|
|  |  |  | let res = await this.$u.api.createDiscountOrderPay({ discountId: this.id }) | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | wx.requestPayment({ | 
|---|
|  |  |  | timeStamp: res.data.timeStamp, | 
|---|
|  |  |  | nonceStr: res.data.nonceStr, | 
|---|
|  |  |  | package: res.data.packageVal, | 
|---|
|  |  |  | signType: res.data.signType, | 
|---|
|  |  |  | paySign: res.data.paySign, | 
|---|
|  |  |  | success (res) { | 
|---|
|  |  |  | if (res.errMsg = 'requestPayment:ok') { | 
|---|
|  |  |  | uni.showToast({ title: '充值成功', icon: 'success', duration: 2000 }); | 
|---|
|  |  |  | uni.reLaunch({ | 
|---|
|  |  |  | url: '/pages/index/index' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | uni.showToast({ title: '未支付', icon: 'error', duration: 2000 }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | fail(err) { | 
|---|
|  |  |  | uni.showToast({ title: '未支付', icon: 'error', duration: 2000 }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  | 
|---|
|  |  |  | <style lang="scss" scoped> | 
|---|
|  |  |  | .zf { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | padding: 0 30rpx; | 
|---|
|  |  |  | box-sizing: border-box; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | flex-direction: column; | 
|---|
|  |  |  | .zf_time { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | font-weight: 400; | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #01B6AD; | 
|---|
|  |  |  | margin-top: 60rpx; | 
|---|
|  |  |  | /deep/ .u-count-down__text { | 
|---|
|  |  |  | font-weight: 400; | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #01B6AD; | 
|---|
|  |  |  | margin-left: 10rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .zf_price { | 
|---|
|  |  |  | font-weight: 600; | 
|---|
|  |  |  | font-size: 60rpx; | 
|---|
|  |  |  | color: #111111; | 
|---|
|  |  |  | margin-top: 20rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .zf_tc { | 
|---|
|  |  |  | font-weight: 400; | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | margin-top: 20rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .zf_list { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-direction: column; | 
|---|
|  |  |  | .zf_list_row { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | height: 108rpx; | 
|---|
|  |  |  | background: rgba(1,182,173,0.06); | 
|---|
|  |  |  | border-radius: 20rpx; | 
|---|
|  |  |  | box-sizing: border-box; | 
|---|
|  |  |  | border: 3rpx solid #01B6AD; | 
|---|
|  |  |  | margin-top: 60rpx; | 
|---|
|  |  |  | padding: 0 30rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  | .zf_list_row_left { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | image { | 
|---|
|  |  |  | width: 40rpx; | 
|---|
|  |  |  | height: 40rpx; | 
|---|
|  |  |  | margin-right: 20rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | text { | 
|---|
|  |  |  | font-weight: 400; | 
|---|
|  |  |  | font-size: 30rpx; | 
|---|
|  |  |  | color: #222222; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .zf_list_row_icon { | 
|---|
|  |  |  | width: 40rpx; | 
|---|
|  |  |  | height: 40rpx; | 
|---|
|  |  |  | image { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | height: 100%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .tcx_footer { | 
|---|
|  |  |  | padding: 0 20rpx; | 
|---|
|  |  |  | box-sizing: border-box; | 
|---|
|  |  |  | position: fixed; | 
|---|
|  |  |  | bottom: 0; | 
|---|
|  |  |  | left: 0; | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-direction: column; | 
|---|
|  |  |  | z-index: 999; | 
|---|
|  |  |  | .tcx_footer_button { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | height: 96rpx; | 
|---|
|  |  |  | line-height: 96rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | background: #01B6AD; | 
|---|
|  |  |  | box-shadow: 0rpx 6rpx 16rpx 0rpx rgba(1,182,173,0.24); | 
|---|
|  |  |  | border-radius: 46rpx; | 
|---|
|  |  |  | font-weight: 500; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | color: #FFFFFF; | 
|---|
|  |  |  | margin-bottom: 20rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|