Files
hnxdcount-uniapp/pages/index/index.vue
PC-202306242200\Administrator dac42e3b0c first commit
2026-03-28 23:09:02 +08:00

391 lines
10 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 class="earnings p30">
<view class="mine_header" style="margin-bottom: 30rpx">
<!-- <image :src="info.avatar" class="mine_header_img" mode="aspectFill"></image> -->
<view class="mine_header_user">
<view>{{ getInfo.userName }}</view>
<view>{{ getInfo.phone }}</view>
</view>
<view class="wallet_pall_button" style="background-color: #5082ff; color: #fff" @click="outLogin">退出登录</view>
<!-- <image class="mine_header_sett" @click="toEarnings" src="/static/icon/sett.png"></image> -->
</view>
<view class="wallet_pall">
<view class="wallet_pall_view">
<view>{{ getInfo.balance || '0.00' }}</view>
<view>当前收益</view>
</view>
<view class="wallet_pall_button" @click="navTo('/pages/mine/withdraw')">提现</view>
</view>
<!-- 余额提现收支明细订单列表充电桩列表充电站列表统计(今日上周本周30天) -->
<view style="margin: 30rpx 0">
<up-grid :border="false" col="4">
<up-grid-item bgColor="#fff" @click="navTo(`/pages/mine/incomeList`, true)">
<view style="height: 25rpx"></view>
<image src="/static/icon/mx.png" style="width: 56rpx; height: 56rpx" mode="widthFix"></image>
<text style="font-size: 28rpx; color: #333; margin-top: 10rpx">收支明细</text>
<view style="height: 15rpx"></view>
</up-grid-item>
<up-grid-item bgColor="#fff" @click="navTo(`/pages/order/order`, true)">
<view style="height: 25rpx"></view>
<image src="/static/icon/order.png" style="width: 56rpx; height: 56rpx" mode="widthFix"></image>
<text style="font-size: 28rpx; color: #333; margin-top: 10rpx">订单列表</text>
<view style="height: 15rpx"></view>
</up-grid-item>
<up-grid-item bgColor="#fff" @click="navTo(`/pages/mine/piles`, true)">
<view style="height: 25rpx"></view>
<image src="/static/icon/cdz.png" style="width: 56rpx; height: 56rpx" mode="widthFix"></image>
<text style="font-size: 28rpx; color: #333; margin-top: 10rpx">充电桩列表</text>
<view style="height: 15rpx"></view>
</up-grid-item>
<up-grid-item bgColor="#fff" @click="navTo(`/pages/mine/z`, true)">
<view style="height: 25rpx"></view>
<image src="/static/icon/tx.png" style="width: 56rpx; height: 56rpx" mode="widthFix"></image>
<text style="font-size: 28rpx; color: #333; margin-top: 10rpx">提现记录</text>
<view style="height: 15rpx"></view>
</up-grid-item>
<!-- <up-grid-item bgColor="#fff" @click="navTo(`/pages/wallet/withdrawList`, true)">
<view style="height: 25rpx"></view>
<image src="/static/icon/grxx.png" style="width: 56rpx; height: 56rpx" mode="widthFix"></image>
<text style="font-size: 28rpx; color: #333; margin-top: 10rpx">个人信息</text>
<view style="height: 15rpx"></view>
</up-grid-item>
<up-grid-item bgColor="#fff" @click="navTo(`/pages/wallet/withdrawList`, true)">
<view style="height: 25rpx"></view>
<image src="/static/icon/tc.png" style="width: 56rpx; height: 56rpx" mode="widthFix"></image>
<text style="font-size: 28rpx; color: #333; margin-top: 10rpx">退出登录</text>
<view style="height: 15rpx"></view>
</up-grid-item> -->
</up-grid>
</view>
<view style="margin: 30rpx 0; background-color: #fff" v-if="getInfo.point2Give && getInfo.point2Give == 1">
<up-grid :border="false" col="4">
<up-grid-item bgColor="#fff" @click="navTo(`/pages/mine/toUser2`, true)">
<view style="height: 25rpx"></view>
<image src="/static/icon/zhuan.png" style="width: 56rpx; height: 56rpx" mode="widthFix"></image>
<text style="font-size: 28rpx; color: #333; margin-top: 10rpx">转赠增值积分</text>
<view style="height: 15rpx"></view>
</up-grid-item>
</up-grid>
</view>
<view class="mine_block">
<view class="mine_block_tit">
<view class="mine_block_tit_left">充电桩</view>
</view>
<view class="mine_block_view">
<!-- <image mode="widthFix" src="/static/home/zu1.png"></image> -->
<view class="u-flex-y-center u-flex-between u-flex-fill">
<view style="width: 100%">
<view style="color: #3770ae; font-size: 30rpx">{{ devices || 0 }}</view>
<view style="color: #999">我的充电桩数</view>
</view>
</view>
<!-- <view class="u-flex-y-center u-flex-between u-flex-fill">
<view style="width: 100%">
<view style="color: #3770ae; font-size: 30rpx">{{ teamDevices || 0 }}</view>
<view style="color: #999">运营充电桩数</view>
</view>
</view> -->
</view>
</view>
<view class="mine_block" v-for="(item, index) in money_list" :key="index">
<view class="mine_block_tit">
<view class="mine_block_tit_left">{{ item.name }}</view>
</view>
<view class="mine_block_view u-flex-between">
<!-- <image mode="widthFix" src="/static/home/zu2.png"></image> -->
<view class="u-flex-fill">
<view class="u-flex-y-center u-flex-between u-flex-fill" style="margin-bottom: 20rpx">
<view style="width: 50%">
<view style="font-size: 30rpx">
<text style="color: #4874e5">{{ item.data.day_money || 0 }}</text>
</view>
<view style="color: #999">今日{{ item.type }}</view>
</view>
<view style="width: 50%">
<view style="font-size: 30rpx">
<text style="color: #4874e5">{{ item.data.week_money1 || 0 }}</text>
</view>
<view style="color: #999">上周{{ item.type }}</view>
</view>
</view>
<view class="u-flex-y-center u-flex-between u-flex-fill">
<view style="width: 50%">
<view style="font-size: 30rpx">
<text style="color: #4874e5">{{ item.data.week_money0 || 0 }}</text>
</view>
<view style="color: #999">本周{{ item.type }}</view>
</view>
<view style="width: 50%">
<view style="font-size: 30rpx">
<text style="color: #4874e5">{{ item.data.total_money || 0 }}</text>
</view>
<view style="color: #999">30{{ item.type }}</view>
</view>
</view>
</view>
</view>
</view>
<view style="height: 100rpx"></view>
</view>
</template>
<script setup>
import { reactive, ref } from 'vue';
import { onPullDownRefresh, onPageScroll, onReachBottom } from '@dcloudio/uni-app';
import { timeFormat } from '@/uni_modules/uview-plus';
import { operatorInfo, operatorStats } from '@/api/api.js';
import { onLoad, onShow } from '@dcloudio/uni-app';
import { useNav } from '@/hooks/useNav.js';
import moneyJson from '@/common/money.json';
const { nav, navTo } = useNav();
let getInfo = ref({});
let device = ref({});
let devices = ref(0);
let teamDevices = ref(0);
let wallet = ref(0);
let income = ref(0);
let money_list = ref([
{
name: '收益统计',
type: '收益',
data: {}
}
]);
let num = ref(1);
onShow(async () => {
let _res = await operatorInfo();
getInfo.value = _res;
userStatCou();
});
let userStatCou = async () => {
let _res = await operatorStats();
devices.value = _res.deviceCount;
money_list.value.map((item, index) => {
if (item.type == '收益') {
item.data = {
day_money: _res.balanceToday,
week_money1: _res.balanceLastWeek,
week_money0: _res.balanceThisWeek,
total_money: _res.balance30Days
};
}
});
};
let outLogin = ()=>{
uni.showModal({
title: '提示',
content: '是否确认退出登录?',
success: function (res) {
if (res.confirm) {
uni.clearStorageSync();
store.commit('setToken', '');
uni.reLaunch({
url: '/pages/login/login'
});
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
</script>
<style scoped lang="scss">
.wallet_pall {
height: 200rpx;
border-radius: 16rpx;
padding: 40rpx;
background: linear-gradient(179deg, #5082ff 0%, #4278ff 100%);
@include flex($space: space-between);
border-bottom: 1rpx solid rgba(153, 153, 153, 0.6);
&_button {
padding: 10rpx 30rpx;
font-size: 28rpx;
color: #333;
background-color: #fff;
border-radius: 30rpx;
}
&_header {
font-weight: bold;
font-size: 26rpx;
color: #002ea4;
}
&_ye {
display: flex;
align-items: center;
justify-content: space-between;
height: 70%;
view:nth-child(1) {
font-weight: bold;
font-size: 68rpx;
color: #fff;
}
view:nth-child(2) {
width: 128rpx;
height: 58rpx;
background: rgba(0, 46, 164, 0.07);
border-radius: 32rpx 32rpx 32rpx 32rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #fff;
}
}
&_view {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
view:nth-child(1) {
font-weight: bold;
font-size: 45rpx;
color: #fff;
margin-bottom: 30rpx;
}
view:nth-child(2) {
font-size: 28rpx;
color: #fff;
}
}
}
.wallet_list {
width: 690rpx;
height: 120rpx;
background: #ffffff;
border-radius: 8rpx 8rpx 8rpx 8rpx;
padding: 15rpx 30rpx;
@include flex($space: space-between);
&_left {
view:nth-child(1) {
font-weight: bold;
font-size: 28rpx;
color: #232323;
margin-bottom: 10rpx;
}
view:nth-child(2) {
font-size: 24rpx;
color: #232323;
}
}
&_right {
font-weight: bold;
font-size: 28rpx;
color: #ff2727;
}
}
.mine_block {
padding: 24rpx;
background-color: #fff;
border-radius: 12rpx 12rpx 12rpx 12rpx;
margin-bottom: 20rpx;
&_tit {
display: flex;
align-items: center;
justify-content: space-between;
&_left {
font-weight: bold;
font-size: 28rpx;
color: #232323;
}
&_right {
display: flex;
align-items: center;
font-size: 24rpx;
color: #cbd73b;
image {
width: 13rpx;
height: 22rpx;
margin-left: 15rpx;
margin-top: 6rpx;
}
}
}
&_view {
width: 100%;
min-height: 120rpx;
border-radius: 12rpx 12rpx 12rpx 12rpx;
border: 2rpx solid rgba(55, 112, 174, 0.1);
margin-top: 16rpx;
display: flex;
align-items: center;
font-size: 28rpx;
color: #232323;
padding: 20rpx 30rpx;
text-align: center;
image {
width: 48rpx;
height: 48rpx;
margin-right: 25rpx;
}
}
}
.u-flex-y-center {
@include flex;
align-items: center;
}
// 主轴等比间距
.u-flex-between {
justify-content: space-between;
}
// 自动伸缩
.u-flex-fill {
flex: 1 1 auto;
}
.mine {
&_header {
@include flex($space: space-between);
&_img {
width: 150rpx;
height: 150rpx;
// border-radius: 50%;
margin-right: 15rpx;
}
&_user {
flex: 1;
view:nth-child(1) {
font-weight: bold;
font-size: 32rpx;
color: #232323;
margin-bottom: 15rpx;
}
view:nth-child(2) {
font-weight: bold;
font-size: 44rpx;
color: #232323;
}
}
&_sett {
width: 42rpx;
height: 42rpx;
}
}
}
</style>