From 0b8e43d5f5fd889ffcb715dafdaa6d4511532665 Mon Sep 17 00:00:00 2001
From: suerwei <18810552194@163.com>
Date: 星期六, 22 六月 2024 18:04:15 +0800
Subject: [PATCH] 摄像头列表功能

---
 javaweb-plus/javaweb-admin/src/main/resources/templates/main.html |  425 ++++++++++++++++++++--------------------------------
 1 files changed, 167 insertions(+), 258 deletions(-)

diff --git a/javaweb-plus/javaweb-admin/src/main/resources/templates/main.html b/javaweb-plus/javaweb-admin/src/main/resources/templates/main.html
index 3617db7..5d6e63c 100644
--- a/javaweb-plus/javaweb-admin/src/main/resources/templates/main.html
+++ b/javaweb-plus/javaweb-admin/src/main/resources/templates/main.html
@@ -13,254 +13,45 @@
 	.content {
 		width: 100%;
 		background-color: rgba(0,0,0,0.01) !important;
+		padding:10px;
 	}
 	[v-cloak]{
 		display: none;
 	}
-	.el-card__header{
-		height: 40px;
-		padding: 8px 20px;
+	.ilblock>span{
+		display: block;
+		line-height: 30px;
 	}
-	.active-red{
-		width: 20px;
-		height: 20px;
-		border-radius: 50%;
-		font-size: 14px;
-		color: white;
-		background: #F56C6C;
-		text-align: center;
-		line-height: 20px;
-		float: left;
+	.el-table th,
+	.el-table tr,
+	.el-table td {
+		background-color: transparent;
+		border: 0px;
+		color: #4D4D4D;
+		font-size: 13px;
+		font-family: Source Han Sans CN Normal, Source Han Sans CN Normal-Normal;
+		font-weight: Normal;
 	}
-
-	.active-yellow{
-		width: 20px;
-		height: 20px;
-		border-radius: 50%;
-		font-size: 14px;
-		color: white;
-		background: #E6A23C;
-		text-align: center;
-		line-height: 20px;
-		float: left;
+	.el-table__body tr,
+	.el-table__body td {
+		padding: 0;
+		height: 22px;
 	}
-
-	.active-blue{
-		width: 20px;
-		height: 20px;
-		border-radius: 50%;
-		font-size: 14px;
-		color: white;
-		background: #67C23A;
-		text-align: center;
-		line-height: 20px;
-		float: left;
-	}
-	.cdcode{
-		width: 15%;
-		float: left;
-		margin-left: 10px;
-		font-size: 16px;
-		line-height: 20px;
-	}
-	.cdstatus{
-		width: 15%;
-		float: left;
-		margin-left: 0px;
-		font-size: 16px;
-		line-height: 20px;
-	}
-	.cdprocess{
-		width: 60%;
-		float: left;
-		margin-left: 10px;
-	}
-	.rankrow{
-		margin-top: 12px;
+	.custom-icon:hover {
+		color: #0981ea;
 		cursor: pointer;
 	}
-
 </style>
 </head>
 
 <body class="gray-bg">
 	<div class="content" id="app" v-cloak>
-		<el-row style="height: 127px;">
-			<el-col :span="6">
-				<el-card class="box-card">
-					<div style="flex:4;">
-						<div>
-							<span style="color:rgba(0,0,0,.65);font-size: 15px;">鍦哄湴鏁伴噺</span>
-							<li class="el-icon-s-promotion" style="font-size: 18px;float: right;color: grey">
-						</div>
-						<div>
-						<span style="color:#000;font-size: 26px;word-break: break-all;line-height: 38px">34涓�
-						</span>
-						</div>
-					</div>
-
-					<div style="flex:6;">
-						<span style="color:rgba(0,0,0,.65);font-size: 15px;">
-							鍗忚皟涓�   {{indexDataCount.projectStatus0}}
-							<li class="el-icon-caret-bottom" style="color: #f56c6c">
-						</span>
-						<span style="color:rgba(0,0,0,.65);font-size: 15px;">
-							寰呭紑宸�    {{indexDataCount.projectStatus1}}
-						    <li class="el-icon-caret-bottom" style="color: #e6a23c">
-						</span>
-						<span style="color:rgba(0,0,0,.65);font-size: 15px;">
-							杩涜涓�     {{indexDataCount.projectStatus2}}
-							<li class="el-icon-caret-top" style="color: #409eff">
-						</span>
-
-					</div>
-				</el-card>
-			</el-col>
-
-			<el-col :span="6">
-				<el-card class="box-card">
-					<div style="flex:4;">
-						<div>
-							<span style="color:rgba(0,0,0,.65);font-size: 15px;">閽诲瓟杩涘昂</span>
-							<li class="el-icon-coin" style="font-size: 18px;float: right;color: grey">
-						</div>
-						<div>
-						<span style="color:#000;font-size: 26px;word-break: break-all;line-height: 38px">647涓�
-						</span>
-						</div>
-					</div>
-
-					<div style="flex:6;">
-						<span style="color:rgba(0,0,0,.65);font-size: 15px;">
-							鎬昏繘灏� {{indexDataCount.footageCount}}m
-							<li class="el-icon-caret-bottom" style="color: #f56c6c">
-						</span>
-						<span style="color:rgba(0,0,0,.65);font-size: 15px;">
-							宸插畬鎴�   {{indexDataCount.footageCplCount}}m
-						    <li class="el-icon-caret-bottom" style="color: #409eff">
-						</span>
-					</div>
-				</el-card>
-			</el-col>
-
-			<el-col :span="6">
-				<el-card class="box-card">
-					<div style="flex:4;">
-						<div>
-							<span style="color:rgba(0,0,0,.65);font-size: 15px;">瀹炴椂鐩戞帶</span>
-							<li class="el-icon-video-camera" style="font-size: 18px;float: right;color: grey">
-						</div>
-						<div>
-						<span style="color:#000;font-size: 26px;word-break: break-all;line-height: 38px">68涓�
-						</span>
-						</div>
-					</div>
-
-					<div style="flex:6;">
-						<div>
-							
-						</div>
-						<span style="color:rgba(0,0,0,.65);font-size: 15px;">
-							宸插畨瑁�  0
-							<li class="el-icon-caret-bottom" style="color: #f56c6c">
-						</span>
-						<span style="color:rgba(0,0,0,.65);font-size: 15px;">
-							鏈畨瑁�   68
-						    <li class="el-icon-caret-bottom" style="color: #409eff">
-						</span>
-					</div>
-				</el-card>
-			</el-col>
-			<el-col :span="6">
-				<el-card class="box-card">
-					<div style="flex:4;">
-						<div>
-							<span style="color:rgba(0,0,0,.65);font-size: 15px;">璧勬枡鏂囦欢</span>
-							<li class="el-icon-s-order" style="font-size: 18px;float: right;color: grey">
-						</div>
-						<div>
-						<span style="color:#000;font-size: 26px;word-break: break-all;line-height: 38px">
-							{{indexDataCount.fileCount}}浠�
-						</span>
-						</div>
-					</div>
-
-					<div style="flex:6;">
-						<span style="color:rgba(0,0,0,.65);font-size: 15px;">
-							鏂藉伐璧勬枡  0
-							<li class="el-icon-caret-bottom" style="color: #f56c6c">
-						</span>
-						<span style="color:rgba(0,0,0,.65);font-size: 15px;">
-							瀹夊叏璧勬枡   0
-						    <li class="el-icon-caret-bottom" style="color: #409eff">
-						</span>
-						<span style="color:rgba(0,0,0,.65);font-size: 15px;">
-							璐ㄩ噺璧勬枡   0
-						    <li class="el-icon-caret-bottom" style="color: #409eff">
-						</span>
-					</div>
-
-				</el-card>
-			</el-col>
-		</el-row>
-		<el-row>
-			<el-col :span="16">
-				<el-card class="box-card">
-					<div style="height: 200px;">
-						<h3>鏉愭枡缁熻</h3>
-					</div>
-				</el-card>
-
-				<el-card class="box-card" style="margin-top: 4px;">
-					<div id="map_div" style="width: 100%;height: 550px;"></div>
-				</el-card>
-
-			</el-col>
-
-			<el-col :span="8">
-				<el-card class="box-card">
-					<div style="width: 100%;height: 20px;">
-						<h3>椤圭洰鎬讳綋杩涘害(%)</h3>
-					</div>
-					<div id="Chart1" style="width: 80%;height: 180px;margin-left: 10%;"></div>
-				</el-card>
-
-				<el-card class="box-card" style="margin-top: 4px;">
-					<div style="width: 100%;height: 20px;margin-bottom: 10px;text-align: center;">
-						<h3>鍦哄湴璇︾粏杩涘害(%)</h3>
-					</div>
-					<div style="width: 100%;height: 500px;overflow: auto">
-
-						<el-row class="rankrow" v-for='entity in stationProcessData' @click.native='viewStation(entity)'>
-							<el-col :span="2" >
-								<div v-if="entity.status=='鍗忚皟涓�'" class="active-red">{{entity.ranking}}</div>
-								<div v-if="entity.status=='寰呭紑宸�'" class="active-yellow">{{entity.ranking}}</div>
-								<div v-if="entity.status=='杩涜涓�'" class="active-blue">{{entity.ranking}}</div>
-
-							</el-col>
-
-							<el-col :span="7">
-								<div style="font-size: 16px">{{entity.station}}</div>
-							</el-col >
-
-							<el-col :span="5">
-								<div style="font-size: 16px">{{entity.status}}</div>
-							</el-col>
-
-							<el-col :span="8">
-								<div>
-									<el-progress :stroke-width="10" :percentage="entity.value"></el-progress>
-								</div>
-							</el-col>
-						</el-row>
-
-					</div>
-
-				</el-card>
-
-			</el-col>
-
-		</el-row>
+		<div id="map_div" style="position:fixed;width: 100%;height: 100vh;margin-top: -5px"></div>
+		<div style="position:fixed;top: 5px">
+			<li onclick="careraFunction()" class="el-icon-video-camera custom-icon" style="font-size: 100px;margin-right: 5px;margin-left: -5px;"></li>
+			<li onclick="tubFunction()" class="el-icon-user custom-icon" style="font-size: 100px;margin-right: 5px;margin-left: -5px;"></li>
+		</div>
+		<div id="Chart1" style="position:fixed;width: 300px;height: 300px;bottom: -60px;right: -40px"></div>
 
 	</div>
 
@@ -285,34 +76,126 @@
 		loadMap();
 		getReallyData();
 		totalProcess();
-		stationProcess();
-		indexCount();
+		//stationProcess();
+		//indexCount();
+		//tubLogs();
 	})
+	//鍦哄湴鍜屽湴鍥剧偣鍑昏仈鍔�
 	function viewStation(station) {
 		var lng = station.lng;
 		var lat = station.lat;
 		map.centerAndZoom(new T.LngLat(lng, lat), 13);
-		// $.modal.openTab("鍦哄湴瀵艰埅",ctx+"/geo/project/navigate?ids="+id);
 	}
 
-	function indexCount() {
-		let url = ctx + "/system/indexDataCount";
+	function tubLogs() {
+
+		const chart = echarts.init(document.getElementById("column-chart"));
+		const option = {
+			tooltip: {
+				trigger: 'axis',
+				axisPointer: {
+					type: 'shadow'
+				}
+			},
+			legend: {},
+			grid: {
+				left: '3%',
+				right: '4%',
+				bottom: '3%',
+				containLabel: true
+			},
+			xAxis: [
+				{
+					type: 'category',
+					data: []
+				}
+			],
+			yAxis: [
+				{
+					type: 'value'
+				}
+			],
+			series: [
+				{
+					name: '鍑哄簱',
+					type: 'bar',
+					emphasis: {
+						focus: 'series'
+					},
+					data: [],
+					itemStyle: {
+						// 淇敼鏌卞瓙鐨勯鑹�
+						color: '#e2b507'
+					}
+				},
+				{
+					name: '鍏ュ簱',
+					type: 'bar',
+					stack: 'Ad',
+					emphasis: {
+						focus: 'series'
+					},
+					data: [],
+					itemStyle: {
+						// 淇敼鏌卞瓙鐨勯鑹�
+						color: '#2992c6'
+					}
+				},
+
+			]
+		};
+
+		let url = ctx + "/system/stat/tubLogData";
 		$.ajaxSettings.async = false;
 		$.get(url,{},function(res){
-			vm.indexDataCount = res.data;
+			vm.tubLogs = res.tubLogs;
+
+			res.tubLogs.forEach(function(value, index, array) {
+				const tubName = value.tubName;
+				const inboundNumber = value.inboundNumber;
+				const outboundNumber = value.outboundNumber;
+				const unit = value.unit;
+				option.xAxis[0].data[index] = tubName;
+				option.series[0].data[index] = outboundNumber;
+				option.series[1].data[index] = inboundNumber;
+			});
+			chart.setOption(option, true);
 		})
 		$.ajaxSettings.async = false;
 	}
 
+	//棣栭〉绗竴琛屼釜鏁扮粺璁�
+	function indexCount() {
+		let url = ctx + "/system/stat/indexDataCount";
+		$.ajaxSettings.async = false;
+		$.get(url,{},function(res){
+			vm.indexDataCount = res.data;
+			vm.indexDataCount.cameraCountNaN = 68 -vm.indexDataCount.cameraCount;
+		})
+		$.ajaxSettings.async = false;
+
+	}
+
+	//鎽勫儚澶村垪琛�
+	function careraFunction() {
+		let url = ctx + "/system/camera";
+		$.modal.openTab("鎽勫儚澶村垪琛�",url);
+	}
+
+	//绠℃潗缁熻
+	function tubFunction() {
+		let url = ctx + "/system/tub";
+		$.modal.openTab("绠℃潗缁熻",url);
+	}
+
+	//鍦哄湴杩涘害
 	function stationProcess() {
-		let url = ctx + "/system/projectProcess";
+		let url = ctx + "/system/stat/projectProcess";
 		$.ajaxSettings.async = false;
 		$.get(url,{},function(res){
 			vm.stationProcessData = res.projectData;
 		})
 		$.ajaxSettings.async = false;
-		console.log(vm.stationProcessData);
-
 	}
 	var vm = new Vue({
 		el: "#app",
@@ -320,9 +203,17 @@
 			return {
 				stationProcessData: [],
 				indexDataCount :"",
+				tubLogs:[],
 			};
 		},
 		methods: {
+			tableRowClassName({ row, rowIndex }) {
+				if (rowIndex % 2 == 0) {
+					return "";
+				} else {
+					return "warning-row";
+				}
+			},
 		}
 	});
 	// 鍔犺浇鍦板浘
@@ -345,6 +236,8 @@
 			map.addOverLay(countriesOverlay1)
 			countriesOverlay.bringToBack();
 		});
+
+		//map.setStyle("indigo");
 	}
 
 	function init(sel, transform) {
@@ -388,7 +281,7 @@
 
 	// 鑾峰彇鏁版嵁搴撶湡瀹炴暟鎹�
 	function getReallyData() {
-		let url = window.location.protocol + "//" + window.location.host + "/bjfw/system/project";
+		let url = window.location.protocol + "//" + window.location.host + "/bjfw/system/stat/project";
 		$.get(url,function(res){
 			var data = res.projects;
 			showProjectPoint(data);
@@ -396,17 +289,35 @@
 	}
 	//鍦板浘涓婂睍绀洪」鐩偣
 	function showProjectPoint(data){
-		var projectIcon = new T.Icon({
-			iconUrl: '/bjfw/images/icon/6.png',
-			iconSize: new T.Point(30, 30),
-			iconAnchor: new T.Point(6, 40),
-		});
+		var projectIcon;
 		for(let i =0;i<data.length;i++){
+
+			if (data[i].status === '1'){
+				projectIcon = new T.Icon({
+					iconUrl: '/bjfw/images/icon/yellow.png',
+					iconSize: new T.Point(30, 30),
+					iconAnchor: new T.Point(6, 40),
+				});
+			}else if (data[i].status === '2'){
+				projectIcon = new T.Icon({
+					iconUrl: '/bjfw/images/icon/blue.png',
+					iconSize: new T.Point(30, 30),
+					iconAnchor: new T.Point(6, 40),
+				});
+			}else {
+				projectIcon = new T.Icon({
+					iconUrl: '/bjfw/images/icon/red.png',
+					iconSize: new T.Point(30, 30),
+					iconAnchor: new T.Point(6, 40),
+				});
+			}
+
 			let lng = data[i].lng;
 			let lat = data[i].lat;
 			let marker = new T.Marker(new T.LngLat(lng, lat), { title: "鍦哄湴浣嶇疆",icon:projectIcon});
 			let proj = infoWindowProject(data[i]);
 			addClickHandler(proj, marker);
+
 			map.addOverLay(marker);
 		}
 
@@ -422,7 +333,7 @@
 				"<font style='font-weight: bolder;'>鍦哄湴缂栧彿 :</font>" + e.code + "<br>" +
 				"<font style='font-weight: bolder;'>鍦哄湴鍚嶅瓧 :</font>" + e.fullName + "<br>" +
 				"<font style='font-weight: bolder;'>璐熻矗浜� :</font>" + e.leader + "<br>" +
-				"<a class='btn' onclick=viewdata(" +"'" + ids+ "'" + ")>鍦哄湴鏁版嵁</a>" +
+				"<a class='btn' onclick=viewdata(" +"'" + ids+ "'" + ")>鍦哄湴鏁版嵁</a>" + "<br>" +
 				"</div>" +
 				"</div>" +
 				"</div>";
@@ -434,6 +345,7 @@
 
 	function addClickHandler(content, marker) {
 		marker.addEventListener("click", function (e) {
+			console.log("浣犵偣鍑讳簡",content);
 			openInfo(content, e)
 		});
 	}
@@ -444,19 +356,21 @@
 		map.openInfoWindow(markerInfoWin, point); //寮�鍚俊鎭獥鍙�
 	}
 
+
 	//鎬昏繘搴︿华琛ㄧ洏
 	function totalProcess() {
 		var Chart1 = echarts.init(document.getElementById('Chart1'));
 		var pointerData = 0; // 浠〃鎸囬拡鏁版嵁
-		let url = ctx + "/system/totalProcess";
+		let url = ctx + "/system/stat/totalProcess";
 		$.ajaxSettings.async = false;
 		$.get(url,{},function(res){
 			pointerData = res.pointerData;
 			pointerData = (pointerData*100).toFixed(0);
-		})
+		});
+
 		$.ajaxSettings.async = false;
 		var option = {
-			backgroundColor: "#fff",
+			backgroundColor: "transparent",
 			series: [
 				{
 					type: "gauge",
@@ -595,11 +509,6 @@
 		Chart1.setOption(option);
 	}
 
-
-
-
-
 </script>
-
 </body>
 </html>

--
Gitblit v1.9.1