1.对接中石油卡券功能

master
杨杰 2 years ago
parent e34c3241d4
commit 16c7fb3ba5
  1. 20
      high-unionPay/App.vue
  2. 18
      high-unionPay/Utils/Api.js
  3. 146
      high-unionPay/pages/goods/coupon-details/coupon-details.vue
  4. 458
      high-unionPay/pages/goods/coupons-info-details/coupons-info-details.vue
  5. 5
      high-unionPay/pages/goods/goods.vue
  6. 228
      high-unionPay/pages/pay/success/success.vue

@ -5,15 +5,19 @@
// brestUrl: 'http://192.168.3.4:9302/brest', // brestUrl: 'http://192.168.3.4:9302/brest',
// imgUrl: 'https://192.168.3.4:9301/filesystem/', // imgUrl: 'https://192.168.3.4:9301/filesystem/',
// //
url: 'https://hsg.dctpay.com/crest', // url: 'https://hsg.dctpay.com/crest',
imgUrl: 'https://hsg.dctpay.com/filesystem/', // v1url:'https://hsg.dctpay.com/v1',
brestUrl : 'https://hsg.dctpay.com/brest', // imgUrl: 'https://hsg.dctpay.com/filesystem/',
imageWxImg:'https://hsg.dctpay.com/filesystem/wxApplets/', // brestUrl : 'https://hsg.dctpay.com/brest',
// imageWxImg:'https://hsg.dctpay.com/filesystem/wxApplets/',
// imageqrImg: 'https://hsg.dctpay.com/filesystem/temporary/',
// //
// url: 'https://hsgcs.dctpay.com/crest', url: 'https://hsgcs.dctpay.com/crest',
// brestUrl : 'https://hsgcs.dctpay.com/brest', v1url:'https://hsgcs.dctpay.com/v1',
// imgUrl: 'https://hsgcs.dctpay.com/filesystem/', brestUrl : 'https://hsgcs.dctpay.com/brest',
// imageWxImg:'https://hsgcs.dctpay.com/filesystem/wxApplets/', imgUrl: 'https://hsgcs.dctpay.com/filesystem/',
imageWxImg:'https://hsgcs.dctpay.com/filesystem/wxApplets/',
imageqrImg: 'https://hsgcs.dctpay.com/filesystem/temporary/',
userInfo: "", userInfo: "",
brestUserInfo : '', brestUserInfo : '',
openId: '', openId: '',

@ -5,7 +5,19 @@ import {
POSTBREST} from "./bRequest.js"; POSTBREST} from "./bRequest.js";
let app = getApp(); let app = getApp();
let base = app.globalData.url; let base = app.globalData.url;
let v1base = app.globalData.v1url;
let brestBase = app.globalData.brestUrl; let brestBase = app.globalData.brestUrl;
//公众号获取跳小程序参数
export const verifyWx = params => {
return POST('GET', `${v1base}/wxMsg/verifyWx`, params).then(res => res.data);
}
//公众号获取跳转小程序地址
export const getScheme = params => {
return POST('GET', `${v1base}/wxMsg/getScheme`, params).then(res => res.data);
}
//根据code获取openId //根据code获取openId
export const HandleCode = params => { export const HandleCode = params => {
return POST('GET', `${base}/wechat/handleCode`, params).then(res => res.data); return POST('GET', `${base}/wechat/handleCode`, params).then(res => res.data);
@ -412,6 +424,12 @@ export const cancelOrderByOrderNo = params => {
return POST('GET', `${base}/highOrder/cancelOrderByOrderNo`, params).then(res => res.data); return POST('GET', `${base}/highOrder/cancelOrderByOrderNo`, params).then(res => res.data);
} }
//中石油生成二维码
export const getVerifyQRCode = params => {
return POST('GET', `${base}/coupon/getVerifyQRCode`, params).then(res => res.data);
}
//分销统计数据 //分销统计数据
export const userDistributionStatistics = params => { export const userDistributionStatistics = params => {
return POST('GET', `${base}/highUser/userDistributionStatistics`, params).then(res => res.data); return POST('GET', `${base}/highUser/userDistributionStatistics`, params).then(res => res.data);

@ -2,7 +2,9 @@
<view> <view>
<view class="backcorf06 height100p"></view> <view class="backcorf06 height100p"></view>
<view class="backcorfff backgrd width90 couhead"> <view class="backcorfff backgrd width90 couhead">
<image class="couimg flleft" mode="widthFix" :src="imageUrl+couponDesInfo.couponInfo.couponImg"></image> <image class="couimg flleft" mode="widthFix"
v-if="couponDesInfo.couponInfo.couponImg && couponDesInfo.couponInfo.couponImg !=undefined"
:src="imageUrl+couponDesInfo.couponInfo.couponImg"></image>
<view class="couhedcout"> <view class="couhedcout">
<view class="height40 width100"> <view class="height40 width100">
<view class="couStu flright fotct mart10" v-if="couponDesInfo.highUserCoupon.status == 2">已使用</view> <view class="couStu flright fotct mart10" v-if="couponDesInfo.highUserCoupon.status == 2">已使用</view>
@ -13,19 +15,31 @@
<view class="fontwig6 font13 fcor999 mart5" v-if="oneTime">领取时间:{{oneTime | formatDate('-')}}</view> <view class="fontwig6 font13 fcor999 mart5" v-if="oneTime">领取时间:{{oneTime | formatDate('-')}}</view>
<view class="fontwig6 font13 fcor999 mart5" v-if="twoTime">使用有效期:{{twoTime | formatDate('-')}}</view> <view class="fontwig6 font13 fcor999 mart5" v-if="twoTime">使用有效期:{{twoTime | formatDate('-')}}</view>
<view class="fontwig6 font13 fcor999 mart5" v-if="threeTime">消费时间:{{threeTime | formatDate('-')}}</view> <view class="fontwig6 font13 fcor999 mart5" v-if="threeTime">消费时间:{{threeTime | formatDate('-')}}</view>
<view class="fontwig6 font13 fcor999 mart5" v-if="couponDesInfo.couponCodeInfo.storeName"> <view class="fontwig6 font13 fcor999 mart5" v-if="couponDesInfo.couponCodeInfo">
加油站点:{{couponDesInfo.couponCodeInfo.storeName}}</view> 加油站点:{{couponDesInfo.couponCodeInfo.storeName}}</view>
</view> </view>
</view> </view>
<view class="width90 backcorfff mart80 qrcs"> <view class="width90 backcorfff mart80 qrcs">
<view class="relybtn font12 fcorfff fotct mart10" v-if="couponDesInfo.couponInfo.couponSource == 5"
@click="getVerifyQRCode(couponDesInfo.highUserCoupon.id)">刷新二维码</view>
<view class="width90 mart20 fotct" v-if="couponDesInfo.couponInfo.couponSource == 5">
<image class="coupon-qr" :src="imageqrUrl+qrimageurl"></image>
</view>
<view class="width100 fotct" v-if="couponDesInfo.couponInfo.couponSource == 4"> <view class="width100 fotct" v-if="couponDesInfo.couponInfo.couponSource == 4">
<view class="font28 fontlet mart5 marb10" style="color: #1593c3;">视频教程</view> <view class="font28 fontlet mart5 marb10" style="color: #1593c3;">视频教程</view>
<yy-video-player :auto-play="false" :url="imagewxUrl+imgadres3" :poster="poster" :show-back-btn="true"> <yy-video-player :auto-play="false" :url="imagewxUrl+imgadres3" :poster="poster" :show-back-btn="true">
</yy-video-player> </yy-video-player>
<image :src="imagewxUrl+imgadres2" mode="widthFix" class="mart10"></image> <image :src="imagewxUrl+imgadres2" mode="widthFix" class="mart10"></image>
</view> </view>
<view class="width100 fotct" v-if="couponDesInfo.couponInfo.couponSource == 5">
<view class="font28 fontlet mart5 marb10" style="color: #1593c3;">视频教程</view>
<yy-video-player :auto-play="false" :url="imagewxUrl+imgadres6" :poster="poster" :show-back-btn="true">
</yy-video-player>
<image :src="imagewxUrl+imgadres5" mode="widthFix" class="mart10"></image>
</view>
<view class="mart20 fotct fcorred font15 marb20 height20" <view class="mart20 fotct fcorred font15 marb20 height20"
v-if="couponDesInfo.couponInfo.reserveStatus && couponDesInfo.highUserCoupon.status != 0"> v-if="couponDesInfo.couponInfo.reserveStatus && couponDesInfo.highUserCoupon.status != 0">
预约订单已成功 门店会在24小时内联系您</view> 预约订单已成功 门店会在24小时内联系您</view>
@ -33,17 +47,20 @@
v-if="!couponDesInfo.couponInfo.reserveStatus && couponDesInfo.highUserCoupon.status != 0 && couponDesInfo.couponInfo.couponSource == 3"> v-if="!couponDesInfo.couponInfo.reserveStatus && couponDesInfo.highUserCoupon.status != 0 && couponDesInfo.couponInfo.couponSource == 3">
请出示核销码(商户扫客户)</view> 请出示核销码(商户扫客户)</view>
<view class="mart20 fotct fcorred font15 marb20 height20" <view class="mart20 fotct fcorred font15 marb20 height20"
v-if="!couponDesInfo.couponInfo.reserveStatus && couponDesInfo.highUserCoupon.status != 0 && couponDesInfo.couponInfo.couponSource != 3"> v-if="!couponDesInfo.couponInfo.reserveStatus && couponDesInfo.highUserCoupon.status != 0 && couponDesInfo.couponInfo.couponSource != 3 && couponDesInfo.couponInfo.couponSource != 5">
请告知加油员用码商支付</view> 请告知加油员用码商支付</view>
<view class="width90 mart20 fotct" v-if="!couponDesInfo.couponInfo.reserveStatus"> <view class="width90 mart20 fotct" v-if="couponDesInfo.couponInfo.reserveStatus">
<image class="coupon-qr" :src="imageUrl+'couponCode/'+couponDesInfo.highUserCoupon.qrCodeImg"></image> <image class="coupon-qr" :src="imageUrl+'couponCode/'+couponDesInfo.highUserCoupon.qrCodeImg"></image>
</view> </view>
<view class="fotct fcor333 font15 marb10 mart10" <view class="fotct fcor333 font15 marb10 mart10"
v-if="couponDesInfo.couponInfo.couponSource != 4 && couponDesInfo.couponCodeInfo.codeKey"> v-if="couponDesInfo.couponInfo.couponSource != 4 && couponDesInfo.couponInfo.couponSource != 5">
{{couponDesInfo.couponCodeInfo.codeKey}} {{couponDesInfo.couponCodeInfo.codeKey}}
</view> </view>
</view> </view>
<view class="width90 mart10 googscs backcorfff" v-if="couponDesInfo.couponInfo.couponSource != 4"> <view class="width90 mart10 googscs backcorfff"
v-if="couponDesInfo.couponInfo.couponSource != 4 && couponDesInfo.couponInfo.couponSource != 5">
<view class="width90 height45l font18 fcor666 aliitem" v-if="storeList"> <view class="width90 height45l font18 fcor666 aliitem" v-if="storeList">
<view class="width50 alijusstart"> <view class="width50 alijusstart">
<image mode="widthFix" style="width: 50rpx; max-height: 50rpx;margin-right: 10px;" <image mode="widthFix" style="width: 50rpx; max-height: 50rpx;margin-right: 10px;"
@ -69,8 +86,7 @@
</view> </view>
</view> </view>
<view class="height60"></view> <view class="height60"></view>
<!-- <button class="czlq width100" v-if="couponDesInfo.highUserCoupon.status == 0" <!-- <button class="coupne-btn font14 width100" @click="jumpzyhk">前往"中油好客e站小程序"</button> -->
@click="againReceiveCoupon">重新领取</button> -->
</view> </view>
</template> </template>
@ -78,7 +94,9 @@
import { import {
getUserCouponDetail, getUserCouponDetail,
getStoreListByCoupon, getStoreListByCoupon,
againReceiveCoupon getVerifyQRCode,
verifyWx,
getScheme
} from "../../../Utils/Api.js" } from "../../../Utils/Api.js"
import xiaoVideoElement from '../../../components/yy-video-player/yy-video-player.nvue' import xiaoVideoElement from '../../../components/yy-video-player/yy-video-player.nvue'
let app = getApp() let app = getApp()
@ -91,10 +109,13 @@
couDesId: '', couDesId: '',
imageUrl: app.globalData.imgUrl, imageUrl: app.globalData.imgUrl,
imagewxUrl: app.globalData.imageWxImg, imagewxUrl: app.globalData.imageWxImg,
imageqrUrl: app.globalData.imageqrImg,
imgadres1: 'dhl.png', imgadres1: 'dhl.png',
imgadres2: 'video.jpg', imgadres2: 'video.jpg',
imgadres3: 'playVideo.mp4', imgadres3: 'playVideo.mp4',
imgadres: 'noorder.png', imgadres: 'noorder.png',
imgadres5: 'petrovideo.jpg', //
imgadres6: 'petroplayVideo.mp4', //
couponDesInfo: [], couponDesInfo: [],
storeList: [], storeList: [],
oneTime: '', oneTime: '',
@ -103,7 +124,8 @@
menddesId: '', menddesId: '',
pageNum: 1, pageNum: 1,
pageSize: 1, pageSize: 1,
isNoMoreData: false isNoMoreData: false,
qrimageurl: '' //
} }
}, },
onLoad(option) { onLoad(option) {
@ -129,10 +151,33 @@
return `${year}${spe}${month}${spe}${day} ${h}:${mm}:${s}`; return `${year}${spe}${month}${spe}${day} ${h}:${mm}:${s}`;
} }
}, },
onReachBottom() { onReachBottom() {},
// this.getStoreListByCoupon();
},
methods: { methods: {
onUnload() {
clearInterval(this.Timer);
},
Timer() {},
//
setTimer() {
let that = this;
let holdTime = 60;
that.Timer = setInterval(() => {
if (holdTime <= 0) {
uni.showModal({
title: '提示',
content: '当前二维码已失效,请刷新后展示',
success: function(res) {
if (res.confirm) {
that.getVerifyQRCode(that.couponDesInfo.highUserCoupon.id);
}
}
})
clearInterval(that.Timer);
return;
}
holdTime--;
}, 1000)
},
// //
getUserCouponDetail() { getUserCouponDetail() {
uni.showLoading({ uni.showLoading({
@ -145,7 +190,11 @@
if (res.return_code == '000000') { if (res.return_code == '000000') {
this.couponDesInfo = res.return_data; this.couponDesInfo = res.return_data;
uni.hideLoading(); uni.hideLoading();
if (res.return_data.couponInfo.couponSource == 4) { if (res.return_data.couponInfo.couponSource == 5) {
this.getVerifyQRCode(res.return_data.highUserCoupon.id);
}
if (res.return_data.couponInfo.couponSource == 4 || res.return_data.couponInfo
.couponSource == 5) {
this.oneTime = res.return_data.highUserCoupon.createTime; this.oneTime = res.return_data.highUserCoupon.createTime;
this.twoTime = res.return_data.highUserCoupon.useEndTime; this.twoTime = res.return_data.highUserCoupon.useEndTime;
this.threeTime = res.return_data.highUserCoupon.consumeTime; this.threeTime = res.return_data.highUserCoupon.consumeTime;
@ -160,6 +209,19 @@
} }
}) })
}, },
//
getVerifyQRCode(item) {
let params = {
userCouponId: item
}
getVerifyQRCode(params).then(res => {
if (res.return_code == '000000') {
this.qrimageurl = res.return_data;
clearInterval(this.Timer);
this.setTimer();
}
});
},
// //
seeloaction(e) { seeloaction(e) {
uni.openLocation({ uni.openLocation({
@ -209,33 +271,11 @@
} }
}) })
}, },
// //
againReceiveCoupon() { jumpzyhk() {
uni.showLoading({ getScheme().then(res => {
title: '领取中...'
})
let params = {
couponId: this.couponDesInfo.couponInfo.id
}
againReceiveCoupon(params).then(res => {
if (res.return_code == '000000') { if (res.return_code == '000000') {
uni.hideLoading(); location.href = res.return_data.url_link;
uni.showToast({
icon: 'none',
title: '领取成功',
duration: 2000
})
this.couponDesInfo = res.return_data;
this.oneTime = res.return_data.highUserCoupon.createTime;
this.twoTime = res.return_data.highUserCoupon.useEndTime;
this.threeTime = res.return_data.highUserCoupon.consumeTime;
} else {
uni.hideLoading();
uni.showToast({
icon: 'none',
title: res.return_msg,
duration: 2000
})
} }
}) })
}, },
@ -256,6 +296,16 @@
background-color: #f5f5f5; background-color: #f5f5f5;
} }
.relybtn {
background-color: #0083f5;
width: 110px;
margin-left: auto;
margin-right: auto;
height: 30px;
border-radius: 5px;
line-height: 30px;
}
.couhead { .couhead {
position: absolute; position: absolute;
top: 20px; top: 20px;
@ -277,6 +327,7 @@
background-color: #dceefe; background-color: #dceefe;
color: #0076dd; color: #0076dd;
height: 60rpx; height: 60rpx;
font-size: 12px;
line-height: 60rpx; line-height: 60rpx;
width: 60px; width: 60px;
border-radius: 5px 0px 0px 5px; border-radius: 5px 0px 0px 5px;
@ -358,7 +409,7 @@
position: fixed; position: fixed;
bottom: 0px; bottom: 0px;
background-color: red; background-color: red;
color: #FFFFFF; color: #FFFFFF;
border-radius: 0px; border-radius: 0px;
} }
@ -368,4 +419,15 @@
background-color: red; background-color: red;
color: #FFFFFF; color: #FFFFFF;
} }
.coupne-btn {
position: fixed;
bottom: 0px;
background-color: #0083f5;
color: #FFFFFF;
height: 45px;
line-height: 45px;
border-radius: 0px;
z-index: 9999;
}
</style> </style>

File diff suppressed because one or more lines are too long

@ -59,7 +59,7 @@
</view> </view>
<view class="mart10 width100 font14 fcor999 height20"> <view class="mart10 width100 font14 fcor999 height20">
<view class="width70 flleft">有效期至: {{goodsData[0].salesEndTime | formatDate('-')}}</view> <view class="width70 flleft">有效期至: {{goodsData[0].salesEndTime | formatDate('-')}}</view>
<view class="width30 flright fotrt" v-if="goodsData[0].couponSource != 4">库存 : <view class="width30 flright fotrt" v-if="goodsData[0].couponSource != 4 && goodsData[0].couponSource != 5">库存 :
{{goodsData[0].stockCount}} {{goodsData[0].stockCount}}
</view> </view>
</view> </view>
@ -299,13 +299,14 @@
}, },
buy() { buy() {
let that = this; let that = this;
if (this.goodsData[0].stockCount == 0 && this.goodsData[0].couponSource != 4) { if (this.goodsData[0].stockCount == 0 && this.goodsData[0].couponSource != 4 && this.goodsData[0].couponSource != 5) {
uni.showToast({ uni.showToast({
title: '库存不足', title: '库存不足',
icon: "none" icon: "none"
}); });
return; return;
} }
if(this.goodsData[0].reserveStatus && this.storeName == ''){ if(this.goodsData[0].reserveStatus && this.storeName == ''){
uni.showToast({ uni.showToast({
title: '请选择门店', title: '请选择门店',

@ -1,16 +1,17 @@
<template> <template>
<view> <view>
<view class="width100" v-if="couponDesInfo"> <view class="width100" v-if="couponDesInfo">
<view class="width100 fotct coupon-status font20 fcorred" v-if="couponDesInfo.couponCodeInfo.status == 3"> <!-- <view class="width100 fotct coupon-status font20 fcorred" v-if="couponDesInfo.couponCodeInfo.status == 3">
已使用 已使用
</view> </view>
<view class="width100 fotct coupon-status font20 fcor41c" v-if="couponDesInfo.couponCodeInfo.status == 2"> <view class="width100 fotct coupon-status font20 fcor41c" v-if="couponDesInfo.couponCodeInfo.status == 2">
未使用 未使用
</view> </view> -->
<view class="line1"></view> <view class="line1"></view>
<view class="width90"> <view class="width90">
<view class="flright fotct"> <view class="flright fotct">
<image mode="widthFix" class="coupon-img" :src="imageUrl+couponDesInfo.couponInfo.couponImg"></image> <image mode="widthFix" class="coupon-img" :src="imageUrl+couponDesInfo.couponInfo.couponImg">
</image>
</view> </view>
<view class="coupon-mes mart10"> <view class="coupon-mes mart10">
<view class="fcor333 fontwig6 font24 width100 text2">{{couponDesInfo.couponInfo.couponName}}</view> <view class="fcor333 fontwig6 font24 width100 text2">{{couponDesInfo.couponInfo.couponName}}</view>
@ -23,46 +24,48 @@
</view> </view>
</view> </view>
<view class="line1 mart15"></view> <view class="line1 mart15"></view>
<view class="relybtn font13 fcorfff fotct mart20 marb10"
v-if="couponDesInfo.couponInfo.couponSource == 5"
@click="getVerifyQRCode(couponDesInfo.highUserCoupon.id)">刷新二维码</view>
<view class="width90 mart20 fotct" v-if="couponDesInfo.couponInfo.couponSource == 5">
<image class="coupon-qr" :src="imageqrUrl+qrimageurl">
</image>
</view>
<view class="width100 fotct" v-if="couponDesInfo.couponInfo.couponSource == 4"> <view class="width100 fotct" v-if="couponDesInfo.couponInfo.couponSource == 4">
<view class="font28 fontlet mart5 marb10" style="color: #1593c3;">视频教程</view> <view class="font28 fontlet mart5 marb10" style="color: #1593c3;">视频教程</view>
<yy-video-player <yy-video-player :auto-play="false" :url="imagewxUrl+imgadres3" :poster="poster" :show-back-btn="true">
:auto-play="false" </yy-video-player>
:url="imagewxUrl+imgadres3"
:poster="poster"
:show-back-btn="true"
></yy-video-player>
<image :src="imagewxUrl+imgadres2" mode="widthFix" class="mart10"></image> <image :src="imagewxUrl+imgadres2" mode="widthFix" class="mart10"></image>
</view> </view>
<!-- <view class="width100 fotct" v-if="couponDesInfo.couponInfo.couponSource == 5">
<view class="font28 fontlet mart5 marb10" style="color: #1593c3;">视频教程</view>
<yy-video-player :auto-play="false" :url="imagewxUrl+imgadres6" :poster="poster" :show-back-btn="true">
</yy-video-player>
<image :src="imagewxUrl+imgadres5" mode="widthFix" class="mart10"></image>
</view> -->
<view class="width100">
<view class="mart20 fotct fcorred font15 marb20"
v-if="couponDesInfo.couponInfo.reserveStatus && coupstus != 0">预约订单已成功
门店会在24小时内联系您</view>
<view class="mart20 fotct fcorred font15 marb20"
v-if="!couponDesInfo.couponInfo.reserveStatus && coupstus != 0 && couponDesInfo.couponInfo.couponSource == 3">
请出示核销码(商户扫客户)</view>
<view class="mart20 fotct fcorred font15 marb20"
v-if="!couponDesInfo.couponInfo.reserveStatus && coupstus != 0 && couponDesInfo.couponInfo.couponSource != 3 && couponDesInfo.couponInfo.couponSource != 5">
请告知加油员用码商支付</view>
<view class="width90 mart20 fotct" v-if="couponDesInfo.couponInfo.reserveStatus">
<image class="coupon-qr" :src="imageUrl+'couponCode/'+couponDesInfo.highUserCoupon.qrCodeImg">
</image>
</view>
<view class="width100">
<view class="mart20 fotct fcorred font15 marb20 height20"
v-if="couponDesInfo.couponInfo.reserveStatus && couponDesInfo.highUserCoupon.status != 0">
预约订单已成功 门店会在24小时内联系您</view>
<view class="mart20 fotct fcorred font15 marb20 height20"
v-if="!couponDesInfo.couponInfo.reserveStatus && couponDesInfo.highUserCoupon.status != 0 && couponDesInfo.couponInfo.couponSource == 3">
请出示核销码(商户扫客户)</view>
<view class="mart20 fotct fcorred font15 marb20 height20"
v-if="!couponDesInfo.couponInfo.reserveStatus && couponDesInfo.highUserCoupon.status != 0 && couponDesInfo.couponInfo.couponSource != 3">
请告知加油员用码商支付</view>
<view class="width90 mart20 fotct" v-if="!couponDesInfo.couponInfo.reserveStatus">
<image class="coupon-qr" :src="imageUrl+'couponCode/'+couponDesInfo.highUserCoupon.qrCodeImg">
</image>
</view>
</view> </view>
<view class="width90 mart30 font20 fcor333 fotct marb40" v-if="!couponDesInfo">二维码生效中,前往个人中心查看</view> <view class="width90 mart30 font20 fcor333 fotct marb40" v-if="!couponDesInfo">二维码生效中,前往个人中心查看</view>
<view class="width90 height45l font18 fcor666 aliitem" v-if="storeList"> <!-- <view class="width90 mart20" style="height: 80px;" v-for="(store,i) in storeList" :key="i">
<view class="width50 alijusstart">
<image mode="widthFix" style="width: 50rpx; max-height: 50rpx;margin-right: 10px;"
src="../../../static/img/adresw.png"></image> 门店信息
</view>
<view class="width50 alijusend font15" @click="jumpstorelist">查看更多<image style="width: 18px; height: 17px;"
src="../../../static/img/jt.png">
</images>
</view>
</view>
<view class="width90 mart20" style="height: 80px;" v-for="(store,i) in storeList" :key="i">
<view class="coupon-des flleft"> <view class="coupon-des flleft">
<image mode="widthFix" :src="imageUrl+store.ext1"></image> <image mode="widthFix" :src="imageUrl+store.ext1"></image>
</view> </view>
@ -72,18 +75,42 @@
<view class="font14 fcor999 width100 text2 mart5">{{store.address}}</view> <view class="font14 fcor999 width100 text2 mart5">{{store.address}}</view>
</view> </view>
<view class="coupon-map flright width30 fotct" @click="seeloaction(store)"> <view class="coupon-map flright width30 fotct" @click="seeloaction(store)">
<!-- 地图logo -->
<image :src="imagewxUrl+imgadres1"> <image :src="imagewxUrl+imgadres1">
</image> </image>
<view class="mart5 fcor999 font13">{{store.distance}}km</view> <view class="mart5 fcor999 font13">{{store.distance}}km</view>
</view> </view>
</view> </view>
</view> -->
</view>
<view class="width90 height45l font18 fcor666 aliitem" v-if="storeList != ''">
<view class="width50 alijusstart">
<image mode="widthFix" style="width: 50rpx; max-height: 50rpx;margin-right: 10px;"
src="../../../static/img/adresw.png"></image> 门店信息
</view>
<view class="width50 alijusend font15" @click="jumpstorelist">查看更多<image style="width: 18px; height: 17px;"
src="../../../static/img/jt.png">
</images>
</view>
</view>
<view class="line1 width100"></view>
<view class="width90 stoCont" v-for="(store,i) in storeList" :key="i">
<view class="width80p flleft mart10">
<view class="font16 fcor333 fontwig6 text1">{{store.storeName}}</view>
<view class="font13 fcor666 mart10 text1">{{store.address}}</view>
</view>
<view class="width20 flright mart10 fotrt" @click="seeloaction(store)">
<image mode="widthFix" style="width: 25px;height: 25px;" :src="imagewxUrl+imgadres1">
</image>
<view class="mart5 fcor999 font13">{{store.distance}}km</view>
</view> </view>
</view> </view>
<wybPopup ref="popup" class="fotct" type="center" height="850" width="600" radius="6" bgColor="" :showCloseIcon="true" > <image class="popImg" mode="widthFix" :src="imagewxUrl+imgadres4" @click="jumpcjhuod"></image> </wybPopup> <wybPopup ref="popup" class="fotct" type="center" height="850" width="600" radius="6" bgColor=""
:showCloseIcon="true">
<image class="popImg" mode="widthFix" :src="imagewxUrl+imgadres4" @click="jumpcjhuod"></image>
</wybPopup>
<view class="height60"></view> <view class="height60"></view>
<button class="coupne-btn width100" @click="toUser">个人中心</button> <button class="coupne-btn width100" @click="toUser">个人中心</button>
</view> </view>
</template> </template>
@ -91,7 +118,8 @@
import { import {
getUserNewCouponDetail, getUserNewCouponDetail,
getStoreListByCoupon, getStoreListByCoupon,
getActivityByCoupon getActivityByCoupon,
getVerifyQRCode
} from "../../../Utils/Api.js"; } from "../../../Utils/Api.js";
import xiaoVideoElement from '../../../components/yy-video-player/yy-video-player.nvue'; import xiaoVideoElement from '../../../components/yy-video-player/yy-video-player.nvue';
import wybPopup from '../../../components/wyb-popup/wyb-popup.vue'; import wybPopup from '../../../components/wyb-popup/wyb-popup.vue';
@ -106,8 +134,11 @@
couDesId: '', couDesId: '',
imageUrl: app.globalData.imgUrl, imageUrl: app.globalData.imgUrl,
imagewxUrl: app.globalData.imageWxImg, imagewxUrl: app.globalData.imageWxImg,
imgadres2: 'video.jpg', imageqrUrl: app.globalData.imageqrImg,
imgadres3: 'playVideo.mp4', imgadres2: 'video.jpg', //
imgadres3: 'playVideo.mp4', //
imgadres5: 'petrovideo.jpg', //
imgadres6: 'petroplayVideo.mp4', //
imgadres4: 'activityimg.png', imgadres4: 'activityimg.png',
imgadres1: 'dhl.png', imgadres1: 'dhl.png',
couponDesInfo: [], couponDesInfo: [],
@ -117,7 +148,9 @@
threeTime: '', threeTime: '',
pageNum: 1, pageNum: 1,
pageSize: 1, pageSize: 1,
isNoMoreData: false isNoMoreData: false,
qrimageurl: '' ,//
coupstus:0
} }
}, },
onLoad(option) { onLoad(option) {
@ -144,7 +177,7 @@
} }
}, },
onReachBottom() { onReachBottom() {
this.getStoreListByCoupon(); // this.getStoreListByCoupon();
}, },
methods: { methods: {
// //
@ -158,8 +191,13 @@
getUserNewCouponDetail(params).then(res => { getUserNewCouponDetail(params).then(res => {
if (res.return_code == '000000') { if (res.return_code == '000000') {
uni.hideLoading(); uni.hideLoading();
this.couponDesInfo = res.return_data; this.couponDesInfo = res.return_data;
if(res.return_data.couponInfo.couponSource == 4){ this.coupstus = res.return_data.highUserCoupon.status;
if (res.return_data.couponInfo.couponSource == 5) {
this.getVerifyQRCode(res.return_data.highUserCoupon.id);
}
if (res.return_data.couponInfo.couponSource == 4 || res.return_data.couponInfo
.couponSource == 5) {
this.oneTime = res.return_data.highUserCoupon.createTime; this.oneTime = res.return_data.highUserCoupon.createTime;
this.twoTime = res.return_data.highUserCoupon.useEndTime; this.twoTime = res.return_data.highUserCoupon.useEndTime;
this.threeTime = res.return_data.highUserCoupon.consumeTime; this.threeTime = res.return_data.highUserCoupon.consumeTime;
@ -174,6 +212,41 @@
} }
}) })
}, },
//
getVerifyQRCode(item) {
let params = {
userCouponId: item
}
getVerifyQRCode(params).then(res => {
if (res.return_code == '000000') {
this.qrimageurl = res.return_data;
clearInterval(this.Timer);
this.setTimer();
}
});
},
Timer() {},
//
setTimer() {
let that = this;
let holdTime = 60;
that.Timer = setInterval(() => {
if (holdTime <= 0) {
uni.showModal({
title: '提示',
content: '当前二维码已失效,请刷新后展示',
success: function(res) {
if (res.confirm) {
that.getVerifyQRCode(that.couponDesInfo.highUserCoupon.id);
}
}
})
clearInterval(that.Timer);
return;
}
holdTime--;
}, 1000)
},
// //
showPopup() { showPopup() {
this.$refs.popup.show(); this.$refs.popup.show();
@ -194,17 +267,17 @@
}); });
}, },
// //
jumpcjhuod(){ jumpcjhuod() {
this.closePopup(); this.closePopup();
uni.reLaunch({ uni.reLaunch({
url:'../../../subPages/lottery/lottery?id='+this.couDesId url: '../../../subPages/lottery/lottery?id=' + this.couDesId
})
},
//
jumpstorelist() {
uni.navigateTo({
url: '../../../subPages/sotre-details-list/sotre-details-list?id=' + this.couDesId
}) })
},
//
jumpstorelist() {
uni.navigateTo({
url: '../../../subPages/sotre-details-list/sotre-details-list?id=' + this.couDesId
})
}, },
// //
seeloaction(e) { seeloaction(e) {
@ -251,12 +324,9 @@
}) })
}, },
toUser() { toUser() {
// uni.switchTab({ uni.switchTab({
// url: '/pages/tabBar/user/user'
// });
uni.reLaunch({
url: '/pages/tabBar/user/user' url: '/pages/tabBar/user/user'
}) });
}, },
scan() { scan() {
uni.scanCode({ uni.scanCode({
@ -270,8 +340,28 @@
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.popImg { width: 300px; height: 440px; } .popImg {
width: 300px;
height: 440px;
}
.relybtn {
background-color: #0083f5;
width: 110px;
margin-left: auto;
margin-right: auto;
height: 30px;
border-radius: 5px;
line-height: 30px;
}
.jumpbtn{
background-color: #0083f5;
height: 40px;
border-radius: 5px;
line-height: 40px;
}
.loading-text { .loading-text {
width: 100%; width: 100%;
display: flex; display: flex;
@ -282,6 +372,11 @@
font-size: 24upx; font-size: 24upx;
} }
.stoCont {
border-bottom: 1px solid #f6f6f6;
height: 140rpx;
}
.coupon-status { .coupon-status {
height: 35px; height: 35px;
line-height: 35px; line-height: 35px;
@ -308,7 +403,8 @@
color: white; color: white;
font-size: 28px; font-size: 28px;
border-radius: 10px; border-radius: 10px;
image{
image {
width: 80px; width: 80px;
max-height: 80px; max-height: 80px;
} }
@ -333,14 +429,8 @@
.coupne-btn { .coupne-btn {
position: fixed; position: fixed;
bottom: 0px; bottom: 0px;
background-color: red; background-color: #0083f5;
color: #FFFFFF;
}
.coupne-btn {
position: fixed;
bottom: 0px;
background-color: red;
color: #FFFFFF; color: #FFFFFF;
border-radius: 0px;
} }
</style> </style>

Loading…
Cancel
Save