<template>
	<view class="" style="position: relative;">
		<view class="top">
			<!-- 17828474084 -->
			<view class="" style="height:var(--status-bar-height) ;">
			</view>

			<view class="nav-con" style="justify-content: space-between;">
				<view class="" v-if="columns.length>0"
					style="padding-left: 20rpx;display: flex;color: white;" @click="show=true">
					<u--image :src="u('qhtd')" width="38.55rpx" height="38.55rpx"
						style="margin-right: 20rpx;"></u--image>
					<!-- {{dataobj.farm_name}} -->
				</view>
        <view v-else></view>

				<view class="" style="display: flex;align-items: center;">
					<view class="nav">
						<view class="" style="margin-right: 20rpx;">
							<!-- <u-icon name="scan" @click="scanFn" color="white" :size="30"></u-icon> -->
							<u--image :src="u('sys')" width="38.55rpx" @click="scanFn" height="38.55rpx"></u--image>
						</view>
						<view class="" style="margin-left: 20rpx;">
							<!-- <u-icon name="coupon-fill" color="white" @click="showModal=true" :size="28"></u-icon> -->
							<u--image :src="u('sbbd')" width="38.55rpx" @click="showModal=true"
								height="38.55rpx"></u--image>
						</view>
						<view class="" style="margin-left: 20rpx;">
							<!-- <u-icon name="plus-circle" color="white" @click="navto('/pages/addPlant/addPlant')"
								:size="28"></u-icon> -->
						</view>
					</view>

					<view class="" style="margin-top: -5rpx;">
						<Myindex url='/pages/index/index' />
					</view>
				</view>
			</view>



		</view>
		<view class="">
			<view class="" style="height:var(--status-bar-height) ;">
			</view>
			<view class="nav-con">
			</view>
		</view>

		<view class="content" v-if="true">
			<!-- 养殖基地信息 -->
			<view class="">
				<view class="empty-land" v-if="columns.length<=0">
					<text>没有养殖基地信息？</text>
					<text @click="navto('/pages/addPlant/addPlant')">去新增》</text>
				</view>


				<view class="land-info" @click="navToPlant">
					<view class="land-area">
						<view class="land-title">养殖基地规模</view>
						<view class="">
							{{dataobj.form_scale|| "--"}}亩
						</view>

					</view>
					<view class="plant-area">
						<view class="land-title">养殖种类</view>
						<view class="">
							{{farm_type||"--"}}
						</view>
					</view>
				</view>
				<view class="live-tit" style="color: #1A1A1A;">
					<view class="tit" style="">
						养殖基地监控数据
					</view>
					<view class="" style="font-size: 24rpx;color: #ACACAC;display: flex;align-items: center;">
						<u-icon name="clock" style="margin-right: 5rpx;"></u-icon> 刷新时间：{{getNowTimeFn()}}
					</view>


				</view>
        <view class="live">
        	<u--image :src="videoCover" v-if="video_url" width="100%" height="450rpx"></u--image>
        	<u--image :src="u('K')" v-else width="100%"></u--image>
        
        	<view class=""
        		style="width: 100%;height: 450rpx;background-color: rgba(0, 0, 0, .5);position: absolute;top: 1px;"
        		@click="goLive" v-if="video_url">
        		<u-icon name="play-circle" size="40" color="white" v-if="video_url"
        			style="position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);"></u-icon>
        	</view>
        
        </view>

				<view class="">
					<view class="tit">
						智能监测数据
					</view>
					<view class="area-check">
            <view class="area-li" key="index"
            	:style="{backgroundImage:`url(${bgc('huan_jing_wen_du')})`}">
            	<view class="">
            		空气温度
            	</view>
            	<view class="standard" :class="{'red': monitorData.ambient_temperature > monitorThreshold.air_temp_max || monitorData.ambient_temperature < monitorThreshold.air_temp_min}">
            		{{ monitorData.ambient_temperature || monitorData.ambient_temperature === 0 ? monitorData.ambient_temperature + '℃':'--' }}
            	</view>
              <view v-if="monitorData.ambient_temperature > monitorThreshold.air_temp_max" class="a-tips red">
                ↑ {{ compDatas(monitorData.ambient_temperature, monitorThreshold.air_temp_max) }}{{'℃'}}
              </view>
              <view v-if="monitorData.ambient_temperature < monitorThreshold.air_temp_min" class="a-tips blue">
                ↓ {{ compDatas(monitorThreshold.air_temp_min, monitorData.ambient_temperature) }}{{'℃'}}
              </view>
            </view>
            <view class="area-li" key="index"
            	:style="{backgroundImage:`url(${bgc('huan_jing_shi_du')})`}">
            	<view class="">
            		空气湿度
            	</view>
            	<view class="standard" :class="{'red': monitorData.ambient_humidity > monitorThreshold.air_mois_max || monitorData.ambient_humidity < monitorThreshold.air_mois_min}">
            		{{ monitorData.ambient_humidity || monitorData.ambient_humidity === 0 ? monitorData.ambient_humidity + '%':'--' }}
            	</view>
              <view v-if="monitorData.ambient_humidity > monitorThreshold.air_mois_max" class="a-tips red">
                ↑ {{ compDatas(monitorData.ambient_humidity, monitorThreshold.air_mois_max) }}{{'%'}}
              </view>
              <view v-if="monitorData.ambient_humidity < monitorThreshold.air_mois_min" class="a-tips blue">
                ↓ {{ compDatas(monitorThreshold.air_mois_min, monitorData.ambient_humidity) }}{{'%'}}
              </view>
            </view>
            <view class="area-li" key="index"
            	:style="{backgroundImage:`url(${bgc('dan_qi')})`}">
            	<view class="">
            		氮气
            	</view>
            	<view class="standard" :class="{'red': monitorData.nitrogen > monitorThreshold.nitrogen_max || monitorData.nitrogen < monitorThreshold.nitrogen_min}">
            		{{ monitorData.nitrogen || monitorData.nitrogen === 0 ? monitorData.nitrogen + 'ppm':'--' }}
            	</view>
              <view v-if="monitorData.nitrogen > monitorThreshold.nitrogen_max" class="a-tips red">
                ↑ {{ compDatas(monitorData.nitrogen, monitorThreshold.nitrogen_max) }}{{'ppm'}}
              </view>
              <view v-if="monitorData.nitrogen < monitorThreshold.nitrogen_min" class="a-tips blue">
                ↓ {{ compDatas(monitorThreshold.nitrogen_min, monitorData.nitrogen) }}{{'ppm'}}
              </view>
            </view>
            <view class="area-li" key="index"
            	:style="{backgroundImage:`url(${bgc('jia_wan')})`}">
            	<view class="">
            		甲烷
            	</view>
            	<view class="standard" :class="{'red': monitorData.methane > monitorThreshold.methane_max || monitorData.methane < monitorThreshold.methane_min}">
            		{{ monitorData.methane || monitorData.methane === 0 ? monitorData.methane + 'ppm':'--' }}
            	</view>
              <view v-if="monitorData.methane > monitorThreshold.methane_max" class="a-tips red">
                ↑ {{ compDatas(monitorData.methane, monitorThreshold.methane_max) }}{{'ppm'}}
              </view>
              <view v-if="monitorData.methane < monitorThreshold.methane_min" class="a-tips blue">
                ↓ {{ compDatas(monitorThreshold.methane_min, monitorData.methane) }}{{'ppm'}}
              </view>
            </view>
            <view class="area-li" key="index"
            	:style="{backgroundImage:`url(${bgc('zao_yin')})`}">
            	<view class="">
            		噪音
            	</view>
            	<view class="standard" :class="{'red': monitorData.noise > monitorThreshold.noise_max || monitorData.noise < monitorThreshold.noise_min}">
            		{{ monitorData.noise || monitorData.noise === 0 ? monitorData.noise + 'db' : '--'  }}
            	</view>
              <view v-if="monitorData.noise > monitorThreshold.noise_max" class="a-tips red">
                ↑ {{ compDatas(monitorData.noise, monitorThreshold.noise_max) }}{{'db'}}
              </view>
              <view v-if="monitorData.noise < monitorThreshold.noise_min" class="a-tips blue">
                ↓ {{ compDatas(monitorThreshold.noise_min, monitorData.noise) }}{{'db'}}
              </view>
            </view>
            <view class="area-li" key="index"
            	:style="{backgroundImage:`url(${bgc('fang_huo')})`}">
            	<view class="">
            		防火
            	</view>
            	<view class="standard" :class="{'red': monitorData.fireproof > monitorThreshold.fireproof_max || monitorData.fireproof < monitorThreshold.fireproof_min}">
            		{{ monitorData.fireproof || monitorData.fireproof === 0 ? monitorData.fireproof : '--' }}
            	</view>
              <view v-if="monitorData.fireproof > monitorThreshold.fireproof_max" class="a-tips red">
                ↑ {{ compDatas(monitorData.fireproof, monitorThreshold.fireproof_max) }}
              </view>
              <view v-if="monitorData.fireproof < monitorThreshold.fireproof_min" class="a-tips blue">
                ↓ {{ compDatas(monitorThreshold.fireproof_min, monitorData.fireproof) }}
              </view>
            </view>
					</view>
				</view>


			</view>
			<u-loading-page :loading="showLoading"></u-loading-page>

			<u-action-sheet :show="show" keyName="name" closeOnClickOverlay :actions="houseList" title="请选择"
				@close="show = false" @select="confirm">
			</u-action-sheet>
		</view>
		<view class="empty" v-else>
			<view class="addPlant">
				<view class="">
					你还没有养殖基地信息
				</view>
				<view class="addBtn" @click="navto('/pages/addPlant/addPlant')">
					去添加
				</view>
			</view>

		</view>
		<!-- 组件 -->

		<view class="Modal">
			<u-popup :show="showModal" mode="center" @close="closeModal" :round="10">
				<view class="Modal">
					<text> 产品编号:</text>
					<uni-data-select v-model="equipmentId" style="width: 300rpx;margin-left: 30rpx;"
						:localdata="range"></uni-data-select>
				</view>

				<view class="Modal-btn">
					<view class="Modal-btna" @click="closeModal">
						取消
					</view>
					<view class="Modal-btnb" @click="bindFn">
						确定
					</view>
				</view>
			</u-popup>

		</view>
		<u-picker keyName="name" :show="showPicker1" @cancel="showPicker1=false" @confirm="confirm1"
			:columns="columns2"></u-picker>
    <MyTabbar></MyTabbar>
	</view>
</template>

<script setup>
	import {
		reactive,
		ref,
    computed
	} from 'vue';
  import MyTabbar from "@/components/customTabbar/tabbar.vue"
	import {
		onLoad,
		onShow
	} from "@dcloudio/uni-app"
	import Myindex from '@/components/return/index.vue';
	import {
		bindproduct,
		lindexist,
		landlist,
		plantlist,
		landproduct
	} from '@/api/api.js'
  import {farmLists, fenceHouseData} from "@/api/index.js"
  import {breedTypeLists} from "@/api/dict.js"
	import store from "@/store/index.js"
	const showPicker = ref(false)
	const showPicker1 = ref(false)
	const showModal = ref(false)
  
  

	const columns2 = reactive([])
	const range = reactive([])
  
  const compDatas = (a, b)=>{
    try{
      let c = a - b;
      return c.toFixed(2)
    }catch(e){
      return '0.00'
    }
  }
  
  const userInfo = ref({});
	onLoad(() => {
    uni.hideTabBar();
		// console.log(store.state.userInfo)
		if (!store.state.userInfo) {
			uni.redirectTo({
				url: '/pages/Login/login'
			})
		}else {
      userInfo.value = store.state.userInfo;
    }
	})
	const dataobj = ref({})
	const tdId = ref('')
	const palntId = ref('')
	// 绑定设备
	const equipmentId = ref("")
	const bindFn = () => {
		biproduct()
		showModal.value = false
	}
	// 扫码
	const scanFn = () => {
		uni.scanCode({
			success: function(res) {
				// console.log('条码类型：' + res.scanType);
				console.log('条码内容：' + res.result.split('d_')[1]);
				uni.navigateTo({
					url: '/pages/landDetail/results?sn=' + res.result.split('d_')[1]
				})
			}
		});
	}

  const goLive = () => {
  	let system = uni.getSystemInfoSync().platform;
  	uni.navigateTo({
  		url: `/pages/live/${system == 'ios'?'liveIos':'live'}?url=${video_url.value }`
  	})
  }
  const video_url = ref()
  const videoCover = ref('')
  
	const show = ref(false)
	const showLoading = ref(false)
	const columns = reactive([]);
	const houseList = reactive([]);
  const houseInfo = ref({});
	onShow(() => {
		getlist2()
    initFarmLists();
	})
	const bgc = (icon) => {
		return `/static/main/index/${icon}.png`
	}


	const getlist2 = () => {
		landproduct().then((res) => {
			if (res.code == 1) {
				range.splice(0, range.length, ...res.data.map((step, index) => {
					return {
						text: step.name,
						value: step.product_id,
					};
				}));

				// console.log(res)
			}
		})


	}
	const getlist3 = (id) => {
		plantlist({
			land_id: id
		}).then((res) => {

			if (res.code == 1) {
				columns2.splice(0)
				let arr1 = []
				arr1.splice(0, arr1.length, ...res.data.map((step, index) => {
					return {
						name: step.kind + '-' + step.id,
						id: step.id,
						status: step.status
					};
				}));
				columns2.push(arr1)

			}
		})


	}

	//关闭弹窗
	const closeModal = () => {
		showModal.value = false
		equipmentId.value = ''
	}

  const farm_lists = ref([]);
  const house_lists = ref([]);
  const farm_types_lists = ref([]);
  
  const initFarmLists = ()=>{
    breedTypeLists().then(res=>{
      farm_types_lists.value = res.data
    })
    farmLists().then(res=>{
      farm_lists.value = res.data;
      columns.splice(0, columns.length, ...res.data.map((step, index) => {
        return {
          name: step.farm_name,
          id: step.id,
        };
      }));
      if(res.data.length>0) dataobj.value = res.data[0];
      else dataobj.value = {};
      store.commit('setFarm', dataobj.value);
    }).catch(err=>{
      console.log(err);
    })
    fenceHouseData().then(res=>{
      house_lists.value = res.data;
      houseList.splice(0, houseList.length, ...res.data.map((step, index) => {
        return {
          name: step.fence_house_name,
          id: step.id,
        };
      }));
      if(houseInfo.value.id) return ; //如果已经选择过将不再重新选择
      if(res.data.length>0) houseInfo.value = res.data[0];
      else houseInfo.value = {};
      store.commit('setHouse', houseInfo.value);
      getlist();
    }).catch(err=>{
      console.log(err);
    })
  }
  
  const farm_type = computed(()=>{
    return farm_types_lists.value.find(item=>item.value==dataobj.value.farm_type)?.name || ''
  })
  
  // 监测数据
  const monitorData = ref({});
  // 数据阈值
  const monitorThreshold = ref({});
  
  //列表获取
  const getlist = () => {
    lindexist({
    	fence_house_id: houseInfo.value.id
    }).then(res=>{
      video_url.value = res.data.video_url
      monitorData.value = res.data.monitor?.datas||{};
      monitorThreshold.value = res.data.monitor?.threshold||{};
    })
  }

	//绑定产品
	const biproduct = () => {
		if (equipmentId.value) {
			bindproduct({
				land_id: dataobj.id,
				product_id: equipmentId.value
			}).then((res) => {
				if (res.code == 1) {
					uni.$u.toast(res.msg);
					// this.dataobj=res.data
					equipmentId.value = ''
				}
				console.log(res)
			})
		} else {
			uni.$u.toast('请选择产品编号');
		}

	}
	const confirm2 = (e) => {
		showPicker.value = false
		uni.navigateTo({
			url: e.value[0].route + '?id=' + palntId.value
		})
	}
	const confirm1 = (e) => {
		palntId.value = e.value[0].id
		showPicker1.value = false
		if (e.value[0].status == 2) {
			uni.$u.toast('该土地已经收获，不能进行操作');
		} else {
			showPicker.value = true
		}

	}
	const confirm = (e) => {
		// console.log(e)
		tdId.value = e.id;
    houseInfo.value = house_lists.value.find(item=>item.id==e.id);
    store.commit('setHouse', houseInfo.value);
		show.value = false
		showLoading.value = true
    getlist();
		setTimeout(() => {
			showLoading.value = false
		}, 1000)
	}
	const getNowTimeFn = () => {
		const now = new Date();
		const hour = now.getHours();
		const minute = now.getMinutes();
		const formattedHour = hour < 10 ? '0' + hour : hour;
		const formattedMinute = minute < 10 ? '0' + minute : minute;
		const currentTime = formattedHour + ':' + formattedMinute;
		return currentTime
	}

	const navgo = () => {
		uni.navigateTo({
			url: '/pages/landDetail/index?id=' + dataobj.id
		})
	}
	const palnt = (id) => {
		uni.navigateTo({
			url: '/pages/husbandryForm/sow?id=' + id
		})
	}
	const navto = (url) => {
		uni.navigateTo({
			url
		})
	}
	getNowTimeFn()
	const u = (name) => {
		return `/static/main/index/${name}.png`
	}
  const navToPlant = ()=>{
    uni.navigateTo({
      url: '/pages/plant/plant',
      success: (res) => {
        res.eventChannel.emit('setDatasItem', dataobj.value);
      }
    })
  }
</script>
<style lang="scss">
	page {
		background-color: $theme-bg-color;
	}

	.top {
		background-color: #feb048;
		position: fixed;
		z-index: 999999;
		width: 750rpx;

	}

	.coneng-detail {
		width: 478rpx;
		height: 341rpx;
		background: #FFFFFF;
		border-radius: 6px 6px 6px 6px;
		opacity: 1;
		font-size: 25rpx;
		font-family: PingFang SC, PingFang SC;
		font-weight: 400;
		color: #737373;
		display: flex;
		justify-content: center;
		align-items: center;
		text-align: center;
		margin: 70rpx auto;

		image {
			width: 280rpx;
			height: 142rpx;
			margin-bottom: 20rpx;


		}
	}

	.add-thing {
		width: 266.36rpx;
		height: 66.59rpx;
		border-radius: 42.06rpx 42.06rpx 42.06rpx 42.06rpx;
		border: 1px solid $theme-main-color;
		margin: 20rpx auto;
		line-height: 66rpx;
		text-align: center;
		color: $theme-main-color;
	}

	.Modal {
		padding: 60rpx 40rpx;
		display: flex;

		text {
			margin-top: 5rpx;
		}

		.Modal-btn {
			display: flex;
			justify-content: space-around;
			padding-bottom: 20rpx;

			.Modal-btna {
				width: 120rpx;
				height: 60rpx;
				line-height: 60rpx;
				font-size: 25rpx;
				background-color: #e5e0d8;
				text-align: center;
				border-radius: 30rpx;
				color: #fff;
			}

			.Modal-btnb {
				width: 120rpx;
				height: 60rpx;
				line-height: 60rpx;
				font-size: 25rpx;
				background-color: #feb048;
				text-align: center;
				border-radius: 30rpx;
				color: #fff;

			}
		}
	}

	.uni-select__selector {
		z-index: 9999 !important;
	}

	.nav-con {
		display: flex;
    width: 100vw;
    height: 44px;
    align-items: center;
		padding-top: 20rpx;
		padding-bottom: 10rpx;
	}

	.nav {
		display: flex;
		padding-right: 20rpx;
		padding-left: 10rpx;

	}

	.card {
		display: flex;
		justify-content: space-between;

		.changeLand {
			width: 200rpx;
			height: 70rpx;
			line-height: 70rpx;
			text-align: center;
			border-radius: 30rpx;
			background-color: $theme-main-color;
			color: white;
		}
	}

	.content {
		// min-height: 92vh;	
		padding: 0 30rpx;
		padding-top: 20rpx;
		box-sizing: border-box;


		// .land.land-info
		.land-info {
			display: flex;
			justify-content: space-between;
			margin-bottom: 20rpx;

			.land-area {
				width: 340rpx;
				height: 120rpx;
				// background-color: red;
				background-image: url('/static/main/index/tdmj.png');
				background-size: 100% 100%;
        color: #de8f20;
				padding-top: 20rpx;
				box-shadow: 1rpx 1rpx 10rpx 1rpx rgba(0, 0, 0, 0.1);
        padding-left: 30rpx;
        box-sizing: border-box;
			}

			.plant-area {
				width: 340rpx;
				height: 120rpx;
				background-image: url('/static/main/index/zzmj.png');
				background-size: 100% 100%;
        color: #cf6143;
				padding-top: 20rpx;
				box-shadow: 1rpx 1rpx 10rpx 1rpx rgba(0, 0, 0, 0.1);
        padding-left: 30rpx;
        box-sizing: border-box;
			}
		}

		.live-tit {
			display: flex;
			justify-content: space-between;
			align-items: center;
		}

		.live {
			width: 100%;
			height: 447rpx;
			margin-bottom: 20rpx;
			// background-color: red;
      position: relative;
		}


	}


	.area-check {
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;

		.area-li {
			width: 335rpx;
			height: 200rpx;
			border-radius: 10rpx;
			background-size: 100% 100%;
			margin-bottom: 20rpx;
			padding: 30rpx;
      padding-top: 45rpx;
      
      
      .standard{
        color: #43d295;
      }
      .red{
        color: #f65b5b;
      }
      .blue{
        color: #52bbf3;
      }
      .a-tips{
        font-size: 22rpx;
      }
		}
	}



	.tit {
		position: relative;
		padding-left: 20rpx;
		font-weight: bold;
		margin-bottom: 20rpx;
	}

	.tit::before {
		content: "";
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		left: 0;
		width: 3px;
		/* 左边框的宽度 */
		height: 30rpx;
		background-color: #FFB049;
	}


	// old
	.soil-monitor {
		margin-top: 40rpx;

		.head {

			// .tit {
			// 	font-size: 33.29rpx;
			// 	color: black;
			// }

			.flushed-time {
				display: flex;
				font-size: 26.29rpx;
				color: #737373;
				margin-top: 10rpx;
			}
		}

		.monitor-content {
			display: flex;
			flex-wrap: wrap;
			justify-content: space-between;

			.monitor-card {
				margin-top: 20rpx;
				background-color: white;
				padding: 30rpx 20rpx;
				border-radius: 30rpx;
				width: 332.94rpx;
				box-sizing: border-box;
				height: 212.03rpx;

				.name {
					font-size: 29.79rpx;
					display: flex;
					align-items: center;
				}

				.num {
					margin-top: 30rpx;
					color: $theme-main-color;

				}
			}

		}
	}

	.video {
		margin-top: 20rpx;
		width: 100%;
		height: 300rpx;
	}

	.empty {
		height: 100vh;
		background-color: $theme-bg-color;
		position: relative;

		.addPlant {
			width: auto;
			height: 100rpx;
			color: grey;
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);

			.addBtn {
				margin-top: 20rpx;
				width: 250rpx;
				height: 70rpx;
				border: 1px solid $theme-main-color;
				line-height: 70rpx;
				border-radius: 50rpx;
				text-align: center;
			}

		}
	}

	.empty-land {
		width: 690rpx;
		height: 135rpx;
		color: #cf5042;
		text-align: center;
		background-image: url('../../static/main/index/xz.png');
		background-size: 100% 100%;
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding-left: 200rpx;
		padding-right: 10rpx;
	}
  
</style>