From 5b29289d508e4272c368cf39d9c95717e3a17df1 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 06 Feb 2023 14:52:11 +0800
Subject: [PATCH] 水文水环境分析-洪水淹没:表格添加分页,修正小数相加,结果数据有误差的问题

---
 corelib/common/popup/js/evaluateAnalysis.js |  132 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 119 insertions(+), 13 deletions(-)

diff --git a/corelib/common/popup/js/evaluateAnalysis.js b/corelib/common/popup/js/evaluateAnalysis.js
index 2f5431e..bfc7977 100644
--- a/corelib/common/popup/js/evaluateAnalysis.js
+++ b/corelib/common/popup/js/evaluateAnalysis.js
@@ -2,13 +2,13 @@
     //获取父窗口传来的数据
     var data = JSON.parse(GetQueryString("data"))
     //配置数据
-    var nameData=[]
+    var nameData = []
     var houseData = []
     var peopleData = []
     var areaData = []
     var moneyData = []
-    if (data.length>0){
-        data.forEach(e=>{
+    if (data.length > 0) {
+        data.forEach(e => {
             nameData.push(e.name)
             houseData.push(e.house)
             peopleData.push(e.people)
@@ -16,15 +16,19 @@
             moneyData.push(e.money)
         })
     }
+
+    //初始化
+    init()
+
     // change事件
     $('input[type=radio][name=value]').change(function () {
-        if (this.value == 'list'){
+        if (this.value == 'list') {
             $('.evaluate-echarts').hide()
-            $('.evaluate-box-top-left').css('visibility','visible')
+            $('.evaluate-box-top-left').css('visibility', 'visible')
             $('.evaluate-table').show()
-        }else {
+        } else {
             $('.evaluate-table').hide()
-            $('.evaluate-box-top-left').css('visibility','hidden')
+            $('.evaluate-box-top-left').css('visibility', 'hidden')
 
             recharts_z()
             loadEcharts()
@@ -33,12 +37,12 @@
     });
 
     //淹没图弹窗事件
-    $('#create-flood-image').click(function (){
+    $('#create-flood-image').click(function () {
         imagePopup()
     })
 
     //加载柱状图
-    function loadEcharts(){
+    function loadEcharts() {
         var chartDom = document.getElementById('evaluate-echarts');
         var myChart = echarts.init(chartDom);
         var app = {}
@@ -98,7 +102,7 @@
             xAxis: [
                 {
                     type: 'value',
-                    axisTick: { show: false },
+                    axisTick: {show: false},
                 }
             ],
             yAxis: [
@@ -148,7 +152,7 @@
             ]
         };
 
-        echartsOption&&myChart.setOption(echartsOption,true);
+        echartsOption && myChart.setOption(echartsOption, true);
     }
 
     function recharts_z() {
@@ -174,12 +178,12 @@
     }
 
     //淹没图弹窗
-    function imagePopup(){
+    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:'影响分析',
+            title: '影响分析',
             type: 2,
             maxmin: false, //开启最大化最小化按钮
             area: ['1000px', '800px'],
@@ -190,4 +194,106 @@
             closeBtn: 1
         });
     }
+
+    function init() {
+        loadSumData()
+        loadPagination()
+    }
+
+    function loadTable(listData) {
+        // $('#evaluate-tbody').remove()
+        var table = ""
+        var house = 0
+        var people = 0
+        var area = 0
+        var money = 0
+        for (let i = 0; i < listData.length; i++) {
+
+            table += '<tr>' +
+                '<td><div>' + listData[i].name + '</div></td>' +
+                '<td><div>' + listData[i].house + '</div></td>' +
+                '<td><div>' + listData[i].people + '</div></td>' +
+                '<td><div>' + listData[i].area + '</div></td>' +
+                '<td><div>' + listData[i].money + '</div></td>' +
+                '</tr>'
+
+            house += data[i].house
+            people += data[i].people
+            area += data[i].area
+            money += data[i].money
+        }
+        $('#evaluate-tbody').html(table)
+    }
+
+    function loadSumData() {
+        var house = 0
+        var people = 0
+        var area = 0
+        var money = 0
+        for (let i = 0; i < data.length; i++) {
+            house = floatAdd(house, data[i].house)
+            people = floatAdd(people, data[i].people)
+            area = floatAdd(area, data[i].area)
+            money = floatAdd(money, data[i].money)
+        }
+
+        $(".house").html(house + '户')
+        $(".people").html(people + '人')
+        $(".area").html(area + 'km²')
+        $(".money").html(money + '万元')
+    }
+
+    function loadPagination() {
+        if (data.length < 0) return
+        var count = Math.ceil(data.length / 10);
+
+        $('.Pagination').pagination({
+            mode: 'fixed',
+            jump: true,
+            coping: false,
+            pageCount: count,
+            callback: function (index) {
+                var listdata = [];
+                //显示页数
+                var index = (index.getCurrent() - 1) * 10;
+                for (var i = index; i < index + 10; i++) {
+                    listdata.push(data[i]);
+                    if (i == data.length - 1) {
+                        break;
+                    }
+                }
+                loadTable(listdata)
+            }
+        });
+
+        //首次加载前10条数据
+        var startData = [];
+        if (data.length > 10) {
+            for (var i = 0; i < 10; i++) {
+                startData.push(data[i]);
+            }
+        } else {
+            for (var i = 0; i < data.length; i++) {
+                startData.push(data[i]);
+            }
+        }
+        loadTable(startData)
+    }
+
+    //防止出现两个小数相加出现很多0的情况
+    function floatAdd(arg1, arg2) {
+        var r1, r2, m;
+        try {
+            r1 = arg1.toString().split(".")[1].length;
+        } catch (e) {
+            r1 = 0;
+        }
+        try {
+            r2 = arg2.toString().split(".")[1].length;
+        } catch (e) {
+            r2 = 0;
+        }
+        m = Math.pow(10, Math.max(r1, r2));
+        return (arg1 * m + arg2 * m) / m;
+    }
 });

--
Gitblit v1.9.3