Browse Source

布局样式调整完成

wangtao 4 months ago
parent
commit
9d8f2fa255

+ 8 - 80
src/assets/scss/common.scss

@@ -62,56 +62,6 @@ body {
     }
 }
 
-.tableTooltip {
-    height: auto;
-    width: 4.375rem;
-    scrollbar-width: none;
-    /* firefox */
-    -ms-overflow-style: none;
-    /* IE 10+ */
-    overflow-x: hidden;
-    overflow-y: auto;
-    &::-webkit-scrollbar {
-        display: none;
-        /* Chrome Safari */
-    }
-    .tableTitle {
-        background: url("~@a/img/comprehensive/title.png");
-        background-size: 100% 100%;
-        &>div {
-            line-height: 0.4rem;
-            background-image: linear-gradient(#caf6ff, #56d1ed);
-            -webkit-background-clip: text;
-            color: transparent;
-            -webkit-text-fill-color: transparent;
-            font-weight: 900;
-        }
-    }
-    .tableContent {
-        margin-top: 0.125rem;
-        .el-col {
-            margin: 0.0625rem 0;
-            >span {
-                color: rgba(115, 251, 253, 1);
-            }
-        }
-    }
-    .tablePersonnel {
-        justify-content: start;
-        .el-col {
-            margin: 0.125rem 1.1%;
-            img {
-                width: 1.0625rem;
-                height: 1.25rem;
-                margin: 0 auto;
-                display: block;
-            }
-            div {
-                text-align: center;
-            }
-        }
-    }
-}
 
 // 地图弹窗
 .mapTab {
@@ -366,43 +316,21 @@ body {
     }
 }
 
-.mapTips_type {
-    width: 2.5rem;
-    height: auto;
-    background: $background-color-theme4;
-    position: fixed;
-    bottom: 1.48vh;
-    right: 7.2rem;
-    color: #fff !important;
-    font-size: 0.2rem;
-    p {
-        color: #019fb7;
-    }
-    .content {
-        padding: 1.388vh 0.25rem;
-        color: #fff !important;
-    }
-    .img {
-        width: 100%;
-        height: 0.37vh;
-        margin-top: -0.37vh;
-        position: absolute;
-    }
-    // $color-primary1
-}
+
 
 .hover {
     background: #409eff !important;
     color: #fff !important;
 }
 
-.list .el-input__suffix {
-    top: -0.075rem;
-}
 
-.content .el-input__suffix {
-    top: -0.075rem;
-}
+// .list .el-input__suffix {
+//     top: 80%;
+// }
+
+// .content .el-input__suffix {
+//     top: 100%;
+// }
 
 .close {
     display: none;

+ 6 - 13
src/assets/scss/element-ui.scss

@@ -249,42 +249,35 @@
 .el-select {
     color: #fff;
     .el-input__inner {
-        height: 0.15rem !important;
-        line-height: 0.15rem !important;
-        padding: 0.15rem 0.125rem !important;
-        // margin-top: 0.3rem;
         border-color: rgba(115, 251, 253, 0.5) !important;
         border: 1px solid rgba(115, 251, 253, 0.5);
         color: #fff;
         background: transparent;
         border-color: rgba(27, 79, 144, 1);
         font-size: 0.175rem;
-        padding-right: 0.375rem;
-        padding-left: 0.1875rem;
         &::-webkit-input-placeholder {
             font-size: 0.175rem;
-            line-height: 0.35rem;
             color: #fff;
         }
     }
     .el-input__suffix .el-input__suffix-inner .el-input__icon {
         color: rgba(115, 251, 253, 0.5);
-        line-height: 0.35rem;
+        line-height: 0rem;
         font-size: 0.175rem;
     }
     .el-input--mini {
         font-size: 0.175rem;
-        line-height: 0.3rem;
+        // line-height: 0.3rem;
         .el-input__inner {
-            height: 0.33rem;
-            line-height: 0.35rem;
+            // height: 0.33rem;
+            // line-height: 0.35rem;
         }
     }
 }
 
 .el-select--mini {
-    width: 1.8rem;
-    line-height: 0.35rem;
+    // width: 1.8rem;
+    // line-height: 0.35rem;
 }
 
 .el-select__popper.el-popper[role="tooltip"] {

+ 94 - 0
src/components/IOTInfo/index.vue

@@ -0,0 +1,94 @@
+<template>
+    <div class="IOTInfo">
+        <h4>街镇物联设备情况</h4>
+       <div class="box">
+            <div style="text-align: right;margin:-20px -20px 0 0 ">
+                <span style="margin: 0 auto"></span>
+                <span style="font-size: 16px;  color: #ffffff;line-height: 40px;">累计接入设备数: </span>
+                <span style="font-size: 24px; color: #73fbfd; font-weight: 600;">{{ data.total }}</span>
+            </div>
+            <div style="height:20vh">
+                <disk v-if="data.data.length > 0" ref="disk" :dataMap="data.data" @echartsClick="diskSd"></disk>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import disk from "@c/disk/index";
+export default {
+    components: { disk },
+    data() {
+        return {
+            //街镇物联设备情况
+            data: {
+                total:0,
+                data:[],
+                data2:[
+                    {
+                        name: "消防给水及消火栓系统",
+                        value: 1083,
+                        lineCount: 895,
+                        lineRate: 0.826,
+                    
+                    },
+                    {
+                        name: "防烟排烟系统",
+                        value: 4110,
+                        lineCount: 261,
+                        lineRate: 0.064,
+                    
+                    },
+                    {
+                        name: "火灾报警系统",
+                        value: 9403,
+                        lineCount: 226,
+                        lineRate: 0.024,
+                        
+                    },
+                    {
+                        name: "自动喷水灭火系统",
+                        value: 6737,
+                        lineCount: 6411,
+                        lineRate: 0.952,
+                        
+                    },
+                ]
+            }, //各街镇物联动态-数据存储
+        };
+    },
+    created() {
+        this.getData()
+    },
+    methods: {
+        getData(){
+            /**
+             * @物联网设备情况
+             * @api请求
+            */
+            this.$axios.get(
+                this.$api.selfManagement.deviceTypeList 
+            ).then(res => {
+                this.data.total = res.data.deviceCount;
+                this.data.data = res.data.typeList;
+                this.data.data = res.data.typeList.map(item=>{
+                    return {
+                        name: item.deviceTypeName,
+                        value: item.deviceCount,
+                        lineCount: item.lineCount,
+                        lineRate: item.lineRate.toFixed(2),
+                        deviceTypeCode:item.deviceTypeCode
+                    }
+                })
+            });
+        },
+    },
+};
+</script>
+<style lang="scss" scoped>
+.IOTInfo {
+    .box {
+        height: calc(100% - 0.6875rem);
+        margin: 0.125rem;
+    }
+}
+</style>

+ 1 - 0
src/components/basicInfo/index.vue

@@ -69,6 +69,7 @@ export default {
         overflow: auto;
         margin-top:15px;
         .basicItem{
+            cursor: pointer;
             width:calc(100% / 3 - 10px);
             border: 1px solid rgba(48, 207, 255, 0.6); 
             margin: 4px 0!important; 

+ 5 - 5
src/components/category/index2.vue

@@ -78,10 +78,10 @@ export default {
 
             echartsMap.setOption({
                 grid: {
-                    top: 30,
+                    top: 20,
                     left: 50,
-                    right: 30,
-                    bottom: 30,
+                    right: 4,
+                    bottom: 35,
                 },
                 tooltip: {
                     trigger: "axis",
@@ -101,7 +101,7 @@ export default {
                     data: this.xData,
                     axisLabel: {
                         color: "#fff",
-                        fontSize: "0.175rem",
+                        fontSize: "12px",
                         fontFamily: "syhtN",
                         rotate: 40, //值>0向右倾斜,值<0则向左倾斜
                         formatter: (param) => {
@@ -118,7 +118,7 @@ export default {
                     type: "value",
                     axisLabel: {
                         color: "#fff",
-                        fontSize: "0.175rem",
+                        fontSize: "14px",
                         fontFamily: "syhtN",
                     },
                     splitLine: {

+ 3 - 3
src/components/category/index3.vue

@@ -84,7 +84,7 @@ export default {
                     data: xData,
                     axisLabel: {
                         color: "#fff",
-                        fontSize: "0.175rem",
+                        fontSize: "12px",
                         fontFamily: "syhtN",
                         rotate: 40, //值>0向右倾斜,值<0则向左倾斜
                         formatter: (param) => {
@@ -100,7 +100,7 @@ export default {
                     },
                     type: "value",
                     axisLabel: {
-                        fontSize: "0.175rem",
+                        fontSize: "14px",
                         fontFamily: "syhtN",
                         color: "#fff",
                     },
@@ -126,7 +126,7 @@ export default {
                                     position: "top",
                                     textStyle: {
                                         fontWeight: "bolder",
-                                        fontSize: "12",
+                                        fontSize: "14px",
                                         color: "#fff"
                                     }
                                 },

+ 119 - 0
src/components/complaintInfo/index.vue

@@ -0,0 +1,119 @@
+<template>
+    <div class="complaintInfo">
+        <h4>投诉类型排名</h4>
+        <div class="gp">
+            <span>满意数<span>1001</span></span>
+            <span>不满意数<span>12</span></span>
+        </div>
+        <div class="box">
+            <category2
+                ref="category"
+                v-if="reportComplaintList.x.length > 0"
+                :dataMap="reportComplaintList.y"
+                :xData="reportComplaintList.x"
+                :isSlice="2"
+                color="#33BBFA"
+            ></category2>
+        </div>
+    </div>
+</template>
+<script>
+import category2 from "@c/category/index2";
+export default {
+    components: { category2 },
+    data() {
+        return {
+            //闵行区基本情况
+            data:{},
+            reportComplaintList: {
+                x:[],
+                y:[],
+            },//投诉排名
+        };
+    },
+    mounted() {
+        this.getData()
+    },
+    methods: {
+        selectArray(id) {
+            this.checkedArray.checkedData[0] = id;
+            let data = this.checkedSelectArray.filter((val) => {
+                if (val.value == id) {
+                    return val.label;
+                }
+            });
+            this.checkedSelectLabel = data[0].label;
+            this.sadianSelect(data[0].value);
+        },
+        /**
+         * @投诉举报情况 
+         * @api接口请求
+        */
+        getData(){
+            this.$axios.get(
+                this.$api.siaeall.lawTrendList +
+                    "?" +
+                    this.$qs.stringify({
+                        moduleType: "complaintHandle",
+                    })
+            ).then((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];
+                    };
+                        return this.reportComplaintList.y.total
+                    };
+                    reverseSum(arr0, arr1, arr2, arr3)
+                }
+            })
+        },
+    },
+};
+</script>
+<style lang="scss" scoped>
+.complaintInfo {
+    position: relative;
+    .gp{
+        font-size: 16px;
+        font-family: 微软雅黑;
+        float: right;
+        margin-top: -38px;
+        color:#fff;
+        span:nth-child(2){
+            margin-left: 10px;
+        }
+        span>span{
+            font-size: 24px;
+            margin-left:4px;
+        }
+    }
+    .box {
+        height: 90%;
+    }
+}
+</style>

+ 21 - 9
src/components/disk/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div ref="disk" style="width: 130%; height: 100%;margin-left:-15%;margin-top:0%"></div>
+  <div ref="disk" style="width: 120%; height: 130%;"></div>
 </template>
 
 <script>
@@ -27,28 +27,40 @@ export default {
         echartsMap = this.$echarts.init(this.$refs.disk);
       }
       echartsMap.setOption({
-        // color:["#000","#fff"],
+        radar: {
+          // 设置雷达图指示器的文本样式
+          name: {
+              textStyle: {
+                  color: '#fff', // 文本颜色
+                  fontSize: 16 // 字体大小
+              }
+          }
+        },
         tooltip: {
           formatter: function (info) {
             return [
-              '<div class="tooltip-title">' +
+              '<div class="tooltip-title" >' +
               info.data.name +
               '</div>',
               '设备总数: ' + info.data.value + '</br>' +
               '在线数: ' + info.data.lineCount + '</br>' +
               '在线率: ' + info.data.lineRate  + '%' + '</br>'
             ].join('');
-          }
+          },
+          padding: [0, 0]
 
         },
         series: [
           {
             name: '物联网设备',
             type: 'treemap',
-            visibleMin: 800,
+            // visibleMin: 800,
             label: {
               show: true,
-              formatter: '{b}'
+              formatter: '{b}',
+              textStyle:{
+                fontStyle:30,
+              }
             },
             itemStyle: {
               borderColor: '#fff'
@@ -56,7 +68,7 @@ export default {
             levels: this.getLevelOption(),
             data: dataMap
           }
-        ]
+        ],
       });
       echartsMap.on('click', function (param) { 
         that.$emit("echartsClick",param.data.deviceTypeCode)
@@ -67,7 +79,7 @@ export default {
         {
           itemStyle: {
             borderWidth: 0,
-            gapWidth: 5
+            gapWidth: 1
           }
         },
         {
@@ -79,7 +91,7 @@ export default {
           colorSaturation: [0.35, 0.5],
           itemStyle: {
             gapWidth: 1,
-            borderColorSaturation: 0.6
+            borderColorSaturation: 1
           }
         }
       ];

+ 482 - 0
src/components/fireInfo/index.vue

@@ -0,0 +1,482 @@
+<template>
+    <div class="basicInfo">
+        <h4>闵行区消防情况</h4>
+        <div class="box">
+            <div class="contentOne" v-if="radar == 1">
+                <radar-chart v-if="complaintList.length > 0" :dataMap="complaintList" ref="radarChart" @echartsClick="radarToPie" ></radar-chart>
+            </div>
+            <div class="contentOneH" v-if="radar == 2">
+                <div @click="goBack(1)" class="return">
+                    <div class="returnText">返回</div>
+                </div>
+                <pie :dataMap="checkPieData" @echartsClick="PieToTable"></pie>
+            </div>
+            <div class="contentOneH" v-if="radar == 3">
+                <div @click="goBack(2)" class="return" style="top: 0.7rem">
+                    <div class="returnText">返回</div>
+                </div>
+                <p>
+                    {{ checkTable.name }}:<span>{{ checkTable.total }}</span
+                    >分
+                </p>
+                <el-table :data="checkTable.data" class="transparentTableRow" height="100%" :cell-class-name="tableRowClassName">
+                    <el-table-column show-overflow-tooltip align="center" label="名称" prop="name"></el-table-column>
+                    <el-table-column show-overflow-tooltip align="center" label="评分" prop="value"></el-table-column>
+                    <el-table-column show-overflow-tooltip align="center" label="评分标准" prop="describe"></el-table-column>
+                </el-table>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import pie from "@c/pie/index2";
+import radarChart from "@c/radar/index2";
+export default {
+    components: { radarChart, pie },
+    data() {
+        return {
+            //闵行区基本情况
+            data:{},
+            radar: 1, //雷达图显示
+            complaintList: [
+                // { name: "平面布局得分", value: 13.91, mark: "分" },
+                { name: "区域火灾风险指数", value: 30, mark: "分" },
+                { name: "区域基础综合指数", value: 50, mark: "分" },
+                { name: "区域场所风险指数", value: 22, mark: "分" },
+                { name: "区域基层力量指数", value: 16, mark: "分" },
+                { name: "区域监督执法指数", value: 24, mark: "分" },
+            ],
+            pieData: [
+                [
+                    {
+                        name: "街镇常驻人口数",
+                        value: 3,
+                        total: 5,
+                        children: [
+                            {
+                                name: "",
+                                value: 3,
+                                describe: `街镇常驻人口数,数值高于全区街镇平均人口20%:1,高于全区街镇平均人口10%:2,
+                                    基准分:3,     
+                                    低于全区街镇平均人口10%:4,低于全区街镇平均人口20%:5`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "消防重点单位占比",
+                        value: 11.95,
+                        total: 12,
+                        children: [
+                            {
+                                name: "",
+                                value: 11.95,
+                                describe: `辖区消防重点单位数/全区重点单位总数,高于全区平均5%:8,高于全区平均10%:7,高于全区平均15%:6,占比高于全区平均20%:5,依次类推
+                                基准分:9,
+                                低于全区平均5%:10,低于全区平均10%:11,低于全区平均20%:12
+                                每包含一个高危单位:扣0.05`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "九小场所占比",
+                        value: 5,
+                        total: 8,
+                        children: [
+                            {
+                                name: "",
+                                value: 5,
+                                describe: `辖区九小场所单位数/全区总数,占比高于全区平均5%:4,高于全区平均10%:3,高于全区平均15%:2,高于全区平均20%:1
+                                基准分:5
+                                低于全区平均5%:6,低于全区平均10%:7,低于全区平均20%:8`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "市政消火栓密度",
+                        value: 0,
+                        total: 5,
+                        children: [
+                            {
+                                name: "",
+                                value: 0,
+                                describe: `街镇消火栓密度高于全区平均密度10%以上:5
+                                    基准分:4
+                                    每低于全区平均密度10%:扣0.2`,
+                            },
+                        ],
+                    },
+                ],
+                [
+                    {
+                        name: "最近1年度轻微火灾占比",
+                        value: 5,
+                        total: 6,
+                        children: [
+                            {
+                                name: "",
+                                value: 5,
+                                describe: `每个街镇除去较大以上火灾的三个火灾占比数取平均值(30%轻微火灾占比+30%简易火灾占比+40%一般火灾占比)与全区除去较大以上火灾的三个火灾占比数取平均值进行比较,基准分10分,每低于区平均值5%,增加1分,反之亦然`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "最近1年度简易火灾占比",
+                        value: 5,
+                        total: 6,
+                        children: [
+                            {
+                                name: "",
+                                value: 5,
+                                describe: `每个街镇除去较大以上火灾的三个火灾占比数取平均值(30%轻微火灾占比+30%简易火灾占比+40%一般火灾占比)与全区除去较大以上火灾的三个火灾占比数取平均值进行比较,基准分10分,每低于区平均值5%,增加1分,反之亦然`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "最近1年度一般火灾占比",
+                        value: 7,
+                        total: 8,
+                        children: [
+                            {
+                                name: "",
+                                value: 7,
+                                describe: `每个街镇除去较大以上火灾的三个火灾占比数取平均值(30%轻微火灾占比+30%简易火灾占比+40%一般火灾占比)与全区除去较大以上火灾的三个火灾占比数取平均值进行比较,基准分10分,每低于区平均值5%,增加1分,反之亦然`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "亡人火灾",
+                        value: -2,
+                        total: "-",
+                        children: [
+                            {
+                                name: "",
+                                value: -2,
+                                describe: `每发生一起扣2分`,
+                            },
+                        ],
+                    },
+                    //     {
+                    //         name: "最近1年度较大以上火灾数",
+                    //         value: 5,
+                    //         total: 5,
+                    //         children: [
+                    //             {
+                    //                 name: "",
+                    //                 value:5 ,
+                    //                 describe: `每发生一起扣6分`,
+                    //             },
+                    //         ],
+                    //     },
+                ],
+                [
+                    {
+                        name: "居民小区占比",
+                        value: 2,
+                        total: 2,
+                        children: [
+                            {
+                                name: "",
+                                value: 2,
+                                describe: `辖区某类单位数/全区某类单位总数,占比高于全区平均20%:扣2,高于全区平均10%:扣1,
+                                    基准分:2,最高分不超过二级权重
+                                    低于全区平均10%:+1,低于全区平均20%:+2`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "厂房仓库占比",
+                        value: 2,
+                        total: 2,
+                        children: [
+                            {
+                                name: "",
+                                value: 2,
+                                describe: `辖区某类单位数/全区某类单位总数,占比高于全区平均20%:扣2,高于全区平均10%:扣1,
+                                    基准分:2,最高分不超过二级权重
+                                    低于全区平均10%:+1,低于全区平均20%:+2`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "高层公共建筑占比",
+                        value: 2,
+                        total: 3,
+                        children: [
+                            {
+                                name: "",
+                                value: 2,
+                                describe: `辖区某类单位数/全区某类单位总数,占比高于全区平均20%:扣2,高于全区平均10%:扣1,
+                                    基准分:2,最高分不超过二级权重
+                                    低于全区平均10%:+1,低于全区平均20%:+2`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "规模公寓占比",
+                        value: 1,
+                        total: 2,
+                        children: [
+                            {
+                                name: "",
+                                value: 1,
+                                describe: `辖区某类单位数/全区某类单位总数,占比高于全区平均20%:扣2,高于全区平均10%:扣1,
+                                    基准分:2,最高分不超过二级权重
+                                    低于全区平均10%:+1,低于全区平均20%:+2`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "三合一场所",
+                        value: 1,
+                        total: 1,
+                        children: [
+                            {
+                                name: "",
+                                value: 1,
+                                describe: `辖区某类单位数/全区某类单位总数,占比高于全区平均20%:扣2,高于全区平均10%:扣1,
+                                    基准分:2,最高分不超过二级权重
+                                    低于全区平均10%:+1,低于全区平均20%:+2`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "大型商业综合体",
+                        value: 1,
+                        total: 2,
+                        children: [
+                            {
+                                name: "",
+                                value: 1,
+                                describe: `辖区某类单位数/全区某类单位总数,占比高于全区平均20%:扣2,高于全区平均10%:扣1,
+                                    基准分:2,最高分不超过二级权重
+                                    低于全区平均10%:+1,低于全区平均20%:+2`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "村民自建房占比",
+                        value: 1,
+                        total: 1,
+                        children: [
+                            {
+                                name: "",
+                                value: 1,
+                                describe: `辖区某类单位数/全区某类单位总数,占比高于全区平均20%:扣2,高于全区平均10%:扣1,
+                                    基准分:2,最高分不超过二级权重
+                                    低于全区平均10%:+1,低于全区平均20%:+2`,
+                            },
+                        ],
+                    },
+                ],
+                [
+                    {
+                        name: "建有国家队消防站的",
+                        value: 1,
+                        total: 1,
+                        children: [
+                            {
+                                name: "",
+                                value: 1,
+                                describe: `有的:1
+                                            没有:0`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "辖区内政府专职消防队+特勤微型消防站",
+                        value: 3,
+                        total: 3,
+                        children: [
+                            {
+                                name: "",
+                                value: 3,
+                                describe: `按人口基础建设微型消防站 260/30`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "社区微型消防站",
+                        value: 1,
+                        total: 1,
+                        children: [
+                            {
+                                name: "",
+                                value: 1,
+                                describe: `抽查点名不接的:每发现一次扣0.1`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "基层消防力量配置占比",
+                        value: 2,
+                        total: 2,
+                        children: [
+                            {
+                                name: "",
+                                value: 2,
+                                describe: `按人数配置比例排名,全区前五位:2
+                                    中间五位:1
+                                    最后四位:0.5`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "消防科普宣传力量",
+                        value: 1,
+                        total: 1,
+                        children: [
+                            {
+                                name: "",
+                                value: 1,
+                                describe: `建立消防科普体验场所:1`,
+                            },
+                        ],
+                    },
+                ],
+                [
+                    {
+                        name: "近一年发现的隐患数量",
+                        value: 5,
+                        total: 5,
+                        children: [
+                            {
+                                name: "支队监督检查",
+                                value: 3,
+                                describe: `隐患数排名计算,隐患数最少的街镇:3
+                                    依次递减7%`,
+                            },
+                            {
+                                name: "街镇检查(包含小程序、九小场所政务端)",
+                                value: 2,
+                                describe: `隐患数排名计算,隐患数最少的街镇:2
+                                    依次递减7%`,
+                            },
+                        ],
+                    },
+                    {
+                        name: "处罚案件数量",
+                        value: 11,
+                        total: 11,
+                        children: [
+                            {
+                                name: "",
+                                value: 11,
+                                describe: `每处罚一次扣0.3分`,
+                            },
+                        ],
+                    },
+                    //     {
+                    //         name: "销除重大火灾隐患",
+                    //         value: 0,
+                    //         total: 0,
+                    //         children: [
+                    //             {
+                    //                 name: "近2年内销除情况",
+                    //                 value:0 ,
+                    //                 describe: `每销除一个加0.5分`,
+                    //             },
+                    //         ],
+                    //     },
+                    {
+                        name: "隐患举报占比",
+                        value: 5,
+                        total: 5,
+                        children: [
+                            {
+                                name: "",
+                                value: 5,
+                                describe: `隐患数排名计算,隐患数最少的街镇:5依次递减7%`,
+                            },
+                        ],
+                    },
+                ],
+            ], //二级饼图数据
+            checkPieData: {
+                value: [],
+                name: null,
+                id: null,
+            }, //选择饼图数据
+            //三级饼图数据
+            checkTable: {
+                data: [],
+                name: null,
+                id: null,
+                total: 0,
+            },
+        };
+    },
+    created(){
+    },
+    mounted() {
+    },
+    methods: {
+         /**
+         * @图形切换
+         *
+         */
+        async goBack(id) {
+            if (id == 1) {
+                this.radar = 1;
+            } else {
+                this.radar = 2;
+            }
+        },
+        /**
+         * @雷达图切换饼图
+         *
+         */
+         async radarToPie(id) {
+            if (this.complaintList[id]) {
+                this.checkPieData.value = this.pieData[id];
+                this.checkPieData.name = this.complaintList[id].name;
+                this.checkPieData.id = id;
+                this.radar = 2;
+            }
+        },
+    },
+};
+</script>
+<style lang="scss" scoped>
+.basicInfo {
+    .box {
+        height:80%;
+        position: relative;
+        .contentOne {
+            margin-top:4%;
+            height: 85%;
+        }
+        .contentOneH {
+            height: 80%;
+            .return {
+                
+                width: 30px;
+                height: 30px;
+                position: absolute;
+                top:-75px;
+                right: 0;
+                z-index: 10;
+                .returnText {
+                    cursor: pointer;
+                    width: 60px;
+                    height: 40px;
+                    text-align: center;
+                    line-height: 40px;
+                    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;
+                }
+            }
+            p {
+                color: #fff;
+                font-size: 0.2rem;
+                margin: 0.4rem 0 0.05rem;
+                span {
+                    font-weight: 700;
+                }
+            }
+        }
+    }
+}
+</style>

+ 196 - 0
src/components/listingInfo/index.vue

@@ -0,0 +1,196 @@
+<template>
+    <div class="listingInfo">
+        <h4>挂牌督改情况</h4>
+        <div class="gp">
+            <span>市级<span>2个</span></span>
+            <span>区级<span>6个</span></span>
+            <span>已挂牌数<span>{{ noticeNum ||  0 }}</span></span>
+            <span>已销案数<span>{{ cancellationNum || 0}}</span></span>
+        </div>
+        <!-- {{tableData}} -->
+        <div class="box" v-if="tableData.length>0" style="height:88%">
+            <el-table :data="tableData" class="transparentTableRow" height="100%" v-fit-columns  v-loading="loading" :empty-text="dataNo"  ref="reportTable"
+                @mouseenter="autoScroll(true)"
+                @mouseleave="autoScroll()">
+                <el-table-column v-for="item in headerData" :key="item.prop" :prop="item.prop" align="left" :label="item.name" class="dd">
+                    <template v-if="item.prop === 'companyName'" #default="scope">
+                        <el-popover trigger="hover" placement="left">
+                            <template #default>
+                                <div class="tableTooltip">
+                                    <div class="tableTitle">
+                                        <div>挂牌督改情况</div>
+                                    </div>
+                                    <el-row class="tableContent">
+                                        <el-col :span="24">单位名称:{{ scope.row.companyName }}</el-col>
+                                        <el-col :span="24">监督检查记录</el-col>
+                                        <el-col :span="24" v-if="scope.row.bookNum">文号:{{ scope.row.bookNum }}</el-col>
+                                        <el-col :span="12" v-if="scope.row.checkTime">检查时间:{{ scope.row.checkTime }}</el-col>
+                                        <el-col :span="24" v-if="scope.row.content">检查内容和情况:{{ scope.row.content }}</el-col>
+                                        <el-col :span="24" v-if="scope.row.noticeState">销案状态:{{ scope.row.noticeState}}</el-col>
+                                    </el-row>
+                                </div>
+                            </template>
+                            <template #reference>
+                                <div>
+                                    {{ scope.row.companyName }}
+                                </div>
+                            </template>
+                        </el-popover>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </div>
+    </div>
+</template>
+<script>
+import linstener from "@c/mixins/linstener";
+export default {
+    data() {
+        return {
+            tableData:[],
+            headerData: [
+                { prop: "companyName", name: "单位名称" },
+                { prop: "bookNum", name: "文号" },
+                { prop: "checkTime", name: "检查日期" },
+                { prop: "orderCorrectTime", name: "整改期限" },
+                { prop: "listingLevel", name: "挂牌级别" },
+                { prop: "noticeState", name: "销案状态" },
+            ],
+            loading:true,
+            noticeNum:0,
+            cancellationNum:0,
+        };
+    },
+    created() {
+        this.getHazardsNoticeStatistic()
+        this.getHazardsNoticeList()
+        // setTimeout(()=>{
+        //     this.autoScroll()
+        // },1000)
+    },
+    mixins: [linstener],
+    methods: {
+        beforeDestroy() {
+            this.autoScroll(true)
+        },
+        // 挂牌督改统计情况
+        getHazardsNoticeStatistic() {
+             this.$axios.get(this.$api.fire.hazardsNoticeStatistic
+            ).then(res=>{
+                this.noticeNum = res.data[0].noticeNum
+                this.cancellationNum = res.data[0].cancellationNum
+            })
+        },
+        // 挂牌督改情况
+        getHazardsNoticeList() {
+            this.$axios.get(
+               this.$api.fire.hazardsNoticeList +
+                   "?" +
+                   this.$qs.stringify({
+                       pageNum: 1,
+                       pageSize: 10000,
+                   })
+           ).then(res=>{
+               if(res.data.records.length == 0){
+                       dataNo = "暂无数据"
+               }else{
+                    this.tableData = []
+                    for(let i=0;i<res.data.records.length;i++){
+                        this.tableData.push(res.data.records[i]) 
+                        this.tableData[i].checkTime = this.tableData[i].checkTime.slice(0,10)
+                        this.tableData[i].orderCorrectTime = this.tableData[i].orderCorrectTime.slice(0,10)
+                        if(this.tableData[i].noticeState){
+                            this.tableData[i].noticeState  = "已销案"
+                        }else{
+                            this.tableData[i].noticeState  = "未销案"
+                        }
+                        if(this.tableData[i].listingLevel == 1){
+                            this.tableData[i].listingLevel  = "市级"
+                        }
+                        
+                        if(this.tableData[i].listingLevel == 2){
+                            this.tableData[i].listingLevel  = "区级"
+                        }
+                    }
+               }
+               this.loading = false
+           })
+       },
+    },
+};
+</script>
+<style lang="scss" scoped>
+@import "@/assets/scss/color.scss";
+.listingInfo {
+    position: relative;
+    .gp{
+        font-size: 16px;
+        font-family: 微软雅黑;
+        float: right;
+        margin-top: -38px;
+        color:#fff;
+        span:nth-child(2),span:nth-child(3),span:nth-child(4){
+            margin-left: 10px;
+        }
+        span>span{
+            font-size: 24px;
+            margin-left:4px;
+        }
+        >span{
+            margin-left:10px !important;
+        }
+    }
+}
+.tableTooltip {
+    height: auto;
+    width: 4.375rem;
+    scrollbar-width: none;
+    /* firefox */
+    -ms-overflow-style: none;
+    /* IE 10+ */
+    overflow-x: hidden;
+    overflow-y: auto;
+    &::-webkit-scrollbar {
+        display: none;
+        /* Chrome Safari */
+    }
+    padding:0 10px;
+    .tableTitle {
+        background: url("~@a/img/comprehensive/title.png");
+        background-size: 100% 100%;
+        font-size: 22px;
+        &>div {
+            line-height: 30px;
+            background-image: linear-gradient(#caf6ff, #56d1ed);
+            -webkit-background-clip: text;
+            color: transparent;
+            -webkit-text-fill-color: transparent;
+            font-weight: 900;
+        }
+    }
+    .tableContent {
+        font-size: 20px;
+        .el-col {
+            margin-top: 10px;
+            >span {
+                color: rgba(115, 251, 253, 1);
+            }
+        }
+    }
+    .tablePersonnel {
+        justify-content: start;
+        .el-col {
+            margin: 0.125rem 1.1%;
+            img {
+                width: 1.0625rem;
+                height: 1.25rem;
+                margin: 0 auto;
+                display: block;
+            }
+            div {
+                text-align: center;
+            }
+        }
+    }
+}
+</style>

+ 138 - 0
src/components/matterInfo/index.vue

@@ -0,0 +1,138 @@
+<template>
+    <div class="matterInfo">
+        <h4>本年度重点事项推进情况</h4>
+        <div class="ndtj j1" style="margin-top:20px;" @click="schedule()">
+            <p>专项检查</p>
+            <el-tooltip class="box-item" effect="dark" content="" placement="left"  @click="schedule()">
+                <template #content> 开始日期:2023-01-01<br>计划完成日期:2023-12-31<br>当前应完成:50%<br>当前实际完成:50%</template>
+                <el-progress :percentage="50"></el-progress>
+            </el-tooltip>
+            <div class="num">
+                计划数:1000家&nbsp;&nbsp;&nbsp;&nbsp;完成数:500家
+            </div>
+        </div>
+        <div class="ndtj j2" @click="schedule()">
+            <p>厂房仓库检查</p>
+            <el-tooltip class="box-item" effect="dark" content="" placement="left">
+                <template #content> 开始日期:2023-01-01<br>计划完成日期:2023-12-31<br>当前应完成:50%<br>当前实际完成:60%</template>
+                <el-progress :percentage="60"></el-progress>
+            </el-tooltip>
+            <div class="num">
+                计划数:500家&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;完成数:300家
+            </div>
+        </div>
+        <div class="ndtj j3" @click="schedule()">
+            <p>重点隐患</p>
+            <el-tooltip class="box-item" effect="dark" content="" placement="left">
+                <template #content> 开始日期:2023-01-01<br>计划完成日期:2023-12-31<br>当前应完成:41.67%<br>当前实际完成:41.67%</template>
+                <el-progress :percentage="41.67"></el-progress>
+            </el-tooltip>
+            <div class="num">
+                计划数:300处&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;完成数:125处
+            </div>
+        </div>
+        <div class="ndtj j4" @click="schedule(17)">
+            <p>专职站微站建设</p>
+            <el-tooltip class="box-item" effect="dark" content="" placement="left" >
+                <template #content> 开始日期:2023-01-01<br>计划完成日期:2023-12-31<br>当前应完成:50%<br>当前实际完成:33.33%</template>
+                <el-progress :percentage="33.33"></el-progress>
+            </el-tooltip>
+            <div class="num">
+                计划数:30个&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;完成数:10个
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            //闵行区基本情况
+            data:{},
+        };
+    },
+    mounted() {
+        this.getData()
+    },
+    methods: {
+        //本年度重点事项推进情况撒点
+        schedule(id){
+            if(id){
+                this.$axios.post(this.$api.water.baseGgpFacilityList,{
+                    "facilityType": [id] 
+                }).then((res) => {
+                    let arr = []
+                    if(res.data.length>0){
+                        arr = res.data
+                    }
+                    this.addMarker(arr, "enforcement-dynamic","本年度重点事项推进情况");
+                });
+            }else{
+                this.addMarker([], "enforcement-dynamic","本年度重点事项推进情况");
+            }
+        },
+        //闵行区基本情况
+        getData(){
+            this.$axios.get(this.$api.fireSite.regionInfo
+            ).then(res=>{
+               this.data = [
+                { num: res.data[0].regionArea, name: '辖区面积',color:'#7DD807',unit:'km²' },
+                { num: res.data[0].streetTownNum, name: '街镇',color:'#7DD807',unit:'个' },
+                { num: res.data[0].regionResident, name: '常住人口',color:'#FC0609',unit:'万' },
+                { num: res.data[0].hospitalNum, name: '医院',color:'#FD843A',unit:'家' },
+                { num: res.data[0].keyCompanyNum, name: '重点单位',color:'#01C3B4',unit:'家' },
+                { num: res.data[0].schoolNum, name: '学校',color:'#058DFE',unit:'个' },
+                { num: res.data[0].largeBuildNum, name: '大型综合体',color:'#7DD807',unit:'个' },   
+               ]
+            })
+        },
+    },
+};
+</script>
+<style lang="scss" scoped>
+.matterInfo {
+    .ndtj{
+        margin:28px 0 0 0%;
+        color:#fff;
+        font-size: 14px;
+        position: relative;
+        >p{
+            // margin-top:-50px;
+        }
+        .num{
+            position: absolute;
+            width:45%;
+            margin:-4px 0 0 2%;
+            display: inline-block;
+        }
+
+    }
+}
+</style>
+<style>
+.el-progress{
+    width:58%;
+    height:20px;
+    display: inline-block;
+}
+.el-progress-bar__outer{
+    height:14px !important;
+}
+.el-progress__text{
+    color:#000 !important;
+    text-align: center;
+    position: absolute;
+    top:1px;
+    left:50%;
+    z-index: 10;
+}
+.j1 .el-progress-bar__inner,.j3 .el-progress-bar__inner{
+    background: #3f8a3f;
+}
+.j2 .el-progress-bar__inner{
+    background: #5081c5;
+}
+.j4 .el-progress-bar__inner{
+    background: #b72727;
+}
+</style>

+ 4 - 4
src/components/pie/index2.vue

@@ -1,9 +1,9 @@
 <template>
       <div
         ref="echartD"
-        style="width:100%;height:100%;"
+        style="width:100%;height:110%;margin-top:3%;overflow:hidden;"
       ></div>
-  </template>
+</template>
   <script>
   export default {
     props: {
@@ -56,7 +56,7 @@
             text: data.name,
             textStyle: {
               color: '#E6EFFF',
-              fontSize: "0.175rem"
+              fontSize: "15px"
             },
             left: 'center',
             top: '47%'
@@ -72,7 +72,7 @@
                   label: {
                     show: true,
                     position: 'outer',
-                    fontSize: "0.175rem",
+                    fontSize: "14px",
                     lineHeight:18,
                     align: "bottom",
                     formatter: function (data) { //指示线对应文字,说明文字

+ 7 - 209
src/components/radar/index2.vue

@@ -1,5 +1,5 @@
 <template>
-    <div ref="echartD" style="width: 100%; height: 110%"></div>
+    <div ref="echartD" style="width: 100%; height: 115%;"></div>
 </template>
 
 <script>
@@ -20,7 +20,6 @@ export default {
         this.getData();
     },
     methods: {
-        // getData(val = this.dataMap, name = this.name) {
         getData() {
             let val = [
                 {
@@ -102,40 +101,19 @@ export default {
                     backgroundColor: "rgba(27, 79, 144, 0.6)",
                     borderColor: "rgba(27, 79, 144, 0.6)",
                     position: "bottom",
-
-                    //     formatter: function (params) {
-                    //         var res = ``;
-                    //         var res =
-                    //         res += `
-                    // <div style="font-size:15px;margin-bottom:5px;">
-                    // ${params.data.name ? params.data.name : ""}
-                    // </div>
-                    // `;
-                    //         val.map((val) => {
-                    //             res += `
-                    //     <div style="font-size:0.175rem;margin:0px 10px;">
-                    //     ${val.name ? val.name : ""}:
-                    //     ${val.value ? val.value : 0}
-                    //     ${val.mark ? val.mark : ""}
-                    //     </div>
-                    //     `;
-                    //         });
-
-                    //         return res;
-                    //     },
                     formatter: function (params) {
                         var res = ``;
-                        var res = `<div style="font-size:15px;margin:5px 5px 0 10px;">
+                        var res = `<div style="font-size:22px;margin:5px 5px 0 10px;">
                 综合得分:80
                 </div>`;
                         res += `
-                <div style="font-size:15px;margin-bottom:5px;">
+                <div style="font-size:18px;margin-bottom:5px;">
                 ${params.data.name ? params.data.name : ""}
                 </div>
                 `;
                         val.map((val) => {
                             res += `
-                    <div style="font-size:0.175rem;margin:0px 10px;">
+                    <div style="font-size:18px;margin:0px 10px;">
                     ${val.name ? val.name : ""}:
                     ${val.value ? val.value / 2 : 0}
                     ${val.mark ? val.mark : ""}
@@ -148,8 +126,8 @@ export default {
                 },
                 radar: {
                     shape: "circle",
-                    radius: ["0%", "75%"],
-                    startAngle: 90,
+                    radius: ["0%", "95%"],
+                    startAngle: 35,
                     axisLine: {
                         lineStyle: {
                             color: "rgba(18, 120, 156, 1)",
@@ -164,7 +142,7 @@ export default {
 
                     axisName: {
                         color: "#FFFFFF",
-                        fontSize: "0.175rem",
+                        fontSize: "18px",
                         fontFamily: "syhtN",
                     },
                     indicator: [  //绘制总的图形
@@ -191,186 +169,6 @@ export default {
                                 },
                             ],
                         },
-                //     {
-                //         type: "radar", //绘制总的图形不设置拐点
-                //         radarIndex: 1,
-                //         data: [
-                //             {
-                //                 value: itemArr,
-                //                 symbolSize: 7,
-                //                 lineStyle: {
-                //                     width: 2,
-                //                     color: "#29B8FF",
-                //                 },
-                //                 areaStyle: {
-                //                     normal: {
-                //                         opacity: 0.75,
-                //                         color: "#f8f7f7",
-                //                     },
-                //                 },
-                //             },
-                //         ],
-                //         itemStyle: {
-                //             normal: {
-                //                 borderWidth: 0,
-                //                 color: "#000",
-                //                 // show:false
-                //             },
-                //         },
-                //         silent: true,
-                //         z: 1, //图层是一层一层叠加,所以这个也是一级一级递增
-                //     },
-                //     {
-                //         type: "radar", //绘制第一个点
-                //         radarIndex: 1,
-                //         name: labelArr[0],
-                //         silent: true,
-                //         z: 2, //图层是一层一层叠加,所以这个也是一级一级递增
-                //         data: [
-                //             {
-                //                 value: n1,
-                //                 symbolSize: 7,
-                //             },
-                //         ],
-                //         itemStyle: {
-                //             normal: {
-                //                 borderWidth: 2,
-                //                 color: "#A66CFE",
-                //             },
-                //         },
-                //         lineStyle: {
-                //             width: 0,
-                //             labelLine: {
-                //                 show: false, //隐藏标示线
-                //             },
-                //         },
-                //     },
-                //     {
-                //         type: "radar",
-                //         radarIndex: 1, //绘制第二个点
-                //         name: labelArr[1],
-                //         silent: true,
-                //         z: 3, //图层是一层一层叠加,所以这个也是一级一级递增
-                //         data: [
-                //             {
-                //                 value: n2,
-                //                 symbolSize: 7,
-                //             },
-                //         ],
-                //         itemStyle: {
-                //             normal: {
-                //                 borderWidth: 2,
-                //                 color: "#FFA662",
-                //             },
-                //         },
-                //         lineStyle: {
-                //             width: 0,
-                //             labelLine: {
-                //                 show: false, //隐藏标示线
-                //             },
-                //         },
-                //     },
-                //     {
-                //         type: "radar", //绘制第三个点
-                //         radarIndex: 1,
-                //         name: labelArr[2],
-                //         silent: true,
-                //         z: 4, //图层是一层一层叠加,所以这个也是一级一级递增
-                //         data: [
-                //             {
-                //                 value: n3,
-                //                 symbolSize: 7,
-                //             },
-                //         ],
-                //         itemStyle: {
-                //             normal: {
-                //                 borderWidth: 2,
-                //                 color: "#5AA4FB",
-                //             },
-                //         },
-                //         lineStyle: {
-                //             width: 0,
-                //             labelLine: {
-                //                 show: false, //隐藏标示线
-                //             },
-                //         },
-                //     },
-                //     {
-                //         type: "radar", //绘制第四个点
-                //         radarIndex: 1,
-                //         name: labelArr[3],
-                //         silent: true,
-                //         z: 5, //图层是一层一层叠加,所以这个也是一级一级递增
-                //         data: [
-                //             {
-                //                 value: n4,
-                //                 symbolSize: 7,
-                //             },
-                //         ],
-                //         itemStyle: {
-                //             normal: {
-                //                 borderWidth: 2,
-                //                 color: "#FF858B",
-                //             },
-                //         },
-                //         lineStyle: {
-                //             width: 0,
-                //             labelLine: {
-                //                 show: false, //隐藏标示线
-                //             },
-                //         },
-                //     },
-                //     {
-                //         type: "radar", //绘制第五个点
-                //         radarIndex: 1,
-                //         name: labelArr[4],
-                //         silent: true,
-                //         z: 6, //图层是一层一层叠加,所以这个也是一级一级递增
-                //         data: [
-                //             {
-                //                 value: n5,
-                //                 symbolSize: 7,
-                //             },
-                //         ],
-                //         itemStyle: {
-                //             normal: {
-                //                 borderWidth: 2,
-                //                 color: "#7AF16F",
-                //             },
-                //         },
-                //         lineStyle: {
-                //             width: 0,
-                //             labelLine: {
-                //                 show: false, //隐藏标示线
-                //             },
-                //         },
-                //     },
-                //     {
-                //                 type: 'radar', //这个图层是为了盖住圆心,如果去掉,圆心的颜色为最后一个图层的颜色(不信就自己试试)
-                //                 radarIndex: 1,
-                //                 name: '',
-                //                 silent: true,
-                //                 z: 8, //图层是一层一层叠加,所以这个也是一级一级递增
-                //                 data: [
-                //                         {
-                //                         value: n6,
-                //                         symbolSize: 7,
-                //                         }
-                //                 ],
-                //                 itemStyle: {
-                //                         normal: {
-                //                         borderWidth: 2,
-                //                         color: '#f8f7f7'
-                //                         }
-                //                 },
-                //                 lineStyle: {
-                //                         width: 0,
-                //                         labelLine: {
-                //                         show: false   //隐藏标示线
-                //                         }
-                //                 },
-                                
-                //                 },
                 ],
             },true);
           

+ 103 - 0
src/components/riskInfo/index.vue

@@ -0,0 +1,103 @@
+<template>
+    <div class="riskInfo">
+        <h4>街镇消防风险评估情况</h4>
+        <div class="box">
+            <category ref="category" :dataMap="data" color="rgba(208, 194, 74, 1)" :borderRadius="[0, 0, 0, 0]"></category>
+        </div>
+    </div>
+</template>
+<script>
+import category from "@c/category/index3";
+export default {
+    components: { category },
+    data() {
+        return {
+            //街镇消防风险评估情况
+            data:[
+                {
+                    streetTown: "江川路街道",
+                    value: 75,
+                    value2: "一般风险",
+                },
+                {
+                    streetTown: "新虹街道",
+                    value: 95,
+                    value2: "低风险",
+                },
+                {
+                    streetTown: "古美路街道",
+                    value: 72,
+                    value2: "一般风险",
+                },
+                {
+                    streetTown: "浦锦街道",
+                    value: 75,
+                    value2: "一般风险",
+                },
+                {
+                    streetTown: "浦江镇",
+                    value: 96,
+                    value2: "低风险",
+                },
+                {
+                    streetTown: "吴泾镇",
+                    value: 96,
+                    value2: "低风险",
+                },
+                {
+                    streetTown: "马桥镇",
+                    value: 71,
+                    value2: "一般风险",
+                },
+                {
+                    streetTown: "颛桥镇",
+                    value: 61,
+                    value2: "较高风险",
+                },
+                {
+                    streetTown: "莘庄镇",
+                    value: 42,
+                    value2: "高风险",
+                },
+                {
+                    streetTown: "梅陇镇",
+                    value: 64,
+                    value2: "较高风险",
+                },
+                {
+                    streetTown: "七宝镇",
+                    value: 62,
+                    value2: "较高风险",
+                },
+                {
+                    streetTown: "虹桥镇",
+                    value: 76,
+                    value2: "一般风险",
+                },
+                {
+                    streetTown: "华漕镇",
+                    value: 75,
+                    value2: "一般风险",
+                },
+                {
+                    streetTown: "莘庄工业区",
+                    value: 76,
+                    value2: "一般风险",
+                },
+            ],
+        };
+    },
+    mounted() {
+    },
+    methods: {
+    },
+};
+</script>
+<style lang="scss" scoped>
+.riskInfo {
+    position: relative;
+    .box {
+        height: 90%;
+    }
+}
+</style>

+ 219 - 0
src/components/videoInfo/index.vue

@@ -0,0 +1,219 @@
+<template>
+    <div class="videoInfo">
+        <h4>执法记录仪</h4>
+        <el-row class="box" >
+            <div class="list">
+                <el-select
+                    v-model="zfjly1"
+                    placeholder="请选择执法记录仪"
+                    class="videoSelect"
+                >
+                    <el-option
+                        v-for="item in selectVideoData"
+                        :key="item.url"
+                        :label="item.name"
+                        :value="item.url"
+                    >
+                    </el-option>
+                </el-select>
+                <img src="@/assets/img/home/video.jpg" alt="" v-if="!zfjly1">
+                
+                <iframe
+                    class="hlsVideo monitor-height"
+                    :src="zfjly1"
+                    allowfullscreen="true"
+                ></iframe>
+            </div>
+            <div class="list" :offset="2">
+                <el-select
+                    v-model="zfjly2"
+                    placeholder="请选择执法记录仪"
+                    class="videoSelect"
+                >
+                    <el-option
+                        v-for="item in selectVideoData"
+                        :key="item.url"
+                        :label="item.name"
+                        :value="item.url"
+                    >
+                    </el-option>
+                </el-select>
+                    <img src="@/assets/img/home/video.jpg" alt="" v-if="!zfjly2">
+                <iframe
+                    class="hlsVideo monitor-height"
+                    :src="zfjly2"
+                    allowfullscreen="true"
+                ></iframe>
+            </div>
+        </el-row>
+    </div>
+</template>
+<script>
+import axios from "axios";
+export default {
+    data() {
+        return {
+            selectVideoData:[],//视频选择数据
+            zfjly1:"",//执法记录仪1
+            zfjly2:"",//执法记录仪2
+            //街镇物联设备情况
+            data: {
+                total:0,
+                data:[],
+                data2:[
+                    {
+                        name: "消防给水及消火栓系统",
+                        value: 1083,
+                        lineCount: 895,
+                        lineRate: 0.826,
+                    
+                    },
+                    {
+                        name: "防烟排烟系统",
+                        value: 4110,
+                        lineCount: 261,
+                        lineRate: 0.064,
+                    
+                    },
+                    {
+                        name: "火灾报警系统",
+                        value: 9403,
+                        lineCount: 226,
+                        lineRate: 0.024,
+                        
+                    },
+                    {
+                        name: "自动喷水灭火系统",
+                        value: 6737,
+                        lineCount: 6411,
+                        lineRate: 0.952,
+                        
+                    },
+                ]
+            }, //各街镇物联动态-数据存储
+        };
+    },
+    created() {
+        this.getData()
+    },
+    methods: {
+        /**
+         * 在线视频
+         */
+        getData(id) {
+            axios({
+                headers: {
+                    "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/tysbs/device/ext?apikey=643e6591-a489-4648-ba35-c15c39c64022&f_in_civilCode=31021019,31020414&pageNo=0&pageSize=10000",
+            }).then((res) => {
+                let arr = [];
+                let zfjly = [];
+                if (res.data.length > 0) {
+                    let data = res.data;
+                    for (let i = 0; i < data.length; i++) {
+                        if (data[i].otherNames?.status_name == "在线") {
+                            var num = {
+                                id: data[i].id,
+                                name: data[i]?.deviceName,
+                                groupName: data[i]?.groupName,
+                                gisX: data[i]?.longitude
+                                    ? data[i]?.longitude
+                                    : 0,
+                                gisY: data[i]?.latitude ? data[i]?.latitude : 0,
+                                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,
+                            };
+                            arr.push(num);
+                        }
+                    }
+                    for (let i = 0; i < arr.length; i++) {
+                        if (
+                            arr[i].name.indexOf("单兵") == "-1" &&
+                            arr[i].name.indexOf("无人机") == "-1" &&
+                            arr[i].name.indexOf("布控球") == "-1"
+                        ) {
+                            zfjly.push(arr[i]);
+                        }
+                    }
+                    this.selectVideoData = zfjly;
+                    console.log(234, this.selectVideoData)
+                    if (arr.length > 0 && id) {
+                        // this.addMarker(arr, "enforcement-dynamic","执法记录仪");
+                    }
+                }
+            });
+
+            // 测试
+
+            // let arr =
+            // [{
+            //       id: "5708ad6382517cd68ea2d2f8cd01bb58",
+            //       name: "上海闵行闵行消防站4G布控球",
+            //       groupName: "009闵行支队",
+            //       gisX: 121.386128,
+            //       gisY:31.139253 ,
+            //       type:"video",
+            //       gbid:31.01411,
+            //       type:"执法记录仪",
+            //       url:"http://10.107.31.215:50080/dispatch-ms/#/conference/single_url?ipc_live=1&key=643e6591-a489-4648-ba35-c15c39c64022&gbids=31000000001320003271&nmediaid=121"
+            //   }
+            // ]
+            // if(id){
+            //   this.addMarker(arr, "enforcement-dynamic");
+            // }
+        },
+    },
+};
+</script>
+<style lang="scss" scoped>
+.videoInfo {
+    .box {
+        // height: calc(100% - 0.6875rem);
+        margin: 20px 0;
+        > .list {
+            border: 1px solid #3a7e8e;
+            position: relative;
+            width:48%;
+            box-sizing: border-box;
+            .videoSelect {
+                position: absolute;
+                width: 100%;
+            }
+            img{
+                width:100%;
+                height:270px;
+                overflow: hidden;
+            }
+        }
+        .list:nth-child(2){
+                margin-left:4%;
+        }
+        iframe {
+            border: none;
+            width:100%;
+        }
+    }
+}
+</style>
+<style lang="scss">
+
+.el-input--suffix{
+    padding:0 !important;
+    font-size: 12px !important;
+    .el-input__inner{
+        font-size: 22px !important;
+    }
+    ::placeholder{
+        font-size: 22px !important;
+    }
+    .el-icon-arrow-up{
+        height:2px;
+    }
+}
+</style>

+ 2 - 2
src/components/xinZhengInfo/index.vue

@@ -101,8 +101,8 @@ export default {
         }
     }
     .xinZhengRightBox {
-        width: 40%;
-        right: 20px;
+        width: 48%;
+        right: 0px;
         top: 62px;
         position: absolute;
         > .el-col {

+ 171 - 0
src/components/xunJianInfo/index.vue

@@ -0,0 +1,171 @@
+<template>
+    <div class="xunJianInfo">
+        <h4>企业自主巡检情况
+            <el-tooltip placement="right" popper-class='infoTooltip'>
+                <template #content>
+                    <br />
+                    数据说明
+                    <br />
+                    <br />巡检计划:时间段内共创建巡检计划数 <br />巡检率:时间段内已巡检点位数/应巡检点位数 <br />巡检数:时间段内应巡检点位数 <br />漏检数:时间段内超时未巡检点位数
+                    <br />
+                    <br />
+                </template>
+                <img src="@/assets/img/why.png" alt="hah" class="why" />
+            </el-tooltip>
+        </h4>
+        <div class="tableTab">
+            <el-button size="mini" @click="searchTabs('data1')" :class="{ btnClick: tabsArea === 'data1' }"> 今日 </el-button>
+            <el-button size="mini" @click="searchTabs('data2')" :class="{ btnClick: tabsArea === 'data2' }"> 近七日 </el-button>
+            <el-button size="mini" @click="searchTabs('data3')" :class="{ btnClick: tabsArea === 'data3' }"> 近一月 </el-button>
+        </div>
+        <el-row class="box">
+            <el-col class="contentOne" :span="12" v-for="(score, index) in patrolInspectionList" :key="index">
+                <el-row style="padding-left: 5%; flex-flow: nowrap" @click="unitInspection(index)">
+                    <img style="width: 100px; height: 100px; padding: 20px; margin: auto 0" :src="require('@/assets/img/self-management/' + (index + 5) + '.png')" alt="" />
+                    <div style="line-height: 40px; margin: auto 0">
+                        <span :style="{ color: 'rgba(115, 251, 253, 1)', fontWeight: 600, fontSize: '18px', display: 'block',}">
+                            <CountTo :startVal='0' :endVal=' score? score.value:0' :duration='5000'> {{   score.value || 0 }}</CountTo>
+                        </span>
+                        <span style="font-size: 14px; color: #fff">
+                            {{ score.name }}
+                        </span>
+                    </div>
+                </el-row>
+            </el-col>
+        </el-row>
+    </div>
+</template>
+<script>
+import CountTo from "@/components/count-to/index.js";
+export default {
+    components: { CountTo },
+    data() {
+        return {
+            tabsArea: "data1", //企业自主巡检情况-(今日、近七日、近一月)切换
+            patrolInspectionList: [
+                {
+                    name: "今日巡检情况", //名称
+                    value: 0, //值
+                    mark: "", //标识符
+                },
+                {
+                    name: "巡检率", //名称
+                    value: 0, //值
+                    mark: "%", //标识符
+                },
+                {
+                    name: "合格数", //名称
+                    value: 0, //值
+                    mark: "", //标识符
+                },
+                {
+                    name: "漏检数", //名称
+                    value: 0, //值
+                    mark: "", //标识符
+                },
+            ], //企业自主巡检情况-数据存储
+        };
+    },
+    created() {
+        this.getData();
+    },
+    methods: {
+        getData(){
+            /**
+             * @企业自主巡检情况
+             * @api请求
+             */
+            this.$axios.get(
+                this.$api.selfManagement.enterpriseAutonomy +
+                    "?" +
+                    this.$qs.stringify({
+                        moduleType: "patrolInspection",
+                        dataType: this.tabsArea,
+                        // streetTown: this.stroes.$state.streetTown, //街镇搁置(1125监理关闭后期放开)
+                    })
+            ).then((res) => {
+                if (res.data.length > 0) {
+                    if (this.tabsArea == "data1") {
+                        this.patrolInspectionList[0].value = res.data[0].value;
+                        this.patrolInspectionList[0].name = res.data[0].name;
+                        this.patrolInspectionList[1].value = res.data[1].value;
+                        this.patrolInspectionList[1].name = res.data[1].name;
+                        this.patrolInspectionList[2].value = res.data[2].value;
+                        this.patrolInspectionList[2].name = res.data[2].name;
+                        this.patrolInspectionList[3].value = res.data[3].value;
+                        this.patrolInspectionList[3].name = res.data[3].name;
+                    }
+                    if (this.tabsArea == "data2") {
+                        this.patrolInspectionList[0].value = res.data[0].value;
+                        this.patrolInspectionList[0].name = res.data[0].name;
+                        this.patrolInspectionList[1].value = res.data[1].value;
+                        this.patrolInspectionList[1].name = res.data[1].name;
+                        this.patrolInspectionList[2].value = res.data[2].value;
+                        this.patrolInspectionList[2].name = res.data[2].name;
+                        this.patrolInspectionList[3].value = res.data[3].value;
+                        this.patrolInspectionList[3].name = res.data[3].name;
+                    }
+                    if (this.tabsArea == "data3") {
+                        this.patrolInspectionList[0].value = res.data[0].value;
+                        this.patrolInspectionList[0].name = res.data[0].name;
+                        this.patrolInspectionList[1].value = res.data[1].value;
+                        this.patrolInspectionList[1].name = res.data[1].name;
+                        this.patrolInspectionList[2].value = res.data[2].value;
+                        this.patrolInspectionList[2].name = res.data[2].name;
+                        this.patrolInspectionList[3].value = res.data[3].value;
+                        this.patrolInspectionList[3].name = res.data[3].name;
+                    }
+                }
+            })
+
+            
+        },
+        /**
+         * @历史案件
+         * @企业自主巡检情况
+         * @物联网处置情况
+         * @tabs切换
+         * @param {传入值Bool} type
+         * @param {传入值Sting} val
+         */
+        searchTabs(val) {
+            if (val === this.tabsArea) return;
+            this.tabsArea = val;
+            this.getData(); //企业自主巡检情况接口请求
+        },
+    },
+};
+</script>
+<style lang="scss" scoped>
+@import "@/assets/scss/color.scss";
+.xunJianInfo {
+    position: relative;
+    .tableTab{
+        position: absolute;
+        width:40%;
+        top:-4px;
+        right:0;
+        text-align: right;
+        button{
+            font-size: 16px;
+            width:100px;
+            height:40px;
+            margin-left: 10px!important;
+        }
+        .active{
+            border-bottom:2px solid #73fbfd;
+        }
+    }
+    .box {
+        margin-top:1.5%;
+        .contentOne {
+            margin: auto;
+        }
+    }
+}
+</style>
+<style>
+    .infoTooltip{
+        font-size: 18px !important;
+    }
+</style>

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

@@ -8,7 +8,7 @@ const useStore = defineStore("public", {
         rightBtn: true, //右侧收起按钮
         mapBool: 2, //1.高德 2.测绘院
         mapSpotId: "", //地图撒点id
-        streetTown: "111", //街镇信息存储
+        streetTown: "", //街镇信息存储
         streetTownList: [
             { value: "", label: "全区" },
             { value: "华漕镇", label: "华漕镇" },

+ 4 - 4
src/views/head.vue

@@ -61,10 +61,10 @@ const btnList = ref([])//按钮列表
 
 /*----------------------------------变量赋值-----------------------------------*/
 btnList.value = [
-    { name: "城市消防体征", router: "/fire-signs" },
-    { name: "企业自主管理", router: "/self-management" },
-    { name: "消防执法动态", router: "/enforcement-dynamic" },
-    { name: "大型安保预案", router: "/security-plan" },
+    // { name: "城市消防体征", router: "/fire-signs" },
+    // { name: "企业自主管理", router: "/self-management" },
+    // { name: "消防执法动态", router: "/enforcement-dynamic" },
+    // { name: "大型安保预案", router: "/security-plan" },
 ] //按钮列表
 
 /*----------------------------------方法声明-----------------------------------*/

+ 252 - 20
src/views/index.vue

@@ -1,10 +1,10 @@
 <template>
     <div class="contentBox">
-        <div class="leftBox">
+        <div class="leftBox" v-if="leftBtn">
             <div class="box">
                 <basicInfo />
-                <basicInfo />
-                <basicInfo />
+                <complaintInfo />
+                <matterInfo />
             </div>
             <div class="box">
                 <zhiFaInfo />
@@ -12,54 +12,253 @@
                 <xinZhengInfo />
             </div>
         </div>
-        <!-- <div class="rightBox">
+        <div class="centerBox" style="width: 100%">
+            <div :class="leftBtn ? 'leftBtn btnW' : 'leftBtn0 btnW'" @click="leftBtnClick()">
+                <img src="@/assets/img/svg/left.svg" alt="" class="img" />
+            </div>
+            <!-- <el-col class="centerContent" id="mapF"></el-col> -->
+
+            <div :class="rightBtn ? 'rightBtn btnW' : 'rightBtn0 btnW'" @click="rightBtnClick()">
+                <img src="@/assets/img/svg/left.svg" alt="" class="img" />
+            </div>
+
+            <div class="mapTips_type">
+                <img src="@/assets/img/svg/danweitop.svg" alt="" class="img" />
+                <div class="content">
+                    <p>街镇筛选</p>
+                    <el-select class="mtb-12" v-model="stroes.$state.streetTown" placeholder="请选择街镇" @change="checkStreetTown">
+                        <el-option v-for="item in stroes.$state.streetTownList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
+                    </el-select>
+                    <p>类型筛选</p>
+                    <div class="selectType">
+                        <div :class="
+                                checkedArray.checkedData[0] == 0
+                                    ? ''
+                                    : checkedArray.checkedData[0] == 1
+                                    ? 'checkTypeSelect'
+                                    : checkedArray.checkedData[0] == 2
+                                    ? 'checkTypeSelect'
+                                    : checkedArray.checkedData[0] == 3
+                                    ? 'checkTypeSelect'
+                                    : checkedArray.checkedData[0] == 9
+                                    ? 'checkTypeSelect'
+                                    : checkedArray.checkedData[0] == 10
+                                    ? 'checkTypeSelect'
+                                    : ' '"
+                        >
+                            <img
+                                :src="
+                                    checkedSelectValue == '0'
+                                        ? stores.sadianIcon.bwg
+                                        : checkedSelectValue == '1'
+                                        ? stores.sadianIcon.zddw
+                                        : checkedSelectValue == '2'
+                                        ? stores.sadianIcon.ybdw
+                                        : checkedSelectValue == '3'
+                                        ? stores.sadianIcon.jxcs
+                                        : checkedSelectValue == '9'
+                                        ? stores.sadianIcon.qtdw
+                                        : checkedSelectValue == '10'
+                                        ? stores.sadianIcon.dxzht
+                                        : stores.sadianIcon.bwg
+                                "
+                                alt=""
+                            />
+                            <span>{{ checkedSelectLabel }}</span>
+                            <el-select
+                                v-model="checkedSelectValue"
+                                placeholder="单位信息"
+                                class="selectTypeIcon"
+                                style="display: inline-block; width: 100%; position: absolute; right: 0"
+                                @change="selectArray"
+                            >
+                                <el-option v-for="item in checkedSelectArray" :key="item.value" :label="item.label" :value="item.value"> </el-option>
+                            </el-select>
+                        </div>
+                        <div @click="checkType('执法记录仪')" :class=" checked == '执法记录仪' ? 'checkTypeSelect' : ''">
+                            <img :src="stores.sadianIcon.zfjly" alt="" />
+                            <span>执法记录仪</span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="rightBox" v-if="rightBtn">
             <div class="box" style="margin-left:5px;">
-                <basicInfo />
-                <basicInfo />
-                <basicInfo />
+                <riskInfo />
+                <xunJianInfo />
+                <listingInfo />
             </div>
             <div class="box">
-                <basicInfo />
-                <basicInfo />
-                <basicInfo />
+                <fireInfo />
+                <IOTInfo />
+                <videoInfo />
             </div>
-        </div> -->
+        </div>
     </div>
 </template>
 <script>
-
 import basicInfo from "@c/basicInfo/index"; //基础信息
-import zhiFaInfo from "@c/zhiFaInfo/index"; //执法情况
-
+import complaintInfo from "@c/complaintInfo/index"; //投诉类型排名
+import matterInfo from "@c/matterInfo/index"; //本年度重点事项推进情况
 
+import zhiFaInfo from "@c/zhiFaInfo/index"; //执法情况
 import personnelInfo from "@c/personnelInfo/index"; //人员统计
 import xinZhengInfo from "@c/xinZhengInfo/index"; //行政许可
 
-// import map from "@c/mixins/map-data1";
+
+import riskInfo from "@c/riskInfo/index"; //街镇消防风险评估情况
+import xunJianInfo from "@c/xunJianInfo/index"; //企业自主巡检情况
+import listingInfo from "@c/listingInfo/index"; //挂牌督改情况
+
+import fireInfo from "@c/fireInfo/index"; //消防情况
+import IOTInfo from "@c/IOTInfo/index"; //街镇物联设备情况
+import videoInfo from "@c/videoInfo/index"; //执法记录仪情况
+
+import linstener from "@c/mixins/linstener";
+import map from "@c/mixins/map-data1";
 export default {
     components: { 
-        basicInfo, zhiFaInfo,
-        personnelInfo,xinZhengInfo
+        basicInfo, complaintInfo, matterInfo,
+        zhiFaInfo, personnelInfo, xinZhengInfo,
+        riskInfo, xunJianInfo, listingInfo,
+        fireInfo, IOTInfo, videoInfo
     },
-    // mixins: [linstener, map],
+    mixins: [linstener, map],
     data() {
         return {
-           
+            leftBtn:true,
+            rightBtn:true,
+            checkedArray: {
+                checkedData: [1],
+            }, //类型筛选
+            checkedSelectValue: "7",
+            checkedSelectLabel: "单位信息",
+            checkedSelectArray: [
+                { value: 0, label: "单位信息" },
+                { value: 1, label: "重点单位" },
+                { value: 2, label: "一般单位" },
+                { value: 3, label: "九小场所" },
+                { value: 10, label: "大型综合体" },
+            ],
         };
     },
     created() {
 
     },
     mounted() {
-
+        this.initMap();
     },
     methods: {
+        //地图区域操作
+        leftBtnClick() {
+            this.leftBtn = !this.leftBtn;
+        },
+        rightBtnClick() {
+            this.rightBtn = !this.rightBtn
+        },
+        /**
+         * 撒点街镇选择测绘院
+         */
+        checkStreetTown() {
+            let data = undefined;
+            for (let i = 0; i < this.stroes.$state.mhjz.length; i++) {
+                if (
+                    this.stroes.$state.streetTown == this.stroes.$state.mhjz[i].streetTown
+                ) {
+                    data = this.stroes.$state.mhjz[i];
+                    break;
+                }
+            }
+            if (!this.stroes.$state.streetTown) {
+                data = this.stroes.$state.mhjz[0];
+            }
+            this.streetTownSwitch(data);
+            this.sadian();
+        },
+        async sadian(id,code) {
+            let arr = [];
+            let typeAll = this.checkedSelectArray;
+            let type = null;
+            for (let i = 0; i < typeAll.length; i++) {
+                if (id == typeAll[i].value) {
+                    type = typeAll[i].label;
+                }
+            }
+            if (id == 0) {
+                this.addMarker([], "self-management");
+            }
+            if (id == 1 || id == 2 || id == 3 || id == 9) {
+                await this.$axios
+                    .get(
+                        this.$api.selfManagement.mapList +
+                            "?" +
+                            this.$qs.stringify({
+                                streetTown: this.stroes.$state.streetTown,
+                                companyType: id,
+                            })
+                    )
+                    .then((res) => {
+                        if (res.data.length > 0) {
+                            //点分布
+                            let data = res.data;
+                            for (let i = 0; i < data.length; i++) {
+                                arr[i] = {
+                                    id: data[i].id ? data[i].id : null,
+                                    type: data[i].companyTypeName ? data[i].companyTypeName : null,
+                                    address: data[i].address ? data[i].address : null,
+                                    companyName: data[i].companyName ? data[i].companyName : null,
+                                    streetTown: data[i].streetTown ? data[i].streetTown : null,
+                                    gisX: data[i].longitude,
+                                    gisY: data[i].latitude,
+                                    companyId: data[i].companyId,
+                                    linkPhone: data[i].linkPhone ? data[i].linkPhone : null,
+                                };
+                            }
+                            setTimeout(() => {
+                                this.addMarker(arr.splice(0, 500), "self-management", type);
+                            }, 500);
+                        } else {
+                            this.addMarker([], "self-management", type);
+                        }
+                    });
+           
+            } else if (id == 10) {
+                this.$axios
+                    .post(this.$api.water.baseGgpFacilityList, {
+                        facilityType: [2, 3],
+                    })
+                    .then((res) => {
+                        // 2 五万
+                        // 3 三至五万
+                        for (let i = 0; i < res.data.length; i++) {
+                            arr[i] = {};
+                            arr[i].address = res.data[i].address;
+                            arr[i].facilityName = res.data[i].facilityName;
+                            arr[i].extendData = res.data[i].extendData;
+                            arr[i].latitude = res.data[i].latitude;
+                            arr[i].longitude = res.data[i].longitude;
+                            arr[i].type = "大型综合体";
+                            if (res.data[i].id == 48) {
+                                //龙湖天街试点
+                                arr[i].facilityType = "lhtj";
+                            } else {
+                                arr[i].facilityType = res.data[i].facilityType;
+                            }
+                        }
+                        this.addMarker(arr, "self-management", "大型综合体");
+                    });
+                 } else {
+            this.addMarker([], "self-management", "");
+        }
+        },
 
     },
 
 };
 </script>
 <style lang="scss" scoped>
+@import "@/assets/scss/color.scss";
 .contentBox {
     .box {
         width:calc(50% - 15px);
@@ -74,5 +273,38 @@ export default {
     .box:nth-child(2){
         margin-left:25px !important;
     }
+    .centerBox{
+        .mapTips_type {
+            width: 10%;
+            height: auto;
+            background: $background-color-theme4;
+            position: fixed;
+            bottom: 1.48vh;
+            right: 7.2rem;
+            color: #fff !important;
+            font-size: 0.18rem;
+            p {
+                color: #019fb7;
+            }
+            .content {
+                padding: 1.388vh 0.25rem;
+                color: #fff !important;
+            }
+            .img {
+                width: 100%;
+                height: 0.37vh;
+                margin-top: -0.37vh;
+                position: absolute;
+            }
+        }
+    
+    }
 }
+</style>
+<style lang="scss">
+.el-input__suffix{
+    top:5px !important;
+}
+
+
 </style>

+ 0 - 2
src/views/self-management.vue

@@ -2298,9 +2298,7 @@ export default {
          * 物联网撒点
          */
          diskSd(id){
-           
             this.sadian(123,id)
-            
          },
         /**
          * d单位巡检事件