ming 4 年之前
父节点
当前提交
c54ab3b037
共有 4 个文件被更改,包括 378 次插入181 次删除
  1. 104 0
      api/datatest.js
  2. 55 0
      api/request.js
  3. 7 7
      eleFireIndex.html
  4. 212 174
      js/eleFire.js

+ 104 - 0
api/datatest.js

@@ -0,0 +1,104 @@
+{
+    action: "getEfAnalysisList",
+    totalCount: 1,
+    page: "0",
+    start: "0",
+    RESULT: [{
+        data_statistics: {
+            alarm_number: 3726,
+            processing_number: 1832,
+            Unprocessed_number: 1894,
+            Untreated_rate: 49,
+            Treatment_rate: 51
+        },
+        equipment_list: "45656",
+        creat_time: "2021-04-19 13:54:15",
+        thermal_aging: {
+            visualization: [{
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                },
+                {
+                    generation_temperature: 5.3,
+                    ambient_temperature: 20.3,
+                    Cable_temperature: 15
+                }
+            ],
+            conclusion: {
+                conclusion1: "测试结论",
+                conclusion2: "测试结论"
+            }
+        },
+        dispersion_rate: {},
+        electrical_aging: {},
+        generation_time: "2021-04",
+        statistical_period: "54646",
+        project_situation: "546546"
+    }]
+}

+ 55 - 0
api/request.js

@@ -0,0 +1,55 @@
+//url
+const URL = "http://172.16.120.183:8080/";
+
+//这里登陆用户名、密码 写活?
+const LOGIN_NAME = "admin";
+const LOGIN_PASSWORD = "e10adc3949ba59abbe56e057f20f883e";
+
+
+const STATISTICS = "YtIoT/iot/analysis/view/getEfAnalysisList"; //数据统计查询
+
+function ajaxRequest(path, method, data, success, error, type = 1) {
+
+    let url = URL + path;
+
+    let loginUser = {
+        "V_LOGINNAME": LOGIN_NAME,
+        "V_PASSWORD": LOGIN_PASSWORD,
+    }
+
+    if (type == 1) {
+        data.queryJson = JSON.stringify(loginUser);
+    } else {
+
+        let paramJson = {};
+
+        // for (key in loginUser) {
+        //     paramJson[key] = loginUser[key];
+        // }
+
+        for (key in data) {
+            paramJson[key] = data[key];
+        }
+
+        data = {}
+        data.queryJson = JSON.stringify(paramJson);
+    }
+
+
+    $.ajax({
+        async: false, //同步
+        data: data,
+        url: url,
+        type: method, //请求方式 post get delete put
+        dataType: "json",
+        beforeSend: function(XMLHttpRequest) {
+            // $("#loading").html("<img src='images/loading.gif' />")
+            // handlePreloader();
+            // $(".loadingdata").append('<div class="preloader"></div>');
+
+        },
+        success: success,
+        error: error
+    });
+
+}

+ 7 - 7
eleFireIndex.html

@@ -199,10 +199,9 @@
             <h1>分析报告及数据可视化</h1>
             <div class="filterSec">
                 <span>建筑</span>
-                <select name="">
-                    <option value="">请选择</option>
-                    <option value="1">建筑一</option>
-                    <option value="2">建筑二</option>
+                <select name="" id="building">
+                    <option value="10012">建筑一</option>
+                    <option value="10013">建筑二</option>
                 </select>
                 <span>时间</span>
                 <div class="layui-inline"><input type="text" id="chooseTime" class="layui-input test-item" value="2021-03"></div>
@@ -228,15 +227,15 @@
                         </h2>
                         <ul>
                             <li>
-                                <p class="num total">1568</p>
+                                <p class="num total"></p>
                                 <p>报警总数</p>
                             </li>
                             <li>
-                                <p class="num solved">1300</p>
+                                <p class="num solved"></p>
                                 <p>处理数</p>
                             </li>
                             <li>
-                                <p class="num unsolve">268</p>
+                                <p class="num unsolve"></p>
                                 <p>未处理数</p>
                             </li>
                         </ul>
@@ -344,6 +343,7 @@
     <script src="js/echarts.min.js"></script>
     <script src="js/echarts-gl.min.js"></script>
 
+    <script src="api/request.js"></script>
     <script src="js/util.js"></script>
     <script src="js/eleFire.js"></script>
     <script src="js/eleFireInner.js"></script>

+ 212 - 174
js/eleFire.js

@@ -6,214 +6,252 @@
 var year = $('#chooseTime').val().slice(0, 4);
 var month = $('#chooseTime').val().slice(5, 7);
 
-// 环状饼图定制 (数据统计及时)
-(function() {
-    // 实例化对象
-    var myChart = echarts.init(document.querySelector(".bar-3d .chart"));
 
-    // 生成扇形的曲面参数方程,用于 series-surface.parametricEquation
-    function getParametricEquation(startRatio, endRatio, isSelected, isHovered, k, height) {
 
-        // 计算
-        let midRatio = (startRatio + endRatio) / 2;
+// ajax请求数据
+function getListData(queryParam = {}) {
 
-        let startRadian = startRatio * Math.PI * 2;
-        let endRadian = endRatio * Math.PI * 2;
-        let midRadian = midRatio * Math.PI * 2;
+    ajaxRequest(STATISTICS, "POST", queryParam, function(result) {
+        console.log(result.RESULT[0].data_statistics)
+        var data_statistics = result.RESULT[0].data_statistics;
 
-        // 如果只有一个扇形,则不实现选中效果。
-        if (startRatio === 0 && endRatio === 1) {
-            isSelected = false;
-        }
+        $('.total').html(data_statistics.alarm_number);
+        $('.solved').html(data_statistics.processing_number);
+        $('.unsolve').html(data_statistics.unprocessed_number);
 
-        // 通过扇形内径/外径的值,换算出辅助参数 k(默认值 1/3)
-        k = typeof k !== 'undefined' ? k : 1 / 3;
 
-        // 计算选中效果分别在 x 轴、y 轴方向上的位移(未选中,则位移均为 0)
-        let offsetX = isSelected ? Math.cos(midRadian) * 0.1 : 0;
-        let offsetY = isSelected ? Math.sin(midRadian) * 0.1 : 0;
 
-        // 计算高亮效果的放大比例(未高亮,则比例为 1)
-        let hoverRate = isHovered ? 1.05 : 1;
+        // 环状饼图定制 (数据统计及时)
+        (function() {
+            // 实例化对象
+            var myChart = echarts.init(document.querySelector(".bar-3d .chart"));
 
-        // 返回曲面参数方程
-        return {
+            // 生成扇形的曲面参数方程,用于 series-surface.parametricEquation
+            function getParametricEquation(startRatio, endRatio, isSelected, isHovered, k, height) {
 
-            u: {
-                min: -Math.PI,
-                max: Math.PI * 3,
-                step: Math.PI / 32
-            },
+                // 计算
+                let midRatio = (startRatio + endRatio) / 2;
 
-            v: {
-                min: 0,
-                max: Math.PI * 2,
-                step: Math.PI / 20
-            },
+                let startRadian = startRatio * Math.PI * 2;
+                let endRadian = endRatio * Math.PI * 2;
+                let midRadian = midRatio * Math.PI * 2;
 
-            x: function(u, v) {
-                if (u < startRadian) {
-                    return offsetX + Math.cos(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                // 如果只有一个扇形,则不实现选中效果。
+                if (startRatio === 0 && endRatio === 1) {
+                    isSelected = false;
                 }
-                if (u > endRadian) {
-                    return offsetX + Math.cos(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
-                }
-                return offsetX + Math.cos(u) * (1 + Math.cos(v) * k) * hoverRate;
-            },
 
-            y: function(u, v) {
-                if (u < startRadian) {
-                    return offsetY + Math.sin(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
-                }
-                if (u > endRadian) {
-                    return offsetY + Math.sin(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
-                }
-                return offsetY + Math.sin(u) * (1 + Math.cos(v) * k) * hoverRate;
-            },
-
-            z: function(u, v) {
-                if (u < -Math.PI * 0.5) {
-                    return Math.sin(u);
-                }
-                if (u > Math.PI * 2.5) {
-                    return Math.sin(u);
-                }
-                return Math.sin(v) > 0 ? 1 : -1;
+                // 通过扇形内径/外径的值,换算出辅助参数 k(默认值 1/3)
+                k = typeof k !== 'undefined' ? k : 1 / 3;
+
+                // 计算选中效果分别在 x 轴、y 轴方向上的位移(未选中,则位移均为 0)
+                let offsetX = isSelected ? Math.cos(midRadian) * 0.1 : 0;
+                let offsetY = isSelected ? Math.sin(midRadian) * 0.1 : 0;
+
+                // 计算高亮效果的放大比例(未高亮,则比例为 1)
+                let hoverRate = isHovered ? 1.05 : 1;
+
+                // 返回曲面参数方程
+                return {
+
+                    u: {
+                        min: -Math.PI,
+                        max: Math.PI * 3,
+                        step: Math.PI / 32
+                    },
+
+                    v: {
+                        min: 0,
+                        max: Math.PI * 2,
+                        step: Math.PI / 20
+                    },
+
+                    x: function(u, v) {
+                        if (u < startRadian) {
+                            return offsetX + Math.cos(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                        }
+                        if (u > endRadian) {
+                            return offsetX + Math.cos(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                        }
+                        return offsetX + Math.cos(u) * (1 + Math.cos(v) * k) * hoverRate;
+                    },
+
+                    y: function(u, v) {
+                        if (u < startRadian) {
+                            return offsetY + Math.sin(startRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                        }
+                        if (u > endRadian) {
+                            return offsetY + Math.sin(endRadian) * (1 + Math.cos(v) * k) * hoverRate;
+                        }
+                        return offsetY + Math.sin(u) * (1 + Math.cos(v) * k) * hoverRate;
+                    },
+
+                    z: function(u, v) {
+                        if (u < -Math.PI * 0.5) {
+                            return Math.sin(u);
+                        }
+                        if (u > Math.PI * 2.5) {
+                            return Math.sin(u);
+                        }
+                        return Math.sin(v) > 0 ? 1 : -1;
+                    }
+                };
             }
-        };
-    }
-
-    // 生成模拟 3D 饼图的配置项
-    function getPie3D(pieData, internalDiameterRatio) {
-
-        let series = [];
-        let sumValue = 0;
-        let startValue = 0;
-        let endValue = 0;
-        let legendData = [];
-        let k = typeof internalDiameterRatio !== 'undefined' ? (1 - internalDiameterRatio) / (1 + internalDiameterRatio) : 1 / 3;
-
-        // 为每一个饼图数据,生成一个 series-surface 配置
-        for (let i = 0; i < pieData.length; i++) {
-
-            sumValue += pieData[i].value;
-
-            let seriesItem = {
-                name: typeof pieData[i].name === 'undefined' ? `series${i}` : pieData[i].name,
-                type: 'surface',
-                parametric: true,
-                wireframe: {
-                    show: false
-                },
-                pieData: pieData[i],
-                pieStatus: {
-                    selected: false,
-                    hovered: false,
-                    k: k
-                }
-            };
 
-            if (typeof pieData[i].itemStyle != 'undefined') {
+            // 生成模拟 3D 饼图的配置项
+            function getPie3D(pieData, internalDiameterRatio) {
 
-                let itemStyle = {};
+                let series = [];
+                let sumValue = 0;
+                let startValue = 0;
+                let endValue = 0;
+                let legendData = [];
+                let k = typeof internalDiameterRatio !== 'undefined' ? (1 - internalDiameterRatio) / (1 + internalDiameterRatio) : 1 / 3;
 
-                typeof pieData[i].itemStyle.color != 'undefined' ? itemStyle.color = pieData[i].itemStyle.color : null;
-                typeof pieData[i].itemStyle.opacity != 'undefined' ? itemStyle.opacity = pieData[i].itemStyle.opacity : null;
+                // 为每一个饼图数据,生成一个 series-surface 配置
+                for (let i = 0; i < pieData.length; i++) {
 
-                seriesItem.itemStyle = itemStyle;
-            }
-            series.push(seriesItem);
-        }
+                    sumValue += pieData[i].value;
 
-        // 使用上一次遍历时,计算出的数据和 sumValue,调用 getParametricEquation 函数,
-        // 向每个 series-surface 传入不同的参数方程 series-surface.parametricEquation,也就是实现每一个扇形。
-        for (let i = 0; i < series.length; i++) {
-            endValue = startValue + series[i].pieData.value;
-            console.log(series[i]);
-            series[i].pieData.startRatio = startValue / sumValue;
-            series[i].pieData.endRatio = endValue / sumValue;
-            series[i].parametricEquation = getParametricEquation(series[i].pieData.startRatio, series[i].pieData.endRatio, false, false, k, series[i].pieData.value);
+                    let seriesItem = {
+                        name: typeof pieData[i].name === 'undefined' ? `series${i}` : pieData[i].name,
+                        type: 'surface',
+                        parametric: true,
+                        wireframe: {
+                            show: false
+                        },
+                        pieData: pieData[i],
+                        pieStatus: {
+                            selected: false,
+                            hovered: false,
+                            k: k
+                        }
+                    };
 
-            startValue = endValue;
+                    if (typeof pieData[i].itemStyle != 'undefined') {
 
-            legendData.push(series[i].name);
-        }
+                        let itemStyle = {};
 
+                        typeof pieData[i].itemStyle.color != 'undefined' ? itemStyle.color = pieData[i].itemStyle.color : null;
+                        typeof pieData[i].itemStyle.opacity != 'undefined' ? itemStyle.opacity = pieData[i].itemStyle.opacity : null;
 
+                        seriesItem.itemStyle = itemStyle;
+                    }
+                    series.push(seriesItem);
+                }
 
-        // 准备待返回的配置项,把准备好的 legendData、series 传入。
-        let option = {
+                // 使用上一次遍历时,计算出的数据和 sumValue,调用 getParametricEquation 函数,
+                // 向每个 series-surface 传入不同的参数方程 series-surface.parametricEquation,也就是实现每一个扇形。
+                for (let i = 0; i < series.length; i++) {
+                    endValue = startValue + series[i].pieData.value;
+                    // console.log(series[i]);
+                    series[i].pieData.startRatio = startValue / sumValue;
+                    series[i].pieData.endRatio = endValue / sumValue;
+                    series[i].parametricEquation = getParametricEquation(series[i].pieData.startRatio, series[i].pieData.endRatio, false, false, k, series[i].pieData.value);
 
-            tooltip: {
-                backgroundColor: '#12DFE0',
-                formatter: params => {
-                    if (params.seriesName !== 'mouseoutSeries') {
-                        // return `${params.seriesName}<br/><span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${params.color};"></span>${option.series[params.seriesIndex].pieData.value}%`;
-                        return `${params.seriesName}: ${option.series[params.seriesIndex].pieData.value}%`;
+                    startValue = endValue;
+
+                    legendData.push(series[i].name);
+                }
+
+
+
+                // 准备待返回的配置项,把准备好的 legendData、series 传入。
+                let option = {
+
+                    tooltip: {
+                        backgroundColor: '#12DFE0',
+                        formatter: params => {
+                            if (params.seriesName !== 'mouseoutSeries') {
+                                // return `${params.seriesName}<br/><span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${params.color};"></span>${option.series[params.seriesIndex].pieData.value}%`;
+                                return `${params.seriesName}: ${option.series[params.seriesIndex].pieData.value}%`;
+                            }
+                        }
+                    },
+
+                    xAxis3D: {
+                        min: -1,
+                        max: 1
+                    },
+                    yAxis3D: {
+                        min: -1,
+                        max: 1
+                    },
+                    zAxis3D: {
+                        min: -1,
+                        max: 1
+                    },
+                    grid3D: {
+
+
+                        show: false,
+                        boxHeight: 40,
+                        top: '-10%',
+                        // bottom: '80%',
+                        // environment: '../images/3d-bg.png', //aa背景色
+
+                        viewControl: {
+                            distance: 170, //aa距离
+                            alpha: 21, //aa角度
+                            beta: 60, //aa角度
+                            zoomSensitivity: false //是否开启缩放和平移
+                        },
+                    },
+                    series: series
+                };
+                return option;
+            }
+
+
+            // 传入数据生成 option
+            var option = getPie3D([{
+                    name: '已处理率',
+                    value: data_statistics.treatment_rate,
+                    itemStyle: {
+                        opacity: 0.5,
+                        color: 'rgba(0,127,244,.8)',
+                    }
+                }, {
+                    name: '未处理率',
+                    value: data_statistics.untreated_rate,
+                    itemStyle: {
+                        opacity: 0.5,
+                        color: 'rgba(209,126,23,.8)',
                     }
                 }
-            },
 
-            xAxis3D: {
-                min: -1,
-                max: 1
-            },
-            yAxis3D: {
-                min: -1,
-                max: 1
-            },
-            zAxis3D: {
-                min: -1,
-                max: 1
-            },
-            grid3D: {
+            ], 2);
+
+            // 把配置给实例对象
+            myChart.setOption(option);
+            window.addEventListener("resize", function() {
+                myChart.resize();
+            });
+
+        })();
+
+    }, function(errorMsg) {
+        alert("请求数据失败!");
+    }, 2)
+};
+
+getListData(getSearchParamObj());
+
+function getSearchParamObj() {
+    let queryParam = {};
+    let buildingVal = $('#building').val();
+    let chooseTime = $('#chooseTime').val();
+    queryParam.company_code = buildingVal;
+    queryParam.generation_time = chooseTime;
+    return queryParam;
+
+}
 
 
-                show: false,
-                boxHeight: 40,
-                top: '-10%',
-                // bottom: '80%',
-                // environment: '../images/3d-bg.png', //aa背景色
 
-                viewControl: {
-                    distance: 170, //aa距离
-                    alpha: 21, //aa角度
-                    beta: 10, //aa角度
-                    zoomSensitivity: false //是否开启缩放和平移
-                },
-            },
-            series: series
-        };
-        return option;
-    }
-
-
-    // 传入数据生成 option
-    var option = getPie3D([{
-            name: '已处理率',
-            value: 80,
-            itemStyle: {
-                opacity: 0.5,
-                color: 'rgba(0,127,244,.8)',
-            }
-        }, {
-            name: '未处理率',
-            value: 20,
-            itemStyle: {
-                opacity: 0.5,
-                color: 'rgba(209,126,23,.8)',
-            }
-        }
 
-    ], 2);
 
-    // 把配置给实例对象
-    myChart.setOption(option);
-    window.addEventListener("resize", function() {
-        myChart.resize();
-    });
 
-})();
 
 // 折线图定制 (数据离散率挖掘)
 (function() {