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