<template>
	<view class="fullHeight">
		<headers :showBack="true">
			<view class="headerName">
				塔吊详情信息
			</view>
		</headers>
		<view class="menuBox">
			<view class="menuItem" @click="changeMenu(0)" :class="tabIndex==0?'active':''">
				数据总览
			</view>
			<view class="menuItem" @click="changeMenu(1)" :class="tabIndex==1?'active':''">
				数据趋势
			</view>
			<view class="menuItem" @click="changeMenu(2)" :class="tabIndex==2?'active':''">
				报警列表
			</view>
		</view>
		<!-- 数据总览 -->
		<view class="" v-if="tabIndex==0" style="padding-bottom:10px">
			<view class="" style="text-align: center;">
				<view class="warningText">{{warningText}}</view>
				<view class="towerRunBox">
					<image src="../../../static/towerCrane/towerBG.png" alt="" ref="towerBG" class="towerBG" />
					<image src="../../../static/towerCrane/1.png" alt="" v-show="hideGoods" class="xMove" id="xMove"
						:style="{ top: '50px', left: coordData.coordX + 'px',height:'12px',width:'26px' }" />
					<image src="../../../static/towerCrane/line.png" alt="" class="lines" id="line" v-show="hideGoods"
						:style="{
									'top': '58px',
									'width':'10px',
									'height': lineHeight,
									'left': lineLeft
								  }" />
					<view class="moveBox" id="moveBox" :style="{'top': hockTop,'left': hockLeft}" v-show="hideGoods">
						<image src="../../../static/towerCrane/hock.png" style="width:36px; height:74px;" alt="" />
					</view>
				</view>
			</view>

			<view class="blockBox">
				<view class="realTimeBox">
					<view class="item">
						<view class="itemInner">
							<view class="num">
								{{realTimeData.loading}} kg
							</view>
							<view class="label">载重</view>
						</view>
					</view>
					<view class="item">
						<view class="itemInner">
							<view class="num">
								{{realTimeData.height}} m
							</view>
							<view class="label">高度</view>
						</view>
					</view>
					<view class="item">
						<view class="itemInner">
							<view class="num">
								{{realTimeData.windspeed}} m/s
							</view>
							<view class="label">风速</view>
						</view>
					</view>
					<!-- <view class="item">
						<view class="itemInner">
							<view class="num">
								{{realTimeData.windRatio?realTimeData.windRatio:0}} %
							</view>
							<view class="label">风速百分比</view>
						</view>
					</view> -->
					<view class="item">
						<view class="itemInner">
							<view class="num">
								{{realTimeData.angle}} °
							</view>
							<view class="label">角度</view>
						</view>
					</view>
					<view class="item">
						<view class="itemInner">
							<view class="num">
								{{realTimeData.torqueRatio?realTimeData.torqueRatio:'0'}} %
							</view>
							<view class="label">力矩百分比</view>
						</view>
					</view>
					<view class="item">
						<view class="itemInner">
							<view class="num">
								{{realTimeData.loadRatio?realTimeData.loadRatio:'0'}} %
							</view>
							<view class="label">荷载比</view>
						</view>
					</view>
					<view class="item">
						<view class="itemInner">
							<view class="num">
								{{realTimeData.obliguity?realTimeData.obliguity:0}} °
							</view>
							<view class="label">倾角</view>
						</view>
					</view>
					<view class="item">
						<view class="itemInner">
							<view class="num">
								{{detailData.forearmLength}} m
							</view>
							<view class="label">前臂长</view>
						</view>
					</view>
					<view class="item">
						<view class="itemInner">
							<view class="num">
								{{detailData.towerHeight}} m
							</view>
							<view class="label">塔身高</view>
						</view>
					</view>
					<view class="item">
						<view class="itemInner">
							<view class="num">
								{{detailData.posteriorArmLength}} m
							</view>
							<view class="label">后臂长</view>
						</view>
					</view>
					<!-- <view class="item">
						<view class="itemInner">
							<view class="num">
								{{realTimeData.biasAngle?realTimeData.biasAngle:0}} °
							</view>
							<view class="label">前倾角</view>
						</view>
					</view> -->
					<view class="item">
						<view class="itemInner">
							<view class="num">
								{{realTimeData.ranger}} m
							</view>
							<view class="label">幅度</view>
						</view>
					</view>
					<!-- <view class="item">
						<view class="itemInner">
							<view class="num">
								{{realTimeData.biasAngleRatio?realTimeData.biasAngleRatio:0}} %
							</view>
							<view class="label">倾角比例</view>
						</view>
					</view> -->
					<!-- <view class="item">
						<view class="itemInner">
							<view class="num">
								{{realTimeData.alarmName?realTimeData.alarmName:'无'}}
							</view>
							<view class="label">预警</view>
						</view>
					</view> -->
				</view>
			</view>
			<!-- <view class="selectContent" v-if="videoList.length>0">
				<picker mode="selector" :range="videoList" @change="changeVideo" range-key="videoName" :value="videoIndex">
					<view class="selectVideoBox">
						<text class="videoName">{{videoList[videoIndex].videoName}}</text>
						<uni-icons class="arrow" type="arrowdown" size="15"></uni-icons>
					</view>
				</picker>
			</view>
			<view class="moudleTitle2">
				实时视频
			</view>
			<video class="videoBox" id="myVideo" :src="videoUrl" controls autoplay></video> -->
			<view class="moudleTitle2">
				司机列表
			</view>
			<view class="blockBox" style="margin: 0px 15px 15px;">
				<view class="tableBox">
					<view class="tableHead">
						<view class="item">姓名</view>
						<view class="item">联系电话</view>
						<view class="item">照片</view>
					</view>
					<view v-if="driverList.length>0" v-for="(item,index) in driverList" :key="index" class="tableBody">
						<view class="item">{{item.workerName}}</view>
						<view class="item">{{item.phoneNumber}}</view>
						<view class="item">
							<image :src="url_config+'image/'+item.fieldAcquisitionUrl" class="profile_photo"
								@click="previewImg(url_config+'image/'+item.fieldAcquisitionUrl)"></image>
						</view>
					</view>
					<view v-if="driverList.length==0" style="text-align: center; margin-top: 8px; color: #999;">暂无数据
					</view>
				</view>
			</view>
		</view>

		<view class="" v-if="tabIndex==1">
			<view class="blockBox">
				<view class="chartTitle">
					吊重 (kg)
				</view>
				<u-charts canvas-id="lineChartLoad" chartType="line" :opts="lineChartData1" ref="lineChartLoad"
					:cWidth="315" :cHeight="200" :legends="false" />
			</view>
			<view class="blockBox">
				<view class="chartTitle">
					幅度 (m)
				</view>
				<u-charts canvas-id="lineChartRange" chartType="line" :opts="lineChartData2" ref="lineChartRange"
					:cWidth="315" :cHeight="200" :legends="false" />
			</view>
		</view>
		<view class="" v-if="tabIndex==2">
			<!-- <view class="selectContent selectContent2">
				<picker mode="date" @change="changeDate" :value="searchDate" style="margin-left:15px">
					<view class="selectVideoBox">
						<text class="videoName">{{searchDate}}</text>
						<uni-icons class="arrow" type="arrowdown" size="15"></uni-icons>
					</view>
				</picker>
				
			</view> -->
			<view v-if="typeState.length>0" class="flex evenly typeState">
				<view :class="statusSelect==item.val?'this_class':''" v-for="(item,index) in typeState" :key="index" @click="typeStateEve(item.val)">
					{{item.txt}}
				</view>
				
			</view>
			<view class="blockBox" v-for="(item,index) in alarmList" :key="index" @click="toDetail(item.id)">
				<view class="" style="position: absolute;right: 40rpx;top:40rpx;font-size:28rpx;">
					<text :style="item.status==1?'color: #00aaff;':item.status==2?'color:#00aaff':item.status==3?'color:#00aa00':'color:#00aa00'">{{status[item.status]}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">设备名称：</text><text class="value">{{item.devName}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">设备编号：</text><text class="value">{{item.devSn}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">司机姓名：</text><text class="value">{{item.driverName}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">司机身份证号：</text><text class="value">{{item.driverIdCard}}</text>
				</view>
				<view class="alarmItem">
					<text class="label" >环境防撞报警：</text><text :style="filterAlarmColor[item.environmentAlarm]" class="value">{{filterAlarm(item.environmentAlarm)}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">高度上限位报警：</text><text :style="filterAlarmColor[item.heightAlarm]" class="value">{{filterAlarm(item.heightAlarm)}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">幅度外限位报警：</text><text :style="filterAlarmColor[item.maxRangeAlarm]" class="value">{{filterAlarm(item.maxRangeAlarm)}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">幅度内限位报警：</text><text :style="filterAlarmColor[item.minRangeAlarm]" class="value">{{filterAlarm(item.minRangeAlarm)}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">力矩报警：</text><text :style="filterAlarmColor[item.momentAlarm]" class="value">{{filterAlarm(item.momentAlarm)}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">多机防撞报警：</text><text :style="filterAlarmColor[item.multiAlarm]" class="value">{{filterAlarm(item.multiAlarm)}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">逆时针回转限位报警：</text><text :style="filterAlarmColor[item.negAngleAlarm]" class="value">{{filterAlarm(item.negAngleAlarm)}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">倾角报警：</text><text :style="filterAlarmColor[item.obliguityAlarm]" class="value">{{filterAlarm(item.obliguityAlarm)}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">风速报警：</text><text :style="filterAlarmColor[item.windSpeedAlarm]" class="value">{{filterAlarm(item.windSpeedAlarm)}}</text>
				</view>
				<view class="alarmItem">
					<text class="label">塔机报警时间：</text><text class="value">{{item.alarmTime}}</text>
				</view>
			</view>
			<view class="placeholderBox" v-if="alarmList.length==0">
				<image src="/static/noData.png" mode="" class="noDataImg"></image>
				<view class="text">
					暂无报警
				</view>
			</view>
		</view>
	</view>
</template>

<script>
	import uCharts from '@/components/u-charts/component.vue';
	import headers from "../../../components/headers/headers.vue"
	import {
		GetDateStr
	} from "../../../static/js/util.js"
	var frontArmLength = 345; //图片塔机臂长px
	var height = 336; //图片塔机高度px
	var imgLeftWidth = 80; //塔机图片司机距离左边距离px
	var imgLeftHeight = 50; //塔机图片司机距离上边距离px
	var realWidth = 0; //实际塔机臂长m
	var realHeight = 0; //实际塔机高度m
	var $moveBox;
	var $xMove;
	var $line;
	// var $ratioW = 0.438; //实际图片宽度 496 - 显示宽度 345 = 比例 151/345
	// var $ratioH = 0.436; //实际图片宽度 484 - 显示宽度 337 = 比例 147/337
	var $ratioW = 0.695; //实际图片宽度 496 - 显示宽度 345 = 比例 151/345
	// var $ratioH = 0.695; //实际图片宽度 484 - 显示宽度 337 = 比例 147/337
	export default {
		components: {
			uCharts
		},
		data() {
			return {
				
				typeState:[{txt:'待发起',val:1},{txt:'已整改',val:3}],//statusSelect：整改状态 1:待发起 ,2:待整改 3：已整改
				statusSelect:1,
				status: {
					1: "待发起",
					2: "待整改",
					3: "已整改"
				},
				userInfo: "",
				devSn: "",
				devId: "",
				hockTop: 0,
				hockLeft: 0,
				lineHeight: 0,
				lineLeft: 0,
				moveLeft: 0,
				projectDetail: '',
				devIndex: 0,
				realTimeData: {
					loading: '--',
					height: '--',
					windspeed: '--',
					windRatio: '--',
					angle: '--',
					torqueRatio: '--',
					biasAngle: '--',
					ranger: '--',
					biasAngleRatio: '--',
					alarmName: '--',
				},
				detailData: "",
				alarmList: [],
				searchDate: '',
				lineChartData1: {
					categories: [],
					series: [{
						name: "吊重",
						data: []
					}]
				},
				lineChartData2: {
					categories: [],
					series: [{
						name: "幅度",
						data: []
					}]
				},
				tabIndex: 0,
				videoUrl: '',
				videoList: [],
				videoIndex: 0,
				driverList: [],
				coordData: {
					coordX: 0,
					coordY: 0,
					lineLength: 0,
				},
				hideGoods: true,
				warningText: '',
				onload:"",
				filterAlarmColor:{
					0:"color:#44AB47;",
					1:"color:#FF3F33;",
					2:'color:#ffaa00;'
				}

			};
		},
		onLoad(options) {
			this.devSn = options.devSn;
			this.devId = options.id;
			realWidth = options.forearmLength;
			realHeight = options.towerHeight;
			this.userInfo = JSON.parse(uni.getStorageSync('userInfo'));
			this.getRealTimeData();
			this.getDevDetail();
			this.tabIndex = 0;
			this.onload=true;//开始加载

		},
		onShow() {
			if(!this.onload){//防止执行两次
				this.tabIndex = 2;
				this.onload=true;
				this.loadData()
			}
			
			if(this.userInfo.accountType==6){//整改人状态
				this.typeState=[];
				this.statusSelect=2;
				
			}else{
				
				this.typeState=[{txt:'待发起',val:1},{txt:'已整改',val:3}]
			}
		},
		onHide() {
			this.onload=false;
		},
		mounted() {

			this.projectDetail = JSON.parse(uni.getStorageSync('projectDetail'))
			this.searchDate = GetDateStr(0, '-');
			this.$nextTick(() => {
				// $moveBox = document.getElementById('moveBox')
				// $xMove = document.getElementById('xMove')
				// $line = document.getElementById('line')
			})
			// frontArmLength = document.getElementsByClassName('towerBG')[0].offsetWidth;
			// height = document.getElementsByClassName('towerBG')[0].offsetHeight;
		},
		methods: {
			typeStateEve(v){
				this.statusSelect=v;
				this.pageNo = 1;
				this.alarmList =[];
				this.getAlarmData();
			},
			toDetail(id) {
				uni.navigateTo({
					url: '/pages/towerCrane/towerCrane?id=' + id
				})
			},
			filterAlarm(val) {
				if (val == '0') {
					
					return "正常"
				} else if (val == 1) {
					return "报警"
				} else if (val == 2) {
					return "预警"
				}
			},
			
			previewImg(url) {
				uni.previewImage({
					urls: [url]
				})
			},
			changeVideo(e) {
				this.videoIndex = e.target.value
				this.isHasVideo()
			},
			//判断设备有没有绑定视频
			isHasVideo(val) {
				var that = this
				console.log(that.videoList)
				if (that.videoList.length > 0) {
					if (that.videoList[this.videoIndex].videoType == 2) {
						that.videoUrl = that.videoList[this.videoIndex].liveRadioUrl
					} else {
						that.getPlayUrl()
					}
				}
			},
			//获取视频地址
			getPlayUrl() {

				var that = this
				var videoInfo = that.videoList[this.videoIndex]
				var json = {
					itemId: that.videoList[this.videoIndex].itemId || that.videoList[this.videoIndex].id
				}

				if (videoInfo.videoType == 3) {
					json.streamType = 1
					json.type = 'rtsp' //rtsp或者hls
				}
				this.sendRequest({
					url: "xmgl/videoItem/getVideoItemInfo",
					data: json,
					method: "post",
					success(res) {
						switch (videoInfo.videoType) {
							case 1:
								that.videoUrl = res.result.videoInfo.hdFlvAddress
								break;
							default:
								that.videoUrl = res.result.videoInfo.url
								break;
						}
					}
				})
			},
			changeDate(e) {
				this.searchDate = e.target.value
				this.getAlarmData()
			},
			changeMenu(index) {
				this.tabIndex = index;
				this.loadData()
			},
			loadData() {
				switch (this.tabIndex) {
					case 0:
						this.$nextTick(() => {
							// $moveBox = document.getElementById('moveBox')
							// $xMove = document.getElementById('xMove')
							// $line = document.getElementById('line')
						})
						this.getRealTimeData()
						this.getDevDetail()
						break;
					case 1:
						this.getDustData()
						break;
					case 2:
						this.getAlarmData()
						break;
				}
			},
			//获取数据趋势
			getDustData() {
				var that = this
				this.sendRequest({
					url: "xmgl/towerCurrentData/getTodayTowerCurrentDataList",
					data: {
						devSn: this.devSn
					},
					method: "POST",
					success(res) {
						var DATA = res.result
						var xdata = [],
							ydata1 = [],
							ydata2 = [],
							ydata3 = [],
							ydata4 = [];
						DATA.forEach(element => {
							// console.log(element.reciveTime)
							xdata.push(element.reciveTime.split(' ')[1])
							ydata1.push(element.loading)
							ydata2.push(element.ranger)
						})
						// console.log(xdata)
						that.lineChartData1.categories = xdata
						that.lineChartData2.categories = xdata

						that.lineChartData1.series = [{
							name: "吊重",
							data: ydata1
						}]
						that.lineChartData2.series = [{
							name: "幅度",
							data: ydata2
						}]
						that.$refs.lineChartLoad.changeData('lineChartLoad', that.lineChartData1)
						that.$refs.lineChartRange.changeData('lineChartRange', that.lineChartData2)

					}
				})
			},
			//获取报警列表
			getAlarmData() {
				var that = this
				let qData = {
						projectSn: this.projectDetail.projectSn,
						pageNo: 1,
						pageSize: 100,
						// startTime: this.searchDate,
						// endTime: this.searchDate,
						devSn: this.devSn,
						accountType: this.userInfo.accountType,
						status:this.statusSelect
						
					}
				if (this.userInfo.accountType == 6) {
					qData.pushPersonId=this.userInfo.userId
				}
				this.sendRequest({
					url: "xmgl/towerAlarm/list",
					data:qData,
					method: "POST",
					success(res) {
						that.alarmList = res.result.records
					}
				})
			},

			// 获取设备详细
			getDevDetail() {
				var that = this
				this.sendRequest({
					url: "xmgl/tower/queryById",
					data: {
						id: this.devId
					},
					method: "POST",
					success(res) {
						// that.videoList = res.result.videoList
						if (res.result.enableVideoUrl == 1) {
							that.videoList = res.result.videoList;
							that.isHasVideo()
						} else {
							if (res.result.videoUrl && res.result.videoUrl != 'null') {
								that.videoList = JSON.parse(res.result.videoUrl);
								that.videoUrl = that.videoList.url
							} else {
								that.videoList = []
							}
						}
						that.driverList = res.result.towerDriverList
						that.detailData = res.result
					}
				})
			},
			//获取实时数据
			getRealTimeData() {
				var that = this
				this.sendRequest({
					url: "xmgl/towerCurrentData/getNewestTowerCurrentData",
					data: {
						// projectSn: this.projectDetail.projectSn,
						devSn: this.devSn
					},
					method: "POST",
					success(res) {
						if (res.result) {
							that.realTimeData = res.result;
							console.log(res.result)
							var y = 0
							var x = 0
							if (res.result.ranger) {
								x = parseFloat(res.result.ranger)
							}
							if (res.result.height) {
								y = parseFloat(res.result.height)
							}

							that.move(x, y);
							// that.move(100, 200);
							that.hideGoods = true;
						} else {
							that.hideGoods = false;
							that.realTimeData = {
								loading: '--',
								height: '--',
								windspeed: '--',
								windRatio: '--',
								angle: '--',
								torqueRatio: '--',
								biasAngle: '--',
								ranger: '--',
								biasAngleRatio: '--',
								alarmName: '--',
							}
						}

					}
				})
			},

			//计算 吊物 位置
			move(x, y) {
				console.log((x / realWidth) * frontArmLength - imgLeftWidth)
				console.log(x)
				console.log(y)
				console.log(realWidth)
				console.log(frontArmLength)
				console.log(imgLeftWidth)
				var xImg, yImg;
				//     if (x <= realWidth) {
				//         xImg = ((x / realWidth) * frontArmLength + imgLeftWidth);
				//         this.warningText=''
				//         if (y <= realHeight) {
				//             yImg = (y / realHeight) * height + imgLeftHeight;
				//             this.warningText=''
				//         } else {
				//             yImg = height + imgLeftHeight
				//             this.warningText='当前设备高度参数错误'
				//         }
				//     } else {
				//         xImg = frontArmLength + imgLeftWidth;
				//         this.warningText='当前设备前臂长参数错误'
				//         if (y <= realHeight) {
				//             yImg = (y / realHeight) * height + imgLeftHeight;

				//         } else {
				//             yImg = height + imgLeftHeight
				//             this.warningText='当前设备前臂长,高度参数错误'
				//         }
				//     }

				if (x <= realWidth) {
					// console.log(frontArmLength, realWidth)
					xImg = ((x / realWidth) * frontArmLength) + 38
					// xImg = (x / realWidth) * (frontArmLength - imgLeftWidth) + imgLeftWidth;
					this.warningText = "";
				} else {
					// xImg = frontArmLength-imgLeftWidth;
					xImg = 38
					this.warningText = "当前设备前臂长参数错误";
				}
				// if(x==""){

				// }
				if (y <= realHeight) {
					yImg = ((y / realHeight) * height) + 48
					// yImg = ((realHeight-y) / realHeight) * (height-imgLeftHeight) + imgLeftHeight;
					// this.warningText = "";
				} else {
					// yImg = height-imgLeftHeight;
					yImg = 48
					this.warningText = "当前设备高度参数错误";
				}
				// console.log(xImg)
				// console.log(yImg)
				// xImg = xImg*$ratioW;
				// yImg = yImg*$ratioW;
				console.log('有值吗',xImg)
				console.log(yImg)
				this.hockLeft = xImg - 6 + 'px';
				this.hockTop = (yImg - 74) + 'px';
				this.coordData.coordX = xImg;
				this.lineLeft = xImg + 8 + 'px';
				this.lineHeight = (yImg - 48 - 74) + 'px';
				// this.lineHeight = yImg + 'px';
				console.log(this.lineHeight)
				// if($line.height==undefined){
				// 	$line.style.height = 0 +'px'
				// }
				// console.log(this.hockLeft,this.hockTop,this.coordData.coordX,this.lineHeight)
			},
		}
	}
</script>

<style lang="scss" scoped>
	.this_class{
		color: #007AFF;
	}
	.typeState{
		height: 80rpx;
		background-color: #fff;
		font-size: 28rpx;
	
		width: 100%;
	}
	.barBox {
		background-color: #5181F6;
	}
	.menuBox {
		display: flex;
		align-items: center;
		height: 36px;
		font-size: 15px;
		background-color: white;
		margin-top: -1px;
		position: relative;
		z-index: 999;
		border-bottom: 1px solid rgba(194, 194, 194, 0.2);

		.menuItem {
			flex: 1;
			text-align: center;

			&.active {
				color: rgba(43, 141, 243, 1);
			}
		}
	}

	.blockBox {
		position: relative;
		box-shadow: 0 4px 24px 0px rgba(212, 220, 236, 0.69);
		border-radius: 8px;
		margin: 15px;
		padding: 15px;
	}

	.numContent {
		text-align: center;
	}

	.numBox {
		width: 130px;
		height: 50px;
		border-radius: 8px;
		background-image: linear-gradient(rgba(134, 145, 252, 1), rgba(16, 97, 254, 1));
		font-size: 12px;
		color: white;
		text-align: center;
		display: inline-block;

		.num {
			font-size: 15px;
			margin: 5px 0 0px;

		}
	}

	.numBox1 {
		margin-right: 10px;
	}

	.selectContent {
		text-align: center;
		margin-top: 15px;
	}

	.selectVideoBox {
		border: 1px solid rgba(42, 43, 91, 0.2);
		border-radius: 18px;
		height: 35px;
		font-size: 15px;

		display: inline-block;

		.videoName {
			padding: 0 12px 0 15px;
			// border-right: 1px solid rgba(42, 43, 91, 0.2);
			line-height: 35px;
			height: 35px;
		}

		.arrow {
			padding: 0 12px 0 2px;
		}
	}

	.arrow {
		margin-left: 10px;
	}

	.realTimeBox {
		overflow: hidden;

		.item {
			float: left;
			width: 33.33%;

			.itemInner {
				// box-shadow: 0 4px 24px 0px rgba(212, 220, 236, 0.69);
				border: 1px solid rgba(220, 220, 220, 0.3);
				margin: 3.5px;
				font-size: 12px;
				text-align: center;
				padding: 7px 0;
			}

			.num {
				font-size: 15px;
				color: rgba(43, 141, 243, 1);
			}
		}
	}

	.alarmIcon {
		width: 20px;
		height: 20px;
	}

	.switchIcon {
		width: 50px;
		height: 29px;
	}

	.blockTitle {
		text-align: center;
		margin-top: 12px;
	}

	.tableBox {
		font-size: 14px;
		width: 100%;

		.tableHead {
			font-weight: bold;
			display: flex;
			border-bottom: 1px solid rgba(42, 43, 91, 0.1);

			.item {
				flex: 1;
				padding: 0 0 10px;
				text-align: center;
			}
		}

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

			.item {
				flex: 1;
				text-align: center;
				justify-content: center;
				padding: 10px 0 0px;
			}
		}
	}

	.chartTitle {
		font-size: 14px;
		font-weight: 500;
		margin-bottom: 15px;
	}

	.selectContent2 {
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.alarmItem {
		font-size: 14px;

		.label {
			opacity: 0.6;
		}
	}

	.profile_photo {
		width: 30px;
		height: 30px;
	}

	.moudleTitle2 {
		font-size: 10px;
		opacity: 0.69;
		font-weight: 400;
		margin: 15px 0;
		text-align: center;
	}

	.videoBox {
		width: calc(100% - 30px);
		height: 225px;
		margin: 0px 15px;
		border-radius: 10px;
	}

	.towerRunBox {
		text-align: center;
		box-sizing: border-box;
		// padding: 30rpx;
		position: relative;
		display: inline-block;
		// margin: 15px auto;
	}

	.towerBG {
		width: 345px;
		height: 337px;
	}

	.moveBox,
	.xMove,
	.lines {
		position: absolute;
		left: 0;
		top: 0;
		transition: all 1s;
		// display: none;
	}

	.lines,
	.xMove {
		top: 82px;
	}

	.lines {
		width: 10px;
	}

	.warningText {
		width: 100%;
		font-size: 14px;
		color: red;
		text-align: center;
	}
	
	.flex {
		display: flex;
		align-items: center;
	}
	
	.center {
		justify-content: center;
	}
	
	.between {
		justify-content: space-between;
	}
	
	.warp {
		flex-wrap: wrap;
	}
	
	.evenly {
		justify-content: space-evenly;
	}
</style>
