You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
283 lines
6.0 KiB
283 lines
6.0 KiB
<template> |
|
<view> |
|
<uni-popup ref="indexPopup" type="bottom"> |
|
<view class="trans-block"> |
|
<view class="title">请输入赠卡金额</view> |
|
<text>¥</text> |
|
<input v-model="params.occurAmount" class="uni-input" type="digit" |
|
:placeholder=" '最多可以赠送'+ info.balance + '元'" /> |
|
|
|
<view style="width: 90vw; margin: 150rpx auto 0;"> |
|
<view class="newcard_title zc"> |
|
转出说明 |
|
<view class="tiao"></view> |
|
</view> |
|
<view class="text" style="">转出油费实时到账,本页非任何法律文件,转出钱请认真核对 |
|
转出人,转出金额,如遇纠纷问题,请联系当事人解决处理。 </view> |
|
</view> |
|
|
|
|
|
<button @click="sendTextMessage">确认赠卡</button> |
|
</view> |
|
</uni-popup> |
|
|
|
<uni-popup ref="smscodePopup" type="center"> |
|
<view class="poput_tip"> |
|
<view :style="'background-image: url('+popupbg+ ');'" class="popup_header">短信身份验证</view> |
|
<view style="margin: 20rpx auto;width: 90%;">转出验证:本次转出需要短信确认,验证码 已发送至您的手机 |
|
{{phoneHandle(this.user.userPhone)}} |
|
</view> |
|
<xt-verify-code class="code" v-model="params.code" @confirm="submit" :isFocus="isFocus"> |
|
</xt-verify-code> |
|
<button @click="send" class="oliout_butten" |
|
style="width:60%; border-radius: 50rpx;">{{time===0?'重新发送验证码':time+'S'}} |
|
</button> |
|
</view> |
|
</uni-popup> |
|
|
|
<uni-popup ref="successPopupt" type="center"> |
|
<view class="poput_tip"> |
|
<view :style="'background-image: url('+popupbg+ ');'" class="popup_header">温馨提示</view> |
|
<view style="margin: 20rpx auto;width: 90%;text-align: center;"> |
|
<view class="container_img"> |
|
<image class="success_img" src="../../static/img/success.png"></image> |
|
</view> |
|
转出成功! |
|
</view> |
|
<button @click="$refs.successPopupt.close()" class="oliout_butten" |
|
style="width:60%; border-radius: 50rpx;">确认</button> |
|
</view> |
|
</uni-popup> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
import serve from '@/api/account.js' |
|
export default { |
|
data() { |
|
return { |
|
popupbg: 'https://xoi-support.oss-cn-hangzhou.aliyuncs.com/web/cuscomtrac/popupbg.png', |
|
time: 0, |
|
price: '', |
|
info: {}, |
|
isFocus: false, |
|
user: uni.getStorageSync('user') || {}, |
|
params: { |
|
occurAmount: '', |
|
code: '', |
|
verifyCodeToken: '', |
|
billType: 'OIL_DONATION', |
|
createSource: 'XOIL_DRIVER_WECHAT_APPLET', |
|
} |
|
} |
|
}, |
|
|
|
methods: { |
|
_open(item) { |
|
if (item) { |
|
this.params.occurAmount = '' |
|
this.info = item |
|
this.$refs.indexPopup.open() |
|
} |
|
}, |
|
sendTextMessage() { |
|
if (!this.submitCheck()) return |
|
|
|
// this.time = 60 |
|
// this.timefn() |
|
// this.isFocus = true |
|
// this.$refs.smscodePopup.open() |
|
// return |
|
|
|
if (this.time === 0) { |
|
this.params.code = '' |
|
this.params.verifyCodeToken = '' |
|
serve.giveCard({ |
|
phone: this.user.userPhone |
|
}).then(res => { |
|
if (res.code === 20000) { |
|
this.time = 60 |
|
this.params.verifyCodeToken = res.data.verifyCodeToken |
|
this.timefn() |
|
this.isFocus = true |
|
this.$refs.smscodePopup.open() |
|
} |
|
}) |
|
|
|
} |
|
}, |
|
submitCheck() { |
|
let { |
|
occurAmount |
|
} = this.params |
|
if (!occurAmount) { |
|
uni.showToast({ |
|
title: '请输入赠送金额', |
|
icon: 'none' |
|
}) |
|
return |
|
} |
|
if (occurAmount > this.info.balance) { |
|
uni.showToast({ |
|
title: '超过最多赠送金额', |
|
icon: 'none' |
|
}) |
|
return |
|
} |
|
if (occurAmount < 5) { |
|
uni.showToast({ |
|
title: '赠送金额不可低于5元', |
|
icon: 'none' |
|
}) |
|
return |
|
} |
|
return true |
|
}, |
|
submit() { |
|
let { |
|
giveCustomerId, //收款方 |
|
companyId, //付款方 |
|
accountCardCode //付款方 |
|
} = this.info |
|
|
|
serve.oilCustomerAccountRecord({ |
|
giveCustomerId, |
|
givePhone: '', |
|
companyId, |
|
payerCustomerId: this.user.id, |
|
accountCardCode, |
|
...this.params |
|
}).then(res => { |
|
if (res.code === 20000) { |
|
this.$refs.indexPopup.close() |
|
this.$refs.smscodePopup.close() |
|
this.$refs.successPopupt.open() |
|
this.$emit('reloadCard') |
|
} |
|
}) |
|
}, |
|
|
|
|
|
phoneHandle(e) { |
|
return e.substr(0, 3) + "****" + e.substr(7); |
|
}, |
|
|
|
timefn() { |
|
if (this.time !== 0) { |
|
this.time-- |
|
setTimeout(() => { |
|
this.timefn() |
|
}, 1000) |
|
} |
|
}, |
|
} |
|
} |
|
</script> |
|
|
|
<style lang="scss" scoped> |
|
.newcard_title { |
|
font-size: 30rpx; |
|
font-weight: 600; |
|
} |
|
|
|
.tiao { |
|
height: 5px; |
|
width: 100%; |
|
background: -webkit-linear-gradient(left, rgba(254, 5, 5, 1), rgba(254, 5, 5, .2), rgba(254, 5, 5, 0)); |
|
} |
|
|
|
.text { |
|
padding-right: 50rpx; |
|
color: #666666; |
|
font-size: 23rpx; |
|
margin-top: 15rpx; |
|
} |
|
|
|
.zc { |
|
width: max-content; |
|
|
|
} |
|
|
|
.success_img { |
|
height: 100%; |
|
width: 100%; |
|
} |
|
|
|
.poput_tip { |
|
width: 85vw; |
|
height: 40vh; |
|
background-color: #F8F8F8; |
|
border-radius: 15rpx; |
|
overflow: hidden; |
|
} |
|
|
|
.popup_header { |
|
height: 20%; |
|
width: 100%; |
|
background-color: #FE0505; |
|
color: white; |
|
display: flex; |
|
justify-content: center; |
|
align-items: center; |
|
background-size: 100% 30vh; |
|
} |
|
|
|
.container_img { |
|
height: 100rpx; |
|
width: 100rpx; |
|
overflow: hidden; |
|
border-radius: 50%; |
|
margin: 0 auto; |
|
margin-top: 50rpx; |
|
margin-bottom: 25rpx; |
|
} |
|
|
|
.oliout_butten { |
|
width: 90vw; |
|
margin: 0 auto; |
|
background-color: #FE0505; |
|
margin-top: 60rpx; |
|
color: #F0F0F0; |
|
} |
|
|
|
.trans-block { |
|
padding: 54rpx 43rpx 0 63rpx; |
|
width: 100%; |
|
height: 679rpx; |
|
background: #FFF; |
|
border-radius: 15rpx 15rpx 0 0; |
|
|
|
.title { |
|
margin-bottom: 35rpx; |
|
font-size: 26rpx; |
|
font-weight: 550; |
|
color: #333; |
|
} |
|
|
|
>text { |
|
position: relative; |
|
top: -10rpx; |
|
font-size: 42rpx; |
|
font-weight: 550; |
|
color: #000; |
|
} |
|
|
|
>input { |
|
display: inline-block; |
|
margin-left: 10rpx; |
|
font-size: 28rpx; |
|
color: #000; |
|
} |
|
|
|
>button { |
|
margin-top: 40rpx; |
|
width: 441rpx; |
|
height: 89rpx; |
|
color: #fff; |
|
font-size: 34rpx; |
|
text-align: center; |
|
background: #FF6700; |
|
border-radius: 10rpx |
|
} |
|
} |
|
</style>
|
|
|