feat(pay): 添加支付成功页面

This commit is contained in:
woody 2025-07-03 09:40:07 +08:00
parent 08d5253fb1
commit 492dd04657
9 changed files with 1818 additions and 1439 deletions

View File

@ -20,7 +20,7 @@ module.exports = vm => {
//#ifdef DEV_SERVER //#ifdef DEV_SERVER
console.log('DEV_SERVER') console.log('DEV_SERVER')
config.baseURL = 'http://192.168.0.104:8080' config.baseURL = 'https://b747-218-57-66-5.ngrok-free.app'
//#endif //#endif
//#ifdef QA_SERVER //#ifdef QA_SERVER

View File

@ -93,10 +93,15 @@
}, },
"devServer": { "devServer": {
"https": false, "https": false,
"port": 8000,
"disableHostCheck": true,
"proxy": { "proxy": {
"/prod-api": { "/prod-api": {
"target": "http://t-app.beida666.com", "target": "http://192.168.0.104:8080",
"changeOrigin": true "changeOrigin": true,
"pathRewrite": {
"^/prod-api": ""
}
} }
} }
} }

View File

@ -5,7 +5,6 @@
"style": { "style": {
"navigationBarTitleText": "首页", "navigationBarTitleText": "首页",
"navigationBarBackgroundColor": "#fff", "navigationBarBackgroundColor": "#fff",
// "enablePullDownRefresh": true,
"navigationBarHidden": true, "navigationBarHidden": true,
"navigationStyle": "custom" "navigationStyle": "custom"
} }
@ -364,6 +363,13 @@
"navigationBarTitleText": "绑定银行卡" "navigationBarTitleText": "绑定银行卡"
} }
}, },
{
"path": "pages/pay/success",
"style": {
"navigationBarTitleText": "支付成功",
"navigationBarBackgroundColor": "#fff"
}
},
{ {
"path": "pages/mine/order/index", "path": "pages/mine/order/index",
"style": { "style": {

View File

@ -2,100 +2,138 @@
<view class="content"> <view class="content">
<u-toast ref="uToast"></u-toast> <u-toast ref="uToast"></u-toast>
<view v-if="!ifshowBtn" class="topbar"> <view v-if="!ifshowBtn" class="topbar">
<view class="levelList_i" v-for="(item, index) in topList" :key="index" @click.prevent="handleLink(item)"> <view
class="levelList_i"
v-for="(item, index) in topList"
:key="index"
@click.prevent="handleLink(item)"
>
{{ item.name }} {{ item.name }}
</view> </view>
</view> </view>
<view class="balance"> <view class="balance">
<view class="ba_list" :style="{ backgroundImage: 'url(' + item.backgroundImg + ')' }" <view
v-for="(item,index) in balanceList" :key="index"> class="ba_list"
:style="{ backgroundImage: 'url(' + item.backgroundImg + ')' }"
v-for="(item, index) in balanceList"
:key="index"
>
<view class="balance_title"> <view class="balance_title">
<view class="title_left"> <view class="title_left">
<view class="">{{item.pkAccountVal}}</view> <view class="">{{ item.pkAccountVal }}</view>
<image v-if="!item.canSee" @click="item.canSee=!item.canSee" class="eyeimg" <image
src="../../../static/images/my_eye.png" mode=""></image> v-if="!item.canSee"
<image v-if="item.canSee" @click="item.canSee=!item.canSee" class="eyeimg" @click="item.canSee = !item.canSee"
src="../../../static/images/my_eye2.png" mode=""></image> class="eyeimg"
src="../../../static/images/my_eye.png"
mode=""
></image>
<image
v-if="item.canSee"
@click="item.canSee = !item.canSee"
class="eyeimg"
src="../../../static/images/my_eye2.png"
mode=""
></image>
</view> </view>
<view class="title_right" @click="goTrans">{{'交易明细'}}</view> <view class="title_right" @click="goTrans">{{ '交易明细' }}</view>
</view> </view>
<view class="balance_total"> <view class="balance_total">
{{`${'总余额'}(${userInfo.currencyIcon})`}} {{ `${'总余额'}(${userInfo.currencyIcon})` }}
</view> </view>
<view class="balance_total2"> <view class="balance_total2">
<text v-if="item.canSee">{{item.balance|numberToCurrency}}</text> <text v-if="item.canSee">{{ item.balance | numberToCurrency }}</text>
<text v-else>****</text> <text v-else>****</text>
</view> </view>
<view class="balance_line"> <view class="balance_line">
<view>{{`${'可用余额'}(${userInfo.currencyIcon})`}}</view> <view>{{ `${'可用余额'}(${userInfo.currencyIcon})` }}</view>
<view> <view>
<text v-if="item.canSee">{{item.availableBalance|numberToCurrency}}</text> <text v-if="item.canSee">{{
item.availableBalance | numberToCurrency
}}</text>
<text v-else>****</text> <text v-else>****</text>
</view> </view>
</view> </view>
<view class="balance_line"> <view class="balance_line">
<view style="display: flex; align-items: center">
<view style="display: flex;align-items: center;"> <view style="margin-right: 20rpx">{{
<view style="margin-right: 20rpx;">{{`${'不可用余额'}(${userInfo.currencyIcon})`}}</view> `${'不可用余额'}(${userInfo.currencyIcon})`
<image @click="showToast(item)" style="width: 25rpx;height:25rpx;" }}</view>
src="../../../static/images/my_tip.png" mode=""> <image
@click="showToast(item)"
style="width: 25rpx; height: 25rpx"
src="../../../static/images/my_tip.png"
mode=""
>
</image> </image>
</view> </view>
<view> <view>
<text v-if="item.canSee">{{item.unavailableBalance|numberToCurrency}}</text> <text v-if="item.canSee">{{
item.unavailableBalance | numberToCurrency
}}</text>
<text v-else>****</text> <text v-else>****</text>
</view> </view>
</view> </view>
<view v-if="item.accountType == 4" class="balance_line"> <view v-if="item.accountType == 4" class="balance_line">
<view>{{`${'可提现金额'}(${userInfo.currencyIcon})`}}</view> <view>{{ `${'可提现金额'}(${userInfo.currencyIcon})` }}</view>
<view> <view>
<text v-if="item.canSee">{{item.withdrawBalance|numberToCurrency}}</text> <text v-if="item.canSee">{{
item.withdrawBalance | numberToCurrency
}}</text>
<text v-else>****</text> <text v-else>****</text>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<u-modal @confirm="toUnBind" @cancel='isNoBind=false' :show="isNoBind" title="提示" width="100%" <u-modal
:showCancelButton="true" content='请先进行经销商认证'></u-modal> @confirm="toUnBind"
@cancel="isNoBind = false"
:show="isNoBind"
title="提示"
width="100%"
:showCancelButton="true"
content="请先进行经销商认证"
></u-modal>
</view> </view>
</template> </template>
<script> <script>
import * as bal from "@/config/balance.js" import * as bal from '@/config/balance.js'
export default { export default {
data() { data() {
return { return {
topList: [{ topList: [
{
name: '充值', name: '充值',
path: '/pages/pay/index', path: '/pages/pay/index',
id: '1' id: '1',
}, { },
{
name: '提现', name: '提现',
path: '/pages/mine/balance/withdrawal', path: '/pages/mine/balance/withdrawal',
id: '2' id: '2',
}, { },
{
name: '转账', name: '转账',
path: '/pages/mine/balance/transfer', path: '/pages/mine/balance/transfer',
id: '3' id: '3',
}, ], },
tabActive: "", ],
tabActive: '',
balanceList: [], balanceList: [],
userInfo: {}, userInfo: {},
ifshowBtn: false, ifshowBtn: false,
isNoBind:false isNoBind: false,
} }
}, },
onLoad() { onLoad() {
let params = { let params = {
ifcz: true isRecharge: true,
} }
this.topList[0].path = '/pages/pay/index?paramsPost=' + JSON.stringify(params) this.topList[0].path =
'/pages/pay/index?paramsPost=' + JSON.stringify(params)
this.getList() this.getList()
this.userInfo = uni.getStorageSync('User') this.userInfo = uni.getStorageSync('User')
}, },
@ -110,39 +148,45 @@
} else { } else {
this.ifshowBtn = false this.ifshowBtn = false
} }
}, },
gettopList() { gettopList() {
if (this.userInfo.pkCountry == 1 && this.userInfo.pkGradeId == 1) { if (this.userInfo.pkCountry == 1 && this.userInfo.pkGradeId == 1) {
this.topList = [{ this.topList = [
{
name: '充值', name: '充值',
path: '/pages/pay/index', path: '/pages/pay/index',
id: '1' id: '1',
}, { },
{
name: '提现', name: '提现',
path: '/pages/mine/balance/withdrawal', path: '/pages/mine/balance/withdrawal',
id: '2' id: '2',
}, ] },
]
} else { } else {
this.topList = [{ this.topList = [
{
name: '充值', name: '充值',
path: '/pages/pay/index', path: '/pages/pay/index',
id: '1' id: '1',
}, { },
{
name: '提现', name: '提现',
path: '/pages/mine/balance/withdrawal', path: '/pages/mine/balance/withdrawal',
id: '2' id: '2',
}, { },
{
name: '转账', name: '转账',
path: '/pages/mine/balance/transfer', path: '/pages/mine/balance/transfer',
id: '3' id: '3',
}, ] },
]
} }
}, },
// //
goTrans() { goTrans() {
uni.navigateTo({ uni.navigateTo({
url: '/pages/mine/balance/transDetail' url: '/pages/mine/balance/transDetail',
}) })
}, },
showToast(item) { showToast(item) {
@ -151,7 +195,6 @@
}) })
}, },
getList() { getList() {
bal.getWalletBalance().then(res => { bal.getWalletBalance().then(res => {
res.data.memberWalletBalanceVOList.forEach(ele => { res.data.memberWalletBalanceVOList.forEach(ele => {
ele.canSee = false ele.canSee = false
@ -160,90 +203,87 @@
}) })
}, },
checkExit(item) { checkExit(item) {
bal.getIsExist({ bal
businessModule: item.id - 1 .getIsExist({
}).then((res) => { businessModule: item.id - 1,
if (res.code == 200 && res.flag == "Y") {
uni.navigateTo({
url: item.path
}) })
} else if (res.code == 200 && res.flag == "N") { .then(res => {
if (res.code == 200 && res.flag == 'Y') {
uni.navigateTo({
url: item.path,
})
} else if (res.code == 200 && res.flag == 'N') {
this.isNoBind = true this.isNoBind = true
// uni.navigateTo({ // uni.navigateTo({
// url: "/pages/mine/addLicense/addLicense" // url: "/pages/mine/addLicense/addLicense"
// }) // })
} }
}); })
}, },
toUnBind(){ toUnBind() {
uni.navigateTo({ uni.navigateTo({
url: "/pages/delear/index" url: '/pages/delear/index',
}) })
}, },
handleLink(item) { handleLink(item) {
this.tabActive = item.path; this.tabActive = item.path
if (item.id == 2 || item.id == 3) { if (item.id == 2 || item.id == 3) {
if (this.userInfo.pkCountry == 1) { if (this.userInfo.pkCountry == 1) {
if (this.userInfo.pkGradeId == 1 && item.id == 2) { if (this.userInfo.pkGradeId == 1 && item.id == 2) {
} else { } else {
bal.getIfAuth({ bal
businessModule: item.id - 1 .getIfAuth({
}).then(res => { businessModule: item.id - 1,
if (res.code == 200 && res.flag == "Y") { })
.then(res => {
if (res.code == 200 && res.flag == 'Y') {
this.checkExit(item) this.checkExit(item)
} else if (res.code == 200 && res.flag == "N") { } else if (res.code == 200 && res.flag == 'N') {
this.smShow = true; this.smShow = true
uni.showToast({ uni.showToast({
title: '请先进行实名认证' title: '请先进行实名认证',
}) })
uni.navigateTo({ uni.navigateTo({
url: "/pages/selfService/realName/realName" url: '/pages/selfService/realName/realName',
}) })
} }
}) })
} }
} else { } else {
uni.navigateTo({ uni.navigateTo({
url: item.path url: item.path,
}) })
} }
} else { } else {
let paramsPost = { let paramsPost = {
ifcz: true isRecharge: true,
}; }
uni.navigateTo({ uni.navigateTo({
url: `${item.path}?paramsPost=${encodeURIComponent(JSON.stringify(paramsPost))}` url: `${item.path}?paramsPost=${encodeURIComponent(JSON.stringify(paramsPost))}`,
}); })
} }
}, },
} },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.content { .content {
background: #f2f2f2; background: #f2f2f2;
padding-bottom: 40rpx; padding-bottom: 40rpx;
.topbar { .topbar {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 27rpx 0; padding: 27rpx 0;
background-color: #FFFFFF; background-color: #ffffff;
.levelList_i { .levelList_i {
min-width: 200rpx; min-width: 200rpx;
height: 60rpx; height: 60rpx;
border: 2rpx solid #DDDDDD; border: 2rpx solid #dddddd;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@ -254,16 +294,14 @@
} }
.levelList_i:active { .levelList_i:active {
background-color: #005BAC; background-color: #005bac;
color: #ffffff; color: #ffffff;
} }
} }
.balance { .balance {
padding: 0 23rpx; padding: 0 23rpx;
background: #F2F2F2; background: #f2f2f2;
.ba_list { .ba_list {
margin-top: 30rpx; margin-top: 30rpx;
@ -328,6 +366,5 @@
} }
} }
} }
}
}
</style> </style>

View File

@ -6,193 +6,168 @@
--> -->
<template> <template>
<view class="content"> <view class="content">
<view class="index_header"> <view class="index_header"> </view>
</view>
<view class="contxt"> <view class="contxt">
<template> <template>
<view class="tit">{{'待支付金额'}}</view> <view class="tit">{{ '待支付金额' }}</view>
<view class="tit1"> <view class="tit1">
{{ paramsPost.orderAmount | numberToCurrency }} {{ paramsPost.orderAmount | numberToCurrency }}
</view> </view>
<view class="tit2">{{'请在'}} <view class="tit2"
<view class="tit3">{{ countDown }}</view>{{'内完成支付,否则订单将会被自动取消'}} >{{ '请在' }} <view class="tit3">{{ countDown }}</view
>{{ '内完成支付,否则订单将会被自动取消' }}
</view> </view>
</template> </template>
<!-- 暂时隐藏 --> <!-- 暂时隐藏 -->
<view v-if="false" class="kuang"> <view v-if="false" class="kuang">
<u-collapse
<u-collapse :value="activeNames" :value="activeNames"
ref="collapse" ref="collapse"
@open="change" @open="change"
@close="close" @close="close"
accordion accordion
:border="false"> :border="false"
>
<u-collapse-item name="1"> <u-collapse-item name="1">
<view slot="title" <view slot="title" class="pf">
class="pf"> <img src="@/static/images/under_pay.png" <img src="@/static/images/under_pay.png" alt="" />
alt="" /> <view>{{ '在线支付' }}</view>
<view>{{'在线支付'}}</view>
</view> </view>
<view class="flex_ac" <view class="flex_ac" v-show="this.payList.pay11">
v-show="this.payList.pay11">
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/pay_i2.png" <img src="@/static/images/pay_i2.png" alt="" />
alt="" /> <view>{{ '宝付微信支付' }}</view>
<view>{{'宝付微信支付'}}</view>
</view> </view>
<u-radio-group v-model="whatPay"> <u-radio-group v-model="whatPay">
<u-radio activeColor="red" <u-radio activeColor="red" size="14" label="" :name="11">
size="14"
label=""
:name="11">
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
</view> </view>
<view class="flex_ac" <view class="flex_ac" v-show="this.payList.pay12">
v-show="this.payList.pay12">
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/pay_i2.png" <img src="@/static/images/pay_i2.png" alt="" />
alt="" /> <view>{{ '宝付微信扫码' }}</view>
<view>{{'宝付微信扫码'}}</view>
</view> </view>
<u-radio-group v-model="whatPay"> <u-radio-group v-model="whatPay">
<u-radio activeColor="red" <u-radio activeColor="red" size="14" label="" :name="12">
size="14"
label=""
:name="12">
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
</view> </view>
<view class="flex_ac" <view class="flex_ac" v-show="this.payList.pay13">
v-show="this.payList.pay13">
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/pay_i2.png" <img src="@/static/images/pay_i2.png" alt="" />
alt="" /> <view>{{ '汇付微信支付' }}</view>
<view>{{'汇付微信支付'}}</view>
</view> </view>
<u-radio-group v-model="whatPay"> <u-radio-group v-model="whatPay">
<u-radio activeColor="red" <u-radio activeColor="red" size="14" label="" :name="13">
size="14"
label=""
:name="13">
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
</view> </view>
<view class="flex_ac1" <view class="flex_ac1" v-show="this.payList.pay15">
v-show="this.payList.pay15">
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/jdBank.jpg" <img src="@/static/images/jdBank.jpg" alt="" />
alt="" /> <view>{{ '汇付银行卡' }} ({{ '暂不支持信用卡' }})</view>
<view>{{'汇付银行卡'}} ({{ '暂不支持信用卡' }})</view>
</view> </view>
<view class="pad"> <view class="pad">
<view v-for="(item, index) in hfList" <view
v-for="(item, index) in hfList"
:key="index" :key="index"
class="pay_flax flex_bet" class="pay_flax flex_bet"
@click.prevent="selPayRadio('hf' + index)"> @click.prevent="selPayRadio('hf' + index)"
>
<view class="flax_i"> <view class="flax_i">
{{ item.bankName }} ({{ item.bankNo }}) {{ item.bankName }} ({{ item.bankNo }})
</view> </view>
<u-radio-group v-model="whatPay"> <u-radio-group v-model="whatPay">
<u-radio activeColor="red" <u-radio
activeColor="red"
size="14" size="14"
label='' label=""
:name="'hf' + index"> :name="'hf' + index"
>
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
</view> </view>
<view class="pay_flax flax_i" <view class="pay_flax flax_i" @click="bindBank('hf')">
@click="bindBank('hf')"> <img class="img1" src="@/static/images/addto.png" alt="" />
<img class="img1" <view>{{ '绑定银行卡' }}</view>
src="@/static/images/addto.png"
alt="" />
<view>{{'绑定银行卡'}}</view>
</view> </view>
</view> </view>
</view> </view>
<view class="flex_ac" <view class="flex_ac" v-show="this.payList.pay32">
v-show="this.payList.pay32">
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/pay_i2.png" <img src="@/static/images/pay_i2.png" alt="" />
alt="" />
<view>通联微信支付</view> <view>通联微信支付</view>
</view> </view>
<u-radio-group v-model="whatPay"> <u-radio-group v-model="whatPay">
<u-radio activeColor="red" <u-radio activeColor="red" size="14" label="" :name="32">
</u-radio>
</u-radio-group>
</view>
<view class="flex_ac1" v-show="this.payList.pay33">
<view class="flex_ac_i">
<img src="@/static/images/jdBank.jpg" alt="" />
<view>{{ '通联银行卡' }} ({{ '暂不支持信用卡' }})</view>
</view>
<view class="pad">
<view
v-for="(item, index) in tlList"
:key="index"
class="pay_flax flex_bet"
@click.prevent="selPayRadio('tl' + index)"
>
<view class="flax_i">
{{ item.bankName }} ({{ item.bankNo }})
</view>
<u-radio-group v-model="whatPay">
<u-radio
activeColor="red"
size="14" size="14"
label="" label=""
:name="32"> :name="'tl' + index"
>
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
</view> </view>
<view class="flex_ac1" <view class="pay_flax flax_i" @click="bindBank('tl')">
v-show="this.payList.pay33"> <img class="img1" src="@/static/images/addto.png" alt="" />
<view>{{ '绑定银行卡' }}</view>
</view>
</view>
</view>
<view class="flex_ac1" v-show="this.payList.pay4">
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/jdBank.jpg" <img src="@/static/images/jdBank.jpg" alt="" />
alt="" /> <view>{{ '京东银行卡' }} ({{ '暂不支持信用卡' }})</view>
<view>{{'通联银行卡'}} ({{ '暂不支持信用卡' }})</view>
</view> </view>
<view class="pad"> <view class="pad">
<view v-for="(item, index) in tlList" <view
v-for="(item, index) in jdList"
:key="index" :key="index"
class="pay_flax flex_bet" class="pay_flax flex_bet"
@click.prevent="selPayRadio('tl' + index)"> @click.prevent="selPayRadio('jd' + index)"
>
<view class="flax_i"> <view class="flax_i">
{{ item.bankName }} ({{ item.bankNo }}) {{ item.bankName }} ({{ item.bankNo }})
</view> </view>
<u-radio-group v-model="whatPay"> <u-radio-group v-model="whatPay">
<u-radio activeColor="red" <u-radio
activeColor="red"
size="14" size="14"
label='' label=""
:name="'tl' + index"> :name="'jd' + index"
>
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
</view> </view>
<view class="pay_flax flax_i" <view class="pay_flax flax_i" @click="bindBank('jd')">
@click="bindBank('tl')"> <img class="img1" src="@/static/images/addto.png" alt="" />
<img class="img1" <view>{{ '绑定银行卡' }}</view>
src="@/static/images/addto.png"
alt="" />
<view>{{'绑定银行卡'}}</view>
</view> </view>
</view> </view>
</view> </view>
<view class="flex_ac1"
v-show="this.payList.pay4">
<view class="flex_ac_i">
<img src="@/static/images/jdBank.jpg"
alt="" />
<view>{{'京东银行卡'}} ({{ '暂不支持信用卡' }})</view>
</view>
<view class="pad">
<view v-for="(item, index) in jdList"
:key="index"
class="pay_flax flex_bet"
@click.prevent="selPayRadio('jd' + index)">
<view class="flax_i">
{{ item.bankName }} ({{ item.bankNo }})
</view>
<u-radio-group v-model="whatPay">
<u-radio activeColor="red"
size="14"
label=''
:name="'jd' + index">
</u-radio>
</u-radio-group>
</view>
<view class="pay_flax flax_i"
@click="bindBank('jd')">
<img class="img1"
src="@/static/images/addto.png"
alt="" />
<view>{{'绑定银行卡'}}</view>
</view>
</view>
</view>
</u-collapse-item> </u-collapse-item>
</u-collapse> </u-collapse>
</view> </view>
</view> </view>
@ -200,60 +175,57 @@
<view class="footer_f"> <view class="footer_f">
<view class="footer"> <view class="footer">
<view class="footer_r"> <view class="footer_r">
<u-button type="success" <u-button
type="success"
class="uBtn" class="uBtn"
shape="circle" shape="circle"
:loading="isLoading" :loading="isLoading"
loadingText="支付中" loadingText="支付中"
@tap="quickPay(ifcz)" @tap="quickPay(isRecharge)"
color="linear-gradient(to right, #005BAC, #005BAC )">{{'立即支付'}} color="linear-gradient(to right, #005BAC, #005BAC )"
>{{ '立即支付' }}
</u-button> </u-button>
</view> </view>
</view> </view>
</view> </view>
<!-- 输入验证码密码 --> <!-- 输入验证码密码 -->
<u-popup :show="isPw" <u-popup :show="isPw" mode="center" closeable @close="closePw">
mode="center" <view class="t_tit">{{ '支付验证' }}</view>
closeable
@close="closePw">
<view class="t_tit">{{'支付验证'}}</view>
<view class="box"> <view class="box">
<view class="c_tit">{{ '请输入短信验证码' }}</view>
<view class="c_tit">{{'请输入短信验证码'}}</view> <u--input border="surround" v-model="codeValue"></u--input>
<u--input border="surround" <u-button
v-model="codeValue"></u--input> type="success"
<u-button type="success"
class="uBtn" class="uBtn"
shape="circle" shape="circle"
:loading="isLoading" :loading="isLoading"
loadingText="支付中" loadingText="支付中"
@tap="payPw()" @tap="payPw()"
color="linear-gradient(to right, #005BAC, #005BAC )">{{'立即支付'}} </u-button> color="linear-gradient(to right, #005BAC, #005BAC )"
>{{ '立即支付' }}
</u-button>
</view> </view>
</u-popup> </u-popup>
<!-- 成功 --> <!-- 成功 -->
<u-modal :show="showSucce" <u-modal
:show="showSucce"
showConfirmButton showConfirmButton
:content='content' :content="content"
confirmColor='#DE3932' confirmColor="#DE3932"
@confirm="reset" @confirm="reset"
ref="uModal" ref="uModal"
:asyncClose="true"></u-modal> :asyncClose="true"
></u-modal>
<!-- 二维码 --> <!-- 二维码 -->
<u-popup :show="wxPopup" <u-popup :show="wxPopup" mode="center" closeable @close="closewxPopup">
mode="center" <view class="t_tit">{{ '微信支付' }}</view>
closeable
@close="closewxPopup">
<view class="t_tit">{{'微信支付'}}</view>
<view class="pay_code"> <view class="pay_code">
<div ref="qrCodeUrlWx" <div ref="qrCodeUrlWx" class="qrcode"></div>
class="qrcode"></div>
</view> </view>
</u-popup> </u-popup>
<hiSuccess @successClose="successClose" <hiSuccess @successClose="successClose" ref="hiSuccess"></hiSuccess>
ref="hiSuccess"></hiSuccess>
</view> </view>
</template> </template>
@ -300,7 +272,7 @@ export default {
content: '支付成功', content: '支付成功',
wxPopup: false, wxPopup: false,
luckydrawData: {}, luckydrawData: {},
ifcz: false, isRecharge: false,
czJe: '', czJe: '',
tlList: [], tlList: [],
} }
@ -314,8 +286,8 @@ export default {
) )
this.pkCountry = uni.getStorageSync('pkCountry') this.pkCountry = uni.getStorageSync('pkCountry')
// if (this.paramsPost.ifcz) { // if (this.paramsPost.isRecharge) {
// this.ifcz = this.paramsPost.ifcz // this.isRecharge = this.paramsPost.isRecharge
// this.businessType = 3 // this.businessType = 3
// uni.setNavigationBarTitle({ // uni.setNavigationBarTitle({
// title: '' // title: ''
@ -324,7 +296,7 @@ export default {
// uni.setNavigationBarTitle({ // uni.setNavigationBarTitle({
// title: '' // title: ''
// }); // });
// this.ifcz = false // this.isRecharge = false
// if (JSON.parse(options.paramsPost).orderType == 4) { // if (JSON.parse(options.paramsPost).orderType == 4) {
this.orderCode = this.paramsPost.orderCode this.orderCode = this.paramsPost.orderCode
// this.luckydrawData = this.paramsPost.luckydrawData // this.luckydrawData = this.paramsPost.luckydrawData
@ -374,7 +346,7 @@ export default {
pkBaseId: this.luckydrawData.pkBaseId, pkBaseId: this.luckydrawData.pkBaseId,
payNum: this.luckydrawData.payNum, payNum: this.luckydrawData.payNum,
}) })
.then((res) => { .then(res => {
if (res.code == 200) { if (res.code == 200) {
this.orderData.orderAmount = res.data.toBePaidMoney this.orderData.orderAmount = res.data.toBePaidMoney
this.payDetail = res.data this.payDetail = res.data
@ -411,7 +383,7 @@ export default {
}) })
}, },
fansOrder() { fansOrder() {
api.fansOrder(this.orderCode).then((res) => { api.fansOrder(this.orderCode).then(res => {
this.isLoading = false this.isLoading = false
this.isPw = false this.isPw = false
removeToken() removeToken()
@ -436,7 +408,7 @@ export default {
pkSettleCountry: this.pkCountry, pkSettleCountry: this.pkCountry,
} }
this.isLoading = true this.isLoading = true
url(obj).then((res) => { url(obj).then(res => {
if (res.code == 200) { if (res.code == 200) {
// this.isPw = false // this.isPw = false
// this.$refs.hiSuccess.showSuccess(res.data) // this.$refs.hiSuccess.showSuccess(res.data)
@ -481,7 +453,7 @@ export default {
payType: 3, // payType: 3, //
bindCode: this.hfList[indexed].bindCode, bindCode: this.hfList[indexed].bindCode,
} }
api.unifiedorder(params).then((response) => { api.unifiedorder(params).then(response => {
this.isBank = 'hf' this.isBank = 'hf'
this.bindCode = this.hfList[indexed].bindCode this.bindCode = this.hfList[indexed].bindCode
this.isPw = true this.isPw = true
@ -497,7 +469,7 @@ export default {
payType: 3, // payType: 3, //
bindCode: this.jdList[indexed].bindCode, bindCode: this.jdList[indexed].bindCode,
} }
api.unifiedorder(params).then((response) => { api.unifiedorder(params).then(response => {
this.isBank = 'jd' this.isBank = 'jd'
this.bindCode = this.jdList[indexed].bindCode this.bindCode = this.jdList[indexed].bindCode
this.isPw = true this.isPw = true
@ -512,7 +484,7 @@ export default {
payType: 3, // payType: 3, //
bindCode: this.tlList[indexed].bindCode, bindCode: this.tlList[indexed].bindCode,
} }
api.unifiedorder(params).then((response) => { api.unifiedorder(params).then(response => {
this.isBank = 'tl' this.isBank = 'tl'
this.bindCode = this.tlList[indexed].bindCode this.bindCode = this.tlList[indexed].bindCode
this.isPw = true this.isPw = true
@ -530,7 +502,7 @@ export default {
payType: 2, payType: 2,
appletFlag: 0, appletFlag: 0,
} }
api.unifiedorder(params).then((res) => { api.unifiedorder(params).then(res => {
let url = let url =
'https://cloud1-8gp1n6uofa17e2e2-1315820965.tcloudbaseapp.com/jump_mp.html?sign=8587800b05c859700944247c03eeae1c&t=1698224973&state=' + 'https://cloud1-8gp1n6uofa17e2e2-1315820965.tcloudbaseapp.com/jump_mp.html?sign=8587800b05c859700944247c03eeae1c&t=1698224973&state=' +
res.data res.data
@ -547,7 +519,7 @@ export default {
payType: 2, payType: 2,
appletFlag: 0, appletFlag: 0,
} }
api.unifiedorder(params).then((res) => { api.unifiedorder(params).then(res => {
let url = let url =
'https://cloud1-1gql8u3v1fe85a37-1322999719.tcloudbaseapp.com/jump_mp.html?sign=d77deffc9e8aecd2b721f8430c376370&t=1705374125&state=' + 'https://cloud1-1gql8u3v1fe85a37-1322999719.tcloudbaseapp.com/jump_mp.html?sign=d77deffc9e8aecd2b721f8430c376370&t=1705374125&state=' +
res.data res.data
@ -562,7 +534,7 @@ export default {
payChannel: val, payChannel: val,
payType: 2, payType: 2,
} }
api.unifiedorder(params).then((res) => { api.unifiedorder(params).then(res => {
this.wxPopup = true this.wxPopup = true
this.$nextTick(() => { this.$nextTick(() => {
new QRCode( new QRCode(
@ -593,7 +565,7 @@ export default {
} }
}, },
getPayConfig() { getPayConfig() {
api.payConfig().then((res) => { api.payConfig().then(res => {
this.payList = res.data this.payList = res.data
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.collapse.init() this.$refs.collapse.init()
@ -602,7 +574,7 @@ export default {
}) })
}, },
getBankList() { getBankList() {
api.jdBankList().then((res) => { api.jdBankList().then(res => {
this.jdList = res.data this.jdList = res.data
}) })
// api.hfBankList().then((res) => { // api.hfBankList().then((res) => {
@ -623,7 +595,7 @@ export default {
orderCode: this.orderCode, orderCode: this.orderCode,
pkSettleCountry: this.pkCountry, pkSettleCountry: this.pkCountry,
}) })
.then((res) => { .then(res => {
this.orderData = res.data this.orderData = res.data
this.downTime() this.downTime()
}) })
@ -645,13 +617,13 @@ export default {
orderCode: this.orderCode, orderCode: this.orderCode,
pkSettleCountry: this.pkCountry, pkSettleCountry: this.pkCountry,
}) })
.then((res) => { .then(res => {
// this.payDetail = res.data // this.payDetail = res.data
this.$set(this, 'payDetail', res.data) this.$set(this, 'payDetail', res.data)
}) })
}, },
reset() { reset() {
this.$store.dispatch('GetInfo').then((res) => { this.$store.dispatch('GetInfo').then(res => {
uni.reLaunch({ uni.reLaunch({
url: '/pages/index/index', url: '/pages/index/index',
}) })
@ -669,7 +641,7 @@ export default {
// this.showSucce = true // this.showSucce = true
this.fansOrder() this.fansOrder()
} else { } else {
api.payStatus(data).then((res) => { api.payStatus(data).then(res => {
that.sucPay = res.data that.sucPay = res.data
}) })
} }
@ -710,7 +682,9 @@ export default {
.tit { .tit {
font-size: 24px; font-size: 24px;
font-family: PingFang SC-Semibold, PingFang SC; font-family:
PingFang SC-Semibold,
PingFang SC;
font-weight: 600; font-weight: 600;
text-align: center; text-align: center;
color: #333333; color: #333333;
@ -719,7 +693,9 @@ export default {
.tit1 { .tit1 {
font-size: 24px; font-size: 24px;
font-family: PingFang SC-Semibold, PingFang SC; font-family:
PingFang SC-Semibold,
PingFang SC;
font-weight: 600; font-weight: 600;
color: #e02b26; color: #e02b26;
text-align: center; text-align: center;
@ -728,7 +704,9 @@ export default {
.tit2 { .tit2 {
font-size: 11px; font-size: 11px;
font-family: PingFang SC-Regular, PingFang SC; font-family:
PingFang SC-Regular,
PingFang SC;
font-weight: 400; font-weight: 400;
color: #666666; color: #666666;
display: flex; display: flex;
@ -755,7 +733,9 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 12px; font-size: 12px;
font-family: PingFang SC-Semibold, PingFang SC; font-family:
PingFang SC-Semibold,
PingFang SC;
font-weight: 600; font-weight: 600;
color: #333333; color: #333333;
@ -793,7 +773,9 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 12px; font-size: 12px;
font-family: PingFang SC-Regular, PingFang SC; font-family:
PingFang SC-Regular,
PingFang SC;
font-weight: 400; font-weight: 400;
color: #333333; color: #333333;
@ -915,14 +897,18 @@ export default {
justify-content: space-between; justify-content: space-between;
color: #666; color: #666;
font-size: 12px; font-size: 12px;
font-family: PingFang SC-Semibold, PingFang SC; font-family:
PingFang SC-Semibold,
PingFang SC;
font-weight: 600; font-weight: 600;
color: #999; color: #999;
} }
.tTit { .tTit {
font-size: 12px; font-size: 12px;
font-family: PingFang SC-Semibold, PingFang SC; font-family:
PingFang SC-Semibold,
PingFang SC;
font-weight: 600; font-weight: 600;
color: #666; color: #666;
} }

View File

@ -3,9 +3,9 @@
<view class="index_header"> </view> <view class="index_header"> </view>
<view class="contxt"> <view class="contxt">
<!-- 充值 --> <!-- 充值 -->
<template v-if="ifcz"> <template v-if="isRecharge">
<div class="tit4">{{ '充值金额' }}</div> <div class="tit4">{{ '充值金额' }}</div>
<u-input class="czinputbox" v-model="czJe"></u-input> <u-input class="czinputbox" v-model="rechargeAmount"></u-input>
</template> </template>
<template v-else> <template v-else>
<view class="tit">{{ '待支付金额' }}</view> <view class="tit">{{ '待支付金额' }}</view>
@ -29,7 +29,9 @@
> >
<u-collapse-item <u-collapse-item
name="1" name="1"
v-if="!ifcz && !isShare & (userInfo.memberCode != 'CN68880628')" v-if="
!isRecharge && !isShare & (userInfo.memberCode != 'CN68880628')
"
> >
<view slot="title" class="pf"> <view slot="title" class="pf">
<img src="@/static/images/yhkzf.jpg" alt="" /> <img src="@/static/images/yhkzf.jpg" alt="" />
@ -172,7 +174,10 @@
<img src="@/static/images/under_pay.png" alt="" /> <img src="@/static/images/under_pay.png" alt="" />
<view>{{ '在线支付' }}</view> <view>{{ '在线支付' }}</view>
</view> </view>
<view class="flex_ac" v-show="this.payList.pay11"> <view
class="flex_ac"
v-show="payList[PAY_AUTH[PAY_TYPE.BAO_FU_WECHAT]]"
>
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/pay_i2.png" alt="" /> <img src="@/static/images/pay_i2.png" alt="" />
<view>{{ '宝付微信支付' }}</view> <view>{{ '宝付微信支付' }}</view>
@ -187,7 +192,10 @@
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
</view> </view>
<view class="flex_ac" v-show="this.payList.pay12"> <view
class="flex_ac"
v-show="payList[PAY_AUTH[PAY_TYPE.BAO_FU_WECHAT_SCAN]]"
>
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/pay_i2.png" alt="" /> <img src="@/static/images/pay_i2.png" alt="" />
<view>{{ '宝付微信扫码' }}</view> <view>{{ '宝付微信扫码' }}</view>
@ -202,7 +210,10 @@
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
</view> </view>
<view class="flex_ac" v-show="this.payList.pay13"> <view
class="flex_ac"
v-show="payList[PAY_AUTH[PAY_TYPE.HUI_FU_WECHAT]]"
>
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/pay_i2.png" alt="" /> <img src="@/static/images/pay_i2.png" alt="" />
<view>{{ '汇付微信支付' }}</view> <view>{{ '汇付微信支付' }}</view>
@ -218,7 +229,10 @@
</u-radio-group> </u-radio-group>
</view> </view>
<!-- 微信支付 --> <!-- 微信支付 -->
<view class="flex_ac" v-show="this.payList.pay73"> <view
class="flex_ac"
v-show="payList[PAY_AUTH[PAY_TYPE.WECHAT_PAY]]"
>
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/pay_i2.png" alt="" /> <img src="@/static/images/pay_i2.png" alt="" />
<view>{{ '微信支付' }}</view> <view>{{ '微信支付' }}</view>
@ -234,7 +248,7 @@
</u-radio-group> </u-radio-group>
</view> </view>
<!-- 支付宝支付 --> <!-- 支付宝支付 -->
<view class="flex_ac" v-show="this.payList.pay74"> <view class="flex_ac" v-show="payList[PAY_AUTH[PAY_TYPE.ALI_PAY]]">
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/pay_i3.png" alt="" /> <img src="@/static/images/pay_i3.png" alt="" />
<view>{{ '支付宝支付' }}</view> <view>{{ '支付宝支付' }}</view>
@ -249,7 +263,10 @@
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
</view> </view>
<view class="flex_ac1" v-show="this.payList.pay15"> <view
class="flex_ac1"
v-show="payList[PAY_AUTH[PAY_TYPE.HUI_FU_BANK_CARD]]"
>
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/jdBank.jpg" alt="" /> <img src="@/static/images/jdBank.jpg" alt="" />
<view>{{ '汇付银行卡' }} </view> <view>{{ '汇付银行卡' }} </view>
@ -282,7 +299,10 @@
</view> </view>
</view> </view>
</view> </view>
<view class="flex_ac" v-show="this.payList.pay32"> <view
class="flex_ac"
v-show="payList[PAY_AUTH[PAY_TYPE.TONG_LIAN_WECHAT]]"
>
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/pay_i2.png" alt="" /> <img src="@/static/images/pay_i2.png" alt="" />
<view>通联微信支付</view> <view>通联微信支付</view>
@ -297,7 +317,10 @@
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
</view> </view>
<view class="flex_ac1" v-show="this.payList.pay4"> <view
class="flex_ac1"
v-show="payList[PAY_AUTH[PAY_TYPE.JING_DONG_BANK_CARD]]"
>
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/jdBank.jpg" alt="" /> <img src="@/static/images/jdBank.jpg" alt="" />
<view>{{ '京东银行卡' }}</view> <view>{{ '京东银行卡' }}</view>
@ -328,7 +351,10 @@
</view> </view>
</view> </view>
</view> </view>
<view class="flex_ac" v-show="payList.pay5"> <view
class="flex_ac"
v-show="payList[PAY_AUTH[PAY_TYPE.JING_DONG_H5]]"
>
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/jdBank.jpg" alt="" /> <img src="@/static/images/jdBank.jpg" alt="" />
<view>京东收银台</view> <view>京东收银台</view>
@ -338,12 +364,15 @@
activeColor="red" activeColor="red"
size="14" size="14"
label="" label=""
:name="PAY_TYPE.JING_DONG_WECHAT" :name="PAY_TYPE.JING_DONG_H5"
> >
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
</view> </view>
<view class="flex_ac1" v-show="this.payList.pay33"> <view
class="flex_ac1"
v-show="payList[PAY_AUTH[PAY_TYPE.TONG_LIAN_BANK_CARD]]"
>
<view class="flex_ac_i"> <view class="flex_ac_i">
<img src="@/static/images/jdBank.jpg" alt="" /> <img src="@/static/images/jdBank.jpg" alt="" />
<view>{{ '通联银行卡' }}</view> <view>{{ '通联银行卡' }}</view>
@ -377,7 +406,7 @@
</u-collapse-item> </u-collapse-item>
</u-collapse> </u-collapse>
</view> </view>
<view class="kuang" v-if="!ifcz"> <view class="kuang" v-if="!isRecharge">
<div v-show="specialArea == 1 || specialArea == 24"> <div v-show="specialArea == 1 || specialArea == 24">
<div class="tit4">{{ '注册会员信息' }}</div> <div class="tit4">{{ '注册会员信息' }}</div>
<div class="quan"> <div class="quan">
@ -678,7 +707,7 @@
:loading="isLoading" :loading="isLoading"
loadingText="支付中" loadingText="支付中"
:disabled="payBtnDisabled" :disabled="payBtnDisabled"
@tap="quickPay(ifcz)" @tap="quickPay(isRecharge)"
color="linear-gradient(to right, #005BAC, #005BAC )" color="linear-gradient(to right, #005BAC, #005BAC )"
> >
{{ '立即支付' }} {{ '立即支付' }}
@ -713,7 +742,12 @@
</view> </view>
</u-popup> </u-popup>
<!-- 支付宝二维码 --> <!-- 支付宝二维码 -->
<u-popup :show="wxPopup1" mode="center" closeable @close="closewxPopup"> <u-popup
:show="aliQrCodeVisible"
mode="center"
closeable
@close="closewxPopup"
>
<view class="t_tit">{{ '支付宝支付' }}</view> <view class="t_tit">{{ '支付宝支付' }}</view>
<view class="pay_code"> <view class="pay_code">
<div ref="qrCodeUrlWx" id="qrCodeUrlWx" class="qrcode"></div> <div ref="qrCodeUrlWx" id="qrCodeUrlWx" class="qrcode"></div>
@ -746,7 +780,12 @@ import * as api from '@/config/pay.js'
import QRCode from 'qrcodejs2' import QRCode from 'qrcodejs2'
import successDialog from '@/components/successDialog.vue' import successDialog from '@/components/successDialog.vue'
import * as act from '@/config/activity.js' import * as act from '@/config/activity.js'
import { PAY_REDIRECT_URL, PAY_TYPE, PAY_CHANEL } from '@/util/constant.js' import {
PAY_REDIRECT_URL,
PAY_TYPE,
PAY_CHANEL,
PAY_AUTH,
} from '@/util/constant.js'
var payStatus var payStatus
export default { export default {
components: { components: {
@ -755,6 +794,7 @@ export default {
data() { data() {
return { return {
PAY_TYPE, PAY_TYPE,
PAY_AUTH,
payList: {}, payList: {},
isNoBind: false, isNoBind: false,
isLoading: false, isLoading: false,
@ -785,10 +825,10 @@ export default {
sucPay: 0, sucPay: 0,
content: '支付成功', content: '支付成功',
wxPopup: false, wxPopup: false,
wxPopup1: false, aliQrCodeVisible: false,
luckydrawData: {}, luckydrawData: {},
ifcz: false, isRecharge: false,
czJe: '', rechargeAmount: '',
qrcodeimg: '', qrcodeimg: '',
onlinePay: true, onlinePay: true,
unBindCode: '', unBindCode: '',
@ -796,22 +836,20 @@ export default {
}, },
computed: { computed: {
payBtnDisabled() { payBtnDisabled() {
if (this.ifcz) { if (this.isRecharge) {
return !Object.values(this.payList).some(val => val) return !Object.values(this.payList).some(val => val)
} }
return false return false
}, },
}, },
onLoad(options) { onLoad(options) {
this.paramsPost = JSON.parse(options.paramsPost) this.paramsPost = JSON.parse(options.paramsPost || '{}')
console.log( this.getPayConfig()
'%c [ this.paramsPost ]-734', clearInterval(this.clockTime)
'font-size:13px; background:#777244; color:#bbb688;',
this.paramsPost
)
this.pkCountry = uni.getStorageSync('pkCountry') this.pkCountry = uni.getStorageSync('pkCountry')
if (this.paramsPost.ifcz) { if (this.paramsPost.isRecharge) {
this.ifcz = this.paramsPost.ifcz this.isRecharge = this.paramsPost.isRecharge
this.businessType = 3 this.businessType = 3
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: '充值', title: '充值',
@ -820,15 +858,7 @@ export default {
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: '订单支付', title: '订单支付',
}) })
this.ifcz = false this.isRecharge = false
if (JSON.parse(options.paramsPost).orderType == 4) {
this.orderCode = this.paramsPost.orderCode
this.luckydrawData = this.paramsPost.luckydrawData
//
this.businessType = 4 //
this.specialArea = this.paramsPost.specialArea
this.getLuckdrawDetail()
} else {
this.userInfo = uni.getStorageSync('User') this.userInfo = uni.getStorageSync('User')
if (this.userInfo.registerFans == 0) { if (this.userInfo.registerFans == 0) {
this.isShare = true this.isShare = true
@ -848,11 +878,8 @@ export default {
this.getSpendInfo() this.getSpendInfo()
} }
} }
}
// //
this.getPayConfig()
clearInterval(this.clockTime)
}, },
onShow() { onShow() {
@ -903,7 +930,7 @@ export default {
}, },
closewxPopup() { closewxPopup() {
this.wxPopup = false this.wxPopup = false
this.wxPopup1 = false this.aliQrCodeVisible = false
this.$refs.qrCodeUrlWx.innerHTML = '' this.$refs.qrCodeUrlWx.innerHTML = ''
clearInterval(payStatus) clearInterval(payStatus)
}, },
@ -1007,7 +1034,7 @@ export default {
// this.$refs.successDialog.showSuccess(res.data) // this.$refs.successDialog.showSuccess(res.data)
// }) // })
} else { } else {
if (this.ifcz) { if (this.isRecharge) {
uni.showToast({ uni.showToast({
title: '充值成功', title: '充值成功',
icon: 'none', icon: 'none',
@ -1031,9 +1058,9 @@ export default {
}) })
} }
}, },
quickPay(cz) { async quickPay(isRecharge) {
if (cz) { if (isRecharge) {
if (!this.czJe || this.czJe <= 0) { if (!this.rechargeAmount || this.rechargeAmount <= 0) {
uni.showToast({ uni.showToast({
title: '请输入正确的充值金额', title: '请输入正确的充值金额',
}) })
@ -1047,168 +1074,83 @@ export default {
PAY_TYPE.HUI_FU_BANK_CARD, PAY_TYPE.HUI_FU_BANK_CARD,
PAY_TYPE.JING_DONG_BANK_CARD, PAY_TYPE.JING_DONG_BANK_CARD,
PAY_TYPE.TONG_LIAN_BANK_CARD, PAY_TYPE.TONG_LIAN_BANK_CARD,
].includes(this.whatPay) ].includes(this.whatPay.slice(0, 2))
) { ) {
if (cz) { if (isRecharge) {
// //
api api
.preCharge({ .preCharge({
rechargeAmount: this.czJe, rechargeAmount: this.rechargeAmount,
}) })
.then(res => { .then(res => {
this.paramsPost = res.data this.paramsPost = res.data
this.orderCode = res.orderCode this.orderCode = res.orderCode
if (this.whatPay == 11) { if (this.whatPay == PAY_TYPE.JING_DONG_H5) {
this.weChatPay(5) this.redirectPay(PAY_CHANEL[this.whatPay])
} else if (this.whatPay == 12) { } else if (
this.scanPayBfWx(5) [PAY_TYPE.BAO_FU_WECHAT, PAY_TYPE.HUI_FU_WECHAT].includes(
} else if (this.whatPay == 13) { this.whatPay
this.scanPayBfWx(6) )
} else if (this.whatPay == 32) {
this.weChatPay(3)
} else if (this.whatPay == 73) {
this.scanPayWx(7)
} else if (this.whatPay == 74) {
this.scanPayAl(7)
}
})
} else {
if (
[
PAY_TYPE.BAO_FU_WECHAT,
PAY_TYPE.TONG_LIAN_WECHAT,
PAY_TYPE.JING_DONG_WECHAT,
].includes(this.whatPay)
) { ) {
console.log(PAY_CHANEL[this.whatPay], this.whatPay, PAY_CHANEL) this.scanPayBfWx(PAY_CHANEL[this.whatPay])
} else if (this.whatPay == PAY_TYPE.TONG_LIAN_WECHAT) {
this.weChatPay(PAY_CHANEL[this.whatPay]) this.weChatPay(PAY_CHANEL[this.whatPay])
} else if (this.whatPay == PAY_TYPE.BAO_FU_WECHAT_SCAN) { }
this.scanPayBfWx(5) })
} else if (this.whatPay == PAY_TYPE.HUI_FU_WECHAT) { } else {
this.scanPayBfWx(6) if ([PAY_TYPE.JING_DONG_H5].includes(this.whatPay)) {
this.redirectPay(PAY_CHANEL[this.whatPay])
} else if (
[PAY_TYPE.BAO_FU_WECHAT_SCAN, PAY_TYPE.HUI_FU_WECHAT].includes(
this.whatPay
)
) {
this.scanPayBfWx(PAY_CHANEL[this.whatPay])
} else if (this.whatPay == PAY_TYPE.WECHAT_PAY) { } else if (this.whatPay == PAY_TYPE.WECHAT_PAY) {
this.scanPayWx(7) this.scanPayWx(PAY_CHANEL[this.whatPay])
} else if (this.whatPay == PAY_TYPE.ALI_PAY) { } else if (this.whatPay == PAY_TYPE.ALI_PAY) {
this.scanPayAl(7) this.scanPayAl(PAY_CHANEL[this.whatPay])
} }
} }
} else { } else {
if (this.whatPay.slice(0, 2) == PAY_TYPE.HUI_FU_BANK_CARD) { const indexed = this.whatPay.slice(2, 4)
let indexed = this.whatPay.slice(2, 4) const payTypeEnum = this.whatPay.slice(0, 2)
if (!cz) { const bankListMap = {
let params = { [PAY_TYPE.HUI_FU_BANK_CARD]: this.hfList[indexed].bindCode,
businessType: this.businessType, // [PAY_TYPE.JING_DONG_BANK_CARD]: this.jdList[indexed].bindCode,
[PAY_TYPE.TONG_LIAN_BANK_CARD]: this.tlList[indexed].bindCode,
}
this.bindCode = bankListMap[payTypeEnum]
const params = {
businessType: isRecharge ? 3 : this.businessType, //
payChannel: PAY_CHANEL[payTypeEnum],
payType: 3, //
bindCode: bankListMap[payTypeEnum],
}
if (!isRecharge) {
Object.assign(params, {
businessCode: this.orderCode, businessCode: this.orderCode,
payChannel: 6, //
payType: 3, //
bindCode: this.hfList[indexed].bindCode,
}
api.unifiedorder(params).then(response => {
this.isBank = PAY_TYPE.HUI_FU_BANK_CARD
this.bindCode = this.hfList[indexed].bindCode
this.isPw = true
}) })
this.checkPayStatus(params)
} else { } else {
api try {
.preCharge({ const orderCode = await this.preCharge()
rechargeAmount: this.czJe, Object.assign(params, {
businessCode: orderCode,
}) })
.then(res => { this.orderCode = orderCode
let params = { } catch (error) {
businessType: 3, // uni.showToast({
businessCode: res.orderCode, title: error,
payChannel: 6, // icon: 'none',
payType: 3, // })
bindCode: this.hfList[indexed].bindCode, return
}
} }
api.unifiedorder(params).then(response => { api.unifiedorder(params).then(response => {
this.isBank = PAY_TYPE.HUI_FU_BANK_CARD this.isBank = this.whatPay.slice(0, 2)
this.bindCode = this.hfList[indexed].bindCode
this.orderCode = res.orderCode
this.isPw = true this.isPw = true
})
})
this.checkPayStatus(params) this.checkPayStatus(params)
}
} else if (this.whatPay.slice(0, 2) == PAY_TYPE.JING_DONG_BANK_CARD) {
let indexed = this.whatPay.slice(2, 4)
if (!cz) {
let params = {
businessType: this.businessType, //
businessCode: this.orderCode,
payChannel: 4, //
payType: 3, //
bindCode: this.jdList[indexed].bindCode,
}
api.unifiedorder(params).then(response => {
this.isBank = PAY_TYPE.JING_DONG_BANK_CARD
this.bindCode = this.jdList[indexed].bindCode
this.isPw = true
}) })
this.checkPayStatus(params)
} else {
api
.preCharge({
rechargeAmount: this.czJe,
})
.then(res => {
let params = {
businessType: 3, //
businessCode: res.orderCode,
payChannel: 4, //
payType: 3, //
bindCode: this.jdList[indexed].bindCode,
}
api.unifiedorder(params).then(response => {
this.isBank = PAY_TYPE.JING_DONG_BANK_CARD
this.bindCode = this.jdList[indexed].bindCode
this.orderCode = res.orderCode
this.isPw = true
})
})
this.checkPayStatus(params)
}
} else if (this.whatPay.slice(0, 2) == PAY_TYPE.TONG_LIAN_BANK_CARD) {
let indexed = this.whatPay.slice(2, 4)
if (!cz) {
let params = {
businessType: this.businessType, //
businessCode: this.orderCode,
payChannel: 3, //
payType: 3, //
bindCode: this.tlList[indexed].bindCode,
}
api.unifiedorder(params).then(response => {
this.isBank = PAY_TYPE.TONG_LIAN_BANK_CARD
this.bindCode = this.tlList[indexed].bindCode
this.isPw = true
})
this.checkPayStatus(params)
} else {
api
.preCharge({
rechargeAmount: this.czJe,
})
.then(res => {
let params = {
businessType: 3, //
businessCode: res.orderCode,
payChannel: 3, //
payType: 3, //
bindCode: this.tlList[indexed].bindCode,
}
api.unifiedorder(params).then(response => {
this.isBank = PAY_TYPE.TONG_LIAN_BANK_CARD
this.bindCode = this.tlList[indexed].bindCode
this.orderCode = res.orderCode
this.isPw = true
})
})
this.checkPayStatus(params)
}
}
} }
} else { } else {
api.generate().then(res => { api.generate().then(res => {
@ -1220,143 +1162,62 @@ export default {
}, },
scanPayBfWx(val) { scanPayBfWx(val) {
let params let params
if (this.ifcz) {
params = { params = {
businessType: 3, // businessType: this.isRecharge ? 3 : this.businessType, //
businessCode: this.orderCode, businessCode: this.orderCode,
payChannel: val, payChannel: val,
payType: 2, payType: 2,
} }
} else {
params = {
businessType: this.businessType, //
businessCode: this.orderCode,
payChannel: val,
payType: 2,
}
}
api.unifiedorder(params).then(res => { api.unifiedorder(params).then(res => {
this.wxPopup = true this.wxPopup = true
let that = this this.drawQrcode(res.data)
this.$nextTick(() => {
new QRCode(
this.$refs.qrCodeUrlWx,
{
width: 280,
height: 280,
text: res.data,
colorDark: '#000000',
colorLight: '#ffffff',
correctLevel: QRCode.CorrectLevel.Q,
textAlign: 'center',
},
1000
)
setTimeout(() => {
let qrcodeEle = document.getElementById('qrCodeUrlWx')
let cvs = qrcodeEle.querySelector('canvas')
that.qrcodeimg = cvs.toDataURL('image/png')
}, 1000)
})
})
this.checkPayStatus(params) this.checkPayStatus(params)
})
}, },
// //
scanPayWx(val) { scanPayWx(val) {
let params const params = {
if (this.ifcz) { businessType: this.isRecharge ? 3 : this.businessType, //
params = {
businessType: 3, //
businessCode: this.orderCode, businessCode: this.orderCode,
payChannel: val, payChannel: val,
payType: 2, payType: 2,
} }
} else {
params = {
businessType: this.businessType, //
businessCode: this.orderCode,
payChannel: val,
payType: 2,
}
}
api.unifiedorder(params).then(res => { api.unifiedorder(params).then(res => {
this.wxPopup = true this.wxPopup = true
let that = this this.drawQrcode(res.data)
this.$nextTick(() => {
new QRCode(
this.$refs.qrCodeUrlWx,
{
width: 280,
height: 280,
text: res.data,
colorDark: '#000000',
colorLight: '#ffffff',
correctLevel: QRCode.CorrectLevel.Q,
textAlign: 'center',
},
1000
)
setTimeout(() => {
let qrcodeEle = document.getElementById('qrCodeUrlWx')
let cvs = qrcodeEle.querySelector('canvas')
that.qrcodeimg = cvs.toDataURL('image/png')
}, 1000)
})
})
this.checkPayStatus(params) this.checkPayStatus(params)
})
}, },
// //
scanPayAl(val) { scanPayAl(val) {
let params const params = {
if (this.ifcz) { businessType: this.isRecharge ? 3 : this.businessType, //
params = {
businessType: 3, //
businessCode: this.orderCode, businessCode: this.orderCode,
payChannel: val, payChannel: val,
payType: 1, payType: 1,
} }
} else {
params = {
businessType: this.businessType, //
businessCode: this.orderCode,
payChannel: val,
payType: 1,
}
}
api.unifiedorder(params).then(res => { api.unifiedorder(params).then(res => {
this.wxPopup1 = true this.aliQrCodeVisible = true
let that = this this.drawQrcode(res.data)
this.$nextTick(() => {
new QRCode(
this.$refs.qrCodeUrlWx,
{
width: 280,
height: 280,
text: res.data,
colorDark: '#000000',
colorLight: '#ffffff',
correctLevel: QRCode.CorrectLevel.Q,
textAlign: 'center',
},
1000
)
setTimeout(() => {
let qrcodeEle = document.getElementById('qrCodeUrlWx')
let cvs = qrcodeEle.querySelector('canvas')
that.qrcodeimg = cvs.toDataURL('image/png')
}, 1000)
})
})
this.checkPayStatus(params) this.checkPayStatus(params)
})
}, },
getPayAuthToken(payChannel) { getPayAuthToken(payChannel) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const extParam = {
source: !!this.isRecharge,
orderCode: this.orderCode,
specialArea: this.specialArea,
}
// extParamJSONbase64
const extParamBase64 = btoa(JSON.stringify(extParam))
const params = { const params = {
payChannel: payChannel, payChannel: payChannel,
payType: 2, payType: 2,
appletFlag: 0, appletFlag: 0,
businessType: this.ifcz ? 3 : this.businessType, businessType: this.isRecharge ? 3 : this.businessType,
businessCode: this.orderCode, businessCode: this.orderCode,
extParam: extParamBase64,
} }
api.unifiedorder(params).then(res => { api.unifiedorder(params).then(res => {
if (res.code === 200) { if (res.code === 200) {
@ -1372,6 +1233,38 @@ export default {
}) })
}) })
}, },
drawQrcode(text) {
let that = this
this.$nextTick(() => {
new QRCode(
this.$refs.qrCodeUrlWx,
{
width: 280,
height: 280,
text,
colorDark: '#000000',
colorLight: '#ffffff',
correctLevel: QRCode.CorrectLevel.Q,
textAlign: 'center',
},
1000
)
setTimeout(() => {
let qrcodeEle = document.getElementById('qrCodeUrlWx')
let cvs = qrcodeEle.querySelector('canvas')
that.qrcodeimg = cvs.toDataURL('image/png')
}, 1000)
})
},
redirectPay(payChannel) {
this.getPayAuthToken(payChannel).then(url => {
if (navigator.userAgent.includes('MicroMessenger')) {
window.location.href = url
} else {
window.open(url)
}
})
},
weChatPay(payChannel) { weChatPay(payChannel) {
this.getPayAuthToken(payChannel) this.getPayAuthToken(payChannel)
.then(res => { .then(res => {
@ -1391,7 +1284,7 @@ export default {
// //
// scanPayBfWxJump(val) { // scanPayBfWxJump(val) {
// let params // let params
// if (this.ifcz) { // if (this.isRecharge) {
// params = { // params = {
// businessType: 3, // // businessType: 3, //
// businessCode: this.orderCode, // businessCode: this.orderCode,
@ -1418,7 +1311,7 @@ export default {
// // // //
// scanPayTlWxJump(val) { // scanPayTlWxJump(val) {
// let params // let params
// if (this.ifcz) { // if (this.isRecharge) {
// params = { // params = {
// businessType: 3, // // businessType: 3, //
// businessCode: this.orderCode, // businessCode: this.orderCode,
@ -1472,6 +1365,7 @@ export default {
this.$forceUpdate() this.$forceUpdate()
}, },
getOrderInfo() { getOrderInfo() {
return new Promise((resolve, reject) => {
api api
.orderInfo({ .orderInfo({
specialArea: this.specialArea, specialArea: this.specialArea,
@ -1480,8 +1374,13 @@ export default {
}) })
.then(res => { .then(res => {
this.orderData = res.data this.orderData = res.data
resolve(res.data)
this.downTime() this.downTime()
}) })
.catch(err => {
reject(err)
})
})
}, },
downTime() { downTime() {
let that = this let that = this
@ -1534,7 +1433,7 @@ export default {
}) })
} else { } else {
this.wxPopup = false this.wxPopup = false
this.wxPopup1 = false this.aliQrCodeVisible = false
this.showSucce = true this.showSucce = true
} }
} else { } else {
@ -1555,6 +1454,21 @@ export default {
// //
return h + ':' + m + ':' + s return h + ':' + m + ':' + s
}, },
preCharge() {
return new Promise((resolve, reject) => {
api
.preCharge({
rechargeAmount: this.rechargeAmount,
})
.then(res => {
if (res.code == 200) {
resolve(res.orderCode)
} else {
reject(res.msg)
}
})
})
},
}, },
} }
</script> </script>

348
pages/pay/success.vue Normal file
View File

@ -0,0 +1,348 @@
<template>
<view class="success-page">
<!-- 状态栏占位 -->
<view class="status-bar"></view>
<!-- 成功状态区域 -->
<view class="success-section">
<view class="success-icon-wrapper">
<view class="success-icon">
<text class="success-checkmark"></text>
</view>
<view class="success-rings">
<view class="ring ring1"></view>
<view class="ring ring2"></view>
<view class="ring ring3"></view>
</view>
</view>
<view class="success-title">{{ paySuccessText }}</view>
<view v-if="isRecharge === undefined" class="success-subtitle"
>您的订单已支付完成</view
>
</view>
<!-- 操作按钮区域 -->
<view class="action-section">
<view class="button-group">
<button class="btn btn-secondary" @click="goToOrderList">
查看订单
</button>
<button class="btn btn-primary" @click="goToHome">返回首页</button>
</view>
</view>
<successDialog @successClose="successClose" ref="successDialog" />
</view>
</template>
<script>
import { mapGetters } from 'vuex'
import { payStatus, registerInfo } from '@/config/pay.js'
import successDialog from '@/components/successDialog.vue'
let interval = null
export default {
name: 'PaySuccess',
components: {
successDialog,
},
data() {
return {
orderCode: '',
sucPay: 0,
specialArea: null,
isRecharge: undefined,
}
},
computed: {
...mapGetters(['userInfo']),
paySuccessText() {
if (this.isRecharge === undefined) {
return ''
}
if (this.isRecharge === true) {
return '充值成功'
}
return '支付成功'
},
},
onLoad(options) {
//
const extParam = JSON.parse(atob(options.extParam || '{}'))
this.specialArea = extParam.specialArea
this.isRecharge = extParam.source
const source = options.source || ''
if (source) {
this.orderCode = options.orderCode || ''
this.orderCode && this.checkPayStatus()
// this.goToOrderList()
return
}
//
uni.setNavigationBarTitle({
title: '支付成功',
})
},
onUnload() {
clearInterval(interval)
},
methods: {
//
checkPayStatus(orderCode) {
//
interval = setInterval(() => {
if (this.sucPay == 1) {
//
clearInterval(interval)
if (
this.specialArea == 1 ||
this.specialArea == 7 ||
this.specialArea == 24
) {
registerInfo(orderCode).then(res => {
this.$refs.successDialog.showSuccess(res.data)
})
}
} else {
payStatus({ businessCode: orderCode }).then(res => {
this.sucPay = res.data
})
}
}, 2000)
},
//
goToOrderList() {
uni.redirectTo({
url: '/pages/mine/order/index',
})
},
successClose() {
uni.redirectTo({
url: '/pages/mine/order/index',
})
},
//
goToHome() {
uni.switchTab({
url: '/pages/index/index',
})
},
},
}
</script>
<style lang="scss" scoped>
.success-page {
min-height: 100vh;
background: linear-gradient(135deg, #f8fafc 0%, #e3f2fd 100%);
position: relative;
display: flex;
flex-direction: column;
}
.status-bar {
height: var(--status-bar-height);
background: transparent;
}
.success-section {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 60rpx 40rpx 40rpx;
position: relative;
}
.success-icon-wrapper {
position: relative;
margin-bottom: 40rpx;
}
.success-icon {
width: 120rpx;
height: 120rpx;
background: #005bac;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
position: relative;
z-index: 2;
box-shadow: 0 8rpx 24rpx rgba(0, 91, 172, 0.3);
animation: successBounce 0.6s ease-out;
}
.success-checkmark {
color: #ffffff;
font-size: 60rpx;
font-weight: bold;
line-height: 1;
}
.success-rings {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 1;
}
.ring {
position: absolute;
border: 2rpx solid #005bac;
border-radius: 50%;
opacity: 0;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.ring1 {
width: 140rpx;
height: 140rpx;
animation: ripple 1.5s ease-out 0.2s infinite;
}
.ring2 {
width: 180rpx;
height: 180rpx;
animation: ripple 1.5s ease-out 0.6s infinite;
}
.ring3 {
width: 220rpx;
height: 220rpx;
animation: ripple 1.5s ease-out 1s infinite;
}
.success-title {
font-size: 48rpx;
font-weight: 600;
color: #1a1a1a;
margin-bottom: 16rpx;
text-align: center;
}
.success-subtitle {
font-size: 28rpx;
color: #666666;
text-align: center;
line-height: 1.4;
}
.action-section {
padding: 32rpx;
}
.button-group {
display: flex;
gap: 24rpx;
}
.btn {
flex: 1;
height: 88rpx;
border-radius: 44rpx;
font-size: 32rpx;
font-weight: 500;
border: none;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
&::after {
border: none;
}
&.btn-secondary {
background: #ffffff;
color: #005bac;
border: 2rpx solid #005bac;
&:active {
background: #f8fafc;
transform: scale(0.98);
}
}
&.btn-primary {
background: linear-gradient(135deg, #005bac 0%, #0066cc 100%);
color: #ffffff;
box-shadow: 0 4rpx 16rpx rgba(0, 91, 172, 0.3);
&:active {
background: linear-gradient(135deg, #004691 0%, #0052a3 100%);
transform: scale(0.98);
}
}
}
//
@keyframes successBounce {
0% {
transform: scale(0);
opacity: 0;
}
50% {
transform: scale(1.2);
opacity: 1;
}
100% {
transform: scale(1);
opacity: 1;
}
}
@keyframes ripple {
0% {
opacity: 0.6;
transform: translate(-50%, -50%) scale(0.1);
}
100% {
opacity: 0;
transform: translate(-50%, -50%) scale(1);
}
}
//
@media (prefers-color-scheme: dark) {
.success-page {
background: linear-gradient(135deg, #1a1a1a 0%, #2d3748 100%);
}
.success-title {
color: #ffffff;
}
.success-subtitle {
color: #a0aec0;
}
}
//
@media screen and (max-width: 375px) {
.success-icon {
width: 100rpx;
height: 100rpx;
}
.success-checkmark {
font-size: 50rpx;
}
.success-title {
font-size: 42rpx;
}
.button-group {
flex-direction: column;
gap: 16rpx;
}
}
</style>

View File

@ -6,22 +6,31 @@
--> -->
<template> <template>
<view class="content"> <view class="content">
<view class="index_header"> <view class="index_header"> </view>
</view>
<view class="contxt"> <view class="contxt">
<view class="tit">{{ '待支付金额' }}</view>
<view class="tit">{{'待支付金额'}}</view>
<view class="tit1"> <view class="tit1">
{{ userInfo.currencyIcon }}{{ objTree.amount | numberToCurrency }} {{ userInfo.currencyIcon }}{{ objTree.amount | numberToCurrency }}
</view> </view>
<view class="kuang"> <view class="kuang">
<u-collapse :value="activeNames" ref="collapse" @open="change" @close="close" accordion :border="false"> <u-collapse
<u-collapse-item name="1" v-if="userInfo.memberCode!='CN68880628'"> :value="activeNames"
<view slot="title" class="pf"> <img src="@/static/images/yhkzf.jpg" alt="" /> ref="collapse"
<view>{{'钱包支付'}}</view> @open="change"
@close="close"
accordion
:border="false"
>
<u-collapse-item name="1" v-if="userInfo.memberCode != 'CN68880628'">
<view slot="title" class="pf">
<img src="@/static/images/yhkzf.jpg" alt="" />
<view>{{ '钱包支付' }}</view>
</view> </view>
<view class="quan_i" v-show="account.consumeBalance == 0||account.consumeDeduct > 0"> <view
<view class="tTit">{{'消费账户'}}</view> class="quan_i"
v-show="account.consumeBalance == 0 || account.consumeDeduct > 0"
>
<view class="tTit">{{ '消费账户' }}</view>
<view class="lan"> <view class="lan">
<view> <view>
{{ account.consumeBalance | numberToCurrency | isLocal }} {{ account.consumeBalance | numberToCurrency | isLocal }}
@ -31,143 +40,183 @@
</view> </view>
</view> </view>
</view> </view>
<view class="quan_i" v-show="account.bonusBalance==0||account.bonusDeduct > 0"> <view
<view class="tTit">{{'奖金账户'}}</view> class="quan_i"
v-show="account.bonusBalance == 0 || account.bonusDeduct > 0"
>
<view class="tTit">{{ '奖金账户' }}</view>
<view class="lan"> <view class="lan">
<view> <view>
{{ account.bonusBalance | numberToCurrency | isLocal}} {{ account.bonusBalance | numberToCurrency | isLocal }}
</view> </view>
<view> <view>
-{{ account.bonusDeduct | numberToCurrency | isLocal}} -{{ account.bonusDeduct | numberToCurrency | isLocal }}
</view> </view>
</view> </view>
</view> </view>
<view class="quan_i" v-show="payDetail.payAccount3 > 0"> <view class="quan_i" v-show="payDetail.payAccount3 > 0">
<view class="tTit">{{'政策账户'}}</view> <view class="tTit">{{ '政策账户' }}</view>
<view class="lan"> <view class="lan">
<view> <view>
{{ payDetail.account3 | numberToCurrency | isLocal}} {{ payDetail.account3 | numberToCurrency | isLocal }}
</view> </view>
<view> <view>
-{{ payDetail.payAccount3 | numberToCurrency | isLocal}} -{{ payDetail.payAccount3 | numberToCurrency | isLocal }}
</view> </view>
</view> </view>
</view> </view>
<view class="quan_i" v-show="account.cashBalance==0||account.cashDeduct > 0"> <view
<view class="tTit">{{'现金账户'}}</view> class="quan_i"
v-show="account.cashBalance == 0 || account.cashDeduct > 0"
>
<view class="tTit">{{ '现金账户' }}</view>
<view class="lan"> <view class="lan">
<view> <view>
{{ account.cashBalance | numberToCurrency | isLocal}} {{ account.cashBalance | numberToCurrency | isLocal }}
</view> </view>
<view> <view>
-{{ account.cashDeduct | numberToCurrency | isLocal}} -{{ account.cashDeduct | numberToCurrency | isLocal }}
</view> </view>
</view> </view>
</view> </view>
<view class="quan_i" v-show="payDetail.payAccount5 > 0"> <view class="quan_i" v-show="payDetail.payAccount5 > 0">
<view class="tTit">{{'重消账户'}}</view> <view class="tTit">{{ '重消账户' }}</view>
<view class="lan"> <view class="lan">
<view> <view>
{{ payDetail.account5 | numberToCurrency | isLocal}} {{ payDetail.account5 | numberToCurrency | isLocal }}
</view> </view>
<view> <view>
-{{ payDetail.payAccount5 | numberToCurrency | isLocal}} -{{ payDetail.payAccount5 | numberToCurrency | isLocal }}
</view> </view>
</view> </view>
</view> </view>
<view class="quan_i" v-show="payDetail.payAccount6 > 0"> <view class="quan_i" v-show="payDetail.payAccount6 > 0">
<view class="tTit">{{'积分账户'}}</view> <view class="tTit">{{ '积分账户' }}</view>
<view class="lan"> <view class="lan">
<view> <view>
{{ payDetail.account6 | numberToCurrency | isLocal }} {{ payDetail.account6 | numberToCurrency | isLocal }}
</view> </view>
<view> <view>
-{{ payDetail.payAccount6 | numberToCurrency | isLocal}} -{{ payDetail.payAccount6 | numberToCurrency | isLocal }}
</view> </view>
</view> </view>
</view> </view>
<view class="quan_i" v-show="payDetail.payAccount7 > 0"> <view class="quan_i" v-show="payDetail.payAccount7 > 0">
<view class="tTit">{{'鼓励账户'}}</view> <view class="tTit">{{ '鼓励账户' }}</view>
<view class="lan"> <view class="lan">
<view> <view>
{{ payDetail.account7 | numberToCurrency | isLocal}} {{ payDetail.account7 | numberToCurrency | isLocal }}
</view> </view>
<view> <view>
-{{ payDetail.payAccount7 | numberToCurrency | isLocal}} -{{ payDetail.payAccount7 | numberToCurrency | isLocal }}
</view> </view>
</view> </view>
</view> </view>
<view class="quan_i" v-show="payDetail.payAccount8 > 0"> <view class="quan_i" v-show="payDetail.payAccount8 > 0">
<view class="tTit">{{'复购券账户'}}</view> <view class="tTit">{{ '复购券账户' }}</view>
<view class="lan"> <view class="lan">
<view> <view>
{{ payDetail.account8 | numberToCurrency | isLocal}} {{ payDetail.account8 | numberToCurrency | isLocal }}
</view> </view>
<view> <view>
-{{ payDetail.payAccount8 | numberToCurrency | isLocal}} -{{ payDetail.payAccount8 | numberToCurrency | isLocal }}
</view> </view>
</view> </view>
</view> </view>
<view class="quan_i" v-show="payDetail.payAccount9 > 0"> <view class="quan_i" v-show="payDetail.payAccount9 > 0">
<view class="tTit">{{'全球积分'}}</view> <view class="tTit">{{ '全球积分' }}</view>
<view class="lan"> <view class="lan">
<view> <view>
{{ payDetail.account9 | numberToCurrency | isLocal}} {{ payDetail.account9 | numberToCurrency | isLocal }}
</view> </view>
<view> <view>
-{{ payDetail.payAccount9 | numberToCurrency | isLocal}} -{{ payDetail.payAccount9 | numberToCurrency | isLocal }}
</view> </view>
</view> </view>
</view> </view>
<view class="quan_i" v-show="payDetail.payAccount10 > 0"> <view class="quan_i" v-show="payDetail.payAccount10 > 0">
<view class="tTit">{{'车奖积分'}}</view> <view class="tTit">{{ '车奖积分' }}</view>
<view class="lan"> <view class="lan">
<view> <view>
{{ payDetail.account10 | numberToCurrency | isLocal}} {{ payDetail.account10 | numberToCurrency | isLocal }}
</view> </view>
<view> <view>
-{{ payDetail.payAccount10 | numberToCurrency | isLocal}} -{{ payDetail.payAccount10 | numberToCurrency | isLocal }}
</view> </view>
</view> </view>
</view> </view>
</u-collapse-item> </u-collapse-item>
</u-collapse> </u-collapse>
</view> </view>
</view> </view>
<!-- 输入验证码密码 --> <!-- 输入验证码密码 -->
<u-popup :show="isPw" mode="center" closeable @close="closePw"> <u-popup :show="isPw" mode="center" closeable @close="closePw">
<view class="t_tit">{{'支付验证'}}</view> <view class="t_tit">{{ '支付验证' }}</view>
<view class="box"> <view class="box">
<view class="c_tit" v-if="isBank">{{ '请输入短信验证码' }}</view>
<view class="c_tit" v-if="isBank">{{'请输入短信验证码'}}</view> <view class="c_tit" v-else>{{ '请输入密码' }}</view>
<view class="c_tit" v-else>{{'请输入密码'}}</view> <u--input
<u--input v-if="isBank" border="surround" v-model="codeValue"></u--input> v-if="isBank"
<u--input v-else border="surround" type="password" v-model="codeValue"></u--input> border="surround"
<u-button type="success" class="uBtn" shape="circle" :loading="isLoading" loadingText="支付中" @tap="payPw()" color="linear-gradient(to right, #005BAC, #005BAC )">{{'立即支付'}} </u-button> v-model="codeValue"
></u--input>
<u--input
v-else
border="surround"
type="password"
v-model="codeValue"
></u--input>
<u-button
type="success"
class="uBtn"
shape="circle"
:loading="isLoading"
loadingText="支付中"
@tap="payPw()"
color="linear-gradient(to right, #005BAC, #005BAC )"
>{{ '立即支付' }}
</u-button>
</view> </view>
</u-popup> </u-popup>
<!-- 底部 --> <!-- 底部 -->
<view class="footer_f"> <view class="footer_f">
<view class="footer"> <view class="footer">
<view class="footer_r"> <view class="footer_r">
<u-button type="success" class="uBtn" shape="circle" :loading="isLoading" loadingText="支付中" @tap="quickPay(ifcz)" color="linear-gradient(to right, #005BAC, #005BAC )">{{'立即支付'}} </u-button> <u-button
type="success"
class="uBtn"
shape="circle"
:loading="isLoading"
loadingText="支付中"
@tap="quickPay(isRecharge)"
color="linear-gradient(to right, #005BAC, #005BAC )"
>{{ '立即支付' }}
</u-button>
</view> </view>
</view> </view>
</view> </view>
<!-- 成功 --> <!-- 成功 -->
<u-modal :show="showSucce" showConfirmButton :content='content' confirmColor='#DE3932' @confirm="reset" ref="uModal" :asyncClose="true"></u-modal> <u-modal
:show="showSucce"
showConfirmButton
:content="content"
confirmColor="#DE3932"
@confirm="reset"
ref="uModal"
:asyncClose="true"
></u-modal>
<!-- 二维码 --> <!-- 二维码 -->
<u-popup :show="wxPopup" mode="center" closeable @close="closewxPopup"> <u-popup :show="wxPopup" mode="center" closeable @close="closewxPopup">
<view class="t_tit">{{'微信支付'}}</view> <view class="t_tit">{{ '微信支付' }}</view>
<view class="pay_code"> <view class="pay_code">
<div ref="qrCodeUrlWx" class="qrcode"></div> <div ref="qrCodeUrlWx" class="qrcode"></div>
</view> </view>
</u-popup> </u-popup>
<successDialog @successClose="successClose" ref="successDialog"></successDialog> <successDialog
@successClose="successClose"
ref="successDialog"
></successDialog>
</view> </view>
</template> </template>
@ -190,7 +239,7 @@ export default {
specialArea: '', specialArea: '',
orderCode: '', orderCode: '',
orderData: { orderData: {
orderAmount: "" orderAmount: '',
}, },
countDown: '', countDown: '',
payDetail: { payDetail: {
@ -213,19 +262,19 @@ export default {
content: '支付成功', content: '支付成功',
wxPopup: false, wxPopup: false,
luckydrawData: {}, luckydrawData: {},
ifcz: false, isRecharge: false,
czJe: '', czJe: '',
objTree: {}, objTree: {},
account: {} account: {},
} }
}, },
onLoad(options) { onLoad(options) {
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: '订单支付' title: '订单支付',
}); })
// this.paramsPost = JSON.parse(options.paramsPost) // this.paramsPost = JSON.parse(options.paramsPost)
// if (this.paramsPost.ifcz) { // if (this.paramsPost.isRecharge) {
// this.ifcz = this.paramsPost.ifcz // this.isRecharge = this.paramsPost.isRecharge
// this.businessType = 3 // this.businessType = 3
// uni.setNavigationBarTitle({ // uni.setNavigationBarTitle({
// title: '' // title: ''
@ -235,7 +284,7 @@ export default {
// uni.setNavigationBarTitle({ // uni.setNavigationBarTitle({
// title: '' // title: ''
// }); // });
// this.ifcz = false // this.isRecharge = false
// if (JSON.parse(options.paramsPost).orderType == 4) { // if (JSON.parse(options.paramsPost).orderType == 4) {
// this.orderCode = this.paramsPost.orderCode // this.orderCode = this.paramsPost.orderCode
// this.luckydrawData = this.paramsPost.luckydrawData // this.luckydrawData = this.paramsPost.luckydrawData
@ -280,11 +329,13 @@ export default {
}, },
methods: { methods: {
getAccount() { getAccount() {
api.deductionAccount({ api
.deductionAccount({
pkBaseId: this.objTree.pkBaseId, pkBaseId: this.objTree.pkBaseId,
pkTreeRule: this.objTree.pkTreeRule, pkTreeRule: this.objTree.pkTreeRule,
shopQuantity: this.objTree.quantity shopQuantity: this.objTree.quantity,
}).then(res => { })
.then(res => {
this.account = res.data this.account = res.data
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.collapse.init() this.$refs.collapse.init()
@ -300,7 +351,7 @@ export default {
pkBaseId: this.luckydrawData.pkBaseId, pkBaseId: this.luckydrawData.pkBaseId,
payNum: this.luckydrawData.payNum, payNum: this.luckydrawData.payNum,
}) })
.then((res) => { .then(res => {
if (res.code == 200) { if (res.code == 200) {
this.orderData.orderAmount = res.data.toBePaidMoney this.orderData.orderAmount = res.data.toBePaidMoney
this.payDetail = res.data this.payDetail = res.data
@ -341,7 +392,7 @@ export default {
shopQuantity: this.objTree.quantity, shopQuantity: this.objTree.quantity,
payPwd: this.codeValue, payPwd: this.codeValue,
} }
api.shoppingTree(obj).then((res) => { api.shoppingTree(obj).then(res => {
if (res.code == 200) { if (res.code == 200) {
uni.showToast({ uni.showToast({
title: res.msg, title: res.msg,
@ -360,14 +411,13 @@ export default {
}) })
} }
}) })
}, },
quickPay(cz) { quickPay(cz) {
this.isPw = true this.isPw = true
}, },
scanPayBfWx(val) { scanPayBfWx(val) {
let params let params
if (this.ifcz) { if (this.isRecharge) {
params = { params = {
businessType: 3, // businessType: 3, //
businessCode: this.orderCode, businessCode: this.orderCode,
@ -382,11 +432,12 @@ export default {
payType: 2, payType: 2,
} }
} }
api.unifiedorder(params).then((res) => { api.unifiedorder(params).then(res => {
this.wxPopup = true this.wxPopup = true
this.$nextTick(() => { this.$nextTick(() => {
new QRCode( new QRCode(
this.$refs.qrCodeUrlWx, { this.$refs.qrCodeUrlWx,
{
width: 280, width: 280,
height: 280, height: 280,
text: res.data, text: res.data,
@ -412,12 +463,12 @@ export default {
} }
}, },
getPayConfig() { getPayConfig() {
api.payConfig().then((res) => { api.payConfig().then(res => {
this.payList = res.data this.payList = res.data
}) })
}, },
getBankList() { getBankList() {
api.jdBankList().then((res) => { api.jdBankList().then(res => {
this.jdList = res.data this.jdList = res.data
}) })
// api.hfBankList().then((res) => { // api.hfBankList().then((res) => {
@ -434,7 +485,7 @@ export default {
specialArea: this.specialArea, specialArea: this.specialArea,
orderCode: this.orderCode, orderCode: this.orderCode,
}) })
.then((res) => { .then(res => {
this.orderData = res.data this.orderData = res.data
this.downTime() this.downTime()
}) })
@ -455,7 +506,7 @@ export default {
specialArea: this.specialArea, specialArea: this.specialArea,
orderCode: this.orderCode, orderCode: this.orderCode,
}) })
.then((res) => { .then(res => {
// this.payDetail = res.data // this.payDetail = res.data
this.$set(this, 'payDetail', res.data) this.$set(this, 'payDetail', res.data)
this.$nextTick(() => { this.$nextTick(() => {
@ -465,7 +516,7 @@ export default {
}) })
}, },
reset() { reset() {
this.$store.dispatch('GetInfo').then((res) => { this.$store.dispatch('GetInfo').then(res => {
uni.reLaunch({ uni.reLaunch({
url: '/pages/index/index', url: '/pages/index/index',
}) })
@ -482,7 +533,7 @@ export default {
this.wxPopup = false this.wxPopup = false
this.showSucce = true this.showSucce = true
} else { } else {
api.payStatus(data).then((res) => { api.payStatus(data).then(res => {
that.sucPay = res.data that.sucPay = res.data
}) })
} }
@ -510,7 +561,7 @@ export default {
} }
.index_header { .index_header {
background: #f9f9f9;; background: #f9f9f9;
height: 330rpx; height: 330rpx;
} }
@ -523,7 +574,9 @@ export default {
.tit { .tit {
font-size: 24px; font-size: 24px;
font-family: PingFang SC-Semibold, PingFang SC; font-family:
PingFang SC-Semibold,
PingFang SC;
font-weight: 600; font-weight: 600;
text-align: center; text-align: center;
color: #333333; color: #333333;
@ -532,7 +585,9 @@ export default {
.tit1 { .tit1 {
font-size: 24px; font-size: 24px;
font-family: PingFang SC-Semibold, PingFang SC; font-family:
PingFang SC-Semibold,
PingFang SC;
font-weight: 600; font-weight: 600;
color: #e02b26; color: #e02b26;
text-align: center; text-align: center;
@ -541,7 +596,9 @@ export default {
.tit2 { .tit2 {
font-size: 11px; font-size: 11px;
font-family: PingFang SC-Regular, PingFang SC; font-family:
PingFang SC-Regular,
PingFang SC;
font-weight: 400; font-weight: 400;
color: #666666; color: #666666;
display: flex; display: flex;
@ -567,7 +624,9 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 12px; font-size: 12px;
font-family: PingFang SC-Semibold, PingFang SC; font-family:
PingFang SC-Semibold,
PingFang SC;
font-weight: 600; font-weight: 600;
color: #333333; color: #333333;
img { img {
@ -603,7 +662,9 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 12px; font-size: 12px;
font-family: PingFang SC-Regular, PingFang SC; font-family:
PingFang SC-Regular,
PingFang SC;
font-weight: 400; font-weight: 400;
color: #333333; color: #333333;
img { img {
@ -661,7 +722,8 @@ export default {
justify-content: space-between; justify-content: space-between;
padding: 20rpx 24rpx 40rpx 20rpx; padding: 20rpx 24rpx 40rpx 20rpx;
background: #fff; background: #fff;
.footer_l {} .footer_l {
}
.footer_r { .footer_r {
flex: 1; flex: 1;
display: flex; display: flex;
@ -698,7 +760,8 @@ export default {
text-align: center; text-align: center;
margin-top: 20px; margin-top: 20px;
padding: 20rpx; padding: 20rpx;
.qrcodeWx {} .qrcodeWx {
}
} }
.qrcode { .qrcode {
@ -718,14 +781,18 @@ export default {
justify-content: space-between; justify-content: space-between;
color: #666; color: #666;
font-size: 12px; font-size: 12px;
font-family: PingFang SC-Semibold, PingFang SC; font-family:
PingFang SC-Semibold,
PingFang SC;
font-weight: 600; font-weight: 600;
color: #999; color: #999;
} }
.tTit { .tTit {
font-size: 12px; font-size: 12px;
font-family: PingFang SC-Semibold, PingFang SC; font-family:
PingFang SC-Semibold,
PingFang SC;
font-weight: 600; font-weight: 600;
color: #666; color: #666;
} }

View File

@ -11,15 +11,31 @@ export const PAY_TYPE = {
TONG_LIAN_WECHAT: 'TONG_LIAN_WECHAT', TONG_LIAN_WECHAT: 'TONG_LIAN_WECHAT',
TONG_LIAN_BANK_CARD: 'tl', TONG_LIAN_BANK_CARD: 'tl',
JING_DONG_BANK_CARD: 'jd', JING_DONG_BANK_CARD: 'jd',
JING_DONG_WECHAT: 'JING_DONG_WECHAT', JING_DONG_H5: 'JING_DONG_H5',
}
export const PAY_AUTH = {
[PAY_TYPE.BAO_FU_WECHAT]: 'pay11',
[PAY_TYPE.JING_DONG_H5]: 'pay5',
[PAY_TYPE.BAO_FU_WECHAT_SCAN]: 'pay12',
[PAY_TYPE.HUI_FU_WECHAT]: 'pay13',
[PAY_TYPE.WECHAT_PAY]: 'pay73',
[PAY_TYPE.ALI_PAY]: 'pay74',
[PAY_TYPE.TONG_LIAN_WECHAT]: 'pay32',
[PAY_TYPE.HUI_FU_BANK_CARD]: 'pay15',
[PAY_TYPE.TONG_LIAN_BANK_CARD]: 'pay33',
[PAY_TYPE.JING_DONG_BANK_CARD]: 'pay4',
} }
export const PAY_CHANEL = { export const PAY_CHANEL = {
BAO_FU_WECHAT: 5, [PAY_TYPE.BAO_FU_WECHAT]: 5,
JING_DONG_WECHAT: 4, [PAY_TYPE.JING_DONG_H5]: 4,
BAO_FU_WECHAT_SCAN: 5, [PAY_TYPE.BAO_FU_WECHAT_SCAN]: 5,
HUI_FU_WECHAT: 6, [PAY_TYPE.HUI_FU_WECHAT]: 6,
WECHAT_PAY: 7, [PAY_TYPE.WECHAT_PAY]: 7,
ALI_PAY: 7, [PAY_TYPE.ALI_PAY]: 7,
TONG_LIAN_WECHAT: 3, [PAY_TYPE.TONG_LIAN_WECHAT]: 3,
[PAY_TYPE.HUI_FU_BANK_CARD]: 6,
[PAY_TYPE.TONG_LIAN_BANK_CARD]: 3,
[PAY_TYPE.JING_DONG_BANK_CARD]: 4,
} }