<template>
	<navBar title="九州ETC" :scrollTop="scrollTop" :isBack="isBack" navbgClass="nav-bgXin" fontColor='#fff'></navBar>
	<filter>
		<view class="wrapper">
			<image :src="`${$imgUrl}myImage/headbg.png`" class="bg-head" mode="widthFix"></image>
			<view class="content" :style="{ top: margin + 'px' }">
				<view class="head" :style="{ marinTop: margin + 'px' }">
					<view class="avatar">
						<image :src="`${$imgUrl}myImage/touxiang.png`" :class="!state.data.opId ? 'unlogin' : ''" @click="goLogin">
						</image>

						<view v-if="!state.data.opId" class="name" @click="$util.navTo('/login/login')">
							<view class="nickname">登录/注册</view>
						</view>
						<view v-else class="name">
							<view class="nickname">{{state.accountInfoVo.nickName || state.accountInfoVo.userName}}</view>
							<view class="user-id">
								<view class="phone">{{state.accountInfoVo.mobile}}</view>
								<view v-if="false" @click="$util.navTo('/subpackage/personal-center/setting/change-phone', true)"
									class="btn-change">已关联</view>
							</view>
						</view>
					</view>
					<!-- 					<view v-if="false" class="setting" @click="$util.navTo('/subpackage/personal-center/setting/setting', true)">
						<text>签到</text>
					</view> -->
					<view class="r-setting" @click="$util.navTo('/subpackage/personal-center/setting/setting', true)">
						<image :src="`${$imgUrl}myImage/shezhi.png`" class="img" mode="widthFix"></image>
					</view>
				</view>
				<view class="my-equity" :style="{'--bgimg':`url(${$imgUrl}myImage/quanuyikuang.png)`}" @click="goEquity()">
					<view class="l-con">
						<image :src="`${$imgUrl}myImage/quanyi.png`" class="equity-icon" mode="widthFix"></image>
						<view class="txt">
							我的权益
						</view>
					</view>
					<view class="r-icon" >
						<image :src="`${$imgUrl}myImage/quanyixiayi.png`" class="r-img" mode="widthFix"></image>
					</view>
				</view>
				<view class="info-content">
					<view class="order box">
						<view class="right-head">
							<view class="tit">我的订单</view>
							<view class="more" @click="goOrder(0)">
								<text class="more-text">查看全部</text>
								<image :src="`${$imgUrl}myImage/wdexiayi.png`" class="arrow"></image>
							</view>
						</view>
						<view class="order-items">
							<view class="item" @click="goOrder(1)">
								<view style="position: relative;">
									<image :src="`${$imgUrl}myImage/icon1.png`" class="icon" mode="widthFix"></image>
									<view v-if='state.orderInfoSumQueryVo.orderStep8>0' class="rtop-badge bgVar"
										:style="{'--bgimg':`url(${$imgUrl}myImage/r-badge.png)`}">
										{{state.orderInfoSumQueryVo.orderStep8}}
									</view>
								</view>
								<text class="tit">待发货</text>
							</view>
							<view class="item" @click="goOrder(2)">
								<view style="position: relative;">
									<image :src="`${$imgUrl}myImage/icon2.png`" class="icon" mode="widthFix"></image>
									<view v-if='state.orderInfoSumQueryVo.orderStep9>0' class="rtop-badge bgVar"
										:style="{'--bgimg':`url(${$imgUrl}myImage/r-badge.png)`}">
										{{state.orderInfoSumQueryVo.orderStep9}}
									</view>
								</view>
								<text class="tit">待收货</text>
							</view>
							<view class="item" @click="goOrder(3)">
								<view style="position: relative;">
									<image :src="`${$imgUrl}myImage/icon3.png`" class="icon" mode="widthFix"></image>
									<view class="rtop-badge bgVar" v-if='state.orderInfoSumQueryVo.orderStep10>0'
										:style="{'--bgimg':`url(${$imgUrl}myImage/r-badge.png)`}">
										{{state.orderInfoSumQueryVo.orderStep10}}
									</view>
								</view>
								<text class="tit">待激活</text>
							</view>
							<view class="item" @click="goOrder(4)">
								<view style="position: relative;">
									<image :src="`${$imgUrl}myImage/icon4.png`" class="icon" mode="widthFix"></image>
									<view v-if='state.orderInfoSumQueryVo.orderStep12>0' class="rtop-badge bgVar"
										:style="{'--bgimg':`url(${$imgUrl}myImage/r-badge.png)`}">
										{{state.orderInfoSumQueryVo.orderStep12}}
									</view>
								</view>
								<text class="tit">退换货/退款</text>
							</view>
						</view>
					</view>
					<view class="go-through box" v-if="source=='WECHAT'">
						<view class="right-head">
							<view class="tit">本月通行</view>
							<view class="more" @click="goTrajectory()">
								<text class="more-text">查看通行轨迹</text>
								<image :src="`${$imgUrl}myImage/wdexiayi.png`" class="arrow"></image>
							</view>
						</view>
						<view class="pass">
							<view class="total m-top">
								<text>通行消费</text>
								<text>总金额</text>
							</view>
							<view class="amount m-top">
								<text>¥
									{{state.monthFlowingVo.flowingNum }}</text>
								<text>¥
									{{state.monthFlowingVo.money }}</text>
							</view>
							<view class="line m-top">
								<view class="line1"
									:style="{width: (state.monthFlowingVo.flowingNum ? state.monthFlowingVo.flowingNum : 0)*100/state.monthFlowingVo.money+'%'}">
								</view>
								<view class="line2"></view>
							</view>
							<view class="mileage">
								<view class="box-items" :style="{'--bgimg':`url(${$imgUrl}myImage/tongxing1.png)`}">
									<view class="t-name">
										<image :src="`${$imgUrl}myImage/licheng-icon.png`" class="tongxing-icon"></image>
										<text class="tit">通行里程</text>
									</view>
									<view class="b-info">
										<text class="val">{{state.monthFlowingVo.mileage}}</text>
										<text class="unit">km</text>
									</view>
								</view>
								<view class="box-items" :style="{'--bgimg':`url(${$imgUrl}myImage/tongxing2.png)`}">
									<view class="t-name">
										<image :src="`${$imgUrl}myImage/shichang-icon.png`" class="tongxing-icon"></image>
										<text class="tit">通行时长</text>
									</view>
									<view class="b-info">
										<text class="val">{{state.monthFlowingVo.duration}}</text>
										<!-- <text class="unit">km</text> -->
									</view>
								</view>
								<view class="box-items" :style="{'--bgimg':`url(${$imgUrl}myImage/tongxing3.png)`}">
									<view class="t-name">
										<image :src="`${$imgUrl}myImage/cishu-icon.png`" class="tongxing-icon"></image>
										<text class="tit">通行次数</text>
									</view>
									<view class="b-info">
										<text class="val">{{state.monthFlowingVo.num}}</text>
										<text class="unit">次</text>
									</view>
								</view>
							</view>
						</view>
					</view>
					<view class="cars box">
						<view class="right-head">
							<view class="tit">我的车辆</view>
							<view class="more" @click="$util.navTo('/subpackage/personal-center/vehicle-information', true)">
								<text class="more-text">查看全部</text>
								<image :src="`${$imgUrl}myImage/wdexiayi.png`" class="arrow"></image>
							</view>
						</view>
						<view class="car-item" v-for="(item,index) in state.list" :key="index">
							<image @click="carDetails(item)" :src="`${$imgUrl}myImage/car.png`" class="car-pic" mode="widthFix">
							</image>
							<view class="car-info" @click="carDetails(item)">
								<view class="car-no">
									<text class="no">{{item.vehiclePlate}}</text>
									<text class="color" :style="{ background: item.showColor}">{{item.color}}</text>
								</view>
								<view class="card-no" v-if="item.cardId">卡号：{{item.cardId}}</view>
								<view class="card-no" v-if="item.obuId">签号：{{item.obuId}}</view>
							</view>
							<view class="btn-unbind" @click="del(item.vehicleId)">解除绑定</view>
						</view>
						<view @click="$util.navTo('/subpackage/personal-center/setting/car-information/car-create', true)"
							class='add-related' :style="{'--bgimg':`url(${$imgUrl}myImage/guanlianbg.png)`}">
							<image :src="`${$imgUrl}myImage/guanlian.png`" class="add-img" mode="widthFix">
							</image>
							<text>增加未关联车辆</text>
						</view>
					</view>
				</view>
			</view>
		</view>
	</filter>
</template>

<script lang="ts" setup>
	import { reactive } from "vue";
	import { msg, navTo } from "@/utils/utils";
	import { onMounted, ref } from "vue";
	import { getItem, StorageKeys } from "@/utils/storage";
	import navBar from "../../components/nav-bar/nav-bar2.vue";
	import { onLoad, onShow, onPageScroll } from "@dcloudio/uni-app";
	import {
		userInfoIndex, selectCarInfo, delCarInfo, showEquityListApi,orderinfosumquery
	} from "@/utils/network/api.js";
	import {
		request,requestNew
	} from "@/utils/network/request.js";
	import filter from '@/components/filter/filter.vue';
	import { source } from "@/utils/network/difference";
	import { vehiclePlateColor, vehiclePlateColorPai, getVehiclePlateColorPaiShow } from "@/datas/vehiclePlateColor.js";
	const height = ref(null);
	const top = ref(null);
	const margin = ref(null);
	const mobile = ref(null);
	const scrollTop = ref(0);
	const isBack = ref(false);
	const state = reactive({
		data: {
			opId: "",
		},
		accountInfoVo: {
			nickName: '',
			mobile: '',
			userName:''
		},
		monthFlowingVo: {
			duration: 0,
			mileage: 0,
			flowingNum: 0,
			num: 0,
			parkingLotMoney: 0,
			parkingLotNum: 0,
			money: 0,
		},
		list: '',  //车辆信息
		carNumber: '',//车辆数量
		userVehicleInfoSumQueryVo: {
			vehicleSum: 0,
			orderStatus0: 0
		},//车数量 ,代办数量
		isTrajectory: false,  //是否有轨迹
		equityNumber: 0,
		orderInfoSumQueryVo: {
			orderStep8: "0",//待发货
			orderStep9: "0",//待收货
			orderStep10: "0",//待激活
			orderStep12: "0",//换货/退货 
		}
	});
	onMounted(() => {
		const res = uni.getMenuButtonBoundingClientRect();
		height.value = res.height + "px";
		top.value = res.top + "px";
		margin.value = res.height + res.top;
	});

	onLoad((option : any) => {
		state.data.opId = getItem(StorageKeys.OpenId);
		console.log("state.data.opId",state.data.opId)
		mobile.value = getItem("mobile");
	});
	const carDetails = (item) => {
		const params = encodeURIComponent(JSON.stringify(item))
		uni.navigateTo({
			url: `/subpackage/personal-center/car-details?params=${params}`
		})
	}
	const goTrajectory = () => {
		if (state.isTrajectory) {
			uni.navigateTo({
				url: "/subpackage/personal-center/trajectory/trajectory"
			})
		} else {
			msg("暂无轨迹")
		}
	}
	//监听页面滚动
	onPageScroll((e) => {
		scrollTop.value = e.scrollTop;
	});
	onShow((option : any) => {
		state.data.opId = getItem(StorageKeys.OpenId);
		console.log("state.data.opId", state.data.opId)
		if (state.data.opId) {
			getUserInfo();
		} else {
			state.userVehicleInfoSumQueryVo = {
				vehicleSum: 0,
				orderStatus0: 0
			}
			state.monthFlowingVo = {
				duration: 0,
				mileage: 0,
				flowingNum: 0,
				num: 0,
				parkingLotMoney: 0,
				parkingLotNum: 0,
				money: 0,
			}
			state.orderInfoSumQueryVo = {
				orderStep8: "0",//待发货
				orderStep9: "0",//待收货
				orderStep10: "0",//待激活
				orderStep12: "0",//换货/退货 
			}
			state.list = []
			state.carNumber = 0
		}
	});
	// 查询车辆信息
	const queryCarMsg = () => {
		const options = {
			type: 2,
			data: {
				"openId": getItem('openId')
			},
			method: "POST",
			showLoading: true,
		};
		//调用方式
		requestNew(selectCarInfo, options).then((res) => {
			const data = res.vehicleManages
			for (var i = 0; i < data.length; i++) {
				for (var j = 0; j < vehiclePlateColorPai.length; j++) {
					if (data[i].vehiclePlateColor == vehiclePlateColorPai[j]['id']) {
						data[i].color = vehiclePlateColorPai[j]['color']
						data[i].showColor = vehiclePlateColorPai[j]['showColor']
					}
				}
			}
			state.carNumber = data.length
			state.list = data.slice(0, 5);
			console.log("state.list", state.list)
		})
			.catch((err) => {
				console.log('输出内容', err)
			});
	}
	const getUserInfo = () => {
		const options = {
			type: 2,
			data: {
				openId: state.data.opId
			},
			method: "POST",
			showLoading: true,
		};
		//调用方式
		requestNew(userInfoIndex, options)
			.then((res) => {
				console.log('用户信息', res)
				let data =res
				state.accountInfoVo =data.accountInfoVo;
				console.log('用户信息1', state.accountInfoVo,state.accountInfoVo.mobile)
				if (data.monthFlowingVo && data.monthFlowingVo != "{}") {
					state.monthFlowingVo = data.monthFlowingVo;
					state.isTrajectory = true;
				}
				console.log("获取用户信息", data);
				queryCarMsg();
				// 个人订单信息数据查询(待发货，待收货，待激活，退换货)
				orderinfosumqueryQ()
			})
			.catch((err) => {
				console.log(err);
			});
	}
	const del = (id) => {
		uni.showModal({
			title: '提示',
			content: '是否删除该条车辆信息',
			success: function (res) {
				if (res.confirm) {
					console.log('用户点击确定');
					let data = {
						vehicleId: id,
						openId: getItem('openId')
					}
					const options = {
						type: 2,
						data: data,
						method: "POST",
						showLoading: true,
					};
					requestNew(delCarInfo, options).then((res) => {
						const data = res;
						console.log(data)
							uni.showToast({
								title: "删除成功",
								icon: "none"
							})
							queryCarMsg();
					});
				} else if (res.cancel) {
					console.log('用户点击取消');
				}
			}
		});
	}
	const goOrder = (index) => {
		navTo(`../order/order?index=${index}`)
	}
	const goLogin = () => {
		if (!getItem('openId')) {
			uni.navigateTo({
				url: "/login/login"
			})
		}
	}
	const goEquity = () => {
		navTo('/subpackage/service/equityList/equityList')
	}
	const orderinfosumqueryQ = () => {
		const options = {
			type: 2,
			data: {},
			method: "POST",
			showLoading: true,
		};
		//调用方式
		requestNew(orderinfosumquery, options).then((res) => {
			console.log("orderinfosumquery", res)
			state.orderInfoSumQueryVo=res
		})
			.catch((err) => {
				console.log('输出内容', err)
			});
	}
</script>
<style>
	page {
		background: #eef7f7;
	}
</style>
<style scoped lang='scss'>
	.unlogin {
		filter: grayscale(100%);
		opacity: 0.7;
	}

	.bgVar {
		background-image: var(--bgimg);
		background-repeat: no-repeat;
		background-size: 100% 100%;
	}

	.wrapper {
		position: relative;
		background-color: #f6f9fc;
	}

	.bar {
		width: 100%;
		position: fixed;
		text-align: center;
		font-size: 32rpx;
		font-weight: bold;
	}

	.bg-head {
		width: 100%;
		position: absolute;
		z-index: 1;
		top: 0;
		left: 0;
	}

	.content {
		position: relative;
		display: flex;
		flex-direction: column;
		width: 100%;
		z-index: 2;
	}

	.head {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		box-sizing: border-box;
		padding: 40rpx 0 46rpx;
	}

	.head .avatar {
		display: flex;
		align-items: center;
		justify-content: space-between;
	}

	.head .avatar image {
		width: 141rpx;
		height: 141rpx;
		/* border-radius: 80rpx; */
		margin: 0 20rpx 0 30rpx;
	}

	.head .setting {
		display: flex;
		align-items: center;
		background: rgba(0, 179, 139, .1);
		border: 1px solid #fff;
		height: 60rpx;
		border-radius: 30rpx;
		padding: 0 34rpx;
		color: #fff;
		font-size: 28rpx;
		margin-right: 30rpx;
	}

	.head .setting image {
		width: 40rpx;
		height: 40rpx;
		margin-right: 6rpx;
	}

	.head .r-setting {
		width: 80rpx;
		height: 80rpx;
		background: #345061;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 50%;
		margin-right: 50rpx;

		.img {
			width: 40rpx;
			height: 39rpx;
		}
	}

	.head .nickname {
		font-size: 36rpx;
		color: #fff;
	}

	.head .user-id {
		font-size: 26rpx;
		color: #fff;
		padding-top: 20rpx;
		display: flex;
		align-items: center;
	}

	.head .btn-change {
		font-size: 22rpx;
		height: 40rpx;
		padding: 0 20rpx;
		border: 1px solid #fff;
		color: #fff;
		box-sizing: border-box;
		border-radius: 20rpx;
		margin-left: 16rpx;
		background: rgba(0, 179, 139, .1);
	}

	.my-equity {
		position: relative;
		z-index: 20;
		margin: 0 50rpx;
		background-image: var(--bgimg);
		background-repeat: no-repeat;
		background-size: 100% 100%;
		width: 650rpx;
		height: 94rpx;
		display: flex;
		align-items: center;
		justify-content: space-between;

		.l-con {
			margin-left: 30rpx;
			display: flex;
			align-items: center;

			.equity-icon {
				width: 54rpx;
				height: 54rpx;
			}

			.txt {
				font-family: NotoSansHans, NotoSansHans;
				font-size: 28rpx;
				color: #01253C;
				margin-left: 19rpx;
			}
		}

		.r-icon {
			margin-right: 30rpx;
			width: 32rpx;
			height: 32rpx;

			.r-img {
				width: 32rpx;
				height: 32rpx;
			}
		}
	}

	.info-content {
		transform: translateY(-10rpx);
	}

	.box .arrow {
		width: 10rpx;
		height: 18rpx;
	}

	.box {
		background: #ffffff;
		margin: 0 30rpx 30rpx;
		padding: 30rpx 20rpx;
		border-radius: 20rpx;
		box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223, 223, 223, 0.9);
	}

	.box .more {
		display: flex;
		align-items: center;
		font-family: NotoSansHans, NotoSansHans;
		font-size: 24rpx;
		color: #004576;
	}

	.box .more .more-text {
		padding-right: 12rpx;
	}

	.box .right-head {
		display: flex;
		justify-content: space-between;
	}

	.box .right-head .tit {
		font-size: 32rpx;
		font-family: MicrosoftYaHei;
	}

	.rights .rights-items {
		display: flex;
		justify-content: space-evenly;
		padding: 30rpx 0;
	}

	.rights .item {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}

	.rights .item .tit {
		font-size: 26rpx;
		color: #333;
		padding: 20rpx 0 10rpx 0;
	}

	.rights .item .sub-tit {
		font-size: 22rpx;
		color: #999;
	}

	.order .order-items {
		display: flex;
		justify-content: space-around;
		padding: 30rpx 0 10rpx;

		.rtop-badge {
			position: absolute;
			right: 0;
			width: 34rpx;
			height: 34rpx;
			top: 0;
			transform: translate(50%, -50%);
			line-height: 34rpx;
			text-align: center;
			font-family: SourceHanSansSC, SourceHanSansSC;
			font-weight: 400;
			font-size: 20rpx;
			color: #FFFFFF;
		}
	}

	.order .item {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}

	.order .item .tit {
		font-size: 26rpx;
		color: #333;
		padding: 20rpx 0 10rpx 0;
	}

	.box .icon {
		width: 50rpx;
		height: 50rpx;
	}

	.go-through .pass {
		display: flex;
		flex-direction: column;
	}

	.go-through .total {
		display: flex;
		justify-content: space-between;
		font-size: 26rpx;
		color: #666;
	}

	.go-through .amount {
		display: flex;
		justify-content: space-between;
		align-items: center;
		font-family: NotoSansHans, NotoSansHans;
		font-size: 32rpx;
		color: #333333;
		font-weight: 400;
	}

	.go-through .line {
		display: flex;
	}

	.go-through .line1 {
		height: 14rpx;
		background: #005B9C;
		border-radius: 7rpx;
	}

	.go-through .line2 {
		height: 14rpx;
		background: #E5ECEF;
		border-radius: 7rpx;
		flex: 1;
	}

	.go-through .mileage {
		display: flex;
		justify-content: space-around;
		align-items: center;
		text-align: center;
		margin: 32rpx 0;

		.box-items {
			background-image: var(--bgimg);
			background-repeat: no-repeat;
			background-size: 100% 100%;
			padding: 20rpx 30rpx;

			.t-name {
				display: flex;

				.tongxing-icon {
					width: 29rpx;
					height: 29rpx;
				}

				.tit {
					font-size: 26rpx;
					color: #666666;
					line-height: 29rpx;
					margin-left: 5rpx;
				}
			}

			.b-info {
				padding-top: 20rpx;

				.val {
					font-size: 32rpx;
					color: #333333;
				}

				.unit {
					font-size: 24rpx;
					color: #666666;
					margin-left: 5rpx;
				}
			}
		}
	}

	.go-through .mileage .txt {
		display: flex;
		flex-direction: column;
	}

	.go-through .mileage .tit {
		font-size: 26rpx;
		color: #999;
	}

	.go-through .mileage .val {
		font-size: 28rpx;
		color: #333;
		margin-top: 16rpx;
	}

	.go-through .m-top {
		margin-top: 16rpx;
	}

	.go-through .detail {
		width: 100%;
		text-align: center;
		color: #00B38B;
		font-size: 24rpx;
		border-top: 1px solid #DCDCDC;
		padding-top: 24rpx;
	}

	.cars .car-item {
		display: flex;
		align-items: center;
		padding-top: 36rpx;
	}

	.cars .car-item .btn-unbind {
		font-weight: 400;
		border-radius: 30rpx;
		font-family: NotoSansHans, NotoSansHans;
		line-height: 30px;
		text-align: center;
		font-size: 24rpx;
		width: 130rpx;
		height: 60rpx;
		background: #004372;
		color: #fff;
		margin-bottom: 10rpx;
	}

	.cars .car-pic {
		width: 120rpx;
		height: 110rpx;
		margin-right: 20rpx;
	}

	.cars .car-info {
		display: flex;
		flex-direction: column;
		color: #999;
		font-size: 22rpx;
		width: 56%;
	}

	.cars .car-no {
		font-size: 30rpx;
		color: #333;
	}

	.cars .card-no {
		margin-top: 10rpx;
		font-size: 22rpx;
		color: #999999;
	}

	.cars .add-related {
		background-image: var(--bgimg);
		background-repeat: no-repeat;
		background-size: 100% 100%;
		height: 80rpx;
		display: flex;
		align-items: center;
		justify-content: center;
		font-family: NotoSansHans, NotoSansHans;
		font-weight: 400;
		font-size: 26rpx;
		color: #CCB375;
		margin-top: 30rpx;

		.add-img {
			margin-right: 10rpx;
			width: 36rpx;
			height: 36rpx;
		}
	}


	.color {
		padding: 4rpx 8rpx;
		border-radius: 10rpx;
		color: white;
		display: inline-block;
		margin-left: 20rpx;
		font-size: 24rpx;
	}

	.loading-more {
		text-align: center;
		font-size: 28rpx;
		margin-bottom: 20rpx;
		color: #999;
	}
</style>
<style>
	page {
		background-color: #f6f9fc;
	}
</style>