<template>
	<view class="page">
		<u-navbar :title="title" :border-bottom="false" :background="bgc" title-color='#000' title-size='36'
			:title-bold='true' height='45' id="navbar">
		</u-navbar>
		<view class="tipbox">
			<view class="tip_cont">
				<image src="https://api.ccttiot.com/smartmeter/img/static/uwO70CUV98b3maj6bfCF" mode=""></image>
				<view class="txt">
					{{listfz}}
				</view>
			</view>
			<view class="tip_cont" style="margin-top: 28rpx;">
				<image src="https://api.ccttiot.com/smartmeter/img/static/uQQym033Pvs3rirm9kP5" mode=""></image>
				<view class="txt">
					{{listmy}}
				</view>
			</view>
			<view class="tip_cont" style="margin-top: 28rpx;">
				<image src="https://api.ccttiot.com/smartmeter/img/static/u9wAWh1AIzSDGgKDKsKY" mode=""></image>
				<view class="txt">
					{{daily[0].tempMax}} ℃
				</view>
			</view>
			<view class="tip_cont" style="margin-top: 28rpx;">
				<image src="https://api.ccttiot.com/smartmeter/img/static/uBIctX6qJ9yMtAZYuY0R" mode=""></image>
				<view class="txt">
					{{daily[0].humidity}} %
				</view>
			</view>
			<image @click="btnedfc" style="width: 44rpx;height: 44rpx;position: absolute;top: 240rpx;right:20rpx	;" src="https://api.ccttiot.com/smartmeter/img/static/ulHBKvkXDfe9OIveIJKZ" mode=""></image>
		</view>
		<view class="info_box">
			<view class="cont_img" style="margin-top: 25rpx;" @click="showtqs()">
				<image src="https://api.ccttiot.com/smartmeter/img/static/uuDdvHXyO9xuWd3DqCLU" mode=""></image>

			</view>
			<view class="cont_img" style="margin-top: 15rpx;" @click="btnpage">
				<image src="https://api.ccttiot.com/smartmeter/img/static/urhdebIu3K8vqRb8leoH" mode=""></image>
			</view>
			<view class="cont_img" style="margin-top: 15rpx;">
				<image src="https://api.ccttiot.com/smartmeter/img/static/uTcBaMpmiZwS63GPCMBZ" mode=""></image>
				<view class="tip">
					1
				</view>
			</view>
			<view class="cont_img" style="margin-top: 25rpx;" @click="btncaozuo">
				<image src="https://api.ccttiot.com/smartmeter/img/static/uZVc2GgYQoUmn6aJwVeR" mode=""></image>
			</view>
		</view>
		<view class="tit">
			具体位置 
		</view>
		<view class="mapbox">
			<map class="map" id="map" ref="map" :scale="zoomSize" :latitude="latitude" :longitude="longitude"
				:show-location='true'> </map>
			<view class="num">
				<view class="txt">
					在线:{{apiaryobj.onlineBeehiveCount}}
				</view>
				<view class="txt" style="color:#FF473E ;margin-top: 10rpx;">
					离线:{{apiaryobj.offlineBeehiveCount}}
				</view>
			</view>
			<view class="btn" @click="showwl = true">
				<image src="https://api.ccttiot.com/smartmeter/img/static/uaGU0mFvFqbgAxAsFlUP" mode=""></image>
			</view>
		</view>
		<view class="tit">
			具体位置
		</view>
		<view class="setbox">
			<view class="setcard">
				<view class="top">
					<view class="left">
						视频监控
					</view>
					<view class="right iconfont icon-xiangyou1">

					</view>
				</view>
				<view class="bot">
					更好查看蜂场情况
				</view>
				<view class="img">
					<image src="https://api.ccttiot.com/smartmeter/img/static/ukN0K37DEPQQxFJ03Qi9" mode=""></image>
				</view>
			</view>
			<view class="setcard">
				<view class="top">
					<view class="left">
						预警设置
					</view>
					<view class="right iconfont icon-xiangyou1">

					</view>
				</view>
				<view class="bot">
					时刻注意蜂箱变化
				</view>
				<view class="img">
					<image src="https://api.ccttiot.com/smartmeter/img/static/uxDnt5rGbJcc6mU6W3cE" mode=""></image>
				</view>
			</view>
		</view>
		<u-mask :show="showtq" @click="showtq = false" :z-index='100' duration='0' />
		<view class="weather_info" v-show="showtq">
			<view class="top">
				<view class="weather_info_tit">
					未来7日天气预知
				</view>
				<image src="https://api.ccttiot.com/smartmeter/img/static/uQK4q99a1Qb7LFD6O3Hw" mode=""
					@click="showtq = false"></image>
			</view>
			<view class="top" style="margin-top: 14rpx;">
				<view class="weather_add">
					蜂场位置:<span style="color: #42A5F5;">{{apiaryobj.county}}</span>
				</view>
				<view class="up_time">
					{{daytime}}更新
				</view>
			</view>
			<view class="weather_cont">
				<view class="weather_li" v-for="(item,index) in daily" :key="index">
					<view class="data">
						{{item.fxDate.slice(5)}}
					</view>
					<view class="week">
						{{item.textDay}}
					</view>
					<view class="week_weather">
						{{item.windDirDay}}
					</view>
					<view class="week_weather_img">
						<image src="https://api.ccttiot.com/smartmeter/img/static/u6wWpgZOuId6JSX8LGmz" mode=""></image>
					</view>
				</view>
			</view>
			<view class="echarts_box">
			<uni-ec-canvas class="uni-ec-canvas" id="uni-ec-canvas" ref="canvas7" canvas-id="uni-ec-canvas" :ec="ec">
			</uni-ec-canvas>
			</view>
		</view>
		<u-mask :show="showwl" @click="showwl = false" :z-index='100' duration='0' />
		<view class="pops" v-if='showwl'>
			<image class="bgimg" src="https://api.ccttiot.com/smartmeter/img/static/uImWgTlNYBAv4SO02gSL" mode="">
			</image>
			<view class="tit">
				电子围栏(Km)
			</view>
			<view class="cont">
				最大距离 <view class="ipt"><input type="text" class="ips" v-model="code" placeholder=" "
						placeholder-class="my-placeholder" /></view>
			</view>
			<view class="btn">
				确定
			</view>
		</view>
	</view>
</template>

<script>
	import uniEcCanvas from '@/components/uni-ec-canvas/uni-ec-canvas.vue'
	import * as echarts from '@/components/uni-ec-canvas/echarts'
	let chart = null
	export default {
		components: {
			uniEcCanvas
		},
		data() {
			return {
				ec: {
					lazyLoad: true
				},
				bgc: {
					backgroundColor: " #F4FAF8",
				},
				title: "福鼎蜂场",
				latitude: '',
				longitude: '',
				isMap: false,
				zoomSize: 15,
				markers: [{
					id: 1,
					latitude: 39.90469,
					longitude: 116.40717,
					title: 'Marker1'
				}, {
					id: 2,
					latitude: 39.90969,
					longitude: 116.41217,
					title: 'Marker2'
				}],
				showtq: false,
				showwl: false,
				apiaryId: '',
				apiaryobj: {},
				listmy: '',
				listfz:'',
				daily:[],
				chartData7:[],
				chartData8:[],  
				daytime:''
			}
		},  
		onLoad(option) {
			setTimeout(() => {
				this.$refs.canvas7.init(this.initChart7)
			}, 1000)
			this.apiaryId = option.id
			this.getfcxq()
		},
		onShow() {

		},
		methods: {   
			btnedfc(){
				uni.navigateTo({
					url:'/pages/Apiary/Apiary_edit/Apiary_edit?apiaryId=' + this.apiaryId  
				})
			},
			btncaozuo(){
				uni.navigateTo({
					url:'/page_Beehive/Beehive_log?apiaryId=' + this.apiaryId
				})
			},
			btnpage(){
				uni.switchTab({
					url:'/pages/Beehive'
				})
			},
			gettq(){
				console.log(this.latitude,this.longitude);
				this.$u.get(`weather/7d?location=${this.longitude},${this.latitude}`).then(res => {
					if(res.code == 200){
						this.daily = res.data.daily
						this.chartData7 = res.data.daily.map(item => item.tempMin)
						this.chartData8 = res.data.daily.map(item => item.tempMax)
						this.daytime = res.data.updateTime
						let date = new Date(this.daytime);  
						let formattedDate = this.formatDate(date)
						this.daytime = formattedDate
					}
				})
			},
			formatDate(date) {
			    let year = date.getFullYear()
			    let month = String(date.getMonth() + 1).padStart(2, '0')
			    let day = String(date.getDate()).padStart(2, '0') 
			    let hours = String(date.getHours()).padStart(2, '0') 
			    let minutes = String(date.getMinutes()).padStart(2, '0') 
			    return `${year}-${month}-${day} ${hours}:${minutes}`  
			},
			getfcxq() {
				this.$u.get(`/farm/apiary/${this.apiaryId}`).then(res => {
					if (res.code == 200) {
						this.apiaryobj = res.data
						this.latitude = res.data.lat
						this.longitude = res.data.lng
						this.gettq()
						this.getmy()
						this.getfz()
					} else {
						uni.showToast({
							title: res.msg,
							icon: 'none',
							duration: 2000
						})
					}
				})
			},
			getmy() {
				this.$u.get(`/common/getDictByType?dictType=apiary_honey_type`).then(res => {
					if (res.code == 200) {
						for(let i = 0; i < res.data.length;i++){
							if(res.data[i].dictValue == this.apiaryobj.honeyType){
								this.listmy = res.data[i].dictLabel
							}
						}
					}
				})
			},
			getfz() {
				this.$u.get(`/common/getDictByType?dictType=apiary_bee_type`).then(res => {
					if (res.code == 200) {
						for(let i = 0; i < res.data.length;i++){
							if(res.data[i].dictValue == this.apiaryobj.beeType){
								this.listfz = res.data[i].dictLabel
							}
						}
					}
				})
			},


			showtqs() {
				setTimeout(() => {

					this.$refs.canvas7.init(this.initChart7)
				}, 200);
				this.showtq = true
			},
			initChart7(canvas, width, height, canvasDpr) {
				let that = this

				const option = {
					grid: {
						left: '4%',
						right: '4%',
						bottom: '3%',
						top: '0%',
						containLabel: true
					},
					tooltip: {
						trigger: 'axis'
					},
					xAxis: {
						type: 'category',
						boundaryGap: false,
						data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
						axisLine: {
							show: false // 隐藏X轴线
						},
						axisTick: {
							show: false // 隐藏X轴刻度
						},
						axisLabel: {
							show: false // 隐藏X轴标签
						},
						splitLine: {
							show: true, // 显示X轴网格线
							lineStyle: {
								type: 'dashed', // 设置网格线为虚线
								color: '#ccc', // 可以设置虚线的颜色
								width: 1 // 可以设置虚线的宽度
							}
						}
					},
					yAxis: {
						type: 'value',
						max: 40, // 设置Y轴的最大值为40
						axisLabel: {
							show: false // 隐藏Y轴标签
						},
						axisLine: {
							show: false // 隐藏Y轴线
						},
						axisTick: {
							show: false // 隐藏Y轴刻度
						},
						splitLine: {
							show: false // 隐藏Y轴背景网格线
						}
					},
					dataZoom: [{
							show: true,
							type: 'inside',
							filterMode: 'none',
							xAxisIndex: [0],
							startValue: -20,
							endValue: 20
						},
						{
							show: true,
							type: 'inside',
							filterMode: 'none',
							yAxisIndex: [0],
							startValue: -20,
							endValue: 20
						}
					],
					series: [{
							name: '最高温度',
							type: 'line',
							data: this.chartData8,
							smooth: true,
							symbol: 'circle',
							symbolSize: 8,
							lineStyle: {
								width: 3
							},
							itemStyle: {
								color: '#42A5F5'
							},
							label: {
								show: true,
								position: 'top',
								formatter: '{c}°',
								color: '#42A5F5'
							},
							markLine: {
								silent: true, // 不响应鼠标事件
								symbol: ['none', 'none'], // 不显示标记
								lineStyle: {
									color: 'red', // 使虚线更明显
									type: 'dashed'
								},
								// data: [
								//     { yAxis: 'min' },
								//     { yAxis: 'max' }
								// ]
							},
						},
						{
							name: '最低温蒂',
							type: 'line',
							data: this.chartData7,
							smooth: true,
							symbol: 'circle',
							symbolSize: 8,
							lineStyle: {
								width: 3
							},
							itemStyle: {
								color: '#42A5F5'
							},
							label: {
								show: true,
								position: 'bottom',
								formatter: '{c}°',
								color: '#42A5F5'
							},
						}
					]
				};

				chart = echarts.init(canvas, null, {
					width: width,
					height: height,
					devicePixelRatio: canvasDpr
				})


				canvas.setChart(chart)
				chart.setOption(option)
				return chart
			},

		}
	}
</script>

<style lang="scss">
	page {
		background-color: #FAFDFD;
		background-image: url('https://api.ccttiot.com/smartmeter/img/static/uzH4CBTO95bjOrhGDpAe');
		background-size: cover;
		/* 确保背景图覆盖整个区域 */
		background-repeat: no-repeat;
		/* 防止背景图重复 */
		background-position: center;
	}

	.page {
		position: relative;
		width: 750rpx;
 
		.pops {
			position: fixed;
			left: 98rpx;
			top: 400rpx;
			z-index: 101;
			width: 554rpx;
			height: 420rpx;
			background: #FFFFFF;
			border-radius: 30rpx 30rpx 30rpx 30rpx;

			.bgimg {
				z-index: -1;
				position: absolute;
				top: 12rpx;
				right: 16rpx;
				width: 210rpx;
				height: 172rpx;
			}

			.tit {
				width: 100%;
				text-align: center;
				margin: 40rpx auto 0;
				font-weight: 600;
				font-size: 36rpx;
				color: #3D3D3D;
			}

			.cont {
				display: flex;
				align-items: center;
				justify-content: center;
				flex-wrap: nowrap;
				margin-top: 42rpx;
				width: 100%;

				font-weight: 400;
				font-size: 28rpx;
				color: #3D3D3D;

				.ipt {
					margin-left: 18rpx;
					width: 178rpx;
					height: 76rpx;
					border-radius: 10rpx 10rpx 10rpx 10rpx;
					border: 2rpx solid #808080;

					.ips {
						padding: 14rpx;
					}

					.my-placeholder {
						font-weight: 400;
						font-size: 32rpx;
						color: #808080;
					}
				}

			}

			.btn {
				display: flex;
				align-items: center;
				justify-content: center;
				margin-top: 60rpx;
				margin-left: 74rpx;
				width: 406rpx;
				height: 90rpx;
				background: #FFC107;
				border-radius: 54rpx 54rpx 54rpx 54rpx;

				font-weight: 500;
				font-size: 40rpx;
				color: #FFFFFF;
			}
		}

		.weather_info {
			position: fixed;
			padding: 30rpx 50rpx;
			bottom: 0;
			right: 0;
			width: 750rpx;
			height: 820rpx;
			background: #FFFFFF;
			z-index: 200;

			border-radius: 20rpx 20rpx 0rpx 0rpx;

			.echarts_box {

				margin-top: 24rpx;
				// width: 100%;
				// height: 80%;
				width: 646rpx;
				height: 344rpx;
			}

			.weather_cont {
				margin-top: 42rpx;
				width: 100%;
				display: flex;
				flex-wrap: nowrap;
				align-items: center;
				justify-content: space-between;

				.weather_li {
					.data {
						text-align: center;
						width: 72rpx;
						font-weight: 400;
						font-size: 24rpx;
						color: #50565A;
					}

					.week {
						margin-top: 4rpx;
						text-align: center;
						width: 72rpx;
						font-weight: 600;
						font-size: 36rpx;
						color: #50565A;
					}

					.week_weather {
						margin-top: 14rpx;
						text-align: center;
						width: 82rpx;
						font-weight: 500;
						font-size: 28rpx;
						color: #50565A;
					}

					.week_weather_img {
						margin-top: 4rpx;
						display: flex;
						align-items: center;
						justify-content: center;
						width: 72rpx;

						image {
							width: 48rpx;
							height: 48rpx;
						}
					}
				}

			}

			.top {
				display: flex;
				flex-wrap: nowrap;

				justify-content: space-between;
				align-items: center;

				.weather_info_tit {
					font-weight: 600;
					font-size: 36rpx;
					color: #3D3D3D;
				}

				image {
					width: 42rpx;
					height: 42rpx;
				}

				.weather_add {
					font-weight: 600;
					font-size: 32rpx;
					color: #50565A;
				}

				.up_time {
					font-weight: 400;
					font-size: 32rpx;
					color: #808080;
				}
			}
		}

		.setbox {
			margin: 0 auto;
			margin-top: 34rpx;
			width: 674rpx;
			display: flex;
			flex-wrap: nowrap;
			justify-content: space-between;

			.setcard {
				position: relative;
				padding: 14rpx 22rpx;
				width: 320rpx;
				height: 132rpx;
				background: #FFFFFF;
				box-shadow: 0rpx 0rpx 8rpx 0rpx rgba(0, 0, 0, 0.15);
				border-radius: 20rpx 20rpx 20rpx 20rpx;

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

					.left {
						font-weight: 600;
						font-size: 28rpx;
						color: #3D3D3D;
					}

					.right {
						font-size: 24rpx;
						color: #808080;
					}
				}

				.bot {
					margin-top: 14rpx;
					font-weight: 400;
					font-size: 24rpx;
					color: #808080;
				}

				.img {
					position: absolute;
					right: 24rpx;
					bottom: 24rpx;
					width: 82rpx;
					height: 82rpx;

					image {
						width: 82rpx;
						height: 82rpx;

					}
				}
			}
		}

		.tit {
			margin-top: 40rpx;
			margin-left: 38rpx;
			font-weight: 600;
			font-size: 32rpx;
			color: #3D3D3D;
		}

		.mapbox {
			position: relative;
			margin: 0 auto;
			margin-top: 34rpx;
			width: 674rpx;
			height: 372rpx;
			border-radius: 20rpx;
			overflow: hidden;

			.num {
				width: 180rpx;
				position: absolute;
				top: 24rpx;
				left: 30rpx;

				.txt {
					width: 180rpx;
					font-weight: 600;
					font-size: 32rpx;
					color: #FFC107;
				}
			}

			.btn {
				position: absolute;
				right: 0rpx;
				bottom: 0rpx;

				// width: 70rpx;
				// height: 70rpx;
				image {
					width: 90rpx;
					height: 90rpx;
				}
			}

			.map {
				width: 672rpx;
				height: 372rpx;
				// border-radius:20rpx;
			}
		}

		.info_box {
			padding-left: 40rpx;
			margin: 138rpx auto 0;
			display: flex;
			flex-wrap: nowrap;
			width: 680rpx;
			height: 184rpx;

			.cont_img {
				position: relative;
				margin-right: 50rpx;

				image {

					width: 112rpx;
					height: 124rpx;
				}

				.tip {
					position: absolute;
					right: 0;
					top: 6rpx;
					display: flex;
					align-items: center;
					justify-content: center;
					border-radius: 50%;
					background: #FF473E;
					width: 32rpx;
					height: 32rpx;
					font-weight: 500;
					font-size: 24rpx;
					color: #FAFDFD;

				}
			}
		}

		.tipbox {
			width: 300rpx;
			display: flex;
			flex-wrap: wrap;
			// position: relative;
			margin-top: 42rpx;
			margin-left: 38rpx;
			.tip_cont {
				display: flex;
				flex-wrap: nowrap;
				align-items: center;

				image {
					margin-right: 6rpx;
					width: 38rpx;
					height: 38rpx;
				}

				// display: inline-flexbox;
				flex-wrap: nowrap;
				padding: 8rpx 22rpx;
				background: rgba(61, 61, 61, 0.5);
				box-shadow: 0rpx 0rpx 8rpx 0rpx rgba(0, 0, 0, 0.15);
				border-radius: 20rpx 20rpx 20rpx 20rpx;

				font-weight: 500;
				font-size: 32rpx;
				color: #FAFDFD;

			}
		}




	}
</style>