From 67d3f679bad4d67a9dcf396fac97368a72f02910 Mon Sep 17 00:00:00 2001
From: xiebin <123456>
Date: Tue, 21 Feb 2023 13:36:36 +0800
Subject: [PATCH] 修改洪水淹没分析水位计算方式

---
 widgets/FloodAnalysis/Widget.js |   46 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 34 insertions(+), 12 deletions(-)

diff --git a/widgets/FloodAnalysis/Widget.js b/widgets/FloodAnalysis/Widget.js
index 1fa5a18..c32ad52 100644
--- a/widgets/FloodAnalysis/Widget.js
+++ b/widgets/FloodAnalysis/Widget.js
@@ -63,7 +63,8 @@
             waterlineSelectName: "http://localhost:82/blade-ycreal/waterline/selectName",
             childpage: "http://localhost:82/blade-ycreal/water/childpage",
             getCzByGlCodeByGlQdj: "http://localhost:82/blade-ycreal/waterline/getCzByGlCodeByGlQdj",
-            getHistoryList: "http://localhost:82/blade-ycreal/inundationResult/list",
+            getRealTimeWaterByhdId: "http://localhost:82/blade-ycreal/waterline/getRealTimeWaterByhdId",
+            getHistoryList: "http://192.168.0.207:82/blade-ycreal/inundationResult/list",
             saveHistoryData: "http://localhost:82/blade-ycreal/inundationResult/save",
             getCoordinatesMinQdj: "http://localhost:82/blade-ycreal/water/getCoordinatesMinQdj",
         },
@@ -174,8 +175,8 @@
             })
 
             //水位输入事件
-            $('#sw-input').on("input", function () {
-                self.getYcSub()
+            $('#sw-input').on("input", function (e,v) {
+                // self.getYcSub($('#sw-input').val())
             })
 
             //河段选择框改变事件
@@ -186,8 +187,12 @@
                 $('#glzd').val(selected.stnm)
                 $('#qdj').val(selected.gl_qdj.substring(0,selected.gl_qdj.length - 2))
                 self.currentHd = selected
+                // 获取水面线数据
                 self.getSmxData(selected.river_code, selected.default_smx)
+                // 获取最近起点距数据
                 self.getMin(selected.default_smx,selected.gl_qdj)
+                // 获取实时水位
+
                 if (self.waterEntity)
                     self.map.entities.remove(self.waterEntity)
                 //地图定位
@@ -365,6 +370,7 @@
                         $('#flood-tbody').html("")
                         $('#analysis-pagination').hide()
                     }
+
                     data.forEach(e => {
 
                         self.smxSelect.append("<option value=" + e.smxcode + ">" + e.waterline + "</option>");
@@ -531,12 +537,12 @@
         },
 
         //预测水位计算
-        getYcSub() {
+        getYcSub(val) {
             const self = this
             self.analysisTableList.forEach(e => {
                 e.lng = Number(e.lng).toFixed(4)
                 e.lat = Number(e.lat).toFixed(4)
-                e.sw = self.calculateSw(e.water, $('#sw-input').val())
+                e.sw = self.calculateSw(e.water, val)
 
                 e.water = Number(e.water).toFixed(2)
                 e.sw = Number(e.sw).toFixed(2)
@@ -545,28 +551,44 @@
             self.loadPagination(self.analysisTableList, "analysis-pagination")
         },
 
-        //实时水位计算
-        getSub(hdid, smxcode) {
+        //减法函数
+        accSub(arg1,arg2){
+            var r1,r2,m,n;
+            try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
+            m=Math.pow(10,Math.max(r1,r2));
+            //last modify by deeka
+            //动态控制精度长度
+            n=(r1>=r2)?r1:r2;
+            return ((arg1*m-arg2*m)/m).toFixed(n);
+        },
+
+        //获取实时水位
+        getRealTimeWaterByhdId(hdid) {
             const self = this
+            // 实时 需要请求服务器获取实时水位数据
             if ($('input[name=middleRadio]:checked').val() == 'realtime') {
                 $.ajax({
-                    url: self.url.getCzByGlCodeByGlQdj,
+                    url: self.url.getRealTimeWaterByhdId,
                     type: 'get',
                     dataType: 'json',
                     jsonp: 'callback',
                     jsonpCallback: 'data',
                     data: {
-                        hdId: hdid,
-                        smxcode: smxcode
+                        hdId: hdid
                     },
                     success: function (res) {
                         if (res.code == 200) {
                             let sub = res.data
                             $('#sw-input').val(sub)
+                            //获取计算的差值    实时的水位-根据获取的最近水面点的信息计算
+                            let chazhi = 0
+                            if (sub > 0) {
+                                chazhi = self.accSub(sub,self.currentNearPoint.water)
+                            }
                             self.analysisTableList.forEach(e => {
                                 e.lng = Number(e.lng).toFixed(4)
                                 e.lat = Number(e.lat).toFixed(4)
-                                e.sw = self.calculateSw(e.water, sub)
+                                e.sw = self.calculateSw(e.water, chazhi)
 
                                 e.water = Number(e.water).toFixed(2)
                                 e.sw = Number(e.sw).toFixed(2)
@@ -577,7 +599,7 @@
                     }
                 });
             } else {
-                self.getYcSub()
+                // self.getYcSub($('#sw-input').val())
             }
 
         },

--
Gitblit v1.9.3