From 0a39c24bbc9b91eb552d8201ba6907305233b8f5 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Sat, 04 Feb 2023 14:22:38 +0800
Subject: [PATCH] 水文水环境分析-洪水淹没:1、添加淹没图弹窗;2、模拟分析窗口改为屏幕显示,取消弹窗

---
 widgets/FloodAnalysis/Widget.html                    |   23 +++++
 corelib/common/popup/evaluateAnalysis.html           |    2 
 corelib/common/popup/img/floodAnalysisEvaluate-2.png |    0 
 widgets/FloodAnalysis/css/style.css                  |   55 +++++++++++++
 corelib/common/popup/js/floodImage.js                |   12 +++
 widgets/RiskEarlyWarning/Widget.js                   |    1 
 corelib/common/popup/floodImage.html                 |   19 ++++
 widgets/FloodAnalysis/Widget.js                      |   37 +++++++--
 corelib/common/popup/img/floodAnalysisEvaluate.jpg   |    0 
 corelib/common/popup/css/style.css                   |   12 ++
 corelib/common/popup/js/evaluateAnalysis.js          |   42 +++++++++-
 11 files changed, 185 insertions(+), 18 deletions(-)

diff --git a/corelib/common/popup/css/style.css b/corelib/common/popup/css/style.css
index 6cd4d36..9730dc2 100644
--- a/corelib/common/popup/css/style.css
+++ b/corelib/common/popup/css/style.css
@@ -845,7 +845,7 @@
     margin: 15px 0 15px 0;
 }
 
-.evaluate-table-thead tr td{
+.evaluate-table-thead tr th{
     text-align: center;
     border-right: 1px solid #CFCFCF;
     border-bottom: 1px solid #CFCFCF;
@@ -867,3 +867,13 @@
     width: 100%;
     display: none;
 }
+
+/**淹没图**/
+.flood-image-top img{
+    width: 100%;
+}
+
+.flood-image-bottom{
+    width: 96%;
+    text-align: right;
+}
diff --git a/corelib/common/popup/evaluateAnalysis.html b/corelib/common/popup/evaluateAnalysis.html
index ceab667..7ee6673 100644
--- a/corelib/common/popup/evaluateAnalysis.html
+++ b/corelib/common/popup/evaluateAnalysis.html
@@ -61,7 +61,7 @@
         </div>
 
         <div class="evaluate-bottom">
-            <button type="button">生成淹没图</button>
+            <button id="create-flood-image" type="button">生成淹没图</button>
         </div>
 
     </div>
diff --git a/corelib/common/popup/floodImage.html b/corelib/common/popup/floodImage.html
new file mode 100644
index 0000000..b6cf759
--- /dev/null
+++ b/corelib/common/popup/floodImage.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>淹没图弹出框</title>
+    <link rel="stylesheet" href="./css/style.css">
+    <link rel="stylesheet" href="">
+</head>
+<body>
+    <div class="flood-image-box">
+        <div class="flood-image-top">
+            <img src="img/floodAnalysisEvaluate-2.png">
+        </div>
+        <div class="flood-image-bottom">
+            <a href="img/floodAnalysisEvaluate-2.png" download="淹没图.jpg"><button id="exportImage" type="button" >导出</button></a>
+        </div>
+    </div>
+</body>
+</html>
diff --git a/corelib/common/popup/img/floodAnalysisEvaluate-2.png b/corelib/common/popup/img/floodAnalysisEvaluate-2.png
new file mode 100644
index 0000000..ed2506c
--- /dev/null
+++ b/corelib/common/popup/img/floodAnalysisEvaluate-2.png
Binary files differ
diff --git a/corelib/common/popup/img/floodAnalysisEvaluate.jpg b/corelib/common/popup/img/floodAnalysisEvaluate.jpg
new file mode 100644
index 0000000..8cfe85f
--- /dev/null
+++ b/corelib/common/popup/img/floodAnalysisEvaluate.jpg
Binary files differ
diff --git a/corelib/common/popup/js/evaluateAnalysis.js b/corelib/common/popup/js/evaluateAnalysis.js
index 0ce5ace..fcaf80c 100644
--- a/corelib/common/popup/js/evaluateAnalysis.js
+++ b/corelib/common/popup/js/evaluateAnalysis.js
@@ -1,4 +1,16 @@
 $(function () {
+    //获取父窗口传来的数据
+    var data = JSON.parse(GetQueryString("data"))
+    //配置饼图数据
+    var pieData = []
+    if (data.length>0){
+        data.forEach(e=>{
+            pieData.push({
+                value : e.people,
+                name:e.name
+            })
+        })
+    }
     // change事件
     $('input[type=radio][name=value]').change(function () {
         if (this.value == 'list'){
@@ -14,6 +26,11 @@
             $('.evaluate-echarts').show()
         }
     });
+
+    //淹没图弹窗事件
+    $('#create-flood-image').click(function (){
+        imagePopup()
+    })
 
     //加载饼图
     function loadEcharts(){
@@ -50,11 +67,7 @@
                     labelLine: {
                         show: false
                     },
-                    data: [
-                        { value: 1048, name: '会昌县' },
-                        { value: 735, name: '石城县' },
-                        { value: 580, name: '宁都县' },
-                    ]
+                    data: pieData
                 }
             ]
         }
@@ -81,9 +94,26 @@
     //获取参数
     function GetQueryString(name) {
         var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
-        var r = window.location.search.substr(1).match(reg);
+        var r = decodeURI(window.location.search).substr(1).match(reg);
         if (r != null) return unescape(r[2]);
         return null;
     }
 
+    //淹没图弹窗
+    function imagePopup(){
+        var url = './corelib/common/popup/floodImage.html';
+        var top = ($(window).height() - 526) / 2;
+        var left = ($(window).width() - 500 - 340) / 2 + 340;
+        parent.layer.open({
+            title:'影响分析',
+            type: 2,
+            maxmin: false, //开启最大化最小化按钮
+            area: ['1000px', '800px'],
+            skin: 'floodImage',
+            offset: [top, left],
+            content: url,
+            id: "floodImageLayer",
+            closeBtn: 1
+        });
+    }
 });
diff --git a/corelib/common/popup/js/floodImage.js b/corelib/common/popup/js/floodImage.js
new file mode 100644
index 0000000..94d295e
--- /dev/null
+++ b/corelib/common/popup/js/floodImage.js
@@ -0,0 +1,12 @@
+$(function () {
+    $('#exportImage').click(function () {
+        exportImage()
+    })
+
+
+    function exportImage(){
+        //          ./img/floodAnalysisEvaluate.jpg
+        // $('.flood-image-bottom a').attr('href','./img/floodAnalysisEvaluate.jpg')
+    }
+
+});
diff --git a/widgets/FloodAnalysis/Widget.html b/widgets/FloodAnalysis/Widget.html
index 904287a..591d661 100644
--- a/widgets/FloodAnalysis/Widget.html
+++ b/widgets/FloodAnalysis/Widget.html
@@ -20,4 +20,27 @@
 <!--			</div>-->
 		</div>
 	</div>
+
+	<div class="flood-detail">
+		<div class="flood-detail-header">
+			<i></i> 洪水淹没详情
+		</div>
+
+		<div class="flood-detail-content">
+			<div class="flood-detail-text">
+				<div>
+					<span>0-3m淹没面积:</span><span>10km²</span>
+				</div>
+				<div>
+					<span>1-2m淹没面积:</span><span>20km²</span>
+				</div>
+				<div>
+					<span>>3m淹没面积:</span><span>22km²</span>
+				</div>
+			</div>
+			<div class="flood-detail-button">
+				<input type="button" id="flood-detail-ksfx" value="开始分析" />
+			</div>
+		</div>
+	</div>
 </div>
diff --git a/widgets/FloodAnalysis/Widget.js b/widgets/FloodAnalysis/Widget.js
index 7e76a7a..3f9e54f 100644
--- a/widgets/FloodAnalysis/Widget.js
+++ b/widgets/FloodAnalysis/Widget.js
@@ -49,8 +49,7 @@
 				this.map.scene.globe.depthTestAgainstTerrain = true;
 				//取消双击事件
 				this.map.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);
-
-
+				//绘制水面事件
 				$("#flood_hzsm_headtab").click(function () {
 					DrawDynamicClampGround.startDrawingPolyline(self.map, function (cartesians) {
 						if (self.drawingPolyline != undefined)
@@ -67,12 +66,14 @@
 						cartesians.splice(cartesians.length - 1, cartesians.length);
 						self.drawLines(cartesians);
 						self.movehandLer()
+						self.showDetail(true)
 					});
 				});
 
 				$('#flood_qcsmx_headtab').click(function () {
 					self.map.entities.remove(self.drawingPolyline);
 					self.map.scene.primitives.remove(self.riverPrimitive);
+					self.showDetail(false)
 				})
 
 
@@ -96,6 +97,9 @@
 				// $("#thematic_smxj_headtab").click(function () {
 				// 	self.offsetHeight(-Number($("#thematic_bhz_headtab").val()), 5);
 				// });
+				$('#flood-detail-ksfx').click(function () {
+					self.floodAnalysisPopup()
+				})
 
 
 			},
@@ -111,7 +115,6 @@
 			prepareVertex: function () {
 				if (this.positions.length > 0) {
 					this.sideRes = this._lines2Plane(this.positions, this.riverWidth, this.riverHeight);
-					console.log(this.sideRes,"----000----")
 				}
 			},
 			setPositions: function (e) {
@@ -312,6 +315,12 @@
 				$($('div.cesium-viewer').find('.cesium-baseLayerPicker-choices')[0]).children('div:eq(0)').trigger('click');
 				$($('div.cesium-viewer').find('.cesium-baseLayerPicker-choices')[1]).children('div:eq(2)').trigger('click');
 
+				this.map.camera.flyTo({
+					destination: Cesium.Cartesian3.fromDegrees(116.021604,25.893668, 50000),
+				});
+
+				this.showDetail(false)
+
 			},
 
 			onClose: function () {
@@ -440,8 +449,8 @@
 			//点击事件
 			clickHand:function (click){
 				var pickedObjects = this.map.scene.pick(click.position);
-				if (pickedObjects.primitive instanceof Cesium.Primitive) {
-					this.canvasToImage()
+				if (pickedObjects && pickedObjects.primitive instanceof Cesium.Primitive) {
+					// this.canvasToImage()
 					this.floodAnalysisPopup()
 				}
 			},
@@ -460,14 +469,16 @@
 						inPolygon.push(this.peoplePositionArray[i])
 					}
 				}
+				var jsonStr = JSON.stringify(inPolygon)
+
 				layer.open({
-					title:'模拟分析',
+					title:'评估分析',
 					type: 2,
 					maxmin: false, //开启最大化最小化按钮
 					area: ['1100px', '600px'],
 					skin: 'floodAnalysis',
 					offset: [top, left],
-					content: urlEvaluate,
+					content: urlEvaluate + "?data=" + encodeURIComponent(jsonStr),//使用encodeURIComponent转码,避免中文字符乱码,避免url截取错误
 					id: "floodAnalysisLayer",
 					closeBtn: 1,
 					//把父页面数据传递给子弹窗并渲染
@@ -476,7 +487,6 @@
 						var body = layer.getChildFrame("body",index);
 						//得到iframe页的窗口对象
 						var iframeWin = window[layero.find('iframe')[0]['name']];
-						console.log(iframeWin)
 						// //渲染子页面中的img
 						// iframeWin.$('#canvasImage')[0].src = self.canvasImage;
 						var table = ""
@@ -513,6 +523,15 @@
 			addPoint:function (){
 				const url = './widgets/FloodAnalysis/data.json'
 				this.getJsonUrl(url)
+			},
+
+			showDetail:function(show){
+				//显示详情
+				if (show){
+					$('.flood-detail').show()
+				}else {
+					$('.flood-detail').hide()
+				}
 			},
 
 			//判断点是否在多边形内部
@@ -589,7 +608,7 @@
 				u8arr[n] = bstr.charCodeAt(n);
 			}
 			return new Blob([u8arr], { type: mime });
-		}
+		},
 
 
 		});
diff --git a/widgets/FloodAnalysis/css/style.css b/widgets/FloodAnalysis/css/style.css
index 9b43334..1c686d4 100644
--- a/widgets/FloodAnalysis/css/style.css
+++ b/widgets/FloodAnalysis/css/style.css
@@ -83,3 +83,58 @@
 .jimu-widget-FloodAnalysis .flood-water-analysis .flood-water-analysis-new input:nth-child(even) {
 	float: right;
 }
+
+.flood-detail{
+	position: fixed;
+	top: 270px;
+	width: 440px;
+	height: 200px;
+	left: 30px !important;
+	overflow-x: hidden;
+	background: rgba(31, 39, 48, .7);
+	font-size: 14px;
+	border: 1px solid rgb(69, 154, 251);
+	border-radius: 5px;
+	color: rgb(255, 255, 255);
+	display: none;
+}
+
+.flood-detail-header {
+	position: relative;
+	width: 100%;
+	height: 40px;
+	line-height: 40px;
+	font-size: 20px;
+	border-bottom: 1px solid rgb(69, 154, 251);
+}
+
+.flood-detail-header i {
+	display: inline-block;
+	margin-left: 6px;
+	vertical-align: middle;
+	width: 20px;
+	height: 20px;
+	background: url(../../../images/toolbox.png ) no-repeat 0 -20px;
+	background-size: 20px;
+}
+
+.flood-detail-content{
+	height: 45%;
+	text-align: center;
+	margin: 12px 17px 10px 17px;
+}
+
+.flood-detail-text{
+	height: 95%;
+	font-size: 20px;
+}
+
+.flood-detail-button input{
+	margin: 5px 0;
+	width: 48%;
+	height: 36px;
+	color: #fff;
+	background: rgb(2,24,55);
+	border: 1px solid rgb(69, 154, 251);
+	border-radius: 4px;
+}
diff --git a/widgets/RiskEarlyWarning/Widget.js b/widgets/RiskEarlyWarning/Widget.js
index fc4b8af..c15fca6 100644
--- a/widgets/RiskEarlyWarning/Widget.js
+++ b/widgets/RiskEarlyWarning/Widget.js
@@ -3604,7 +3604,6 @@
             // 注册鼠标左键单击事件
             clickHand: function clickHand(click) {
                 var pickedObjects = this.map.scene.drillPick(click.position);
-                console.log(pickedObjects,click,"5555")
                 if (Cesium.defined(pickedObjects)) {
                     for (var i = 0; i < pickedObjects.length; ++i) {
                         var obj = pickedObjects[i].id;

--
Gitblit v1.9.3