2024-05-11 16:43:09 +08:00
|
|
|
|
<template>
|
2024-05-13 18:05:23 +08:00
|
|
|
|
<view class="content">
|
|
|
|
|
<view class="head">
|
|
|
|
|
<view class="head_conent">
|
|
|
|
|
<view class="sum">
|
|
|
|
|
<view class="text">已提现金额</view>
|
2024-05-14 18:44:55 +08:00
|
|
|
|
<u-count-to class="num" style="color: #F84221;" :startVal="0" :endVal="total" :decimals="2" bold
|
|
|
|
|
font-size="22"></u-count-to>
|
2024-05-13 18:05:23 +08:00
|
|
|
|
</view>
|
|
|
|
|
<view class="line"></view>
|
|
|
|
|
<view class="sum">
|
|
|
|
|
<view class="text">已提现次数</view>
|
2024-05-14 18:44:55 +08:00
|
|
|
|
<u-count-to class="num" :startVal="0" :endVal="count" bold font-size="22"></u-count-to>
|
2024-05-13 18:05:23 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
2024-05-14 22:36:29 +08:00
|
|
|
|
<view style="margin-top: 20rpx; display: flex;align-items: center;" @click="showDate=true">
|
|
|
|
|
<text>{{formatTimestampToYearMonth(nowTimes) }}</text> <up-icon name="arrow-down"></up-icon>
|
2024-05-13 18:43:53 +08:00
|
|
|
|
</view>
|
2024-05-14 22:36:29 +08:00
|
|
|
|
<view class="recoder" v-if="lists.length">
|
2024-05-14 18:44:55 +08:00
|
|
|
|
<view class="card" v-for="(item,index) in lists" :key="index">
|
2024-05-13 18:05:23 +08:00
|
|
|
|
<view class="right">
|
|
|
|
|
<view class="item" style="justify-content: flex-start;">
|
|
|
|
|
<text class="rest">余额提现至</text>
|
2024-05-14 22:36:29 +08:00
|
|
|
|
<text v-if="item.merchant_bank_info.bank_code"
|
|
|
|
|
class="code">({{item.merchant_bank_info.bank_code.substring(item.merchant_bank_info.bank_code.length - 4)}})</text>
|
2024-05-14 18:44:55 +08:00
|
|
|
|
<text class="withdraw-type legal_company">{{ item.merchant_bank_info.is_own?"对公" :"个人"}}</text>
|
2024-05-13 18:05:23 +08:00
|
|
|
|
</view>
|
|
|
|
|
<view class="item">
|
|
|
|
|
<view class="item_title">
|
2024-05-14 18:44:55 +08:00
|
|
|
|
<text>{{item.merchant_bank_info.bank_info.name }}</text>
|
2024-05-13 18:05:23 +08:00
|
|
|
|
</view>
|
2024-05-14 18:44:55 +08:00
|
|
|
|
<view class="item_money">+{{item.amount}}</view>
|
2024-05-13 18:05:23 +08:00
|
|
|
|
</view>
|
|
|
|
|
<view class="item">
|
2024-05-14 18:44:55 +08:00
|
|
|
|
<view class="item-time">{{item.create_time}}</view>
|
|
|
|
|
{{item.is_check==1?'审核通过':item.is_check==2?"审核不通过":"待审核" }}
|
2024-05-13 18:05:23 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2024-05-14 18:44:55 +08:00
|
|
|
|
<view class="remark" v-if="item.fail_msg">{{item.fail_msg}}</view>
|
2024-05-13 18:05:23 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
2024-05-14 22:36:29 +08:00
|
|
|
|
</view>
|
|
|
|
|
<up-empty v-else mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png">
|
|
|
|
|
</up-empty>
|
|
|
|
|
<up-datetime-picker :show="showDate" @confirm='confirmDate' :maxDate='now' @cancel='showDate=false'
|
|
|
|
|
@close='showDate=false' v-model="nowTimes" mode="year-month"></up-datetime-picker>
|
2024-05-11 16:43:09 +08:00
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
|
2024-05-13 18:05:23 +08:00
|
|
|
|
<script setup>
|
2024-05-15 10:40:23 +08:00
|
|
|
|
// import hDatetimePicker from "@/components/h-datetime-picker/components/h-datetime-picker/h-datetime-picker.vue"
|
2024-05-13 18:05:23 +08:00
|
|
|
|
import {
|
|
|
|
|
ref,
|
|
|
|
|
reactive
|
|
|
|
|
} from "vue"
|
2024-05-14 18:44:55 +08:00
|
|
|
|
import {
|
|
|
|
|
UserWithdrawListsApi,
|
2024-05-14 22:36:29 +08:00
|
|
|
|
UserWithdrawIndexApi,
|
|
|
|
|
|
2024-05-14 18:44:55 +08:00
|
|
|
|
} from "@/api/balance.js"
|
|
|
|
|
|
2024-05-14 18:55:35 +08:00
|
|
|
|
const showDate = ref(false)
|
2024-05-14 18:44:55 +08:00
|
|
|
|
const count = ref(0)
|
|
|
|
|
const total = ref(0)
|
2024-05-14 22:36:29 +08:00
|
|
|
|
const nowTimes = ref(new Date().getFullYear() + '-' + (new Date().getMonth() + 1))
|
|
|
|
|
|
|
|
|
|
|
2024-05-14 18:44:55 +08:00
|
|
|
|
const getInfo = async () => {
|
|
|
|
|
let res = await UserWithdrawIndexApi()
|
|
|
|
|
count.value = res.data.count
|
|
|
|
|
total.value = res.data.total
|
|
|
|
|
}
|
|
|
|
|
getInfo()
|
|
|
|
|
|
|
|
|
|
const lists = ref([])
|
|
|
|
|
const getList = async () => {
|
|
|
|
|
let res = await UserWithdrawListsApi({
|
2024-05-14 22:36:29 +08:00
|
|
|
|
create_time: nowTimes.value
|
2024-05-14 18:44:55 +08:00
|
|
|
|
})
|
|
|
|
|
lists.value = res.data.lists
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
getList()
|
2024-05-13 18:05:23 +08:00
|
|
|
|
|
2024-05-14 18:55:35 +08:00
|
|
|
|
let now = ref(new Date().getTime())
|
|
|
|
|
|
2024-05-14 22:36:29 +08:00
|
|
|
|
function formatTimestampToYearMonth(timestamp) {
|
|
|
|
|
var date = new Date(timestamp);
|
|
|
|
|
var year = date.getFullYear();
|
|
|
|
|
var month = date.getMonth() + 1; // 月份是从0开始的,所以需要加1
|
|
|
|
|
if (month < 10) {
|
|
|
|
|
month = '0' + month; // 如果月份小于10,则在前面补零
|
|
|
|
|
}
|
|
|
|
|
return year + '-' + month;
|
|
|
|
|
}
|
2024-05-14 18:55:35 +08:00
|
|
|
|
|
2024-05-14 22:36:29 +08:00
|
|
|
|
const confirmDate = (e) => {
|
|
|
|
|
nowTimes.value = formatTimestampToYearMonth(e.value)
|
|
|
|
|
getList()
|
|
|
|
|
showDate.value = false
|
2024-05-14 18:55:35 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2024-05-13 18:05:23 +08:00
|
|
|
|
const nowDate = new Date()
|
|
|
|
|
// cconst
|
|
|
|
|
const showPop = ref(false)
|
|
|
|
|
|
|
|
|
|
const openDatePicker = () => {
|
|
|
|
|
showPop.value = true
|
|
|
|
|
}
|
|
|
|
|
const confirm = (e) => {
|
|
|
|
|
showPop.value = false
|
|
|
|
|
}
|
2024-05-11 16:43:09 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
2024-05-13 18:05:23 +08:00
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
.content {
|
|
|
|
|
padding: 20rpx;
|
|
|
|
|
|
|
|
|
|
.head {
|
|
|
|
|
padding: 28rpx;
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
border-radius: 24rpx;
|
|
|
|
|
box-shadow: 0rpx 4rpx 10rpx 2rpx rgba(161, 161, 161, 0.4);
|
|
|
|
|
border-radius: 20rpx 20rpx 20rpx 20rpx;
|
|
|
|
|
|
|
|
|
|
.head_conent {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-around;
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
.line {
|
|
|
|
|
width: 1rpx;
|
|
|
|
|
height: 70rpx;
|
|
|
|
|
background-color: #dfdfdf;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sum {
|
|
|
|
|
flex: 1;
|
|
|
|
|
text-align: center;
|
|
|
|
|
color: #737373;
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
|
|
|
|
|
.num {
|
|
|
|
|
font-size: 48.06rpx;
|
|
|
|
|
margin-bottom: 15rpx;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.text {
|
|
|
|
|
margin-bottom: 24rpx;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
color: #666666;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.recoder {
|
|
|
|
|
margin-top: 20rpx;
|
|
|
|
|
// padding: 0 28rpx 28rpx 28rpx;
|
|
|
|
|
|
|
|
|
|
.time {
|
|
|
|
|
height: 42rpx;
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
font-family: PingFang SC-Medium, PingFang SC;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
color: #333333;
|
|
|
|
|
line-height: 45rpx;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
.icon {
|
|
|
|
|
width: 30rpx;
|
|
|
|
|
height: 30rpx;
|
|
|
|
|
transform: rotate(90deg);
|
|
|
|
|
margin-left: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.card {
|
|
|
|
|
// width: 694rpx;
|
|
|
|
|
background: #FFFFFF;
|
|
|
|
|
border-radius: 21rpx 21rpx 21rpx 21rpx;
|
|
|
|
|
opacity: 1;
|
|
|
|
|
padding: 28rpx;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
|
|
|
|
|
.right {
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
|
|
|
|
.item {
|
|
|
|
|
width: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: center;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
|
|
|
|
|
.rest {
|
|
|
|
|
margin-right: 10rpx;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
color: #333333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.code {
|
|
|
|
|
margin-right: 10rpx;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
color: #333333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.legal_company {
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
background: #72BE53;
|
|
|
|
|
border-radius: 6rpx;
|
|
|
|
|
padding: 2rpx 10rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.legal_person {
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
background: #FF8056;
|
|
|
|
|
border-radius: 6rpx;
|
|
|
|
|
padding: 2rpx 10rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.item-time {
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
color: #666666;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&_title {
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
color: #333333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&_money {
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
font-size: 36rpx;
|
|
|
|
|
color: #F55726;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&_brank {
|
|
|
|
|
font-size: 26rpx;
|
|
|
|
|
font-family: PingFang SC-Regular, PingFang SC;
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
color: #737373;
|
|
|
|
|
line-height: 39rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&_time {
|
|
|
|
|
font-size: 23rpx;
|
|
|
|
|
font-family: PingFang SC-Regular, PingFang SC;
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
color: #B3B3B3;
|
|
|
|
|
line-height: 34rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.item_status {
|
|
|
|
|
border-radius: 6rpx 6rpx 6rpx 6rpx;
|
|
|
|
|
padding: 2rpx 16rpx;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.audit {
|
|
|
|
|
background: rgba(38, 172, 245, .2);
|
|
|
|
|
color: #26ACF5;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.trans {
|
|
|
|
|
background: rgba(245, 87, 38, .2);
|
|
|
|
|
color: #F55726;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.done {
|
|
|
|
|
display: flex;
|
|
|
|
|
background: rgba(70, 176, 58, .2);
|
|
|
|
|
color: #46B03A;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.lose {
|
|
|
|
|
background: rgba(102, 102, 102, .2);
|
|
|
|
|
color: #666;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.item-title {
|
|
|
|
|
justify-content: flex-start;
|
|
|
|
|
|
|
|
|
|
text {
|
|
|
|
|
&:nth-child(1) {
|
|
|
|
|
width: 198rpx;
|
|
|
|
|
height: 40rpx;
|
|
|
|
|
font-family: PingFang SC, PingFang SC;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
color: #333333;
|
|
|
|
|
line-height: 51rpx;
|
|
|
|
|
text-align: left;
|
|
|
|
|
font-style: normal;
|
|
|
|
|
text-transform: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&:nth-child(1) {
|
|
|
|
|
width: 198rpx;
|
|
|
|
|
height: 40rpx;
|
|
|
|
|
font-family: PingFang SC, PingFang SC;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
color: #333333;
|
|
|
|
|
line-height: 51rpx;
|
|
|
|
|
text-align: left;
|
|
|
|
|
font-style: normal;
|
|
|
|
|
text-transform: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.remark {
|
|
|
|
|
word-wrap: break-word;
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
color: #F55726;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-05-11 16:43:09 +08:00
|
|
|
|
</style>
|