<template>
	<view class="page" v-if="loading">
		<u-navbar title="财务报表" :border-bottom="false" :background="bgc" title-color='#000' title-size='36'
			height='45'></u-navbar>
		<view class="top_box">
			<view class="left_text">
				时间范围
			</view>
			<view class="timebox">
				<view class="left_time" @click="time1=true">
					{{firsTime}}
				</view>
				-
				<view class="right_time" @click="time2=true">
					{{lasTime}}
				</view>
			</view>
		</view>
		<view class="data_box">
			<view class="data_cont " :class="cutidx==0?'act1':''" @click="changeTime(0)">
				今日
			</view>
			<view class="data_cont" :class="cutidx==1?'act1':''" @click="changeTime(1)">
				昨日
			</view>
			<view class="data_cont" :class="cutidx==2?'act1':''" @click="changeTime(2)">
				本月
			</view>
			<view class="data_cont" :class="cutidx==3?'act1':''" @click="changeTime(3)">
				上个月
			</view>
		</view>
		
		<view class="cont_box">
			<view class="info_top">
				<view class="txt1">
					库存现金余额 
					<!-- <image src="https://lxnapi.ccttiot.com/bike/img/static/uJFB9IlTZQG31V17R5Pn" mode=""></image> -->
				</view>
				<view class="lines" style="margin-top: 14rpx;"></view>
				<view class="txt2">
					￥{{info.income.accountSurplus}}
				</view>
				
			<!-- 	<view class="txt_box">
					<view class="txt_box_li">
						<view class="txttop">
							净利润
						</view>
						<view class="txtbot">
							￥{{info.accountSurplus}}
						</view>
					</view>
					<view class="txt_box_li">
						<view class="txttop">
							应退押金余额
						</view>
						<view class="txtbot">
							￥1235.00
						</view>
					</view>
				</view> -->
			</view>
			<view class="tit">
				订单明细
			</view>
			<view class="box2">
				<view class="box2_li">
					<view class="box2_txt1">
						主营业务收入
						 <!-- <image src="https://lxnapi.ccttiot.com/bike/img/static/uJFB9IlTZQG31V17R5Pn" mode=""></image> -->
					</view>
					<view class="box2_txt2" >
						￥{{info.income.orderPaid }}
					</view>
					<view class="box2_txt3">
						订单收入：{{info.income.orderPaid }}
					</view>
				</view>
				<view class="line1"></view>
				<view class="box2_li " style="margin-left: 20rpx;">
					<view class="box2_txt1">
						主营业务成本
						 <!-- <image src="https://lxnapi.ccttiot.com/bike/img/static/uJFB9IlTZQG31V17R5Pn" mode=""></image> -->
					</view>
					<view class="box2_txt2">
						￥{{info.income.businessCost}}
					</view>
					<view class="box2_txt3">
						订单退款：{{info.income.orderRefund}}
					</view>
					<view class="box2_txt3">
						订单支付手续费：{{info.income.handlingFee}}
					</view>
					
				</view>
			</view>
			<view class="tit2">
				净利润
				 <!-- <image src="https://lxnapi.ccttiot.com/bike/img/static/uJFB9IlTZQG31V17R5Pn" mode=""></image> -->
			</view>
			<view class="money">
				￥ {{info.income.operatingIncome }}
			</view>
			<view class="tit">
				押金明细
			</view>
			<view class="box3">
				<view class="box3_txt1">
					押金收入：{{info.income.depositPaid }}
				</view>
				<view class="box3_txt1">
					押金抵扣转订单收入：{{info.income.deductionAmount }}
				</view>
				<view class="box3_txt1">
					押金支出：{{info.income.depositRefund }}
				</view>
				<view class="box3_txt1">
					押金收入手续费：{{info.income.depositHandlingCharge  }}
				</view>
				
			</view>
			<view class="tit2">
				应退押金余额 
				<!-- <image src="https://lxnapi.ccttiot.com/bike/img/static/uJFB9IlTZQG31V17R5Pn" mode=""></image> -->
			</view>
			<view class="money">
				￥{{info.income.depositBalance}}
			</view>
		</view>
		
	
			
		<u-picker mode="time" v-model="time1" :params="params" @confirm="confirm1" :default-time='firsTime'></u-picker>
		<u-picker mode="time" v-model="time2" :params="params" @confirm="confirm2" :default-time='lasTime'></u-picker>
		<u-mask :show="showtips" :z-index='100' />
		<view class="tip_box1" v-if="showtips">
			<image class="close" src="https://lxnapi.ccttiot.com/bike/img/static/uyRmNa7d2WThHjr1Jzqk" mode="" @click="showtips=false"></image>
			<view class="top1">
				<view class="tip">
					{{tiptit}}
				</view>
		
				<view class="txt" v-html="tiptxt">
					<!-- {{tiptxt}} -->
				</view>
			</view>
			<!-- <view class="bot1">
				
				<view class="bot_right" @click="showtips=false">
					确定
				</view>
			</view> -->
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				bgc: {
					backgroundColor: "#fff",
				},
				time1: false,
				time2: false,
				lasTime: '',
				firsTime: '',
				params: {
					year: true,
					month: true,
					day: true,
					hour: false,
					minute: false,
					second: false
				},
				cutidx: 0,
				info: {},
				areaId: 0,
				loading:false,
				showtips:false,
				tiptxt:'',
				tiptit:''
			}
		},
		onLoad() {
			let today = new Date();
			// 获取七天前的日期

			// 格式化日期为 yyyy-MM-dd
			this.firsTime = this.formatDate(today);
			this.lasTime = this.formatDate(today);
			if (uni.getStorageSync('adminAreaid')) {
				this.areaId = uni.getStorageSync('adminAreaid')
				this.operatingData()
			}

		},
		methods: {
			showtipss(num){
				if(num==1){
					this.tiptxt='该时间段骑车实际利润'
					this.tiptit='营业收入'
				}else if(num==2){
					this.tiptxt='该时间段押金余额'
					this.tiptit='押金余额'
				}else if(num==3){
					this.tiptxt='该时间段账户盈余<br/>总流水减去总支出'
					this.tiptit='账户盈余'
					
				}
				this.showtips=true
			},
			displayAmount(amount) {
				return amount ? amount : '--';
			},
			changeTime(num) {
				if (num == 0) {
					this.cutidx = num;
					let today = new Date();
					this.firsTime = this.formatDate(today);
					this.lasTime = this.formatDate(today);
					this.operatingData()
				} else if (num == 1) {
					this.cutidx = num;
					let yesterday = new Date();
					yesterday.setDate(yesterday.getDate() - 1);
					this.firsTime = this.formatDate(yesterday);
					this.lasTime =this.formatDate(yesterday);
					this.operatingData()
				} else if (num == 2) {
					this.cutidx = num;
					let today = new Date();
					let firstDayOfMonth = new Date(today.getFullYear(), today.getMonth(), 1);
					this.firsTime = this.formatDate(firstDayOfMonth);
					this.lasTime = this.formatDate(new Date());
					this.operatingData()
				} else if (num == 3) {
					this.cutidx = num;
					let today = new Date();
					let firstDayOfLastMonth = new Date(today.getFullYear(), today.getMonth() - 1, 1);
					let lastDayOfLastMonth = new Date(today.getFullYear(), today.getMonth(), 0);
					this.firsTime = this.formatDate(firstDayOfLastMonth);
					this.lasTime = this.formatDate(lastDayOfLastMonth);
					this.operatingData()
				}
			},
			formatDate(date) {
				let year = date.getFullYear();
				let month = String(date.getMonth() + 1).padStart(2, '0');
				let day = String(date.getDate()).padStart(2, '0');
				return `${year}-${month}-${day}`;
			},
			operatingData() {
				let data = {
					timeStart: this.firsTime,
					timeEnd: this.lasTime,
					areaId: this.areaId
				}
				this.$u.get('/appVerify/operatingData2', data).then((res) => {
					if (res.code === 200) {
						// 处理接口返回的数据，将边界数据转换为地图组件需要的折线结构
						this.info = res.data
						this.loading=true
					}
				}).catch(error => {
					console.error("Error fetching area data:", error);
				});
			},
			confirm1(e) {

				this.firsTime = e.year + '-' + e.month + '-' + e.day
				this.cutidx = -1
				this.operatingData()
			},
			confirm2(e) {
				this.lasTime = e.year + '-' + e.month + '-' + e.day
				this.cutidx = -1
				this.operatingData()
			},
		}

	}
</script>

<style lang="scss">
	page {
		background-color: #fff;
	}

	.page {
		width: 750rpx;
		
		.cont_box{
			margin-top: 38rpx;
			padding: 34rpx;
			border-radius: 40rpx 40rpx 0 0;
			background: #FFFFFF;
			box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0,0,0,0.2);
			.box3{
				margin-top: 28rpx;
				padding: 32rpx 20rpx;
				background: #F0F0F0;
				border-radius: 20rpx 20rpx 20rpx 20rpx;
				.box3_txt1{
					width: 100%;
					margin-bottom: 14rpx;
					font-weight: 400;
					font-size: 30rpx;
					color: #3D3D3D;
				}
				.box3_txt2{
					width: 100%;
					font-weight: 500;
					font-size: 30rpx;
					color: #4C97E7;
				}
			}
			.money{
				margin-left: 20rpx;
				margin-top: 12rpx;
				font-weight: 500;
				font-size: 40rpx;
				color: #4C97E7;
			}
			.tit2{
				margin-left: 20rpx;
				margin-top: 26rpx;
				width: 100%;
				display: flex;
				flex-wrap: nowrap;
				align-items: center;
				font-weight: 500;
				font-size: 32rpx;
				color: #3D3D3D;
				image{
					margin-left: 24rpx;
					width: 32rpx;
					height: 32rpx;
				}
			}
			.box2{
				margin-top: 28rpx;
				width: 100%;
				padding: 30rpx 20rpx;
				background: #F0F0F0;
				border-radius: 20rpx 20rpx 20rpx 20rpx;
				display: flex;
				flex-wrap: nowrap;
				// align-items: center;
				
				.box2_li{
					// display: flex;
					// flex-wrap: wrap;
					// align-items: flex-start;
					width: 49%;
					.box2_txt1{
						width: 100%;
						display: flex;
						flex-wrap: nowrap;
						align-items: center;
						font-weight: 500;
						font-size: 32rpx;
						color: #3D3D3D;
						image{
							margin-left: 24rpx;
							width: 32rpx;
							height: 32rpx;
						}
					}
					.box2_txt2{
						margin-top: 12rpx;
						font-weight: 500;
						font-size: 40rpx;
						color: #4C97E7;
					
					}
					.box2_txt3{
						margin-top: 10rpx;
						font-weight: 400;
						font-size: 24rpx;
						color: #3D3D3D;
					}
					
				}
				.line1{
					width: 1rpx;
					height: 200rpx;
					background: #bbb;
				}
			}
			
			.tit{
				margin-top: 50rpx;
				margin-left: 20rpx;
				font-weight: 500;
				font-size: 40rpx;
				color: #3D3D3D;
			}
			.info_top{
				width: 100%;
				padding: 22rpx;
				background: linear-gradient( 90deg, #4C97E7 0%, #92C6FD 100%);
				border-radius: 20rpx 20rpx 20rpx 20rpx;
				.txt1{
					width: 100%;
					display: flex;
					flex-wrap: nowrap;
					align-items: center;
					font-weight: 500;
					font-size: 40rpx;
					color: #FFFFFF;
					image{
						margin-left: 24rpx;
						width: 32rpx;
						height: 32rpx;
					}
				}
				.txt2{
					margin-top: 6rpx;
					font-weight: 600;
					font-size: 48rpx;
					color: #FFFFFF;
				}
				.txt_box{
					margin-top: 20rpx;
					display: flex;
					flex-wrap: nowrap;
					align-items: center;
					.txt_box_li{
						width: 50%;
						.txttop{
							width: 100%;
							font-weight: 500;
							font-size: 32rpx;
							color: #FFFFFF;
						}
						.txtbot{
							margin-top: 8rpx;
							font-weight: 500;
							font-size: 42rpx;
							color: #FFFFFF;
						}
					}
				}
				.lines{
					width: 632rpx;
					height: 1rpx;
					background-color: #FFFFFF;
				}
			}
		}
		.tip_box1 {
			position: fixed;
			left: 72rpx;
			top: 628rpx;
			width: 610rpx;
			// height: 282rpx;
			background: #FFFFFF;
			border-radius: 30rpx 30rpx 30rpx 30rpx;
			z-index: 110;
			padding-bottom: 10rpx;
			.close{
				position: absolute;
				width: 60rpx;
				height: 60rpx;
				bottom: -98rpx;
				left: 274rpx;
			}
			.top1 {
				padding: 52rpx 38rpx 42rpx 36rpx;
		
				.ipt_box {
					margin-top: 22rpx;
					display: flex;
					flex-wrap: nowrap;
					align-items: center;
		
					.text {
						width: 350rpx;
						font-weight: 400;
						font-size: 32rpx;
						color: #3D3D3D;
					}
		
					.ipt {
						padding: 10rpx 18rpx;
						display: flex;
						align-items: center;
						justify-content: space-between;
						margin-left: 26rpx;
						width: 420rpx;
						height: 64rpx;
						border-radius: 0rpx 0rpx 0rpx 0rpx;
						border: 2rpx solid #979797;
		
						.input {
							width: 80%;
						}
					}
				}
		
				.tip {
					width: 100%;
					text-align: center;
					font-weight: 700;
					font-size: 32rpx;
					color: #3D3D3D;
				}
		
				.txt {
					margin-top: 32rpx;
					width: 100%;
					text-align: center;
					font-weight: 500;
					font-size: 24	rpx;
					color: #3D3D3D;
				}
			}
		
			.bot1 {
				position: absolute;
		
				width: 610rpx;
				// border-top: 2rpx solid #D8D8D8;
				display: flex;
				flex-wrap: nowrap;
				// height: 100%;
				// bottom: -20rpx;
				justify-content: center;
				.bot_left {
					border-radius: 0rpx 0rpx 0rpx 30rpx;
					width: 50%;
					height: 86rpx;
					display: flex;
					align-items: center;
					justify-content: center;
					font-weight: 500;
					font-size: 32rpx;
					color: #3D3D3D;
					background: #EEEEEE;
				}
		
				.bot_right {
					border-radius: 30rpx 30rpx 30rpx 30rpx;
					width: 60%;
					height: 86rpx;
					background: #4C97E7;
					display: flex;
					align-items: center;
					justify-content: center;
					color: #FFFFFF;
					// border-left: 2rpx solid #D8D8D8;
					font-weight: 500;
					font-size: 32rpx;
					// color: #4C97E7;
		
				}
		
			}
		}
		
	
		
		.lines {
			width: 748rpx;
			height: 22rpx;
			background: #F6F6F6;
			border-radius: 0rpx 0rpx 0rpx 0rpx;
		}

	


		

		.data_box {
			width: 672rpx;
			margin: 36rpx auto;
			display: flex;
			flex-wrap: nowrap;
			align-items: center;
			justify-content: space-between;

			.data_cont {
				display: flex;
				align-items: center;
				justify-content: center;
				width: 150rpx;
				height: 60rpx;
				background: #FFFFFF;
				box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.07);
				border-radius: 10rpx 10rpx 10rpx 10rpx;
				font-weight: 400;
				font-size: 32rpx;
				color: #3D3D3D;
				border: 2rpx solid #fff;
			}

			.act1 {
				background: #E2F2FF;
				box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.07);
				color: #4C97E7;
				border: 2rpx solid #4C97E7;
			}
		}

		.top_box {
			display: flex;
			flex-wrap: nowrap;
			align-items: center;
			padding: 28rpx 30rpx;
			margin: 20rpx auto;
			width: 672rpx;
			height: 100rpx;
			background: #FFFFFF;
			box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.07);
			border-radius: 10rpx 10rpx 10rpx 10rpx;

			.left_text {
				width: 25%;
				font-weight: 400;
				font-size: 32rpx;
				color: #3D3D3D;
			}

			.timebox {
				width: 75%;
				display: flex;
				flex-wrap: nowrap;
				align-items: center;
				margin-left: 34rpx;

				.left_time {
					text-align: center;
					margin-right: 6rpx;
					height: 50rpx;
					width: 45%;
					border: 2rpx solid #ccc;
					border-radius: 12rpx;
					font-weight: 400;
					font-size: 32rpx;
					color: #979797;
				}

				.right_time {
					text-align: center;
					margin-left: 6rpx;
					height: 50rpx;
					width: 45%;
					border: 2rpx solid #ccc;
					border-radius: 12rpx;
					font-weight: 400;
					font-size: 32rpx;
					color: #979797;
				}
			}
		}
	}
</style>