mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 18:03:27 +08:00
前端【新增】完善用户提现前端领取金额的处理。
This commit is contained in:
@@ -80,4 +80,17 @@ export enum ServiceCardStatusEnum {
|
||||
nullify = 2,
|
||||
/** 已核销 */
|
||||
verified = 3,
|
||||
}
|
||||
|
||||
export enum UserTocashType {
|
||||
/** 银行线下转账 */
|
||||
offlineBankTransfer = 0,
|
||||
/** 企业付款到零钱 */
|
||||
enterprisePaymentToChange = 1,
|
||||
/** 企业付款到银行卡 */
|
||||
enterprisePaymentTobankcard = 2,
|
||||
/** 商家转账到零钱 */
|
||||
merchantsTransferMoneyToChange = 3,
|
||||
/** 商家转账 */
|
||||
merchantTransfer = 4,
|
||||
}
|
||||
@@ -47,4 +47,5 @@ export interface CashType {
|
||||
userId ?: number;
|
||||
userNickName ?: string;
|
||||
withdrawals ?: number;
|
||||
needUserGet?:boolean;
|
||||
}
|
||||
@@ -57,6 +57,13 @@
|
||||
.date {
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.btn{
|
||||
padding: 10rpx 20rpx;
|
||||
font-size: 27rpx;
|
||||
color: #fff;
|
||||
background-color: #d33123;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,115 +1,174 @@
|
||||
<template>
|
||||
<coreshop-page title="提现明细" mode="left">
|
||||
<view class="box">
|
||||
<view class="select-box" :style="{'top':`${statusBarHeight}px`}" @click="onSelectFilterType">
|
||||
<view class="name">筛选类型:</view>
|
||||
<view class="selected">
|
||||
<text class="tit">{{state.selectFilterType}}</text>
|
||||
<uv-icon name="arrow-down"></uv-icon>
|
||||
</view>
|
||||
</view>
|
||||
<coreshop-page title="提现明细" mode="left">
|
||||
<view class="box">
|
||||
<view class="select-box" :style="{'top':`${statusBarHeight}px`}" @click="onSelectFilterType">
|
||||
<view class="name">筛选类型:</view>
|
||||
<view class="selected">
|
||||
<text class="tit">{{state.selectFilterType}}</text>
|
||||
<uv-icon name="arrow-down"></uv-icon>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<uv-picker ref="balanceFilterTypePickerRef" confirmColor="#D33123" :columns="state.balanceFilterTypes"
|
||||
@confirm="onConfirm"></uv-picker>
|
||||
<uv-picker ref="balanceFilterTypePickerRef" confirmColor="#D33123" :columns="state.balanceFilterTypes"
|
||||
@confirm="onConfirm"></uv-picker>
|
||||
|
||||
<view class="list" v-if="state.list.length > 0">
|
||||
<view class="item" v-for="item in state.list" :key="item.id">
|
||||
<view class="header">
|
||||
<view class="type">{{item.statusName}}</view>
|
||||
<view class="remain">提现金额¥{{item.money}}</view>
|
||||
</view>
|
||||
<view class="withdraw_box">
|
||||
<view class="withdraw">
|
||||
<view class="money">提现卡号</view>
|
||||
<view class="date">{{item.cardNumber}}</view>
|
||||
</view>
|
||||
<view class="date">
|
||||
<view class="money">提现时间</view>
|
||||
<view class="date">{{item.createTime}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="no-data" v-if="state.page === state.totalPages">没有更多了</view>
|
||||
</view>
|
||||
<view v-else class="layout-empty-box">
|
||||
<coreshop-empty :mode="EmptyEnum.history" text="暂无数据"></coreshop-empty>
|
||||
</view>
|
||||
<view class="list" v-if="state.list.length > 0">
|
||||
<view class="item" v-for="item in state.list" :key="item.id">
|
||||
<view class="header">
|
||||
<view class="type">{{item.statusName}}</view>
|
||||
<view class="remain">提现金额¥{{item.money}}</view>
|
||||
</view>
|
||||
<view class="withdraw_box">
|
||||
<view class="withdraw">
|
||||
<view class="money">提现卡号</view>
|
||||
<view class="date">{{item.cardNumber}}</view>
|
||||
</view>
|
||||
<view class="date">
|
||||
<view class="money">提现时间</view>
|
||||
<view class="date">{{item.createTime}}</view>
|
||||
</view>
|
||||
<view class="date">
|
||||
<view class="money">提现方式</view>
|
||||
<view class="date">
|
||||
{{ getUserTocashType(item.type) }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="date" v-if="item.needUserGet && item.type == UserTocashType.merchantTransfer">
|
||||
<view>
|
||||
<!-- 您已领取到微信余额 -->
|
||||
</view>
|
||||
<view class="btn" @click="handlerReceiveWeChat(item)">领取到微信零钱</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="no-data" v-if="state.page === state.totalPages">没有更多了</view>
|
||||
</view>
|
||||
<view v-else class="layout-empty-box">
|
||||
<coreshop-empty :mode="EmptyEnum.history" text="暂无数据"></coreshop-empty>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</coreshop-page>
|
||||
</view>
|
||||
</coreshop-page>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { reactive, ref } from "vue";
|
||||
import { onLoad, onReachBottom } from '@dcloudio/uni-app';
|
||||
import { queryCashList } from '@/core/api';
|
||||
import type { Response, CashType } from '@/core/models';
|
||||
import { handleShowToast } from '@/core/utils';
|
||||
import { EmptyEnum } from '@/core/enum';
|
||||
import { useSystemInfo } from '@/core/hooks';
|
||||
import { reactive, ref } from "vue";
|
||||
import { onLoad, onReachBottom } from '@dcloudio/uni-app';
|
||||
import { queryCashList } from '@/core/api';
|
||||
import type { Response, CashType } from '@/core/models';
|
||||
import { handleShowToast } from '@/core/utils';
|
||||
import { EmptyEnum, UserTocashType } from '@/core/enum';
|
||||
import { useSystemInfo } from '@/core/hooks';
|
||||
|
||||
// 获取自定义导航栏高度
|
||||
const { statusBarHeight } = useSystemInfo();
|
||||
// 获取自定义导航栏高度
|
||||
const { statusBarHeight } = useSystemInfo();
|
||||
|
||||
const balanceFilterTypePickerRef = ref();
|
||||
const balanceFilterTypePickerRef = ref();
|
||||
|
||||
const state = reactive<{
|
||||
balanceFilterTypes : Array<Array<string>>;
|
||||
selectFilterType : string;
|
||||
id : number;
|
||||
page : number;
|
||||
limit : number;
|
||||
list : Array<CashType>;
|
||||
totalPages : number;
|
||||
}>({
|
||||
balanceFilterTypes: [['全部', '待审核', '提现成功', '提现失败']],
|
||||
selectFilterType: '全部',
|
||||
id: 0,
|
||||
page: 1,
|
||||
limit: 10,
|
||||
list: [],
|
||||
totalPages: 1,
|
||||
})
|
||||
const state = reactive<{
|
||||
balanceFilterTypes : Array<Array<string>>;
|
||||
selectFilterType : string;
|
||||
id : number;
|
||||
page : number;
|
||||
limit : number;
|
||||
list : Array<CashType>;
|
||||
totalPages : number;
|
||||
}>({
|
||||
balanceFilterTypes: [['全部', '待审核', '提现成功', '提现失败']],
|
||||
selectFilterType: '全部',
|
||||
id: 0,
|
||||
page: 1,
|
||||
limit: 10,
|
||||
list: [],
|
||||
totalPages: 1,
|
||||
})
|
||||
|
||||
onLoad(() => {
|
||||
getCashList();
|
||||
});
|
||||
onLoad(() => {
|
||||
getCashList();
|
||||
});
|
||||
|
||||
onReachBottom(() => {
|
||||
if (state.totalPages > state.page) {
|
||||
state.page++;
|
||||
getCashList();
|
||||
}
|
||||
});
|
||||
onReachBottom(() => {
|
||||
if (state.totalPages > state.page) {
|
||||
state.page++;
|
||||
getCashList();
|
||||
}
|
||||
});
|
||||
|
||||
/** 用户提现列表 */
|
||||
const getCashList = async () => {
|
||||
const cashList : Response<Array<CashType>> = await queryCashList({
|
||||
id: state.id,
|
||||
page: state.page,
|
||||
limit: state.limit,
|
||||
});
|
||||
if (cashList.status) {
|
||||
state.totalPages = cashList?.otherData?.totalPages;
|
||||
state.list = state.list.concat(cashList.data);
|
||||
} else {
|
||||
handleShowToast(cashList.msg)
|
||||
}
|
||||
}
|
||||
/** 用户提现列表 */
|
||||
const getCashList = async () => {
|
||||
const cashList : Response<Array<CashType>> = await queryCashList({
|
||||
id: state.id,
|
||||
page: state.page,
|
||||
limit: state.limit,
|
||||
});
|
||||
if (cashList.status) {
|
||||
state.totalPages = cashList?.otherData?.totalPages;
|
||||
state.list = state.list.concat(cashList.data);
|
||||
} else {
|
||||
handleShowToast(cashList.msg)
|
||||
}
|
||||
}
|
||||
|
||||
const onSelectFilterType = () => {
|
||||
balanceFilterTypePickerRef.value?.open();
|
||||
}
|
||||
const onConfirm = ({ indexs, value }) => {
|
||||
state.id = indexs[0];
|
||||
state.selectFilterType = value?.[0];
|
||||
state.list = [];
|
||||
state.page = 1;
|
||||
getCashList();
|
||||
}
|
||||
const onSelectFilterType = () => {
|
||||
balanceFilterTypePickerRef.value?.open();
|
||||
}
|
||||
const onConfirm = ({ indexs, value }) => {
|
||||
state.id = indexs[0];
|
||||
state.selectFilterType = value?.[0];
|
||||
state.list = [];
|
||||
state.page = 1;
|
||||
getCashList();
|
||||
}
|
||||
|
||||
/* 提现方式 */
|
||||
const getUserTocashType = (type : number) => {
|
||||
switch (type) {
|
||||
case UserTocashType.offlineBankTransfer:
|
||||
return '银行线下转账';
|
||||
case UserTocashType.enterprisePaymentToChange:
|
||||
return '企业付款到零钱';
|
||||
case UserTocashType.enterprisePaymentTobankcard:
|
||||
return '企业付款到银行卡';
|
||||
case UserTocashType.merchantsTransferMoneyToChange:
|
||||
return '商家转账到零钱';
|
||||
case UserTocashType.merchantTransfer:
|
||||
return '商家转账';
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const handlerReceiveWeChat = (item:any) => {
|
||||
// #ifdef MP-WEIXIN
|
||||
let message = JSON.parse(item.message);
|
||||
if(message.response.state != 'WAIT_USER_CONFIRM'){
|
||||
return ;
|
||||
}
|
||||
if (wx.canIUse('requestMerchantTransfer')) {
|
||||
wx.requestMerchantTransfer({
|
||||
mchId: item.merchantTransferData.mchId,
|
||||
appId: item.merchantTransferData.appId,
|
||||
package: message.response.package_info,
|
||||
success: () => {
|
||||
state.page = 1;
|
||||
state.list = [];
|
||||
getCashList();
|
||||
},
|
||||
fail: (res) => {
|
||||
console.log('fail:', res);
|
||||
},
|
||||
});
|
||||
} else {
|
||||
wx.showModal({
|
||||
content: '你的微信版本过低,请更新至最新版本。',
|
||||
showCancel: false,
|
||||
});
|
||||
}
|
||||
// #endif
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import './index.scss';
|
||||
@import './index.scss';
|
||||
</style>
|
||||
Reference in New Issue
Block a user