From d2611ee5cb26997b5902b0be82c10c3d1fe4a86c Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Wed, 22 Sep 2021 10:38:06 +0800
Subject: [PATCH] Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/zhba_regulatory_ys

---
 src/api/securityUnitOperation/securityUnitOperation.js              |   51 +
 src/views/statisticalQueryManagement/businessStatistics.vue         |  209 ++-
 src/views/qualificationExamination/signQualificationExamination.vue |   75 +
 src/api/apply/apply.js                                              |    9 
 src/views/statisticalQueryManagement/businessStatisticsFwdq.vue     |  275 +++++
 src/views/statisticalQueryManagement/securityGuardDetail.vue        |   43 
 src/views/statisticalQueryManagement/securityGuardStatistics.vue    |   86 +
 src/views/securityUnitOperation/economicAnalysis.vue                |  187 +++
 src/api/statisticalQueryManagement/statisticalQueryManagement.js    |  118 +
 src/styles/common.scss                                              |    7 
 src/styles/element-ui.scss                                          |  390 ++++---
 src/views/home/index.scss                                           |    4 
 src/assets/img/company.png                                          |    0 
 src/views/home/index.vue                                            |  553 +++++++---
 src/views/qualificationExamination/paymentInquiry.vue               |   87 +
 src/api/index/index.js                                              |   78 +
 src/views/statisticalQueryManagement/companyDetails.vue             |   38 
 src/views/home/indexEchart.js                                       |  156 +-
 src/views/statisticalQueryManagement/businessStatisticsDetail.vue   |   70 
 src/views/statisticalQueryManagement/businessStatisticsPq.vue       |  301 ++++++
 src/views/securityUnitOperation/operationAnalysis.vue               |  148 ++
 21 files changed, 2,142 insertions(+), 743 deletions(-)

diff --git a/src/api/apply/apply.js b/src/api/apply/apply.js
new file mode 100644
index 0000000..a879349
--- /dev/null
+++ b/src/api/apply/apply.js
@@ -0,0 +1,9 @@
+import request from '@/router/axios';
+
+export const update = (row) => {
+    return request({
+        url: '/api/apply/update',
+        method: 'post',
+        data: row
+    })
+}
\ No newline at end of file
diff --git a/src/api/index/index.js b/src/api/index/index.js
index e8b9c13..ac53e9d 100644
--- a/src/api/index/index.js
+++ b/src/api/index/index.js
@@ -47,10 +47,16 @@
     params: params
   });
 };
+// export const selectFj = () => {
+//   return request({
+//     url: "/api/information/selectFj",
+//     method: "post"
+//   });
+// };
 export const selectFj = () => {
   return request({
-    url: "/api/information/selectFj",
-    method: "post"
+    url: "/api/information/selectSubstationWarnInfo",
+    method: "get"
   });
 };
 export const selectBx = params => {
@@ -150,3 +156,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
+  });
+};
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..56c610d 100644
--- a/src/api/statisticalQueryManagement/statisticalQueryManagement.js
+++ b/src/api/statisticalQueryManagement/statisticalQueryManagement.js
@@ -1,63 +1,89 @@
 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
+  });
+};
+
+// 派遣人员清单
+export const dispatcher = params => {
+  return request({
+    url: "/api/dispatcher/page?dispatch=0",
+    method: "get",
+    params: params
+  });
+};
+
+// 服务到期公司清单
+export const dispatcherUnit2 = params => {
+  return request({
+    url: "/api/dispatcherUnit/page?isExpire=2",
+    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/styles/common.scss b/src/styles/common.scss
index 8f7b47b..6acb413 100644
--- a/src/styles/common.scss
+++ b/src/styles/common.scss
@@ -63,3 +63,10 @@
   }
 
 }
+
+// 统计弹表的样式
+.tongji-class .el-dialog{
+  width: 80%;
+  margin-top: 10vh;
+}
+
diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss
index 819e995..e9845a9 100644
--- a/src/styles/element-ui.scss
+++ b/src/styles/element-ui.scss
@@ -1,422 +1,474 @@
 @import "./ourBackgroundColor.scss";
 .el-dropdown-menu__item {
-  font-size: 12px !important;
-  line-height: 28px !important;
+    font-size: 12px !important;
+    line-height: 28px !important;
 }
 
 .el-scrollbar__view {
-  height: 100%;
+    height: 100%;
 }
 
 .el-menu--horizontal {
-  border-bottom: none !important;
+    border-bottom: none !important;
 }
 
 .el-menu {
-  border-right: none !important;
+    border-right: none !important;
 }
 
 .el-menu--display,
-.el-menu--display + .el-submenu__icon-arrow {
-  display: none;
+.el-menu--display+.el-submenu__icon-arrow {
+    display: none;
 }
 
 .el-message__icon,
 .el-message__content {
-  display: inline-block;
+    display: inline-block;
 }
 
 .el-date-editor .el-range-input,
 .el-date-editor .el-range-separator {
-  height: auto;
-  overflow: hidden;
+    height: auto;
+    overflow: hidden;
 }
 
 .el-dialog__wrapper {
-  z-index: 2048;
+    z-index: 2048;
 }
 
 .el-col {
-  margin-bottom: 8px;
+    margin-bottom: 8px;
 }
 
 .el-main {
-  padding: 0 !important;
+    padding: 0 !important;
+}
+
+.el-upload__tip {
+    color: #fff;
 }
 
 .el-dropdown-menu__item--divided:before,
 .el-menu,
-.el-menu--horizontal > .el-menu-item:not(.is-disabled):focus,
-.el-menu--horizontal > .el-menu-item:not(.is-disabled):hover,
-.el-menu--horizontal > .el-submenu .el-submenu__title:hover {
-  background-color: transparent;
+.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,
+.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,
+.el-menu--horizontal>.el-submenu .el-submenu__title:hover {
+    background-color: transparent;
 }
 
 .el-dropdown-menu__item--divided:before,
 .el-menu,
-.el-menu--horizontal > .el-menu-item:not(.is-disabled):focus,
-.el-menu--horizontal > .el-menu-item:not(.is-disabled):hover,
-.el-menu--horizontal > .el-submenu .el-submenu__title:hover {
-  background-color: transparent !important;
+.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,
+.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,
+.el-menu--horizontal>.el-submenu .el-submenu__title:hover {
+    background-color: transparent !important;
 }
 
 .el-card__header {
-  padding: 6px 18px !important;
+    padding: 6px 18px !important;
 }
 
 //部分全局颜色设置
 .el-card__body {
-  background-color: $mainB !important;
-  // border:1px solid $mainB !important;
-  //padding: 16px !important;
+    background-color: $mainB !important;
+    // border:1px solid $mainB !important;
+    //padding: 16px !important;
 }
 
 .el-divider--horizontal {
-  margin: 12px 0 !important;
+    margin: 12px 0 !important;
 }
 
 .avue-group .el-collapse,
 .avue-group .el-collapse-item__wrap {
-  border-color: $mainB !important;
-  background-color: $mainB !important;
+    border-color: $mainB !important;
+    background-color: $mainB !important;
 }
+
 .el-form-item__label {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 .avue-crud__menu {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
+
 .el-table {
-  background-color: $mainB !important;
-  color: $fontColor !important;
+    background-color: $mainB !important;
+    color: $fontColor !important;
 }
 
 .el-table th,
 .el-table tr {
-  background-color: $mainB !important;
-  color: $fontColor !important;
+    background-color: $mainB !important;
+    color: $fontColor !important;
 }
-.el-table__body tr.hover-row > td {
-  background-color: $mainBhover !important;
+
+.el-table__body tr.hover-row>td {
+    background-color: $mainBhover !important;
 }
+
 .el-button--text {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 .el-card {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
+
 .el-tabs__item {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 //标签栏活动按钮
 .el-tabs__item.is-active {
-  color: $fontColorActive1 !important;
+    color: $fontColorActive1 !important;
 }
+
 .el-input.is-disabled .el-input__inner {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 .el-textarea.is-disabled .el-textarea__inner {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 .el-textarea.is-disabled .el-textarea__inner {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
+
 .el-pagination__jump,
 .el-pagination__total {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 .avue-sidebar .el-menu-item i,
 .avue-sidebar .el-menu-item span,
 .avue-sidebar .el-submenu__title i,
 .avue-sidebar .el-submenu__title span {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 .el-menu-item:hover {
-  background-color: $mainBhover !important;
-  // color: red !important;
+    background-color: $mainBhover !important;
+    // color: red !important;
 }
+
 .el-input__inner {
-  background-color: $inputqiu !important;
-  color: $fontColor !important;
-  border: 1px solid $inputBorder !important;
+    background-color: $inputqiu !important;
+    color: $fontColor !important;
+    border: 1px solid $inputBorder !important;
 }
+
 .el-tree-node__content {
-  background-color: $mainB !important;
-  color: $fontColor !important;
+    background-color: $mainB !important;
+    color: $fontColor !important;
 }
+
 .el-tree-node__content:hover {
-  background-color: $mainBhover !important;
+    background-color: $mainBhover !important;
 }
+
 //el按钮
 .el-button {
-  background-color: $mainBhover !important;
-  color: $fontColor !important;
+    background-color: $mainBhover !important;
+    color: $fontColor !important;
 }
+
 .el-pagination.is-background .btn-next,
 .el-pagination.is-background .btn-prev,
 .el-pagination.is-background .el-pager li {
-  background-color: $inputB !important;
-  color: $fontColor !important;
+    background-color: $inputB !important;
+    color: $fontColor !important;
 }
+
 .el-tree {
-  background-color: $mainB !important;
-  color: $fontColor !important;
+    background-color: $mainB !important;
+    color: $fontColor !important;
 }
+
 .el-table th {
-  background-color: $inputB1 !important;
+    background-color: $inputB1 !important;
 }
 
 //弹窗
 .el-dialog__header {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
+
 .avue-dialog .el-dialog__title,
 .avue-dialog .el-drawer__header,
 .el-dialog__title {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 .el-dialog__body {
-  background-color: $mainB !important;
-  color: $fontColor !important;
+    background-color: $mainB !important;
+    color: $fontColor !important;
 }
+
 .w-e-toolbar {
-  // background-color: $inputB !important;
-  background-color: #fff !important;
-  color: $fontColor !important;
-  // border: 1px solid $inputBorder !important;
+    // background-color: $inputB !important;
+    background-color: #fff !important;
+    color: $fontColor !important;
+    // border: 1px solid $inputBorder !important;
 }
+
 .w-e-text-container {
-  border: 1px solid $inputBorder !important;
+    border: 1px solid $inputBorder !important;
 }
+
 .el-collapse-item__content {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
 
 //表格等待
 .el-loading-mask {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
 
 //附件上传弹窗中心
 .el-upload-dragger {
-  background-color: $inputB1 !important;
+    background-color: $inputB1 !important;
 }
+
 .el-upload-dragger .el-upload__text,
 .el-upload-dragger .el-icon-upload {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 //单选
 .el-radio {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
 
 //多行输入
 .el-textarea__inner {
-  background-color: $inputB1 !important;
-  border: 1px solid $inputBorder !important;
+    background-color: $inputB1 !important;
+    border: 1px solid $inputBorder !important;
 }
 
 // 数字type input
 .el-input-number__decrease,
 .el-input-number__increase {
-  background-color: $inputB1 !important;
+    background-color: $inputB1 !important;
 }
+
 //菜单图标
 .el-input-group__append,
 .el-input-group__prepend {
-  background-color: $inputB1 !important;
-  color: $fontColor !important;
+    background-color: $inputB1 !important;
+    color: $fontColor !important;
 }
+
 //登入表单 恢复按钮
 .login-border .el-input__inner {
-  background-color: #fff !important;
-  color: #606266 !important;
+    background-color: #fff !important;
+    color: #606266 !important;
 }
-//菜单编辑删除按钮
-.el-button + .el-button {
-  padding-left: 8px;
-  padding-right: 8px;
-}
-//菜单自定义按钮
 
+//菜单编辑删除按钮
+.el-button+.el-button {
+    padding-left: 8px;
+    padding-right: 8px;
+}
+
+//菜单自定义按钮
 .el-button--text,
 .el-button--text.is-disabled,
 .el-button--text.is-disabled:focus,
 .el-button--text.is-disabled:hover,
 .el-button--text:active {
-  padding-left: 8px !important;
-  padding-right: 8px !important;
+    padding-left: 8px !important;
+    padding-right: 8px !important;
 }
+
 //菜单按钮
 .login-border .el-button {
-  background-color: $buttonB !important;
-  color: #fff !important;
+    background-color: $buttonB !important;
+    color: #fff !important;
 }
 
 //bug窗口
 .el-dialog,
 .el-pager li {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
 
 //导航搜索 下拉
 .el-autocomplete-suggestion__wrap {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
 
 .el-autocomplete-suggestion li {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 .el-autocomplete-suggestion li:hover {
-  background-color: $inputB1 !important;
+    background-color: $inputB1 !important;
 }
 
 //总标签栏 更多 下拉框
 .el-dropdown-menu {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
+
 .el-dropdown-menu__item {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 .el-dropdown-menu__item:hover {
-  background-color: $inputB1 !important;
-  color: $fontColor !important;
+    background-color: $inputB1 !important;
+    color: $fontColor !important;
 }
+
 //总标签栏
 .avue-tags {
-  background-color: $mainBx1 !important;
-  color: $fontColor !important;
+    background-color: $mainBx1 !important;
+    color: $fontColor !important;
 }
 
 //通知弹窗
 .el-popover {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
 
 .avue-notice__subtitle,
 .avue-notice__title {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
 
 //左侧导航栏
 .avue-logo {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
+
 .avue-sidebar {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
 
 //表格搜索 下拉
 .el-scrollbar__view,
 .el-select-dropdown__list {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
+
 .el-select-dropdown__item {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 // .el-select-dropdown__item:hover {
 //   background-color: $inputB1 !important;
 //   color: $fontColor !important;
 // }
 .el-select-dropdown__item.hover,
 .el-select-dropdown__item:hover {
-  background-color: $inputB1 !important;
-  color: $fontColor !important;
+    background-color: $inputB1 !important;
+    color: $fontColor !important;
 }
+
 //弹框消息
 .el-message-box {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
+
 .el-message-box__content {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 //用户头像边上的下拉 字体颜色
 .el-dropdown-menu__item a {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 // a
 //top导航颜色
 .avue-header {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
 
 //选取时间
 .el-picker-panel {
-  background-color: $mainB !important;
-  color: $fontColor !important;
+    background-color: $mainB !important;
+    color: $fontColor !important;
 }
 
 .el-date-table td.in-range div,
 .el-date-table td.in-range div:hover,
 .el-date-table.is-week-mode .el-date-table__row.current div,
 .el-date-table.is-week-mode .el-date-table__row:hover div {
-  background-color: $inputB1 !important;
-  color: $fontColor !important;
+    background-color: $inputB1 !important;
+    color: $fontColor !important;
 }
 
 .el-picker-panel__footer {
-  background-color: $mainB !important;
-  color: $fontColor !important;
+    background-color: $mainB !important;
+    color: $fontColor !important;
 }
+
 .el-date-table th {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
 
 .el-range-editor--small .el-range-input {
-  background-color: transparent !important;
+    background-color: transparent !important;
 }
+
 .el-picker-panel__icon-btn {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
 
 //证件照吊销  弹窗颜色
 .el-message-box__title {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
 
 //发起回报
 .el-textarea__inner {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
+
 //通知公告 白色bug
 .el-table--striped .el-table__body tr.el-table__row--striped td {
-  background-color: transparent !important;
+    background-color: transparent !important;
 }
 
 //用户管理
 .el-collapse-item__header {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
+
 .avue-group__icon,
 .avue-group__title {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
 
 //保安人员管理  去掉横向滚动条
 .box .el-scrollbar__wrap {
-  overflow-y: scroll;
-  overflow-x: hidden;
+    overflow-y: scroll;
+    overflow-x: hidden;
 }
 
 //菜单管理  左边展开
 .el-table__expand-icon {
-  color: $fontColor !important;
+    color: $fontColor !important;
 }
-// 左侧树形 阴影
 
+// 左侧树形 阴影
 // .el-card.is-always-shadow {
 //   box-shadow: 3px 3px 15px -2px rgb(0, 0, 0);
 // }
 //表格斑马纹
 .el-table tr:nth-child(2n -1) {
-  background-color: #3457b1 !important;
+    background-color: #3457b1 !important;
 }
 
 //去除表格底部线
 .el-table td,
 .el-table th.is-leaf {
-  border: 1px solid rgba($color: #ffffff, $alpha: 0.2);
+    border: 1px solid rgba($color: #ffffff, $alpha: 0.2);
 }
+
 // //顶部搜索栏
 // .el-card.is-never-shadow.avue-crud__search {
 //   position: absolute;
@@ -508,89 +560,89 @@
 //   position: relative;
 //   top: 15px;
 // }
-
 // 搜索栏按钮左移
 // .avue-form__group:nth-last-child() .el-form-item__content {
 //   margin-left: 30px !important;
 //   width: 165px !important;
 // }
 .avue-form__menu--center .el-button {
-  float: left;
+    float: left;
 }
+
 .avue-form__menu--center .el-button:nth-child(1) {
-  margin-left: 30px;
+    margin-left: 30px;
 }
 
 //编辑弹窗上横线
 .avue-dialog .el-dialog__header {
-  border-bottom: 1px solid #7ec9de;
+    border-bottom: 1px solid #7ec9de;
 }
 
 //弹窗关闭和全屏按钮
 .el-dialog__headerbtn .el-dialog__close,
 .avue-crud__dialog__menu i {
-  color: $close !important;
+    color: $close !important;
 }
 
 // 角色管理权限弹窗
 // .el-tabs--border-card {
 //   background-color: $mainB !important;
 // }
-
 .el-tabs--border-card {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
 
-.el-tabs--border-card > .el-tabs__header {
-  background-color: $mainB !important;
+.el-tabs--border-card>.el-tabs__header {
+    background-color: $mainB !important;
 }
-.el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
-  background-color: transparent !important;
-  border-bottom: 1px solid $mainB !important;
+
+.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active {
+    background-color: transparent !important;
+    border-bottom: 1px solid $mainB !important;
 }
+
 // 系统字典新增
 .el-switch__label {
-  color: $fontColor;
+    color: $fontColor;
 }
 
 .avue--detail .el-radio.is-checked .el-radio__label {
-  color: $fontColor;
+    color: $fontColor;
 }
 
 .el-tag {
-  border: none !important;
-  color: $fontColor !important;
-  background-color: transparent !important;
+    border: none !important;
+    color: $fontColor !important;
+    background-color: transparent !important;
 }
 
 //保安员详情 表格hover
 .el-table__row:hover td {
-  background-color: $mainBhover !important;
+    background-color: $mainBhover !important;
 }
 
 //覆盖左侧主菜单 监管 样式
-.el-menu-item:focus
-// .el-menu-item:hover
+.el-menu-item:focus // .el-menu-item:hover
 {
-  background-color: $black !important;
+    background-color: $black !important;
 }
 
 // logo 颜色
 .login-border {
-  .el-input__inner {
-    border: 1px solid transparent !important;
-    border-bottom: 1px solid rgba($color: #000000, $alpha: 0.1) !important;
-  }
+    .el-input__inner {
+        border: 1px solid transparent !important;
+        border-bottom: 1px solid rgba($color: #000000, $alpha: 0.1) !important;
+    }
 }
 
 //
 .el-range-editor--mini .el-range-input {
-  background-color: transparent !important;
+    background-color: transparent !important;
 }
 
 // 右侧弹窗  表格显影功能  背景
 .el-drawer__open .el-drawer.rtl {
-  background-color: $mainB !important;
+    background-color: $mainB !important;
 }
 
 // .registersss .avue-form__menu {
@@ -599,12 +651,11 @@
 //   display: flex;
 //   flex-direction: row-reverse;
 // }
-
 .rowClickSelf {
-  // border: 1px solid #2593ee !important;
-  &:hover {
-    cursor: pointer;
-  }
+    // border: 1px solid #2593ee !important;
+    &:hover {
+        cursor: pointer;
+    }
 }
 
 //格子
@@ -612,16 +663,15 @@
 //   border: 1px solid #fff;
 //   box-sizing: border-box;
 // }
-
 .avue-empty__desc {
-  color: #fff !important;
+    color: #fff !important;
 }
 
 .company-box .avue-form__menu--center {
-  width: 300px;
+    width: 300px;
 }
 
 // .fontcolorfff .el-date-editor .el-range-input {
 .el-date-editor .el-range-input {
-  color: #fff !important;
-}
+    color: #fff !important;
+}
\ No newline at end of file
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..ee88dd9 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">
@@ -384,30 +402,98 @@
       :visible.sync="dialogTableVisible"
     >
       <el-table :data="gridData.data">
+        <template v-if="gridData.type === 'zg'">
+          <el-table-column :key="gridData.type" type="index"> </el-table-column>
+          <el-table-column
+            :key="gridData.type"
+            prop="realName"
+            label="保安姓名"
+            :show-overflow-tooltip="true"
+            width="100"
+          ></el-table-column>
+          <el-table-column
+            :key="gridData.type"
+            prop="deptName"
+            label="保安公司"
+            :show-overflow-tooltip="true"
+          ></el-table-column>
+          <el-table-column
+            :key="gridData.type"
+            prop="sex"
+            label="性别"
+            :formatter="sexFormatter"
+            :show-overflow-tooltip="true"
+            width="100"
+          ></el-table-column>
+          <el-table-column
+            :key="gridData.type"
+            prop="cardid"
+            label="身份证号"
+            :show-overflow-tooltip="true"
+            width="180"
+          ></el-table-column>
+          <el-table-column
+            :key="gridData.type"
+            prop="age"
+            label="年龄"
+            :show-overflow-tooltip="true"
+            width="100"
+          ></el-table-column>
+          <el-table-column
+            :key="gridData.type"
+            prop="securitynumber"
+            label="保安员证编号"
+            :show-overflow-tooltip="true"
+            width="150"
+          ></el-table-column>
+          <el-table-column
+            :key="gridData.type"
+            prop="phone"
+            label="联系方式"
+            :show-overflow-tooltip="true"
+            width="150"
+          ></el-table-column>
+          <el-table-column
+            :key="gridData.type"
+            prop="examinationType"
+            label="审查状态"
+            :formatter="examinationFormatter"
+            :show-overflow-tooltip="true"
+            width="100"
+          ></el-table-column>
+          <el-table-column
+            :key="gridData.type"
+            prop="examinationMx"
+            label="审查明细"
+            :show-overflow-tooltip="true"
+            width="150"
+          ></el-table-column>
+        </template>
         <template v-if="gridData.type === 'ks'">
           <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 +501,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 +529,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 +557,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,20 +585,26 @@
           <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>
+           <el-table-column
+            :key="gridData.type"
+            prop="znum"
+            label="数量(条)"
             :show-overflow-tooltip="true"
           ></el-table-column>
         </template>
@@ -517,19 +612,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 +634,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 +679,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 +703,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 +745,7 @@
       carNum: 0,
       peoNum: 0,
       gunNum: 0,
+      companyNum: 0,
       mapData: null,
       echarts: {
         left1Echart: null,
@@ -711,25 +803,6 @@
     }
   },
   methods: {
-    shoeDialog1(type, param) {
-      this.gridData.type = type;
-      this.dialogTableVisible = true;
-      if (type === "ks") {
-        this.gridData.title = "考试通过率低保安公司清单";
-      } else if (type === "cz") {
-        this.gridData.title = "持证率低保安公司清单";
-      } else if (type === "sb") {
-        this.gridData.title = "社保缴纳率低保安公司清单";
-      } else if (type === "pq") {
-        this.gridData.title = "派遣率低保安公司清单";
-      } else if (type === "yj") {
-        this.gridData.title = param.name + "预警信息";
-      } else if (type === "ywdx_cz") {
-        this.gridData.title = param.name + "持证情况";
-      } else if (type === "ywdx_gs") {
-        this.gridData.title = param.name + "保安公司统计";
-      }
-    },
     //点击节点
     handleNodeClick1(data) {
       this.value1 = data;
@@ -740,6 +813,112 @@
     handleNodeClick2(data) {
       this.value2 = data;
       this.peoWarning();
+    },
+    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 = "保安公司预警清单-考试通过率小于50%";
+        this.getselectWg();
+      } else if (type === "cz") {
+        this.gridData.title = "保安公司预警清单-持证率小于50%";
+        this.getMaterial();
+      } else if (type === "sb") {
+        this.gridData.title = "保安公司预警清单-社保缴纳率小于50%";
+        this.getselectYs();
+      } else if (type === "pq") {
+        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;
+            });
+          }
+        }
+      }
+    },
+    //点击节点本市保安公司
+
+    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 "武装押运公司";
+      }
+    },
+    kslFormatter(row) {
+      if (row.pnum && row.pnum !== "0") {
+        return row.pnum + "%";
+      } else {
+        return row.pnum;
+      }
     },
     sexFormatter(row, column) {
       if (row.sex === 1) {
@@ -968,17 +1147,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 +1175,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() {
@@ -1069,6 +1240,7 @@
       this.gridData.total = 0;
       this.dialogTableVisible = true;
       if (type === "zg") {
+        debugger;
         this.gridData.title = "资格异常人员清单";
         this.getQualificationPages(1);
       } else if (type === "wg") {
@@ -1142,28 +1314,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 +1357,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 +1504,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..029f456 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
       }
     ]
   };
@@ -559,79 +557,89 @@
 }
 function middleData(allData, type) {
   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.jurisdictionName +
+          "<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/qualificationExamination/paymentInquiry.vue b/src/views/qualificationExamination/paymentInquiry.vue
index ba7c33e..d7b074a 100644
--- a/src/views/qualificationExamination/paymentInquiry.vue
+++ b/src/views/qualificationExamination/paymentInquiry.vue
@@ -71,6 +71,18 @@
                 </el-tag>
             </template>
 
+            <!-- 自定义按钮 -->
+            <template slot="menuLeft">
+              <el-button
+                type="success"
+                size="small"
+                plain
+                icon="el-icon-upload2"
+                @click="handleImport"
+                >缴费凭证批量上传
+              </el-button>
+            </template>
+
         </avue-crud>
         <el-dialog
             title="预览"
@@ -79,6 +91,19 @@
             class="see-img-box"
             >
             <div class="img" :style="{ background: imgUrl }"></div>
+        </el-dialog>
+        <el-dialog
+              title="缴费凭证批量上传"
+              append-to-body
+              :visible.sync="excelBox"
+              width="555px"
+            >
+            <avue-form
+              :option="excelOption"
+              v-model="excelForm"
+              :upload-after="uploadAfter"
+            >
+            </avue-form>
         </el-dialog>
     </basic-container>
 </template>
@@ -127,6 +152,27 @@
             query: {},
             loading: true,
             imgSee: false,
+            excelBox: false,
+            excelForm: {},
+            excelOption: {
+                submitBtn: false,
+                emptyBtn: false,
+                column: [
+                {
+                    label: "模板上传",
+                    prop: "excelFile",
+                    type: "upload",
+                    drag: true,
+                    loadText: "模板上传中,请稍等",
+                    span: 24,
+                    propsHttp: {
+                    res: "data",
+                    },
+                    tip: "请上传 zip 压缩文件",
+                    action: "/api/blade-resource/oss/endpoint/put-file-exam-payment-zip",
+                }
+                ],
+            },
             page: {
                 pageSize: 10,
                 currentPage: 1,
@@ -154,23 +200,6 @@
                 dialogClickModal: false,
 
                 column: [
-                    // {
-                    //     label: "缴费类型",
-                    //     prop: "type",
-                    //     dicData:[
-                    //       {
-                    //         label:"公司缴费",
-                    //         value: 1
-                    //       },
-                    //       {
-                    //         label:"个人缴费",
-                    //         value: 2
-                    //       }
-                    //     ],
-                    //     searchSpan: 4,
-                    //     search: true,
-                    //     type: "select",
-                    // },
                     {
                         label: "缴费人",
                         prop: "realName",
@@ -182,6 +211,7 @@
                         prop: "idCardNo",
                         search:true,
                         searchSpan:4,
+                        width:150
                     },
                     {
                         label: "性别",
@@ -207,6 +237,19 @@
                         prop: "deptName",
                         search:true,
                         searchSpan:6,
+                        width:200
+                    },
+                    {
+                        label: "报考证件类型",
+                        prop: "paperType"
+                    },
+                    {
+                        label: "报名时间",
+                        prop: "applyTime",
+                        type: "datetime",
+                        format: "yyyy-MM-dd HH:mm:ss",
+                        valueFormat: "yyyy-MM-dd HH:mm:ss",
+                        width:150
                     },
                     {
                         label: "缴费状态",
@@ -254,6 +297,7 @@
                             },
                         ],
                     },
+                    
                 ],
             },
             data: [
@@ -428,6 +472,15 @@
 
             this.imgSee = true;
         },
+        handleImport() {
+            this.excelBox = true;
+        },
+        uploadAfter(res, done, loading, column) {
+            window.console.log(column);
+            this.excelBox = false;
+            this.refreshChange();
+            done();
+        },
         // onLoad(page, params = {}) {
         //   // this.loading = false;
         //   this.loading = true;
diff --git a/src/views/qualificationExamination/signQualificationExamination.vue b/src/views/qualificationExamination/signQualificationExamination.vue
index 0c3faae..8db4765 100644
--- a/src/views/qualificationExamination/signQualificationExamination.vue
+++ b/src/views/qualificationExamination/signQualificationExamination.vue
@@ -26,6 +26,24 @@
       @refresh-change="refreshChange"
       @on-load="onLoad"
     >
+
+      <template slot-scope="{ type, size, row }"
+                      slot="menu">
+
+                <el-button icon="el-icon-edit"
+                           :size="size"
+                           :type="type"
+                           @click.stop="payTheFees(row)">审核
+                </el-button>
+      </template>
+      <template slot-scope="{ row }"
+                      slot="examinationType">
+          {{row.examinationType=="1"?"正常":row.examinationType=="2"?"异常":"正常"}}
+      </template>
+      <template slot-scope="{ row }"
+                      slot="auditStatus">
+          {{row.auditStatus==1?"审核通过":row.auditStatus==2?"审核不通过":"待审核"}}
+      </template>
     </avue-crud>
   </basic-container>
 </template>
@@ -35,6 +53,9 @@
   getList,
   getListJSON,
 } from "@/api/qualificationExamination/signQualificationExamination";
+import {
+  update
+} from "@/api/apply/apply";
 import { mapGetters } from "vuex";
 
 export default {
@@ -55,7 +76,7 @@
         editBtn: false,
         addBtn: false,
         selection: true,
-        menu: false,
+        menu: true,
 
         align: "center",
         height: "auto",
@@ -135,6 +156,7 @@
           {
             label: "审查状态",
             prop: "examinationType",
+            slot:true,
             // // display: false,
             // width: 200,
             // labelWidth: 120,
@@ -148,14 +170,15 @@
             // labelWidth: 120,
             // overHidden: true,
           },
-          // {
-          //   label: "审查结果",
-          //   prop: "results",
-          //   // // display: false,
-          //   // width: 200,
-          //   // labelWidth: 120,
-          //   // overHidden: true,
-          // },
+          {
+            label: "审核状态",
+            prop: "auditStatus",
+            slot:true,
+            // // display: false,
+            // width: 200,
+            // labelWidth: 120,
+            // overHidden: true,
+          },
         ],
         // group: [
         //   {
@@ -231,6 +254,40 @@
         }
       );
     },
+    payTheFees (row) {
+            console.log(row)
+            this.$confirm("请确认是否审核通过?", {
+                confirmButtonText: "审核通过",
+                cancelButtonText: "审核不通过",
+                type: "warning",
+            })
+                .then(() => {
+                    var  data  ={
+                      id:row.id,
+                      auditStatus:1
+                    }
+                    return update(data).then(() => {
+                        this.onLoad(this.page);
+                        this.$message({
+                            type: "success",
+                            message: "操作成功!",
+                        });
+                    });
+                })
+                .catch(() => {
+                    var  data  ={
+                      id:row.id,
+                      auditStatus:2
+                    }
+                    return update(data).then(() => {
+                        this.onLoad(this.page);
+                        this.$message({
+                            type: "success",
+                            message: "操作成功!",
+                        });
+                    });
+                });
+        },
     rowUpdates(row, index, done, loading) {
       // console.log(42342);
       update(row).then(
diff --git a/src/views/securityUnitOperation/economicAnalysis.vue b/src/views/securityUnitOperation/economicAnalysis.vue
index e8b3fe8..cc68ba9 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..8fc47b9 100644
--- a/src/views/securityUnitOperation/operationAnalysis.vue
+++ b/src/views/securityUnitOperation/operationAnalysis.vue
@@ -10,7 +10,7 @@
               class="select1"
               default-expand-all
               v-model="value1"
-              placeholder="请选择内容"
+              placeholder="请选择辖区"
               type="tree"
               :dic="options1"
               :props="props"
@@ -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,117 @@
           <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="派遣比例"
+            :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 === '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="持证比例"
+            :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
@@ -295,7 +296,10 @@
   getCompanys,
   queryYearKh,
   queryYearG,
-  selectAge
+  selectAge,
+  getSecurityUnitServerLessPage,
+  getSecurityUnitDispatcherLessPage,
+  getSecurityUnitHoldLessPage
 } from "../../api/securityUnitOperation/securityUnitOperation";
 export default {
   data() {
@@ -318,6 +322,11 @@
         addsheb: 0,
         baoanPq: 0,
         addbaoanPq: 0
+      },
+      yj: {
+        fuwu: 0,
+        paiqian: 0,
+        chizheng: 0
       },
       options0: [
         {
@@ -386,19 +395,39 @@
     };
   },
   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.dialogTableVisible = true;
+      // this.dialogloading = 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();
       }
     },
     //点击节点
     handleNodeClick(data) {
+      debugger
       this.value1 = data;
       this.getCompanys();
     },
@@ -445,8 +474,9 @@
       lazyTrees().then(res => {
         if (res.data.code === 200) {
           this.options1 = res.data.data;
-          this.value1 = this.options1[0] ? this.options1[0].id : "";
+          // this.value1 = this.options1[0] ? this.options1[0].id : "";
           this.node = this.options1[0];
+          debugger
           this.getCompanys();
         } else {
           this.$message.error(res.msg);
@@ -458,7 +488,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.options2[0] ? this.options2[0].departmentid : "";
           this.enterpriseName = this.options2[0]
             ? this.options2[0].enterpriseName
             : "";
@@ -561,11 +591,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 +667,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..2ef61ce 100644
--- a/src/views/statisticalQueryManagement/businessStatistics.vue
+++ b/src/views/statisticalQueryManagement/businessStatistics.vue
@@ -1,26 +1,62 @@
 <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"
+        class="businessStatisticsStyle"
+      >
+      </avue-crud>
+    </basic-container>
+    <el-dialog
+      class="tongji-class"
+      :title="dialogTitle"
+      append-to-body
+      :visible.sync="dialogShow"
+      v-if="dialogShow"
     >
-    </avue-crud>
-  </basic-container>
+      <businessStatisticsDetail
+        v-if="searchitem === 'fw'"
+        :fwdeptId="fwdeptId"
+      ></businessStatisticsDetail>
+      <businessStatisticsPq
+        v-if="searchitem === 'pq'"
+        :fwdeptId="fwdeptId"
+      ></businessStatisticsPq>
+      <businessStatisticsFwdq
+        v-if="searchitem === 'dq'"
+        :fwdeptId="fwdeptId"
+      ></businessStatisticsFwdq>
+      <securityGuardDetail
+        v-if="searchitem === 'zong'"
+        :fwdeptId="fwdeptId"
+        :paramCz="paramCz"
+      ></securityGuardDetail>
+      <!-- <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 +64,29 @@
 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";
+import businessStatisticsPq from "./businessStatisticsPq";
+import businessStatisticsFwdq from "./businessStatisticsFwdq";
+import securityGuardDetail from "./securityGuardDetail";
 export default {
   name: "业务情况统计",
+  components: {
+    businessStatisticsDetail,
+    businessStatisticsPq,
+    businessStatisticsFwdq,
+    securityGuardDetail
+  },
   data() {
     return {
+      tablePage: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
       page: {
         pageSize: 10,
         currentPage: 1,
@@ -42,26 +94,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 +159,14 @@
             prop: "znum",
             display: false
           },
-           {
+          {
             label: "持证人数",
-            prop: "",
+            prop: "cznum",
             display: false
           },
           {
             label: "派遣人数",
-            prop: "",
+            prop: "pqnum",
             display: false
           },
           {
@@ -143,13 +176,18 @@
           },
           {
             label: "服务到期数量",
-            prop: "",
+            prop: "dqnum",
             display: false
-          },
-          
+          }
         ]
       },
-      loading: true
+      loading: true,
+      dialogTitle: "",
+      dialogShow: false,
+      pqdialogShow: false,
+      fwdeptId: "",
+      searchitem: "",
+      paramCz: false
     };
   },
   computed: {
@@ -226,23 +264,61 @@
       });
     },
     handleRowClick(row, column, cell, event) {
+      this.paramCz = false;
+
       if (column.label == "服务对象数量") {
-        this.$router.push({
-          path:
-            "/statisticalQueryManagement/businessStatisticsDetail?&departmentid=" +
-            row.departmentid
-        });
+        this.dialogTitle = "业务统计明细---服务对象清单";
+        this.searchitem = "fw";
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+
+        // 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:
-            "/statisticalQueryManagement/securityGuardDetail?departmentid=" +
-            row.departmentid
-        });
+        this.dialogTitle = "业务统计明细---保安员清单";
+        this.searchitem = "zong";
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+
+        // this.$router.push({
+        //   path:
+        //     "/statisticalQueryManagement/securityGuardDetail?departmentid=" +
+        //     row.departmentid
+        // });
+      } else if (column.label == "派遣人数") {
+        this.dialogTitle = "业务统计明细---派遣人员清单";
+        this.searchitem = "pq";
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+      } else if (column.label == "服务到期数量") {
+        this.dialogTitle = "业务统计明细---服务到期公司清单";
+        this.searchitem = "dq";
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+      } else if (column.label == "持证人数") {
+        this.dialogTitle = "业务统计明细---持证保安人员清单";
+        this.searchitem = "dq";
+        this.paramCz = true;
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+      } else {
+        this.dialogShow = false;
       }
-    },
-    cellStyle(row, column, rowIndex, columnIndex) {
-      // if (columnIndex == 4 || columnIndex == 5) {
-      // }
     }
   },
   mounted() {
@@ -253,7 +329,10 @@
 </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..d86972a 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,
@@ -126,15 +98,16 @@
           {
             label: "服务单位名称",
             prop: "name",
+            width: 300,
             props: {
               label: "name",
-              value: "id"
+              value: "name"
             },
             dicData: [],
             searchLabelWidth: 110,
             search: true,
             type: "tree",
-            searchSpan: 4,
+            searchSpan: 8,
             rules: [
               {
                 required: true,
@@ -143,6 +116,12 @@
               }
             ]
             // display: false
+          },
+          {
+            label: "保安公司名称",
+            width: 300,
+            prop: "tenantName",
+            display: false
           },
           {
             label: "服务开始时间",
@@ -154,11 +133,11 @@
             prop: "endTime",
             display: false
           },
-          // {
-          //   label: "保安派遣人数",
-          //   prop: "num",
-          //   display: false
-          // },
+          {
+            label: "保安员姓名",
+            prop: "realName",
+            display: false
+          },
           {
             label: "联系人",
             prop: "linkman",
@@ -266,11 +245,12 @@
       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 +301,7 @@
     // this.getTableData();
     this.getFuWuList();
     this.getSubOfficeData();
-    this.getLocationParams();
+    // this.getLocationParams();
   }
 };
 </script>
diff --git a/src/views/statisticalQueryManagement/businessStatisticsFwdq.vue b/src/views/statisticalQueryManagement/businessStatisticsFwdq.vue
new file mode 100644
index 0000000..1f45bc6
--- /dev/null
+++ b/src/views/statisticalQueryManagement/businessStatisticsFwdq.vue
@@ -0,0 +1,275 @@
+<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"
+    >
+    </avue-crud>
+  </basic-container>
+</template>
+<script>
+import { mapGetters } from "vuex";
+import {
+  selectDis,
+  selectFw,
+  fwList,
+  dispatcherUnit,
+  dispatcherUnit2
+} from "../../api/statisticalQueryManagement/statisticalQueryManagement";
+import { lazyTreeJu, lazyTrees } from "../../api/index/index";
+export default {
+  name: "业务情况统计明细---保安公司服务到期的公司列表",
+  props: ["fwdeptId"],
+  data() {
+    return {
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      query: {},
+      value1: "",
+      value2: "",
+      // tableData: [],
+      tablePage: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      tableOption: {
+        excelBtn: true,
+        delBtn: false,
+        editBtn: false,
+        addBtn: false,
+        selection: true,
+        menu: false,
+        // dateBtn: true,
+        align: "center",
+        height: "auto",
+        calcHeight: 30,
+        tip: false,
+        searchShowBtn: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        index: true,
+        viewBtn: true,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "服务单位名称",
+            prop: "name",
+            width: 300,
+            props: {
+              label: "name",
+              value: "name"
+            },
+            dicData: [],
+            searchLabelWidth: 110,
+            search: true,
+            type: "tree",
+            searchSpan: 8,
+            rules: [
+              {
+                required: true,
+                message: "请选择服务单位",
+                trigger: "blur"
+              }
+            ]
+            // display: false
+          },
+          {
+            label: "所属保安公司",
+            prop: "tenantName",
+            width: 300,
+            display: false
+          },
+          {
+            label: "服务开始时间",
+            prop: "startTime",
+            display: false
+          },
+          {
+            label: "服务到期时间",
+            prop: "endTime",
+            display: false
+          },
+          {
+            label: "保安员姓名",
+            prop: "realName",
+            display: false
+          },
+          {
+            label: "联系人",
+            prop: "linkman",
+            display: false
+          },
+          {
+            label: "联系电话",
+            prop: "phone",
+            display: false
+          }
+        ]
+      },
+      typeValue: "0",
+      typeOptions: [
+        {
+          value: "0",
+          label: "全部"
+        },
+        {
+          value: "1",
+          label: "社保缴纳人数"
+        },
+        {
+          value: "2",
+          label: "社保缴纳总额"
+        },
+        {
+          value: "3",
+          label: "公司派遣人数"
+        },
+        {
+          value: "4",
+          label: "社保缴纳人数占比"
+        }
+      ],
+      subofficeValue: "0",
+      subofficeOptions: [
+        {
+          value: "0",
+          label: "南昌市公安局"
+        },
+        {
+          value: "2",
+          label: "东湖分局"
+        },
+        {
+          value: "3",
+          label: "西湖分局"
+        },
+        {
+          value: "4",
+          label: "青云谱分局"
+        },
+        {
+          value: "5",
+          label: "青山湖分局"
+        }
+      ],
+      servicesList: [],
+      companyName: "",
+      loading: true,
+      deptid: ""
+    };
+  },
+  computed: {
+    ...mapGetters(["permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.post_add, false),
+        viewBtn: this.vaildData(this.permission.post_view, false),
+        delBtn: this.vaildData(this.permission.post_delete, false),
+        editBtn: this.vaildData(this.permission.post_edit, false)
+      };
+    }
+  },
+  methods: {
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+      this.onLoad(this.page, this.query);
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+      this.onLoad(this.page, this.query);
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      let param = {};
+      // param["jurisdiction"] = params["jurname"] || "";
+      // param["id"] = params["name"] || "";
+      param["deptId"] = this.fwdeptId;
+      param["current"] = page.currentPage;
+      param["size"] = page.pageSize;
+      param["name"] = params["name"] || "";
+      dispatcherUnit2(param).then(res => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.tableData = data.records;
+        this.loading = false;
+      });
+    },
+    getFuWuList() {
+      selectFw().then(res => {
+        if (res.data.code === 200) {
+          this.tableOption.column.forEach(item => {
+            if (item.label == "服务单位名称") {
+              item.dicData = res.data.data;
+            }
+          });
+          // this.servicesList = res.data.data;
+        }
+      });
+    },
+    getSubOfficeData() {
+      lazyTrees().then(res => {
+        if (res.data.code === 200) {
+          this.tableOption.column.forEach(item => {
+            if (item.label == "所属辖区") {
+              item.dicData = res.data.data;
+            }
+          });
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
+    getLocationParams() {
+      let url = window.location.href;
+      let urlArr = url.split("?")[1].split("&");
+      var object = new Object();
+      for (var i = 0; i < urlArr.length; i++) {
+        let mm = urlArr[i].split("=");
+        object[decodeURIComponent(mm[0])] = decodeURIComponent(mm[1]);
+      }
+      this.deptid = object["departmentid"] || "";
+      // let jurisdiction = object["jurisdiction"] || "";
+      this.query = { deptid: this.deptid };
+      // this.onLoad(this.page, obj);
+      this.onLoad(this.page, this.query);
+    }
+  },
+  mounted() {
+    // this.getTableData();
+    this.getFuWuList();
+    this.getSubOfficeData();
+    // this.getLocationParams();
+  }
+};
+</script>
+<style lang="scss" scoped></style>
diff --git a/src/views/statisticalQueryManagement/businessStatisticsPq.vue b/src/views/statisticalQueryManagement/businessStatisticsPq.vue
new file mode 100644
index 0000000..ddba4e3
--- /dev/null
+++ b/src/views/statisticalQueryManagement/businessStatisticsPq.vue
@@ -0,0 +1,301 @@
+<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"
+    >
+    </avue-crud>
+  </basic-container>
+</template>
+<script>
+import { mapGetters } from "vuex";
+import {
+  selectDis,
+  selectFw,
+  fwList,
+  dispatcherUnit,
+  dispatcher
+} from "../../api/statisticalQueryManagement/statisticalQueryManagement";
+import { lazyTreeJu, lazyTrees } from "../../api/index/index";
+export default {
+  name: "业务情况统计明细",
+  props: ["fwdeptId"],
+  data() {
+    return {
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      query: {},
+      value1: "",
+      value2: "",
+      // tableData: [],
+      tablePage: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      tableOption: {
+        excelBtn: true,
+        delBtn: false,
+        editBtn: false,
+        addBtn: false,
+        selection: true,
+        menu: false,
+        // dateBtn: true,
+        align: "center",
+        height: "auto",
+        calcHeight: 30,
+        tip: false,
+        searchShowBtn: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        index: true,
+        viewBtn: true,
+        dialogClickModal: false,
+        column: [
+          // {
+          //   label: "公司名称",
+          //   prop: "gsname",
+          //   // search: true,
+          //   // searchSpan: 4,
+          //   display: false
+          // },
+
+          // {
+          //   label: "所属辖区",
+          //   prop: "jurname",
+          //   searchSpan: 4,
+          //   props: {
+          //     label: "title",
+          //     value: "id"
+          //   },
+          //   // cascaderItem: ["city", "area"],
+          //   // dicUrl:subofficeOptions,
+          //   dicData: [],
+          //   search: true,
+          //   type: "tree",
+          //   rules: [
+          //     {
+          //       required: true,
+          //       message: "请选择所属辖区",
+          //       trigger: "blur"
+          //     }
+          //   ]
+          // },
+
+          {
+            label: "保安公司名称",
+            prop: "dispatcherCompany",
+            width: 300,
+            display: false
+          },
+          {
+            label: "服务单位名称",
+            prop: "deptName",
+            width: 300,
+            props: {
+              label: "name",
+              value: "name"
+            },
+            dicData: [],
+            searchLabelWidth: 110,
+            search: true,
+            type: "tree",
+            searchSpan: 8,
+            rules: [
+              {
+                required: true,
+                message: "请选择服务单位",
+                trigger: "blur"
+              }
+            ]
+            // display: false
+          },
+          {
+            label: "派遣时间",
+            prop: "dispatchertime",
+            display: false
+          },
+          {
+            label: "保安员姓名",
+            prop: "securityName",
+            display: false
+          },
+          {
+            label: "身份证号",
+            prop: "idCardNo",
+            display: false
+          },
+          {
+            label: "联系电话",
+            prop: "securityPhone",
+            display: false
+          }
+        ]
+      },
+      typeValue: "0",
+      typeOptions: [
+        {
+          value: "0",
+          label: "全部"
+        },
+        {
+          value: "1",
+          label: "社保缴纳人数"
+        },
+        {
+          value: "2",
+          label: "社保缴纳总额"
+        },
+        {
+          value: "3",
+          label: "公司派遣人数"
+        },
+        {
+          value: "4",
+          label: "社保缴纳人数占比"
+        }
+      ],
+      subofficeValue: "0",
+      subofficeOptions: [
+        {
+          value: "0",
+          label: "南昌市公安局"
+        },
+        {
+          value: "2",
+          label: "东湖分局"
+        },
+        {
+          value: "3",
+          label: "西湖分局"
+        },
+        {
+          value: "4",
+          label: "青云谱分局"
+        },
+        {
+          value: "5",
+          label: "青山湖分局"
+        }
+      ],
+      servicesList: [],
+      companyName: "",
+      loading: true,
+      deptid: ""
+    };
+  },
+  computed: {
+    ...mapGetters(["permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.post_add, false),
+        viewBtn: this.vaildData(this.permission.post_view, false),
+        delBtn: this.vaildData(this.permission.post_delete, false),
+        editBtn: this.vaildData(this.permission.post_edit, false)
+      };
+    }
+  },
+  methods: {
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+      this.onLoad(this.page, this.query);
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+      this.onLoad(this.page, this.query);
+    },
+    refreshChange() {
+      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.fwdeptId;
+      param["current"] = page.currentPage;
+      param["size"] = page.pageSize;
+      param["dispatcherCompany"] = params["name"] || "";
+      dispatcher(param).then(res => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.tableData = data.records;
+        this.loading = false;
+      });
+    },
+    getFuWuList() {
+      selectFw().then(res => {
+        if (res.data.code === 200) {
+          this.tableOption.column.forEach(item => {
+            if (item.label == "服务单位名称") {
+              item.dicData = res.data.data;
+            }
+          });
+          // this.servicesList = res.data.data;
+        }
+      });
+    },
+    getSubOfficeData() {
+      lazyTrees().then(res => {
+        if (res.data.code === 200) {
+          this.tableOption.column.forEach(item => {
+            if (item.label == "所属辖区") {
+              item.dicData = res.data.data;
+            }
+          });
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
+    getLocationParams() {
+      let url = window.location.href;
+      let urlArr = url.split("?")[1].split("&");
+      var object = new Object();
+      for (var i = 0; i < urlArr.length; i++) {
+        let mm = urlArr[i].split("=");
+        object[decodeURIComponent(mm[0])] = decodeURIComponent(mm[1]);
+      }
+      this.deptid = object["departmentid"] || "";
+      // let jurisdiction = object["jurisdiction"] || "";
+      this.query = { deptid: this.deptid };
+      // this.onLoad(this.page, obj);
+      this.onLoad(this.page, this.query);
+    }
+  },
+  mounted() {
+    // this.getTableData();
+    this.getFuWuList();
+    this.getSubOfficeData();
+    // this.getLocationParams();
+  }
+};
+</script>
+<style lang="scss" scoped></style>
diff --git a/src/views/statisticalQueryManagement/companyDetails.vue b/src/views/statisticalQueryManagement/companyDetails.vue
index fb8c354..ee7ffae 100644
--- a/src/views/statisticalQueryManagement/companyDetails.vue
+++ b/src/views/statisticalQueryManagement/companyDetails.vue
@@ -12,6 +12,7 @@
       @current-change="currentChange"
       @size-change="sizeChange"
       @refresh-change="refreshChange"
+      @on-load="onLoad"
     >
     </avue-crud>
   </basic-container>
@@ -23,6 +24,7 @@
 import { selectUIn } from "../../api/statisticalQueryManagement/statisticalQueryManagement";
 export default {
   name: "公司人员详情",
+  props: ["fwdeptId"],
   data() {
     return {
       page: {
@@ -85,7 +87,7 @@
         tip: false,
         searchShowBtn: false,
         searchShow: true,
-        searchMenuSpan: 3,
+        searchMenuSpan: 10,
         index: true,
         viewBtn: true,
         dialogClickModal: false,
@@ -95,7 +97,7 @@
             // searchLabelWidth: 90,
             prop: "real_name",
             search: true,
-            searchSpan: 3,
+            searchSpan: 4,
             display: false
           },
           {
@@ -126,7 +128,7 @@
           {
             label: "是否持证",
             prop: "hold",
-            searchSpan: 3,
+            searchSpan: 4,
             type: "select",
             props: {
               label: "label",
@@ -278,7 +280,7 @@
           {
             label: "是否派遣",
             prop: "dispatch",
-            searchSpan: 3,
+            searchSpan: 4,
             type: "select",
             props: {
               label: "label",
@@ -350,7 +352,7 @@
       //   params = { current: page.currentPage, size: page.pageSize };
       // }
       let param = {};
-      param["deptid"] = this.deptid;
+      param["deptid"] = this.fwdeptId;
       param["name"] = params["real_name"] || "";
       param["hold"] =
         params["hold"] || params["hold"] == "0" ? Number(params["hold"]) : "";
@@ -379,22 +381,22 @@
       });
     },
 
-    getLocationParams() {
-      let url = window.location.href;
-      let urlArr = url.split("?")[1].split("&");
-      var object = new Object();
-      for (var i = 0; i < urlArr.length; i++) {
-        let mm = urlArr[i].split("=");
-        object[decodeURIComponent(mm[0])] = decodeURIComponent(mm[1]);
-      }
-      this.deptid = object["deptid"] || "";
-      this.query = { deptid: this.deptid };
-      this.onLoad(this.page, this.query);
-    }
+    // getLocationParams() {
+    //   let url = window.location.href;
+    //   let urlArr = url.split("?")[1].split("&");
+    //   var object = new Object();
+    //   for (var i = 0; i < urlArr.length; i++) {
+    //     let mm = urlArr[i].split("=");
+    //     object[decodeURIComponent(mm[0])] = decodeURIComponent(mm[1]);
+    //   }
+    //   this.deptid = object["deptid"] || "";
+    //   this.query = { deptid: this.deptid };
+    //   this.onLoad(this.page, this.query);
+    // }
   },
   mounted() {
     // this.getTableData();
-    this.getLocationParams();
+    // this.getLocationParams();
   }
 };
 </script>
diff --git a/src/views/statisticalQueryManagement/securityGuardDetail.vue b/src/views/statisticalQueryManagement/securityGuardDetail.vue
index 4f05081..dd55c71 100644
--- a/src/views/statisticalQueryManagement/securityGuardDetail.vue
+++ b/src/views/statisticalQueryManagement/securityGuardDetail.vue
@@ -15,6 +15,7 @@
       @size-change="sizeChange"
       @refresh-change="refreshChange"
       @row-click="handleRowClick"
+      @on-load="onLoad"
     >
     </avue-crud>
   </basic-container>
@@ -22,8 +23,10 @@
 <script>
 import { mapGetters } from "vuex";
 import { pageSecurity } from "../../api/statisticalQueryManagement/statisticalQueryManagement";
+
 export default {
   name: "保安员明细",
+  props: ["fwdeptId", "paramCz"],
   data() {
     return {
       page: {
@@ -211,7 +214,7 @@
               }
             ],
             slot: true,
-            display: false,
+            display: false
           },
           {
             label: "是否持证",
@@ -234,7 +237,7 @@
               }
             ],
             slot: true,
-            display: false,
+            display: false
           }
         ]
       },
@@ -283,8 +286,12 @@
       let param = {};
       param["realName"] = params["realName"] || "";
       param["status"] = params["status"] || "";
-      param["deptId"] = this.deptid;
-      param["hold"] = params["hold"] || "";
+      param["deptId"] = this.fwdeptId;
+      if (this.paramCz) {
+        param["hold"] = "0";
+      } else {
+        param["hold"] = params["hold"] || "";
+      }
       param["current"] = page.currentPage;
       param["size"] = page.pageSize;
       pageSecurity(param).then(res => {
@@ -293,23 +300,23 @@
         this.data = data.records;
         this.loading = false;
       });
-    },
-    getLocationParams() {
-      let url = window.location.href;
-      let urlArr = url.split("?")[1].split("&");
-      var object = new Object();
-      for (var i = 0; i < urlArr.length; i++) {
-        let mm = urlArr[i].split("=");
-        object[decodeURIComponent(mm[0])] = decodeURIComponent(mm[1]);
-      }
-      this.deptid = object["departmentid"] || "";
-      this.query = { deptid: this.deptid };
-      this.onLoad(this.page, this.query);
-      //   this.onLoad(this.page, this.query);
     }
+    // getLocationParams() {
+    //   let url = window.location.href;
+    //   let urlArr = url.split("?")[1].split("&");
+    //   var object = new Object();
+    //   for (var i = 0; i < urlArr.length; i++) {
+    //     let mm = urlArr[i].split("=");
+    //     object[decodeURIComponent(mm[0])] = decodeURIComponent(mm[1]);
+    //   }
+    //   this.deptid = object["departmentid"] || "";
+    //   this.query = { deptid: this.deptid };
+    //   this.onLoad(this.page, this.query);
+    //   //   this.onLoad(this.page, this.query);
+    // }
   },
   mounted() {
-    this.getLocationParams();
+    // this.getLocationParams();
   }
 };
 </script>
diff --git a/src/views/statisticalQueryManagement/securityGuardStatistics.vue b/src/views/statisticalQueryManagement/securityGuardStatistics.vue
index 3034a63..98f2642 100644
--- a/src/views/statisticalQueryManagement/securityGuardStatistics.vue
+++ b/src/views/statisticalQueryManagement/securityGuardStatistics.vue
@@ -1,23 +1,44 @@
 <template>
-  <basic-container>
-    <avue-crud
-      :option="tableOption"
-      :table-loading="loading"
-      :data="tableData"
-      :page.sync="page"
-      :permission="permissionList"
-      ref="crud"
-      @search-change="searchChange"
-      @search-reset="searchReset"
-      @current-change="currentChange"
-      @size-change="sizeChange"
-      @refresh-change="refreshChange"
-      @on-load="onLoad"
-      @row-click="handleRowClick"
-      class="rowClick"
+  <div>
+    <basic-container>
+      <avue-crud
+        :option="tableOption"
+        :table-loading="loading"
+        :data="tableData"
+        :page.sync="page"
+        :permission="permissionList"
+        ref="crud"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
+        @on-load="onLoad"
+        @cell-click="handleRowClick"
+        class="rowClick"
+      >
+      </avue-crud>
+    </basic-container>
+    <el-dialog
+      class="tongji-class"
+      :title="dialogTitle"
+      append-to-body
+      :visible.sync="dialogShow"
+      v-if="dialogShow"
     >
-    </avue-crud>
-  </basic-container>
+      <companyDetails :fwdeptId="fwdeptId"></companyDetails>
+      <!-- <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,8 +49,12 @@
   dictionaryList
 } from "../../api/statisticalQueryManagement/statisticalQueryManagement";
 import { lazyTreeJu, lazyTrees } from "../../api/index/index";
+import companyDetails from "./companyDetails";
 export default {
   name: "业务情况统计",
+  components: {
+    companyDetails
+  },
   data() {
     return {
       page: {
@@ -130,12 +155,12 @@
           // },
           {
             label: "已采集照片人数",
-            prop: "",
+            prop: "ycaijzpnum",
             display: false
           },
           {
             label: "已采集指纹人数",
-            prop: "",
+            prop: "ycaijzwnum",
             display: false
           },
           {
@@ -156,7 +181,9 @@
         ]
       },
       companyName: "",
-      loading: true
+      loading: true,
+      dialogShow: false,
+      dialogTitle: ""
     };
   },
   computed: {
@@ -243,10 +270,17 @@
         this.loading = false;
       });
     },
-    handleRowClick(row, event, column) {
-      this.$router.push({
-        path: "/statisticalQueryManagement/companyDetails?deptid=" + row.dept_id
-      });
+    handleRowClick(row, column, cell, event) {
+      if (column.label == "保安员总数") {
+        this.dialogTitle = "保安员明细";
+        this.fwdeptId = row.dept_id;
+        this.dialogShow = true;
+      } else {
+        this.dialogShow = false;
+      }
+      // this.$router.push({
+      //   path: "/statisticalQueryManagement/companyDetails?deptid=" + row.dept_id
+      // });
     }
   },
   mounted() {
@@ -256,7 +290,7 @@
 };
 </script>
 <style lang="scss" scoped>
-/deep/ .rowClick .el-table__row:hover td {
+/deep/ .rowClick .el-table__row:hover td:nth-child(6) {
   cursor: pointer;
 }
 </style>

--
Gitblit v1.9.3