250 lines
6.1 KiB
Vue
250 lines
6.1 KiB
Vue
<template>
|
|
<page-meta :page-style="themeColor"></page-meta>
|
|
<view>
|
|
<view class="money-wrap">
|
|
<text>{{ detail.apply_money }}</text>
|
|
</view>
|
|
|
|
<!-- 状态0待审核1.待转账2已转账 -1拒绝' -->
|
|
<view class="item">
|
|
<view class="line-wrap">
|
|
<text class="label">当前状态</text>
|
|
<text class="value">{{ detail.status_name }}</text>
|
|
</view>
|
|
<view class="line-wrap">
|
|
<text class="label">交易号</text>
|
|
<text class="value">{{ detail.withdraw_no }}</text>
|
|
</view>
|
|
<view class="line-wrap">
|
|
<text class="label">手续费</text>
|
|
<text class="value">¥{{ detail.service_money }}</text>
|
|
</view>
|
|
<view class="line-wrap">
|
|
<text class="label">申请时间</text>
|
|
<text class="value">{{ $util.timeStampTurnTime(detail.apply_time) }}</text>
|
|
</view>
|
|
<view class="line-wrap" v-if="detail.status">
|
|
<text class="label">审核时间</text>
|
|
<text class="value">{{ $util.timeStampTurnTime(detail.audit_time) }}</text>
|
|
</view>
|
|
<view class="line-wrap" v-if="detail.bank_name">
|
|
<text class="label">银行名称</text>
|
|
<text class="value">{{ detail.bank_name }}</text>
|
|
</view>
|
|
<view class="line-wrap">
|
|
<text class="label">收款账号</text>
|
|
<text class="value">{{ detail.account_number }}</text>
|
|
</view>
|
|
<view class="line-wrap" v-if="detail.status == -1 && detail.refuse_reason">
|
|
<text class="label">拒绝理由</text>
|
|
<text class="value">{{ detail.refuse_reason }}</text>
|
|
</view>
|
|
<view class="line-wrap" v-if="detail.status == 2">
|
|
<text class="label">转账方式名称</text>
|
|
<text class="value">{{ detail.transfer_type_name }}</text>
|
|
</view>
|
|
<view class="line-wrap" v-if="detail.status == 2">
|
|
<text class="label">转账时间</text>
|
|
<text class="value">{{ $util.timeStampTurnTime(detail.payment_time) }}</text>
|
|
</view>
|
|
</view>
|
|
<!-- #ifdef H5 -->
|
|
<view class="operations" v-if="$util.isWeiXin() && withdrawInfo.transfer_type && detail.transfer_type == 'wechatpay' && detail.status == 1">
|
|
<button class="operation" type="primary" @click="merchantTransfer()">收款</button>
|
|
</view>
|
|
<!-- #endif -->
|
|
<!-- #ifdef MP-WEIXIN -->
|
|
<view class="operations" v-if="withdrawInfo.transfer_type && detail.transfer_type == 'wechatpay' && detail.status == 1">
|
|
<button class="operation" type="primary" @click="merchantTransfer()">收款</button>
|
|
</view>
|
|
<!-- #endif -->
|
|
|
|
<loading-cover ref="loadingCover"></loading-cover>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
id: 0,
|
|
detail: {},
|
|
withdrawInfo: {},
|
|
requestCount: 0
|
|
};
|
|
},
|
|
async onLoad(option) {
|
|
this.id = option.id || 0;
|
|
await this.getWithdrawConfig()
|
|
if(option.action) this.merchantTransfer();
|
|
},
|
|
onShow() {
|
|
if (this.storeToken) {
|
|
this.getDetail();
|
|
} else {
|
|
this.$util.redirectTo('/pages_tool/login/login', {
|
|
back: '/pages_tool/member/point'
|
|
}, 'redirectTo');
|
|
}
|
|
},
|
|
onPullDownRefresh() {
|
|
this.getDetail();
|
|
},
|
|
methods: {
|
|
merchantTransfer() {
|
|
uni.showLoading({})
|
|
var app_id = ''
|
|
// #ifdef MP
|
|
app_id = this.withdrawInfo.weapp_appid;
|
|
// #endif
|
|
// #ifdef H5
|
|
if(this.$util.isWeiXin()){
|
|
app_id = this.withdrawInfo.wechat_appid;
|
|
}
|
|
// #endif
|
|
this.$util.merchantTransfer(
|
|
{
|
|
transfer_type: 'member_withdraw',
|
|
id: this.id,
|
|
},
|
|
{
|
|
mch_id: this.withdrawInfo.mch_id,
|
|
app_id: app_id,
|
|
},
|
|
(res)=>{
|
|
if (res.err_msg === 'requestMerchantTransfer:ok') {
|
|
this.updateStatusToInProcess(()=>{
|
|
this.getDetail(true);
|
|
});
|
|
}
|
|
// #ifdef MP
|
|
if (res.errMsg === 'requestMerchantTransfer:ok') {
|
|
this.updateStatusToInProcess(()=>{
|
|
this.getDetail(true);
|
|
});
|
|
}
|
|
// #endif
|
|
}
|
|
);
|
|
},
|
|
async getWithdrawConfig() {
|
|
let res = await this.$api.sendRequest({
|
|
url: '/wechatpay/api/transfer/getWithdrawConfig',
|
|
async: false,
|
|
});
|
|
if (res.code == 0){
|
|
this.withdrawInfo = res.data;
|
|
}
|
|
},
|
|
//修改收款状态为收款中
|
|
updateStatusToInProcess(callback){
|
|
if (this.$refs.loadingCover) this.$refs.loadingCover.show();
|
|
this.$api.sendRequest({
|
|
url: '/wechatpay/api/transfer/inprocess',
|
|
data: {
|
|
from_type: 'member_withdraw',
|
|
relate_tag : this.id,
|
|
},
|
|
success: (res)=>{
|
|
if(res.code >= 0){
|
|
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
|
|
typeof callback == 'function' && callback();
|
|
}
|
|
}
|
|
});
|
|
},
|
|
getDetail(is_loop = false) {
|
|
this.$api.sendRequest({
|
|
url: '/api/memberwithdraw/detail',
|
|
data: {
|
|
id: this.id
|
|
},
|
|
success: res => {
|
|
if (res.data) {
|
|
this.detail = res.data;
|
|
if(is_loop && this.requestCount < 10 && this.detail.status == 3){
|
|
this.requestCount++;
|
|
setTimeout(()=>{
|
|
this.getDetail(true)
|
|
},1000)
|
|
}
|
|
// if(mode && this.detail.status == 1){
|
|
// // 提现状态还没有修改
|
|
// if(this.requestCount < 10 && this.detail.status == 1){
|
|
// this.requestCount++;
|
|
// setTimeout(()=>{
|
|
// this.getDetail('transferComplete')
|
|
// },1000)
|
|
// }
|
|
// }
|
|
uni.stopPullDownRefresh();
|
|
}
|
|
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
|
|
},
|
|
fail: res => {
|
|
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.money-wrap {
|
|
text-align: center;
|
|
font-size: 50rpx;
|
|
font-weight: bold;
|
|
margin: 40rpx;
|
|
border-bottom: 2rpx solid $color-line;
|
|
padding: 40rpx;
|
|
}
|
|
|
|
.item {
|
|
margin: 40rpx;
|
|
|
|
.line-wrap {
|
|
margin-bottom: 20rpx;
|
|
|
|
.label {
|
|
display: inline-block;
|
|
width: 200rpx;
|
|
color: $color-tip;
|
|
font-size: $font-size-base;
|
|
}
|
|
|
|
.value {
|
|
display: inline-block;
|
|
font-size: $font-size-base;
|
|
}
|
|
}
|
|
}
|
|
|
|
.operations {
|
|
margin-top: 60rpx;
|
|
bottom: 0;
|
|
width: 100%;
|
|
// background: #fff;
|
|
position: fixed;
|
|
padding: 0 30rpx;
|
|
box-sizing: border-box;
|
|
padding-bottom: constant(safe-area-inset-bottom);
|
|
padding-bottom: env(safe-area-inset-bottom);
|
|
z-index: 10;
|
|
|
|
.operation {
|
|
height: 80rpx;
|
|
line-height: 80rpx;
|
|
border-radius: 80rpx;
|
|
margin: 30rpx 0 30rpx;
|
|
font-size: $font-size-toolbar;
|
|
|
|
text {
|
|
margin-right: 10rpx;
|
|
font-size: $font-size-base;
|
|
}
|
|
}
|
|
}
|
|
</style>
|