From 0bfdaad01fdcdeef567b59a49f7715a7ac7f0d51 Mon Sep 17 00:00:00 2001
From: zhengpz <1838927346@qq.com>
Date: Fri, 17 Sep 2021 00:57:21 +0800
Subject: [PATCH] 对接口

---
 src/api/securityUnitOperation/securityUnitOperation.js            |   51 ++
 src/views/home/index.scss                                         |    4 
 src/views/statisticalQueryManagement/businessStatistics.vue       |  147 +++--
 src/assets/img/company.png                                        |    0 
 src/views/home/index.vue                                          |  456 ++++++++++++-------
 src/api/index/index.js                                            |   68 ++
 src/views/home/indexEchart.js                                     |  157 +++---
 src/views/statisticalQueryManagement/securityGuardStatistics.vue  |    4 
 src/views/statisticalQueryManagement/businessStatisticsDetail.vue |   69 +-
 src/views/securityUnitOperation/economicAnalysis.vue              |  187 ++++++-
 src/api/statisticalQueryManagement/statisticalQueryManagement.js  |  100 ++--
 src/views/securityUnitOperation/operationAnalysis.vue             |  130 ++++-
 12 files changed, 903 insertions(+), 470 deletions(-)

diff --git a/src/api/index/index.js b/src/api/index/index.js
index e8b9c13..162ebb1 100644
--- a/src/api/index/index.js
+++ b/src/api/index/index.js
@@ -150,3 +150,71 @@
     method: "get"
   });
 };
+
+// 地图-保安公司列表接口
+export const getSecurityUnitPositionInfo = () => {
+  return request({
+    url: "/api/information/getSecurityUnitPositionInfo",
+    method: "get"
+  });
+};
+
+// 业务对象统计---保安公司模块表格接口
+export const getSecurityUnitInfoPage = params => {
+  return request({
+    url: "/api/information/getSecurityUnitInfoPage",
+    method: "get",
+    params: params
+  });
+};
+
+// 业务对象统计---保安员持证模块表格接口
+export const getSecurityUnitHoldInfoPage = params => {
+  return request({
+    url: "/api/information/getSecurityUnitHoldInfoPage",
+    method: "get",
+    params: params
+  });
+};
+
+// 考试通过率低于50%的保安公司表格接口
+export const getSecurityUnitExamLessPage = params => {
+  return request({
+    url: "/api/information/getSecurityUnitExamLessPage?proportion=50",
+    method: "get",
+    params: params
+  });
+};
+
+// 持证率低于50%的保安公司表格接口
+export const getSecurityUnitHoldLessPage = params => {
+  return request({
+    url: "/api/information/getSecurityUnitHoldLessPage?proportion=50",
+    method: "get",
+    params: params
+  });
+};
+// 社保缴纳率低于50%的保安公司表格接口
+export const getSecurityUnitSoilLessPage = params => {
+  return request({
+    url: "/api/information/getSecurityUnitSoilLessPage?proportion=50",
+    method: "get",
+    params: params
+  });
+};
+// 派遣率低于50%的保安公司表格接口
+export const getSecurityUnitDispatcherLessPage = params => {
+  return request({
+    url: "/api/information/getSecurityUnitDispatcherLessPage?proportion=50",
+    method: "get",
+    params: params
+  });
+};
+// 业务对象统计---预警信息模块表格接口
+export const getSubstationWarnInfoPage = params => {
+  return request({
+    url: "/api/information/getSubstationWarnInfoPage",
+    method: "get",
+    params: params
+  });
+};
\ No newline at end of file
diff --git a/src/api/securityUnitOperation/securityUnitOperation.js b/src/api/securityUnitOperation/securityUnitOperation.js
index 1d62e80..51e7669 100644
--- a/src/api/securityUnitOperation/securityUnitOperation.js
+++ b/src/api/securityUnitOperation/securityUnitOperation.js
@@ -82,4 +82,55 @@
         method: "post",
         params: params
     });
+};
+// 公司服务对象小于2家的预警信息
+export const getSecurityUnitServerLessPage = (params) => {
+    return request({
+        url: "/api/information/getSecurityUnitServerLessPage",
+        method: "get",
+        params: params
+    });
+};
+
+// 派遣率小于50%的公司预警信息
+export const getSecurityUnitDispatcherLessPage = (params) => {
+    return request({
+        url: "/api/information/getSecurityUnitDispatcherLessPage?proportion=50",
+        method: "get",
+        params: params
+    });
+};
+// 持证率小于50%的公司预警信息
+export const getSecurityUnitHoldLessPage = (params) => {
+    return request({
+        url: "/api/information/getSecurityUnitHoldLessPage?proportion=50",
+        method: "get",
+        params: params
+    });
+};
+
+// 经济-社保缴纳率小于90%
+export const getSecurityUnitSoilLessPage = (params) => {
+    return request({
+        url: "/api/information/getSecurityUnitSoilLessPage?proportion=90",
+        method: "get",
+        params: params
+    });
+};
+// 经济-保险缴纳小于90%的公司预警信息
+export const getSecurityUnitInsuranceLessPage = (params) => {
+    return request({
+        url: "/api/information/getSecurityUnitInsuranceLessPage?proportion=90",
+        method: "get",
+        params: params
+    });
+};
+
+// 经济-服务合同小于2份的公司预警信息
+export const getSecurityUnitServerLessPage1 = (params) => {
+    return request({
+        url: "/api/information/getSecurityUnitServerLessPage",
+        method: "get",
+        params: params
+    });
 };
\ No newline at end of file
diff --git a/src/api/statisticalQueryManagement/statisticalQueryManagement.js b/src/api/statisticalQueryManagement/statisticalQueryManagement.js
index f21e114..db66c73 100644
--- a/src/api/statisticalQueryManagement/statisticalQueryManagement.js
+++ b/src/api/statisticalQueryManagement/statisticalQueryManagement.js
@@ -1,63 +1,71 @@
 import request from "@/router/axios";
-export const selectLi = (params) => {
-    return request({
-        url: "/api/information/selectLi",
-        method: "post",
-        params: params
-    });
+export const selectLi = params => {
+  return request({
+    url: "/api/information/selectLi",
+    method: "post",
+    params: params
+  });
 };
-export const selectYw = (params) => {
-    return request({
-        url: "/api/information/selectYw",
-        method: "post",
-        params: params
-    });
+export const selectYw = params => {
+  return request({
+    url: "/api/information/selectYw",
+    method: "post",
+    params: params
+  });
 };
-export const selectUIn = (params) => {
-    return request({
-        url: "/api/information/selectUIn",
-        method: "post",
-        params: params
-    });
+export const selectUIn = params => {
+  return request({
+    url: "/api/information/selectUIn",
+    method: "post",
+    params: params
+  });
 };
-export const selectDis = (params) => {
-    return request({
-        url: "/api/information/selectDis",
-        method: "post",
-        params: params
-    });
+export const selectDis = params => {
+  return request({
+    url: "/api/information/selectDis",
+    method: "post",
+    params: params
+  });
 };
 // 服务单位下拉接口
-export const selectFw = (params) => {
-    return request({
-        url: "/api/information/selectFw",
-        method: "post",
-        params: params
-    });
+export const selectFw = params => {
+  return request({
+    url: "/api/information/selectFw",
+    method: "post",
+    params: params
+  });
 };
 // 查保安员明细
-export const pageSecurity = (params) => {
-    return request({
-        url: "/api/blade-user/page-security",
-        method: "get",
-        params: params
-    });
+export const pageSecurity = params => {
+  return request({
+    url: "/api/blade-user/page-security",
+    method: "get",
+    params: params
+  });
 };
 
 // 服务对象明细
-export const fwList = (params) => {
-    return request({
-        url: "/api/dispatcherUnit/list",
-        method: "get",
-        params: params
-    });
+export const fwList = params => {
+  return request({
+    url: "/api/dispatcherUnit/list",
+    method: "get",
+    params: params
+  });
 };
 
 // 单位类型
 export const dictionaryList = () => {
-    return request({
-        url: "/api/blade-system/dict-biz/dictionary?code=stats",
-        method: "get",
-    });
+  return request({
+    url: "/api/blade-system/dict-biz/dictionary?code=stats",
+    method: "get"
+  });
 };
 
+// 服务对象数量
+export const dispatcherUnit = params => {
+  return request({
+    url: "/api/dispatcherUnit/page?isExpire=1",
+    method: "get",
+    params: params
+  });
+};
diff --git a/src/assets/img/company.png b/src/assets/img/company.png
new file mode 100644
index 0000000..ff429ab
--- /dev/null
+++ b/src/assets/img/company.png
Binary files differ
diff --git a/src/views/home/index.scss b/src/views/home/index.scss
index aa3c0ca..1467471 100644
--- a/src/views/home/index.scss
+++ b/src/views/home/index.scss
@@ -410,7 +410,7 @@
     margin-top: 218px;
   }
   /deep/ .el-table__body-wrapper {
-    overflow: auto;
+    overflow-y: auto;
     height: calc(100% - 50px);
   }
 }
@@ -467,7 +467,7 @@
     width: 128px;
     text-align: center;
     // margin: 3px;
-    line-height: 35px;
+    line-height: 31px;
     span:nth-child(1) {
       width: 100%;
       display: block;
diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index 9d13d4f..356c53a 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -93,11 +93,11 @@
               <span>{{ peoNum }}</span>
             </div>
           </div>
-          <div class="mapBtn" @click="setMapData(1)">
+          <div class="mapBtn" @click="setMapData(4)">
             <img src="../../../public/img/bajgxt/company.png" alt />
             <div class="text">
               <span>保安公司</span>
-              <span>{{ peoNum }}</span>
+              <span>{{ companyNum }}</span>
             </div>
           </div>
           <div class="mapBtn" @click="setMapData(2)">
@@ -232,6 +232,43 @@
                 :key="curTableType"
                 prop="tel"
                 label="联系电话"
+              ></el-table-column> </template
+            ><template v-if="curTableType === 4">
+              <el-table-column
+                :key="curTableType"
+                type="index"
+                label="序号"
+                width="50"
+              ></el-table-column>
+              <el-table-column
+                :key="curTableType"
+                show-overflow-tooltip
+                prop="enterprisename"
+                label="保安公司名称"
+                width="180"
+              ></el-table-column>
+              <el-table-column
+                :key="curTableType"
+                show-overflow-tooltip
+                prop="jurisdictionName"
+                label="所属辖区"
+              ></el-table-column>
+              <el-table-column
+                :key="curTableType"
+                show-overflow-tooltip
+                prop="address"
+                label="注册地址"
+              ></el-table-column>
+              <el-table-column
+                :key="curTableType"
+                show-overflow-tooltip
+                prop="contacts"
+                label="负责人"
+              ></el-table-column>
+              <el-table-column
+                :key="curTableType"
+                prop="contactscell"
+                label="联系电话"
               ></el-table-column>
             </template>
           </el-table>
@@ -344,26 +381,7 @@
                 <span>{{ rightData.punishNum }}个</span>
               </div>
             </div>
-            <!-- <div class="card-list">
-              <img src="../../../public/img/bajgxt/u4.png" />
-              <img src="../../../public/img/bajgxt/u235.png" />
-              <img src="../../../public/img/bajgxt/u1.png" />
-              <span>{{ rightData.socialSecurity }}</span>
-              <span>未缴纳社保</span>
-            </div>
-            <div class="card-list">
-              <img src="../../../public/img/bajgxt/u4.png" />
-              <img src="../../../public/img/bajgxt/u251.png" />
-              <img src="../../../public/img/bajgxt/u1.png" />
-              <span>{{ rightData.noholder }}</span>
-              <span>未持证</span>
-            </div> -->
           </div>
-          <!-- <div class="card-text"> -->
-          <!-- <span>未缴纳社保情况</span><span>902,432</span><span>起</span
-          ><span>未持证情况</span><span>22222</span><span>起</span>-->
-          <!-- </div> -->
-          <!-- <div id="right2Echart"></div> -->
         </div>
         <div class="right3">
           <div class="title-pane2">
@@ -388,26 +406,27 @@
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="enterprisename"
             label="保安公司名称"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="znum"
             label="保安总数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="cnum"
             label="考试通过人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="pnum"
             label="考试通过率"
+            :formatter="kslFormatter"
             :show-overflow-tooltip="true"
           ></el-table-column>
         </template>
@@ -415,26 +434,27 @@
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="enterprisename"
             label="保安公司名称"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="znum"
             label="保安总数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="cnum"
             label="持证人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="pnum"
             label="持证率"
+            :formatter="kslFormatter"
             :show-overflow-tooltip="true"
           ></el-table-column>
         </template>
@@ -442,26 +462,27 @@
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="enterprisename"
             label="保安公司名称"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="znum"
             label="保安总数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="cnum"
             label="缴纳社保人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="pnum"
             label="社保缴纳率"
+            :formatter="kslFormatter"
             :show-overflow-tooltip="true"
           ></el-table-column>
         </template>
@@ -469,26 +490,27 @@
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="enterprisename"
             label="保安公司名称"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="znum"
             label="保安总数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="cnum"
             label="派遣人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="pnum"
             label="派遣率"
+            :formatter="kslFormatter"
             :show-overflow-tooltip="true"
           ></el-table-column>
         </template>
@@ -496,19 +518,19 @@
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="enterprisename"
             label="保安公司名称"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="jurisdictionName"
             label="所属辖区"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="detail"
             label="预警信息内容"
             :show-overflow-tooltip="true"
           ></el-table-column>
@@ -517,19 +539,20 @@
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="enterprisename"
             label="保安公司名称"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="stats"
             label="保安公司类型"
+            :formatter="companyFormatter"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="jurisdictionName"
             label="所属辖区"
             :show-overflow-tooltip="true"
           ></el-table-column>
@@ -538,31 +561,31 @@
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="enterprisename"
             label="保安公司名称"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="jurisdictionName"
             label="所属辖区"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="znum"
             label="保安总数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="cnum"
             label="持证人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop=""
+            prop="pnum"
             label="未持证人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
@@ -583,22 +606,9 @@
 
 <script>
 import "./echarts-auto-tooltip";
-// import "ol/ol.css";
 import * as echarts from "echarts";
 import optionJs from "./indexEchart";
-// import TileLayer from "ol/layer/Tile";
 import XYZ from "ol/source/XYZ";
-// import { Map, View } from "ol";
-// import { Tile, Group } from "ol/layer";
-// import { OSM, TileJSON } from "ol/source";
-// import VectorLayer from "ol/layer/Vector";
-// import VectorSource from "ol/source/Vector";
-
-// import Feature from "ol/Feature.js";
-// import Point from "ol/geom/Point.js";
-// import { Fill, Stroke, Circle, Style, Icon } from "ol/style";
-// import GeoJSON from "ol/format/GeoJSON";
-// import axios from "../../router/axios";
 import {
   securityTotal,
   holderNum,
@@ -620,7 +630,15 @@
   selectJy,
   selectWg,
   punishList,
-  lazyTrees
+  lazyTrees,
+  getSecurityUnitPositionInfo,
+  getSecurityUnitInfoPage,
+  getSecurityUnitHoldInfoPage,
+  getSecurityUnitExamLessPage,
+  getSecurityUnitHoldLessPage,
+  getSecurityUnitSoilLessPage,
+  getSecurityUnitDispatcherLessPage,
+  getSubstationWarnInfoPage
 } from "../../api/index/index";
 
 import car from "@/assets/img/car.png";
@@ -654,6 +672,7 @@
       carNum: 0,
       peoNum: 0,
       gunNum: 0,
+      companyNum: 0,
       mapData: null,
       echarts: {
         left1Echart: null,
@@ -712,34 +731,110 @@
   },
   methods: {
     shoeDialog1(type, param) {
+      this.gridData.data = [];
+      this.gridData.total = 0;
+      this.gridData.current = 1;
       this.gridData.type = type;
+      this.showDialogTable(type, param);
+    },
+    showDialogTable(type, param) {
       this.dialogTableVisible = true;
+      this.dialogloading = true;
       if (type === "ks") {
-        this.gridData.title = "考试通过率低保安公司清单";
+        this.gridData.title = "保安公司预警清单-考试通过率小于50%";
+        this.getselectWg();
       } else if (type === "cz") {
-        this.gridData.title = "持证率低保安公司清单";
+        this.gridData.title = "保安公司预警清单-持证率小于50%";
+        this.getMaterial();
       } else if (type === "sb") {
-        this.gridData.title = "社保缴纳率低保安公司清单";
+        this.gridData.title = "保安公司预警清单-社保缴纳率小于50%";
+        this.getselectYs();
       } else if (type === "pq") {
-        this.gridData.title = "派遣率低保安公司清单";
+        this.gridData.title = "保安公司预警清单-派遣率小于50%";
+        this.getPunishNum();
       } else if (type === "yj") {
         this.gridData.title = param.name + "预警信息";
+        if (param.name) {
+          let arr = this.options1[0].children.filter(
+            a => a.title === param.name
+          );
+          if (arr[0] && arr[0].id) {
+            getSubstationWarnInfoPage({
+              jurisdiction: arr[0].id,
+              current: this.gridData.current,
+              size: 10
+            }).then(res => {
+              if (res.data.code === 200) {
+                this.gridData.data = res.data.data.records;
+                this.gridData.total = res.data.data.total;
+              }
+              this.dialogloading = false;
+            });
+          }
+        }
       } else if (type === "ywdx_cz") {
         this.gridData.title = param.name + "持证情况";
+        if (param.name) {
+          let arr = this.options1[0].children.filter(
+            a => a.title === param.name
+          );
+          if (arr[0] && arr[0].id) {
+            getSecurityUnitHoldInfoPage({
+              jurisdiction: arr[0].id,
+              current: this.gridData.current,
+              size: 10
+            }).then(res => {
+              if (res.data.code === 200) {
+                this.gridData.data = res.data.data.records;
+                this.gridData.total = res.data.data.total;
+              }
+              this.dialogloading = false;
+            });
+          }
+        }
       } else if (type === "ywdx_gs") {
         this.gridData.title = param.name + "保安公司统计";
+        if (param.name) {
+          let arr = this.options1[0].children.filter(
+            a => a.title === param.name
+          );
+          if (arr[0] && arr[0].id) {
+            getSecurityUnitInfoPage({
+              jurisdiction: arr[0].id,
+              current: this.gridData.current,
+              size: 10
+            }).then(res => {
+              if (res.data.code === 200) {
+                this.gridData.data = res.data.data.records;
+                this.gridData.total = res.data.data.total;
+              }
+              this.dialogloading = false;
+            });
+          }
+        }
       }
     },
-    //点击节点
-    handleNodeClick1(data) {
-      this.value1 = data;
-      this.right1loading = true;
-      this.getPoorPerformance(3);
+    //点击节点本市保安公司
+
+    companyFormatter(row) {
+      if (row.stats === "2") {
+        return "本市保安公司";
+      } else if (row.stats === "4") {
+        return "分公司";
+      } else if (row.stats === "0") {
+        return "自招保安公司";
+      } else if (row.stats === "1") {
+        return "保安培训公司";
+      } else if (row.stats === "3") {
+        return "武装押运公司";
+      }
     },
-    //点击节点
-    handleNodeClick2(data) {
-      this.value2 = data;
-      this.peoWarning();
+    kslFormatter(row) {
+      if (row.pnum && row.pnum !== "0") {
+        return row.pnum + "%";
+      } else {
+        return row.pnum;
+      }
     },
     sexFormatter(row, column) {
       if (row.sex === 1) {
@@ -968,17 +1063,22 @@
               linkman: m.linkman,
               company: m.company,
               tel: m.tel,
-              carNum: m.carNum
+              carNum: m.carNum,
+              id: m.id
             };
 
-            // let geoObj = {
-            //   name: type,
-            //   value: [Number(m.longitude), Number(m.latitude)],
-            // };
-            middleData[m.type]["geoData"].push([
-              Number(m.longitude),
-              Number(m.latitude)
-            ]);
+            if (
+              m.longitude &&
+              m.latitude &&
+              m.longitude !== "0" &&
+              m.latitude !== "0"
+            ) {
+              middleData[m.type]["geoData"].push([
+                m.id,
+                Number(m.longitude),
+                Number(m.latitude)
+              ]);
+            }
             middleData[m.type]["table"].push(obj);
           });
           this.carNum = middleData[2]["table"].length;
@@ -991,56 +1091,43 @@
         }
       });
     },
+    // 获取保安公司地图数据
+    getCompanyMap() {
+      getSecurityUnitPositionInfo().then(res => {
+        if (res.data.code === 200) {
+          let curData = res.data.data;
+          let obj = {
+            table: [],
+            geoData: []
+          };
+          curData.forEach(m => {
+            if (
+              m.longitude &&
+              m.latitude &&
+              m.longitude !== "0" &&
+              m.latitude !== "0"
+            ) {
+              obj["geoData"].push([
+                m.id,
+                Number(m.longitude),
+                Number(m.latitude)
+              ]);
+            }
 
-    initMap() {
-      this.map = new Map({
-        target: "map",
-        layers: [
-          // new Tile({
-          //   source: new OSM()
-          // })
-          new Tile({
-            zIndex: 4,
-            title: "影像",
-            source: new XYZ({
-              url:
-                "http://t3.tianditu.com/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0" // 行政区划
-            })
-          }),
-          new Tile({
-            zIndex: 5,
-            title: "道路+中文注记",
-            source: new XYZ({
-              url:
-                "http://t3.tianditu.com/DataServer?T=cta_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0" // 注记
-            })
-          })
-        ],
-        view: new View({
-          projection: "EPSG:4326",
-          center: [115.892151, 28.676493],
-          zoom: 10
-        })
+            let item = {
+              enterprisename: m.enterprisename,
+              jurisdictionName: m.jurisdictionName,
+              address: m.address,
+              contacts: m.contacts,
+              contactscell: m.contactscell,
+              id: m.id
+            };
+            obj["table"].push(item);
+          });
+          this.companyNum = obj["table"].length;
+          this.mapData["4"] = obj;
+        }
       });
-      this.carVectorLayer = new VectorLayer({
-        zIndex: 99,
-        source: new VectorSource()
-      });
-
-      this.peoVectorLayer = new VectorLayer({
-        zIndex: 99,
-        source: new VectorSource()
-      });
-
-      this.gunVectorLayer = new VectorLayer({
-        zIndex: 99,
-        source: new VectorSource()
-      });
-      this.map.addLayer(this.carVectorLayer);
-      this.map.addLayer(this.peoVectorLayer);
-      this.map.addLayer(this.gunVectorLayer);
-
-      this.getTableData(0);
     },
     // 获取辖区列表
     getOfficeData() {
@@ -1142,28 +1229,31 @@
         this.dialogloading = false;
       });
     },
-    changePage(page) {
-      if (this.gridData.type === "zg") {
-        this.getQualificationPages(page);
-      } else if (this.gridData.type === "wg") {
-        this.gridData.data = this.dialogTable.wgTable.slice(
-          10 * (page - 1),
-          10 * page
-        );
-      } else if (this.gridData.type === "jy") {
-        this.gridData.data = this.dialogTable.jyTable.slice(
-          10 * (page - 1),
-          10 * page
-        );
-      } else if (this.gridData.type === "ym") {
-        this.gridData.data = this.dialogTable.jyTable.slice(
-          10 * (page - 1),
-          10 * page
-        );
-      } else if (this.gridData.type === "jg") {
-        this.getPunishList(page);
-      }
+    changePage() {
+      this.showDialogTable(this.gridData.type);
     },
+    // changePage(page) {
+    //   if (this.gridData.type === "zg") {
+    //     this.getQualificationPages(page);
+    //   } else if (this.gridData.type === "wg") {
+    //     this.gridData.data = this.dialogTable.wgTable.slice(
+    //       10 * (page - 1),
+    //       10 * page
+    //     );
+    //   } else if (this.gridData.type === "jy") {
+    //     this.gridData.data = this.dialogTable.jyTable.slice(
+    //       10 * (page - 1),
+    //       10 * page
+    //     );
+    //   } else if (this.gridData.type === "ym") {
+    //     this.gridData.data = this.dialogTable.jyTable.slice(
+    //       10 * (page - 1),
+    //       10 * page
+    //     );
+    //   } else if (this.gridData.type === "jg") {
+    //     this.getPunishList(page);
+    //   }
+    // },
     getQualificationPages(page) {
       this.gridData.current = page;
       this.dialogloading = true;
@@ -1182,64 +1272,75 @@
         this.dialogloading = false;
       });
     },
-    // 公司受处罚数量
+    // 派遣率低于50%的保安公司表格接口
     getPunishNum() {
-      // selectCf({ jurisdiction: this.value2 }).then(res => {
-      //   if (res.data.code === 200) {
-      //     this.rightData.punishNum = res.data.data.count;
-      //   } else {
-      //     this.$message.error(res.msg);
-      //   }
-      //   this.right2loading = false;
-      // });
       let params = {
         current: this.gridData.current,
         size: 10,
         jurisdiction: this.value2
       };
-      punishList(params).then(res => {
+      getSecurityUnitDispatcherLessPage(params).then(res => {
         if (res.data.code === 200) {
           this.gridData.data = res.data.data.records;
           this.gridData.total = res.data.data.total;
           this.rightData.punishNum = res.data.data.total;
         }
         this.dialogloading = false;
+        this.dialogloading = this.dialogloading ? false : false;
       });
     },
-    // 经营不善
+    // 持证率低于50%的保安公司表格接口
     getMaterial() {
-      selectJy({ jurisdiction: this.value2 }).then(res => {
+      getSecurityUnitHoldLessPage({
+        jurisdiction: this.value2,
+        current: this.gridData.current,
+        size: 10
+      }).then(res => {
         if (res.data.code === 200) {
-          this.rightData.materialNum = res.data.data.count;
-          this.dialogTable.jyTable = res.data.data.List;
+          this.rightData.materialNum = res.data.data.total;
+          this.gridData.data = res.data.data.records;
+          this.gridData.total = res.data.data.total;
         } else {
           this.$message.error(res.msg);
         }
         this.right2loading = false;
+        this.dialogloading = this.dialogloading ? false : false;
       });
     },
-    // 有名无实
+    // 社保缴纳率低于50%的保安公司表格接口
     getselectYs() {
-      selectYs({ jurisdiction: this.value2 }).then(res => {
+      getSecurityUnitSoilLessPage({
+        jurisdiction: this.value2,
+        current: this.gridData.current,
+        size: 10
+      }).then(res => {
         if (res.data.code === 200) {
-          this.rightData.ymwsNum = res.data.data.count;
-          this.dialogTable.ymTable = res.data.data.List;
+          this.rightData.ymwsNum = res.data.data.total;
+          this.gridData.data = res.data.data.records;
+          this.gridData.total = res.data.data.total;
         } else {
           this.$message.error(res.msg);
         }
         this.right2loading = false;
+        this.dialogloading = this.dialogloading ? false : false;
       });
     },
-    // 违规经营
+    // 考试通过率低于50%的保安公司
     getselectWg() {
-      selectWg({ jurisdiction: this.value2 }).then(res => {
+      getSecurityUnitExamLessPage({
+        jurisdiction: this.value2,
+        current: this.gridData.current,
+        size: 10
+      }).then(res => {
         if (res.data.code === 200) {
-          this.rightData.wgNum = res.data.data.count;
-          this.dialogTable.wgTable = res.data.data.list;
+          this.rightData.wgNum = res.data.data.total;
+          this.gridData.data = res.data.data.records;
+          this.gridData.total = res.data.data.total;
         } else {
           this.$message.error(res.msg);
         }
         this.right2loading = false;
+        this.dialogloading = this.dialogloading ? false : false;
       });
     },
     // 现实表现差
@@ -1318,11 +1419,8 @@
   mounted() {
     this.initEchart();
     this.getHolderNum(0);
-    // this.getPoorPerformance(3);
-    // this.getTableData("car");
-    // this.initMap();
     this.getTableData(0);
-    // this.initMapEchart();
+    this.getCompanyMap();
     this.getOfficeData();
   }
 };
diff --git a/src/views/home/indexEchart.js b/src/views/home/indexEchart.js
index 697e0c4..f6b3b0c 100644
--- a/src/views/home/indexEchart.js
+++ b/src/views/home/indexEchart.js
@@ -137,7 +137,7 @@
           focus: "series"
         },
         // data: data5
-        data: [10, 20, 13, 14]
+        data: data5
       }
     ]
   };
@@ -227,8 +227,7 @@
         emphasis: {
           focus: "series"
         },
-        // data: data1
-        data: [12, 10, 24]
+        data: data1
       },
       {
         name: "未持证人数",
@@ -237,8 +236,7 @@
         emphasis: {
           focus: "series"
         },
-        // data: data2
-        data: [12, 10, 24]
+        data: data2
       }
     ]
   };
@@ -558,80 +556,91 @@
   return option;
 }
 function middleData(allData, type) {
+  debugger;
   var ncMap = nc;
-  // var convertData = function (allData) {
-  //   var res = [];
-  //   for (var i = 0; i < data.length; i++) {
-  //     var geoCoord = geoCoordMap[data[i].name];
-  //     if (geoCoord) {
-  //       res.push({
-  //         name: data[i].name,
-  //         value: geoCoord.concat(data[i].value)
-  //       });
-  //     }
-  //   }
-  //   return res;
-  // };
   let name = "";
   let label = "";
   let symbolUrl = "";
   let geoData = [];
-  allData["table"].forEach((item, i) => {
-    let obj = {};
-    if (type === 1) {
-      name = "保安员名称";
-      label =
-        "押运人员:" +
-        item.name +
-        "<br />当前位置:" +
-        item.location +
-        "<br />所属公司:" +
-        item.linkman +
-        "<br />联系电话:" +
-        item.tel;
-      symbolUrl = require("@/assets/img/people.png");
-      obj = {
-        name: label,
-        value: allData["geoData"][i]
-      };
-    } else if (type === 2) {
-      name = "押运车辆";
-      label =
-        "押运车辆车牌号:" +
-        item.carNum +
-        "<br />当前位置:" +
-        item.location +
-        "<br />所属公司:" +
-        item.company +
-        "<br />联系人:" +
-        item.linkman +
-        "<br />联系电话:" +
-        item.tel;
-      symbolUrl = require("@/assets/img/car.png");
-      obj = {
-        name: label,
-        value: allData["geoData"][i]
-      };
-    } else if (type === 3) {
-      name = "枪支";
-      label =
-        "枪支编号:" +
-        item.number +
-        "<br />当前位置:" +
-        item.location +
-        "<br />所属公司:" +
-        item.company +
-        "<br />负责人:" +
-        item.linkman +
-        "<br />联系电话:" +
-        item.tel;
-      symbolUrl = require("@/assets/img/gun.png");
-      obj = {
-        name: label,
-        value: allData["geoData"][i]
-      };
-    }
-    geoData.push(obj);
+  allData["table"].forEach(item => {
+    allData["geoData"].forEach(items => {
+      let obj = {};
+      if (item.id === items[0] && type === 1) {
+        name = "保安员名称";
+        label =
+          "押运人员:" +
+          item.name +
+          "<br />当前位置:" +
+          item.location +
+          "<br />所属公司:" +
+          item.linkman +
+          "<br />联系电话:" +
+          item.tel;
+        symbolUrl = require("@/assets/img/people.png");
+        obj = {
+          name: label,
+          value: [items[1], items[2]]
+        };
+        geoData.push(obj);
+      } else if (item.id === items[0] && type === 2) {
+        name = "押运车辆";
+        label =
+          "押运车辆车牌号:" +
+          item.carNum +
+          "<br />当前位置:" +
+          item.location +
+          "<br />所属公司:" +
+          item.company +
+          "<br />联系人:" +
+          item.linkman +
+          "<br />联系电话:" +
+          item.tel;
+        symbolUrl = require("@/assets/img/car.png");
+        obj = {
+          name: label,
+          value: [items[1], items[2]]
+        };
+        geoData.push(obj);
+      } else if (item.id === items[0] && type === 3) {
+        name = "枪支";
+        label =
+          "枪支编号:" +
+          item.number +
+          "<br />当前位置:" +
+          item.location +
+          "<br />所属公司:" +
+          item.company +
+          "<br />负责人:" +
+          item.linkman +
+          "<br />联系电话:" +
+          item.tel;
+        symbolUrl = require("@/assets/img/gun.png");
+        obj = {
+          name: label,
+          value: [items[1], items[2]]
+        };
+        geoData.push(obj);
+      } else if (item.id === items[0] && type === 4) {
+        name = "保安公司:";
+        label =
+          "保安公司名称" +
+          item.enterprisename +
+          "<br />所属辖区:" +
+          item.location +
+          "<br />注册地址:" +
+          item.address +
+          "<br />负责人:" +
+          item.contacts +
+          "<br />联系电话:" +
+          item.contactscell;
+        symbolUrl = require("@/assets/img/company.png");
+        obj = {
+          name: label,
+          value: [items[1], items[2]]
+        };
+        geoData.push(obj);
+      }
+    });
   });
 
   echarts.registerMap("ncMap", ncMap);
diff --git a/src/views/securityUnitOperation/economicAnalysis.vue b/src/views/securityUnitOperation/economicAnalysis.vue
index e8b3fe8..63e769c 100644
--- a/src/views/securityUnitOperation/economicAnalysis.vue
+++ b/src/views/securityUnitOperation/economicAnalysis.vue
@@ -67,7 +67,7 @@
               @click="showTable('sb')"
             >
               <span>社保缴纳预警(家)</span>
-              <span>{{ socialSecurity.num }}</span>
+              <span>{{ yj.sb }}</span>
               <span>社保缴纳率小于90%</span>
             </div>
             <div
@@ -76,7 +76,7 @@
               @click="showTable('bx')"
             >
               <span>保险缴纳预警(家)</span>
-              <span>{{ socialSecurity.money }}</span>
+              <span>{{ yj.bx }}</span>
               <span>保险缴纳率小于90%</span>
             </div>
             <div
@@ -85,7 +85,7 @@
               @click="showTable('fw')"
             >
               <span>服务合同预警(份)</span>
-              <span>{{ socialSecurity.paiQ }}</span>
+              <span>{{ yj.fw }}</span>
               <span>服务合同小于2份</span>
             </div>
             <div
@@ -94,7 +94,7 @@
               @click="showTable('pq')"
             >
               <span>派遣预警(家)</span>
-              <span>{{ socialSecurity.sheBPerson }}</span>
+              <span>{{ yj.pq }}</span>
               <span>派遣率小于50%</span>
             </div>
           </div>
@@ -136,153 +136,157 @@
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="realName"
+            prop="enterprisename"
             label="保安公司名称"
             :show-overflow-tooltip="true"
-            width="180"
+            width="300"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="deptName"
+            prop="jurisdictionName"
             label="所属辖区"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="sex"
+            prop="znum"
             label="保安总人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="cardid"
+            prop="cnum"
             label="社保缴纳人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="age"
-            label="社保缴纳比例"
+            prop="pnum"
+            label="社保缴纳率"
+            :formatter="kslFormatter"
             :show-overflow-tooltip="true"
           ></el-table-column>
-          <el-table-column
+          <!-- <el-table-column
             :key="gridData.type"
             prop="age"
             label="备注"
             :show-overflow-tooltip="true"
-          ></el-table-column>
+          ></el-table-column> -->
         </template>
         <template v-if="gridData.type === 'bx'">
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="enterpriseName"
+            prop="enterprisename"
             label="保安公司名称"
             width="180"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="znum"
+            prop="jurisdictionName"
             label="所属辖区"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="cznum"
+            prop="znum"
             label="保安总人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="czl"
+            prop="cnum"
             label="保险缴纳人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="sbnum"
-            label="保险缴纳比例"
+            prop="pnum"
+            label="保险缴纳率"
+            :formatter="kslFormatter"
             :show-overflow-tooltip="true"
           ></el-table-column>
-          <el-table-column
+          <!-- <el-table-column
             :key="gridData.type"
             prop="sbl"
             label="备注"
             :show-overflow-tooltip="true"
-          ></el-table-column>
+          ></el-table-column> -->
         </template>
         <template v-if="gridData.type === 'fw'">
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="enterpriseName"
+            prop="enterprisename"
             label="保安公司名称"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="znum"
+            prop="jurisdictionName"
             label="所属辖区"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="cznum"
+            prop="znum"
             label="服务合同数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="painum"
+            prop="dispatchUnitName"
             label="服务单位名称"
             :show-overflow-tooltip="true"
           ></el-table-column>
-          <el-table-column
+          <!-- <el-table-column
             :key="gridData.type"
             prop="pql"
             label="备注"
             :show-overflow-tooltip="true"
-          ></el-table-column> </template
+          ></el-table-column> -->
+        </template>
         ><template v-if="gridData.type === 'pq'">
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="enterpriseName"
+            prop="enterprisename"
             label="保安公司名称"
             width="180"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="znum"
+            prop="jurisdictionName"
             label="所属辖区"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="cznum"
+            prop="znum"
             label="保安总人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="painum"
+            prop="cnum"
             label="派遣人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="fwnum"
-            label="派遣比例"
+            prop="pnum"
+            label="派遣率"
+            :formatter="kslFormatter"
             :show-overflow-tooltip="true"
           ></el-table-column>
-          <el-table-column
+          <!-- <el-table-column
             :key="gridData.type"
             prop="pql"
             label="备注"
             :show-overflow-tooltip="true"
-          ></el-table-column>
+          ></el-table-column> -->
         </template>
       </el-table>
       <el-pagination
@@ -309,7 +313,11 @@
   queryYearSoil,
   queryYearAn,
   queryYearPz,
-  queryYearKh
+  queryYearKh,
+  getSecurityUnitSoilLessPage,
+  getSecurityUnitInsuranceLessPage,
+  getSecurityUnitServerLessPage1,
+  getSecurityUnitDispatcherLessPage
 } from "../../api/securityUnitOperation/securityUnitOperation";
 export default {
   data() {
@@ -378,21 +386,47 @@
         title: ""
       },
       dialogloading: false,
-      dialogTableVisible: false
+      dialogTableVisible: false,
+      yj: {
+        sb: 0,
+        bx: 0,
+        fw: 0,
+        pq: 0
+      }
     };
   },
   methods: {
+    kslFormatter(row) {
+      if (row.pnum && row.pnum !== "0") {
+        return row.pnum + "%";
+      } else {
+        return row.pnum;
+      }
+    },
+    changePage() {
+      this.showcurTable(this.gridData.type);
+    },
     showTable(type) {
       this.gridData.type = type;
+      this.gridData.current = 1;
+      this.gridData.data = [];
+      this.showcurTable(type);
+    },
+    showcurTable(type) {
+      this.dialogloading = true;
       this.dialogTableVisible = true;
       if (type === "sb") {
         this.gridData.title = "社保缴纳预警保安公司";
+        this.getSecurityUnitSoilLessPage();
       } else if (type === "bx") {
         this.gridData.title = "保险缴纳预警保安公司";
+        this.getSecurityUnitInsuranceLessPage();
       } else if (type === "fw") {
         this.gridData.title = "服务合同预警保安公司";
+        this.getSecurityUnitServerLessPage();
       } else if (type === "pq") {
         this.gridData.title = "派遣预警保安公司";
+        this.getSecurityUnitDispatcherLessPage();
       }
     },
     //点击节点
@@ -448,7 +482,7 @@
       getCompanys({ jurisdiction: this.value1 }).then(res => {
         if (res.data.code === 200) {
           this.options2 = res.data.data;
-          this.value2 = this.options2[0] ? this.options2[0].departmentid : "";
+          this.value2 = "";
           this.changeCompanys();
         }
       });
@@ -531,6 +565,79 @@
         this.loading3 = false;
       });
     },
+    getSecurityUnitSoilLessPage() {
+      let params = {
+        jurisdiction: this.value1,
+        departmentid: this.value2,
+        current: this.gridData.current,
+        size: 10
+      };
+      getSecurityUnitSoilLessPage(params).then(res => {
+        if (res.data.code === 200) {
+          this.yj.sb = res.data.data.total;
+          this.gridData.data = res.data.data.records;
+          this.gridData.total = res.data.data.total;
+        }
+        if (this.dialogloading) {
+          this.dialogloading = false;
+        }
+      });
+    },
+    getSecurityUnitInsuranceLessPage() {
+      let params = {
+        jurisdiction: this.value1,
+        departmentid: this.value2,
+        current: this.gridData.current,
+        size: 10
+      };
+      getSecurityUnitInsuranceLessPage(params).then(res => {
+        if (res.data.code === 200) {
+          this.yj.bx = res.data.data.total;
+          this.gridData.data = res.data.data.records;
+          this.gridData.total = res.data.data.total;
+        }
+        if (this.dialogloading) {
+          this.dialogloading = false;
+        }
+      });
+    },
+    getSecurityUnitServerLessPage() {
+      let params = {
+        jurisdiction: this.value1,
+        departmentid: this.value2,
+        current: this.gridData.current,
+        size: 10
+      };
+      getSecurityUnitServerLessPage1(params).then(res => {
+        if (res.data.code === 200) {
+          this.yj.fw = res.data.data.total;
+          this.gridData.data = res.data.data.records;
+          this.gridData.total = res.data.data.total;
+        }
+        if (this.dialogloading) {
+          this.dialogloading = false;
+        }
+      });
+    },
+
+    getSecurityUnitDispatcherLessPage() {
+      let params = {
+        jurisdiction: this.value1,
+        departmentid: this.value2,
+        current: this.gridData.current,
+        size: 10
+      };
+      getSecurityUnitDispatcherLessPage(params).then(res => {
+        if (res.data.code === 200) {
+          this.yj.pq = res.data.data.total;
+          this.gridData.data = res.data.data.records;
+          this.gridData.total = res.data.data.total;
+        }
+        if (this.dialogloading) {
+          this.dialogloading = false;
+        }
+      });
+    },
     changeCompanys() {
       this.options2.forEach(item => {
         if (item.departmentid === this.value2) {
@@ -541,6 +648,10 @@
       this.getSocialSecurity();
       this.getQueryYearSoil();
       this.getQueryYearAn();
+      this.getSecurityUnitSoilLessPage();
+      this.getSecurityUnitInsuranceLessPage();
+      this.getSecurityUnitServerLessPage();
+      this.getSecurityUnitDispatcherLessPage();
     }
   },
   mounted() {
diff --git a/src/views/securityUnitOperation/operationAnalysis.vue b/src/views/securityUnitOperation/operationAnalysis.vue
index a9d2747..eb136a2 100644
--- a/src/views/securityUnitOperation/operationAnalysis.vue
+++ b/src/views/securityUnitOperation/operationAnalysis.vue
@@ -77,7 +77,7 @@
               @click="showTable('fw')"
             >
               <span>服务对象预警(家)</span>
-              <span>{{ card.czBaoan }}</span>
+              <span>{{ yj.fuwu }}</span>
               <span>服务对象小于2家</span>
             </div>
             <div
@@ -86,7 +86,7 @@
               @click="showTable('pq')"
             >
               <span>派遣预警(家)</span>
-              <span>{{ card.kh }}</span>
+              <span>{{ yj.paiqian }}</span>
               <span>派遣率小于50%</span>
             </div>
             <div
@@ -95,7 +95,7 @@
               @click="showTable('cz')"
             >
               <span>持证上岗预警(家)</span>
-              <span>{{ card.sheb }}</span>
+              <span>{{ yj.chizheng }}</span>
               <span>持证率小于50%</span>
             </div>
           </div>
@@ -161,116 +161,116 @@
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="realName"
+            prop="enterprisename"
             label="保安公司名称"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="deptName"
+            prop="jurisdictionName"
             label="所属辖区"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="sex"
+            prop="znum"
             label="服务对象数"
             :formatter="sexFormatter"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="cardid"
+            prop="dispatchUnitName"
             label="服务单位名称"
             :show-overflow-tooltip="true"
           ></el-table-column>
-          <el-table-column
+          <!-- <el-table-column
             :key="gridData.type"
             prop="age"
             label="备注"
             :show-overflow-tooltip="true"
             width="100"
-          ></el-table-column>
+          ></el-table-column> -->
         </template>
         <template v-if="gridData.type === 'pq'">
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="enterpriseName"
+            prop="enterprisename"
             label="保安公司名称"
             width="180"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="znum"
+            prop="jurisdictionName"
             label="所属辖区"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="cznum"
+            prop="znum"
             label="保安总人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="czl"
+            prop="cnum"
             label="派遣人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="sbnum"
+            prop="pnum"
             label="派遣比例"
             :show-overflow-tooltip="true"
           ></el-table-column>
-          <el-table-column
+          <!-- <el-table-column
             :key="gridData.type"
             prop="sbl"
             label="备注"
             :show-overflow-tooltip="true"
-          ></el-table-column>
+          ></el-table-column> -->
         </template>
         <template v-if="gridData.type === 'cz'">
           <el-table-column :key="gridData.type" type="index"> </el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="enterpriseName"
+            prop="enterprisename"
             label="保安公司名称"
             width="180"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="znum"
+            prop="jurisdictionName"
             label="所属辖区"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="cznum"
+            prop="znum"
             label="保安总人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="painum"
+            prop="cnum"
             label="持证人数"
             :show-overflow-tooltip="true"
           ></el-table-column>
           <el-table-column
             :key="gridData.type"
-            prop="fwnum"
+            prop="pnum"
             label="持证比例"
             :show-overflow-tooltip="true"
           ></el-table-column>
-          <el-table-column
+          <!-- <el-table-column
             :key="gridData.type"
             prop="pql"
             label="备注"
             :show-overflow-tooltip="true"
-          ></el-table-column>
+          ></el-table-column> -->
         </template>
       </el-table>
       <el-pagination
@@ -295,7 +295,10 @@
   getCompanys,
   queryYearKh,
   queryYearG,
-  selectAge
+  selectAge,
+  getSecurityUnitServerLessPage,
+  getSecurityUnitDispatcherLessPage,
+  getSecurityUnitHoldLessPage
 } from "../../api/securityUnitOperation/securityUnitOperation";
 export default {
   data() {
@@ -318,6 +321,11 @@
         addsheb: 0,
         baoanPq: 0,
         addbaoanPq: 0
+      },
+      yj: {
+        fuwu: 0,
+        paiqian: 0,
+        chizheng: 0
       },
       options0: [
         {
@@ -386,15 +394,27 @@
     };
   },
   methods: {
+    changePage() {
+      this.showcurTable(this.gridData.type);
+    },
     showTable(type) {
       this.gridData.type = type;
+      this.gridData.current = 1;
+      this.gridData.data = [];
+      this.showcurTable(type);
+    },
+    showcurTable(type) {
+      this.dialogloading = true;
       this.dialogTableVisible = true;
       if (type === "fw") {
         this.gridData.title = "服务对象预警保安公司";
+        this.getSecurityUnitServerLessPage();
       } else if (type === "pq") {
         this.gridData.title = "派遣预警保安公司";
+        this.getSecurityUnitDispatcherLessPage();
       } else if (type === "cz") {
         this.gridData.title = "持证上岗预警保安公司";
+        this.getSecurityUnitHoldLessPage();
       }
     },
     //点击节点
@@ -561,11 +581,70 @@
         baoanPq: 0,
         addbaoanPq: 0
       };
+      this.yj = {
+        fuwu: 0,
+        paiqian: 0,
+        chizheng: 0
+      };
       this.ageData = {
         qing: 0,
         zhong: 0,
         lao: 0
       };
+    },
+    getSecurityUnitServerLessPage() {
+      let params = {
+        jurisdiction: this.value1,
+        departmentid: this.value2,
+        current: this.gridData.current,
+        size: 10
+      };
+      getSecurityUnitServerLessPage(params).then(res => {
+        if (res.data.code === 200) {
+          this.yj.fuwu = res.data.data.total;
+          this.gridData.data = res.data.data.records;
+          this.gridData.total = res.data.data.total;
+        }
+        if (this.dialogloading) {
+          this.dialogloading = false;
+        }
+      });
+    },
+    getSecurityUnitDispatcherLessPage() {
+      let params = {
+        jurisdiction: this.value1,
+        departmentid: this.value2,
+        current: this.gridData.current,
+        size: 10
+      };
+      getSecurityUnitDispatcherLessPage(params).then(res => {
+        if (res.data.code === 200) {
+          this.yj.paiqian = res.data.data.total;
+          this.gridData.data = res.data.data.records;
+          this.gridData.total = res.data.data.total;
+        }
+        if (this.dialogloading) {
+          this.dialogloading = false;
+        }
+      });
+    },
+    getSecurityUnitHoldLessPage() {
+      let params = {
+        jurisdiction: this.value1,
+        departmentid: this.value2,
+        current: this.gridData.current,
+        size: 10
+      };
+      getSecurityUnitHoldLessPage(params).then(res => {
+        if (res.data.code === 200) {
+          this.yj.chizheng = res.data.data.total;
+          this.gridData.data = res.data.data.records;
+          this.gridData.total = res.data.data.total;
+        }
+        if (this.dialogloading) {
+          this.dialogloading = false;
+        }
+      });
     },
     changeCompanys() {
       this.options2.forEach(item => {
@@ -578,6 +657,9 @@
       this.getQueryYearKh();
       this.getQueryYearG();
       this.setAgeEchart();
+      this.getSecurityUnitServerLessPage();
+      this.getSecurityUnitDispatcherLessPage();
+      this.getSecurityUnitHoldLessPage();
     }
   },
   mounted() {
diff --git a/src/views/statisticalQueryManagement/businessStatistics.vue b/src/views/statisticalQueryManagement/businessStatistics.vue
index 983e540..86ec5dc 100644
--- a/src/views/statisticalQueryManagement/businessStatistics.vue
+++ b/src/views/statisticalQueryManagement/businessStatistics.vue
@@ -1,26 +1,46 @@
 <template>
-  <basic-container>
-    <avue-crud
-      :option="tableOption"
-      :table-loading="loading"
-      :data="tableData"
-      :page.sync="page"
-      :permission="permissionList"
-      ref="crud"
-      @row-update="rowUpdates"
-      @row-save="rowSave"
-      @search-change="searchChange"
-      @search-reset="searchReset"
-      @current-change="currentChange"
-      @size-change="sizeChange"
-      @refresh-change="refreshChange"
-      @on-load="onLoad"
-      @cell-click="handleRowClick"
-      :cell-style="cellStyle"
-      class="businessStatisticsStyle"
+  <div>
+    <basic-container>
+      <avue-crud
+        :option="tableOption"
+        :table-loading="loading"
+        :data="tableData"
+        :page.sync="page"
+        :permission="permissionList"
+        ref="crud"
+        @row-update="rowUpdates"
+        @row-save="rowSave"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
+        @on-load="onLoad"
+        @cell-click="handleRowClick"
+        :cell-style="cellStyle"
+        class="businessStatisticsStyle"
+      >
+      </avue-crud>
+    </basic-container>
+    <el-dialog
+      class="fuwu-class"
+      :title="dialogTitle"
+      append-to-body
+      :visible.sync="dialogShow"
     >
-    </avue-crud>
-  </basic-container>
+      <businessStatisticsDetail :fwdeptId="fwdeptId"></businessStatisticsDetail>
+      <!-- <avue-crud
+        :option="option2"
+        :data="data2"
+        :page.sync="page2"
+        @row-save="rowSave2"
+        @row-update="rowUpdate2"
+        @row-del="rowDel2"
+        :table-loading="loading2"
+      >
+      </avue-crud> -->
+    </el-dialog>
+  </div>
 </template>
 <script>
 import FileSaver from "file-saver";
@@ -28,13 +48,23 @@
 import { mapGetters } from "vuex";
 import {
   selectYw,
-  dictionaryList
+  dictionaryList,
+  dispatcherUnit
 } from "../../api/statisticalQueryManagement/statisticalQueryManagement";
-import { lazyTreeJu,lazyTrees } from "../../api/index/index";
+import { lazyTreeJu, lazyTrees } from "../../api/index/index";
+import businessStatisticsDetail from "./businessStatisticsDetail";
 export default {
   name: "业务情况统计",
+  components: {
+    businessStatisticsDetail
+  },
   data() {
     return {
+      tablePage: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
       page: {
         pageSize: 10,
         currentPage: 1,
@@ -42,26 +72,7 @@
       },
       value1: "",
       value2: "",
-      tableData: [
-        // {
-        //   company: "江西省永安保安服务有限公司",
-        //   subOffice: "南昌市公安局",
-        //   customer: "76",
-        //   num: "1124"
-        // },
-        // {
-        //   company: "南昌市赣水保安服务有限公司",
-        //   subOffice: "东湖分局",
-        //   customer: "85",
-        //   num: "1428"
-        // },
-        // {
-        //   company: "江西中业兴达保安服务有限公司",
-        //   subOffice: "西湖分局",
-        //   customer: "46",
-        //   num: "974"
-        // }
-      ],
+      tableData: [],
       tableOption: {
         excelBtn: true,
         delBtn: false,
@@ -126,14 +137,14 @@
             prop: "znum",
             display: false
           },
-           {
+          {
             label: "持证人数",
-            prop: "",
+            prop: "cznum",
             display: false
           },
           {
             label: "派遣人数",
-            prop: "",
+            prop: "pqnum",
             display: false
           },
           {
@@ -143,13 +154,15 @@
           },
           {
             label: "服务到期数量",
-            prop: "",
+            prop: "dqnum",
             display: false
-          },
-          
+          }
         ]
       },
-      loading: true
+      loading: true,
+      dialogTitle: "",
+      dialogShow: false,
+      fwdeptId: ""
     };
   },
   computed: {
@@ -226,12 +239,26 @@
       });
     },
     handleRowClick(row, column, cell, event) {
+      this.dialogShow = true;
       if (column.label == "服务对象数量") {
-        this.$router.push({
-          path:
-            "/statisticalQueryManagement/businessStatisticsDetail?&departmentid=" +
-            row.departmentid
-        });
+        this.fwdeptId = row.departmentid;
+        // dispatcherUnit({
+        //   deptId: row.departmentid
+        // }).then(res => {
+        //   if (res.data.code === 200) {
+        //     this.page = {
+        //       pageSize: 10,
+        //       currentPage: 1,
+        //       total: res.data.data.total
+        //     };
+        //     this.tableData = res.data.data.records;
+        //   }
+        // });
+        // this.$router.push({
+        //   path:
+        //     "/statisticalQueryManagement/businessStatisticsDetail?&departmentid=" +
+        //     row.departmentid
+        // });
       } else if (column.label == "保安员人数") {
         this.$router.push({
           path:
@@ -239,10 +266,6 @@
             row.departmentid
         });
       }
-    },
-    cellStyle(row, column, rowIndex, columnIndex) {
-      // if (columnIndex == 4 || columnIndex == 5) {
-      // }
     }
   },
   mounted() {
@@ -253,7 +276,11 @@
 </script>
 <style lang="scss" scoped>
 /deep/ .businessStatisticsStyle .el-table__row:hover td:nth-child(7),
-/deep/ .businessStatisticsStyle .el-table__row:hover td:nth-child(6) {
+/deep/ .businessStatisticsStyle .el-table__row:hover td:nth-child(6),
+/deep/ .businessStatisticsStyle .el-table__row:hover td:nth-child(8),
+/deep/ .businessStatisticsStyle .el-table__row:hover td:nth-child(9),
+/deep/ .businessStatisticsStyle .el-table__row:hover td:nth-child(10) {
   cursor: pointer !important;
 }
+
 </style>
diff --git a/src/views/statisticalQueryManagement/businessStatisticsDetail.vue b/src/views/statisticalQueryManagement/businessStatisticsDetail.vue
index b43d288..4ebfcb2 100644
--- a/src/views/statisticalQueryManagement/businessStatisticsDetail.vue
+++ b/src/views/statisticalQueryManagement/businessStatisticsDetail.vue
@@ -14,6 +14,7 @@
       @current-change="currentChange"
       @size-change="sizeChange"
       @refresh-change="refreshChange"
+      @on-load="onLoad"
     >
     </avue-crud>
   </basic-container>
@@ -23,11 +24,13 @@
 import {
   selectDis,
   selectFw,
-  fwList
+  fwList,
+  dispatcherUnit
 } from "../../api/statisticalQueryManagement/statisticalQueryManagement";
-import { lazyTreeJu,lazyTrees } from "../../api/index/index";
+import { lazyTreeJu, lazyTrees } from "../../api/index/index";
 export default {
   name: "业务情况统计明细",
+  props: ["fwdeptId"],
   data() {
     return {
       page: {
@@ -38,38 +41,7 @@
       query: {},
       value1: "",
       value2: "",
-      tableData: [
-        // {
-        //   company: "江西省永安保安服务有限公司",
-        //   subOffice: "南昌市公安局",
-        //   timeStart: "2020-07-14",
-        //   timeEnd: "2021-06-30",
-        //   customerName: "南昌市幼儿园",
-        //   num: "7",
-        //   // status: "正在服务",
-        //   bz: ""
-        // },
-        // {
-        //   company: "南昌市赣水保安服务有限公司",
-        //   subOffice: "东湖分局",
-        //   timeStart: "2020-01-23",
-        //   timeEnd: "2020-12-31",
-        //   customerName: "南昌市第一人民医院",
-        //   num: "32",
-        //   // status: "已完成",
-        //   bz: ""
-        // },
-        // {
-        //   company: "江西中业兴达保安服务有限公司",
-        //   subOffice: "西湖分局",
-        //   timeStart: "2020-03-16",
-        //   timeEnd: "2021-7-29",
-        //   customerName: "南昌市动物园",
-        //   num: "12",
-        //   // status: "未下单",
-        //   bz: ""
-        // }
-      ],
+      // tableData: [],
       tablePage: {
         pageSize: 10,
         currentPage: 1,
@@ -128,13 +100,13 @@
             prop: "name",
             props: {
               label: "name",
-              value: "id"
+              value: "name"
             },
             dicData: [],
             searchLabelWidth: 110,
             search: true,
             type: "tree",
-            searchSpan: 4,
+            searchSpan: 8,
             rules: [
               {
                 required: true,
@@ -143,6 +115,11 @@
               }
             ]
             // display: false
+          },
+          {
+            label: "保安公司名称",
+            prop: "tenantName",
+            display: false
           },
           {
             label: "服务开始时间",
@@ -154,11 +131,11 @@
             prop: "endTime",
             display: false
           },
-          // {
-          //   label: "保安派遣人数",
-          //   prop: "num",
-          //   display: false
-          // },
+          {
+            label: "保安员姓名",
+            prop: "realName",
+            display: false
+          },
           {
             label: "联系人",
             prop: "linkman",
@@ -263,14 +240,16 @@
       this.onLoad(this.page, this.query);
     },
     onLoad(page, params = {}) {
+      debugger;
       this.loading = true;
       let param = {};
       // param["jurisdiction"] = params["jurname"] || "";
-      param["id"] = params["name"] || "";
-      param["deptId"] = this.deptid;
+      // param["id"] = params["name"] || "";
+      param["deptId"] = this.fwdeptId;
       param["current"] = page.currentPage;
       param["size"] = page.pageSize;
-      fwList(param).then(res => {
+      param["name"] = params["name"] || "";
+      dispatcherUnit(param).then(res => {
         const data = res.data.data;
         this.page.total = data.total;
         this.tableData = data.records;
@@ -321,7 +300,7 @@
     // this.getTableData();
     this.getFuWuList();
     this.getSubOfficeData();
-    this.getLocationParams();
+    // this.getLocationParams();
   }
 };
 </script>
diff --git a/src/views/statisticalQueryManagement/securityGuardStatistics.vue b/src/views/statisticalQueryManagement/securityGuardStatistics.vue
index 3034a63..7e98d29 100644
--- a/src/views/statisticalQueryManagement/securityGuardStatistics.vue
+++ b/src/views/statisticalQueryManagement/securityGuardStatistics.vue
@@ -130,12 +130,12 @@
           // },
           {
             label: "已采集照片人数",
-            prop: "",
+            prop: "ycaijzpnum",
             display: false
           },
           {
             label: "已采集指纹人数",
-            prop: "",
+            prop: "ycaijzwnum",
             display: false
           },
           {

--
Gitblit v1.9.3