<template>
	<view class="index-content-other" :style="transition?{opacity: `1`}:{opacity: `0`}" v-if="!closeit" >
		<view class="zhezhao"
			v-show="openqingling || openlahzha || openbaoxiu || openhehzha || openchaobiao ||openrizhi"
			@click="closeall()">

			<view class="rizhi-box" @click.stop v-if="openrizhi">
				<view class="rizhi-title">
					<view class="rizhi-father" v-if="typeNow==1">
						<view class="rizhi-card" :class="{ buttontarget: ruletarget===index }"
							:style="item.type==rizhivalue.type?{color:`#008FF5`}:{}" v-for="(item,index) in dianrizhi"
							:key="index" @click="changetype(item.type,index)">
							<image class="rizhi-card-img"
								:src="item.type==rizhivalue.type? item.targeturl : item.url" />
							<view class="rizhi-card-font">
								{{ item.name }}
							</view>
						</view>

					</view>
					<view class="rizhi-father" v-if="typeNow==2">
						<view class="rizhi-card" :class="{ buttontarget: ruletarget===index }"
							:style="item.type==rizhivalue.type?{color:`#008FF5`}:{}" v-for="(item,index) in shuirizhi"
							:key="index" @click="changetype(item.type,index)">
							<image class="rizhi-card-img"
								:src="item.type==rizhivalue.type? item.targeturl : item.url" />
							<view class="rizhi-card-font">
								{{ item.name }}
							</view>
						</view>

					</view>
					<view class="rizhi-father" v-if="typeNow==3">
						<view class="rizhi-card" :class="{ buttontarget: ruletarget===index }"
							:style="item.type==rizhivalue.type?{color:`#008FF5`}:{}" v-for="(item,index) in wenrizhi"
							:key="index" @click="changetype(item.type,index)">
							<image class="rizhi-card-img"
								:src="item.type==rizhivalue.type? item.targeturl : item.url" />
							<view class="rizhi-card-font">
								{{ item.name }}
							</view>
						</view>

					</view>
					<view class="rizhi-father" v-if="typeNow!=3">
						<view class="rizhi-card-right" :class="{ buttontarget: ruletarget===index+dianrizhi.length }"
							v-for="(item,index) in updown" :key="index" @click="nextpage(index)">
							<image class="rizhi-card-img" :src="item.url" />
						</view>
						
					</view>
					<view class="rizhi-father" v-else>
						<view class="rizhi-card-right" :class="{ buttontarget: ruletarget===index+2 }"
							v-for="(item,index) in updown" :key="index" @click="nextpage(index)">
							<image class="rizhi-card-img" :src="item.url" />
						</view>
						
					</view>
				</view>
				<!-- 别封装了，越封可读性越差，纯折磨自己,参数和名字都不一致 -->
				<view class="rizhi-rule" v-show="!ruletype">
					<view class="rizhi-rule-title">
						<view class="rizhi-rule-title-kuai" style="width: 23%;">
							SN
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 23%;">
							操作时间
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 23%;">
							{{ typeNow==1?`上次电表值`:`上次水表值` }}

						</view>
						<view class="rizhi-rule-title-kuai" style="width: 15%;">
							{{ typeNow==1?`电表值`:`水表值` }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 15%;">
							状态
						</view>
					</view>
					<view class="rizhi-rule-kuai" v-for="(item,index) in relrule" :key="index">
						<view class="rizhi-rule-title-kuai" style="width: 23%;">
							{{ item.address }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 23%;">
							{{ item.requestTime }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 23%;">
							{{ Number(item.requestValue).toFixed(2)  }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 15%;">
							{{ Number(item.resolveValue).toFixed(2)  }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 15%;">
							{{ item.resolveStatus }}
						</view>
					</view>
					<view class="nomessage" v-if="!relrule.length">
						<image class="nomessage-img" src="/static/nomessage.png" />
						<view class="">
							暂无信息
						</view>
					</view>
				</view>
				<view class="rizhi-rule" v-show="ruletype==1">
					<view class="rizhi-rule-title">
						<view class="rizhi-rule-title-kuai" style="width: 33%;">
							SN
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 33%;">
							操作时间
						</view>

						<view class="rizhi-rule-title-kuai" style="width: 33%;">
							状态
						</view>
					</view>
					<view class="rizhi-rule-kuai" v-for="(item,index) in relrule" :key="index">
						<view class="rizhi-rule-title-kuai" style="width: 33%;">
							{{ item.address }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 33%;">
							{{ item.requestTime }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 33%;">
							{{ item.resolveStatus }}
						</view>
					</view>
					<view class="nomessage" v-if="!relrule.length">
						<image class="nomessage-img" src="/static/nomessage.png" />
						<view class="">
							暂无信息
						</view>
					</view>
				</view>
				<view class="rizhi-rule" v-show="ruletype==3">
					<view class="rizhi-rule-title">
						<view class="rizhi-rule-title-kuai" style="width: 23%;">
							sn
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 23%;">
							{{ rizhivalue.type == '0'? `抄表时间` : `告警时间` }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 15%;">
							{{ rizhivalue.type == '0'? `温度` : `告警内容` }}

						</view>
						<view class="rizhi-rule-title-kuai" style="width: 15%;">
							{{ rizhivalue.type == '0'? `湿度` : `告警值` }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 23%;">

							{{ rizhivalue.type == '0'? `状态` : `消除告警时间` }}
						</view>
					</view>
					<view class="rizhi-rule-kuai" v-for="(item,index) in relrule" :key="index">
						<view class="rizhi-rule-title-kuai" style="width: 23%;">
							{{ item.sn }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 23%;">
							{{ rizhivalue.type == '0'? item.optTime : item.wrDate }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 15%;">
							{{ rizhivalue.type == '0'? item.temperature : item.wrContent }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 15%;">
							{{ rizhivalue.type == '0'? item.humidity : item.wrData }}
						</view>
						<view class="rizhi-rule-title-kuai" style="width: 23%;">
							{{ rizhivalue.type == '0'? (item.status=='0'?`抄表成功`:`抄表失败`) : item.clearDate }}
						</view>
					</view>
					<view class="nomessage" v-if="!relrule.length">
						<image class="nomessage-img" src="/static/nomessage.png" />
						<view class="">
							暂无信息
						</view>
					</view>
				</view>
			</view>
			<view class="neuro-box" @click.stop v-if="openqingling">
				<view class="button-father">
					<view :class="!buttonposition?`buttontarget button`:`button-white` " @click="openqingling=false">
						取消</view>
					<view :class="buttonposition?`buttontarget button`:`button-white` " @click="qingling()">确定</view>
				</view>

				<view class="card-font">
					确定要清零吗
				</view>
			</view>
			<view class="neuro-box-chaobiao" :style="{ top:typeNow==3?`560rpx`:`650rpx`  }" @click.stop v-if="openchaobiao">
				<view class="button-father">
					<view :class="!buttonposition?`buttontarget button`:`button-white` " @click="openchaobiao=false">
						取消</view>
					<view :class="buttonposition?`buttontarget button`:`button-white` " @click="chaobiao()">确定</view>
				</view>

				<view class="card-font">
					确定要抄表吗
				</view>
			</view>
			<view class="neuro-box-lazha" @click.stop v-if="openlahzha">
				<view class="button-father">
					<view :class="!buttonposition?`buttontarget button`:`button-white` " @click="openlahzha=false">取消
					</view>
					<view :class="buttonposition?`buttontarget button`:`button-white` " @click="kongzha(`10`)">确定</view>
				</view>

				<view class="card-font">
					确定要{{ typeNow===1?'拉闸' : typeNow===2?'开阀' :"" }}吗
				</view>
			</view>
			<view class="neuro-box-baoxiu" :style="{ top:typeNow==3?`560rpx`:`650rpx`  }" @click.stop v-if="openbaoxiu">
				<view class="button-father">
					<view :class="!buttonposition?`buttontarget button`:`button-white` " @click="openbaoxiu=false">取消
					</view>
					<view :class="buttonposition?`buttontarget button`:`button-white` " @click="baoxiu()">确定</view>
				</view>

				<view class="card-font">
					确定要报修吗
				</view>
			</view>
			<view class="neuro-box-lazha" @click.stop v-if="openhehzha">
				<view class="button-father">
					<view :class="!buttonposition?`buttontarget button`:`button-white` " @click="openhehzha=false">取消
					</view>
					<view :class="buttonposition?`buttontarget button`:`button-white` " @click="kongzha(`11`)">确定</view>
				</view>

				<view class="card-font">
					确定要{{ typeNow===1?'合闸' : typeNow===2?'关阀' :"" }}吗
				</view>
			</view>

		</view>
		<view class="right-container-title-nav">
			<text style="margin-left: 30rpx;">
				NUID：{{ uni.getStorageSync('nuId')}}
			</text>
			<text class="new-weight">
				{{ uni.getStorageSync('nuName')}}
			</text>
			<view class="right-icons">
				<view class="right-container-tem">
					<image class="right-container-tem-img" src="/static/index/newindex/wendu/0.png" />
					<text class="right-container-tem-text">{{ wendushow.temperature? wendushow.temperature: '-' }}°C</text>
					<image class="right-container-tem-img" src="/static/index/newindex/wendu/1.png" />
					<text class="right-container-tem-text">{{ wendushow.humidity? wendushow.humidity: '-' }}%</text>
				</view>

				<!-- <image class="right-icons-img" :src="`/static/index/undericons/man.png`" />
				<view>{{name}}</view> -->
			</view>
		</view>
		<view class="scroll-vi">
			<view class="zhezhao-left"></view>
			<view class="zhezhao-right"></view>
			<scroll-view scroll-x="true" style="width: 1800rpx;height: 100%;" :scroll-left="scrollLeft">
				<view style="display: flex;align-items: center;">
					<view style="width: 100rpx;"></view>
					<view v-for="(item,index) in allArray" :key="index"
						:class="{zerotarget: movetype===0 && zeroIndex===index}" class="menu"
						:style="{backgroundColor: movetype===0 && zeroIndex===index?`#ddf0ff`:``}"
						@click="typeNowtarget=index;zeroIndex=index;clean();movetype=0;changeallmessage()">

						<donghua :links="item.donghuapian" width="55rpx" height="55rpx" :playing="typeNowtarget===index" />
						<text class="menu-font" :class="{ zoom: typeNowtarget===index }"
							:style="typeNowtarget===index?{color:`#008FF5`}:{}">
							{{item.lookName}}
						</text>
					</view>
					<view style="width: 100rpx;">

					</view>
				</view>
			</scroll-view>
		</view>

		<view class="index-father" v-show="typeNow===0">

			<view class="photo-father">
				<view class="juzhong" style="margin-left: -50rpx;">
					<donghua :width="`1500rpx`" :height="`1000rpx`" :links="blueArray" :playing="photoplay" :loop="true"
						:interval="120" />
				</view>

				<view class="weight-time" style="font-size: 55rpx;">
					NUID：{{rightmessage.nuId?rightmessage.nuId:''}}
				</view>
				<view class="gray-bgc">
					{{rightmessage.nuName?rightmessage.nuName:''}}
				</view>
				<image class="big-img-shexiang" :src="`/static/index/newindex/wendu/6.png`" />
				<view class="bottom-father">
					<view class="status-button">
						{{rightmessage.deviceStatus=='1'?'在线':'离线'}}

					</view>
					<view class="status-font">
						SN：{{rightmessage.sn}}
					</view>
					<view class="status-time">
						设备名称：{{rightmessage.deviceName?rightmessage.deviceName:''}}
					</view>
				</view>

			</view>

			<view class="right-menu">
				<view v-for="(item,index) in rightArray" :key="index" class="buttons-father"
					@click="clickRightMenu(index)">
					<view class="left-ball" :class="{firsttarget: movetype===2 && zeroIndex===index}"
						:style="{backgroundColor: movetype===2 && zeroIndex===index?`#ddf0ff`:``}">
						<image v-show="!index" style="width: 50rpx;height: 50rpx;"
							src="/static/index/newindex/wendu/yulan.png" />
						<donghua v-show="index" :width="`50rpx`" :height="`50rpx`" :links="item"
							style="width: 50rpx;height: 50rpx;" :playing="movetype===2 && zeroIndex===index"
							:loop="false" :interval="120" />
					</view>
					<view style="position: relative;">
						{{ shexiangbuttonName[index] }}
					</view>
				</view>
			</view>
		</view>

		<view class="index-father" v-show="typeNow===1">

			<view class="photo-father">
				<view class="juzhong" style="margin-left: -50rpx;">
					<donghua :width="`1500rpx`" :height="`1000rpx`" :links="blueArray" :playing="photoplay" :loop="true"
						:interval="120" />
				</view>
				<view class="donghua-number">
					{{ randomValue  }}
				</view>
				<view class="weight-time">
					{{indexmessage.eleValue?indexmessage.eleValue:'0.00'}}
					<view class="big-font-right">
						<view class="font-top">
							KWH
						</view>

						<view class="right-kuai">
							用电量
						</view>
					</view>
				</view>
				<image class="big-img" :src="`/static/index/newindex/wendu/3.png`" />
				<view class="bottom-father">
					<view class="status-button">
						{{indexmessage.relayState=='1'?'合闸':'拉闸'}}
					</view>
					<view class="status-font">
						SN：{{indexmessage.address}}
					</view>
					<view class="status-time">
						上次抄表时间：{{indexmessage.readTime?indexmessage.readTime:'未抄表'}}
					</view>
				</view>

			</view>
			<view class="left-menu">
				<view v-for="(item,index) in leftArray" :key="index" class="buttons-father"
					@click="clickLeftMenu(index)">
					<view class="left-ball" :class="{firsttarget: movetype===1 && zeroIndex===index && !openrizhi}"
						:style="{backgroundColor: movetype===1 && zeroIndex===index && !openrizhi?`#ddf0ff`:``}">
						<donghua :width="`50rpx`" :height="`50rpx`" :links="item" style="width: 50rpx;height: 50rpx;"
							:playing="movetype===1 && zeroIndex===index" :loop="false" :interval="120" />
					</view>
					<view class="">
						{{ buttonName[index] }}
					</view>
				</view>
			</view>
			<view class="right-menu">
				<view v-for="(item,index) in rightArray" :key="index" class="buttons-father"
					@click="clickRightMenu(index)">
					<view class="left-ball" :class="{firsttarget: movetype===2 && zeroIndex===index}"
						:style="{backgroundColor: movetype===2 && zeroIndex===index?`#ddf0ff`:``}">
						<donghua :width="`50rpx`" :height="`50rpx`" :links="item" style="width: 50rpx;height: 50rpx;"
							:playing="movetype===2 && zeroIndex===index" :loop="false" :interval="120" />
					</view>
					<view style="position: relative;">
						{{ index==1 ? buttonName[5] : indexmessage.relayState === '1'? buttonName[3] : buttonName[4]}}

						<!-- <image v-if="!index" class="biga-img" src="/static/index/newindex/leftmenu/biga.png" /> -->
					</view>
				</view>
			</view>
		</view>

		<view class="index-father" v-show="typeNow===2">
			<view class="photo-father">
				<view class="juzhong" style="margin-left: -50rpx;">
					<donghua :width="`1500rpx`" :height="`1000rpx`" :links="blueArray" :playing="photoplay" :loop="true"
						:interval="120" />
				</view>
				<view class="water-donghua-number">
					{{ randomValue  }}
				</view>
				<view class="weight-time">
					{{watermessage.waterValue?watermessage.waterValue:'0.00'}}
					<view class="big-font-right">
						<view class="font-top">
							m³
						</view>

						<view class="right-kuai">
							用水量
						</view>
					</view>
				</view>
				<image class="big-img" :src="`/static/index/newindex/wendu/4.png`" />
				<view class="bottom-father">
					<view class="status-button">
						{{watermessage.relayState=='1'?'关阀':'开阀'}}
					</view>
					<view class="status-font">
						SN：{{watermessage.address}}
					</view>
					<view class="status-time">
						上次抄表时间：{{watermessage.readTime?watermessage.readTime:'未抄表'}}
					</view>
				</view>

			</view>
			<view class="left-menu">
				<view v-for="(item,index) in leftArray" :key="index" class="buttons-father"
					@click="clickLeftMenu(index)">
					<view class="left-ball" :class="{firsttarget: movetype===1 && zeroIndex===index && !openrizhi}"
						:style="{backgroundColor: movetype===1 && zeroIndex===index && !openrizhi?`#ddf0ff`:``}">
						<donghua :width="`50rpx`" :height="`50rpx`" :links="item" style="width: 50rpx;height: 50rpx;"
							:playing="movetype===1 && zeroIndex===index" :loop="false" :interval="120" />
					</view>
					<view class="">
						{{ waterbuttonName[index] }}
					</view>
				</view>
			</view>
			<view class="right-menu">
				<view v-for="(item,index) in rightArray" :key="index" class="buttons-father"
					@click="clickRightMenu(index)">
					<view class="left-ball" :class="{firsttarget: movetype===2 && zeroIndex===index}"
						:style="{backgroundColor: movetype===2 && zeroIndex===index?`#ddf0ff`:``}">
						<donghua :width="`50rpx`" :height="`50rpx`" :links="item" style="width: 50rpx;height: 50rpx;"
							:playing="movetype===2 && zeroIndex===index" :loop="false" :interval="120" />
					</view>
					<view style="position: relative;">
						{{ index==1 ? waterbuttonName[5] : watermessage.relayState === '1'? waterbuttonName[3] : waterbuttonName[4]}}

						<!-- <image v-if="!index" class="biga-img" src="/static/index/newindex/leftmenu/biga.png" /> -->
					</view>
				</view>
			</view>
		</view>

		<view class="index-father" v-show="typeNow===3">
			<view class="photo-father">
				<view class="juzhong" style="margin-left: -50rpx;">
					<donghua :width="`1500rpx`" :height="`1000rpx`" :links="blueArray" :playing="photoplay" :loop="true"
						:interval="120" />
				</view>
				<view class="wendu-juzhong">
					<view class="wendu-top">
						<view class="wendu-top-left">
							{{ randomValue?splitParts(randomValue).intPart:'-' }}
						</view>
						<view class="wendu-top-right">
							<view class="">
								℃
							</view>
							<view class="">
								.{{ randomValue?splitParts(randomValue).fracDigits:'-' }}
							</view>
						</view>
					</view>
					<view class="wendu-heng"></view>
					<view class="wendu-bottom">
						{{tempmessage.humidity?tempmessage.humidity:'-'}} %
					</view>

				</view>
				<view class="weight-time">
					{{tempmessage.temperature?tempmessage.temperature:'-'}}
					<view class="big-font-right">
						<view class="font-top">
							℃
						</view>

						<view class="right-kuai">
							温度
						</view>
					</view>
					<view class="zhongjian-shu"></view>
					{{tempmessage.humidity?tempmessage.humidity:'-'}}
					<view class="big-font-right">
						<view class="font-top">
							%
						</view>

						<view class="right-kuai">
							湿度
						</view>
					</view>
				</view>
				<image class="big-img" :src="`/static/index/newindex/wendu/5.png`" />
				<view class="bottom-father">
					<view class="status-button">
						{{ tempmessage.maintainStatus == 0 ? '正常' : tempmessage.maintainStatus == 1 ? '维修中' : tempmessage.maintainStatus == 2 ? '报废' : '' }}
					</view>
					<view class="status-font">
						SN：{{tempmessage.sn}}
					</view>
					<view class="status-time">
						上次抄表时间：{{tempmessage.reportingTime?tempmessage.reportingTime:'未抄表'}}
					</view>
				</view>

			</view>
			<view class="left-menu">
				<view v-for="(item,index) in wenduleftArray" :key="index" class="buttons-father"
					@click="clickLeftMenu(index)">
					<view class="left-ball" :class="{firsttarget: movetype===1 && zeroIndex===index && !openrizhi}"
						:style="{backgroundColor: movetype===1 && zeroIndex===index && !openrizhi?`#ddf0ff`:``}">
						<donghua :width="`50rpx`" :height="`50rpx`" :links="item" style="width: 50rpx;height: 50rpx;"
							:playing="movetype===1 && zeroIndex===index" :loop="false" :interval="120" />
					</view>
					<view class="">
						{{ wendubuttonName[index] }}
					</view>
				</view>
			</view>
			<view class="right-menu">

				<view v-for="(item,index) in wendurightArray" :key="index" class="buttons-father"
					@click="clickRightMenu(index)">
					<view class="left-ball" :class="{firsttarget: movetype===2 && zeroIndex===index}"
						:style="{backgroundColor: movetype===2 && zeroIndex===index?`#ddf0ff`:``}">
						<donghua :width="`50rpx`" :height="`50rpx`" :links="item" style="width: 50rpx;height: 50rpx;"
							:playing="movetype===2 && zeroIndex===index" :loop="false" :interval="120" />
					</view>
					<view style="position: relative;">
						{{ index==1 ? wendubuttonName[1] :  wendubuttonName[2]}}

						<!-- <image v-if="!index" class="biga-img" src="/static/index/newindex/leftmenu/biga.png" /> -->
					</view>
				</view>
			</view>
		</view>
		<severcard ></severcard>
	</view>
</template>

<script setup lang="ts">
	import { ref, onMounted, onBeforeUnmount, computed, nextTick,  watch, onUnmounted } from 'vue';
	import {
		electricityMeterlist, electricityMetereleReset, electricityMetereleControl, electricityMeterbaoxiu, electricityMeteleRead,
		waterwaterReset, waterwaterControl, waterbaoxiu, waterwaterRead, humidDevicebaoxiu, updateDeviceRealTime, cameraInfobaoxiu,
		electricityMeterListArray, requestLogList, humidDevicejgList, humidDevicejgwarn
	} from "./api.js"
	import { movedirection } from '@/pages/watch/api/lunpan.js'
	import joysticknew from '@/component/public/newgame/joysticknew.vue';

	const props = defineProps({
		isShow: {
			type: Boolean,
			required: true,
		},
	});
	const movetype = ref(-1);

	const buttonposition = ref(false);
	const base = genPaths(
		'/static/index/newindex/curve',
		'curve_',
		9,
		'png',
		1,
		false
	)
	const blueArray = ref([
		...base,
		...[...base].reverse()   // 先拷贝一份再反转，避免修改原 base
	])

	const updown = ref([
		{
			url: '/static/index/newindex/leftmenu/up.png'
		},
		{
			url: '/static/index/newindex/leftmenu/down.png'
		},
	])

	const dianrizhi = ref([
		{
			name: "抄表",
			type: "3",
			url: "/static/index/newindex/leftmenu/read1.png",
			targeturl: "/static/index/newindex/leftmenu/read8.png"
		},
		{
			name: "清零",
			type: "9",
			url: "/static/index/newindex/leftmenu/bezero.png",
			targeturl: "/static/index/newindex/leftmenu/bezerotarget.png",
		},
		{
			name: "电表拉闸",
			type: "10",
			url: "/static/index/newindex/rightmenu/closes0.png",
			targeturl: "/static/index/newindex/rightmenu/closes11.png"
		},
		{
			name: "电表合闸",
			type: "11",
			url: "/static/index/newindex/rightmenu/switch0.png",
			targeturl: "/static/index/newindex/rightmenu/switch6.png"
		},
	])

	const shuirizhi = ref([
		{
			name: "抄表",
			type: "42",
			url: "/static/index/newindex/leftmenu/read1.png",
			targeturl: "/static/index/newindex/leftmenu/read8.png"
		},
		{
			name: "清零",
			type: "49",
			url: "/static/index/newindex/leftmenu/bezero.png",
			targeturl: "/static/index/newindex/leftmenu/bezerotarget.png",
		},
		{
			name: "开阀",
			type: "43",
			url: "/static/index/newindex/rightmenu/closes0.png",
			targeturl: "/static/index/newindex/rightmenu/closes11.png"
		},
		{
			name: "关阀",
			type: "53",
			url: "/static/index/newindex/rightmenu/switch0.png",
			targeturl: "/static/index/newindex/rightmenu/switch6.png"
		},
	])
	const wenrizhi = ref([
		{
			name: "抄表",
			type: "0",
			url: "/static/index/newindex/leftmenu/read1.png",
			targeturl: "/static/index/newindex/leftmenu/read8.png"
		},
		{
			name: "告警",
			type: "1",
			url: "/static/index/newindex/rightmenu/service0.png",
			targeturl: "/static/index/newindex/rightmenu/service4.png",
		},

	])
	// 绑定到 scroll-view 的 scroll-left
	const scrollLeft = ref(0)

	// 监听 isMain 的变化，但只在 isShow 为 true 时响应

	const zeroIndex = ref(-1)
	const emit = defineEmits(['back', 'cleanmain', `canback`])
	const savetopindex = ref(0)
	const removeTimers = new Map<number, ReturnType<typeof setTimeout>>();
	onBeforeUnmount(() => {
		for (const t of removeTimers.values()) {
			clearTimeout(t)
		}
		removeTimers.clear()
	})

	const typeNow = ref(-1);
	const typeNowtarget = ref(0);
	const photoplay = ref(false)
	const downArray = ref()
	const scrollTop = ref(0);

	const openqingling = ref(false);
	const openlahzha = ref(false);
	const openhehzha = ref(false);
	const openbaoxiu = ref(false);
	const openchaobiao = ref(false);
	const openrizhi = ref(false);

	const rizhivalue = ref({
		pageNo: 1,
		pageSize: 8,
		cid: 0,
		type: "",
		sn: ""
	})
	const relrule = ref([]);
	const getrulevalue = () => {
		rizhivalue.value.pageNo = 1;
		relrule.value = []
		ruletarget.value = 0;
		ruletype.value = 0;
		if (typeNow.value == 1) {
			rizhivalue.value.cid = indexmessage.value.cid;
			rizhivalue.value.type = dianrizhi.value[0].type;
			electricityMeterListArray(rizhivalue.value).then((element : any) => {
				if (element.code == 200) {
					relrule.value = element.result.records;
					// console.log("????",relrule.value)
					openrizhi.value = true
				}
			})
		}
		if (typeNow.value == 2) {
			rizhivalue.value.cid = watermessage.value.cid;
			rizhivalue.value.type = shuirizhi.value[0].type;
			electricityMeterListArray(rizhivalue.value).then((element : any) => {
				if (element.code == 200) {
					relrule.value = element.result.records;
					openrizhi.value = true
				}
			})
		}
		if (typeNow.value == 3) {
			rizhivalue.value.sn = tempmessage.value.sn;
			rizhivalue.value.type = '0';
			ruletype.value = 3
			humidDevicejgList(rizhivalue.value).then((element : any) => {
				if (element.code == 200) {
					relrule.value = element.result.records
					openrizhi.value = true
				}
			})
		}
	}
	const ruletarget = ref(0);
	const ruletype = ref(0);
	const changetype = (type : string, index : number) => {

		if (rizhivalue.value.type != type) {

			if (typeNow.value == 3) {

				ruletarget.value = index
				rizhivalue.value.pageNo = 1;
				relrule.value = [];
				rizhivalue.value.type = type;
				if (type == '0') {
					humidDevicejgList(rizhivalue.value).then((element : any) => {
						if (element.code == 200) {
							relrule.value = element.result.records
						}
					})
				} else {
					humidDevicejgwarn(rizhivalue.value).then((element : any) => {
						if (element.code == 200) {
							relrule.value = element.result.records
							console.log("aaaa", relrule.value)
						}
					})
				}
				return
			}

			if (index > 1) {
				ruletype.value = 1
			} else {
				ruletype.value = 0
			}
			ruletarget.value = index
			rizhivalue.value.pageNo = 1;
			relrule.value = [];
			rizhivalue.value.type = type;
			electricityMeterListArray(rizhivalue.value).then((element : any) => {
				if (element.code == 200) {
					relrule.value = element.result.records
				}
			})
		}
	}
	const nextpage = (index : number) => {

		if (typeNow.value == 3) {
			ruletarget.value = index + 2;
			if (index) {
				if (relrule.value.length == 8) {
					rizhivalue.value.pageNo++

					if (rizhivalue.value.type == '0') {
						humidDevicejgList(rizhivalue.value).then((element : any) => {
							if (element.code == 200) {
								relrule.value = element.result.records
							}
						})
					} else {
						humidDevicejgwarn(rizhivalue.value).then((element : any) => {
							if (element.code == 200) {
								relrule.value = element.result.records
								console.log("aaaa", relrule.value)
							}
						})
					}
				}

			} else {
				if (rizhivalue.value.pageNo > 1) {
					rizhivalue.value.pageNo--
					relrule.value = []
					if (rizhivalue.value.type == '0') {
						humidDevicejgList(rizhivalue.value).then((element : any) => {
							if (element.code == 200) {
								relrule.value = element.result.records
							}
						})
					} else {
						humidDevicejgwarn(rizhivalue.value).then((element : any) => {
							if (element.code == 200) {
								relrule.value = element.result.records
							}
						})
					}
				}
			}
			return
		}


		ruletarget.value = index + dianrizhi.value.length
		if (index) {
			if (relrule.value.length == 8) {
				rizhivalue.value.pageNo++
				electricityMeterListArray(rizhivalue.value).then((element : any) => {
					if (element.code == 200) {
						relrule.value = element.result.records
					}
				})
			}

		} else {
			if (rizhivalue.value.pageNo > 1) {
				rizhivalue.value.pageNo--
				relrule.value = []
				electricityMeterListArray(rizhivalue.value).then((element : any) => {
					if (element.code == 200) {
						relrule.value = element.result.records
					}
				})
			}
		}

	}
	const qingling = () => {
		closeall()
		if (typeNow.value == 1) {
			electricityMetereleReset(indexmessage.value.cid, indexmessage.value.address).then((res : any) => {
				uni.showToast({
					title: res.message,
					icon: 'none',  // 'success' | 'none' （小程序还有 'loading'）
					duration: 1500,
					mask: false
				})
				setTimeout(() => {
					init()
				}, 4000)
			})
		} else if (typeNow.value == 2) {
			waterwaterReset(watermessage.value.cid, watermessage.value.address).then((res : any) => {
				uni.showToast({
					title: res.message,
					icon: 'none',  // 'success' | 'none' （小程序还有 'loading'）
					duration: 1500,
					mask: false
				})
				setTimeout(() => {
					init()
				}, 4000)
			})
		}

	}

	const kongzha = (type : string) => {
		closeall()
		if (typeNow.value == 1) {
			electricityMetereleControl(indexmessage.value.cid, indexmessage.value.address, type).then((res : any) => {
				uni.showToast({
					title: res.message,
					icon: 'none',  // 'success' | 'none' （小程序还有 'loading'）
					duration: 1500,
					mask: false
				})
				setTimeout(() => {
					init()
				}, 4000)
			})
		} else if (typeNow.value == 2) {
			if (type == '10') {
				type = '43'
			} else {
				type = '53'
			}
			waterwaterControl(watermessage.value.cid, watermessage.value.address, type).then((res : any) => {
				uni.showToast({
					title: res.message,
					icon: 'none',  // 'success' | 'none' （小程序还有 'loading'）
					duration: 1500,
					mask: false
				})
				setTimeout(() => {
					init()
				}, 4000)
			})
		}

	}

	const chaobiao = () => {
		closeall();
	
		if (typeNow.value == 1) {
			electricityMeteleRead(indexmessage.value.cid, indexmessage.value.address).then((res : any) => {
				uni.showToast({
					title: res.message,
					icon: 'none',  // 'success' | 'none' （小程序还有 'loading'）
					duration: 1500,
					mask: false
				})
				setTimeout(() => {
					init()
				}, 4000)
			})
		} else if (typeNow.value == 2) {
			waterwaterRead(watermessage.value.cid, watermessage.value.address).then((res : any) => {
				uni.showToast({
					title: res.message,
					icon: 'none',  // 'success' | 'none' （小程序还有 'loading'）
					duration: 1500,
					mask: false
				})
				setTimeout(() => {
					init()
				}, 4000)
			})
		} else if (typeNow.value == 3) {
			updateDeviceRealTime(tempmessage.value.sn).then((res : any) => {
				uni.showToast({
					title: res.message,
					icon: 'none',  // 'success' | 'none' （小程序还有 'loading'）
					duration: 1500,
					mask: false
				})
				setTimeout(() => {
					init()
				}, 4000)
			})
		}

	}

	const baoxiu = () => {
		closeall()
		if (typeNow.value == 1) {
			electricityMeterbaoxiu(indexmessage.value.id).then((res : any) => {
				uni.showToast({
					title: res.message,
					icon: 'none',  // 'success' | 'none' （小程序还有 'loading'）
					duration: 1500,
					mask: false
				})

				setTimeout(() => {
					init()
				}, 4000)
			})
		} else if (typeNow.value == 2) {
			waterbaoxiu(watermessage.value.id).then((res : any) => {
				uni.showToast({
					title: res.message,
					icon: 'none',  // 'success' | 'none' （小程序还有 'loading'）
					duration: 1500,
					mask: false
				})
				setTimeout(() => {
					init()
				}, 4000)

			})
		} else if (typeNow.value == 3) {
			humidDevicebaoxiu(tempmessage.value.id).then((res : any) => {
				uni.showToast({
					title: res.message,
					icon: 'none',  // 'success' | 'none' （小程序还有 'loading'）
					duration: 1500,
					mask: false
				})
				// console.log("!1", res)
				setTimeout(() => {
					init()
				}, 4000)

			})
		} else if (typeNow.value == 0) {
			cameraInfobaoxiu(tempmessage.value.id).then((res : any) => {
				uni.showToast({
					title: res.message,
					icon: 'none',  // 'success' | 'none' （小程序还有 'loading'）
					duration: 1500,
					mask: false
				})
				// console.log("!1", res)
				setTimeout(() => {
					init()
				}, 4000)

			})
		}

	}

	const closeall = () => {
		openqingling.value = false;
		openlahzha.value = false;
		openbaoxiu.value = false;
		openhehzha.value = false;
		openchaobiao.value = false;
		openrizhi.value = false;
		buttonposition.value = false;

		emit("canback", false)
	}

	const clickLeftMenu = (index : number) => {
		zeroIndex.value = index;
		clean();
		movetype.value = 1;
		if (typeNow.value != 3) {
			if (movetype.value === 1 && !index) {
				openqingling.value = true;
				emit("canback", true)
			} else if (index == 1) {
				openchaobiao.value = true;
				emit("canback", true)
			} else if (index == 2) {
				// openrizhi.value = true;
				getrulevalue()
				emit("canback", true)
			}
		} else {
			if (!index) {
				openchaobiao.value = true;
				emit("canback", true)
			} else if (index == 1) {
				// openrizhi.value = true;
				getrulevalue()
				emit("canback", true)
			}

		}

	}

	const clickRightMenu = (index : number) => {
		if (!typeNow.value && !index) {
			uni.navigateTo({
				url: "/pages/watch/full"
			})
			return
		}
		zeroIndex.value = index;
		clean();
		movetype.value = 2;
		if (typeNow.value != 3) {
			if (!index) {
				if (indexmessage.value.relayState === '1') {
					openlahzha.value = true
					emit("canback", true)
				} else {
					openhehzha.value = true
					emit("canback", true)
				}
			} else {
				openbaoxiu.value = true;
				emit("canback", true)
			}
		} else {
			openbaoxiu.value = true;
			emit("canback", true)
		}
	}

	function onScroll(e) {
		scrollTop.value = e.detail.scrollTop
	}
	// 通用的生成函数
	function genPaths(base, prefix, count, ext = 'png', startIndex = 0, pad = false) {
		return Array.from({ length: count }, (_, i) => {
			const idx = pad
				? String(i + startIndex).padStart(2, '0')
				: i + startIndex
			return `${base}/${prefix}${idx}.${ext}`
		})
	}

	const leftArray = ref([genPaths(
		'/static/index/newindex/leftmenu',
		'zero',
		11,     // 张数
		'png',
		0,     // 起始索引
		false  // 不补零
	),
	genPaths(
		'/static/index/newindex/leftmenu',
		'read',
		8,     // 张数
		'png',
		1,     // 起始索引
		false  // 不补零
	),
	genPaths(
		'/static/index/newindex/leftmenu',
		'Log',
		10,     // 张数
		'png',
		0,     // 起始索引
		false  // 不补零
	)],
	)
	const wenduleftArray = ref([
		genPaths(
			'/static/index/newindex/leftmenu',
			'read',
			8,     // 张数
			'png',
			1,     // 起始索引
			false  // 不补零
		),
		genPaths(
			'/static/index/newindex/leftmenu',
			'Log',
			10,     // 张数
			'png',
			0,     // 起始索引
			false  // 不补零
		)],
	)
	const wendurightArray = ref([
		genPaths(
			'/static/index/newindex/rightmenu',
			'service',
			5,     // 张数
			'png',
			0,     // 起始索引
			false  // 不补零
		)],
	)
	const rightArray = ref([])
	const waterrightArray = ref([])
	const mobanrightArray = ref([genPaths(
		'/static/index/newindex/rightmenu',
		'closes',
		12,     // 张数
		'png',
		0,     // 起始索引
		false  // 不补零
	),
	genPaths(
		'/static/index/newindex/rightmenu',
		'switch',
		7,     // 张数
		'png',
		0,     // 起始索引
		false  // 不补零
	),
	genPaths(
		'/static/index/newindex/rightmenu',
		'service',
		5,     // 张数
		'png',
		0,     // 起始索引
		false  // 不补零
	)],
	)
	const buttonName = ref(['清零', "抄表", "日志", "拉闸", "合闸", "报修"])
	const shexiangbuttonName = ref(["预览", "报修"])
	const waterbuttonName = ref(['清零', "抄表", "日志", "开阀", "关阀", "报修"])
	const wendubuttonName = ref(["抄表", "日志", "报修"])
	const typeArray = ref([
		{
			url: genPaths(
				'/static/index/newindex/shebei',
				'Camera',
				9,    // 张数
				'png',
				0,     // 起始索引为 1
				false  // 不补零
			), name: '摄像头'
		},
		{

			url: genPaths(
				'/static/index/newindex/shebei',
				'cable',
				10,    // 张数
				'png',
				0,     // 起始索引为 1
				false  // 不补零
			), name: '智能电表'

		},
		{

			url: genPaths(
				'/static/index/newindex/shebei',
				'river',
				13,    // 张数
				'png',
				0,     // 起始索引为 1
				false  // 不补零
			), name: '智能水表'

		},
		{

			url: genPaths(
				'/static/index/newindex/shebei',
				'humiture',
				9,    // 张数
				'png',
				0,     // 起始索引为 1
				false  // 不补零
			), name: '温湿度计'

		},

	])

	// 使用watch监听isShow变化
	const transition = ref(false);
	//取小数点前后
	function splitParts(num) {
		const s = String(num);
		if (!s.includes('.')) return { intPart: s, fracDigits: '' }; // 没有小数点
		const [intPart, fracDigits] = s.split('.');
		return { intPart, fracDigits };
	}
	watch(
		() => props.isShow,
		(newVal, oldVal) => {
			// 当旧值为false，新值为true时延迟0.2秒调用方法
			if (!oldVal && newVal) {
				transition.value = false;
				// console.log("????",transition.value)
				setTimeout(() => {
					transition.value = true;
				}, 50)
			} else {
				transition.value = false;
			}

		}
	)
	const name = ref("");

	const randomValue = ref(0)
	let startValue = 0
	let targetValue = 0
	let startTime = 0
	let duration = 300
	let animating = false

	// 兼容处理：performance.now() 不存在时用 Date.now()
	function nowTime() {
		return (typeof performance !== 'undefined' && performance.now)
			? performance.now()
			: Date.now()
	}

	function rollTo(target) {
		animating = false // 立即停止上一个动画
		startValue = randomValue.value
		targetValue = target
		startTime = nowTime()
		duration = 300
		animating = true
		requestAnimationFrameCompat(animate)
	}

	function animate() {
		if (!animating) return
		const now = nowTime()
		const elapsed = now - startTime
		let progress = elapsed / duration
		if (progress > 1) progress = 1

		// 缓动函数 easeOutCubic
		const eased = 1 - Math.pow(1 - progress, 3)
		randomValue.value = Number((startValue + (targetValue - startValue) * eased).toFixed(2))

		if (progress < 1) {
			requestAnimationFrameCompat(animate)
		} else {
			animating = false
		}
	}

	// 通用 requestAnimationFrame 兼容
	function requestAnimationFrameCompat(cb) {
		if (typeof requestAnimationFrame !== 'undefined') {
			requestAnimationFrame(cb)
		} else {
			// UniApp 里一般没有 raf，用 setTimeout 模拟
			setTimeout(cb, 16) // 约 60fps
		}
	}



	const indexmessage = ref({
		eleValue: "",
		address: "",
		readTime: "",
		relayState: `0`,
		cid: 0,
		id: 0,
	})

	const watermessage = ref({
		waterValue: "",
		address: "",
		readTime: "",
		relayState: `0`,
		cid: 0,
		id: 0,
	})

	const tempmessage = ref({
		temperature: "",
		humidity: "",
		maintainStatus: "",
		sn: "",
		reportingTime: "",
		id: 0,
	})

	onMounted(() => {
		name.value = uni.getStorageSync('realname')
		typeNow.value = 0;
		photoplay.value = true;
		init();
		yulan();
		transition.value = false;
		setTimeout(() => {
			transition.value = true;
		}, 50)
	})

	const changeallmessage = () => {
		uni.$emit('smallmonitor:isshow', false)
		typeNow.value = allArray.value[typeNowtarget.value]?.typeNumber ;
		if (typeNow.value === 1) {
			indexmessage.value = allArray.value[typeNowtarget.value]
			const firstTarget = indexmessage.value.eleValue;
			if (indexmessage.value.relayState === '1') {
				rightArray.value = [mobanrightArray.value[1], mobanrightArray.value[2]]
			} else {
				rightArray.value = [mobanrightArray.value[0], mobanrightArray.value[2]]
			}

			rollTo(Number(firstTarget))
		} else if (typeNow.value === 2) {
			watermessage.value = allArray.value[typeNowtarget.value]
			const secondTarget = watermessage.value.waterValue
			if (watermessage.value.relayState === '1') {
				waterrightArray.value = [mobanrightArray.value[1], mobanrightArray.value[2]]
			} else {
				waterrightArray.value = [mobanrightArray.value[0], mobanrightArray.value[2]]
			}
			rollTo(Number(secondTarget))
		} else if (typeNow.value === 3) {
			tempmessage.value = allArray.value[typeNowtarget.value]
			console.log("啥啊",tempmessage.value)
			const thirdTarget = tempmessage.value.temperature
			
			rollTo(Number(thirdTarget))
		}
		else if (!typeNow.value) {
			rightmessage.value = allArray.value[typeNowtarget.value]
			rightArray.value = [mobanrightArray.value[0], mobanrightArray.value[2]]
		}
	}
	const rightmessage = ref({
		deviceName: "",
		deviceStatus: "1",
		nuId: "",
		nuName: "",
		sn: "",
		reportingTime: "",
		id: 0,
		// maintainStatus: "",
	});
	const allArray = ref([]);
	const yulan = () => {
		setTimeout(() => {
			typeNowtarget.value = 0
			changeallmessage()
		}, 500)
	}
	const closeit = ref(false)
	const wendushow = ref({
		temperature:"",
		humidity:""
	})
	const init = () => {
		electricityMeterlist().then((res : any) => {
			if(!res.result.cameraInfoEntityList.length){
				closeit.value = true
				return
			}
			allArray.value = [];
			if ( res.result.cameraInfoEntityList != null) {
				res.result.cameraInfoEntityList.forEach((element : any, index : number) => {
					element.typeNumber = 0
					element.lookName = "摄像头" ;
					element.donghuapian = typeArray.value[0].url
					allArray.value.push(element)
				})
			}
			if ( res.result.electricityMeterEntityList != null) {
				res.result.electricityMeterEntityList.forEach((element : any, index : number) => {
					element.typeNumber = 1
					element.lookName = "智能电表" 
					element.donghuapian = typeArray.value[1].url
					allArray.value.push(element)
				})
			}
			if ( res.result.waterMeterEntityList != null) {
				res.result.waterMeterEntityList.forEach((element : any, index : number) => {
					element.typeNumber = 2
					element.lookName = "智能水表" 
					element.donghuapian = typeArray.value[2].url
					allArray.value.push(element)
				})
			}
			if ( res.result.humidDeviceEntityList != null) {
				res.result.humidDeviceEntityList.forEach((element : any, index : number) => {
					element.typeNumber = 3
					element.lookName = "温湿度计" 
					element.donghuapian = typeArray.value[3].url
					allArray.value.push(element)
					wendushow.value.temperature = element.temperature
					wendushow.value.humidity = element.humidity
					
				})
				
			}
			if (typeNow.value === 3) {
				tempmessage.value = JSON.parse(JSON.stringify(allArray.value[typeNowtarget.value]))
				const thirdTarget = tempmessage.value.temperature
				rollTo(Number(thirdTarget))
			}
			
			// 重新刷新动画
			
			let donghua = typeNowtarget.value;
			typeNowtarget.value = -1;
			setTimeout(()=>{
				typeNowtarget.value = donghua 
			},500)
			
			// rightmessage.value = res.result.cameraInfoEntityList[0]
			// //温度计
			// tempmessage.value = res.result.humidDeviceEntityList[0];
			// // 这个是电表
			// indexmessage.value = res.result.electricityMeterEntityList[0]

			// // 这个是水表
			// watermessage.value = res.result.waterMeterEntityList[0]

		})
	}
	const lanjie = ref(false);
	const clean = () => {
		if (movetype.value == -1) {
			lanjie.value = true;
			emit("cleanmain")
		}

	}
</script>

<style scoped lang="less">
	.index-content-other {
		width: calc(100% - 260rpx);
		height: 100%;
		transition: opacity 1s ease;
		position: relative;
		margin-left: 3vw;

		.index-father {
			width: 100%;
			height: 1100rpx;

		}

		.abs-time {
			position: absolute;
			right: 20rpx;
			top: 150rpx;

			.big-time {
				font-size: 90rpx;
				font-weight: 600;
				width: 100%;
				justify-content: center;
			}
		}
	}

	.right-container-title-nav {
		margin-top: 60rpx;
		display: flex;
		align-items: center;
		height: 60rpx;
		position: relative;
		font-size: 28rpx;


		.new-weight {
			margin-left: 30rpx;
			font-weight: 600;
		}

		.right-icons {
			position: absolute;
			right: 30rpx;
			top: 0;
			display: flex;
			align-items: center;
			height: 60rpx;
		}

		.right-icons-img {
			width: 60rpx;
			height: 60rpx;
			margin-left: 20rpx;
			margin-right: 20rpx;
		}
	}

	.scroll-vi {
		height: 120rpx;
		width: 95%;
		margin-left: 20rpx;
		margin-top: 20rpx;
		position: relative;
		margin-bottom: 80rpx;

		.menu {
			margin-top: 15rpx;
			flex: 0 0 auto; // 👈 关键点
			height: 90rpx;
			width: 240rpx;
			border-radius: 50rpx;
			margin-right: 20rpx;
			background-color: #fff;
			display: flex;
			justify-content: center;
			align-items: center;
			padding-top: 9rpx;

			.menu-img {
				width: 55rpx;
				height: 55rpx;
				margin-right: 15rpx;
			}

			.menu-font {
				margin-top: 5rpx;
				font-size: 25rpx;
				margin-left: 5rpx;

			}

		}
	}

	.date {
		display: flex;
		justify-content: space-around;
		margin-top: 10rpx;
	}

	.right-container-tem {
		display: flex;

		.right-container-tem-text {
			font-size: 30rpx;
			margin-right: 20rpx;
		}


		.right-container-tem-img {
			width: 38rpx;
			height: 38rpx;
		}
	}

	.photo-father {
		width: 100%;
		height: 1100rpx;
		display: flex;
		flex-direction: column;
		align-items: center;
		position: relative;
	}

	.juzhong {
		position: absolute;
		top: 0%;
		left: 50%;
		transform: translate(-50%, -10%);

	}

	.weight-time {
		font-weight: 800;
		font-size: 100rpx;
		margin-bottom: 0rpx;
		margin-left: -50rpx;
		display: flex;
		align-items: center;

		.big-font-right {
			font-size: 35rpx;
			font-weight: 500;
			color: black;
			margin-left: 30rpx;
			display: flex;
			flex-direction: column;
			align-items: flex-start;

			.font-top {
				margin-left: 5rpx;
			}

			.right-kuai {
				display: flex;
				justify-content: center;
				align-items: center;
				background-color: #42A5F6;
				color: #fff;
				width: 110rpx;
				height: 50rpx;
				border-radius: 15rpx;
				font-size: 25rpx;
			}
		}
	}

	.big-img {
		width: 500rpx;
		height: 500rpx;
		margin: 50rpx 0;
	}

	.big-img-shexiang {
		width: 500rpx;
		height: 550rpx;
		margin-bottom: 35.5rpx;
	}



	.left-menu {
		position: absolute;
		top: 50%;
		left: 150rpx;
		transform: translateY(-50%);
	}

	.zoom {
		transform: scale(1.2);
		transform-origin: bottom left;
		transition: transform 1s ease;
	}

	.left-ball {

		width: 100rpx;
		height: 100rpx;
		border-radius: 50%;
		display: flex;
		justify-content: center;
		align-items: center;
		background-color: #fff;
		margin-bottom: 15rpx;
	}

	.right-menu {
		position: absolute;
		top: 50%;
		right: 150rpx;
		transform: translateY(-50%);

		.right-scroll {
			width: 100%;
			height: 750rpx;
		}

		.white-circle {

			height: 200rpx;

			border-radius: 60rpx;
			background-color: #fff;
			display: flex;
			justify-content: center;
			align-items: center;
			flex-direction: column;
			text-align: center;

			.right-menu-img {
				width: 80rpx;
				height: 80rpx;
			}

			.right-menu-name {
				width: 80rpx;
			}
		}
	}

	.zhezhao-left {
		position: absolute;
		top: 0rpx;
		left: 0%;
		height: 100%;
		width: 120rpx;
		background: linear-gradient(to right,
				rgba(239, 240, 244, 1) 0%,
				/* #eff0f4 全不透明 */
				rgba(239, 240, 244, 0) 100%
				/* #eff0f4 完全透明 */
			);
		z-index: 4;
	}

	.zhezhao-right {
		position: absolute;
		top: 0rpx;
		right: 0%;
		height: 100%;
		width: 120rpx;
		background: linear-gradient(to left,
				rgba(239, 240, 244, 1) 0%,
				/* #eff0f4 全不透明 */
				rgba(239, 240, 244, 0) 100%
				/* #eff0f4 完全透明 */
			);
		z-index: 4;
	}

	.zerotarget {
		--color: #99C9FD;
		--thick: 2px;
		--radius: 50rpx;
		--outline-offset: 0rpx;
		/* 外扩多少 */
		/* 内层虚线（你现在用的） */
		border-radius: var(--radius);
		background-color: white;
		/* 内部背景 */
		animation: scalePulse 360ms cubic-bezier(.2, .8, .2, 1);
		/* 外层虚线：放在 outline（不会影响元素尺寸） */
		outline: var(--thick) dashed var(--color);
		outline-offset: var(--outline-offset);

		/* 保证文本 / 子元素在最上层 */
		position: relative;
		z-index: 0;
	}

	.firsttarget {
		--color: #99C9FD;
		--thick: 2px;
		--radius: 50%;
		--outline-offset: 0rpx;
		/* 外扩多少 */

		/* 内层虚线（你现在用的） */
		border-radius: var(--radius);
		background-color: white;
		/* 内部背景 */
		animation: scalePulse 360ms cubic-bezier(.2, .8, .2, 1);
		/* 外层虚线：放在 outline（不会影响元素尺寸） */
		outline: var(--thick) dashed var(--color);
		outline-offset: var(--outline-offset);

		/* 保证文本 / 子元素在最上层 */
		position: relative;
		z-index: 0;
	}

	.buttontarget {
		--color: #99C9FD;
		--thick: 2px;
		--radius: 30rpx;
		--outline-offset: 0rpx;
		/* 外扩多少 */

		/* 内层虚线（你现在用的） */
		border-radius: var(--radius);
		background-color: white;
		/* 内部背景 */
		animation: scalePulse 360ms cubic-bezier(.2, .8, .2, 1);
		/* 外层虚线：放在 outline（不会影响元素尺寸） */
		outline: var(--thick) dashed var(--color);
		outline-offset: var(--outline-offset);

		/* 保证文本 / 子元素在最上层 */
		position: relative;
		z-index: 0;
	}

	@keyframes scalePulse {
		0% {
			transform: scale(1);
		}

		25% {
			/* 先收缩一点点 */
			transform: scale(0.94);
		}

		65% {
			/* 再放大到略超出的感觉 */
			transform: scale(1.08);
		}

		100% {
			transform: scale(1);
		}
	}

	.buttons-father {
		margin: 30rpx 0;
		text-align: center;
		position: relative;
	}

	.biga-img {
		position: absolute;
		right: -15rpx;
		top: 50%;
		transform: translateY(-50%);
		width: 28rpx;
		height: 28rpx;
	}

	.status-button {
		color: #fff;
		width: 120rpx;
		height: 50rpx;
		border-radius: 30rpx;
		display: flex;
		justify-content: center;
		align-items: center;
		background-color: #47ADF5;
	}

	.bottom-father {
		width: 100%;
		padding-left: 160rpx;
		padding-top: 20rpx;



		.status-font {
			font-weight: 600;
			font-size: 38rpx;
			margin-top: 20rpx;
		}

		.status-time {
			color: #666666;
			margin-top: 20rpx;
		}
	}

	.donghua-number {
		position: absolute;
		right: 1010rpx;
		top: 250rpx;
		z-index: 3;
		font-size: 35rpx;
		font-weight: 600;
	}

	.water-donghua-number {
		position: absolute;
		right: 960rpx;
		top: 265rpx;
		z-index: 3;
		font-size: 32rpx;
		font-weight: 600;
	}

	.rizhi-box {
		position: absolute;
		left: 66%;
		top: 65%;
		transform: translate(-66%, -65%);
		width: 1350rpx;
		height: 900rpx;
		border-radius: 30rpx;
		background-color: #fff;
		display: flex;
		flex-direction: column;
		// justify-content: space-between;
		align-items: space-between;
		z-index: 1;
		// padding: 0 10%;
		padding: 50rpx;
		z-index: 999;
	}

	/* 拟态框 固定尺寸 + 阴影样式 + 相对定位于 wrapper */
	.neuro-box {
		position: absolute;
		left: 550rpx;
		top: 500rpx;
		width: 400rpx;
		height: 270rpx;
		border-radius: 30rpx;
		background-color: #fff;
		display: flex;
		flex-direction: column;
		align-items: center;
		z-index: 1;
		padding: 0 10%;
		z-index: 999;
	}

	.neuro-box-chaobiao {
		position: absolute;
		left: 550rpx;
		top: 680rpx;
		width: 400rpx;
		height: 270rpx;
		border-radius: 30rpx;
		background-color: #fff;
		display: flex;
		flex-direction: column;
		align-items: center;
		z-index: 1;
		padding: 0 10%;
		z-index: 999;
	}

	.neuro-box-lazha {
		position: absolute;
		right: 300rpx;
		top: 600rpx;
		width: 400rpx;
		height: 270rpx;
		border-radius: 30rpx;
		background-color: #fff;
		display: flex;
		flex-direction: column;
		align-items: center;
		z-index: 1;
		padding: 0 10%;
		z-index: 999;
	}

	.neuro-box-baoxiu {
		position: absolute;
		right: 300rpx;
		top: 770rpx;
		width: 400rpx;
		height: 270rpx;
		border-radius: 30rpx;
		background-color: #fff;
		display: flex;
		flex-direction: column;
		align-items: center;
		z-index: 1;
		padding: 0 10%;
		z-index: 999;
	}

	.button {
		width: 40%;
		background-color: #ddf0ff;
		display: flex;
		justify-content: center;
		align-items: center;
		color: #007CFF;
		border: 1rpx solid #007CFF;
		font-size: 25rpx;
		border-radius: 30rpx;
	}

	.card-font {
		margin-top: 70rpx;
		width: 600rpx;
		justify-content: center;
		display: flex;
	}

	.button-white {
		width: 40%;
		border: 2rpx solid #c3cacd;
		background: linear-gradient(to bottom, #f3f3f5, #dee4e9);
		display: flex;
		justify-content: center;
		align-items: center;
		font-size: 25rpx;
		border-radius: 30rpx;
	}

	.button-father {
		position: absolute;
		bottom: 60rpx;
		left: 50%;
		transform: translateX(-50%);
		width: 100%;
		height: 60rpx;
		display: flex;
		justify-content: space-around;
		padding: 0 50rpx;
	}

	.zhezhao {
		position: fixed;
		top: 0;
		left: 0;
		width: 100vw;
		height: 100vh;
		z-index: 5;
	}

	.zhongjian-shu {
		background-color: #E1E4E6;
		width: 3rpx;
		height: 70%;
		margin: auto 70rpx;
	}

	.wendu-juzhong {
		position: absolute;
		top: 255rpx;
		right: 875rpx;
		width: 270rpx;
		height: 270rpx;
		z-index: 1;
		display: flex;
		align-items: flex-end;
		flex-direction: column;

		.wendu-top {
			display: flex;
			align-items: center;
			justify-content: flex-end;
			height: 140rpx;
			// background-color: red;
			width: 100%;

			.wendu-top-left {
				font-size: 110rpx;
				font-weight: 600;
			}

			.wendu-top-right {
				font-size: 45rpx;
				font-weight: 600;
				// height: 100%;
				width: 80rpx;

			}
		}

		.wendu-heng {
			width: 80%;
			height: 2rpx;
			margin: 10rpx auto;
			margin-top: 0;
			background-color: #333333;
		}

		.wendu-bottom {
			width: 100%;
			font-size: 45rpx;
			font-weight: 600;
			padding-right: 50rpx;
			display: flex;
			justify-content: flex-end;
		}
	}

	.gray-bgc {
		background-color: #E8E9ED;
		padding: 10rpx 30rpx;
		font-size: 30rpx;
		border-radius: 15rpx;
		margin-top: 15rpx;
	}

	.rizhi-father {
		height: 80rpx;
		display: flex;

		.rizhi-card {
			display: flex;
			justify-content: center;
			align-items: center;
			// padding: 0 10rpx;
			border-radius: 40rpx;
			background-color: #F5F5F6;
			margin-right: 20rpx;
			padding: 0 30rpx;
			height: 70rpx;

			.rizhi-card-font {
				font-size: 27rpx;
				margin-left: 5rpx;
			}

			.rizhi-card-img {
				width: 38rpx;
				height: 38rpx;


			}
		}

		.rizhi-card-right {
			display: flex;
			justify-content: center;
			align-items: center;
			// padding: 0 10rpx;
			border-radius: 50%;
			background-color: #F5F5F6;
			margin-right: 20rpx;
			// padding: 0 30rpx;
			height: 70rpx;
			width: 70rpx;

			.rizhi-card-img {
				width: 38rpx;
				height: 38rpx;


			}
		}
	}

	.rizhi-title {
		width: 100%;
		display: flex;
		justify-content: space-between;
	}

	.rizhi-rule {
		width: 100%;
		height: 700rpx;
		margin-top: 30rpx;
		background-color: #F5F5F6;
		border-radius: 30rpx;

		.rizhi-rule-title {
			width: 100%;
			height: 90rpx;
			display: flex;
			align-items: center;
			font-weight: 600;

			.rizhi-rule-title-kuai {
				height: 120rpx;
				display: flex;
				justify-content: center;
				align-items: center;
			}
		}

		.rizhi-rule-kuai {
			width: 100%;
			height: 73.5rpx;
			display: flex;
			align-items: center;

			.rizhi-rule-title-kuai {
				height: 72.5rpx;
				display: flex;
				justify-content: center;
				align-items: center;
			}
		}
	}
	.nomessage{
		width: 100%;
		height: 600rpx;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
		.nomessage-img{
			height: 400rpx;
			width: 400rpx;
			margin-top: -100rpx;
			margin-bottom: -50rpx;
		}
	}
</style>