浏览代码

网格地图

13127578837 1 年之前
父节点
当前提交
ec729ec010

二进制
src/assets/img/sadian/dwxj.png


+ 128 - 0
src/components/category/index2 copy.vue

@@ -0,0 +1,128 @@
+<template>
+    <div ref="echartD" style="width: 100%; height: 100%"></div>
+</template>
+
+<script>
+export default {
+    props: {
+        dataMap: { type: Array, default: () => [] },
+        color: { type: String, default: () => "rgb(0,254,160)" },
+        borderRadius: { type: Array, default: () => [0, 0, 0, 0] },
+        isSlice: { type: Number, default: () => 0 },
+        width: { type: Number, default: () => 15 },
+        xData: {
+            type: Array,
+            default: () => [
+                "1月",
+                "2月",
+                "3月",
+                "4月",
+                "5月",
+                "6月",
+                "7月",
+                "8月",
+                "9月",
+                "10月",
+                "11月",
+                "12月",
+            ],
+        },
+    },
+    data() {
+        return {};
+    },
+    watch: {
+        dataMap(val) {
+            this.getData(val);
+        },
+    },
+    mounted() {
+        this.getData();
+    },
+    methods: {
+        getData(val = this.dataMap) {
+        let that = this
+            let echartsMap = this.$echarts.getInstanceByDom(this.$refs.echartD);
+            if (echartsMap == null) {
+                echartsMap = this.$echarts.init(this.$refs.echartD);
+            }
+            echartsMap.setOption({
+                grid: {
+                    top: 30,
+                    left: 50,
+                    right: 30,
+                    bottom: 30,
+                },
+                tooltip: {
+                    trigger: "axis",
+                    textStyle: {
+                        color: this.color,
+                    },
+                    confine: true,
+                    backgroundColor: "rgba(0,0,0,0.6)",
+                    borderColor: "rgba(0,0,0,0.6)",
+                    position: "bottom",
+                },
+                xAxis: {
+                    axisTick: {
+                        show: false,
+                    },
+                    type: "category",
+                    data: this.xData,
+                    axisLabel: {
+                        color: "#fff",
+                        fontSize: "0.175rem",
+                        fontFamily: "syhtN",
+                        formatter: (param) => {
+                            return this.isSlice
+                                ? param.slice(0, this.isSlice)
+                                : param;
+                        },
+                    },
+                },
+                yAxis: {
+                    axisTick: {
+                        show: false,
+                    },
+                    type: "value",
+                    axisLabel: {
+                        color: "#fff",
+                        fontSize: "0.175rem",
+                        fontFamily: "syhtN",
+                    },
+                    splitLine: {
+                        show: true, // X轴线 颜色类型的修改
+                        lineStyle: {
+                            // type: 'dashed',
+                            color: "rgba(255,255,255,0.4)",
+                        },
+                    },
+                },
+
+                series: [
+                    {
+                        type: "bar",
+                        barWidth: this.width,
+                        itemStyle: {
+                            color: this.color,
+                            borderRadius: this.borderRadius,
+                        },
+                        data: val,
+                    },
+                ],
+            });
+             echartsMap.on('click', function(params) {
+                console.log(params.name)
+                if(params.name){
+                        that.$emit("echartsClick",params.name)
+                }
+        });
+        },
+        resize() {
+            echarts.init(this.$refs.echartD).resize();
+        },
+    },
+};
+</script>
+
+<style scoped></style>

+ 95 - 18
src/components/category/index2.vue

@@ -41,11 +41,41 @@ export default {
     },
     methods: {
         getData(val = this.dataMap) {
-        let that = this
             let echartsMap = this.$echarts.getInstanceByDom(this.$refs.echartD);
             if (echartsMap == null) {
                 echartsMap = this.$echarts.init(this.$refs.echartD);
             }
+            let series = []
+            for(let i=0;i<this.dataMap.type.length;i++){
+                series.push(
+                    {
+                        name: this.dataMap.type[i],
+                        type: 'bar',
+                        stack: 'Ad',
+                        emphasis: {
+                            focus: 'series'
+                        },
+                        data: this.dataMap.data[i],
+                    }
+                )
+            }
+            series.push(
+                {
+                    name: '总计',
+                    type: 'line',
+                    lineStyle: {
+                        opacity: 0,
+                },
+                symbolSize:0,
+                label: {
+                    show: true,
+                    color:"#fff",
+                    position: 'top'
+                },
+                data: this.dataMap.total
+                }
+            )
+
             echartsMap.setOption({
                 grid: {
                     top: 30,
@@ -73,6 +103,7 @@ export default {
                         color: "#fff",
                         fontSize: "0.175rem",
                         fontFamily: "syhtN",
+                        rotate: 40, //值>0向右倾斜,值<0则向左倾斜
                         formatter: (param) => {
                             return this.isSlice
                                 ? param.slice(0, this.isSlice)
@@ -99,24 +130,70 @@ export default {
                     },
                 },
 
-                series: [
-                    {
-                        type: "bar",
-                        barWidth: this.width,
-                        itemStyle: {
-                            color: this.color,
-                            borderRadius: this.borderRadius,
-                        },
-                        data: val,
-                    },
-                ],
+                series:series
             });
-             echartsMap.on('click', function(params) {
-                console.log(params.name)
-                if(params.name){
-                        that.$emit("echartsClick",params.name)
-                }
-        });
+            // let echartsMap = this.$echarts.getInstanceByDom(this.$refs.echartD);
+            // if (echartsMap == null) {
+            //     echartsMap = this.$echarts.init(this.$refs.echartD);
+            // }
+            // echartsMap.option = {
+            //     tooltip: {
+            //         trigger: 'axis',
+            //         axisPointer: {
+            //         type: 'shadow'
+            //         }
+            //     },
+            //     grid: {
+            //         left: '3%',
+            //         right: '4%',
+            //         bottom: '3%',
+            //         containLabel: true
+            //     },
+               
+            //     xAxis: [
+            //         {
+            //         type: 'category',
+            //         data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+            //         }
+            //     ],
+            //     yAxis: [
+            //         {
+            //         type: 'value'
+            //         }
+            //     ],
+            //     series: [
+                
+            //         {
+            //         name: 'Email',
+            //         type: 'bar',
+            //         stack: 'Ad',
+            //         emphasis: {
+            //             focus: 'series'
+            //         },
+            //         data: [120, 132, 101, 134, 90, 230, 210]
+            //         },
+            //         {
+            //         name: 'Union Ads',
+            //         type: 'bar',
+            //         stack: 'Ad',
+            //         emphasis: {
+            //             focus: 'series'
+            //         },
+            //         data: [220, 182, 191, 234, 290, 330, 310]
+            //         },
+            //         {
+            //         name: 'Video Ads',
+            //         type: 'bar',
+            //         stack: 'Ad',
+            //         emphasis: {
+            //             focus: 'series'
+            //         },
+            //         data: [150, 232, 201, 154, 190, 330, 410]
+            //         },
+
+                    
+            //     ]
+            // };
         },
         resize() {
             echarts.init(this.$refs.echartD).resize();

+ 15 - 0
src/components/category/index3.vue

@@ -119,6 +119,20 @@ export default {
                         itemStyle: {
                             color: this.color,
                             borderRadius: this.borderRadius,
+                            normal: {
+                                label: {
+                                    formatter: "{c}",
+                                    show: true,
+                                    position: "top",
+                                    textStyle: {
+                                        fontWeight: "bolder",
+                                        fontSize: "12",
+                                        color: "#fff"
+                                    }
+                                },
+                              
+                                opacity: 1
+                            }
                         },
                         data: yData,
                     },
@@ -127,6 +141,7 @@ export default {
                         type: "bar",
                         barWidth: 15,
                         data: zData,
+                        
                     }
                 ],
             });

+ 53 - 57
src/components/disk/index.vue

@@ -20,77 +20,73 @@ export default {
   },
   methods: {
     getData() {
+      let that = this
       let dataMap = this.dataMap;
       let echartsMap = this.$echarts.getInstanceByDom(this.$refs.disk);
-        if (echartsMap == null) {
-          echartsMap = this.$echarts.init(this.$refs.disk);
-        }
-        // var option = undefined
-     
+      if (echartsMap == null) {
+        echartsMap = this.$echarts.init(this.$refs.disk);
+      }
       echartsMap.setOption({
         // color:["#000","#fff"],
-                tooltip: {
-                        formatter: function (info) {
-                                
-                                // var value = info.value;
-                                // console.log(111,info.data)
-                                // var treePathInfo = info.treePathInfo;
-                                // var treePath = [];
-                                // for (var i = 1; i <br treePathInfo.length; i++) {
-                                //         treePath.push(treePathInfo[i].name);
-                                // }
-                                return [
-                                '<div class="tooltip-title">' + 
-                                        info.data.name +
-                                '</div>',
-                                '设备总数: ' + info.data.value + '</br>' +
-                                '在线数: ' + info.data.lineCount + '</br>' +
-                                '在线率: ' + info.data.lineRate * 100 +'%' + '</br>' 
-                                ].join('');
-                                }
-                },
-                series: [
-                        {
-                        name: '物联网设备',
-                        type: 'treemap',
-                        visibleMin: 800,
-                        label: {
-                        show: true,
-                        formatter: '{b}'
-                        },
-                        itemStyle: {
-                        borderColor: '#fff'
-                        },
-                        levels: this.getLevelOption(),
-                        data: dataMap
-                        }
-                ]
+        tooltip: {
+          formatter: function (info) {
+            return [
+              '<div class="tooltip-title">' +
+              info.data.name +
+              '</div>',
+              '设备总数: ' + info.data.value + '</br>' +
+              '在线数: ' + info.data.lineCount + '</br>' +
+              '在线率: ' + info.data.lineRate  + '%' + '</br>'
+            ].join('');
+          }
+
+        },
+        series: [
+          {
+            name: '物联网设备',
+            type: 'treemap',
+            visibleMin: 800,
+            label: {
+              show: true,
+              formatter: '{b}'
+            },
+            itemStyle: {
+              borderColor: '#fff'
+            },
+            levels: this.getLevelOption(),
+            data: dataMap
+          }
+        ]
+      });
+      echartsMap.on('click', function (param) { 
+        that.$emit("echartsClick",param.data.deviceTypeCode)
       });
     },
     getLevelOption() {
-        return [
+      return [
         {
-                itemStyle: {
-                borderWidth: 0,
-                gapWidth: 5
-                }
+          itemStyle: {
+            borderWidth: 0,
+            gapWidth: 5
+          }
         },
         {
-                itemStyle: {
-                gapWidth: 1
-                }
+          itemStyle: {
+            gapWidth: 1
+          }
         },
         {
-                colorSaturation: [0.35, 0.5],
-                itemStyle: {
-                gapWidth: 1,
-                borderColorSaturation: 0.6
-                }
+          colorSaturation: [0.35, 0.5],
+          itemStyle: {
+            gapWidth: 1,
+            borderColorSaturation: 0.6
+          }
         }
-        ];
-},
+      ];
+    },
+    
     resize() {
-//       echarts.init(this.$refs.echartD).resize();
+      //       echarts.init(this.$refs.echartD).resize();
     },
   },
 };

+ 1 - 1
src/components/gauge/index6.vue

@@ -33,7 +33,7 @@ export default {
     methods: {
         getData(val) {
 
-                console.log(val)
+                console.log(11122,val)
             this.$echarts.init(this.$refs.echartD1).setOption({
                 grid: {},
                 series: [

+ 42 - 0
src/components/mixins/linstener.js

@@ -101,6 +101,48 @@ export default {
             }
             return fmt;
         },
+        autoScroll(stop) {
+            // 拿到表格中承载数据的div元素
+            const divData = this.$refs.reportTable.$refs.bodyWrapper
+            // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
+            if (stop) {
+            //再通过事件监听,监听到 组件销毁 后,再执行关闭计时器。
+            window.clearInterval(this.scrolltimer)
+            } else {
+                this.scrolltimer = window.setInterval(() => {
+                        // 元素自增距离顶部1像素
+                        divData.scrollTop += 1
+                        // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
+                        if (divData.clientHeight + divData.scrollTop == divData.scrollHeight) {
+                        // 重置table距离顶部距离
+                        divData.scrollTop = 0
+                        // 重置table距离顶部距离。值=(滚动到底部时,距离顶部的大小) - 整个高度/2
+                        // divData.scrollTop = divData.scrollTop - divData.scrollHeight / 2
+                        }
+                }, 150) // 滚动速度
+            }
+        },
+        autoScroll1(stop) {
+            // 拿到表格中承载数据的div元素
+            const divData = this.$refs.reportTable1.$refs.bodyWrapper
+            // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
+            if (stop) {
+            //再通过事件监听,监听到 组件销毁 后,再执行关闭计时器。
+            window.clearInterval(this.scrolltimer)
+            } else {
+                this.scrolltimer = window.setInterval(() => {
+                        // 元素自增距离顶部1像素
+                        divData.scrollTop += 1
+                        // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
+                        if (divData.clientHeight + divData.scrollTop == divData.scrollHeight) {
+                        // 重置table距离顶部距离
+                        divData.scrollTop = 0
+                        // 重置table距离顶部距离。值=(滚动到底部时,距离顶部的大小) - 整个高度/2
+                        // divData.scrollTop = divData.scrollTop - divData.scrollHeight / 2
+                        }
+                }, 150) // 滚动速度
+            }
+        },
     },
     unmount() {
         window.removeEventListener("resize", this.resizeTimeActions, true);

+ 444 - 316
src/components/mixins/map-data1 copy.js

@@ -15,11 +15,15 @@ export default {
         window.jmapQuery = null;
     },
     methods: {
+        streetTownMap(name) {
+            return name
+        },
         /**
          *地图初始化
          *
          */
         async initMap() {
+
             window.vue = this;
             window.jMap = null;
             window.jmapQuery = null;
@@ -44,6 +48,7 @@ export default {
             };
 
             let res = await this.$axios.get(this.$api.dt);
+
             // 加载地图
             window.jMap.createMap("mapF", res.data, window.location.origin, map_params, {});
             // 地图背景样式
@@ -78,7 +83,9 @@ export default {
             var _this = this;
 
             function addLayerCallBack(obj) {
-                _this.stores.streetTown(obj._name);
+                // _this.streetTownMap(obj._name)
+                _this.stores.streetTownSet(obj._name)
+
             }
 
             // 街镇标题
@@ -86,6 +93,7 @@ export default {
                 queryMapService: "mh_dyn_district",
                 queryMapLayers: [1],
                 outFields: ["code", "name", "center_x", "center_y"],
+                queryWhere: "name like '%莘庄镇%' ",
                 callBack: (res) => {
 
                     res.features.forEach(async(val) => {
@@ -298,7 +306,17 @@ export default {
 
                                 type == "社区消防" && val.facilityType == 15 ? this.stores.sadianIcon.zddw : type == "社区消防" && val.facilityType == 16 ? this.stores.sadianIcon.ybdw :
 
-                                type == "三合一" ? this.stores.sadianIcon.shy : this.stores.sadianIcon.trsy,
+                                type == "一级微型消防站" ? this.stores.sadianIcon.yjxfz : type == "街镇专职消防队" ? this.stores.sadianIcon.jzzzxfd : type == "中小学" ? this.stores.sadianIcon.zs : type == "幼儿园" ? this.stores.sadianIcon.yey : type == "其他学校" ? this.stores.sadianIcon.qtxx :
+
+                                type == "三合一" ? this.stores.sadianIcon.shy : type == "实时警情" ? this.stores.sadianIcon.ssjq :
+
+                                type == "本年度重点事项推进情况" && val.status == 1 ? this.stores.sadianIcon.ywc : type == "本年度重点事项推进情况" && val.status == 2 ? this.stores.sadianIcon.jxz : type == "本年度重点事项推进情况" && val.status == 3 ? this.stores.sadianIcon.zbz : 
+
+                                type == "高风险" ? this.stores.sadianIcon.gfx : type == "较高风险" ? this.stores.sadianIcon.jgfx : type == "一般风险" ? this.stores.sadianIcon.ybfx : type == "低风险" ? this.stores.sadianIcon.dfx : 
+
+                                type == "单位巡检" ? this.stores.sadianIcon.dwxj :
+                                
+                                this.stores.sadianIcon.trsy,
 
                             // this.jqzhczIcon3 : val.type == "4" ?
                             // this.jqzhczIcon4 : val.type == "5" ?
@@ -307,8 +325,8 @@ export default {
                             // this.jqzhczIcon51 : val.type == "天然水源" ?
                             // this.jqzhczIcon7 : this.xfzfdtIcon4,
 
-                            width: val.type == "国家会展中心" ? 83 : type == "高层建筑覆盖" && val.stationType == 111 ? 7 : 19.5,
-                            height: val.type == "国家会展中心" ? 59 : type == "高层建筑覆盖" && val.stationType == 111 ? 7 : 25,
+                            width: val.type == "国家会展中心" ? 83 : type == "高层建筑覆盖" && val.stationType == 111 ? 7 : type == 111 ? 74 : 19.5,
+                            height: val.type == "国家会展中心" ? 59 : type == "高层建筑覆盖" && val.stationType == 111 ? 7 : type == 111 ? 66 : 25,
                         },
                     };
                     if (type == "高层建筑覆盖" && val.stationType == 1) {
@@ -357,357 +375,467 @@ export default {
                 }
                 // this.bufferL(arr)
             }
-            //撒点类型
-            window.jMap.Locate.pointLocate(target, {
-                //撒点
-                isZoom: false,
-                //animate: { "show": true },
-                scaleByDistance: {
-                    minScaling: 1,
-                    maxScaling: 1,
-                    minDistance: 50, //最小距离
-                    maxDistance: 120000 //最大距离
-                },
-                click: (val) => {
-                    //消防执法
-                    if (pageType == "enforcement-dynamic") {
-                        if (type == "安全检查单位" || type == "双随机执法单位") {
-                            this.$axios
-                                .get(
-                                    this.$api.siaeall.one +
-                                    "?" +
-                                    this.$qs.stringify({
-                                        companyId: val.attrbutes.number,
-                                        companyName: val.attrbutes.name,
-                                    })
-                                )
-                                .then((res) => {
-                                    res.data[0].company = val._attrbutes.name;
-                                    res.data[0].streetTown = val._attrbutes.streetTown;
-                                    let arrayList = [{
-                                            title: [res.data[0].company, res.data[0].company ? true : false],
-                                            children: [
-                                                ["单位地址:", res.data[0].companyAddress, 24],
-                                                ["负责人:", res.data[0].linkPerson, 10],
-                                                ["联系电话:", res.data[0].linkPhone, 14],
-                                                ["历史火灾次数:", res.data[0].fireCount, 12],
-
-                                            ],
-                                        },
-                                        {
-                                            title: ["行政许可情况", res.data[0].processDate && res.data[0].carefullyCheckDate && res.data[0].securityCheckDates],
-                                            children: [
-                                                ["审核时间:", res.data[0].processDate, 12],
-                                                ["验收时间:", res.data[0].carefullyCheckDate, 12],
-                                                ["安检时间:", res.data[0].securityCheckDates, 12],
-                                            ],
-                                        },
-                                        {
-                                            title: ["历史检查情况", res.data[0].inspectCompany && res.data[0].fireHazard && res.data[0].rectificateFireHazard && res.data[0].punishmentDecision && res.data[0].orderThreeStops && res.data[0].correctionNotice && res.data[0].temporarySeizure && res.data[0].penaltyAmount],
-                                            children: [
-                                                ["检查:", res.data[0].inspectCompany + "(家)", 8],
-                                                ["隐患:", res.data[0].fireHazard + "(起)", 8],
-                                                ["整改:", res.data[0].rectificateFireHazard + "(起)", 8],
-                                                ["行罚:", res.data[0].punishmentDecision + "(份)", 8],
-                                                ["三停:", res.data[0].orderThreeStops + "(家)", 8],
-                                                ["责改:", res.data[0].correctionNotice + "(份)", 8],
-                                                ["临封:", res.data[0].temporarySeizure + "(份)", 8],
-                                                ["罚金:", res.data[0].penaltyAmount + "(万元)", 8],
-                                            ],
-                                        },
-                                        {
-                                            title: ["相关火灾情况", res.data[0].fireTime && res.data[0].disposalDuration && res.data[0].burnedArea && res.data[0].fireGrade && res.data[0].mobilizeVehicles && res.data[0].squadron && res.data[0].status && res.data[0].initialFuelType1],
-                                            children: [
-                                                ["报警时间:", res.data[0].fireTime, 12],
-                                                ["处置时长:", res.data[0].disposalDuration, 12],
-                                                ["过火面积:", res.data[0].burnedArea, 12],
-                                                ["火灾等级:", res.data[0].fireGrade, 12],
-                                                ["调动车辆:", res.data[0].mobilizeVehicles + "(辆)", 12],
-                                                ["所属中队:", res.data[0].squadron, 12],
-                                                ["状况:", res.data[0].status, 12],
-                                                ["起火物:", res.data[0].initialFuelType1, 12],
-                                            ],
-                                        },
-                                    ];
-                                    this.popup(val._attrbutes, arrayList, true)
-                                });
-                        } else if (type == "举报投诉") {
-                            let arrayList = [{
-                                title: [val._attrbutes.name, true],
-                                children: [
+            //消防水源
+            if (pageType == "water-sources") {
+                var array = {
+                    clusterId: 100001,
+                    clusterData: []
+                }
+                var target1 = lnglats.map((val, ind) => {
+                    var wgs84 = CoordUtil.gcj02towgs84(Number(val.gisX) || Number(val.longitude), Number(val.gisY) || Number(val.latitude))
+                    var x = wgs84[0]
+                    var y = wgs84[1]
+                    val.type2 = type
+                    var array1 = {
+                        attributes: val,
+                        position: {
+                            x: x,
+                            y: y,
+                            z: 0,
+                        },
+                        image: {
+                            url: type == "消火栓可用" ? this.stores.sadianIcon.xhs : type == "消火栓不可用" ? this.stores.sadianIcon.xhsH : type == "天然水源" ? this.stores.sadianIcon.trsy : this.stores.sadianIcon.trsy,
+                            width: 19.5,
+                            height: 25,
+                        }
+                    }
+                    array.clusterData.push(array1)
+                })
+                var options = {
+                    style: { pixelRange: 60 },
+                    isZoom: true,
+                    click: this.clusterMapCallBack
 
-                                ],
-                            }]
-                            this.popup(val._attrbutes, arrayList, true)
+                };
+                window.jMap.ClusterMap.show(array, options)
+            } else {
+                //撒点类型
+                window.jMap.Locate.pointLocate(target, {
+                    //撒点
+                    isZoom: false,
+                    //animate: { "show": true },
+                    scaleByDistance: {
+                        minScaling: 1,
+                        maxScaling: 1,
+                        minDistance: 50, //最小距离
+                        maxDistance: 120000 //最大距离
+                    },
+                    click: (val) => {
+                        //消防执法
+                        if (pageType == "enforcement-dynamic") {
+                            if (type == "安全检查单位" || type == "双随机执法单位") {
+                                this.$axios
+                                    .get(
+                                        this.$api.siaeall.one +
+                                        "?" +
+                                        this.$qs.stringify({
+                                            companyId: val.attrbutes.number,
+                                            companyName: val.attrbutes.name,
+                                        })
+                                    )
+                                    .then((res) => {
+                                        res.data[0].company = val._attrbutes.name;
+                                        res.data[0].streetTown = val._attrbutes.streetTown;
+                                        let arrayList = [{
+                                                title: [res.data[0].company, res.data[0].company ? true : false],
+                                                children: [
+                                                    ["单位地址:", res.data[0].companyAddress, 24],
+                                                    ["负责人:", res.data[0].linkPerson, 10],
+                                                    ["联系电话:", res.data[0].linkPhone, 14],
+                                                    ["历史火灾次数:", res.data[0].fireCount, 12],
+
+                                                ],
+                                            },
+                                            {
+                                                title: ["行政许可情况", res.data[0].processDate && res.data[0].carefullyCheckDate && res.data[0].securityCheckDates],
+                                                children: [
+                                                    ["审核时间:", res.data[0].processDate, 12],
+                                                    ["验收时间:", res.data[0].carefullyCheckDate, 12],
+                                                    ["安检时间:", res.data[0].securityCheckDates, 12],
+                                                ],
+                                            },
+                                            {
+                                                title: ["历史检查情况", res.data[0].inspectCompany && res.data[0].fireHazard && res.data[0].rectificateFireHazard && res.data[0].punishmentDecision && res.data[0].orderThreeStops && res.data[0].correctionNotice && res.data[0].temporarySeizure && res.data[0].penaltyAmount],
+                                                children: [
+                                                    ["检查:", res.data[0].inspectCompany + "(家)", 8],
+                                                    ["隐患:", res.data[0].fireHazard + "(起)", 8],
+                                                    ["整改:", res.data[0].rectificateFireHazard + "(起)", 8],
+                                                    ["行罚:", res.data[0].punishmentDecision + "(份)", 8],
+                                                    ["三停:", res.data[0].orderThreeStops + "(家)", 8],
+                                                    ["责改:", res.data[0].correctionNotice + "(份)", 8],
+                                                    ["临封:", res.data[0].temporarySeizure + "(份)", 8],
+                                                    ["罚金:", res.data[0].penaltyAmount + "(万元)", 8],
+                                                ],
+                                            },
+                                            {
+                                                title: ["相关火灾情况", res.data[0].fireTime && res.data[0].disposalDuration && res.data[0].burnedArea && res.data[0].fireGrade && res.data[0].mobilizeVehicles && res.data[0].squadron && res.data[0].status && res.data[0].initialFuelType1],
+                                                children: [
+                                                    ["报警时间:", res.data[0].fireTime, 12],
+                                                    ["处置时长:", res.data[0].disposalDuration, 12],
+                                                    ["过火面积:", res.data[0].burnedArea, 12],
+                                                    ["火灾等级:", res.data[0].fireGrade, 12],
+                                                    ["调动车辆:", res.data[0].mobilizeVehicles + "(辆)", 12],
+                                                    ["所属中队:", res.data[0].squadron, 12],
+                                                    ["状况:", res.data[0].status, 12],
+                                                    ["起火物:", res.data[0].initialFuelType1, 12],
+                                                ],
+                                            },
+                                        ];
+                                        this.popup(val._attrbutes, arrayList, true)
+                                    });
+                            } else if (type == "举报投诉") {
+                                let arrayList = [{
+                                    title: [val._attrbutes.name, true],
+                                    children: [
 
-                        } else if (type == "执法记录仪") {
-                            let arrayList = [{
-                                    title: [val._attrbutes.groupName, true],
+                                    ],
+                                }]
+                                this.popup(val._attrbutes, arrayList, true)
+
+                            } else if (type == "执法记录仪") {
+                                let arrayList = [{
+                                        title: [val._attrbutes.groupName, true],
+                                        children: [
+                                            ["执法人:", val._attrbutes.name, 12],
+                                        ],
+                                        type: type,
+                                        url: val._attrbutes.url,
+                                    },
+
+                                ]
+                                this.popup(val._attrbutes, arrayList, true)
+                            } else if (type == "重大火灾隐患") {
+                                let msgParse = JSON.parse(val.attrbutes.extendData)
+                                let arrayList = [{
+                                    title: [val.attrbutes.facilityName, true],
                                     children: [
-                                        ["执法人:", val._attrbutes.name, 12],
+                                        ["地址:", val.attrbutes.address, 24],
+                                        ["分类等级:", val.attrbutes.address, 24],
+                                        ["基础信息:", msgParse.test1, 24],
+                                        ["消防安全隐患情况:", msgParse.test2, 24],
+
                                     ],
-                                    type: type,
-                                    url: val._attrbutes.url,
-                                },
-
-                            ]
-                            this.popup(val._attrbutes, arrayList, true)
-                        } else if (type == "重大火灾隐患") {
-                            let msgParse = JSON.parse(val.attrbutes.extendData)
-                            let arrayList = [{
-                                title: [val.attrbutes.facilityName, true],
-                                children: [
-                                    ["地址:", val.attrbutes.address, 24],
-                                    ["分类等级:", val.attrbutes.address, 24],
-                                    ["基础信息:", msgParse.test1, 24],
-                                    ["消防安全隐患情况:", msgParse.test2, 24],
+                                }, ];
+                                this.popup(val._attrbutes, arrayList, true)
+                            } else if (type == "三合一") {
+                                let msgParse = JSON.parse(val.attrbutes.extendData)
+                                let arrayList = [{
+                                    title: [val.attrbutes.facilityName, true],
+                                    children: [
+                                        ["单位地址:", val.attrbutes.address.replace("\t", ""), 24],
+                                        ["单位类别:", "三合一九小场所", 24],
+                                        ["单位法人:", val.attrbutes.facilityName.replace("\t", ""), 24],
+
+                                        ["检查人员姓名:", msgParse.test1, 24],
+                                        ["检查时间:", msgParse.test3, 24],
+                                        ["单位使用性质:", msgParse.test4, 24],
+                                        ["单位所属街道:", msgParse.test8, 24],
+                                        ["消消防安全责任人:", msgParse.test10, 24],
+                                        ["消防安全管理人(联系人):", msgParse.test11, 24],
+                                        ["联系电话(手机):", msgParse.test12, 24],
+                                        ["单位(场所)面积(m²):", msgParse.test17, 24],
+                                        ["地上:", msgParse.test18, 24],
+                                        ["地下:", msgParse.test19, 24],
+                                        ["建筑性质:", msgParse.test21, 24],
+                                        ["建筑结构:", msgParse.test22, 24],
 
-                                ],
-                            }, ];
-                            this.popup(val._attrbutes, arrayList, true)
-                        } else if (type == "三合一") {
-                            console.log(val.attrbutes)
-                            let msgParse = JSON.parse(val.attrbutes.extendData)
-                            let arrayList = [{
-                                title: [val.attrbutes.facilityName, true],
-                                children: [
-                                    ["单位地址:", val.attrbutes.address.replace("\t", ""), 24],
-                                    ["单位类别:", "三合一九小场所", 24],
-                                    ["单位法人:", val.attrbutes.facilityName.replace("\t", ""), 24],
-
-                                    ["检查人员姓名:", msgParse.test1, 24],
-                                    ["检查时间:", msgParse.test3, 24],
-                                    ["单位使用性质:", msgParse.test4, 24],
-                                    ["单位所属街道:", msgParse.test8, 24],
-                                    ["消消防安全责任人:", msgParse.test10, 24],
-                                    ["消防安全管理人(联系人):", msgParse.test11, 24],
-                                    ["联系电话(手机):", msgParse.test12, 24],
-                                    ["单位(场所)面积(m²):", msgParse.test17, 24],
-                                    ["地上:", msgParse.test18, 24],
-                                    ["地下:", msgParse.test19, 24],
-                                    ["建筑性质:", msgParse.test21, 24],
-                                    ["建筑结构:", msgParse.test22, 24],
+                                    ],
+                                }, ];
+                                this.popup(val._attrbutes, arrayList, true)
+                            } else if (type == "本年度重点事项推进情况") {
+                                let msgParse = JSON.parse(val.attrbutes.extendData)
+                                let arrayList = [{
+                                    title: [val.attrbutes.facilityName, true],
+                                    children: [
+                                        ["街道名称:", val.attrbutes.streetTown, 24],
+                                        ["地址:", val.attrbutes.address, 24],
+                                        ["状态:", val.attrbutes.status == 1 ? "已完成" : val.attrbutes.status == 2 ? "施工中" : val.attrbutes.status == 3 ? "招标中" : "", 24],
 
-                                ],
-                            }, ];
-                            this.popup(val._attrbutes, arrayList, true)
-                        }
-                    }
-                    //消防水源
-                    if (pageType == "water-sources") {
-                        if (type == "消火栓可用" || type == "消火栓不可用") {
-                            let arrayList = [{
-                                title: ["消火栓", true],
-                                children: [
-                                    ["水源位置:", val.attrbutes.address, 24],
-                                    ["电话:", val.attrbutes.phone, 12],
-                                    ["责任人:", val.attrbutes.dutyPerson, 12],
-                                    ["支队名称:", val.attrbutes.detachmentName, 24],
-                                    ["管辖机构:", val.attrbutes.jurisdictionalAgency, 12],
-                                    ["水源类型:", val.attrbutes.type, 12],
-                                    ["取水形式:", val.attrbutes.getWaterType, 12],
-                                    ["水源性质:", val.attrbutes.waterAdministrative, 12],
-                                    ["供水单位:", val.attrbutes.waterUnit, 24],
-                                    ["水压(Mpa):", val.attrbutes.waterGage, 24],
-                                    ["状态:", val.attrbutes.status == 1 ? "可用" : "不可用", 12],
-                                ],
-                            }, ];
-                            this.popup(val._attrbutes, arrayList, true)
-                        } else if (type == "天然水源") {
-                            let arrayList = [{
-                                title: [val.attrbutes.facilityName, true],
-                                children: [
-                                    ["水源位置:", val.attrbutes.address, 24],
-                                ],
-                            }, ];
-                            this.popup(val._attrbutes, arrayList, true)
+                                    ],
+                                }, ];
+                                this.popup(val._attrbutes, arrayList, true)
+                            }
                         }
-                    }
-                    //企业自主
-                    if (pageType == "self-management") {
-                        if (val.attrbutes.type == "重点单位") {
-                            this.elementInfo(val.attrbutes, "重点单位")
-                        } else if (val.attrbutes.type == "大型综合体") {
-                            let msgParse = JSON.parse(val.attrbutes.extendData)
-                            let arrayList = [{
-                                title: [val.attrbutes.facilityName, true],
-                                children: [
-                                    ["地址:", val.attrbutes.address, 24],
-                                    ["类型:", val.attrbutes.facilityType == 2 ? "5W平大型商业综合体" : val.attrbutes.facilityType == 3 ? "3-5万平大型商业综合体" : "", 24],
-                                    ["平面布局:", msgParse.planeLayout, 24],
-                                    ["用火用电用气管理:", msgParse.fireGasManage, 24],
-                                    ["油烟管道管理:", msgParse.oilFumeManage, 24],
-                                    ["消防设施:", msgParse.fireFacility, 24],
-                                    ["其他安全管理:", msgParse.otherSecurityManage, 24],
-                                    ["合计汇总:", msgParse.totalSummary, 24],
-                                ],
-                            }, ];
-                            this.popup(val._attrbutes, arrayList, true)
 
-                        } else {
-                            let arrayList = [{
-                                title: ["单位详情", val.attrbutes.companyName ? true : false],
-                                children: [
-                                    ["单位名称:", val.attrbutes.companyName, 24],
-                                    ["单位类型:", val.attrbutes.companyTypeName, 24],
-                                    ["联系电话:", val.attrbutes.linkPhone, 24],
-                                    ["地址:", val.attrbutes.address, 24],
-                                ],
-                            }, ];
-                            this.popup(val._attrbutes, arrayList, true)
-                        }
+                        //企业自主
+                        if (pageType == "self-management") {
+                            if (val.attrbutes.type == "重点单位") {
+                                this.elementInfo(val.attrbutes, "重点单位")
+                            } else if (val.attrbutes.type == "大型综合体") {
+                                let msgParse = JSON.parse(val.attrbutes.extendData)
+                                let arrayList = [{
+                                    title: [val.attrbutes.facilityName, true],
+                                    children: [
+                                        ["地址:", val.attrbutes.address, 24],
+                                        ["类型:", val.attrbutes.facilityType == 2 ? "5W平大型商业综合体" : val.attrbutes.facilityType == 3 ? "3-5万平大型商业综合体" : "", 24],
+                                        ["平面布局:", msgParse.planeLayout, 24],
+                                        ["用火用电用气管理:", msgParse.fireGasManage, 24],
+                                        ["油烟管道管理:", msgParse.oilFumeManage, 24],
+                                        ["消防设施:", msgParse.fireFacility, 24],
+                                        ["其他安全管理:", msgParse.otherSecurityManage, 24],
+                                        ["合计汇总:", msgParse.totalSummary, 24],
+                                    ],
+                                }, ];
+                                this.popup(val._attrbutes, arrayList, true)
+                            } else if (val.attrbutes.type == "中小学" || val.attrbutes.type == "幼儿园" || val.attrbutes.type == "其他学校") {
+                                let msgParse = JSON.parse(val.attrbutes.extendData)
+                                let phone = val.attrbutes.contactPhone
+                                let arrayList = [{
+                                    title: [val.attrbutes.facilityName, true],
+                                    children: [
+                                        ["机构简称:", msgParse.test1, 24],
+                                        // ["学校办别:", val.attrbutes.facilityType, 24],
+                                        ["学校类型:", val.attrbutes.type, 24],
+                                        ["所在街镇:", val.attrbutes.streetTown, 24],
+                                        ["地址:", msgParse.address, 24],
+                                        ["法人代表:", val.attrbutes.contact, 24],
+                                        ["手机:", phone.length > 8 ? phone.substring(0, 3) + '****' + phone.substring(phone.length - 3, phone.length) : phone.substring(0, 2) + '***' + phone.substring(phone.length - 3, phone.length), 24],
+                                    ],
+                                }, ];
+                                this.popup(val._attrbutes, arrayList, true)
+                            }else if (val.attrbutes.facilityType == "22") {
+                                    let msgParse = JSON.parse(val.attrbutes.extendData)
+                                    let arrayList = [{
+                                        title: [val.attrbutes.facilityName, true],
+                                        children: [
+                                            ["单位地址:", msgParse.address, 24],
+                                            ["单位负责人:", val.attrbutes.contact, 24],
+                                            ["负责人电话:", val.attrbutes.contactPhone, 24],
+                                            ["巡检部位:", msgParse.test1, 24],
+                                            ["巡检人员:", msgParse.test2, 24],
+                                            ["巡检情况:", msgParse.test3, 24],
+                                            
+                                        ],
+                                    }, ];
+                                    this.popup(val._attrbutes, arrayList, true)
+
+                            } else {
+                                let arrayList = [{
+                                    title: ["单位详情", val.attrbutes.companyName ? true : false],
+                                    children: [
+                                        ["单位名称:", val.attrbutes.companyName, 24],
+                                        ["单位类型:", val.attrbutes.companyTypeName, 24],
+                                        ["联系电话:", val.attrbutes.linkPhone, 24],
+                                        ["地址:", val.attrbutes.address, 24],
+                                    ],
+                                }, ];
+                                this.popup(val._attrbutes, arrayList, true)
+                            }
 
-                    }
-                    //大型安保 、火灾数据分析
-                    if (pageType == "security-plan" || pageType == "fire-data-analysis") {
-                        let arrayList = [{
-                            title: ["案件详情", true],
-                            children: [
-                                ["案件编号:", val.attrbutes.ajbh, 24],
-                                ["案件描述:", val.attrbutes.bcxx, 24],
-                                ["报警时间:", val.attrbutes.tzsj, 24],
-                                ["案件类型:", val.attrbutes.ajlx, 24],
-                                ["警情类别:", type, 24],
-                                ["警情等级:", val.attrbutes.ajdj, 24],
-                                ["调动车辆:", val.attrbutes.cdcl, 24],
-                                ["处置对象:", val.attrbutes.czdx, 24],
-                                ["主责中队:", val.attrbutes.zhongdui, 24],
-                                ["案件状态:", val.attrbutes.ajzt, 24],
-                                ["到场时间:", val.attrbutes.cssj, 24],
-                                ["控制时间:", val.attrbutes.kzsj, 24],
-                                ["熄灭时间:", val.attrbutes.xmsj, 24],
-                                ["返队时间:", val.attrbutes.fdsj, 24],
-                                ["所属街道:", val.attrbutes.streettown, 24],
-                            ],
-                        }, ];
-                        if (val._attrbutes.type != "国家会展中心") {
-                            this.popup(val._attrbutes, arrayList, true)
                         }
-                    }
-                    //消防救援站点
-                    if (pageType == "rescue-station") {
-                        if (type == "科普教育基地") {
+                        //大型安保 、火灾数据分析
+                        if (pageType == "security-plan" || pageType == "fire-data-analysis") {
                             let arrayList = [{
-                                title: [val.attrbutes.type, true],
+                                title: ["案件详情", true],
                                 children: [
-                                    ["成立时间/联系人:", val.attrbutes.policeTime, 24],
-                                    ["站点地址:", val.attrbutes.alertLevel, 24],
-                                    ["预约电话:", val.attrbutes.address, 24],
+                                    ["案件编号:", val.attrbutes.ajbh, 24],
+                                    ["案件描述:", val.attrbutes.bcxx, 24],
+                                    ["报警时间:", val.attrbutes.tzsj, 24],
+                                    ["案件类型:", val.attrbutes.ajlx, 24],
+                                    ["警情类别:", type, 24],
+                                    ["警情等级:", val.attrbutes.ajdj, 24],
+                                    ["调动车辆:", val.attrbutes.cdcl, 24],
+                                    ["处置对象:", val.attrbutes.czdx, 24],
+                                    ["主责中队:", val.attrbutes.zhongdui, 24],
+                                    ["案件状态:", val.attrbutes.ajzt, 24],
+                                    ["到场时间:", val.attrbutes.cssj, 24],
+                                    ["控制时间:", val.attrbutes.kzsj, 24],
+                                    ["熄灭时间:", val.attrbutes.xmsj, 24],
+                                    ["返队时间:", val.attrbutes.fdsj, 24],
+                                    ["所属街道:", val.attrbutes.streettown, 24],
                                 ],
                             }, ];
-                            this.popup(val._attrbutes, arrayList, true)
+                            if (val._attrbutes.type != "国家会展中心") {
+                                this.popup(val._attrbutes, arrayList, true)
+                            }
                         }
-                        if (type == "消防站" || type == "专职队" || type == "高层建筑覆盖" || type == "高层建筑" || type == "微型消防站") {
-                            if (val.attrbutes.stationType == 1 || val.attrbutes.stationType == 2 || val.attrbutes.stationType == 3 || val.attrbutes.stationType == 4) {
+                        //消防救援站点
+                        if (pageType == "rescue-station") {
+                            if (type == "科普教育基地") {
                                 let arrayList = [{
-                                    title: [val.attrbutes.stationName, true],
+                                    title: [val.attrbutes.type, true],
                                     children: [
-                                        ["消防站地址:", val.attrbutes.stationAddress, 24],
-                                        ["消防站类型:", val.attrbutes.stationType == 1 ? "一级消防站" : val.attrbutes.stationType == 2 ? "二级消防站" : val.attrbutes.stationType == 3 ? "三级消防站" : val.attrbutes.stationType == 4 ? "专职队" : "", 24],
+                                        ["成立时间/联系人:", val.attrbutes.policeTime, 24],
+                                        ["站点地址:", val.attrbutes.alertLevel, 24],
+                                        ["预约电话:", val.attrbutes.address, 24],
                                     ],
                                 }, ];
                                 this.popup(val._attrbutes, arrayList, true)
                             }
-                            if (val.attrbutes.stationType == 5) {
+                            if (type == "消防站" || type == "专职队" || type == "高层建筑覆盖" || type == "高层建筑" || type == "微型消防站" || type == "一级微型消防站" || type == "街镇专职消防队") {
+                                if (val.attrbutes.stationType == 1 || val.attrbutes.stationType == 2 || val.attrbutes.stationType == 3 || val.attrbutes.stationType == 4) {
+                                    let arrayList = [{
+                                        title: [val.attrbutes.stationName, true],
+                                        children: [
+                                            ["消防站地址:", val.attrbutes.stationAddress, 24],
+                                            ["消防站类型:", val.attrbutes.stationType == 1 ? "一级消防站" : val.attrbutes.stationType == 2 ? "二级消防站" : val.attrbutes.stationType == 3 ? "三级消防站" : val.attrbutes.stationType == 4 ? "专职队" : "", 24],
+                                        ],
+                                    }, ];
+                                    this.popup(val._attrbutes, arrayList, true)
+                                }
+                                if (val.attrbutes.stationType == 5) {
+                                    let arrayList = [{
+                                        title: [val.attrbutes.streetTown + "微型消防站(" + val.attrbutes.stationCode + '号)', true],
+                                        children: [
+                                            ["地址:", val.attrbutes.stationAddress, 24],
+                                            ["编号:", val.attrbutes.stationCode, 24],
+                                            ["距消防站直线距离:", val.attrbutes.stationAddress, 24],
+                                            ["距消防站行驶距离:", val.attrbutes.driveDistance, 24],
+                                            ["交通拥堵行驶时间:", val.attrbutes.jamDrive, 24],
+                                            ["交通畅通行驶时间:", val.attrbutes.unimpededDrive, 24],
+                                            //     ["点位情况:", val.attrbutes.pointSituation, 24],
+                                            ["建筑情况:", val.attrbutes.buildSituation, 24],
+                                            ["车辆停放:", val.attrbutes.vehiclePark, 24],
+                                            ["是否有产证:", val.attrbutes.birthCert, 24],
+                                            ["产证情况:", val.attrbutes.birthCertSituation, 24],
+                                        ],
+                                    }, ];
+                                    this.popup(val._attrbutes, arrayList, true)
+                                }
+                                if (val.attrbutes.stationType == 111 || val.attrbutes.stationType == 112) {
+                                    let arrayList = [{
+                                        title: [val.attrbutes.buildName, true],
+                                        children: [
+                                            ["建筑地址:", val.attrbutes.address, 24],
+                                            ["主要产权人:", val.attrbutes.principalPropertyOwner, 24],
+                                            ["统一社会信用代码:", val.attrbutes.creditCode, 24],
+                                            ["物业服务企业名称:", val.attrbutes.propertyServiceName, 24],
+                                            ["建成年份:", val.attrbutes.completeYear, 24],
+                                            ["建筑高度:", val.attrbutes.buildHigh, 24],
+                                            ["地上建筑层数:", val.attrbutes.aboveFloor, 24],
+                                            ["地下建筑层数:", val.attrbutes.underFloor, 24],
+                                            ["建筑类型:", val.attrbutes.buildType, 24],
+                                            ["功能用途:", val.attrbutes.functionalPurpose, 24],
+                                        ],
+                                    }, ];
+                                    this.popup(val._attrbutes, arrayList, true)
+                                }
+                                if (val.attrbutes.stationType == 17 || val.attrbutes.stationType == 18) {
+                                    let bianhao = JSON.parse(val.attrbutes.extendData).test1
+                                    let arrayList = [{
+                                        title: [val.attrbutes.facilityName, true],
+                                        children: [
+                                            ["编号:", bianhao, 24],
+                                            ["消防站地址:", val.attrbutes.address, 24],
+                                            ["消防站类型:", val.attrbutes.stationType == 17 ? "一级微型消防站" : val.attrbutes.stationType == 18 ? "街镇专职消防队" : "", 24],
+                                        ],
+                                    }, ];
+                                    this.popup(val._attrbutes, arrayList, true)
+                                }
+                            }
+                            if (type == "企业消防" || type == "社区消防") {
                                 let arrayList = [{
-                                    title: [val.attrbutes.streetTown + "微型消防站(" + val.attrbutes.stationCode + '号)', true],
+                                    title: [val.attrbutes.facilityName, true],
                                     children: [
-                                        ["地址:", val.attrbutes.stationAddress, 24],
-                                        ["编号:", val.attrbutes.stationCode, 24],
-                                        ["距消防站直线距离:", val.attrbutes.stationAddress, 24],
-                                        ["距消防站行驶距离:", val.attrbutes.driveDistance, 24],
-                                        ["交通拥堵行驶时间:", val.attrbutes.jamDrive, 24],
-                                        ["交通畅通行驶时间:", val.attrbutes.unimpededDrive, 24],
-                                        //     ["点位情况:", val.attrbutes.pointSituation, 24],
-                                        ["建筑情况:", val.attrbutes.buildSituation, 24],
-                                        ["车辆停放:", val.attrbutes.vehiclePark, 24],
-                                        ["是否有产证:", val.attrbutes.birthCert, 24],
-                                        ["产证情况:", val.attrbutes.birthCertSituation, 24],
+
+                                        ["站点地址:", val.attrbutes.address, 24],
+                                        ["站点类型:", val.attrbutes.facilityType == 13 ? "重点单位微站" :
+                                            val.attrbutes.facilityType == 14 ? "一般单位微站" : val.attrbutes.facilityType == 15 ? "居委会微站" : val.attrbutes.facilityType == 16 ? "村委会微站" : "", 24
+                                        ],
+                                        ["街镇:", val.attrbutes.streetTown, 24],
                                     ],
                                 }, ];
                                 this.popup(val._attrbutes, arrayList, true)
                             }
-                            if (val.attrbutes.stationType == 111 || val.attrbutes.stationType == 112) {
+
+                        }
+
+                        //警情综合处置
+                        if (pageType == "comprehensive-disposal") {
+                            if (type == "实时警情") {
                                 let arrayList = [{
-                                    title: [val.attrbutes.buildName, true],
+                                    title: ["案件详情", true],
                                     children: [
-                                        ["建筑地址:", val.attrbutes.address, 24],
-                                        ["主要产权人:", val.attrbutes.principalPropertyOwner, 24],
-                                        ["统一社会信用代码:", val.attrbutes.creditCode, 24],
-                                        ["物业服务企业名称:", val.attrbutes.propertyServiceName, 24],
-                                        ["建成年份:", val.attrbutes.completeYear, 24],
-                                        ["建筑高度:", val.attrbutes.buildHigh, 24],
-                                        ["地上建筑层数:", val.attrbutes.aboveFloor, 24],
-                                        ["地下建筑层数:", val.attrbutes.underFloor, 24],
-                                        ["建筑类型:", val.attrbutes.buildType, 24],
-                                        ["功能用途:", val.attrbutes.functionalPurpose, 24],
+                                        ["案件编号:", val.attrbutes.ajbh, 24],
+                                        ["案件描述:", val.attrbutes.bcxx, 24],
+                                        ["报警时间:", val.attrbutes.tzsj, 24],
+                                        ["案件类型:", val.attrbutes.ajlx, 24],
+                                        ["警情类别:", val.attrbutes.type, 24],
+                                        ["警情等级:", val.attrbutes.ajdj, 24],
+                                        ["案发地址:", val.attrbutes.afdz, 24],
+                                        ["调动车辆:", val.attrbutes.cdcl, 24],
+                                        ["处置对象:", val.attrbutes.czdx, 24],
+                                        ["主责中队:", val.attrbutes.zhongdui, 24],
+                                        ["案件状态:", val.attrbutes.cssj, 24],
+                                        ["到场时间:", val.attrbutes.dcsj, 24],
+                                        ["出水时间:", val.attrbutes.cssj, 24],
+                                        ["控制时间:", val.attrbutes.kzsj, 24],
+                                        ["熄灭时间:", val.attrbutes.xmsj, 24],
+                                        ["所属街道:", val.attrbutes.streettown, 24],
                                     ],
                                 }, ];
                                 this.popup(val._attrbutes, arrayList, true)
                             }
-                        }
-                        if (type == "企业消防" || type == "社区消防") {
-                            let arrayList = [{
-                                title: [val.attrbutes.facilityName, true],
-                                children: [
 
-                                    ["站点地址:", val.attrbutes.address, 24],
-                                    ["站点类型:", val.attrbutes.facilityType == 13 ? "重点单位微站" :
-                                        val.attrbutes.facilityType == 14 ? "一般单位微站" : val.attrbutes.facilityType == 15 ? "居委会微站" : val.attrbutes.facilityType == 16 ? "村委会微站" : "", 24
+                        }
+                        //城市消防体征
+                        if (pageType == "fire-signs") {
+                            if (type == "仓库") {
+                                let arrayList = [{
+                                    title: [val.attrbutes.companyName, true],
+                                    children: [
+                                        ["单位地址:", val.attrbutes.address, 24],
+                                        ["单位类别:", val.attrbutes.companyType, 24],
+                                        ["单位使用性质:", val.attrbutes.companyNature, 24],
+                                        ["单位(法人)名称:", val.attrbutes.delegateName, 24],
+                                        ["统一社会信用代码:", val.attrbutes.socialCode, 24],
+                                        ["所辖派出所:", val.attrbutes.policeStation, 24],
+                                        ["消防安全责任人:", val.attrbutes.fireDutyName, 24],
+                                        ["消防安全管理人:", val.attrbutes.fireManageName, 24],
+                                        ["联系电话(手机):", val.attrbutes.linkPhone, 24],
+                                        ["是否自主消防安全管理:", val.attrbutes.fireSafetyManage, 24],
+                                        ["单位(场所)面积(㎡):", val.attrbutes.companyArea, 24],
+                                        ["行业类别:", val.attrbutes.industryType, 24],
+                                        ["是否为洁净厂房:", val.attrbutes.cleanRoom, 24],
+                                        ["生产经营组织形式:", val.attrbutes.organizationForm, 24],
+                                        ["网格号:", val.attrbutes.gridNo, 24],
+                                        ["年份:", val.attrbutes.particularYear, 24],
+                                        ["提交时间:", val.attrbutes.submitTime, 24],
+                                        ["经度:", val.attrbutes.longitude, 24],
+                                        ["纬度:", val.attrbutes.latitude, 24],
                                     ],
-                                    ["街镇:", val.attrbutes.streetTown, 24],
-                                ],
-                            }, ];
-                            this.popup(val._attrbutes, arrayList, true)
+                                }, ];
+                                this.popup(val._attrbutes, arrayList, true)
+                            }
                         }
 
-                    }
-
-                    //警情综合处置
-                    if (pageType == "comprehensive-disposal") {
-
-                        let arrayList = [{
-                            title: [val.attrbutes.stationName, true],
-                            children: [
-
-                            ],
-                        }, ];
-                        this.popup(val._attrbutes, arrayList, true)
-                    }
-                    //城市消防体征
-                    if (pageType == "fire-signs") {
-                        if (type == "仓库") {
-                            let arrayList = [{
-                                title: [val.attrbutes.companyName, true],
-                                children: [
-                                    ["单位地址:", val.attrbutes.address, 24],
-                                    ["单位类别:", val.attrbutes.companyType, 24],
-                                    ["单位使用性质:", val.attrbutes.companyNature, 24],
-                                    ["单位(法人)名称:", val.attrbutes.delegateName, 24],
-                                    ["统一社会信用代码:", val.attrbutes.socialCode, 24],
-                                    ["所辖派出所:", val.attrbutes.policeStation, 24],
-                                    ["消防安全责任人:", val.attrbutes.fireDutyName, 24],
-                                    ["消防安全管理人:", val.attrbutes.fireManageName, 24],
-                                    ["联系电话(手机):", val.attrbutes.linkPhone, 24],
-                                    ["是否自主消防安全管理:", val.attrbutes.fireSafetyManage, 24],
-                                    ["单位(场所)面积(㎡):", val.attrbutes.companyArea, 24],
-                                    ["行业类别:", val.attrbutes.industryType, 24],
-                                    ["是否为洁净厂房:", val.attrbutes.cleanRoom, 24],
-                                    ["生产经营组织形式:", val.attrbutes.organizationForm, 24],
-                                    ["网格号:", val.attrbutes.gridNo, 24],
-                                    ["年份:", val.attrbutes.particularYear, 24],
-                                    ["提交时间:", val.attrbutes.submitTime, 24],
-                                    ["经度:", val.attrbutes.longitude, 24],
-                                    ["纬度:", val.attrbutes.latitude, 24],
-                                ],
-                            }, ];
-                            this.popup(val._attrbutes, arrayList, true)
-                        }
-                    }
+                    },
+                });
+            }
 
-                },
-            });
         },
+        //聚合点击事件
+        clusterMapCallBack(clusterPointArr, clickPoint) {
+            let val = clusterPointArr.attributes
+            if (val.type2 == "消火栓可用" || val.type2 == "消火栓不可用") {
+                let arrayList = [{
+                    title: ["消火栓", true],
+                    children: [
+                        ["水源位置:", val.address, 24],
+                        ["电话:", val.phone, 12],
+                        ["责任人:", val.dutyPerson, 12],
+                        ["支队名称:", val.detachmentName, 24],
+                        ["管辖机构:", val.jurisdictionalAgency, 12],
+                        ["水源类型:", val.type, 12],
+                        ["取水形式:", val.getWaterType, 12],
+                        ["水源性质:", val.waterAdministrative, 12],
+                        ["供水单位:", val.waterUnit, 24],
+                        ["水压(Mpa):", val.waterGage, 24],
+                        ["状态:", val.status == 1 ? "可用" : "不可用", 12],
+                    ],
+                }, ];
+                this.popup(val, arrayList, true)
+            } else if (type == "天然水源") {
+                let arrayList = [{
+                    title: [val.facilityName, true],
+                    children: [
+                        ["水源位置:", val.address, 24],
+                    ],
+                }, ];
+                this.popup(val, arrayList, true)
+            }
+        },
+
         heatMap(data) {
             let target = []
             if (data.length > 0) {

+ 459 - 92
src/components/mixins/map-data1.js

@@ -1,5 +1,6 @@
 import axios from "axios";
 import data from "@c/mixins/anbao";
+
 export default {
     data() {
         return {
@@ -22,8 +23,7 @@ export default {
          *地图初始化
          *
          */
-        async initMap() {
-
+        async initMap(type) {
             window.vue = this;
             window.jMap = null;
             window.jmapQuery = null;
@@ -46,72 +46,408 @@ export default {
                 },
                 map_right_click_callback: (obj) => {},
             };
-
             let res = await this.$axios.get(this.$api.dt);
-
             // 加载地图
             window.jMap.createMap("mapF", res.data, window.location.origin, map_params, {});
             // 地图背景样式
             window.jMap.switchBaseLayer("blue");
-            /**
-             * 获取街镇信息
-             */
-            var options = {
-                click: addLayerCallBack,
-                isZoom: false,
-                style: {
-                    outline: true,
-                    outlineColor: "rgb(255,0,0,0.8)",
-                    material: "rgb(154,255,154,0)",
-                    perPositionHeight: false,
-                    height: 5,
-                    width: 5,
-                    label: {
-                        show: true,
-                        text: "name",
-                        font: "16px Helvetica",
-                        fillColor: "rgb(0,255,0,0.9)",
-                        pixelOffset: [0, -40],
-                        backgroundColor: "rgb(0,0,0,0)",
-                        showBackground: false,
-                    },
-                },
-                // where:"name = '莘庄镇'"
-            };
-
-            window.jMap.addLayer("mh_dyn_district", [1], options);
-            var _this = this;
-
-            function addLayerCallBack(obj) {
-                // _this.streetTownMap(obj._name)
-                _this.stores.streetTownSet(obj._name)
-
+            if(type == "anbao"){
+                
+                // var options = {
+                //     click: addLayerCallBack,
+                //     isZoom: false,
+                //     style: {
+                //         outline: true,
+                //         outlineColor: "rgb(255,0,0,0.8)",
+                //         material: "rgb(154,255,154,0)",
+                //         perPositionHeight: false,
+                //         height: 5,
+                //         width: 5,
+                //         label: {
+                //             show: true,
+                //             text: 'name',
+                //             font: "12px Helvetica",
+                //             fillColor: 'rgb(0,255,0,0.9)',
+                //             pixelOffset: [0, -40],
+                //             backgroundColor: 'rgb(0,0,0,0)',
+                //             showBackground: false
+                //         }
+                //     },
+                //     // where: "name = '莘庄镇'"
+
+                // };
+                // jMap.addLayer('mh_dyn_cywg', [0], options);
+                // var options2 = {
+                //     click: addLayerCallBack,
+                //     isZoom: false,
+                //     style: {
+                //         outline: true,
+                //         outlineColor: "rgb(255,0,0,0.8)",
+                //         material: "rgb(154,255,154,0)",
+                //         perPositionHeight: false,
+                //         height: 5,
+                //         width: 5,
+                //         label: {
+                //             show: true,
+                //             text: 'name',
+                //             font: "12px Helvetica",
+                //             fillColor: 'rgb(0,255,0,0.9)',
+                //             pixelOffset: [0, -40],
+                //             backgroundColor: 'rgb(0,0,0,0)',
+                //             showBackground: false
+                //         }
+                //     },
+                //     where: "name = '赵家村村委会'"
+
+                // };
+                // jMap.addLayer('mh_dyn_district', [2], options2);
+                // 点击事件回调函数
+                function addLayerCallBack(obj) {
+                    console.log(obj);
+                }
             }
+            
 
-            // 街镇标题
-            var qp = new JMapQueryParam({
-                queryMapService: "mh_dyn_district",
-                queryMapLayers: [1],
-                outFields: ["code", "name", "center_x", "center_y"],
-                queryWhere: "name like '%莘庄镇%' ",
-                callBack: (res) => {
-
-                    res.features.forEach(async(val) => {
-                        await window.jMap.FlagInfo.show({
-                            id: val.attributes.code,
-                            position: { x: Number(val.attributes.center_x), y: Number(val.attributes.center_y), z: 0 },
-                            element: `<div class='ysc-dynamic-layer ys-css3-box' onclick="vue.clickFlag(${val.attributes.code})">
-                                                <div class='biaozhu' style="font-size:18px !important">${val.attributes.name}   ${val.attributes.code}</div>
-                                        </div>`,
-                        }, { isZoom: false });
+           
+        },
+        /**
+         * 安保区域
+         * @param {*} id 1大网格 2小网格 
+         * @param {*} status 是否有图层
+         */
+        anbao(status,id){
+            
+            var color = [
+                // "#2c6395",
+                // "#1b6cb6",
+                // "#40a4ff",
+                // "#8ac7ff",
+                // "#b1cce5",
+                // "#a03523",
+                // "#d7le00",
+                // "#ffa192",
+                // "#dba197",
+                // "#009081",
+                // "#00ae9c",
+                // "#50fed",
+                // "#4d6700",
+                // "#729900",
+                // "#729900",
+                "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", "#009b8a", "#b72727", "#71a382", "#1c6093", "#a4294f", "#3f8a3f", "#68afc1", 
+                "#5081c5", "#c3a102", "#d17100", , "#a4294f", "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", 
+                "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", "#009b8a", "#b72727", "#71a382", "#1c6093", "#a4294f", "#3f8a3f", "#68afc1", 
+                "#5081c5", "#c3a102", "#d17100", , "#a4294f", "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", 
+                "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", "#009b8a", "#b72727", "#71a382", "#1c6093", "#a4294f", "#3f8a3f", "#68afc1", 
+                "#5081c5", "#c3a102", "#d17100", , "#a4294f", "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", 
+                "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", "#009b8a", "#b72727", "#71a382", "#1c6093", "#a4294f", "#3f8a3f", "#68afc1", 
+                "#5081c5", "#c3a102", "#d17100", , "#a4294f", "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", 
+                "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", "#009b8a", "#b72727", "#71a382", "#1c6093", "#a4294f", "#3f8a3f", "#68afc1", 
+                "#5081c5", "#c3a102", "#d17100", , "#a4294f", "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", 
+                "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", "#009b8a", "#b72727", "#71a382", "#1c6093", "#a4294f", "#3f8a3f", "#68afc1", 
+                "#5081c5", "#c3a102", "#d17100", , "#a4294f", "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", 
+                "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", "#009b8a", "#b72727", "#71a382", "#1c6093", "#a4294f", "#3f8a3f", "#68afc1", 
+                "#5081c5", "#c3a102", "#d17100", , "#a4294f", "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", 
+                "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100", "#009b8a", "#b72727", "#71a382", "#1c6093", "#a4294f", "#3f8a3f", "#68afc1", 
+                "#5081c5", "#c3a102", "#d17100", , "#a4294f", "#3f8a3f", "#68afc1", "#5081c5", "#c3a102", "#d17100",
+
+
+              ];
+            var JmapQuery = new JMapQuery(window.jMap); // JMap为初始化地图时,实例化的JMap对象
+            if(status){
+                console.log(11111111)
+                window.jMap.Locate.clearLocate(); //清楚分布
+                // window.jMap.removeLayer();    //  空值清除所有已添加图层
+            }
+            
+
+            //大网格
+            if(id ==1){
+                setTimeout(()=>{
+                    // 例: 8.1 2 查询图层列表
+                    var qp2 = new JMapQueryParam({
+                        queryMapService: "mh_dyn_cywg",
+                        queryMapLayers: [0],
+                        //  queryGeometry: result[0],         //  默认进行属性查询,放开该段注释将在选定的几何空间内进行空间查询
+                        // queryWhere: "name like '%莘庄镇%' ", //  可自定义查询条件,也可不传该参数
+                        outFields: ["*"], //  返回字段信息
+                        callBack: testQueryCallBack2
                     });
-                },
-            });
-
-            // new JMapQuery(window.jMap).execQuery(qp)
-
-            //window.jMap.bindBuildingClick(callbackFunction)
-            // 点击三维建筑模型触发的回调函数
+                    JmapQuery.execQuery(qp2);
+                    // 图层查询完毕的回调函数
+                    function testQueryCallBack2(obj) {
+                        var bigNewArr = [];
+                        var name = [];
+                        var bigArr = obj.features.filter(function(el) {
+                            return el.attributes.name.indexOf('新虹街道') > -1 
+                            || el.attributes.name.indexOf('华漕') > -1 
+                            || el.attributes.name.indexOf('七宝中片') > -1 
+                            || el.attributes.name.indexOf('航华网格') > -1 
+                            || el.attributes.name.indexOf('七宝北片网格') > -1 
+                            || el.attributes.name.indexOf('紫藤、红松') > -1 
+                            || el.attributes.name.indexOf('虹梅区域') > -1 
+    
+                        })
+                        bigArr.forEach(function(item, index) {
+                            var aaa = item.geometry.rings[0];
+                            var newArr = aaa.map(function(value, index) {
+                                var obj = {
+                                    x: value[0],
+                                    y: value[1],
+                                    z: 0.1
+                                }
+                                return obj
+                            })
+                            bigNewArr.push(newArr);
+                            name.push(item.attributes.name)
+    
+                        })
+                        let arrayAll = [];
+                        bigNewArr.forEach(function(item, index) {
+                            var idx = index + 1;
+                            setTimeout(() => {
+                                // 2区域分布
+                                var target = {
+                                    id: idx,
+                                    attributes: {
+                                        name: 
+                                        name[index] ==  "华漕镇处置网格二(纪王西片区)" ? "闵S1-1(纪王西网格)" 
+                                        : name[index] ==  "华漕镇处置网格一(纪王东片区)" ? "闵S1-2(纪王东网格)"
+                                        : name[index] ==  "华漕镇处置网格四(诸翟北片区)" ? "闵S1-3(诸翟北网格)"
+                                        : name[index] ==  "华漕镇处置网格五(诸翟南片区)" ? "闵S1-4(诸翟南网格)"
+                                        : name[index] ==  "华漕镇处置网格三(老华漕片区)" ? "闵S1-5(老华漕网格)"
+                                        : name[index] ==  "新虹街道处置网格二(爱博)" ? "闵S2-1(爱博网格)"
+                                        : name[index] ==  "新虹街道处置网格三(华美)" ? "闵S2-2(华美网格)"
+                                        : name[index] ==  "新虹街道处置网格一(枢纽)" ? "闵S2-3(枢纽网格)"
+                                        : name[index] ==  "新虹街道处置网格四(航华)" ? "闵S2-4(航华网格)"
+                                        : name[index] ==  "七宝镇处置网格一(七宝北片网格)" ? "闵S3-1(七宝北片网格)"
+                                        : name[index] ==  "七宝镇处置网格二(七宝中片网格)" ? "闵S3-2(七宝吴宝路网格)"
+                                        : name[index] ==  "七宝镇处置网格五(航华网格)" ? "闵S3-3(七宝航华网格)"
+                                        : name[index] ==  "虹桥镇处置网格四(紫藤、红松区域)" ? "闵S4-1(紫藤红松网格)"
+                                        : name[index] ==  "虹桥镇处置网格二(虹梅区域)" ? "闵S4-2(虹梅网格)"
+                                        : name[index]
+                                    },
+                                    position: item,
+                                    label: {
+                                        text:  
+                                        name[index] ==  "华漕镇处置网格二(纪王西片区)" ? "闵S1-1(纪王西网格)" 
+                                        : name[index] ==  "华漕镇处置网格一(纪王东片区)" ? "闵S1-2(纪王东网格)"
+                                        : name[index] ==  "华漕镇处置网格四(诸翟北片区)" ? "闵S1-3(诸翟北网格)"
+                                        : name[index] ==  "华漕镇处置网格五(诸翟南片区)" ? "闵S1-4(诸翟南网格)"
+                                        : name[index] ==  "华漕镇处置网格三(老华漕片区)" ? "闵S1-5(老华漕网格)"
+                                        : name[index] ==  "新虹街道处置网格二(爱博)" ? "闵S2-1(爱博网格)"
+                                        : name[index] ==  "新虹街道处置网格三(华美)" ? "闵S2-2(华美网格)"
+                                        : name[index] ==  "新虹街道处置网格一(枢纽)" ? "闵S2-3(枢纽网格)"
+                                        : name[index] ==  "新虹街道处置网格四(航华)" ? "闵S2-4(航华网格)"
+                                        : name[index] ==  "七宝镇处置网格一(七宝北片网格)" ? "闵S3-1(七宝北片网格)"
+                                        : name[index] ==  "七宝镇处置网格二(七宝中片网格)" ? "闵S3-2(七宝吴宝路网格)"
+                                        : name[index] ==  "七宝镇处置网格五(航华网格)" ? "闵S3-3(七宝航华网格)"
+                                        : name[index] ==  "虹桥镇处置网格四(紫藤、红松区域)" ? "闵S4-1(紫藤红松网格)"
+                                        : name[index] ==  "虹桥镇处置网格二(虹梅区域)" ? "闵S4-2(虹梅网格)"
+                                        : name[index],
+                                        font: "14px Helvetica",
+                                        color: "#fff",
+                                        pixelOffset: [0, -40]
+                                    }
+                                };
+                                var options = {
+                                    isZoom: true,
+                                    click: regionLocateCallBack,
+                                    style: {
+                                        color: color[index],
+                                        transparency: 0.6,
+                                        outline: true,
+                                        outlineColor: 'blue',
+                                    }
+    
+                                };
+                                setTimeout(()=>{
+                                    jMap.Locate.regionLocate(target, options);
+                                },500)
+                                
+    
+                                // 分布点点击事件的回调函数
+                                function regionLocateCallBack(obj) {
+                                    console.log(obj); // obj为返回值
+                                }
+    
+                            }, idx * 1)
+                            // item.forEach(function(i) {
+                            //     arrayAll.push(i)
+                            // })
+                        })
+                    }
+                },1000)
+            }
+            
+            //居委会
+            if(id==2){
+                setTimeout(() => {
+                    var name2 = [];
+                    var qp3 = new JMapQueryParam({
+                        queryMapService: "mh_dyn_district",
+                        queryMapLayers: [2],
+                        //  queryGeometry: result[0],         //  默认进行属性查询,放开该段注释将在选定的几何空间内进行空间查询
+                        // queryWhere: "name like '%纪东村村委会%' ", //  可自定义查询条件,也可不传该参数
+                        // queryWhere: "grid_type in ('居委网格','村委网格') and subdistrict like '%华漕镇%' ", //  可自定义查询条件,也可不传该参数
+                        queryWhere: `name in ('沪星村村委会','九星村村委会','新龙村经济合作社','中春路第二居委会',
+'万科第四居委会',
+'万科城市花园第二居委会',
+'中春路居委会',
+'佳宝新村第一居委会',
+'万科城市花园第三居委会',
+'万科城市花园居委会',
+'沪星村村委会',
+'新龙村经济合作社',
+'吴宝路第一居委会',
+'塘北居委会',
+'塘南居委会',
+'吴宝路第二居委会',
+'吴宝路第三居委会',
+'蒲汇新村居委会',
+'京都苑居委会',
+'号上村经济合作社',
+'新龙村经济合作社',
+'航华一村第三居委会',
+'航华一村第四居委会',
+'航华二村第一居委会',
+'航华二村第四居委会',
+'航华一村第一居委会',
+'航华二村第三居委会',
+'航华四村第一居委会',
+'航华四村第四居委会',
+'航华四村第三居委会',
+'七韵美地苑居委会',
+'航华四村第二居委会',
+'航华三村第一居委会',
+'漕宝路居委会',
+'龙柏一村第一居委会',
+'龙柏一村第二居委会',
+'龙柏二村居委会',
+'兰竹居委会',
+'金汇华光城居委会',
+'西郊居委会',
+'虹鹿居委会',
+'红春公司',
+'华光花园居委会',
+'虹华苑居委会',
+'测绘院地图网格名称',
+'许浦村村委会',
+'西郊城第一居委会',
+'华漕村村委会',
+'南华路居委会',
+'王泥浜村村委会',
+'紫薇新村居委会',
+'诸翟村村委会',
+'诸翟居委会',
+'九韵城居委会',
+'诸新路居委会',
+'金丰城第一居委会',
+'美邻苑居委会',
+'爱博六村居委会',
+'杨家巷村村委会',
+'闵北路居委会(筹)',
+'西郊虹韵城居委会',
+'陈家角村村委会',
+'石皮弄村村委会',
+'纪东村村委会',
+'纪王居委会',
+'纪王村村委会',
+'银杏新村居委会',
+'红卫村村委会',
+'卫星村村委会',
+'纪西村村委会',
+'赵家村村委会',
+'鹫山村村委会',
+'爱博一村居委会',
+'爱博二村居委会',
+'爱博三村居委会',
+'爱博四村居委会',
+'华美路第二居委会',
+'航华一村第二居委会',
+'航华一村第五居委会',
+'航华一村第六居委会'
+                            ) and subdistrict in ('华漕镇','新虹街道','虹桥镇','七宝镇')`, //  可自定义查询条件,也可不传该参数
+                        outFields: ["*"], //  返回字段信息
+                        callBack: testQueryCallBack3
+                    });
+                    JmapQuery.execQuery(qp3);
+                    function testQueryCallBack3(obj) {
+                        let a = []
+                        for(let i =0;i<obj.features.length;i++){
+                            console.log(obj.features[i].attributes.grid_type)
+                            a[i] = {
+                                name:obj.features[i].attributes.name,
+                                subdistrict:obj.features[i].attributes.subdistrict,
+                            }
+                            // name2.push(obj.features[i].attributes.name)
+                        }
+                        console.log(a)
+                        var big2Arr = []
+                        obj.features.forEach(function(item, index) {
+                            var b2 = item.geometry.rings;
+                            b2.forEach(function(item2, index2) {
+                                var newArr2 = b2[index2].map(function(value, index3) {
+                                    var obj = {
+                                        x: value[0],
+                                        y: value[1],
+                                        z: 0.1
+                                    }
+                                    return obj
+                                })
+                                big2Arr.push(newArr2);
+                                name2.push(item.attributes.name)
+                            })
+
+                            
+                            
+                            
+    
+                        })
+                        
+                        big2Arr.forEach(function(item, index) {
+                            var idx = index + 1;
+                                setTimeout(() => {
+                                    // 2区域分布
+                                    var target = {
+                                        id: idx,
+                                        attributes: {
+                                            name:  name2[index]
+                                        },
+                                        position: item,
+                                        label: {
+                                            text:  name2[index],
+                                            font: "12px Helvetica",
+                                            color: "#ccc",
+                                            pixelOffset: [0, -40]
+                                        }
+                                    };
+                                    var options = {
+                                        isZoom: true,
+                                        click: regionLocateCallBack2,
+                                        style: {
+                                            color: "red",
+                                            transparency: 0.6,
+                                            outline: true,
+                                            outlineColor: 'blue',
+                                        }
+    
+                                    };
+                                    setTimeout(()=>{
+                                        jMap.Locate.regionLocate(target, options);
+                                    },500)
+                                    
+    
+                                    // 分布点点击事件的回调函数
+                                    function regionLocateCallBack2(obj) {
+                                        console.log(obj); // obj为返回值
+                                    }
+    
+                                }, idx * 1)
+                        })
+                    }
+                }, 2000); 
+            }
+            
         },
         /**
          *添加动态图层
@@ -140,39 +476,40 @@ export default {
          *安保区域划分
          *
          */
-        anbaoMap() {
-            let target = {
-                id: '100001',
-                attributes: {
-                    name: '大型安保范围',
-                },
-                position: data[0],
-                label: {
-                    text: "大型安保范围",
-                    font: "16px Helvetica",
-                    color: "rgba(255,255,255,0.1)",
-                    pixelOffset: [0, -50],
-                    backgroundColor: "red"
-                }
-
-            }
-            var options = {
-                isZoom: true,
-                style: {
-                    color: 'rgb(255,255,0,0.9)',
-                    transparency: 1,
-                    outline: true,
-                    outlineColor: 'transparent',
-                    perPositionHeight: true
-
-                },
-                // click: regionLocateCallBack
-            };
-            setTimeout(() => {
-                window.jMap.Locate.trackLocate(target, options);
-            }, 1000)
+        // anbaoMap() {
+        //     let target = {
+        //         id: '100001',
+        //         attributes: {
+        //             name: '大型安保范围',
+        //         },
+        //         position: data[0],
+        //         label: {
+        //             text: "大型安保范围",
+        //             font: "16px Helvetica",
+        //             color: "rgba(255,255,255,0.1)",
+        //             pixelOffset: [0, -50],
+        //             backgroundColor: "red"
+        //         }
+
+        //     }
+        //     var options = {
+        //         isZoom: true,
+        //         style: {
+        //             color: 'rgb(255,255,0,0.9)',
+        //             transparency: 1,
+        //             outline: true,
+        //             outlineColor: 'transparent',
+        //             perPositionHeight: true
+
+        //         },
+        //         // click: regionLocateCallBack
+        //     };
+        //     setTimeout(() => {
+        //         window.jMap.Locate.trackLocate(target, options);
+        //     }, 1000)
+
+        // },
 
-        },
         // 安保分布点点击事件的回调函数
         regionLocateCallBack(obj) {
             console.log(obj); // obj为返回值
@@ -313,6 +650,8 @@ export default {
                                 type == "本年度重点事项推进情况" && val.status == 1 ? this.stores.sadianIcon.ywc : type == "本年度重点事项推进情况" && val.status == 2 ? this.stores.sadianIcon.jxz : type == "本年度重点事项推进情况" && val.status == 3 ? this.stores.sadianIcon.zbz : 
 
                                 type == "高风险" ? this.stores.sadianIcon.gfx : type == "较高风险" ? this.stores.sadianIcon.jgfx : type == "一般风险" ? this.stores.sadianIcon.ybfx : type == "低风险" ? this.stores.sadianIcon.dfx : 
+
+                                type == "单位巡检" ? this.stores.sadianIcon.dwxj : type == "物联网设备" ? this.stores.sadianIcon.dwxj :
                                 
                                 this.stores.sadianIcon.trsy,
 
@@ -591,7 +930,35 @@ export default {
                                     ],
                                 }, ];
                                 this.popup(val._attrbutes, arrayList, true)
+                            }else if (val.attrbutes.facilityType == "22") {
+                                let msgParse = JSON.parse(val.attrbutes.extendData)
+                                let arrayList = [{
+                                    title: [val.attrbutes.facilityName, true],
+                                    children: [
+                                        ["单位地址:", msgParse.address, 24],
+                                        ["单位负责人:", val.attrbutes.contact, 24],
+                                        ["负责人电话:", val.attrbutes.contactPhone, 24],
+                                        ["巡检部位:", msgParse.test1, 24],
+                                        ["巡检人员:", msgParse.test2, 24],
+                                        ["巡检情况:", msgParse.test3, 24],
+                                        
+                                    ],
+                                }, ];
+                                this.popup(val._attrbutes, arrayList, true)
+                            }else if(type == "物联网设备"){
+                                let arrayList = [{
+                                    title: [val.attrbutes.buildName, true],
+                                    children: [
+                                        ["建筑地址:", val.address, 24],
+                                        ["建筑面积:", val.attrbutes.buildArea, 24],
+                                        ["建筑高度:", val.attrbutes.buildHigh, 24],
+                                        ["地上(层):", val.attrbutes.aboveFloor, 24],
+                                        ["地下(层):", val.attrbutes.underFloor, 24],
 
+                                        
+                                    ],
+                                }, ];
+                                this.popup(val._attrbutes, arrayList, true)
                             } else {
                                 let arrayList = [{
                                     title: ["单位详情", val.attrbutes.companyName ? true : false],

+ 0 - 73
src/http/api copy.js

@@ -1,73 +0,0 @@
-let api = {
-    dt: "/prod-api/service-fire/atlas/encrypt", //地图跨域
-    sp: "/video-api/kiop-gateway-core/4G/device/ext", //视频
-    // 个人中心
-    home: {},
-    fire: {
-        //火灾数据分析
-        trendQuery: "/mhapi/fireStatistics/fireCountByData", //火灾趋势图 ->统计
-        fireBubble: "/mhapi/fireStatistics/fireBubble", //火灾气泡图
-        fireType: "/mhapi/fireStatistics/fireType", //火灾趋势图 -> 火灾类型
-        fireAddress: "/mhapi/fireStatistics/fireAddress", //火灾趋势图 -> 地址
-        fireCauseRatio: "/mhapi/fireStatistics/fireCauseRatio", //火灾原因占比
-        fireStatistics: "/mhapi/fireStatistics/page", //火灾详细情况
-    },
-    siaeall: {
-        //消防执法动态
-        lawTrendList: "/prod-api/service-fire/bscLawTrend/lawTrendList", //消防执法动态-(当月执法情况、行政许可情况 、消防隐患举报投诉、投诉处理情况)
-        lawTrendSaDian: "/prod-api/service-fire/baseCompany/lawTrendScatterer", //撒点
-        one: "/prod-api/service-fire/bscLawTrend/companyData", //单点详情
-    },
-    selfManagement: {
-        //企业自主管理
-        mapList: "/prod-api/service-fire/baseCompany/companyScatterer", //企业自主管理-地图撒点
-        enterpriseAutonomy: "/prod-api/service-fire/bscEnterpriseAutonomy/enterpriseAutonomy", //企业自主管理-(企业自主情况、物联网设备情况、企业自主巡检情况、各街镇单位情况)
-        erpData: "/prod-api/service-fire/bscEnterpriseAutonomy/erpData", //企业自主管理-企业经营情况
-        caseList: "/prod-api/service-fire/demCase/caseList", //企业自主管理-历史案件
-        caseStatistics: "/prod-api/service-fire/demCase/caseStatistics", //企业自主管理-历史案件
-        streetDynamic: "/prod-api/service-fire/bscEnterpriseAutonomy/streetDynamic", //企业自主管理-各街镇物联动态
-        iotDisposal: "/prod-api/service-fire/bscEnterpriseAutonomy/iotDisposal", //企业自主管理-物联网处置情况
-    },
-    water: {
-        //消防水源情况
-        unitBeOnDutyOne: "/mhapi/unitBeOnDuty/one",
-        unitBeOnDutyList: "/mhapi/unitBeOnDuty/list",
-        fireWater: "/mhapi/fireWater/page",
-        fireWaterOne: "/mhapi/fireWater/one",
-        fireWaterStatistics: "/mhapi/fireWater/fireWaterStatistics",
-    },
-    house: {
-        //警情综合处置
-        alertStatisticsByHouse: "/mhapi/alert/alertStatisticsByHouse",
-        alertStatisticsByMonth: "/mhapi/alert/alertStatisticsByMonth",
-        alertStatistics: "/mhapi/alert/alertStatistics",
-        page: "/mhapi/alert/page",
-        pageMap: "/mhapi/alert/pageMap",
-        one: "/mhapi/alert/one",
-    },
-    fireSite: {
-        //消防救援站点
-        // page: '/fireSite/page',
-        // one: '/fireSite/one',
-        fireSiteDuty: "/mhapi/fireSite/fireSiteDuty",
-        page: "/mhapi/zskTeam/page", //执勤站点实力分页
-        list: "/mhapi/wlClxx/list", //车辆信息整合
-        pageMap: "/mhapi/xfzWxz/list", //撒点
-        one: "/mhapi/xfzWxz/one", //详情
-    },
-
-    jqzhcz: {
-        //警情综合处置
-        pageMap: "/prod-api/service-fire/demPoliceInfo/synthesizePoliceSituationScatterer", //撒点
-        warningInstanceScatterer: "/prod-api/service-fire/demPoliceInfo/warningInstanceScatterer", //实时告警撒点
-        alertStatisticsByHouse: "/prod-api/service-fire/demPoliceInfo/alertStatisticsByHouse", //警情时段分布
-        page: "/prod-api/service-fire/demPoliceInfo/page", //实时警情处理
-        alertStatisticsByMonth: "/prod-api/service-fire/demPoliceInfo/alertStatisticsByMonth", //历史警情趋势图
-        alertStatistics: "/prod-api/service-fire/demPoliceInfo/alertStatistics", //警情处置情况
-
-        one: "/mhapi/jcjAjxx/one", //警情详细信息
-
-        ext: "/video/kiop-gateway-core/4G/device/ext", //视频
-    },
-};
-export default api;

+ 4 - 2
src/http/api.js

@@ -16,6 +16,7 @@ let api = {
         hazardsNoticeList: "/prod-api/service-fire/demFireHazardsNotice/hazardsNoticeList", //挂牌督改情况
         hazardsNoticeStatistic: "/prod-api/service-fire/demFireHazardsNotice/hazardsNoticeStatistic", //挂牌督改统计情况
         infoList: "/prod-api/service-fire/demFireTypicalCase/infoList", //典型火灾案例
+        adLicenseStatistic: "/prod-api/service-fire/demNewLaw/adLicenseStatistic", //行政许可情况统计
 
     },
     siaeall: {
@@ -42,8 +43,9 @@ let api = {
         caseList: "/prod-api/service-fire/demCase/caseList", //企业自主管理-历史案件
         caseStatistics: "/prod-api/service-fire/demCase/caseStatistics", //企业自主管理-历史案件
         streetDynamic: "/prod-api/service-fire/bscEnterpriseAutonomy/streetDynamic", //企业自主管理-各街镇物联动态
-        iotDisposal: "/prod-api/service-fire/bscEnterpriseAutonomy/iotDisposal", //企业自主管理-物联网处置情况
-        scatterData: "/prod-api/service-fire/bscEnterpriseAutonomy/scatterData", //企业自主管理-重点单位撒点详情
+        // iotDisposal: "/prod-api/service-fire/bscEnterpriseAutonomy/iotDisposal", //企业自主管理-物联网处置情况
+        deviceTypeList: "/prod-api/service-fire/baseDevice/deviceTypeList", //企业自主管理-物联网设备情况
+        deviceTypeScatter: "/prod-api/service-fire/baseDevice/deviceTypeScatter", //企业自主管理-物联网设备撒点
     },
     water: {
         //消防水源情况

+ 0 - 71
src/http/api75.js

@@ -1,71 +0,0 @@
-let api = {
-    dt: "/papi/service-fire/atlas/encrypt", //地图跨域
-    sp: "/video-api/kiop-gateway-core/4G/device/ext", //视频
-    // 个人中心
-    home: {},
-    fire: {
-        //火灾数据分析
-        trendQuery: "/api/fireStatistics/fireCountByData", //火灾趋势图 ->统计
-        fireBubble: "/api/fireStatistics/fireBubble", //火灾气泡图
-        fireType: "/api/fireStatistics/fireType", //火灾趋势图 -> 火灾类型
-        fireAddress: "/api/fireStatistics/fireAddress", //火灾趋势图 -> 地址
-        fireCauseRatio: "/api/fireStatistics/fireCauseRatio", //火灾原因占比
-        fireStatistics: "/api/fireStatistics/page", //火灾详细情况
-    },
-    siaeall: {
-        //消防执法动态
-        lawTrendList: "/papi/service-fire/bscLawTrend/lawTrendList", //消防执法动态-(当月执法情况、行政许可情况 、消防隐患举报投诉、投诉处理情况)
-        lawTrendSaDian: "/papi/service-fire/baseCompany/lawTrendScatterer", //撒点
-        one: "/papi/service-fire/bscLawTrend/companyData", //单点详情
-    },
-    selfManagement: {
-        //企业自主管理
-        mapList: "/papi/service-fire/baseCompany/companyScatterer", //企业自主管理-地图撒点
-        enterpriseAutonomy: "/papi/service-fire/bscEnterpriseAutonomy/enterpriseAutonomy", //企业自主管理-(企业自主情况、物联网设备情况、企业自主巡检情况、各街镇单位情况)
-        erpData: "/papi/service-fire/bscEnterpriseAutonomy/erpData", //企业自主管理-企业经营情况
-        caseList: "/papi/service-fire/demCase/caseList", //企业自主管理-历史案件
-        caseStatistics: "/papi/service-fire/demCase/caseStatistics", //企业自主管理-历史案件
-        streetDynamic: "/papi/service-fire/bscEnterpriseAutonomy/streetDynamic", //企业自主管理-各街镇物联动态
-        iotDisposal: "/papi/service-fire/bscEnterpriseAutonomy/iotDisposal", //企业自主管理-物联网处置情况
-    },
-    water: {
-        //消防水源情况
-        unitBeOnDutyOne: "/api/unitBeOnDuty/one",
-        unitBeOnDutyList: "/api/unitBeOnDuty/list",
-        fireWater: "/api/fireWater/page",
-        fireWaterOne: "/api/fireWater/one",
-        fireWaterStatistics: "/api/fireWater/fireWaterStatistics",
-    },
-    house: {
-        //警情综合处置
-        alertStatisticsByHouse: "/api/alert/alertStatisticsByHouse",
-        alertStatisticsByMonth: "/api/alert/alertStatisticsByMonth",
-        alertStatistics: "/api/alert/alertStatistics",
-        page: "/api/alert/page",
-        pageMap: "/api/alert/pageMap",
-        one: "/api/alert/one",
-    },
-    fireSite: {
-        //消防救援站点
-        // page: '/fireSite/page',
-        // one: '/fireSite/one',
-        fireSiteDuty: "/api/fireSite/fireSiteDuty",
-        page: "/api/zskTeam/page", //执勤站点实力分页
-        list: "/api/wlClxx/list", //车辆信息整合
-        pageMap: "/api/xfzWxz/list", //撒点
-        one: "/api/xfzWxz/one", //详情
-    },
-
-    jqzhcz: {
-        //警情综合处置
-        pageMap: "/papi/service-fire/demPoliceInfo/synthesizePoliceSituationScatterer", //撒点
-        warningInstanceScatterer: "/papi/service-fire/demPoliceInfo/warningInstanceScatterer", //实时告警撒点
-        alertStatisticsByHouse: "/papi/service-fire/demPoliceInfo/alertStatisticsByHouse", //警情时段分布
-        page: "/papi/service-fire/demPoliceInfo/page", //实时警情处理
-        alertStatisticsByMonth: "/papi/service-fire/demPoliceInfo/alertStatisticsByMonth", //历史警情趋势图
-        alertStatistics: "/papi/service-fire/demPoliceInfo/alertStatistics", //警情处置情况
-
-        one: "/api/jcjAjxx/one", //警情详细信息
-    },
-};
-export default api;

+ 1 - 0
src/store/modules/public.js

@@ -87,6 +87,7 @@ const useStore = defineStore("public", {
             jgfx: require("@a/img/sadian/jgfx.png"), //招标中
             ybfx: require("@a/img/sadian/ybfx.png"), //招标中
             dfx: require("@a/img/sadian/dfx.png"), //招标中
+            dwxj: require("@a/img/sadian/dwxj.png"), //招标中
 
         },
 

+ 9 - 0
src/views/comprehensive-disposal.vue

@@ -190,6 +190,8 @@
             class="transparentTableRow table1"
             height="100%"
             style="width: 100%; margin: 0 auto"
+            :empty-text="dataNo"  ref="reportTable" @mouseenter="autoScroll(true)"
+            @mouseleave="autoScroll()" 
             
           >
             <el-table-column
@@ -398,6 +400,7 @@ import { includes } from 'lodash';
 export default {
   data() {
     return {
+      dataNo:"",
       stores: this.$useStore(),
       zfjly1: undefined,
       zfjly2: undefined,
@@ -497,6 +500,9 @@ export default {
   components: {  barChart,lineSmooth, seTable,gauge },
   created() {
     this.getData();
+     setTimeout(()=>{
+            this.autoScroll()
+        },2000)
   },
   mounted() {
     window.addEventListener("resize", () => this.resizeTimeActions([
@@ -515,6 +521,9 @@ export default {
         
   },
   methods: {
+         beforeDestroy() {
+            this.autoScroll(true)
+        },
     /**
      * 在线视频
      */

+ 72 - 124
src/views/enforcement-dynamic.vue

@@ -87,6 +87,8 @@
                             class="transparentTableRow"
                             height="100%"
                             v-if="check == '1'"
+                            :empty-text="dataNo"  ref="reportTable" @mouseenter="autoScroll(true)"
+                            @mouseleave="autoScroll()" 
                         >
                             <el-table-column
                                 v-for="item in tableHeaderList1"
@@ -104,6 +106,8 @@
                             class="transparentTableRow"
                             height="100%"
                             v-if="check == '2'"
+                            :empty-text="dataNo"  ref="reportTable" @mouseenter="autoScroll(true)"
+                            @mouseleave="autoScroll()" 
                         >
                             <el-table-column
                                 v-for="item in tableHeaderList2"
@@ -141,33 +145,30 @@
                     </h4>
                     <el-row class="leftBotLeft">
                         <el-row class="text">
-                            <!-- <el-col>{{(alFsdAllNumber.qualifiedRadio * 100).toFixed(2) || 0}}%</el-col> -->
-                            <el-col>71.94%</el-col>
+                            <el-col>{{(alFsdAllNumber.passRate).toFixed(2) || 0}}%</el-col>
                             <el-col>合格率</el-col>
                         </el-row>
                         <liquid-fill
                             class="liQuIdFill"
                             ref="liQuIdFill"
-                            :dataMap="0.72"
+                            :dataMap="(alFsdAllNumber.passRate).toFixed(2) / 100"
                         ></liquid-fill>
                     </el-row>
                     <el-row class="leftBotRight">
                         <el-col><span>受理数</span>
-                        <!-- <span>{{alFsdAllNumber.acceptNumber || 0}}</span> -->
-                        <span>421</span>
+                        <span>{{alFsdAllNumber.acceptNum || 0}}</span>
                         </el-col>
                         <el-col>
                                 <span>检查数</span>
-                                <!-- <span>{{alFsdAllNumber.checkNumber || 0}}</span> -->
-                                <span>345</span>
+                                <span>{{alFsdAllNumber.checkNum || 0}}</span>
                         </el-col>
                         <el-col>
                             <span>承诺数</span>
-                            <span>38</span>
+                            <span>{{alFsdAllNumber.committedNum || 0}}</span>
                         </el-col>
                         <el-col>
                             <span>非承诺数</span>
-                            <span>111</span>
+                            <span>{{alFsdAllNumber.uncommittedNum || 0}}</span>
                         </el-col>
                     </el-row>
                 </div>
@@ -435,25 +436,9 @@
                     </h4>
                     <category
                         ref="category"
-                        v-if="reportComplaintList.length > 0"
-                        :dataMap="
-                            reportComplaintList.slice(0, 10).map((val, ind) =>
-                                ind < 9
-                                    ? val.value
-                                    : reportComplaintList
-                                          .slice(10)
-                                          .reduce((a, b) => {
-                                              return a + b.value;
-                                          }, 0)
-                            )
-                        "
-                        :xData="
-                            reportComplaintList
-                                .slice(0, 10)
-                                .map((val, ind) =>
-                                     val.name
-                                )
-                        "
+                        v-if="reportComplaintList.x.length > 0"
+                        :dataMap="reportComplaintList.y"
+                        :xData="reportComplaintList.x"
                         :isSlice="2"
                         color="#33BBFA"
                     ></category>
@@ -581,6 +566,7 @@ import liquidFill from "@c/liquid-fill";
 export default {
     data() {
         return {
+            dataNo:"",
             stores: this.$useStore(),
             dateList:[
                 {name:1,},
@@ -591,12 +577,16 @@ export default {
             title:"sdfsd",
             open:false,
             SiAeAllList: [],
-            reportComplaintList: [],
+            reportComplaintList: {
+                x:[],
+                y:[],
+            },//投诉排名
             alFsdAllNumber: {
-                acceptNumber: 0,
-                articleNumber: 0,
-                checkNumber: 0,
-                qualifiedRadio: 0,
+                passRate: 0,
+                acceptNum: 0,
+                checkNum: 0,
+                committedNum: 0,
+                uncommittedNum: 0
             },
             reportStatisticsObj: {
                 complaintNumber: 0,
@@ -692,8 +682,10 @@ export default {
     components: { category, wordCloud, liquidFill },
 
     created() {
-        
         this.getData();
+        setTimeout(()=>{
+            this.autoScroll()
+        },2000)
     },
     mixins: [linstener, map],
     computed: {
@@ -732,14 +724,17 @@ export default {
         this.initMap();
     },
     methods: {
+        beforeDestroy() {
+            this.autoScroll(true)
+        },
+       
         /**
          * 初始化
          */
         getData() {
             this.monthLawApi(); //当月执法情况接口请求
             this.adstraLicenseApi(); //行政许可情况接口请求
-            // this.reportComplaintApi(); //投诉举报情况接口请求
-            this.reportComplaintApi2(); //投诉举报情况接口请求
+            this.reportComplaintApi(); //投诉举报情况接口请求
             this.sadianSelect(); //撒点
             this.selectVideo(); //视频在线
         },
@@ -805,7 +800,8 @@ export default {
                     "Content-Type": "application/json;charset=UTF-8",
                 },
                 method: "get",
-                url: "http://32.0.15.107:8080/video-api/kiop-gateway-core/4G/device/ext?apikey=643e6591-a489-4648-ba35-c15c39c64022",
+                // url: "http://32.0.15.107:8080/video-api/kiop-gateway-core/4G/device/ext?apikey=643e6591-a489-4648-ba35-c15c39c64022",
+                url: "http://32.0.15.107:8080/video-api/kiop-gateway-core/tysbs/device/ext?apikey=643e6591-a489-4648-ba35-c15c39c64022&f_in_civilCode=31021019,31020414&pageNo=0&pageSize=10000",
             }).then((res) => {
                 let arr = [];
                 let zfjly = [];
@@ -824,10 +820,10 @@ export default {
                                 type: "执法记录仪",
                                 gbid: data[i].gbid,
                                 url:
-                                    "http://10.107.31.215:50080/dispatch-ms/#/conference/single_url?ipc_live=1&key=643e6591-a489-4648-ba35-c15c39c64022&gbids=" +
-                                    data[i].gbid +
-                                    "&nmediaid=121",
+                                    "https://10.107.31.215/dispatch-ms/#/conference/single_url?ipc_live=1&key=643e6591-a489-4648-ba35-c15c39c64022&gbids=" +
+                                    data[i].gbid,
                             };
+                            console.log(1111,num.name,data[i].gbid)
                             arr.push(num);
                         }
                     }
@@ -872,90 +868,50 @@ export default {
          * @api接口请求
          */
         async reportComplaintApi() {
-            let res1 = await this.$axios.get(
+            let res = await this.$axios.get(
                 this.$api.siaeall.lawTrendList +
                     "?" +
                     this.$qs.stringify({
                         moduleType: "complaintHandle",
                     })
             );
-
-            if (res1.data.length > 0) {
-                this.reportComplaintList = res1.data.map((val) => {
-                    return {
-                        name: val.type,
-                        value: val.number,
+            if(res){
+                if (res.data.length > 0) {
+                    this.reportComplaintList = {
+                        x:[],
+                        y:{
+                            type:[],
+                            data:[],
+                            total:[],
+                        },
+                    }
+                    for(let i =0;i<res.data[0].complaintVOList.length;i++){
+                        this.reportComplaintList.y.type.push(res.data[0].complaintVOList[i].type)
+                    }
+                    for(let i =0;i<this.reportComplaintList.y.type.length;i++){
+                        this.reportComplaintList.y.data[i]= []
+                        for(let ii=0;ii<res.data.length;ii++){
+                            this.reportComplaintList.y.data[i].push(res.data[ii].complaintVOList[i].number)
+                        }
+                    }
+                    for(let i =0;i<res.data.length;i++){
+                        this.reportComplaintList.x.push(res.data[i].streetTown)
+                    }
+                    const arr0 = this.reportComplaintList.y.data[0]
+                    const arr1 = this.reportComplaintList.y.data[1]
+                    const arr2 = this.reportComplaintList.y.data[2]
+                    const arr3 = this.reportComplaintList.y.data[3]
+                    const reverseSum = (arr0, arr1, arr2, arr3) => {
+                    for(let i = 0; i < arr1.length; i++){
+                        this.reportComplaintList.y.total[i] = arr0[i] + arr1[i] + arr2[i] + arr3[i];
                     };
-                });
-                this.reportComplaintList.sort((a, b) => {
-                    return b.value - a.value;
-                });
-            }
-            let res2 = await this.$axios.get(
-                this.$api.siaeall.lawTrendList +
-                    "?" +
-                    this.$qs.stringify({
-                        moduleType: "enforceReportComplaint",
-                    })
-            );
-
-            if (res2.status === "SUCCESS") {
-                this.reportStatisticsObj.complaintNumber =
-                    res2.data.complaintNumber;
-                this.reportStatisticsObj.concludeNumber =
-                    res2.data.concludeNumber;
-                this.reportStatisticsObj.checkNumber = res2.data.checkNumber;
-                this.reportStatisticsObj.satisfactionRate =
-                    res2.data.satisfactionRate;
-            }
-        },
-
-        /**
-         * @投诉举报情况 杨
-         * @api接口请求
-         */
-        async reportComplaintApi2() {
-            let res1 = await this.$axios.get(
-                this.$api.siaeall.lawTrendList +
-                    "?" +
-                    this.$qs.stringify({
-                        moduleType: "complaintHandle",
-                    })
-            );
-
-            if (res1.data.length > 0) {
-                this.reportComplaintList = res1.data.map((val) => {
-                    return {
-                        name: val.type,
-                        value: val.number,
+                    return this.reportComplaintList.y.total
                     };
-                });
-                this.reportComplaintList.sort((a, b) => {
-                    return b.value - a.value;
-                });
-            }
-            let res2 = await this.$axios.get(
-                this.$api.siaeall.lawTrendList3 +
-                    "?" +
-                    this.$qs.stringify({
-                        moduleType: "enforceReportComplaint",
-                    })
-            );
-
-            if (res2.status === "SUCCESS") {
-                this.reportStatisticsObj.complaintNumber =
-                    res2.data.complaintNumber;
-                this.reportStatisticsObj.concludeNumber =
-                    res2.data.concludeNumber;
-                this.reportStatisticsObj.checkNumber = res2.data.checkNumber;
-                this.reportStatisticsObj.satisfactionRate =
-                    res2.data.satisfactionRate;
+                    reverseSum(arr0, arr1, arr2, arr3)
+                }
             }
-        //     this.reportStatisticsObj.complaintNumber =14956
-        //         this.reportStatisticsObj.concludeNumber =14933
-        //         this.reportStatisticsObj.checkNumber = 23
-        //         this.reportStatisticsObj.satisfactionRate =0.49
         },
+
         /**
          * @当月执法情况
          * @api接口请求
@@ -1037,20 +993,12 @@ export default {
          * @api接口请求
          */
         async adstraLicenseApi() {
-            console.log(33333333)
             let res = await this.$axios.get(
-                this.$api.siaeall.lawTrendList2 +
-                    "?" +
-                    this.$qs.stringify({
-                        startTime: this.stores.timeList[0],
-                        endTime:  this.stores.timeList[1],
-                        moduleType: "adstraLicense",
-                    })
+                this.$api.fire.adLicenseStatistic 
             );
 
             if (res.status === "SUCCESS") {
-                console.log(1111111,res)
-                // this.alFsdAllNumber = res.data;
+                this.alFsdAllNumber = res.data;
             }
         },
 

+ 63 - 210
src/views/fire-signs.vue

@@ -136,21 +136,18 @@
                     </div>
                 </div>
                 <div class="leftCenter">
-                    <h4 class="h4Top">投诉类型排名</h4>
+                    <h4 class="h4Top">投诉类型排名
+                        <div class="gp">
+                                <span>满意数<span>1001</span></span>
+                                <span>不满意数<span>12</span></span>
+                        </div>
+                    </h4>
                     <div class="leftCenterContent">
                         <category2
                             ref="category"
-                            v-if="reportComplaintList.length > 0"
-                            :dataMap="
-                                reportComplaintList.slice(0, 10).map((val, ind) =>
-                                    ind < 9
-                                        ? val.value
-                                        : reportComplaintList.slice(10).reduce((a, b) => {
-                                              return a + b.value;
-                                          }, 0)
-                                )
-                            "
-                            :xData="reportComplaintList.slice(0, 10).map((val, ind) => (ind < 9 ? val.name : '其他'))"
+                            v-if="reportComplaintList.x.length > 0"
+                            :dataMap="reportComplaintList.y"
+                            :xData="reportComplaintList.x"
                             :isSlice="2"
                             color="#33BBFA"
                         ></category2>
@@ -403,6 +400,8 @@
                 <div class="rightBot">
                     <h4>挂牌督改情况
                         <div class="gp">
+                                <span>市级<span>2个</span></span>
+                                <span>区级<span>6个</span></span>&nbsp;
                                 <span>已挂牌数<span>{{ noticeNum ||  0 }}</span></span>
                                 <span>已销案数<span>{{  cancellationNum || 0}}</span></span>
                         </div>
@@ -936,7 +935,10 @@ export default {
                     a18: "2021-11-09 02:06:15",
                 },
             ],
-            reportComplaintList: [],
+             reportComplaintList: {
+                x:[],
+                y:[],
+            },//投诉排名
             radar: 1, //雷达图显示
             pieData: [
                 [
@@ -1296,155 +1298,7 @@ export default {
                 total: 0,
             },
             tableData:[],
-        //     tableData: [
-        //         {
-        //             jcsj: "2022/2/23",
-        //             name: "袁利华负责经营的场所",
-        //             address: "海市闵行区银春路723号",
-        //             yhs: "1",
-        //             zcr: "蒋皓",
-        //             cfqx: "2022年2月23日11时至2022年3月25日11时",
-        //             zbr: "杨剑(主)、刘德君",
-        //             xarq: "2022/9/21",
-        //             status: "已销案",
-        //             xfgx: "闵行区消防救援支队",
-        //             xmbh: "31011000J202200441",
-        //             type: "一般单位",
-        //             type2: "其他检查",
-        //             xfaqzrr: "袁利华",
-        //             xfaqglr: "袁利华[电话:13601704583]",
-        //             zdhzqk: "立案时间:2022年07月29日,整改时间:2022年09月19日,整改期限:2022年11月30日,销案时间:2022年09月21日  ",
-        //             bh: "[2022]第 HY0000263 号",
-        //             jcsj2: "",
-        //             jclb: "其他检查",
-        //             fzr: "袁利华",
-        //             lxr: "袁利华(13601704583)",
-        //             nr: "使用聚氨酯泡沫夹心材料的彩钢板搭建临时建筑物作为员工宿舍使用,  搭建临时建筑物不符合《建筑设计防火规范》(GB50016-2014)第5.1.2条之规定的行为。",
-        //         },
-        //         {
-        //             jcsj: "2022/8/2",
-        //             name: "上海联加实业发展有限公司",
-        //             address: "上海市闵行区顾戴路3355号3幢正北方向30米",
-        //             yhs: "7",
-        //             zcr: "",
-        //             cfqx: "",
-        //             zbr: "徐拥军(主)、郭思",
-        //             xarq: "2022/10/16",
-        //             status: "未销案",
-        //             xfgx: "",
-        //             xmbh: "",
-        //             type: "",
-        //             type2: "",
-        //             xfaqzrr: "",
-        //             xfaqglr: "",
-        //             zdhzqk: "",
-        //             bh: "",
-        //             jcsj2: "",
-        //             jclb: "",
-        //             fzr: "",
-        //             lxr: "",
-        //             nr: "",
-        //         },
-        //         {
-        //             jcsj: "2022/8/1",
-        //             name: "上海安馨企业管理咨询有限公司",
-        //             address: "上海市闵行区虹桥镇闵行区虹梅路3219号-3221号",
-        //             yhs: "1",
-        //             zcr: "余小平",
-        //             cfqx: "",
-        //             zbr: "邓慧勇(主)、杨永辉",
-        //             xarq: "2022/11/4",
-        //             status: "已销案",
-        //             xfgx: "闵行区消防救援支队",
-        //             xmbh: "31011000J202200939",
-        //             type: "一般单位",
-        //             type2: "其他检查",
-        //             xfaqzrr: "龙睿",
-        //             xfaqglr: "黄俞荣[电话:13916745673]",
-        //             zdhzqk: "立案时间:2022年08月01日,整改时间:2022年10月20日,整改期限:2022年12月31日,销案时间:2022年11月4日",
-        //             bh: "〔2022〕第0418号",
-        //             jcsj2: "",
-        //             jclb: "其他检查",
-        //             fzr: "叶德韵",
-        //             lxr: "黄俞荣(13916745673)",
-        //             iphone: "",
-        //             nr: "安全出口设置不符合要求",
-        //         },
-
-        //         {
-        //             jcsj: "2022/8/1",
-        //             name: "上海和临酒店管理有限公司(华漕)",
-        //             address: "上海市闵行区纪翟路1408号第2幢一层102室",
-        //             yhs: "2",
-        //             zcr: "",
-        //             cfqx: "",
-        //             zbr: "张波(主)、吴弘",
-        //             xarq: "",
-        //             status: "已销案",
-        //             xfgx: "",
-        //             xmbh: "",
-        //             type: "",
-        //             type2: "",
-        //             xfaqzrr: "",
-        //             xfaqglr: "",
-        //             zdhzqk: "",
-        //             bh: "",
-        //             jcsj2: "",
-        //             jclb: "",
-        //             fzr: "",
-        //             lxr: "",
-        //             nr: "",
-        //         },
-
-        //         {
-        //             jcsj: "2022/8/1",
-        //             name: "西南木材市场",
-        //             address: "上海市闵行区吴泾镇莲花南路3185号",
-        //             yhs: "1",
-        //             zcr: "",
-        //             cfqx: "",
-        //             zbr: "郭思(主)、徐拥军",
-        //             xarq: "2022/10/17",
-        //             status: "已销案",
-        //             xfgx: "",
-        //             xmbh: "",
-        //             type: "",
-        //             type2: "",
-        //             xfaqzrr: "",
-        //             xfaqglr: "",
-        //             zdhzqk: "",
-        //             bh: "",
-        //             jcsj2: "",
-        //             jclb: "",
-        //             fzr: "",
-        //             lxr: "",
-        //             nr: "",
-        //         },
-        //         {
-        //             jcsj: "2022/8/1",
-        //             name: "梅陇镇D1-08地块",
-        //             address: "上海市闵行区吴泾镇莲花南路3185号",
-        //             yhs: "1",
-        //             zcr: "",
-        //             cfqx: "",
-        //             zbr: "郭思(主)、徐拥军",
-        //             xarq: "2022/10/17",
-        //             status: "已销案",
-        //             xfgx: "",
-        //             xmbh: "",
-        //             type: "",
-        //             type2: "",
-        //             xfaqzrr: "",
-        //             xfaqglr: "",
-        //             zdhzqk: "",
-        //             bh: "",
-        //             jcsj2: "",
-        //             jclb: "",
-        //             fzr: "",
-        //             lxr: "",
-        //             nr: "",
-        //         },
-        //     ],
+ 
             checkedArray: {
                 checkedData: [1],
                 // checkedList: [
@@ -1485,7 +1339,6 @@ export default {
             // { name: "区域执法监管安全", value: 322 },
             // { name: "区域场所行业风险", value: 156 },
             // ],
-            reportComplaintList: [],
             fireCauseRatioList: [
                 { name: "挂牌督办", value: 34, itemStyle: { opacity: 0.9 } },
                 { name: "存在隐患", value: 22, itemStyle: { opacity: 0.9 } },
@@ -1505,9 +1358,8 @@ export default {
     created() {
         this.getData();
         setTimeout(()=>{
-                this.autoScroll()
-        },5000)
-        
+            this.autoScroll()
+        },2000)
         let _that = this;
         // setInterval(()=>{
         //        console.log(_that.stores.$state.streetTown)
@@ -1520,34 +1372,8 @@ export default {
         this.regionInfo()
     },
     methods: {
-        mounted() {
-                this.autoScroll()
-        },
         beforeDestroy() {
-                this.autoScroll(true)
-        },
-        // 设置自动滚动
-        autoScroll(stop) {
-                const table = this.$refs.scrollTable
-                // 拿到表格中承载数据的div元素
-                const divData = this.$refs.reportTable.$refs.bodyWrapper
-                // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
-                if (stop) {
-                //再通过事件监听,监听到 组件销毁 后,再执行关闭计时器。
-                window.clearInterval(this.scrolltimer)
-                } else {
-                this.scrolltimer = window.setInterval(() => {
-                        // 元素自增距离顶部1像素
-                        divData.scrollTop += 1
-                        // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
-                        if (divData.clientHeight + divData.scrollTop == divData.scrollHeight) {
-                        // 重置table距离顶部距离
-                        divData.scrollTop = 0
-                        // 重置table距离顶部距离。值=(滚动到底部时,距离顶部的大小) - 整个高度/2
-                        // divData.scrollTop = divData.scrollTop - divData.scrollHeight / 2
-                        }
-                }, 150) // 滚动速度
-                }
+            this.autoScroll(true)
         },
         closeTk() {
             this.tk = false;
@@ -1564,6 +1390,8 @@ export default {
         },
 
         async getData() {
+             this.getHazardsNoticeList()//挂牌督改情况
+             this.reportComplaintApi(); // 投诉类型排名
             let res = await this.$axios.get(this.$api.fire.fireType + "?" + this.$qs.stringify({}));
 
             if (res.data.length > 0) {
@@ -1586,9 +1414,9 @@ export default {
 
             this.getTrend();
             // this.getFireStatis();
-            this.reportComplaintApi2(); // 投诉类型排名
+            
             this.sadianSelect(this.checkedArray.checkedData[0]);
-            this.getHazardsNoticeList()//挂牌督改情况
+           
             this.getHazardsNoticeStatistic() // 挂牌督改统计情况
         },
         /**
@@ -1826,28 +1654,53 @@ export default {
             }
         },
         /**
-         * @投诉举报情况 
+         * @投诉举报情况 
          * @api接口请求
          */
-        async reportComplaintApi2() {
-            let res1 = await this.$axios.get(
+        async reportComplaintApi() {
+            let res = await this.$axios.get(
                 this.$api.siaeall.lawTrendList +
                     "?" +
                     this.$qs.stringify({
                         moduleType: "complaintHandle",
                     })
-            );        
-            if (res1.data.length > 0) {
-                this.reportComplaintList = res1.data.map((val) => {
-                    return {
-                        name: val.type,
-                        value: val.number,
+            );   
+            if(res){
+                if (res.data.length > 0) {
+                    this.reportComplaintList = {
+                        x:[],
+                        y:{
+                            type:[],
+                            data:[],
+                            total:[],
+                        },
+                    }
+                    for(let i =0;i<res.data[0].complaintVOList.length;i++){
+                        this.reportComplaintList.y.type.push(res.data[0].complaintVOList[i].type)
+                    }
+                    for(let i =0;i<this.reportComplaintList.y.type.length;i++){
+                        this.reportComplaintList.y.data[i]= []
+                        for(let ii=0;ii<res.data.length;ii++){
+                            this.reportComplaintList.y.data[i].push(res.data[ii].complaintVOList[i].number)
+                        }
+                    }
+                    for(let i =0;i<res.data.length;i++){
+                        this.reportComplaintList.x.push(res.data[i].streetTown)
+                    }
+                    const arr0 = this.reportComplaintList.y.data[0]
+                    const arr1 = this.reportComplaintList.y.data[1]
+                    const arr2 = this.reportComplaintList.y.data[2]
+                    const arr3 = this.reportComplaintList.y.data[3]
+                    const reverseSum = (arr0, arr1, arr2, arr3) => {
+                    for(let i = 0; i < arr1.length; i++){
+                        this.reportComplaintList.y.total[i] = arr0[i] + arr1[i] + arr2[i] + arr3[i];
                     };
-                });
-                this.reportComplaintList.sort((a, b) => {
-                    return b.value - a.value;
-                });
-            }
+                    return this.reportComplaintList.y.total
+                    };
+                    reverseSum(arr0, arr1, arr2, arr3)
+                }
+            }     
+            
         },
         // 火灾趋势图 柱状图
         async getTrend() {
@@ -1942,7 +1795,7 @@ export default {
             ).then(res=>{
                this.mhjbqk = res.data[0]
             })
-        }
+        },
     },
 
     watch: {

+ 13 - 1
src/views/rescue-station.vue

@@ -386,6 +386,8 @@
                             :data="tableData2"
                             class="transparentTableRow"
                             height="100%"
+                             :empty-text="dataNo"  ref="reportTable" @mouseenter="autoScroll(true)"
+                            @mouseleave="autoScroll()" 
                         >
                             <el-table-column type="expand">
                                 <template #default="props">
@@ -529,6 +531,8 @@
                             :data="educationList"
                             class="transparentTableRow"
                             height="100%"
+                             :empty-text="dataNo"  ref="reportTable1" @mouseenter="autoScroll1(true)"
+                            @mouseleave="autoScroll1()" 
                         >
                             <el-table-column
                                 v-for="item in educationHeader"
@@ -703,7 +707,7 @@ export default {
                 { prop: "attribute8", name: "政工" },
             ],
             unitBeOnDutyListData: [],
-
+            dataNo:"",
             educationHeader: [
                 { prop: "type", name: "消防站" },
                 { prop: "policeTime", name: "成立时间/联系人" },
@@ -844,6 +848,10 @@ export default {
         setTimeout(() => {
             this.getFireSiteDuty();
         }, 1000 * 60 * 2);
+        setTimeout(()=>{
+            this.autoScroll()
+            this.autoScroll1()
+        },2000)
     },
     mounted() {
         window.addEventListener(
@@ -862,6 +870,10 @@ export default {
         this.initMap();
     },
     methods: {
+         beforeDestroy() {
+            this.autoScroll(true)
+            this.autoScroll1(true)
+        },
         async getData() {
             this.getSiAeAllCollect();
             this.getPage();

+ 49 - 141
src/views/security-plan.vue

@@ -1,64 +1,10 @@
 <template>
     <el-row class="contentBox">
-        <transition name="el-fade-in-linear">
+        <!-- <transition name="el-fade-in-linear">
             <el-col class="leftBox" v-show="stroes.$state.leftBtn">
                 <div class="leftTop">
                     <h4>疏导区基本情况</h4>
                     <div class="leftTopContent2">
-                        <!-- <el-row>
-                            <el-col :span="12">
-                                <div>
-                                    <div class="title">
-                                        <div>检查单位数(家次)</div>
-                                    </div>
-                                    <div class="content">
-                                        <span>6276</span>
-                                        <span>同比</span>
-                                        <span style="color: #fe0505"
-                                            >+29.48%</span
-                                        >
-                                    </div>
-                                </div>
-                            </el-col>
-                            <el-col :span="12">
-                                <div>
-                                    <div class="title">
-                                        <div>发现隐患数(处)</div>
-                                    </div>
-                                    <div class="content">
-                                        <span>1340</span>
-                                        <span>同比</span>
-                                        <span style="color: #fe0505"
-                                            >+14.18%</span
-                                        >
-                                    </div>
-                                </div>
-                            </el-col>
-                            <el-col :span="12">
-                                <div>
-                                    <div class="title">
-                                        <div>督改隐患数(处)</div>
-                                    </div>
-                                    <div class="content">
-                                        <span>1090</span>
-                                        <span>同比</span>
-                                        <span style="color: #fe0505"
-                                            >+7.34%</span
-                                        >
-                                    </div>
-                                </div>
-                            </el-col>
-                            <el-col :span="12">
-                                <div style="width: 80%">
-                                    <div class="title">
-                                        <div>签约承诺书(份)</div>
-                                    </div>
-                                    <div class="content">
-                                        <span>5410</span>
-                                    </div>
-                                </div>
-                            </el-col>
-                        </el-row> -->
                         <el-row>
                             <div>
                                 <p>疏导区总面积</p>
@@ -287,7 +233,7 @@
                         </el-table>
                     </div>
             </el-col>
-        </transition>
+        </transition> -->
         <transition name="el-fade-in-linear">
             <el-col class="centerBox" style="width: 100%">
                 <div
@@ -401,6 +347,28 @@
                                         </el-option>
                                 </el-select>
                             </div>
+                            <div
+                                @click="checkboxChange(15)"
+                                :class="
+                                    checkedArray.checkedData[0] == 15
+                                        ? 'checkTypeSelect'
+                                        : ''
+                                "
+                            >
+                                <img :src="stores.sadianIcon.zddw" alt="" />
+                                <span>大网格</span>
+                            </div>
+                            <div
+                                @click="checkboxChange(16)"
+                                :class="
+                                    checkedArray.checkedData[0] == 16
+                                        ? 'checkTypeSelect'
+                                        : ''
+                                "
+                            >
+                                <img :src="stores.sadianIcon.zddw" alt="" />
+                                <span>小网格</span>
+                            </div>
                         </div>
                     </div>
                 </div>
@@ -410,7 +378,6 @@
             <el-col class="rightBox" v-show="stroes.$state.rightBtn">
                 <div class="rightTop">
                     <h4>疏导区社会面风险评估情况</h4>
-
                     <div class="rightTopContent">
                         <el-row>
                             <el-col :span="12">
@@ -496,49 +463,18 @@
                 <h4>安保推送情况</h4>
                 <el-row class="rightTop2">
                 <el-col :span="8" v-for="(item,index) in proptionList" :key="index">
-                <div>
-                        <div style="text-align: center;font-size:0.18rem">
-                        {{ item.type }}
-                        </div>
-                        <div style="height: 1.5rem">
-                                <gauge ref="gauge1" :data="item" ></gauge>
-                        </div>
-                </div>
+                    <div>
+                            <div style="text-align: center;font-size:0.18rem">
+                            {{ item.type }}
+                            </div>
+                            <div style="height: 1.5rem">
+                                    <gauge ref="gauge1" :data="item" ></gauge>
+                            </div>
+                    </div>
                 </el-col>
                 </el-row>
                 </div>
-                <!-- <div class="leftBot">
-                    <h4>接处警详情</h4>
-                    <div class="leftBotContent">
-                        <el-table
-                            :data="tableData"
-                            class="transparentTableRow"
-                            height="100%"
-                        >
-                            <el-table-column
-                                v-for="item in headerData"
-                                show-overflow-tooltip
-                                :key="item.prop"
-                                :prop="item.prop"
-                                align="center"
-                                min-width="20"
-                                :label="item.name"
-                            >
-                                <template #default="scope">
-                                    {{
-                                        item.prop === "type"
-                                            ? ""
-                                            : item.prop === "status"
-                                            ? scope.row[item.prop] == 1
-                                                ? "可用"
-                                                : "不可用"
-                                            : scope.row[item.prop]
-                                    }}
-                                </template>
-                            </el-table-column>
-                        </el-table>
-                    </div>
-                </div> -->
+                
                 <div class="rightBot">
                     <h4>网格人员信息</h4>
 
@@ -574,6 +510,7 @@
                 </div>
             </el-col>
         </transition>
+        
     </el-row>
 </template>
 
@@ -647,6 +584,8 @@ export default {
                     { value: 2, label: "历史火灾" },
                     { value: 3, label: "重点单位" },
                     { value: 4, label: "消防站" },
+                    { value: 15, label: "大网格" },
+                    { value: 16, label: "小网格" },
                 ],
             }, //类型筛选
             checkedSelectValue:"40",
@@ -932,10 +871,10 @@ export default {
             () => this.resizeTimeActions([this.$refs.category,this.$refs.gauge1, ]),
             true
         );
-        this.initMap(); //地图初始化
-        this.anbaoMap(); //安保区域
-        this.getFireSiteDuty(); //各站点执勤实力
-        this.sadianSelect(this.checkedArray.checkedData[0]); //撒点
+        this.initMap("anbao"); //地图初始化
+        this.anbao(null,1)
+        // this.getFireSiteDuty(); //各站点执勤实力
+        // this.sadianSelect(this.checkedArray.checkedData[0]); //撒点
         
     },
     methods: {
@@ -974,44 +913,6 @@ export default {
                         })
                 )
                 .then((res) => {
-                        this.proptionList = [
-                                {
-                        "type": "已推送单位",
-                        "number": 306,
-                        "month": null,
-                        "radio": "1",
-                        "sameStatus": 2,
-                        "avg": null,
-                        "color": [
-                        "#BF4216 ",
-                        "#F68E6A"
-                        ]
-                },
-                {
-                        "type": "已接收单位",
-                        "number": 303,
-                        "month": null,
-                        "radio": "1",
-                        "sameStatus": 2,
-                        "avg": null,
-                        "color": [
-                        "#06B1B9  ",
-                        "#14E1EA"
-                        ]
-                },
-                {
-                        "type": "推送接收率",
-                        "number": 99,
-                        "month": null,
-                        "radio": "0.99",
-                        "sameStatus": 2,
-                        "avg": null,
-                        "color": [
-                        "#E4951E ",
-                        "#F8ED41"
-                        ]
-                }
-                        ]
                     if (res.data.records.length > 0) {
                         let arr = res.data.records;
                         let data = arr.filter((item)=>{
@@ -1108,7 +1009,14 @@ export default {
          */
         checkboxChange(id) {
             this.checkedArray.checkedData[0] = id;
-            this.sadianSelect(id);
+            if(id == 15){
+                this.anbao(1,1)
+            }else if(id == 16){
+                this.anbao(1,2)
+            }else{
+                this.sadianSelect(id);
+            }
+            
         },
         /* 历史警情 */
         async historicalWarning() {
@@ -1371,7 +1279,7 @@ export default {
                     this.initMarkers([], pageType, type);
                 }
             } else {
-                this.anbaoMap(); //安保区域
+                // this.anbaoMapNew(); //安保区域
                 if (data.length > 0) {
                     this.addMarker(data.slice(0, 500), pageType, type);
                 } else {

+ 664 - 0
src/views/security-plan2.vue

@@ -0,0 +1,664 @@
+<template>
+    <el-row class="contentBox">
+        <transition name="el-fade-in-linear">
+            <el-col class="centerBox" style="width: 100%">
+
+                <el-col class="centerContent" id="mapF"></el-col>
+
+            </el-col>
+        </transition>
+
+    </el-row>
+</template>
+
+<script>
+import linstener from "@c/mixins/linstener";
+import map from "@c/mixins/map-data1";
+import gauge from "@c/gauge/index6";
+// import map from "@c/mixins/map-gaode-public";
+import category from "@c/category/index2";
+export default {
+    mixins: [linstener, map],
+    components: { category,gauge },
+    data() {
+        return {
+            stores: this.$useStore(),
+            proptionList:[
+                {
+                        "type": "已推送单位",
+                        "number": 306,
+                        "month": null,
+                        "radio": "1",
+                        "sameStatus": 2,
+                        "avg": null,
+                        "color": [
+                        "#BF4216 ",
+                        "#F68E6A"
+                        ]
+                },
+                {
+                        "type": "已接收单位",
+                        "number": 303,
+                        "month": null,
+                        "radio": "1",
+                        "sameStatus": 2,
+                        "avg": null,
+                        "color": [
+                        "#06B1B9  ",
+                        "#14E1EA"
+                        ]
+                },
+                {
+                        "type": "推送接收率",
+                        "number": 99,
+                        "month": null,
+                        "radio": "0.99",
+                        "sameStatus": 2,
+                        "avg": null,
+                        "color": [
+                        "#E4951E ",
+                        "#F8ED41"
+                        ]
+                }
+        ],
+            category:true,
+            tableData2: [],
+            headerData2: [
+                { prop: "name", name: "站点名称" },
+                { prop: "car", name: "站点车辆" },
+                { prop: "personnel", name: "人员" },
+            ],
+            reportComplaintList: [
+                { name: "火灾扑救", value: 100 },
+                { name: "社会救助", value: 90 },
+                { name: "抢险救援", value: 60 },
+            ], //接处警情况
+            checkedArray: {
+                checkedData: [2],
+                checkedList: [
+                    { value: 0, label: "车辆" },
+                    { value: 1, label: "历史警情" },
+                    { value: 2, label: "历史火灾" },
+                    { value: 3, label: "重点单位" },
+                    { value: 4, label: "消防站" },
+                ],
+            }, //类型筛选
+            checkedSelectValue:"40",
+            checkedSelectLabel:"消防站",
+            checkedSelectArray:[
+                    { value: 40, label: "消防站" },
+                    { value: 41, label: "专职队" },
+                //     { value: 43, label: "城市消防站" },
+                    { value: 44, label: "企业消防队" },
+                    { value: 42, label: "街镇微型消防站" },
+                    { value: 45, label: "社区微型消防站" },
+                    { value: 46, label: "一级微型消防站" },
+                    { value: 47, label: "街镇专职消防队" },
+            ],
+            tableData: [
+                {
+                    type: "火灾",
+                    policeTime: "23:00:00",
+                    alertLevel: "二级",
+                    address: "闵行区",
+                    car: "2辆",
+                    policeCause: "电器火灾",
+                    department: "吴泾支队",
+                    status: "1",
+                    callingUp: "1号",
+                    equipName: "一七",
+                    carNumber: "沪X5477应急",
+                    carStatus: "出动",
+                    disposeTime: "1:00:00",
+                    correspondent: "张三",
+                    commander: "李四",
+                    firemen: "王五",
+                    driver: "赵六",
+                },
+                {
+                    type: "火灾",
+                    policeTime: "23:00:00",
+                    alertLevel: "二级",
+                    address: "闵行区",
+                    car: "2辆",
+                    policeCause: "电器火灾",
+                    department: "吴泾支队",
+                    status: "1",
+                    callingUp: "1号",
+                    equipName: "一七",
+                    carNumber: "沪X5477应急",
+                    carStatus: "出动",
+                    disposeTime: "1:00:00",
+                    correspondent: "张三",
+                    commander: "李四",
+                    firemen: "王五",
+                    driver: "赵六",
+                },
+                {
+                    type: "火灾",
+                    policeTime: "23:00:00",
+                    alertLevel: "二级",
+                    address: "闵行区",
+                    car: "2辆",
+                    policeCause: "电器火灾",
+                    department: "吴泾支队",
+                    status: "1",
+                    callingUp: "1号",
+                    equipName: "一七",
+                    carNumber: "沪X5477应急",
+                    carStatus: "出动",
+                    disposeTime: "1:00:00",
+                    correspondent: "张三",
+                    commander: "李四",
+                    firemen: "王五",
+                    driver: "赵六",
+                },
+                {
+                    type: "社会救援",
+                    policeTime: "23:00:00",
+                    alertLevel: "二级",
+                    address: "闵行区",
+                    car: "2辆",
+                    policeCause: "电器火灾",
+                    department: "吴泾支队",
+                    status: "1",
+                    callingUp: "1号",
+                    equipName: "一七",
+                    carNumber: "沪X5477应急",
+                    carStatus: "出动",
+                    disposeTime: "1:00:00",
+                    correspondent: "张三",
+                    commander: "李四",
+                    firemen: "王五",
+                    driver: "赵六",
+                },
+                {
+                    type: "社会救援",
+                    policeTime: "23:00:00",
+                    alertLevel: "二级",
+                    address: "闵行区",
+                    car: "2辆",
+                    policeCause: "电器火灾",
+                    department: "吴泾支队",
+                    status: "1",
+                    callingUp: "1号",
+                    equipName: "一七",
+                    carNumber: "沪X5477应急",
+                    carStatus: "出动",
+                    disposeTime: "1:00:00",
+                    correspondent: "张三",
+                    commander: "李四",
+                    firemen: "王五",
+                    driver: "赵六",
+                },
+                {
+                    type: "社会救援",
+                    policeTime: "23:00:00",
+                    alertLevel: "二级",
+                    address: "闵行区",
+                    car: "2辆",
+                    policeCause: "电器火灾",
+                    department: "吴泾支队",
+                    status: "1",
+                    callingUp: "1号",
+                    equipName: "一七",
+                    carNumber: "沪X5477应急",
+                    carStatus: "出动",
+                    disposeTime: "1:00:00",
+                    correspondent: "张三",
+                    commander: "李四",
+                    firemen: "王五",
+                    driver: "赵六",
+                },
+                {
+                    type: "抢险救援",
+                    policeTime: "23:00:00",
+                    alertLevel: "二级",
+                    address: "闵行区",
+                    car: "2辆",
+                    policeCause: "电器火灾",
+                    department: "吴泾支队",
+                    status: "1",
+                    callingUp: "1号",
+                    equipName: "一七",
+                    carNumber: "沪X5477应急",
+                    carStatus: "出动",
+                    disposeTime: "1:00:00",
+                    correspondent: "张三",
+                    commander: "李四",
+                    firemen: "王五",
+                    driver: "赵六",
+                },
+                {
+                    type: "抢险救援",
+                    policeTime: "23:00:00",
+                    alertLevel: "二级",
+                    address: "闵行区",
+                    car: "2辆",
+                    policeCause: "电器火灾",
+                    department: "吴泾支队",
+                    status: "1",
+                    callingUp: "1号",
+                    equipName: "一七",
+                    carNumber: "沪X5477应急",
+                    carStatus: "出动",
+                    disposeTime: "1:00:00",
+                    correspondent: "张三",
+                    commander: "李四",
+                    firemen: "王五",
+                    driver: "赵六",
+                },
+                {
+                    type: "抢险救援",
+                    policeTime: "23:00:00",
+                    alertLevel: "二级",
+                    address: "闵行区",
+                    car: "2辆",
+                    policeCause: "电器火灾",
+                    department: "吴泾支队",
+                    status: "1",
+                    callingUp: "1号",
+                    equipName: "一七",
+                    carNumber: "沪X5477应急",
+                    carStatus: "出动",
+                    disposeTime: "1:00:00",
+                    correspondent: "张三",
+                    commander: "李四",
+                    firemen: "王五",
+                    driver: "赵六",
+                },
+                {
+                    type: "抢险救援",
+                    policeTime: "23:00:00",
+                    alertLevel: "二级",
+                    address: "闵行区",
+                    car: "2辆",
+                    policeCause: "电器火灾",
+                    department: "吴泾支队",
+                    status: "1",
+                    callingUp: "1号",
+                    equipName: "一七",
+                    carNumber: "沪X5477应急",
+                    carStatus: "出动",
+                    disposeTime: "1:00:00",
+                    correspondent: "张三",
+                    commander: "李四",
+                    firemen: "王五",
+                    driver: "赵六",
+                },
+                {
+                    type: "火灾",
+                    policeTime: "23:00:00",
+                    alertLevel: "二级",
+                    address: "闵行区",
+                    car: "2辆",
+                    policeCause: "电器火灾",
+                    department: "吴泾支队",
+                    status: "1",
+                    callingUp: "1号",
+                    equipName: "一七",
+                    carNumber: "沪X5477应急",
+                    carStatus: "出动",
+                    disposeTime: "1:00:00",
+                    correspondent: "张三",
+                    commander: "李四",
+                    firemen: "王五",
+                    driver: "赵六",
+                },
+            ],
+            headerData: [
+                { prop: "policeTime", name: "立案时间" },
+                { prop: "alertLevel", name: "警情等级" },
+                { prop: "address", name: "案发地址" },
+                { prop: "car", name: "调动车辆" },
+                // { prop: "type", name: "类型" },
+                { prop: "policeCause", name: "原因" },
+                { prop: "department", name: "所属中队" },
+                { prop: "status", name: "状况" },
+            ],
+
+            erpData: [
+                {
+                    linkPhone: "13917453877",
+                    address:
+                        "上海市闵行区新虹街道申滨南路1156号龙湖天街A栋112、115室",
+                    employeeNum: "",
+                    registrar: "市场监督管理局",
+                    companyType: "9",
+                    fireDutyName: "魏良满",
+                    delegateName: "魏静",
+                    completedTime: null,
+                    companyName: "龙湖虹桥天街",
+                    fireManageName: "魏良满",
+                    businessStatus: "开业",
+                    buildArea: "0.0",
+                    paidCapital: "500",
+                    companyId: "2DB679350A0F4023B74C4261539AA031",
+                    foundTime: null,
+                    buildingStructure: "钢筋混凝土",
+                    registeredCapital: "500",
+                    organization: "91310112MA1GEKG30K",
+                    companyNature: 9,
+                    buildingHeight: "25",
+                    fireRating: "一级",
+                    construction: null,
+                    id: 1415,
+                },
+            ],
+            rightArray: {
+                tableData: [
+
+                ],
+                headerData2: [
+                    { prop: "gridArea", name: "网格区域" },
+                    { prop: "streetTown", name: "街道" },
+                    { prop: "gridPeople", name: "网格人员" },
+                    { prop: "recruiting", name: "增援干部" },
+                    { prop: "responsibilities", name: "分管领导" },
+                ],
+            },
+        };
+    },
+    mounted() {
+        this.initMap(); //地图初始化
+        
+    },
+    methods: {
+    },
+};
+</script>
+
+<style lang="scss" scoped>
+.contentBox {
+    .leftBox {
+        .leftTop {
+            height: 30%;
+            max-height: 30%;
+            justify-content: center;
+            align-items: center;
+            box-sizing: border-box;
+            .leftTopContent {
+                color: #ffffff;
+                height: calc(100% - 0.4375rem);
+                display: flex;
+
+                > .el-row {
+                    width: 100%;
+                    > .el-col {
+                        display: flex;
+                        > div {
+                            margin: auto;
+                            > .title {
+                                width: 1.075rem;
+                                height: 0.225rem;
+                                font-size: 0.175rem;
+                                padding-left: 0.1625rem;
+                                margin: 0.0625rem 0 0.0625rem 0;
+                                position: relative;
+                                background-image: url(~@a/img/securityPlan/fhxcqk.png);
+                                background-size: 100% 100%;
+                                > div {
+                                    position: absolute;
+                                    bottom: 0.0625rem;
+                                    width:150%;
+                                }
+                            }
+
+                            > .content {
+                                > span:nth-child(1) {
+                                    font-size: 0.3rem;
+                                    padding: 0 0.5625rem 0 0.1625rem;
+                                    color: #73fbfd;
+                                }
+                                > span:nth-child(2) {
+                                    font-size: 0.175rem;
+                                    margin-right: 0.125rem;
+                                }
+                                > span:nth-child(3) {
+                                    font-size: 0.175rem;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            .leftTopContent2{
+                color:#fff;
+                font-size: 0.175rem;
+                .el-row{
+                    >div{
+                        width:20%;
+                        margin-top:40px;
+                        p:nth-child(2){
+                            // text-align: center;
+                            strong{
+                                font-size: 0.2rem;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        .leftCenter {
+            height: calc(30% - 0.125rem);
+            max-height: calc(30% - 0.125rem);
+            margin-top: 0.125rem;
+            width: 100%;
+            justify-content: center;
+            align-items: center;
+            // box-sizing: border-box;
+            color: #ffffff;
+
+            .leftCenterContent {
+                width: 100%;
+                height: calc(100% - 0.4375rem);
+                display: flex;
+
+                .content1,
+                .content2,
+                .content3 {
+                    width: 33.33%;
+                    overflow: hidden;
+                    margin: auto 0;
+
+                    > div:nth-child(1) {
+                        display: flex;
+                        > img {
+                            width: 1.17rem; //大屏
+                            height: 1.08rem; //大屏
+                            margin: auto;
+                        }
+                    }
+
+                    > div:nth-child(2) {
+                        font-size: 0.2rem;
+                        text-align: center;
+                        & > span {
+                            b {
+                                margin-right: 0.0625rem;
+                                font-size: 0.3rem;
+                                line-height: 0.5rem;
+                            }
+                        }
+
+                        p {
+                            margin-top: 0.1rem;
+                            color: #fff;
+                        }
+                    }
+                }
+            }
+        }
+        .rightCenter {
+            color: #ffffff;
+            height: calc(35% - 0.125rem);
+            max-height: calc(35% - 0.125rem);
+            margin-top: 0.125rem;
+
+            .rightTopContent {
+                width: 100%;
+                padding: 0.25rem 0 10px 0;
+                height: calc(100% - 0.8125rem);
+
+                .content {
+                    height: 100%;
+                    overflow: scroll;
+                    position: relative;
+                    & > .el-row {
+                        overflow: hidden;
+                        width: 100%;
+                        height: auto;
+                        & > .title {
+                            width: 100%;
+                            height: 0.4375rem;
+                            line-height: 0.4375rem;
+                            font-size: 0.175rem;
+                            padding: 0 0.125rem;
+                            background: rgba(115, 251, 253, 0.3) !important;
+                            margin-bottom: 0.025rem;
+                        }
+                        & > .data {
+                            width: 100%;
+                            font-size: 0.175rem;
+                            padding: 0 0.125rem;
+                            background: rgba(115, 251, 253, 0.1) !important;
+                            margin-bottom: 0.025rem;
+                            white-space: initial;
+                            .el-col {
+                                line-height: 0.35rem;
+                                span {
+                                    color: #73fbfd;
+                                }
+                            }
+                        }
+                    }
+
+                    &::-webkit-scrollbar {
+                        display: none;
+                    }
+                }
+            }
+        }
+    }
+
+    .rightBox {
+        color: #ffffff;
+
+        .rightTop {
+            height: 30%;
+            max-height: 30%;
+            .rightTopContent {
+                width: 100%;
+                height: calc(100% - 0.4375rem);
+                display: flex;
+
+                > .el-row {
+                    > .el-col {
+                        display: flex;
+                        margin: auto 0;
+                        > div {
+                            display: flex;
+                            .left {
+                                width: 1.375rem;
+                                margin-right: 0.25rem;
+
+                                div {
+                                    text-align: center;
+                                    font-size: 0.175rem;
+                                    overflow: hidden !important;
+                                    white-space: nowrap !important;
+                                    text-overflow: ellipsis !important;
+                                }
+
+                                img {
+                                    width: 0.675rem;
+                                    height: 0.675rem;
+                                    display: flex;
+                                    margin: auto auto 0.0625rem auto;
+                                }
+                            }
+
+                            .right {
+                                overflow: hidden !important;
+                                white-space: nowrap !important;
+                                text-overflow: ellipsis !important;
+                                .el-col:nth-child(1) {
+                                    display: flex;
+                                    margin: auto 0 0 0;
+                                    font-size: 0.175rem;
+                                }
+
+                                .el-col:nth-child(2) {
+                                    display: flex;
+                                    margin: auto 0 0 0;
+                                    font-size: 0.3rem;
+                                    font-weight: bold;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        .leftBot {
+            height: calc(35% - 0.125rem);
+            max-height: calc(35% - 0.125rem);
+            margin-top: 0.125rem;
+            width: 100%;
+
+            .leftBotContent {
+                padding: 0.25rem 0 0 0;
+                height: calc(100% - 0.6875rem);
+            }
+        }
+
+        .rightBot {
+            height: calc(35% - 0.125rem);
+            max-height: calc(35% - 0.125rem);
+            margin-top: 0.125rem;
+
+            .rightBotContent {
+                padding: 0.25rem 0 0 0;
+                // height: calc(100% - 0.4375rem);
+                height: calc(100% - 0.6875rem);
+            }
+        }
+    }
+}
+  .returnText {
+                width: 0.5rem;
+                text-align: center;
+                height: 0.3rem;
+                line-height: 0.3rem;
+                box-shadow: inset 0 0 0.05rem 0.05rem #1b4f90;
+                background: rgba(19, 42, 90, 0.2) !important;
+                color: #fff;
+                float: right;
+                margin-top: 0.1rem;
+        }
+        .leftBotContent2{
+                height:23%;
+                margin-top:-35%;
+        }
+        .rightTop2{
+                >.el-col{
+                        >div{
+                                >div:nth-child(1){
+                                        margin:0.3rem 0;
+                                }
+                                >div:nth-child(3){
+                                        width:50%;
+                                        margin:0.2rem auto;
+                                        padding:.075rem;
+                                        border-radius: .25rem;
+                                        box-shadow: inset 0 0 0.05rem 0.05rem rgba(27, 79, 144, 1);
+                                        background: rgba(#132A5A, 0.2) !important;
+                                        span{
+                                                margin-left:0.075rem
+                                        }
+                                }
+                        }
+                }
+        }
+</style>

+ 108 - 223
src/views/self-management.vue

@@ -106,7 +106,7 @@
                     </div>
                     <el-row class="leftCenterContent">
                         <el-col class="contentOne" :span="12" v-for="(score, index) in patrolInspectionList" :key="index">
-                            <el-row style="padding-left: 10%; flex-flow: nowrap">
+                            <el-row style="padding-left: 10%; flex-flow: nowrap" @click="unitInspection(index)">
                                 <img style="width: 1.2875rem; height: 1.175rem; padding: 0 0.125rem; margin: auto 0" :src="require('@/assets/img/self-management/' + (index + 5) + '.png')" alt="" />
 
                                 <div style="line-height: 0.5rem; margin: auto 0">
@@ -396,22 +396,14 @@
                     <div class="topContent">
                         <div style="text-align: right; display: flex">
                             <span style="margin: 0 auto"></span>
-                            <span style="font-size: 0.175rem; line-height: 0.375rem; color: #ffffff">{{ iotDeviceList2.dataName }}: </span>
+                            <span style="font-size: 0.175rem; line-height: 0.375rem; color: #ffffff">累计接入设备数: </span>
                             
-                            <span style="font-size: 0.25rem; color: #73fbfd; font-weight: 600">21333</span>
+                            <span style="font-size: 0.25rem; color: #73fbfd; font-weight: 600">{{ diskData.total }}</span>
                             <!-- <span style="font-size: 0.25rem; color: #73fbfd; font-weight: 600">{{ iotDeviceList2.dataValue }}</span> -->
                         </div>
                         <div style="height: calc(100% - 0.375rem)">
-                            <disk v-if="diskData.length > 0" ref="disk" :dataMap="diskData"></disk>
+                            <disk v-if="diskData.data.length > 0" ref="disk" :dataMap="diskData.data" @echartsClick="diskSd"></disk>
                         </div>
-                        <!-- <div style="height: calc(100% - 0.375rem);">
-                            <category-enterprise2
-                                v-if="iotDeviceList2.xData.length > 0"
-                                ref="categoryEnterprise2"
-                                :xData="iotDeviceList2.xData"
-                                :dataMap="iotDeviceList2.dataMap"
-                            ></category-enterprise2>
-                        </div> -->
                     </div>
                 </div>
 
@@ -555,7 +547,8 @@
                             </div>
                         </el-row>
 
-                        <el-table height="calc(100% - 0.6rem)" :data="tableData2" class="transparentTableRow">
+                        <el-table :data="tableData2" class="transparentTableRow" v-fit-columns   :empty-text="dataNo"  ref="reportTable1" @mouseenter="autoScroll(true)"
+                        @mouseleave="autoScroll()" >
                             <el-table-column v-for="item in headerData2" :key="item.prop" :prop="item.prop" align="center" :label="item.name">
                                 <template #default="scope">
                                     <el-tooltip placement="left">
@@ -807,130 +800,42 @@ export default {
     mixins: [linstener, map],
     data() {
         return {
-            diskData: [
-                {
+            dataNo:" ",//table无数据提示
+            diskData: {
+                total:0,
+                data:[],
+                data2:[
+                    {
                     name: "消防给水及消火栓系统",
                     value: 1083,
                     lineCount: 895,
                     lineRate: 0.826,
-                    children: [
-                        {
-                            name: "消火栓泵",
-                            value: 328,
-                            lineCount: 279,
-                            lineRate: 0.851,
-                        },
-                        {
-                            name: "消防主管网压力",
-                            value: 293,
-                            lineCount: 231,
-                            lineRate: 0.788,
-                        },
-                        {
-                            name: "市政管网压力",
-                            value: 9,
-                            lineCount: 0,
-                            lineRate: 0,
-                        },
-                        {
-                            name: "室外消火栓末端压力",
-                            value: 230,
-                            lineCount: 202,
-                            lineRate: 0.878,
-                        },
-                        {
-                            name: "消防水池",
-                            value: 1,
-                            lineCount: 1,
-                            lineRate: 1,
-                        },
-                        {
-                            name: "消防水泵",
-                            value: 10,
-                            lineCount: 0,
-                            lineRate: 0,
-                        },
-                        {
-                            name: "消防水箱",
-                            value: 212,
-                            lineCount: 182,
-                            lineRate: 0.858,
-                        },
-                    ],
+                   
                 },
                 {
                     name: "防烟排烟系统",
                     value: 4110,
                     lineCount: 261,
                     lineRate: 0.064,
-                    children: [
-                        {
-                            name: "正压风机传感器",
-                            value: 2066,
-                            lineCount: 87,
-                            lineRate: 0.042,
-                        },
-                        {
-                            name: "消防补风机传感器",
-                            value: 112,
-                            lineCount: 0,
-                            lineRate: 0,
-                        },
-                        {
-                            name: "排烟风机传感器",
-                            value: 1902,
-                            lineCount: 174,
-                            lineRate: 0.091,
-                        },
-                        {
-                            name: "新风机",
-                            value: 30,
-                            lineCount: 0,
-                            lineRate: 0,
-                        },
-                    ],
+                   
                 },
                 {
                     name: "火灾报警系统",
                     value: 9403,
                     lineCount: 226,
                     lineRate: 0.024,
-                    children: [
-                        {
-                            name: "用户信息传输装置",
-                            value: 9403,
-                            lineCount: 226,
-                            lineRate: 0.024,
-                        },
-                    ],
+                    
                 },
                 {
                     name: "自动喷水灭火系统",
                     value: 6737,
                     lineCount: 6411,
                     lineRate: 0.952,
-                    children: [
-                        {
-                            name: "喷淋泵",
-                            value: 1844,
-                            lineCount: 1779,
-                            lineRate: 0.965,
-                        },
-                        {
-                            name: "喷淋主管网压力",
-                            value: 2165,
-                            lineCount: 1970,
-                            lineRate: 0.91,
-                        },
-                        {
-                            name: "喷淋末端压力",
-                            value: 2728,
-                            lineCount: 2662,
-                            lineRate: 0.976,
-                        },
-                    ],
+                    
                 },
-            ], //各街镇物联动态-数据存储
+                ]
+                
+                }, //各街镇物联动态-数据存储
             djActive: [false, false, false, false], //评分等级选中状态
             zddwId: undefined,
             stores: this.$useStore(),
@@ -1325,18 +1230,7 @@ export default {
                 dataMap: [[], [], []],
             }, //各街镇单位情况-数据存储
 
-            iotDeviceList: {
-                dataName: "", //title
-                dataValue: "",
-                xData: [], //名称
-                dataMap: [[], [], []], //值
-            }, //物联网设备情况-数据存储
-            iotDeviceList2: {
-                dataName: "累计接入设备数", //title
-                dataValue: 0,
-                xData: [], //名称
-                dataMap: [[], [], []], //值
-            },
+
 
             tabsArea1: 10, //历史案件-(近10条、近50条)切换
             gj: [
@@ -1555,6 +1449,9 @@ export default {
 
     created() {
         this.getData();
+        setTimeout(()=>{
+            this.autoScroll()
+        },2000)
     },
     mounted() {
         this.initMap();
@@ -1575,6 +1472,9 @@ export default {
         );
     },
     methods: {
+        beforeDestroy() {
+            this.autoScroll(true)
+        },
         /**
          * 评分等级切换
          * @param {*} id
@@ -1636,11 +1536,32 @@ export default {
             this.streetCompanyApi(); //各街镇单位情况接口请求
             // this.erpDataApi(); //企业经营情况接口请求
             this.caseListApi(); //历史案件接口请求
-            this.iotDeviceApi(); //物联网设备情况接口请求
-            this.iotDeviceApi2(); //物联网设备情况接口请求  杨(后期删除)
+            this.deviceTypeListApi(); //物联网设备情况接口请求
             //     this.streetDynamicApi(); //各街镇物联动态接口请求
             this.iotDisposalApi(); //物联网处置情况接口请求
         },
+        autoScroll(stop) {
+            // 拿到表格中承载数据的div元素
+
+            const divData = this.$refs.reportTable.$refs.bodyWrapper
+            // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
+            if (stop) {
+            //再通过事件监听,监听到 组件销毁 后,再执行关闭计时器。
+            window.clearInterval(this.scrolltimer)
+            } else {
+                this.scrolltimer = window.setInterval(() => {
+                        // 元素自增距离顶部1像素
+                        divData.scrollTop += 1
+                        // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
+                        if (divData.clientHeight + divData.scrollTop == divData.scrollHeight) {
+                        // 重置table距离顶部距离
+                        divData.scrollTop = 0
+                        // 重置table距离顶部距离。值=(滚动到底部时,距离顶部的大小) - 整个高度/2
+                        // divData.scrollTop = divData.scrollTop - divData.scrollHeight / 2
+                        }
+                }, 150) // 滚动速度
+            }
+        },
 
         /**
          * 撒点测绘院、高德
@@ -1664,9 +1585,8 @@ export default {
             this.enterpriseAutonomyApi(); //企业自主情况接口请求
             this.patrolInspectionApi(); //企业自主巡检情况接口请求
             this.caseListApi(); //历史案件接口请求
-            //     this.iotDeviceApi(); //物联网设备情况接口请求 吉
-            this.iotDeviceApi2(); //物联网设备情况接口请求 杨
-            //   this.iotDisposalApi(); //物联网处置情况接口请求
+            this.deviceTypeListApi(); //物联网设备情况接口请求
+            this.iotDisposalApi(); //物联网处置情况接口请求
             this.streetCompanyApi1(); //单位情况接口请求
         },
 
@@ -1933,82 +1853,26 @@ export default {
         },
 
         /**
-         * @物联网设备情况
+         * @物联网设备情况
          * @api请求
          */
-        async iotDeviceApi() {
+        async deviceTypeListApi() {
             let res = await this.$axios.get(
-                this.$api.selfManagement.enterpriseAutonomy +
-                    "?" +
-                    this.$qs.stringify({
-                        moduleType: "iotDevice",
-                        dataType: "data1",
-                        streetTown: this.stroes.$state.streetTown, //街镇
-                    })
-            );
-
-            if (res.data.length > 0) {
-                this.iotDeviceList.dataName = res.data[0].name;
-                this.iotDeviceList.dataValue = res.data[0].value;
-            }
-
-            this.iotDeviceList.xData = [];
-            this.iotDeviceList.dataMap = [[], [], []];
-
-            let res1 = await this.$axios.get(
-                this.$api.selfManagement.enterpriseAutonomy +
-                    "?" +
-                    this.$qs.stringify({
-                        moduleType: "iotDevice",
-                        dataType: "data2",
-                        streetTown: this.stroes.$state.streetTown, //街镇
-                    })
+                this.$api.selfManagement.deviceTypeList 
             );
-
-            if (res1.data.length > 0) {
-                res1.data.forEach((val) => {
-                    this.iotDeviceList.xData.push(val.name);
-                    this.iotDeviceList.dataMap[0].push(val.on_line);
-                    this.iotDeviceList.dataMap[1].push(val.off_line);
-                    this.iotDeviceList.dataMap[2].push(val.ratio);
-                });
-            }
-        },
-        /**
-         * @物联网设备情况  杨
-         * @api请求
-         */
-        iotDeviceApi2() {
-            this.$axios
-                .get(
-                    this.$api.selfManagement.enterpriseAutonomy2 +
-                        "?" +
-                        this.$qs.stringify({
-                            current: "1",
-                            size: 500,
-                        })
-                )
-                .then((res) => {
-                    if (res.data.records.length > 0) {
-                        this.iotDeviceList2.dataValue = 0;
-                        // for(let i =0;i<res.data.records.length;i++){
-                        //         this.diskData[i] = {
-                        //                 name:res.data.records[i].deviceType,
-                        //                 value:res.data.records[i].deviceCount,
-                        //                 offline:0,
-                        //                 lineRate:'100%',
-                        //         }
-                        // }
-                        // this.diskData = res.data.records
-                        res.data.records.forEach((val) => {
-                            this.iotDeviceList2.xData.push(val.deviceType);
-                            this.iotDeviceList2.dataMap[0].push(val.deviceCount);
-                            this.iotDeviceList2.dataMap[1].push(val.lineCount);
-                            this.iotDeviceList2.dataMap[2].push((val.onRate * 100).toFixed(2) + "%");
-                            this.iotDeviceList2.dataValue += val.deviceCount;
-                        });
+            if(res){
+                this.diskData.total = res.data.deviceCount;
+                this.diskData.data = res.data.typeList;
+                this.diskData.data = res.data.typeList.map(item=>{
+                    return {
+                        name: item.deviceTypeName,
+                        value: item.deviceCount,
+                        lineCount: item.lineCount,
+                        lineRate: (item.lineRate * 100).toFixed(2),
+                        deviceTypeCode:item.deviceTypeCode
                     }
-                });
+                })
+            }
         },
 
         /**
@@ -2053,24 +1917,6 @@ export default {
             }
         },
 
-        /**
-         * @物联网处置情况 杨
-         * @api请求
-         */
-        async iotDisposalApi2() {
-            let res = await this.$axios.get(this.$api.selfManagement.iotDisposal);
-            if (res.status === "SUCCESS") {
-                if (this.tabsArea2 == "data1") {
-                    this.iotDisposalList[0].value = 9004;
-                    this.iotDisposalList[1].value = 8701;
-                    this.iotDisposalList[2].value = parseInt("96.63%".split("%")[0]);
-                } else {
-                    this.iotDisposalList[0].value = res.data.alarmCount;
-                    this.iotDisposalList[1].value = res.data.alarmProcessedCount;
-                    this.iotDisposalList[2].value = parseInt(res.data.alarmProcessedRate.split("%")[0]);
-                }
-            }
-        },
 
         /**
          * @各街镇物联动态
@@ -2278,8 +2124,9 @@ export default {
 
         /**
          * 撒点
+         * code 物联网code
          */
-        async sadian(id) {
+        async sadian(id,code) {
             let arr = [];
             let typeAll = this.checkedSelectArray;
             let type = null;
@@ -2423,10 +2270,48 @@ export default {
                         }
                         this.addMarker(arr, "self-management", type3);
                     });
+            } else if (id == 22) {
+                this.$axios
+                    .post(this.$api.water.baseGgpFacilityList, {
+                        facilityType: [id],
+                    })
+                    .then((res) => {
+                        this.addMarker(res.data, "self-management", "单位巡检");
+                    });
+            }else if(id == 123){
+                this.$axios.get(
+                    this.$api.selfManagement.deviceTypeScatter +
+                        "?" +
+                        this.$qs.stringify({
+                            deviceTypeCode: code,
+                        })
+                ).then(res=>{
+                    this.addMarker(res.data, "self-management", "物联网设备");
+                    
+                })
+                
+            
             } else {
-                this.addMarker([], "self-management", "");
-            }
+            this.addMarker([], "self-management", "");
+        }
         },
+        /**
+         * 物联网撒点
+         */
+         diskSd(id){
+           
+            this.sadian(123,id)
+            
+         },
+        /**
+         * d单位巡检事件
+         */
+        unitInspection(id){
+            if(id == 0){
+                this.sadian(22)
+            }
+            
+        }
     },
 };
 </script>

+ 13 - 0
src/views/water-sources.vue

@@ -47,6 +47,8 @@
                             class="transparentTableRow table1"
                             height="100%"
                             style="width: 100%; margin: 0 auto"
+                             :empty-text="dataNo"  ref="reportTable" @mouseenter="autoScroll(true)"
+                            @mouseleave="autoScroll()" 
                         >
                             <el-table-column
                                 v-for="item in headerData3"
@@ -433,6 +435,8 @@
                             class="transparentTableRow"
                             height="100%"
                             @row-click="FireWaterListClick"
+                             :empty-text="dataNo"  ref="reportTable1" @mouseenter="autoScroll1(true)"
+                            @mouseleave="autoScroll1()" 
                         >
                             <el-table-column
                                 v-for="item in headerData"
@@ -639,6 +643,7 @@ export default {
   components: { waterGauge, funnel, gauge },
   data() {
     return {
+        dataNo:"",
       stores: this.$useStore(),
       checkedArray: {
         checkedData: [3],
@@ -787,12 +792,20 @@ export default {
   },
   created() {
         this.getData();
+        setTimeout(()=>{
+            this.autoScroll()
+            this.autoScroll1()
+        },2000)
   },
   mounted() {
             this.initMap();
                 window.addEventListener("resize", () => this.resizeTimeActions([this.$refs.funnel, this.$refs.waterGauge, this.$refs.gauge1, this.$refs.gauge2]), true);
   },
   methods: {
+     beforeDestroy() {
+        this.autoScroll(true)
+        this.autoScroll1(true)
+    },
     async getData() {
       this.getFireWaterStatistics();
       this.getFireWater(3);

二进制
文件/融合通信统一开放平台设备查询接口说明书 -2(2).docx