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 | 411 ++++++++++++++++++++++------------------------------------ 1 files changed, 158 insertions(+), 253 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 f9af9eb..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,248 +13,45 @@ .content { width: 100%; background-color: rgba(0,0,0,0.01) !important; - } - body{ - padding: 10px; + 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> - <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> - <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> - <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> - <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> - <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> - <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> - <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> - <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> - <h3>鏉愭枡缁熻</h3> - - <el-col :span="10" style="height: 200px;"> - </el-col> - <el-col :span="14" style="height: 200px;"> - </el-col> - </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> @@ -279,10 +76,11 @@ loadMap(); getReallyData(); totalProcess(); - stationProcess(); - indexCount(); - tubLogs(); + //stationProcess(); + //indexCount(); + //tubLogs(); }) + //鍦哄湴鍜屽湴鍥剧偣鍑昏仈鍔� function viewStation(station) { var lng = station.lng; var lat = station.lat; @@ -290,32 +88,114 @@ } function tubLogs() { - let url = ctx + "/system/tubLogData"; + + 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.tubLogData = res.tubLogData; + 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/indexDataCount"; + 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", @@ -323,10 +203,17 @@ return { stationProcessData: [], indexDataCount :"", - tubLogData:[], + tubLogs:[], }; }, methods: { + tableRowClassName({ row, rowIndex }) { + if (rowIndex % 2 == 0) { + return ""; + } else { + return "warning-row"; + } + }, } }); // 鍔犺浇鍦板浘 @@ -349,6 +236,8 @@ map.addOverLay(countriesOverlay1) countriesOverlay.bringToBack(); }); + + //map.setStyle("indigo"); } function init(sel, transform) { @@ -392,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); @@ -400,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); } @@ -426,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>"; @@ -438,6 +345,7 @@ function addClickHandler(content, marker) { marker.addEventListener("click", function (e) { + console.log("浣犵偣鍑讳簡",content); openInfo(content, e) }); } @@ -448,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", @@ -599,11 +509,6 @@ Chart1.setOption(option); } - - - - </script> - </body> </html> -- Gitblit v1.9.1