chenhao 7083c8d27e 恢复提现入口、abort 请求不再弹 toast、其他小修
- 恢复 Cashout/CashoutRecord/CashoutAccount 路由及 My/Balance 提现入口,去掉 VIP 校验
- 请求被 abort 时保持 pending,不再触发 caller 的 catch 弹 toast
- App.vue 未登录不请求微信分享配置
- ResetPwd 手机号校验改用 cellphone 字段并统一 showFailToast
- Team 页 active=1 走 referrer 单条数据分支
- 忽略 AGENTS.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-21 16:18:49 +08:00

209 lines
9.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<BasePage>
<div class="balance_page">
<div class="balance_page__top">
<div class="balance_page__line">
<b class="balance_page__title">
当前余额 <van-icon name="question-o" @click.stop="showTerm = true"></van-icon>
</b>
<div v-if="!hide" class="balance_page__record_link" @click="$navigate('CashoutRecord')">
<img src="/img/icon-balance-co.png" alt="">
<span>提现记录</span>
<van-icon name="arrow"></van-icon>
</div>
</div>
<div class="balance_page__line">
<b class="balance_page__num">
{{ data.total.totalsum?.toFixed(2) }}
</b>
<button v-if="!hide" class="r" @click="toCashout">
提现
</button>
</div>
<div class="balance_page__line">
<div class="balance_page__total">
累计收入:
<p>{{ data.total?.positivesum?.toFixed(2) }}</p>
</div>
<div class="r balance_page__total">
累计支出:
<p>{{ Math.abs((data.total?.negativesum))?.toFixed(2) }}</p>
</div>
</div>
</div>
<div class="balance_page__bottom">
<div class="balance_page__date_box">
<div class="balance_page__date" @click="showDate = true">
{{ date[0] }}-
<p>{{ (parseInt(date[1]) < 10) ? `0${parseInt(date[1])}` : parseInt(date[1]) }}</p>
<img src="/img/icon-down.png" alt="">
</div>
<div class="balance_page__stat">
<div>
<span>收入</span>
<p> {{ data.total?.positivesumcurrent?.toFixed(2) }}</p>
</div>
<div>
<span>支出</span>
<p> {{ Math.abs((data.total?.negativesumcurrent))?.toFixed(2) }}</p>
</div>
</div>
</div>
<!-- <van-tabs v-model:active="active" type="card" class="tabs" color="#374c6d" @change="changeTabs">
<van-tab title="全部"></van-tab>
<van-tab title="礼包" name="31"></van-tab>
<van-tab title="商家" name="34"></van-tab>
<van-tab title="商城" name="33"></van-tab>
<van-tab title="分成" name="32"></van-tab>
</van-tabs> -->
<BaseList ref="baselist" url="/v1/client/DUsermoneysClient" class="balance_page__list"
:params="searchParams">
<template #default="{ item }">
<div class="balance_page__item" :key="item.TradeCode">
<table width="100%" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<div style="margin-bottom: 2vw;">{{ $route.meta.title }}{{
item.balance?.toFixed(2) }}</div>
</td>
<td style="text-align: right;">
<van-tag
:class="item.nums > 0 ? 'balance_page__tag--in' : 'balance_page__tag--out'"
style="margin-bottom: 2vw;">
{{ item.nums > 0 ? "增加:+" : "减少:"
}}{{ (item.nums).toFixed(2) }}
</van-tag>
</td>
</tr>
<tr v-if="item.remark">
<td colspan="2">
<div style="line-height: 5vw;word-break: break-all; color: #999">
备注{{ item.remark }}
</div>
</td>
</tr>
<tr v-if="item.ordernum">
<td colspan="2">
<div
style="line-height: 5vw;word-break: break-all;color: #999;display: inline;">
订单{{ item.ordernum }}
</div>
<u style="color: #535353; margin-left: 1.667vw"
@click="$copyText(item.ordernum); $showSuccessToast('复制成功')">复制</u>
</td>
</tr>
<tr>
<td colspan="2">
<div
style="line-height: 5vw;word-break: break-all;color: #999;display: inline;">
时间{{ $formatGMT(item.addtime, 'yyyy-MM-dd HH:mm:ss') }}
</div>
</td>
</tr>
</tbody>
</table>
</div>
</template>
</BaseList>
</div>
</div>
<van-popup v-model:show="showDate" position="bottom">
<van-date-picker v-model="currentDate" title="选择年月" :columns-type="['year', 'month']" @confirm="onconfirm"
@cancel="showDate = false" />
</van-popup>
<van-action-sheet v-model:show="showTerm" safe-area-inset-bottom :title="`${this.$route.meta.title}说明`"
closeable style="min-height: 50%; padding: 0px 10px 10px 10px">
<div class="w100 html" v-html="$datadic.getContent('code_yesm')" />
</van-action-sheet>
</BasePage>
</template>
<script>
export default {
name: 'Balance',
mounted() {
this.init();
},
data() {
return {
active: 0,
data: {
total: {
Balance: 8888.88,
TotalBalance: 20000.00,
MonthBalance: 5200.00,
MonthReduceBalance: 1311.12,
},
Term: '余额说明:余额可用于提现、购物等。',
},
date: [`${new Date().getFullYear()}`, `${new Date().getMonth() + 1}`],
currentDate: [`${new Date().getFullYear()}`, `${new Date().getMonth() + 1}`],
show: false,
showDate: false,
searchParams: {
type: '',
year: new Date().getFullYear(),
month: new Date().getMonth() + 1,
},
loading: false,
showTerm: false,
list: [],
isVIP: '',
hide: false,
}
},
methods: {
init() {
this.$get('/v1/client/DUsermoneysClient/statistics', this.searchParams).then(data => {
this.data.total = data.data;
}).catch(err => {
this.$showFailToast(err.message || '加载失败');
})
this.$get('/v1/client/DUsersClient').then(data => {
this.isVIP = data.data.userlevelname;
})
// this.$get('/v1/client/DUsermoneysClient/select').then(res => {
// // console.log(res.data);
// })
},
toCashout() {
// if (this.isVIP === '会员') {
// this.$showFailToast('您还未购买礼包产品成为VIP暂不能提现')
// setTimeout(() => {
// // this.$navigate('/My')
// }, 1500);
// return
// }
this.$navigate('Cashout');
},
onconfirm(value) {
this.date = this.currentDate;
this.showDate = false;
this.searchParams.year = Number.parseInt(this.currentDate[0]);
this.searchParams.month = Number.parseInt(this.currentDate[1]);
this.init();
this.$refs.baselist.refresh()
},
changeTabs(e) {
this.searchParams.type = e || '';
// this.$refs.baselist.refresh();
},
onShowTerm() {
this.showTerm = true;
}
}
}
</script>