Files
PC-202306242200\Administrator 1c24452b6c first commit
2026-03-28 23:10:55 +08:00

330 lines
9.2 KiB
Vue
Raw Permalink 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>
<view>
<z-paging ref="paging" :refresher-enabled="showLoading" v-model="dataList" @query="queryList">
<wd-navbar title="钱包" :bordered="false" left-arrow custom-style="background-color: transparent !important;" safeAreaInsetTop @click-left="back"></wd-navbar>
<view class="p30">
<image src="/static/qianBeiAs.png" mode="widthFix" style="position: absolute; top: 0; left: 0; width: 100%; z-index: -1"></image>
<view style="position: relative">
<image src="/static/qianbaoBei.png" style="width: 690rpx; height: 382rpx; position: absolute; top: 0; left: 0; z-index: -1"></image>
<view style="padding: 24rpx 30rpx; font-size: 36rpx; font-weight: bold; margin-bottom: 24rpx">我的钱包</view>
<view style="display: flex; align-items: center; margin-bottom: 14rpx; padding: 0 30rpx">
<!-- <image src="/static/icons/wen.png" style="width: 28rpx; height: 28rpx"></image> -->
<view style="font-size: 24rpx; color: #666a6d; margin: 0 10rpx">我的余额</view>
<image @click="toeas" :src="`/static/icons/yan${toeasTrue ? 's' : ''}.png`" style="width: 35rpx; height: 35rpx"></image>
</view>
<view
style="
font-size: 58rpx;
font-weight: bold;
color: #69a24a;
padding: 0 30rpx;
margin-bottom: 25rpx;
display: flex;
align-items: center;
justify-content: space-between;
"
>
{{ toeasTrue ? '****' : userInfo.money }}
<view
@click="toZhuan"
style="
color: #8ec287;
padding: 8rpx 30rpx;
border-radius: 30rpx;
font-size: 28rpx;
background-color: rgba(255, 255, 255, 0.8);
font-weight: 400;
display: flex;
align-items: center;
"
>
<image src="/static/icons/huazhuan.png" style="width: 35rpx; height: 35rpx"></image>
<text style="margin-left: 10rpx">划转</text>
</view>
</view>
<view
style="
width: 690rpx;
height: 110rpx;
background: #e9f2e7;
border-radius: 8rpx;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 30rpx;
margin-bottom: 35rpx;
"
>
<view class="block_wall">
<view class="block_wall_tit" style="font-size: 24rpx">
<view>业绩奖励</view>
<!-- <image src="/static/icons/wen.png" style="width: 28rpx; height: 28rpx"></image> -->
</view>
<view style="font-size: 32rpx; font-weight: bold">{{ userInfo.performanceReward || 0 }}</view>
</view>
<view class="block_wall">
<view class="block_wall_tit" style="font-size: 24rpx">
<view>直推奖励</view>
<!-- <image src="/static/icons/wen.png" style="width: 28rpx; height: 28rpx"></image> -->
</view>
<view style="font-size: 32rpx; font-weight: bold">{{ userInfo.directReferralReward || 0 }}</view>
</view>
<view class="block_wall">
<view class="block_wall_tit" style="font-size: 24rpx">
<view>间推奖励</view>
<!-- <image src="/static/icons/wen.png" style="width: 28rpx; height: 28rpx"></image> -->
</view>
<view style="font-size: 32rpx; font-weight: bold">{{ userInfo.indirectReferralReward || 0 }}</view>
</view>
<view class="block_wall">
<view class="block_wall_tit" style="font-size: 24rpx">
<view>特殊奖励</view>
<!-- <image src="/static/icons/wen.png" style="width: 28rpx; height: 28rpx"></image> -->
</view>
<view style="font-size: 32rpx; font-weight: bold">{{ userInfo.specialReward || 0 }}</view>
</view>
</view>
</view>
<!-- 报单业绩 -->
<view class="wallet-section" v-if="userInfo.branchCompany">
<view class="section-title">
<view>
<text>市场报单业绩</text>
<text style="font-size: 24rpx; font-weight: 500">(</text>
<image src="/static/icons/wen.png" @click="tishi" style="width: 28rpx; height: 28rpx"></image>
</view>
<view style="font-size: 26rpx">合计{{ rewardReportInfo.total_monthly_performance }}</view>
</view>
<view class="wallet-cards">
<view class="wallet-item" v-for="(item, index) in rewardReportInfo.money_count" :key="index">
<text class="amount red">{{ item.money || 0 }}</text>
<text class="label">{{ item.name }}</text>
<text class="desc">已招募{{ item.count || 0 }}</text>
</view>
<!-- <view class="wallet-item">
<text class="amount">{{ userInfo.performanceReward || 0 }}</text>
<text class="label">总代理</text>
<text class="desc">已招募{{ rewardReportInfo.money_count.generalAgent || 0 }}</text>
</view>
<view class="wallet-item">
<text class="amount">{{ userInfo.directReferralReward || 0 }}</text>
<text class="label">加盟店</text>
<text class="desc">已招募{{ rewardReportInfo.money_count.franchise || 0 }}</text>
</view> -->
<view class="wallet-item">
<text class="amount">{{ rewardReportInfo.restock_reward || 0 }}</text>
<text class="label">团队补货</text>
</view>
</view>
</view>
<view>
<view style="display: flex; align-items: center; justify-content: space-between">
<image style="width: 74rpx; height: 34rpx" mode="widthFix" src="/static/icons/zhangdan.png"></image>
<wd-picker
@close="showLoading = true"
@open="showLoading = false"
:columns="columns"
v-model="queryPrams.bizType"
use-default-slot
@confirm="handleConfirm"
>
<view style="display: flex; align-items: center; font-size: 28rpx">
{{ typeName || '筛选' }}
<image style="margin-left: 15rpx; width: 35rpx; height: 35rpx" src="/static/icons/xia.png"></image>
</view>
</wd-picker>
</view>
<view class="wall_list" v-for="(item, index) in dataList" :key="index">
<view>
<view style="margin-bottom: 25rpx; font-size: 28rpx">{{ item.title }}</view>
<view style="font-size: 24rpx; color: #999">
{{ timeFormat(item.createTime, 'yyyy-MM-dd hh:mm:ss') }}
</view>
</view>
<view style="font-size: 32rpx; font-weight: bold; color: #799675">{{ item.money }}</view>
</view>
</view>
</view>
</z-paging>
</view>
</template>
<script setup lang="ts">
import { ref, computed } from 'vue';
import api from '@/api/index';
import { Store } from '@/store';
import { onShow } from '@dcloudio/uni-app';
const rewardReportInfo = ref({});
const store = Store();
const paging = ref(null);
const dataList = ref([]);
const columns = ref([]);
const showLoading = ref(true);
const typeName = ref('');
const toeasTrue = ref(false);
const queryPrams = ref({
bizType: ''
});
const userInfo = computed(
() =>
store.userInfo || {
inviteCode: '',
nickname: '',
mobile: '',
avatar: '',
paywallet: {
balance: 0
}
}
);
onShow(async () => {
if (userInfo.value.branchCompany) {
api.rewardReport().then((res) => {
rewardReportInfo.value = res;
});
}
});
import { timeFormat } from '@/utils/fun.js';
const queryList = (pageNo, pageSize) => {
api.moneyRecord({ pageNo, pageSize, ...queryPrams.value })
.then((res: any) => {
columns.value = Object.entries(res.bizType).map(([value, label]) => ({
value,
label
}));
columns.value.unshift({
label: '全部',
value: ''
});
paging.value.complete(res.list);
})
.catch((res) => {
paging.value.complete(false);
});
};
const handleConfirm = (e) => {
if (!e.value) {
typeName.value = '';
} else {
typeName.value = e.selectedItems.label;
}
paging.value.reload();
};
const back = () => {
uni.navigateBack();
};
const tishi = () => {
uni.showModal({
title: '提示',
content: '每月初结算上月业绩“团队补货”为团队补货回款本月整个团队总补货回款为20W则月度团队补货收益为20W×12%=24000元',
showCancel: false
});
};
const toeas = () => {
toeasTrue.value = !toeasTrue.value;
};
const toZhuan = () => {
uni.navigateTo({
url: '/pages/wallet/zhaun'
});
};
</script>
<style lang="scss" scoped>
.block_wall {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
&_tit {
display: flex;
align-items: center;
}
}
.wall_list {
width: 690rpx;
height: 118rpx;
background: #ffffff;
box-shadow: 0rpx 2rpx 8rpx 2rpx rgba(0, 88, 219, 0.06);
border-radius: 8rpx 8rpx 8rpx 8rpx;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 30rpx;
margin-top: 30rpx;
}
/* 钱包区域 */
.wallet-section {
background-color: white;
margin: 0rpx 0 20rpx;
padding: 30rpx;
border-radius: 8rpx 8rpx 8rpx 8rpx;
}
.section-title {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10rpx 0 20rpx;
font-size: 32rpx;
font-weight: bold;
color: #333;
border-bottom: 1px solid #eee;
margin-bottom: 20rpx;
}
.wallet-cards {
display: flex;
justify-content: space-between;
}
.wallet-item {
display: flex;
flex-direction: column;
flex: 1;
text-align: center;
color: #333;
}
.label {
font-size: 28rpx;
color: #666;
}
.amount {
font-size: 36rpx;
font-weight: bold;
margin-bottom: 10rpx;
color: #799675;
}
.desc {
font-size: 20rpx;
color: #999;
margin-top: 6rpx;
}
</style>