From 41750848c6cc6506fa107036d04b28c0f28cfba8 Mon Sep 17 00:00:00 2001 From: zmk <496160012@qq.com> Date: 星期三, 03 七月 2024 16:19:07 +0800 Subject: [PATCH] 提交 --- javaweb-plus/javaweb-admin/src/main/resources/templates/main3.html | 639 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 639 insertions(+), 0 deletions(-) diff --git a/javaweb-plus/javaweb-admin/src/main/resources/templates/main3.html b/javaweb-plus/javaweb-admin/src/main/resources/templates/main3.html new file mode 100644 index 0000000..c6eb966 --- /dev/null +++ b/javaweb-plus/javaweb-admin/src/main/resources/templates/main3.html @@ -0,0 +1,639 @@ +<!DOCTYPE html> +<html lang="zh" xmlns:th="http://www.thymeleaf.org"> +<head> +<th:block th:include="include :: header('寮瑰眰缁勪欢')" /> +<link href="../static/css/bootstrap.min.css" th:href="@{/css/bootstrap.min.css}" rel="stylesheet" /> +<link href="../static/css/font-awesome.min.css" th:href="@{/css/font-awesome.min.css}" rel="stylesheet" /> +<link href="../static/css/main/animate.min.css" th:href="@{/css/main/animate.min.css}" rel="stylesheet" /> +<link href="../static/css/main/style.min862f.css" th:href="@{/css/main/style.min862f.css}" rel="stylesheet" /> +<link rel="stylesheet" th:href="@{/css/custom/main.css}" /> +<link href="../static/js/elementUI/index.css" th:href="@{/js/elementUI/index.css}" rel="stylesheet" /> + +<style type="text/css"> + .content { + width: 100%; + background-color: rgba(0,0,0,0.01) !important; + padding:10px; + } + body{ + padding: 10px; + } + [v-cloak]{ + display: none; + } + .el-card__header{ + height: 40px; + padding: 8px 20px; + } + .active-red{ + width: 20px; + height: 20px; + border-radius: 50%; + font-size: 14px; + color: white; + background: #F56C6C; + text-align: center; + line-height: 20px; + float: left; + } + + .active-yellow{ + width: 20px; + height: 20px; + border-radius: 50%; + font-size: 14px; + color: white; + background: #E6A23C; + text-align: center; + line-height: 20px; + float: left; + } + + .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; + cursor: pointer; + } + .ilblock{ + border-left: 1px solid #e3e5e7; + padding: 0 40px; + align-content: center; + } + .ilblock span{ + display: block; + line-height: 30px; + } + +</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;padding-right: 20px;" > + <div> + <li class="el-icon-s-promotion" style="font-size: 18px;margin-right: 5px;margin-left: -5px;color: #409eff;"></li> + <span style="color:rgba(0,0,0,.65);font-size: 15px;font-weight: bold;">鍦哄湴鏁伴噺</span> + </div> + <div style="text-align: center;"> + <span style="color:#000;font-size: 30px;word-break: break-all;line-height: 70px">34 + </span> + </div> + </div> + + <div style="flex:6;" class="ilblock"> + <span style="color:rgba(0,0,0,.65);font-size: 15px;"> + 鍗忚皟涓� + <span style="float: right"> + {{indexDataCount.projectStatus0}} + </span> +<!-- <li class="el-icon-caret-bottom" style="color: #f56c6c">--> + </span> + <span style="color:rgba(0,0,0,.65);font-size: 15px;"> + 寰呭紑宸� + <span style="float: right">{{indexDataCount.projectStatus1}}</span> +<!-- <li class="el-icon-caret-bottom" style="color: #e6a23c">--> + </span> + <span style="color:rgba(0,0,0,.65);font-size: 15px;"> + 杩涜涓� + <span style="float: right">{{indexDataCount.projectStatus2}}</span> +<!-- <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;padding-right: 20px;"> + <div> + <li class="el-icon-coin" style="font-size: 18px;margin-right: 5px;margin-left: -5px;color: #085abe"></li> + <span style="color:rgba(0,0,0,.65);font-size: 15px;font-weight: bold;">閽诲瓟杩涘昂</span> + </div> + <div style="text-align: center"> + <span style="color:#000;font-size: 30px;word-break: break-all;line-height: 70px;">647 + </span> + </div> + </div> + + <div style="flex:6;" class="ilblock"> + <span style="color:rgba(0,0,0,.65);font-size: 15px;"> + 鎬昏繘灏� <span style="float: right">{{indexDataCount.footageCount}}m</span> +<!-- <li class="el-icon-caret-bottom" style="color: #f56c6c">--> + </span> + <span style="color:rgba(0,0,0,.65);font-size: 15px;"> + 宸插畬鎴� <span style="float: right">{{indexDataCount.footageCplCount}}m</span> +<!-- <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;padding-right: 20px;"> + <div> + <li class="el-icon-video-camera" style="font-size: 18px;margin-right: 5px;margin-left: -5px;color: #11d713"></li> + <span style="color:rgba(0,0,0,.65);font-size: 15px;font-weight: bold;">瀹炴椂鐩戞帶</span> + </div> + <div style="text-align: center"> + <span style="color:#000;font-size: 30px;word-break: break-all;line-height: 70px">68 + </span> + </div> + </div> + + <div style="flex:6;" class="ilblock"> + <div> + + </div> + <span style="color:rgba(0,0,0,.65);font-size: 15px;"> + 宸插畨瑁� <span style="float: right">0</span> +<!-- <li class="el-icon-caret-bottom" style="color: #f56c6c">--> + </span> + <span style="color:rgba(0,0,0,.65);font-size: 15px;"> + 鏈畨瑁� <span style="float: right">68</span> +<!-- <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;padding-right: 20px;"> + <div> + <li class="el-icon-s-order" style="font-size: 18px;margin-right: 5px;margin-left: -5px;color: #917ed0"></li> + <span style="color:rgba(0,0,0,.65);font-size: 15px;font-weight: bold;">璧勬枡鏂囦欢</span> + </div> + <div style="text-align: center"> + <span style="color:#000;font-size: 30px;word-break: break-all;line-height: 70px;"> + {{indexDataCount.fileCount}} + </span> + </div> + </div> + + <div style="flex:6;" class="ilblock"> + <span style="color:rgba(0,0,0,.65);font-size: 15px;"> + 鏂藉伐璧勬枡 <span style="float: right">0</span> +<!-- <li class="el-icon-caret-bottom" style="color: #f56c6c">--> + </span> + <span style="color:rgba(0,0,0,.65);font-size: 15px;"> + 瀹夊叏璧勬枡 <span style="float: right">0</span> +<!-- <li class="el-icon-caret-bottom" style="color: #409eff">--> + </span> + <span style="color:rgba(0,0,0,.65);font-size: 15px;"> + 璐ㄩ噺璧勬枡 <span style="float: right">0</span> +<!-- <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> + + <script th:src="@{/js/jquery.min.js}"></script> + <script th:src="@{/js/bootstrap.min.js}"></script> + <script th:src="@{/ajax/libs/flot/jquery.flot.js}"></script> + <script th:src="@{/ajax/libs/report/echarts/echarts-all.js}"></script> + <script th:src="@{/js/tdt.js}" type="text/javascript"></script> + <script src="http://lbs.tianditu.gov.cn/js/lib/d3/d3.min.js" type="text/javascript"></script> + <script src="http://lbs.tianditu.gov.cn/api/js4.0/opensource/openlibrary/D3SvgOverlay.js" type="text/javascript"></script> + <script th:src="@{/js/custom/main.js}"></script> + + <script th:src="@{/js/vue.min.js}"></script> + <script th:src="@{/js/elementUI/index.js}"></script> + + <th:block th:include="include :: sparkline-js" /> + <th:block th:include="include :: footer" /> + + <script th:inline="javascript"> + + $(function() { + loadMap(); + getReallyData(); + totalProcess(); + stationProcess(); + indexCount(); + tubLogs(); + }) + function viewStation(station) { + var lng = station.lng; + var lat = station.lat; + map.centerAndZoom(new T.LngLat(lng, lat), 13); + } + + function tubLogs() { + let url = ctx + "/system/tubLogData"; + $.ajaxSettings.async = false; + $.get(url,{},function(res){ + vm.tubLogData = res.tubLogData; + }) + $.ajaxSettings.async = false; + } + + function indexCount() { + let url = ctx + "/system/indexDataCount"; + $.ajaxSettings.async = false; + $.get(url,{},function(res){ + vm.indexDataCount = res.data; + }) + $.ajaxSettings.async = false; + } + + function stationProcess() { + let url = ctx + "/system/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", + data() { + return { + stationProcessData: [], + indexDataCount :"", + tubLogData:[], + }; + }, + methods: { + } + }); + // 鍔犺浇鍦板浘 + let map=null; + var countries = []; + var countriesOverlay = new T.D3Overlay(init,redraw); + var countriesOverlay1 = new T.D3Overlay(init1,redraw1); + function loadMap() { + map = new T.Map('map_div'); + map.centerAndZoom(new T.LngLat(116.38, 40.2), 9); + + var control = new T.Control.Zoom(); + control.setPosition(T_ANCHOR_TOP_RIGHT); + map.addControl(control);// 娣诲姞缂╂斁骞崇Щ鎺т欢 + var scale = new T.Control.Scale();// 鍒涘缓姣斾緥灏烘帶浠跺璞� + d3.json("/bjfw/js/custom/beijing.json", function (data) { + countries = data.features; + map.addOverLay(countriesOverlay) + countriesOverlay.bringToBack(); + map.addOverLay(countriesOverlay1) + countriesOverlay.bringToBack(); + }); + } + + function init(sel, transform) { + var upd = sel.selectAll('path.geojson').data(countries); + upd.enter() + .append('path') + .attr("class", "geojson") + .attr('stroke', 'grey') + .attr('fill', function (d, i) { + //return d3.hsl(Math.random() * 360, 0.9, 0.5) + return "transparent" + }) + .attr('fill-opacity', '0') + } + function redraw(sel, transform) { + sel.selectAll('path.geojson').each( + function (d, i) { + d3.select(this).attr('d', transform.pathFromGeojson) + } + ) + } + function init1(sel, transform) { + var upd = sel.selectAll('path.geojson1').data(countries); + upd.enter() + .append('path') + .attr("class", "geojson1") + .attr('stroke', 'grey') + .attr('fill', function (d, i) { + return d3.hsl(Math.random() * 360, 0.9, 0.5) + }) + .attr('fill-opacity', '0.1') + } + + function redraw1(sel, transform) { + sel.selectAll('path.geojson1').each( + function (d, i) { + d3.select(this).attr('d', transform.pathFromGeojson) + } + ) + } + + // 鑾峰彇鏁版嵁搴撶湡瀹炴暟鎹� + function getReallyData() { + let url = window.location.protocol + "//" + window.location.host + "/bjfw/system/project"; + $.get(url,function(res){ + var data = res.projects; + showProjectPoint(data); + }) + } + //鍦板浘涓婂睍绀洪」鐩偣 + 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), + }); + for(let i =0;i<data.length;i++){ + 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); + } + + } + + function infoWindowProject(e){ + + let ids = e.ids + ""; + var sContent = + "<div style='margin:0px;'>" + + "<div>" + + "<div style='margin:1px 0px 1px 2px;width: 200px;'>" + + "<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>" + + "</div>" + + "</div>" + + "</div>"; + return sContent; + } + function viewdata (id) { + $.modal.openTab("鍦哄湴瀵艰埅",ctx+ "/geo/project/navigate?ids="+id); + } + + function addClickHandler(content, marker) { + marker.addEventListener("click", function (e) { + openInfo(content, e) + }); + } + + function openInfo(content, e) { + var point = e.lnglat; + var markerInfoWin = new T.InfoWindow(content, { offset: new T.Point(0, -30) }); // 鍒涘缓淇℃伅绐楀彛瀵硅薄 + map.openInfoWindow(markerInfoWin, point); //寮�鍚俊鎭獥鍙� + } + + //鎬昏繘搴︿华琛ㄧ洏 + function totalProcess() { + var Chart1 = echarts.init(document.getElementById('Chart1')); + var pointerData = 0; // 浠〃鎸囬拡鏁版嵁 + let url = ctx + "/system/totalProcess"; + $.ajaxSettings.async = false; + $.get(url,{},function(res){ + pointerData = res.pointerData; + pointerData = (pointerData*100).toFixed(0); + }) + $.ajaxSettings.async = false; + var option = { + backgroundColor: "#fff", + series: [ + { + type: "gauge", + radius: 80, + z: 1, + startAngle: 225, + endAngle: -45, + splitNumber: 50, + title: { + color: "red", + }, + splitLine: { + show: true, + length: 15, + distance: -10, + lineStyle: { + color: "#fff", + width: 1, + }, + }, + detail: { + show: true, + offsetCenter: [0, 60], + fontSize: 22, + formatter: (val) => [`{a|${val}}`, `{b|%}`].join(""), + rich: { + a: { + fontSize: 20, + color: "rgba(84, 108, 198, 0.65)", + }, + b: { + fontSize: 24, + color: "rgba(84, 108, 198, 0.65)", + }, + }, + }, + // 浠〃鐩樼殑绾匡紝棰滆壊鍊间负涓�涓暟缁� + axisLine: { + show: true, + // 涓ょ鏄惁璁剧疆涓哄渾瑙掞紱鍦�5.0涔嬪悗鐨勭増鏈湁鏁� + roundCap: false, + lineStyle: { + width: 15, + shadowColor: "#0093ee", //榛樿閫忔槑 + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowBlur: 20, + opacity: 1, + color: [ + [ + pointerData / 100, + { + x: 0, + y: 0, + x1: 1, + y1: 0, + colorStops: [ + { + offset: 0, + color: "rgba(0, 255, 255, 0.6)", + }, + { + offset: 1, + color: "rgba(0, 0, 255, .6)", + }, + ], + }, + ], + [1, "rgba(0,0,0,0.15)"], + ], + }, + }, + // 浠〃鐩樺埢搴︽爣绛� + axisLabel: { + show: true, + color: "rgba(84, 108, 198, 0.65)", + fontSize: 14, + distance: 20, + formatter: (val) => { + const num = Math.floor(val); + return num % 20 === 0 ? num : ""; + }, + }, + // 鍒诲害 + axisTick: { + show: false, + }, + // 鎸囬拡锛屾璁剧疆浠呭5.0浠ヤ笂鐨勭増鏈敓鏁� + anchor: { + show: true, + icon: "circle", + showAbove: true, + size: 20, + itemStyle: { + borderWidth: 6, + borderColor: "rgba(84, 108, 198, 0.85)", + }, + }, + data: [pointerData], + }, + { + // 鑳屾櫙娓愬彉鑹� + type: "pie", + radius: "80%", + // 涓嶅搷搴斿強瑙﹀彂榧犳爣浜嬩欢 + silent: true, + // 鍏抽棴鑳屾櫙鍔ㄧ敾 + animation: false, + z: 0, + itemStyle: { + color: { + type: "radial", // 寰勫悜娓愬彉 + x: 0.5, + y: 0.5, + r: 0.25, + colorStops: [ + { + offset: 0, + color: "rgba(84, 103, 198, 0.6)", + }, + { + offset: 0.1, + color: "rgba(84, 103, 198, 0.35)", + }, + { + offset: 1, + color: "rgba(84, 103, 198, 0)", + }, + ], + }, + }, + data: [pointerData], + }, + ], + }; + Chart1.setOption(option); + } + + + + + +</script> + +</body> +</html> -- Gitblit v1.9.1