123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- <template>
- <view class="container">
- <navbar :config="config" backColor="#999999"></navbar>
- <view class="card-list">
- <view class="item u-FFF" v-for="(item,index) in list" :key="item.id">
- <image :src="imgUrl+'/cardBag.png'"></image>
- <view class="position-ab">
- <view class="u-flex-center-sb pd30">
- <view>
- <view class="u-font20"><text>¥</text><text class="font52 u-ml5 u-mr5">{{item.money}}</text>元 </view>
- <view class="u-font24 u-flex-center"><text class="u-text400">购买此卡送</text><text
- class="u-font30 u-DAC6A1">{{item.append}}</text>元</view>
- </view>
- <view class="btn" v-if="ispay">
- <button class="u-font24" @click="buyCard(item.id)">立即购买</button>
- </view>
- </view>
- </view>
- </view>
- <nodata v-if="noData" :config="{top:15,content:'暂无卡包~'}"></nodata>
- </view>
- <uniPopup type="bottom" ref="payOpen">
- <view class="u-bg-fff pay-select">
- <radio-group>
- <label class="u-flex-center-sb" @click="payWay(1)">
- <view class="u-flex-center">
- <image class="img60" :src="imgUrl+'/weChat2.png'"></image>
- <view class="u-ml20 u-font28 u-181818">微信支付</view>
- </view>
- <view>
- <radio value="1" checked />
- </view>
- </label>
- <!-- <label class="u-flex-center-sb u-mt30 " @click="payWay(2)">
- <view class="u-flex-center">
- <image class="img60" src="@/static/alipay.png"></image>
- <view class="u-ml20 u-font28 u-181818">支付宝支付</view>
- </view>
- <view>
- <radio value="2" />
- </view>
- </label> -->
- </radio-group>
- </view>
- <view class="pay-btn">
- <button class="u-btn-two" @click="submitPay">
- 去付款
- </button>
- </view>
- </uniPopup>
- </view>
- </template>
- <script>
- import uniPopup from "@/components/uni-popup/uni-popup.vue";
- let app = getApp()
- export default {
- components: {
- uniPopup,
- },
- data() {
- return {
- config: {
- back: true, //false是tolbar页面 是则不写
- title: '一卡通',
- color: '#1A1A1A',
- //背景颜色;参数一:透明度(0-1);参数二:背景颜色(array则为线性渐变,string为单色背景)
- backgroundColor: [1, "#fff"],
- statusBarFontColor: '#1A1A1A'
- },
- list: [],
- noData: false,
- payStatus: 1,
- selectId: null,
- imgUrl: this.$mConfig.staticUrl,
- ispay: app.globalData.openPay
- }
- },
- onLoad() {
- this.getRefillcardlist()
- },
- methods: {
- payWay(e) {
- this.payStatus = e;
- },
- submitPay() {
- let data = {
- refill_card_id: this.selectId,
- pay_mode: this.payStatus, //* 1:微信 * 2:支付宝
- }
- this.$http.post('/order/refillcard/buy', data)
- .then(res => {
- if (res && res.code == 200) {
- let target = res.data.data
- if (this.payStatus == 1) {
- uni.requestPayment({
- provider: 'wxpay',
- timeStamp: target.timeStamp,
- nonceStr: target.nonceStr,
- package: target.package,
- signType: target.signType,
- paySign: target.paySign,
- // orderInfo: {
- // appid: "wx54fd6fb89a3018e9",
- // noncestr: target.nonceStr,
- // package: "Sign=WXPay",
- // partnerid: "",
- // prepayid: "",
- // timestamp: target.timeStamp,
- // sign: target.paySign,
- // },
- success: (res) => {
- this.$mUtil.toast('购买成功')
- this.$refs.payOpen.close();
- // setTimeout(()=>{
- // uni.switchTab({
- // url:'/pages/index/my'
- // })
- // },1000)
- },
- fail: function(err) {
- console.log('fail:' + JSON.stringify(err));
- }
- });
- } else {
- uni.requestPayment({
- provider: 'alipay',
- orderInfo: target.prePayOrderInfo,
- success: (res) => {
- this.$mUtil.toast('购买成功')
- setTimeout(() => {
- uni.redirectTo({
- url: '/pages/index/my'
- })
- }, 1000)
- },
- fail: function(err) {
- console.log('fail:' + JSON.stringify(err));
- }
- });
- }
- }
- })
- },
- getRefillcardlist() {
- this.$http.get('/refill/card/list')
- .then(res => {
- if (res && res.code == 200) {
- this.list = res.list
- if (res.list.length == 0) {
- this.noData = true
- } else {
- this.noData = false
- }
- } else {
- this.noData = false
- }
- })
- },
- buyCard(id) {
- this.selectId = id
- this.$refs.payOpen.open();
- }
- }
- }
- </script>
- <style lang="scss">
- radio {
- transform: scale(0.7);
- }
- .pay-select {
- margin-top: 66rpx;
- border-radius: 18rpx 18rpx 0 0;
- padding: 48rpx 38rpx;
- }
- .img60 {
- width: 60rpx;
- height: 60rpx;
- }
- .pay-btn {
- padding: 80rpx 30rpx 20rpx 30rpx;
- padding-top: 80rpx;
- background: #fff;
- padding-bottom: 20px;
- button {
- background-color: #0B844A;
- color: #ffffff;
- }
- }
- .font52 {
- font-size: 52rpx;
- }
- .pd30 {
- padding: 30rpx 45rpx;
- }
- /* 文本溢出隐藏 */
- .u-text400 {
- display: block;
- max-width: 300rpx;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
- .card-list {
- padding: 35rpx 15rpx 80rpx;
- .item {
- position: relative;
- image {
- width: 100%;
- height: 180rpx;
- }
- .position-ab {
- position: absolute;
- top: 0rpx;
- width: 100%;
- }
- .btn button {
- width: 149rpx;
- height: 50rpx;
- line-height: 50rpx;
- color: #0B844A;
- background: #ffffff;
- border-radius: 25rpx;
- }
- }
- }
- </style>
|