<template>
  <view class="container">
    <view class="balance-section text-center">
      <view class="grey-text mb12">总余额（元）</view>
      <view class="amount">{{ info.balance || 0 }}</view>
      <view class="details">
        <view class="detail-item right-border">
          <view class="grey-text mb12">可提取金额</view>
          <view class="text-40-bold">{{ userInfo.balance || 0 }}</view>
        </view>
        <view class="detail-item">
          <view class="grey-text mb12">冻结金额</view>
          <view class="text-40-bold">0</view>
        </view>
      </view>
    </view>

    <view class="transaction-section">
      <view class="transaction-date">
		<picker mode="date" :value="date" fields="month" @change="bindDateChange">
			<text>{{ date }}</text>
			<image src="/static/icon/xai.png"></image>
		</picker>
	  </view>
      <view class="text-24-bold mx-24">充值￥{{ statistics.inMoney }} 提现/支出人民币{{ statistics.outMoney }}</view>
	  <z-paging ref="paging" v-model="recordData" use-page-scroll @query="queryList">
		  <view class="transaction-list">
			<view class="transaction-item" v-for="(item, index) in recordData" :key="index">
			  <text class="text-24-bold" :class="[getItemColor(item.sourceType)]">
				{{item.recordName}}{{item.amount}}
			  </text>
			  <view class="line"></view>
			  <text class="text-24-bold">{{item.createTime}}</text>
			</view>
		  </view>
	  </z-paging>
    </view>

    <view class="button-section">
      <!-- <button class="withdraw-button">提现</button> -->
      <button class="recharge-button" @click="navTo('/pages/money/recharge')">充值</button>
    </view>
  </view>
</template>

<script setup>
import { ref, reactive, onMounted } from 'vue';
import { userInfo, walletRecord } from '@/api/api.js';
import { useNav } from '@/hooks/useNav.js';
const { navTo } = useNav();

const info = ref({});
const date = ref()
const statistics = reactive({
	outMoney: 0,
	inMoney: 0,
})
const paging = ref()

const currentDate = new Date();
const year = currentDate.getFullYear();
const month = currentDate.getMonth() + 1;
date.value = year + "-" + (month < 10 ? "0" + month : month);

onMounted(async () => {
	const res = await userInfo();
	info.value = res;
});

const recordData = ref()
const getItemColor = v => {
	if (v == 11) {
		return "text-green-dark"
	} else if(v == 21) {
		return "text-red"
	} else {
		return ""
	}
}

const queryList = async (pageNo, pageSize) => {
	walletRecord({
		current: pageNo,
		pageSize,
		time: date.value
	})
		.then((res) => {
			statistics.inMoney = res.inMoney;
			statistics.outMoney = res.outMoney;
			paging.value.complete(res.record);
			uni.hideLoading();
		})
		.catch((res) => {
			paging.value.complete(false);
			uni.hideLoading();
		});
};
const bindDateChange = e => {
	date.value = e.detail.value;
	paging.value.reload();
}
</script>

<style scoped lang="scss">
.container {
	// padding: 36rpx 30rpx;
	.balance-section {
		background: #FFFFFF;
		border-radius: 8rpx;
		margin: 36rpx 30rpx;
		padding: 36rpx 48rpx;
		.grey-text {
			font-weight: 400;
			font-size: 24rpx;
			color: #232323;
		}
		.amount {
			font-weight: bold;
			font-size: 54rpx;
			color: #232323;
			margin-bottom: 28rpx;
		}
		.details {
			border-top: 2rpx solid #EEEEEE;
			padding-top: 20rpx;
			display: flex;
			.detail-item {
				width: 50%;
			}
			.right-border {
				border-right: 2rpx solid #EEEEEE;
			}
		}
	}
	.text-40-bold {
		font-weight: bold;
		font-size: 40rpx;
		color: #232323;
	}
	.text-24-bold {
		font-weight: bold;
		font-size: 24rpx;
		color: #232323;
	}
	.mb12 {
		margin-bottom: 12rpx;
	}
	.text-center {
		text-align: center;
	}
	.transaction-section {
		background: #FFFFFF;
		border-radius: 8rpx;
		margin: 36rpx 30rpx;
		.transaction-date {
			font-family: DIN, DIN;
			font-weight: bold;
			font-size: 40rpx;
			color: #232323;
			padding: 24rpx 24rpx 14rpx;
			image {
				width: 24rpx;
				height: 24rpx;
				margin-left: 18rpx;
			}
		}
		.mx-24 {
			margin-left: 24rpx;
			margin-right: 24rpx;
		}
		.transaction-list {
			padding: 36rpx 24rpx;
			.transaction-item {
				display: flex;
				align-items: center;
				margin-bottom: 24rpx;
				.line {
					flex: 1;
					height: 0;
					border-top: 2rpx dashed #999999;
					margin: 0 32rpx;
				}
			}
		}
	}
	.text-green-dark {
		color: #6FA256;
	}
	.text-green-bright {
		color: #3BCF73;
	}
	.text-red {
		color: #FF2C2C;
	}
	.button-section {
		position: fixed;
		width: 100%;
		display: flex;
		justify-content: space-evenly;
		left: 0;
		bottom: 76rpx;
		.withdraw-button, .recharge-button {
			width: 330rpx;
			height: 92rpx;
			line-height: 92rpx;
			border-radius: 46rpx;
			font-weight: bold;
			font-size: 32rpx;
			margin: 0;
			border-width: 0;
		}
		.withdraw-button::after, .recharge-button::after {
			border-width: 0;
		}
		.withdraw-button {
			background: #eaf1e7;
			color: #77B658;
		}
		.recharge-button {
			background: #77B658;
			color: #FFFFFF;
		}
	}
}
</style>