<template>
	<view>
		<u-navbar v-show="false" title="首页" title-color="#101010"></u-navbar>
		<view class="back-blue">
			<view class="back-color">

			</view>
		</view>
		<view class="main_top">
			<view class="main_top1">
				<view class="logo_img">
					<image class="img" src="@/assets/img/logo/logo.png" mode=""></image>
				</view>
				<view class="logo_text">
					<view class="logo_text1">
						优电联盟

					</view>
					<view class="logo_text2">
						巡检端
					</view>
				</view>
			</view>
			<view class="main_top2">
				<!-- 消息提醒位置 -->
			</view>
		</view>
		<view class="main_navigation panel"  >
			<view class="item-na end" @click="gotoUrl('/pages/task/addTask')">
				<view class="na-img">
					<image class="img" src="@/assets/img/index/na-1.png" mode=""></image>
				</view>
				<view class="na-text ">
					故障上报
				</view>
			</view>
			<view class="item-na-b"  v-if="isAdmin"  >

			</view>
			<view class="item-na end"   @click="gotoUrl('/pages/team/teamList')" v-if="isAdmin"  >
				<view class="na-img">
					<image class="img" src="@/assets/img/index/na-3.png" mode=""></image>
				</view>
				<view class="na-text">
					团队管理
				</view>
			</view>
			
			<view class="item-na-b"  >
			
			</view>
			
			<view class="item-na end"   @click="gotoUrl('/pages/inspection/list')"   >
				<view class="na-img">
					<image class="img" src="@/assets/img/index/na-2.png" mode=""></image>
				</view>
				<view class="na-text">
					巡检记录
				</view>
			</view>
			
			
		</view>
		<view class="main_statuspanel panel">
			<view class="top-main">
				<view class="title-main">
					充电枪状态

				</view>
				<view class="goto-main"  @click="gotoUrl('/pages/station/stationList')">
					查看详情
					<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
				</view>
			</view>
			<view class="body">
				<view class="pie">
					<view id="body1pie1" class="body1pie">

					</view>
					<view  class="body2pie" v-if="datafloorStatus.totalNum">
						<view class="v1">{{datafloorStatus.totalNum}}</view>
						<view class="v2">单位：把</view>
					</view>
				</view>
				<view class="item-list">
					<view class="item-status">
						<view class="num">
							{{datafloorStatus.gunWorkNum}}
						</view>
						<view class="statusN">
							<view class="statusC status1">

							</view>
							<view class="statusT">
								在用
							</view>
						</view>
					</view>
					<view class="item-status">
						<view class="num">
							{{datafloorStatus.gunFaultNum}}
						</view>
						<view class="statusN">
							<view class="statusC status2">

							</view>
							<view class="statusT">
								故障

							</view>
						</view>
					</view>
					
					<view class="item-status" >
						<view class="num">
							{{datafloorStatus.gunFreeNum}}
						</view>
						<view class="statusN">
							<view class="statusC status4">

							</view>
							<view class="statusT">
								空闲

							</view>
						</view>
					</view>
					
					<view class="item-status">
						<view class="num">
							{{datafloorStatus.gunOfflineNum}}
						</view>
						<view class="statusN">
							<view class="statusC status3">
					
							</view>
							<view class="statusT">
								离线
					
							</view>
						</view>
					</view>
				</view>
			</view>
		</view>
		<view class="main_list1 ">
			
			<view class="top-main" style="    border-bottom: 2rpx solid #e8e8e8;" >
			<u-tabs :list="tabslist"
			
			 :current="current" @change="change"></u-tabs>
				<view class="goto-main"  @click="gotoUrl('/pages/task/listTask')">
					全部故障记录
					<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
				</view>
			</view>
			 
			<view class="list"  >
				<view class="item" 
				 v-for="(item,index) in dataerrList" 
				 @click="gotoUrl('/pages/task/maintenanceTaks?id='+item.id)"
				 :key="index">
					<view class="icon">
						
						<image class="img" v-if="item.errorCodeImage" :src="item.errorCodeImage" mode=""></image>
						
						<image class="img" v-else src="@/assets/img/taskstatus/status3.png" mode=""></image>
					</view>
					<view class="body">
						<view class="line1">
							<view class="title">
								<span  v-if="item.type" :class="'typeN typeN'+item.type">
									{{item.typeN}}
								</span>
								{{item.errorCodeText}}

							</view>
							<view class="status " :class="'status'+item.status">
								{{item.statusN}}

							</view>
						</view>
						
						<view class="line2">
							<view class="value">
								{{item.createTime}}<span style="color: red;" v-if="isToday(item.createTime)">(今日)</span>

							</view>
							<view class="value">
								{{item.parkingName}} 

							</view>
						</view>
						<view class="errorDesc" v-if="item.errorDesc">
							描述：{{item.errorDesc}}
							
						</view>

					</view>
					<u-icon name="arrow-right" size="24" color="#BBBBBB"></u-icon>
				</view>
				
				<u-divider color="#F44336" 
				 :isnone="dataerrRecordsTotal==0" nonetext="暂无数据"
				 v-if="dataerrRecordsTotal>5&&current==0"
				 @click="gotoUrl('/pages/task/listTask?status='+tabslist[current].code)"  >故障记录{{dataerrRecordsTotal}}条，点击查看更多</u-divider>
				 <u-divider color="#CFD2D5"  v-else
				 
				 :isnone="dataerrRecordsTotal==0" nonetext="暂无数据"
				  @click="gotoUrl('/pages/task/listTask?status='+tabslist[current].code)"  >查看详情</u-divider>
				  
				
			</view>

		</view>



		 
		
		<tabbar :current="0"></tabbar>
		
	</view>
</template>

<script>
	import * as API from '@/apis/pagejs/pagejsIndex.js'
	
	import * as echarts from 'echarts';
	import Tabbar from '@/components/Tabbar.vue'

import {
	
		newDate
	} from '@/apis/utils'
	export default {
		components: {
			Tabbar,
			
		},
		data() {
			return {
				echartsList: {},
				isReadyfloorStatus:false,
				datafloorStatus:{},
				roleList:[],
				isReadyerrList:false,
				dataerrList:[],
				dataerrRecordsTotal:0,
				tabslist:[
					{
						name: '待处理',
						code:"geterrList0"
						
					}, {
						name: '已处理',
						code:"geterrList1"
					}
				],
				current:0,
			};
		},
		onLoad() {
			this.roleList=this.jphelp.getPersonInfoPlus().roleList
		},
		onShow() {
			this.roleList=this.jphelp.getPersonInfoPlus().roleList
			if(this.isReadyfloorStatus){
				this.getfloorStatus()
			}
			if(this.isReadyerrList){
				this.geterrList()
			}
			
		},
		computed:{
				isAdmin(){
					if(this.roleList){
						var i =this.roleList.findIndex(item=>{
							return item.name=='XJADMIN'
						})
						if(i!=-1){
								return true
						}
					}
					return true
				}
		},
		onReady() {
			this.geterrList()
			this.getfloorStatus()
			//this.getbody1pie1()
			this.query()
		},
		methods: {
			change(e){
				this.current=e
				
				this.dataerrList =[]
				
				this.geterrList()
			},
			
			isToday(dateStr) {
			    // 将传入的日期字符串转换为Date对象
			    const targetDate = newDate(dateStr);
			    // 获取当前日期
			    const today = new Date();
			
			    // 比较年份、月份和日期是否相等
			    return (
			        targetDate.getFullYear() === today.getFullYear() &&
			        targetDate.getMonth() === today.getMonth() &&
			        targetDate.getDate() === today.getDate()
			    );
			},
			query(){
				uni.showLoading({
					title: "加载中",
					mask: true,
				})
				
				API.findByOpenId({
					noerror:true,
					openId: this.jphelp.getOpenId(),
				 
				
				}).then((response) => {
					uni.hideLoading();
					if(response.message){
						uni.hideLoading();
						
					}else{
						this.loginset(response)
						
						 
					}
					this.roleList=this.jphelp.getPersonInfoPlus().roleList
					
					
				
				}).catch(error => {
					
					uni.hideLoading();
					
				})
			},
			geterrList(){
				var status=0
				var code=this.tabslist[this.current].code
				if(code=="geterrList0"){
					status=0
				}
				if(code=="geterrList1"){
					status=1
				}
				API.errList({
					pageIndex:1,
					pageSize:5,
					status:status,
				}).then((response) => {
					this.dataerrList=response.data.data
					this.dataerrRecordsTotal=response.data.recordsTotal
					this.isReadyerrList=true
				}).catch(error => {
					uni.showToast({
						title: error,
						icon: "none"
					})
				
				})
			},
			getfloorStatus(){
				
				API.floorStatus().then((response) => {
					var obj=response.data;
					var sz=['gunFaultNum','gunFreeNum','gunOfflineNum','gunWorkNum']
					var bl=false
					for(var i in sz){
						if(obj[sz[i]]!=this.datafloorStatus[sz[i]]){
							bl=true
							this.datafloorStatus=obj
						}
					}
					
					this.isReadyfloorStatus=true
					if(bl){
						this.getbody1pie1()
					}
					
				}).catch(error => {
					uni.showToast({
						title: error,
						icon: "none"
					})
				
				})
			},
			getbody1pie1() {
				var key = "body1pie1"
				var myChart = this.echartsList[key];
				if (!myChart) {
					myChart = echarts.init(document.getElementById(key), null, {
						width: uni.upx2px(88 * 2),
						height: uni.upx2px(88 * 2)
					})

				}
				myChart.clear()
				var option = {
				  
					series: [{
						silent: true,
						type: 'pie',
						radius: ['80%', '100%'],
						label: {
							show: false,
						},

						data: [{
								value: this.datafloorStatus.gunWorkNum,
								itemStyle: {
									color: 'rgba(0, 185, 98, 1)'
								}
							},
							{
									value: this.datafloorStatus.gunFreeNum,
									itemStyle: {
										color: '#999999'
									}
								},
							{
								value: this.datafloorStatus.gunOfflineNum,
								itemStyle: {
									color: '#FF9600'
								}
							},
							{
								value: this.datafloorStatus.gunFaultNum,
								itemStyle: {
									color: '#FF3D00'
								}
							}
						]
					}],
					grid: {
						top: 0,
						left: 0,
						right: 0,
						bottom: 0,
						containLabel: true
					},

				}
				myChart.setOption(option);
				console.log(option)
				this.echartsList[key] = myChart;
			}
		}
	}
</script>
<style>
	page{
		background-color: #FFFFFF;
	}
</style>
<style lang="scss">
	.back-blue {
		height: 0px;

		.back-color {
			height: 656rpx;
			background: linear-gradient(180deg, rgba(22, 119, 255, 1) 53%, rgba(203, 234, 255, 0) 100%);

		}
	}

	.top-main {
		display: flex;
		align-items: center;
		justify-content: space-between;

		.title-main {
			color: rgba(51, 51, 51, 1);
			font-size: 32rpx;
			font-weight: bold;
		}

		.goto-main {
			color: rgba(131, 131, 131, 1);
			font-size: 24rpx;
		}
	}

	.panel,
	.main_top {
		margin: 0 32rpx;
	}

	.panel {
		border-radius: 16rpx;
		background-color: rgba(255, 255, 255, 1);
		box-shadow: 0px 8rpx 16rpx 0px rgba(22, 119, 255, 0.1);
	}

	.main_top {
		margin-top: 32rpx;
		display: flex;
		justify-content: space-between;

		.main_top1 {
			display: flex;
			align-items: center;

			.logo_img {
				.img {
					border-radius: 16rpx;
					width: 96rpx;
					height: 96rpx;
				}

				margin-right: 16rpx;
			}

			.logo_text {
				color: #fff;

				.logo_text1 {
					font-size: 40rpx;
				}

				.logo_text2 {
					font-size: 32rpx;

				}
			}
		}

		.main_top2 {}
	}

	.main_navigation {
		margin-top: 32rpx;
		display: flex;
		justify-content: space-around;
		align-items: center;
		padding: 24rpx 0 20rpx 0;

		.item-na-b {
			border-left: 2rpx solid rgba(187, 187, 187, 0.43);
			height: 70rpx;
		}

		.item-na {
			width: 32%;
			text-align: center;

			.na-img {
				display: flex;
				justify-content: center;

				.img {
					width: 80rpx;
					height: 80rpx;
				}
			}
		}
	}

	.main_statuspanel {
		margin-top: 24rpx;
		padding: 24rpx;
		.body2pie{
			    position: relative;
			    top: -140rpx;
			    height: 0px;
			    left: 0px;
				width: 176rpx;
				text-align: center;
				.v1{
					color: rgba(16,16,16,1);
					font-size: 48rpx;
					font-weight: bold;
				}
				.v2{
					color: rgba(119,119,119,1);
					font-size: 24rpx;
				}
		}
		.body {
			display: flex;
			padding: 24rpx;

			.item-list {
				margin-left: 48rpx;
				display: flex;
				width: 100%;
				flex-wrap: wrap;

				.item-status {
					width: 50%;

					.num {
						color: rgba(51, 51, 51, 1);
						font-size: 36rpx;
						font-weight: bold;
					}
				}

				.statusN {
					display: flex;
					align-items: center;

					.statusC {
						margin-right: 8rpx;
						width: 16rpx;
						height: 16rpx;
						background-color: rgba(153, 153, 153, 1);
					}

					.status1 {
						background-color: rgba(0, 185, 98, 1);
					}

					.status2 {
						background-color: #FF3D00 ;
					}

					.status3 {
						background-color: #FF9600;
					}

					.status4 {
						background-color: #999999;
					}
				}

			}
		}
	}

	.main_list1 {
		margin-top: 24rpx;
		padding: 24rpx;
		padding-bottom: 36rpx;
		.list-body{
			padding: 24rpx 0;
			.item {
				border-bottom: 2rpx solid rgba(232, 232, 232, 1);
			}
			.title {
				display: flex;
				    justify-content: space-between;
					.name{
						color: rgba(51,51,51,1);
						font-size: 32rpx;
						font-weight: bold;
					}
					.status{
						
					}
					.statusN1{
						
					}
					.statusN2{
						
					}
					.statusN3{
						
					}
			}
			.body{
				    display: flex;
					color: rgba(51,51,51,1);
					font-size: 28rpx;
				.name{
					width: 150rpx;
				}
				.value{
					
				}
			}
		}
		
		
		.list {
			//padding: 24rpx 0;

			.item {
				display: flex;
				border-bottom: 2rpx solid rgba(232, 232, 232, 1);
				padding: 12rpx 0;
				margin: 12rpx 0;

				.img {
					width: 72rpx;
					height: 72rpx;

				}

				.body {
					margin: 0 12rpx;
					width: 100%;

					.line1,
					.line2 {

						display: flex;
						justify-content: space-between;
					}
					.line2 {
						color: rgba(119,119,119,1);
						font-size: 24rpx;
						margin-top: 8rpx;
					}
					.line1 {
						.typeN{
							font-size: 24rpx;
							margin-right: 8rpx;
							display: flex;
							align-items: center;
								border-radius: 8rpx;
								padding: 4rpx 8rpx;
								color: #fff;
								font-weight: 400;
						}
						.typeN1{
							background-color:#1677ff;
							//border: 2rpx solid #1677ff;
						}
						.typeN2{
							background-color:#19be6b;
							//border: 2rpx solid #19be6b;
							 
						}
						.title {
							display: flex;
							color: rgba(51, 51, 51, 1);
							font-size: 28rpx;
							font-weight: bold;
						}

						.status {
							background-color:  rgba(255, 61, 0, 1);
							font-size: 24rpx;
							color:#fff;
							padding: 2rpx 8rpx;
							//border-radius: 8rpx;

						}
						
						.status0 {
							background-color:  #FF7B00;
							
						}
						.status1 {
							background-color:  #007aff;
							
						}

						.status2 {
							background-color:  #ff9900;
							
						}

						.status3 {
							background-color:  #19be6b;
							
						}

						.status4 {
							border: 2rpx solid rgba(255, 61, 0, 1);
							color: rgba(255, 61, 0, 1);
						}
					}
					
					.errorDesc{
						margin: 8rpx 0;
						 width: 480rpx;
						     color: #777777;
						     font-size: 24rpx;
						 overflow: hidden;
						    text-overflow: ellipsis;
						    white-space: nowrap; /* 禁止换行，强制单行 */
					}
				}
			}

			// .item:not(:last-child) {
			//   border-bottom:2rpx solid rgba(232,232,232,1);
			// }
		}
	}
</style>