From ef46e4b78e81418a831d4f7f21eb24d2fd4d35e1 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Sat, 25 Dec 2021 15:08:54 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/zhba_enterprises

---
 src/views/trainExam/index.vue                                     |  268 
 src/views/securityUnit/localCompany.vue                           |  531 -
 src/page/index/top/top-userSManual.vue                            |    7 
 src/views/accreditationRecords/accreditationRecordsPaper.vue      |  112 
 public/securityInfo.html                                          |  324 
 src/views/securityUnit/armedEscort.vue                            |  521 -
 src/views/statisticalQueryManagement/securityGuardDetail.vue      |  265 +
 src/views/trainApply/index.vue                                    |    2 
 src/api/examapi/modifiedGrades.js                                 |    8 
 src/views/trainingRegistration/index.vue                          |   52 
 src/views/securityUnitChild/index copy.vue                        | 1182 ++++
 src/views/dispatch/dispatchChildoperable.vue                      |  149 
 public/img/top/heard.png                                          |    0 
 src/views/securityUnitChild/shareholder.vue                       |  383 +
 src/api/accreditationRecords/accreditationRecords.js              |   10 
 src/api/examapi/examination.js                                    |    8 
 src/views/securityGuard/data.js                                   | 1261 ++--
 src/views/securityUnitChild/data.js                               |  418 -
 src/views/statisticalQueryManagement/businessStatistics.vue       |  423 +
 src/lang/zh.js                                                    |  218 
 src/views/workreport/workreport.vue                               |    5 
 src/components/liu-legend/Legend.vue                              |   54 
 src/views/securityEquipment/gun.js                                |    4 
 src/views/statisticalQueryManagement/businessStatisticsFwdq.vue   |  221 
 src/views/trainExam/singleperformance.vue                         |   39 
 src/views/securityUnit/data.js                                    |  221 
 src/views/dispatch/dispatch.vue                                   |  133 
 src/views/securityGuard/sfzJS.js                                  |   86 
 src/page/index/top/top-drive.vue                                  |    8 
 public/img/securityInfo/security.png                              |    0 
 src/views/statisticalQueryManagement/businessStatisticsDetail.vue |  241 
 src/views/trainExam/modifiedGrades.vue                            |  320 +
 public/img/top/heard1.png                                         |    0 
 src/views/securityUnitChild/manager.vue                           |  337 +
 src/router/views/index.js                                         | 2048 ++++----
 src/views/securityGuard/securityGuard.vue                         |  142 
 src/views/trainExam/performance.vue                               |  111 
 src/views/securityEquipment/gun.vue                               |   10 
 public/securityInfos1.html                                        |  218 
 public/img/top/driver.png                                         |    0 
 src/api/securityUnit/securityUnit.js                              |  276 
 src/views/securityUnitChild/index.vue                             | 1425 +---
 src/views/securityEquipment/car.vue                               |   37 
 src/views/trainingRegistration/data.js                            |  418 
 src/views/securityUnitChild/social.vue                            |   33 
 src/views/traincompany/index.vue                                  |    2 
 src/views/securityUnit/selfRecruitedSecurityGuard.vue             |  514 -
 src/views/statisticalQueryManagement/securityGuardStatistics.vue  |  351 +
 src/api/statisticalQueryManagement/statisticalQueryManagement.js  |   88 
 src/styles/element-ui.scss                                        |   25 
 src/views/securityEquipment/equipments.vue                        |   36 
 src/views/securityUnit/transRegionalcompany.vue                   |  512 -
 package.json                                                      |    3 
 src/views/statisticalQueryManagement/companyDetails.vue           |  396 +
 src/page/index/top/index.vue                                      |    9 
 src/views/statisticalQueryManagement/businessStatisticsPq.vue     |  219 
 src/views/securityUnit/securityTraining.vue                       |  534 -
 57 files changed, 9,687 insertions(+), 5,531 deletions(-)

diff --git a/package.json b/package.json
index 87d57b6..6465980 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
     "classlist-polyfill": "^1.2.0",
     "crypto-js": "^4.0.0",
     "element-ui": "^2.15.1",
+    "jquery": "^3.6.0",
     "js-base64": "^2.5.1",
     "js-cookie": "^2.2.0",
     "js-md5": "^0.7.3",
@@ -55,4 +56,4 @@
       "git add"
     ]
   }
-}
\ No newline at end of file
+}
diff --git a/public/img/securityInfo/security.png b/public/img/securityInfo/security.png
new file mode 100644
index 0000000..8b8991c
--- /dev/null
+++ b/public/img/securityInfo/security.png
Binary files differ
diff --git a/public/img/top/driver.png b/public/img/top/driver.png
new file mode 100644
index 0000000..153fadd
--- /dev/null
+++ b/public/img/top/driver.png
Binary files differ
diff --git a/public/img/top/heard.png b/public/img/top/heard.png
new file mode 100644
index 0000000..a37b4b7
--- /dev/null
+++ b/public/img/top/heard.png
Binary files differ
diff --git a/public/img/top/heard1.png b/public/img/top/heard1.png
new file mode 100644
index 0000000..83802c9
--- /dev/null
+++ b/public/img/top/heard1.png
Binary files differ
diff --git a/public/securityInfo.html b/public/securityInfo.html
index 9199529..dff7853 100644
--- a/public/securityInfo.html
+++ b/public/securityInfo.html
@@ -3,102 +3,119 @@
 <!-- 保安員信息 -->
 
 <head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <style>
-    .securityInfo {
-      color: #000;
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      flex-direction: column;
-      /* background-color: rgba(42, 66, 110, 0.8); */
-      background: #0ED2F7;
-      /* fallback for old browsers */
-      background: -webkit-linear-gradient(to left, #B2FEFA, #0ED2F7);
-      /* Chrome 10-25, Safari 5.1-6 */
-      background: linear-gradient(to left, #B2FEFA, #0ED2F7);
-      /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
-
-      width: 100%;
-      height: 100%;
-    }
-
-    .top {
-      width: 100%;
-      height: 224px;
-      /* background-color: aquamarine; */
-
-      background: #0BB9C8;
-      /* fallback for old browsers */
-      background: -webkit-linear-gradient(to left, #0BB9C8, #0cd9e7, #0cd9e7, #0BB9C8);
-      /* Chrome 10-25, Safari 5.1-6 */
-      background: linear-gradient(to left, #0BB9C8, #0cd9e7, #0cd9e7, #0BB9C8);
-      /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
-
-
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      flex-direction: column;
-    }
-
-    .avatar {
-      width: 80px;
-      height: 80px;
-      border-radius: 50px;
-    }
-
-    .avatar img {
-      width: 100%;
-      height: 100%;
-      border-radius: 50px;
-    }
-
-    .realName {
-      margin-top: 15px;
-      font-size: 16px;
-      letter-spacing: 1px;
-      color: #fff;
-    }
-
-    .content {
-      margin: 5px 0;
-      padding: 5px;
-      width: 95%;
-      background-color: rgba(65, 64, 66, 0.1);
-      border-radius: 5px;
-      display: flex;
-      flex-direction: column;
-    }
-
-    .row-content {
-      width: 100%;
-      height: 60px;
-      /* background-color: seashell; */
-      display: flex;
-      align-items: center;
-      /* justify-content: center; */
-      color: #fff;
-      margin: 0 auto;
-      border-bottom: 1px solid rgba(255, 255, 255, 0.5);
-    }
-
-    .title {
-      margin-left: 6%;
-      display: inline-block;
-      width: 26%;
-      min-width: 80px;
-    }
-  </style>
-  <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
-  <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <style>
+        .securityInfo {
+            color: #000;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            flex-direction: column;
+            /* background-color: rgba(42, 66, 110, 0.8); */
+            /* background: #0ED2F7; */
+            /* fallback for old browsers */
+            /* background: -webkit-linear-gradient(to left, #B2FEFA, #0ED2F7); */
+            /* Chrome 10-25, Safari 5.1-6 */
+            /* background: linear-gradient(to left, #B2FEFA, #0ED2F7); */
+            /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+            width: 100%;
+            height: 100%;
+        }
+        
+        .top {
+            width: 100%;
+            margin-top: 15px;
+            /* height: 224px; */
+            /* background-color: aquamarine; */
+            /* background: #0BB9C8; */
+            /* fallback for old browsers */
+            /* background: -webkit-linear-gradient(to left, #0BB9C8, #0cd9e7, #0cd9e7, #0BB9C8); */
+            /* Chrome 10-25, Safari 5.1-6 */
+            /* background: linear-gradient(to left, #0BB9C8, #0cd9e7, #0cd9e7, #0BB9C8); */
+            /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            flex-direction: column;
+        }
+        
+        .avatar {
+            width: 98%;
+            height: 140px;
+            border-radius: 1px;
+        }
+        
+        .avatar img {
+            width: 100%;
+            height: 100%;
+            border-radius: 3px;
+        }
+        
+        .realName {
+            margin-top: 15px;
+            font-size: 2rem;
+            letter-spacing: 1px;
+            color: #fff;
+        }
+        
+        .content {
+            /* margin: 5px 0; */
+            /* padding: 5px; */
+            width: 95%;
+            /* background-color: rgba(65, 64, 66, 0.1); */
+            /* border-radius: 5px; */
+            display: flex;
+            flex-direction: column;
+        }
+        
+        .row-content {
+            width: 100%;
+            height: 3.2rem;
+            /* background-color: seashell; */
+            display: flex;
+            align-items: center;
+            /* justify-content: center; */
+            color: #939393;
+            margin: 0 auto;
+            border-bottom: 1px solid rgba(220, 220, 220, 0.4);
+        }
+        
+        .row-contents {
+            width: 100%;
+            height: 3.2rem;
+            /* background-color: seashell; */
+            display: flex;
+            align-items: center;
+            /* justify-content: center; */
+            color: #939393;
+            margin: 0 auto;
+        }
+        
+        .title {
+            margin-left: 4%;
+            display: inline-block;
+            width: 30%;
+            min-width: 80px;
+            font-size: 0.9rem;
+            font-weight: 550;
+        }
+        
+        .content-data {
+            position: absolute;
+            right: 1.8rem;
+            font-size: 0.95rem;
+        }
+    </style>
+    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
+    <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
 </head>
 
 
 <body>
-  <div class="securityInfo">
-    <!-- <div class="top">
+    <div class="securityInfo">
+
+        <!-- <div class="top">
             <div class="avatar">
                 <img src="./img/bazbj.png">
             </div>
@@ -115,96 +132,101 @@
                 <span class="title">公司名称</span>
                 <span>&nbsp;&nbsp;&nbsp;&nbsp;南昌市保安服务公司</span>
             </div>
-            <div class="row-content">
-                <span class="title">性别</span>
-                <span>&nbsp;&nbsp;&nbsp;&nbsp;男</span>
-            </div>
-            <div class="row-content">
-                <span class="title">年龄</span>
-                <span>&nbsp;&nbsp;&nbsp;&nbsp;50</span>
-            </div>
-            <div class="row-content">
-                <span class="title">保安证编号</span>
-                <span>&nbsp;&nbsp;&nbsp;&nbsp;赣洪202100001</span>
-            </div>
-
-
         </div> -->
-  </div>
-  <script>
-    var getData = function (name) {
-      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
-      var r = window.location.search.substr(1).match(reg);
-      if (r != null) return decodeURI(r[2]);
-      return null;
-    };
-    var securityNumber = getData("securityNumber");
-    // var realName = getData("realName");
-    // var age = getData("age");
-    // var sex = getData("sex");
-    // var deptName = getData("deptName");
-    // var avatar = getData("avatar");
-    // alert(securityNumber);
+    </div>
+    <script>
+        var getData = function(name) {
+            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+            var r = window.location.search.substr(1).match(reg);
+            if (r != null) return decodeURI(r[2]);
+            return null;
+        };
+        var securityNumber = getData("securityNumber");
 
 
-    axios.get('http://223.82.109.183:2080/api/qrCode/getUserInfo?securityNumber=' + securityNumber).then(function (res) {
-      // axios.get('http://192.168.0.114:81/qrCode/getUserInfo?securityNumber=赣洪202100008').then(function(res) {
+        axios.get('http://223.82.109.183:2080/api/qrCode/getUserInfo?securityNumber=' + securityNumber).then(function(res) {
+            // axios.get('http://192.168.0.114:81/qrCode/getUserInfo?securityNumber=赣洪202115423').then(function(res) {
 
-      var data = res.data;
-      console.log(data, 456);
+            var data = res.data;
+            // console.log(data, 456);
+            //计算生日
+            var birthday = data.cardid.substring(6, 10) + "." + data.cardid.substring(10, 12) + "." + data.cardid.substring(12, 14);
 
-
-      var str = `<div class="top">
+            //计算发证机关
+            var fzjg = "";
+            if (data.securitynumber.indexOf("赣") != -1) {
+                fzjg = "南昌市公安局"
+            }
+            var str = `<div class="top">
             <div class="avatar">
-                <img src="${data.avatar}">
-            </div>
-            <div class="realName">
-                <span>${data.realName}</span>
+                <img src="img/securityInfo/security.png">
             </div>
         </div>
         <div class="content">
             <div class="row-content">
-                <span class="title">名 称</span>
-                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.realName}</span>
+                <span class="title">姓名:</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.realName}</span>
             </div>
 
             <div class="row-content">
-                <span class="title">性 别</span>
-                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.sex == 1 ? '男' : data.sex == 2 ? '女' : ''}</span>
+                <span class="title">性别:</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.sex == 1 ? '男' : data.sex == 2 ? '女' : ''}</span>
             </div>
 
             <div class="row-content">
-                <span class="title">年 龄</span>
-                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.age}</span>
+                <span class="title">联系电话:</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.phone}</span>
+            </div>
+            <div class="row-content">
+                <span class="title">身份证号:</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.cardid}</span>
+            </div>
+            <div class="row-content">
+                <span class="title">出身日期:</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${birthday}</span>
             </div>
 
             <div class="row-content">
-                <span class="title">籍 贯</span></span></span>
-                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.nativeplace}</span>
+                <span class="title">年龄:</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.age}</span>
             </div>
 
             <div class="row-content">
-                <span class="title">联系电话</span>
-                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.phone}</span>
+                <span class="title">发证机关:</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${fzjg}</span>
             </div>
 
             <div class="row-content">
-                <span class="title">公司名称</span>
-                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.deptName}</span>
+                <span class="title">保安证编号:</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.securitynumber}</span>
             </div>
 
             <div class="row-content">
-                <span class="title">保安证编号</span>
-                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.securitynumber}</span>
+                <span class="title">公司名称:</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.deptName}</span>
+            </div>
+
+            
+            <div class="row-content">
+                <span class="title">派遣单位名称:</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.dispatchUnitName}</span>
+            </div>
+            <div class="row-content">
+                <span class="title">派遣开始时间:</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.dispatchStartTime}</span>
+            </div>
+            <div class="row-contents">
+                <span class="title">派遣结束时间:</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.dispatchEndTime}</span>
             </div>
 
         </div>`
 
-      var dom = $('.securityInfo');
-      dom.empty();
-      dom.append(str);
-    });
-  </script>
+            var dom = $('.securityInfo');
+            dom.empty();
+            dom.append(str);
+        });
+    </script>
 </body>
 
-</html>
+</html>
\ No newline at end of file
diff --git a/public/securityInfos1.html b/public/securityInfos1.html
new file mode 100644
index 0000000..a9b3ea8
--- /dev/null
+++ b/public/securityInfos1.html
@@ -0,0 +1,218 @@
+<!DOCTYPE html>
+<html lang="en">
+<!-- 保安員信息 -->
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <style>
+        .securityInfo {
+            color: #000;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            flex-direction: column;
+            /* background-color: rgba(42, 66, 110, 0.8); */
+            background: #0ED2F7;
+            /* fallback for old browsers */
+            background: -webkit-linear-gradient(to left, #B2FEFA, #0ED2F7);
+            /* Chrome 10-25, Safari 5.1-6 */
+            background: linear-gradient(to left, #B2FEFA, #0ED2F7);
+            /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+            width: 100%;
+            height: 100%;
+        }
+        
+        .top {
+            width: 100%;
+            height: 224px;
+            /* background-color: aquamarine; */
+            background: #0BB9C8;
+            /* fallback for old browsers */
+            background: -webkit-linear-gradient(to left, #0BB9C8, #0cd9e7, #0cd9e7, #0BB9C8);
+            /* Chrome 10-25, Safari 5.1-6 */
+            background: linear-gradient(to left, #0BB9C8, #0cd9e7, #0cd9e7, #0BB9C8);
+            /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            flex-direction: column;
+        }
+        
+        .avatar {
+            width: 80px;
+            height: 80px;
+            border-radius: 50px;
+        }
+        
+        .avatar img {
+            width: 100%;
+            height: 100%;
+            border-radius: 50px;
+        }
+        
+        .realName {
+            margin-top: 15px;
+            font-size: 16px;
+            letter-spacing: 1px;
+            color: #fff;
+        }
+        
+        .content {
+            margin: 5px 0;
+            padding: 5px;
+            width: 95%;
+            background-color: rgba(65, 64, 66, 0.1);
+            border-radius: 5px;
+            display: flex;
+            flex-direction: column;
+        }
+        
+        .row-content {
+            width: 100%;
+            height: 60px;
+            /* background-color: seashell; */
+            display: flex;
+            align-items: center;
+            /* justify-content: center; */
+            color: #fff;
+            margin: 0 auto;
+            border-bottom: 1px solid rgba(255, 255, 255, 0.5);
+        }
+        
+        .title {
+            margin-left: 4%;
+            display: inline-block;
+            width: 29%;
+            min-width: 80px;
+        }
+    </style>
+    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
+    <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
+</head>
+
+
+<body>
+    <div class="securityInfo">
+        <!-- <div class="top">
+            <div class="avatar">
+                <img src="./img/bazbj.png">
+            </div>
+            <div class="realName">
+                <span>張三</span>
+            </div>
+        </div>
+        <div class="content">
+            <div class="row-content">
+                <span class="title">名称</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;张三</span>
+            </div>
+            <div class="row-content">
+                <span class="title">公司名称</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;南昌市保安服务公司</span>
+            </div>
+            <div class="row-content">
+                <span class="title">性别</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;男</span>
+            </div>
+            <div class="row-content">
+                <span class="title">年龄</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;50</span>
+            </div>
+            <div class="row-content">
+                <span class="title">保安证编号</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;赣洪202100001</span>
+            </div>
+
+
+        </div> -->
+    </div>
+    <script>
+        var getData = function(name) {
+            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+            var r = window.location.search.substr(1).match(reg);
+            if (r != null) return decodeURI(r[2]);
+            return null;
+        };
+        var securityNumber = getData("securityNumber");
+        // var realName = getData("realName");
+        // var age = getData("age");
+        // var sex = getData("sex");
+        // var deptName = getData("deptName");
+        // var avatar = getData("avatar");
+        // alert(securityNumber);
+
+
+        axios.get('http://223.82.109.183:2080/api/qrCode/getUserInfo?securityNumber=' + securityNumber).then(function(res) {
+            // axios.get('http://192.168.0.114:81/qrCode/getUserInfo?securityNumber=赣洪202115423').then(function(res) {
+
+            var data = res.data;
+            // console.log(data, 456);
+
+
+            var str = `<div class="top">
+            <div class="avatar">
+                <img src="${data.avatar}">
+            </div>
+            <div class="realName">
+                <span>${data.realName}</span>
+            </div>
+        </div>
+        <div class="content">
+            <div class="row-content">
+                <span class="title">名 称</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.realName}</span>
+            </div>
+
+            <div class="row-content">
+                <span class="title">性 别</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.sex == 1 ? '男' : data.sex == 2 ? '女' : ''}</span>
+            </div>
+
+            <div class="row-content">
+                <span class="title">年 龄</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.age}</span>
+            </div>
+
+            <div class="row-content">
+                <span class="title">籍 贯</span></span></span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.nativeplace}</span>
+            </div>
+
+            <div class="row-content">
+                <span class="title">联系电话</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.phone}</span>
+            </div>
+
+            <div class="row-content">
+                <span class="title">公司名称</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.deptName}</span>
+            </div>
+
+            <div class="row-content">
+                <span class="title">保安证编号</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.securitynumber}</span>
+            </div>
+            <div class="row-content">
+                <span class="title">派遣单位名称</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.dispatchUnitName}</span>
+            </div>
+            <div class="row-content">
+                <span class="title">派遣开始时间</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.dispatchStartTime}</span>
+            </div>
+            <div class="row-content">
+                <span class="title">派遣结束时间</span>
+                <span>&nbsp;&nbsp;&nbsp;&nbsp;${data.dispatchEndTime}</span>
+            </div>
+
+        </div>`
+
+            var dom = $('.securityInfo');
+            dom.empty();
+            dom.append(str);
+        });
+    </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/api/accreditationRecords/accreditationRecords.js b/src/api/accreditationRecords/accreditationRecords.js
index ed125f6..2570db0 100644
--- a/src/api/accreditationRecords/accreditationRecords.js
+++ b/src/api/accreditationRecords/accreditationRecords.js
@@ -33,7 +33,7 @@
     })
 }
 
-export const add = (row) => {
+export const submit = (row) => {
     return request({
         url: '/api/accreditationRecords/submit',
         method: 'post',
@@ -41,6 +41,14 @@
     })
 }
 
+export const add = (row) => {
+    return request({
+        url: '/api/accreditationRecords/save',
+        method: 'post',
+        data: row
+    })
+}
+
 export const update = (row) => {
     return request({
         url: '/api/accreditationRecords/update',
diff --git a/src/api/examapi/examination.js b/src/api/examapi/examination.js
index d7e6939..751e17c 100644
--- a/src/api/examapi/examination.js
+++ b/src/api/examapi/examination.js
@@ -45,4 +45,12 @@
         method: 'post',
         data: row
     })
+}
+
+export const applyConfirm = (row) => {
+    return request({
+        url: '/api/exampaper/applyConfirm',
+        method: 'post',
+        data: row
+    })
 }
\ No newline at end of file
diff --git a/src/api/examapi/modifiedGrades.js b/src/api/examapi/modifiedGrades.js
index 9281f63..fadc1e4 100644
--- a/src/api/examapi/modifiedGrades.js
+++ b/src/api/examapi/modifiedGrades.js
@@ -26,4 +26,12 @@
         method: 'post',
         data: row
     })
+}
+
+export const batchAudit = (row) => {
+    return request({
+        url: '/api/scoreAuditRecords/batchAudit',
+        method: 'post',
+        data: row
+    })
 }
\ No newline at end of file
diff --git a/src/api/securityUnit/securityUnit.js b/src/api/securityUnit/securityUnit.js
index 9791802..ba2d3db 100644
--- a/src/api/securityUnit/securityUnit.js
+++ b/src/api/securityUnit/securityUnit.js
@@ -1,183 +1,195 @@
 import request from '@/router/axios';
 
 export const getdata = (current, size, params) => {
-  return request({
-    url: '/api/information/page',
-    // url: 'http://192.168.0.104:80/information/page',
-    method: 'get',
-    params: {
-      ...params,
-      current,
-      size,
-    }
-  })
+    return request({
+        url: '/api/information/page',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size,
+        }
+    })
 }
 
 export const getOncedata = (params) => {
-  return request({
-    url: '/api/information/detail',
-    // url: 'http://192.168.0.104:80/information/page',
-    method: 'get',
-    params: {
-      ...params,
-      // current,
-      // size,
-    }
-  })
+    return request({
+        url: '/api/information/detail',
+        method: 'get',
+        params: {
+            ...params,
+        }
+    })
 }
 
 
 export const adddata = (row) => {
-  return request({
-    url: '/api/information/save',
-    // url: 'http://192.168.0.104:80/information/save',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/information/save',
+        method: 'post',
+        data: row
+    })
 }
 
 export const update = (row) => {
-  return request({
-    url: '/api/information/update',
-    // url: 'http://192.168.0.104:80/information/update',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/information/update',
+        method: 'post',
+        data: row
+    })
 }
 
 export const remove = (ids, departmentid) => {
-  console.log(ids)
-  return request({
-    url: '/api/information/remove',
-    // url: 'http://192.168.0.104:80/information/remove',
-    method: 'post',
-    params: {
-      creditcode: ids,
-      departmentid: departmentid
-    },
-  })
+    console.log(ids)
+    return request({
+        url: '/api/information/remove',
+        method: 'post',
+        params: {
+            creditcode: ids,
+            departmentid: departmentid
+        },
+    })
 }
 
 export const getdata1 = (current, size, params) => {
-  return request({
-    url: '/api/shareholder/page',
-    // url: 'http://192.168.0.104:80/shareholder/page',
-    method: 'get',
-    params: {
-      ...params,
-      current,
-      size,
-    }
-  })
+    return request({
+        url: '/api/shareholder/page',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size,
+        }
+    })
 }
 
 export const getdataOnce1 = (current, size, params) => {
-  return request({
-    url: '/api/shareholder/selectShareholderInfo',
-    // url: 'http://192.168.0.104:80/shareholder/selectShareholderInfo',
-    method: 'post',
-    params: {
-      ...params,
-      current,
-      size,
-    }
-  })
+    return request({
+        url: '/api/shareholder/selectShareholderInfo',
+        method: 'post',
+        params: {
+            ...params,
+            current,
+            size,
+        }
+    })
+}
+
+export const getDetail1 = (id) => {
+    return request({
+        url: '/api/shareholder/detail',
+        method: 'get',
+        params: {
+            id,
+        }
+    })
+}
+
+export const getBusinessInfo = (deptId) => {
+    return request({
+        url: '/api/business/getBusinessInfo',
+        method: 'get',
+        params: {
+            deptId,
+        }
+    })
 }
 
 export const adddata1 = (row) => {
-  return request({
-    url: '/api/shareholder/save',
-    // url: 'http://192.168.0.104:80/shareholder/save',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/shareholder/save',
+        method: 'post',
+        data: row
+    })
 }
 
 export const update1 = (row) => {
-  return request({
-    url: '/api/shareholder/update',
-    // url: 'http://192.168.0.104:80/shareholder/update',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/shareholder/update',
+        method: 'post',
+        data: row
+    })
 }
 
 export const remove1 = (ids) => {
-  return request({
-    url: '/api/shareholder/remove',
-    // url: 'http://192.168.0.104:80/shareholder/remove',
-    method: 'post',
-    params: {
-      ids,
-    }
-  })
+    return request({
+        url: '/api/shareholder/remove',
+        method: 'post',
+        params: {
+            ids,
+        }
+    })
 }
 
 
 export const getdataOnce2 = (current, size, params) => {
-  return request({
-    url: '/api/member/selectMemberInfo',
-    // url: 'http://192.168.0.104:80/member/selectMemberInfo',
-    method: 'post',
-    params: {
-      ...params,
-      current,
-      size,
-    }
-  })
+    return request({
+        url: '/api/member/selectMemberInfo',
+        method: 'post',
+        params: {
+            ...params,
+            current,
+            size,
+        }
+    })
+}
+
+
+export const getDetail2 = (id) => {
+    return request({
+        url: '/api/member/detail',
+        method: 'get',
+        params: {
+            id,
+        }
+    })
 }
 
 
 export const getdata2 = (current, size, params) => {
-  return request({
-    // url: 'http://192.168.0.104:80/member/list',
-    url: '/api/member/list',
-    method: 'get',
-    params: {
-      ...params,
-      current,
-      size,
-    }
-  })
+    return request({
+        url: '/api/member/list',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size,
+        }
+    })
 }
 
 export const adddata2 = (row) => {
-  return request({
-    // url: 'http://192.168.0.104:80/member/save',
-    url: '/api/member/save',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/member/save',
+        method: 'post',
+        data: row
+    })
 }
 
 export const update2 = (row) => {
-  return request({
-    // url: 'http://192.168.0.104:80/member/update',
-    url: '/api/member/update',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/member/update',
+        method: 'post',
+        data: row
+    })
 }
 
 export const remove2 = (ids) => {
-  return request({
-    // url: 'http://192.168.0.104:80/member/remove',
-    url: '/api/member/remove',
-    method: 'post',
-    params: {
-      ids,
-    }
-  })
+    return request({
+        url: '/api/member/remove',
+        method: 'post',
+        params: {
+            ids,
+        }
+    })
 }
 
 export const getDeptLazyTree = (parentId) => {
-  return request({
-    url: '/api/blade-system/dept/lazy-trees',
-    // url: 'http://192.168.0.104:80/blade-system/dept/lazy-trees',
-    method: 'get',
-    // params: {
-    //   parentId
-    // }
-  })
-}
-
+    return request({
+        url: '/api/blade-system/dept/lazy-trees',
+        method: 'get',
+        // params: {
+        //   parentId
+        // }
+    })
+}
\ No newline at end of file
diff --git a/src/api/statisticalQueryManagement/statisticalQueryManagement.js b/src/api/statisticalQueryManagement/statisticalQueryManagement.js
new file mode 100644
index 0000000..7422d4d
--- /dev/null
+++ b/src/api/statisticalQueryManagement/statisticalQueryManagement.js
@@ -0,0 +1,88 @@
+import request from "@/router/axios";
+export const selectLi = params => {
+    return request({
+        url: "/api/information/selectSecurityStatistics",
+        method: "get",
+        params: params
+    });
+};
+export const selectYw = params => {
+    return request({
+        url: "/api/information/selectBusinessStatistics",
+        method: "get",
+        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 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 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"
+    });
+};
+// 服务对象数量
+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
+    });
+};
\ No newline at end of file
diff --git a/src/components/liu-legend/Legend.vue b/src/components/liu-legend/Legend.vue
new file mode 100644
index 0000000..73bbb05
--- /dev/null
+++ b/src/components/liu-legend/Legend.vue
@@ -0,0 +1,54 @@
+<template>
+  <span id="l-legendOur">
+    <span v-for="(value,index) in datas" :key="index" class="l-l-o">
+      <span class="l-l-Img" :style="{backgroundColor: value.color}"></span>
+      <span class="l-l-Text">{{value.text}}</span>
+    </span>
+  </span>
+</template>
+<script>
+
+export default ({
+    props:['datas'],
+    data(){
+        return{
+            datalist:[//示例数据格式
+                {
+                    color: 'rgb(236, 83, 37)',
+                    text: '掉线'
+                },
+                {
+                    color: 'rgb(49, 49, 49)',
+                    text: '在线'
+                }
+            ]
+        }
+    }
+})
+</script>
+
+<style lang="scss" >
+#l-legendOur{
+    position: absolute;
+    right: 100px;
+    top: 5px;
+    .l-l-o{
+        color: rgba($color: #000000, $alpha: .8);
+        color: rgb(49, 49, 49);
+        position: relative;
+        right: 150px;
+        margin-left: 10px;
+        font-size: 14px;
+        font-weight: 500;
+        font-family: 'Chinese Quote,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol';
+    }
+    .l-l-Img{
+        display: inline-block;
+        width: 10px;
+        height: 10px;
+        // border: 1px solid rgb(17, 198, 253);
+        border-radius: 3px;
+        margin-right: 8px;
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/lang/zh.js b/src/lang/zh.js
index 1f914b0..0e3d7bf 100644
--- a/src/lang/zh.js
+++ b/src/lang/zh.js
@@ -1,115 +1,115 @@
 export default {
-  tip: '提示',
-  title: '保安服务企业管理',
-  logoutTip: '退出系统, 是否继续?',
-  submitText: '确定',
-  cancelText: '取消',
-  search: '请输入搜索内容',
-  menuTip: '没有发现菜单',
-  wel: {
-    info: '早安,Smallwei,Avuex一款超乎你想象的框架!',
-    dept: '我是avue团队下的一个部门-哈皮部门-哈皮职位',
-    team: '团队内排名',
-    project: '项目访问',
-    count: '项目数',
-    data: {
-      subtitle: '实时',
-      column1: '分类统计',
-      column2: '附件统计',
-      column3: '文章统计',
-      key1: '分',
-      key2: '附',
-      key3: '评',
-      text1: '当前分类总记录数',
-      text2: '当前上传的附件数',
-      text3: '评论次数'
+    tip: '提示',
+    title: '保安服务企业管理',
+    logoutTip: '退出系统, 是否继续?',
+    submitText: '确定',
+    cancelText: '取消',
+    search: '请输入搜索内容',
+    menuTip: '没有发现菜单',
+    wel: {
+        info: '早安,Smallwei,Avuex一款超乎你想象的框架!',
+        dept: '我是avue团队下的一个部门-哈皮部门-哈皮职位',
+        team: '团队内排名',
+        project: '项目访问',
+        count: '项目数',
+        data: {
+            subtitle: '实时',
+            column1: '分类统计',
+            column2: '附件统计',
+            column3: '文章统计',
+            key1: '分',
+            key2: '附',
+            key3: '评',
+            text1: '当前分类总记录数',
+            text2: '当前上传的附件数',
+            text3: '评论次数'
+        },
+        data2: {
+            column1: '今日注册',
+            column2: '今日登录',
+            column3: '今日订阅',
+            column4: '今日评论'
+        },
+        data3: {
+            column1: '转化率(日同比 28%)',
+            column2: '签到率(日同比 11%)',
+            column3: '签到率(日同比 11%)'
+        },
+        data4: {
+            column1: '错误日志',
+            column2: '数据展示',
+            column3: '权限管理',
+            column4: '用户管理'
+        },
+        table: {
+            rw: '工作任务',
+            nr: '工作内容',
+            sj: '工作时间'
+        }
     },
-    data2: {
-      column1: '今日注册',
-      column2: '今日登录',
-      column3: '今日订阅',
-      column4: '今日评论'
+    route: {
+        info: '个人信息',
+        website: 'bladex官网',
+        avuexwebsite: 'avuex官网',
+        dashboard: '首页',
+        more: '更多',
+        tags: '标签',
+        store: '本地存储',
+        api: '全局函数',
+        logs: '日志监控',
+        table: '表格',
+        form: '表单',
+        top: '返回顶部',
+        data: '数据展示',
+        permission: '权限',
+        error: '异常页面',
+        test: '测试页面'
     },
-    data3: {
-      column1: '转化率(日同比 28%)',
-      column2: '签到率(日同比 11%)',
-      column3: '签到率(日同比 11%)'
+    login: {
+        title: '登录 ',
+        info: '保安服务企业管理',
+        tenantId: '请输入保安单位ID',
+        username: '请输入账号',
+        password: '请输入密码',
+        password2: '请再次输入密码',
+        name: '请输入姓名',
+        wechat: '微信',
+        cardid: '请输入身份证号',
+        qq: 'QQ',
+        zc: '注册',
+        gb: '关闭',
+        github: 'github',
+        gitee: '码云',
+        phone: '请输入手机号',
+        code: '请输入验证码',
+        submit: '登录',
+        userLogin: '账号密码登录',
+        phoneLogin: '账号注册',
+        thirdLogin: '第三方系统登录',
+        msgText: '发送验证码',
+        msgSuccess: '秒后重发',
     },
-    data4: {
-      column1: '错误日志',
-      column2: '数据展示',
-      column3: '权限管理',
-      column4: '用户管理'
+    navbar: {
+        logOut: '退出登录',
+        userinfo: '个人信息',
+        dashboard: '首页',
+        lock: '锁屏',
+        bug: '没有错误日志',
+        bugs: '条错误日志',
+        screenfullF: '退出全屏',
+        screenfull: '全屏',
+        language: '中英文',
+        notice: '消息通知',
+        theme: '主题',
+        userSManual: '用户手册',
+        drive: '驱动下载',
+        color: '换色'
     },
-    table: {
-      rw: '工作任务',
-      nr: '工作内容',
-      sj: '工作时间'
+    tagsView: {
+        search: '搜索',
+        menu: '更多',
+        clearCache: '清除缓存',
+        closeOthers: '关闭其它',
+        closeAll: '关闭所有'
     }
-  },
-  route: {
-    info: '个人信息',
-    website: 'bladex官网',
-    avuexwebsite: 'avuex官网',
-    dashboard: '首页',
-    more: '更多',
-    tags: '标签',
-    store: '本地存储',
-    api: '全局函数',
-    logs: '日志监控',
-    table: '表格',
-    form: '表单',
-    top: '返回顶部',
-    data: '数据展示',
-    permission: '权限',
-    error: '异常页面',
-    test: '测试页面'
-  },
-  login: {
-    title: '登录 ',
-    info: '保安服务企业管理',
-    tenantId: '请输入保安单位ID',
-    username: '请输入账号',
-    password: '请输入密码',
-    password2: '请再次输入密码',
-    name: '请输入姓名',
-    wechat: '微信',
-    cardid: '请输入身份证号',
-    qq: 'QQ',
-    zc: '注册',
-    gb: '关闭',
-    github: 'github',
-    gitee: '码云',
-    phone: '请输入手机号',
-    code: '请输入验证码',
-    submit: '登录',
-    userLogin: '账号密码登录',
-    phoneLogin: '账号注册',
-    thirdLogin: '第三方系统登录',
-    msgText: '发送验证码',
-    msgSuccess: '秒后重发',
-  },
-  navbar: {
-    logOut: '退出登录',
-    userinfo: '个人信息',
-    dashboard: '首页',
-    lock: '锁屏',
-    bug: '没有错误日志',
-    bugs: '条错误日志',
-    screenfullF: '退出全屏',
-    screenfull: '全屏',
-    language: '中英文',
-    notice: '消息通知',
-    theme: '主题',
-    userSManual: '用户手册',
-    drive: '驱动',
-    color: '换色'
-  },
-  tagsView: {
-    search: '搜索',
-    menu: '更多',
-    clearCache: '清除缓存',
-    closeOthers: '关闭其它',
-    closeAll: '关闭所有'
-  }
-}
+}
\ No newline at end of file
diff --git a/src/page/index/top/index.vue b/src/page/index/top/index.vue
index b752661..e713e7a 100644
--- a/src/page/index/top/index.vue
+++ b/src/page/index/top/index.vue
@@ -28,7 +28,7 @@
           <top-color></top-color>
         </div>
       </el-tooltip>
-      <el-tooltip
+      <!-- <el-tooltip
         v-if="showDebug"
         effect="dark"
         :content="logsFlag ? $t('navbar.bug') : logsLen + $t('navbar.bugs')"
@@ -37,8 +37,9 @@
         <div class="top-bar__item">
           <top-logs></top-logs>
         </div>
-      </el-tooltip>
-      <el-tooltip
+      </el-tooltip> -->
+      <!-- 锁屏 -->
+      <!-- <el-tooltip
         v-if="showLock"
         effect="dark"
         :content="$t('navbar.lock')"
@@ -47,7 +48,7 @@
         <div class="top-bar__item">
           <top-lock></top-lock>
         </div>
-      </el-tooltip>
+      </el-tooltip> -->
       <!-- 主题 -->
       <!-- <el-tooltip
         v-if="showTheme"
diff --git a/src/page/index/top/top-drive.vue b/src/page/index/top/top-drive.vue
index 7b66ab9..3a68ccd 100644
--- a/src/page/index/top/top-drive.vue
+++ b/src/page/index/top/top-drive.vue
@@ -17,7 +17,8 @@
     </el-dialog>
 
     <span>
-      <i class="el-icon-receiving" @click="open" style="font-size: 20px"></i>
+      <!-- <i class="el-icon-receiving" @click="open" style="font-size: 20px"></i> -->
+      <img class="imgstop" src="img/top/driver.png" alt="" style="width:40px ;" @click="open">
     </span>
   </div>
 </template>
@@ -61,5 +62,10 @@
 .list {
   width: 100%;
 }
+
+.imgstop{
+  position: relative;
+  top: 19px;
+}
 </style>
 
diff --git a/src/page/index/top/top-userSManual.vue b/src/page/index/top/top-userSManual.vue
index 1aecbe8..4cbc9e1 100644
--- a/src/page/index/top/top-userSManual.vue
+++ b/src/page/index/top/top-userSManual.vue
@@ -17,7 +17,8 @@
     </el-dialog>
 
     <span>
-      <i class="el-icon-mobile" @click="open" style="font-size: 20px"></i>
+      <img class="imgstop" src="img/top/heard.png" alt="" style="width:40px" @click="open">
+      <!-- <i class="el-icon-mobile" @click="open" style="font-size: 20px"></i> -->
     </span>
   </div>
 </template>
@@ -110,5 +111,9 @@
 .list {
   width: 100%;
 }
+.imgstop{
+  position: relative;
+  top: 19px;
+}
 </style>
 
diff --git a/src/router/views/index.js b/src/router/views/index.js
index 084bc04..96a6ffb 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -1,1037 +1,1037 @@
 import Layout from '@/page/index/'
 
 export default [{
-    path: '/wel',
-    component: Layout,
-    redirect: '/wel/index',
-    children: [{
-        path: 'index',
-        name: '首页',
-        meta: {
-            i18n: 'dashboard'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/wel/index')
+        path: '/wel',
+        component: Layout,
+        redirect: '/wel/index',
+        children: [{
+            path: 'index',
+            name: '首页',
+            meta: {
+                i18n: 'dashboard'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/wel/index')
+        }, {
+            path: 'dashboard',
+            name: '控制台',
+            meta: {
+                i18n: 'dashboard',
+                menu: false,
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/wel/dashboard')
+        }]
     }, {
-        path: 'dashboard',
-        name: '控制台',
-        meta: {
-            i18n: 'dashboard',
-            menu: false,
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/wel/dashboard')
-    }]
-}, {
-    path: '/test',
-    component: Layout,
-    redirect: '/test/index',
-    children: [{
-        path: 'index',
-        name: '测试页',
-        meta: {
-            i18n: 'test'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/util/test')
-    }]
-}, {
-    path: '/dict-horizontal',
-    component: Layout,
-    redirect: '/dict-horizontal/index',
-    children: [{
-        path: 'index',
-        name: '字典管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/util/demo/dict-horizontal')
-    }]
-}, {
-    path: '/dict-vertical',
-    component: Layout,
-    redirect: '/dict-vertical/index',
-    children: [{
-        path: 'index',
-        name: '字典管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/util/demo/dict-vertical')
-    }]
-}, {
-    path: '/info',
-    component: Layout,
-    redirect: '/info/index',
-    children: [{
-        path: 'index',
-        name: '个人信息',
-        meta: {
-            i18n: 'info'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/system/userinfo')
-    }]
-}, {
-    path: '/work/process/leave',
-    component: Layout,
-    redirect: '/work/process/leave/form',
-    children: [{
-        path: 'form/:processDefinitionId',
-        name: '请假流程',
-        meta: {
-            i18n: 'work'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/work/process/leave/form')
+        path: '/test',
+        component: Layout,
+        redirect: '/test/index',
+        children: [{
+            path: 'index',
+            name: '测试页',
+            meta: {
+                i18n: 'test'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/util/test')
+        }]
     }, {
-        path: 'handle/:taskId/:processInstanceId/:businessId',
-        name: '处理请假流程',
-        meta: {
-            i18n: 'work'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/work/process/leave/handle')
+        path: '/dict-horizontal',
+        component: Layout,
+        redirect: '/dict-horizontal/index',
+        children: [{
+            path: 'index',
+            name: '字典管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/util/demo/dict-horizontal')
+        }]
     }, {
-        path: 'detail/:processInstanceId/:businessId',
-        name: '请假流程详情',
-        meta: {
-            i18n: 'work'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
-    }]
-}, {
-    path: '/securityAnalysis',
-    component: Layout,
-    redirect: '/securityAnalysis/index',
-    children: [{
-        path: 'index',
-        name: '保安单位情况智能分析',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
-    }]
-}, {
-    path: '/recruitmentManagement',
-    component: Layout,
-    redirect: '/recruitmentManagement/index',
-    children: [{
-        path: 'index',
-        name: '招聘管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
-    }]
-}, {
-    path: '/securityUnit',
-    component: Layout,
-    redirect: '/securityUnit/index',
-    children: [{
-        path: 'index',
-        name: '保安单位信息',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
-    }]
-}, {
-    path: '/securityGuard',
-    component: Layout,
-    redirect: '/securityGuard/securityGuard',
-    children: [{
-        path: 'index',
-        name: '保安员管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
-    }]
-}, {
-    path: '/securityGuardOnce',
-    component: Layout,
-    redirect: '/securityGuard/securityGuardOnce',
-    children: [{
-        path: 'index',
-        name: '保安员查询',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardOnce')
-    }]
-}, {
-    path: '/securityGuardDetail',
-    component: Layout,
-    redirect: '/securityGuardDetail/index',
-    children: [{
-        path: 'index',
-        name: '保安员详情',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
-    }]
-}, {
-    path: '/resource',
-    component: Layout,
-    redirect: '/resource/attach',
-    children: [{
-        path: 'attach',
-        name: '附件上传',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/attach')
-    }]
-}, {
-    path: '/securityUnitChild',
-    component: Layout,
-    redirect: '/securityUnitChild/index',
-    children: [{
-        path: 'index',
-        name: '保安单位详情',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
-    }]
-}, {
-    path: '/securityGuard',
-    component: Layout,
-    redirect: '/securityGuard/securityGuard',
-    children: [{
-        path: 'index',
-        name: '保安员管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
-    }]
-},
-// {
-//     path: '/dispatch/dispatch',
-//     component: Layout,
-//     redirect: '/dispatch/dispatch',
-//     children: [{
-//         path: 'index',
-//         name: '派遣服务管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
-//     }]
-// },
-{
-    path: '/desk',
-    component: Layout,
-    redirect: '/desk/notice',
-    children: [{
-        path: 'index',
-        name: '通知公告',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/desk/notice')
-    }]
-},
-{
-    path: '/talk',
-    component: Layout,
-    redirect: '/talk/talk',
-    children: [{
-        path: 'index',
-        name: '心理咨询',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/talk/talk')
-    }]
-},
-{
-    path: '/workreport',
-    component: Layout,
-    redirect: '/workreport/workreport',
-    children: [{
-        path: 'workreport',
-        name: '发起的汇报',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/workreport/workreport')
-    }]
-},
-{
-    path: '/workreport',
-    component: Layout,
-    redirect: '/workreport/workreply',
-    children: [{
-        path: 'workreply',
-        name: '接收的汇报',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/workreport/workreply')
-    }]
-}, {
-    path: '/resource',
-    component: Layout,
-    redirect: '/resource/attachCopy',
-    children: [{
-        path: 'attachCopy',
-        name: '保安单位附件上传',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/attachCopy')
-    }]
-},
-// {
-//     path: '/dispatch',
-//     component: Layout,
-//     redirect: '/dispatch/dispatch',
-//     children: [{
-//         path: 'dispatch',
-//         name: '派遣单位管理',
-//         meta: {
-//             i18n: 'dispatch'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
-//     }, {
-//         path: 'dispatchChildoperable',
-//         name: '派遣记录管理',
-//         meta: {
-//             i18n: 'dispatch'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
-//     }]
-// },
-// {
-//     path: '/dispatchChild',
-//     component: Layout,
-//     redirect: '/dispatchChild/index',
-//     children: [{
-//         path: 'index',
-//         name: '派遣服务记录',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
-//     }]
-// },
-// {
-//     path: '/equipments',
-//     component: Layout,
-//     redirect: '/equipments/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安公司装备管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/equipments/index')
-//     }]
-// }, {
-//     path: '/car',
-//     component: Layout,
-//     redirect: '/car/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安公司车辆管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/car/index')
-//     }]
-// }, {
-//     path: '/gun',
-//     component: Layout,
-//     redirect: '/gun/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安公司枪支管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/gun/index')
-//     }]
-// },
-// {
-//     path: '/securityEquipment',
-//     component: Layout,
-//     redirect: '/securityEquipment',
-//     children: [{
-//         path: 'equipments',
-//         name: '装备管理',
-//         meta: {
-//             i18n: 'securityEquipment'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
-//     }, {
-//         path: 'car',
-//         name: '车辆管理',
-//         meta: {
-//             i18n: 'car'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
-//     }, {
-//         path: 'gun',
-//         name: '车辆管理',
-//         meta: {
-//             i18n: 'gun'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
-//     }]
-// },
-// {
-//     path: '/trainingRegistration',
-//     component: Layout,
-//     redirect: '/trainingRegistration/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安培训报名管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import ( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
-//     }]
-// },
-{
-    path: '/securityAnalysis',
-    component: Layout,
-    redirect: '/securityAnalysis/index',
-    children: [{
-        path: 'index',
-        name: '保安单位情况智能分析',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
-    }]
-}, {
-    path: '/recruitmentManagement',
-    component: Layout,
-    redirect: '/recruitmentManagement/index',
-    children: [{
-        path: 'index',
-        name: '招聘管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
-    }]
-}, {
-    path: '/ownerFeedback',
-    component: Layout,
-    redirect: '/ownerFeedback/index',
-    children: [{
-        path: 'index',
-        name: '业主反馈',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/ownerFeedback/owner')
-    }]
-}, {
-    path: '/securityUnit',
-    component: Layout,
-    redirect: '/securityUnit/index',
-    children: [{
-        path: 'index',
-        name: '保安单位信息',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
-    }]
-}, {
-    path: '/securityGuard',
-    component: Layout,
-    redirect: '/securityGuard/securityGuard',
-    children: [{
-        path: 'index',
-        name: '保安员查询',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
-    }]
-}, {
-    path: '/securityGuardDetail',
-    component: Layout,
-    redirect: '/securityGuardDetail/index',
-    children: [{
-        path: 'index',
-        name: '保安员详情',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
-    }]
-}, {
-    path: '/resource',
-    component: Layout,
-    redirect: '/resource/attach',
-    children: [{
-        path: 'attach',
-        name: '附件上传',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/attach')
-    }]
-}, {
-    path: '/securityUnitChild',
-    component: Layout,
-    redirect: '/securityUnitChild/index',
-    children: [{
-        path: 'index',
-        name: '保安单位详情',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
-    }]
-}, {
-    path: '/securityGuard',
-    component: Layout,
-    redirect: '/securityGuard/securityGuard',
-    children: [{
-        path: 'index',
-        name: '保安员管理',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
-    }]
-},
-// {
-//     path: '/dispatch/dispatch',
-//     component: Layout,
-//     redirect: '/dispatch/dispatch',
-//     children: [{
-//         path: 'index',
-//         name: '派遣服务管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
-//     }]
-// },
-{
-    path: '/desk',
-    component: Layout,
-    redirect: '/desk/notice',
-    children: [{
-        path: 'index',
-        name: '通知公告',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/desk/notice')
-    }]
-}, {
-    path: '/dispatch',
-    component: Layout,
-    redirect: '/dispatch/dispatch',
-    children: [{
-        path: 'dispatch',
-        name: '派遣单位管理',
-        meta: {
-            i18n: 'dispatch'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
+        path: '/dict-vertical',
+        component: Layout,
+        redirect: '/dict-vertical/index',
+        children: [{
+            path: 'index',
+            name: '字典管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/util/demo/dict-vertical')
+        }]
     }, {
-        path: 'dispatchChildoperable',
-        name: '派遣记录管理',
-        meta: {
-            i18n: 'dispatch'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
-    }]
-}, {
-    path: '/dispatchChild',
-    component: Layout,
-    redirect: '/dispatchChild/index',
-    children: [{
-        path: 'index',
-        name: '派遣服务记录',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
-    }]
-}, {
-    path: '/applyexam',
-    redirect: '/applyexam/papers',
-    component: Layout,
-    children: [{
-        path: 'papers',
-        name: '准考证信息',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/applyexam/papers')
-    }]
-},
-// {
-//     path: '/equipments',
-//     component: Layout,
-//     redirect: '/equipments/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安公司装备管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/equipments/index')
-//     }]
-// }, {
-//     path: '/car',
-//     component: Layout,
-//     redirect: '/car/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安公司车辆管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/car/index')
-//     }]
-// }, {
-//     path: '/gun',
-//     component: Layout,
-//     redirect: '/gun/index',
-//     children: [{
-//         path: 'index',
-//         name: '保安公司枪支管理',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/gun/index')
-//     }]
-// },
-// {
-//     path: '/securityEquipment',
-//     component: Layout,
-//     redirect: '/securityEquipment',
-//     children: [{
-//         path: 'equipments',
-//         name: '装备管理',
-//         meta: {
-//             i18n: 'securityEquipment'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
-//     }, {
-//         path: 'car',
-//         name: '车辆管理',
-//         meta: {
-//             i18n: 'car'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
-//     }, {
-//         path: 'gun',
-//         name: '车辆管理',
-//         meta: {
-//             i18n: 'gun'
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
-//     }]
-// },
-{
-    path: '/trainingRegistration',
-    component: Layout,
-    peixun: true,
-    redirect: '/trainingRegistration/index',
-    children: [{
-        path: 'index',
-        name: '培训报名列表',
-        meta: {
-            i18n: 'dict'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
-    }]
-},
-// {
-//     path: '/trainExam',
-//     component: Layout,
-//     redirect: '/trainExam/index',
-//     children: [{
-//         path: 'index',
-//         name: '考试申请',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import ( /* webpackChunkName: "views" */ '@/views/trainExam/index')
-//     }]
-// },
-// {
-//     path: '/applyexam',
-//     redirect: '/applyexam/index',
-//     component: Layout,
-//     children: [{
-//         path: 'index',
-//         name: '报名考试',
-//         meta: {
-//             i18n: 'index',
-//         },
-//         component: () =>
-//             import( /* webpackChunkName: "views" */ '@/views/applyexam/index')
-//     }]
-// },
-{
-    path: '/applydetailed',
-    redirect: '/applydetailed/index',
-    component: Layout,
-    children: [{
-        path: 'index',
-        name: '报名清册',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/applydetailed/index')
-    }]
-},
-{
-    path: '/trainApply',
-    redirect: '/trainApply/index',
-    component: Layout,
-    children: [{
-        path: 'index',
-        name: '报名清册',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/trainApply/index')
-    }]
-},
-{
-    path: '/startexam',
-    redirect: '/startexam/index',
-    component: Layout,
-    children: [{
-        path: 'index',
-        name: '开始考试',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/startexam/index')
-    }]
-},
-{
-    path: '/titleDetails',
-    component: () =>
-        import( /* webpackChunkName: "views" */ '@/views/exam/topicDetails')
-},
-{
-    path: '',
-    component: Layout,
-    children: [{
-        path: '/exam/subjects/:id',
-        component: () =>
-            import('@/views/exam/examSubjects'),
-        name: '题目管理',
-        title: '题目管理',
-        noCache: true
-    }]
-},
-{
-    path: '',
-    component: Layout,
-    children: [{
-        path: '/startexam/:id',
-        component: () =>
-            import('@/views/startexam/index'),
-        name: '开始考试',
-        title: '开始考试',
-        noCache: true
-    }]
-},
-// {
-//     path: '/traincompany',
-//     component: Layout,
-//     redirect: '/traincompany/index',
-//     children: [{
-//         path: 'index',
-//         name: '培训公司查询',
-//         meta: {
-//             i18n: 'dict'
-//         },
-//         component: () =>
-//             import ( /* webpackChunkName: "views" */ '@/views/traincompany/index')
-//     }]
-// },
-{
-    path: '/dispatchChildoperableSee',
-    component: Layout,
-    redirect: '/dispatchChildoperableSee/index',
-    children: [{
-        path: 'index',
-        name: '派遣记录',
-        meta: {
-            i18n: 'index'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperableSee')
-    }]
-},
-{
-    path: '/expression',
-    component: Layout,
-    redirect: '/expression/index',
-    children: [{
-        path: 'index',
-        name: '表现记录',
-        meta: {
-            i18n: 'index'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/people/expression')
-    }]
-}, {
-    path: '/job',
-    component: Layout,
-    redirect: '/job/index',
-    children: [{
-        path: 'index',
-        name: '从业记录',
-        meta: {
-            i18n: 'index'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/people/job')
-    }]
-}, {
-    path: '/resource',
-    redirect: '/resource/uploadNotice',
-    component: Layout,
-    children: [{
-        path: 'uploadNotice',
-        name: '通知公告>附件上传',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/uploadNotice')
-    }]
-},
-{
-    path: '/applydetailed',
-    redirect: '/applydetailed/papers',
-    component: Layout,
-    children: [{
-        path: 'papers',
-        name: '报名清册信息',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/applydetailed/papers')
-    }]
-},
-{
-    path: '/exam',
-    redirect: '/exam/papers',
-    component: Layout,
-    children: [{
-        path: 'papers',
-        name: '保安证',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/exam/papers')
-    }]
-}, {
-    path: '/resource',
-    redirect: '/resource/uploadPolicyRelease',
-    component: Layout,
-    children: [{
-        path: 'uploadPolicyRelease',
-        name: '政策发布>附件上传',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/uploadPolicyRelease')
-    }]
-}, {
-    path: '/securityMan',
-    redirect: '/securityMan/index',
-    component: Layout,
-    children: [{
-        path: 'index',
-        name: '保安员信息',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityMan/index')
-    }]
-}, {
-    path: '/attachOnce',
-    redirect: '/resource/attachOnce',
-    component: Layout,
-    children: [{
-        path: 'index',
-        name: '附件查阅',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/attachOnce')
-    }]
-}, {
-    path: '/resource',
-    redirect: '/resource/uploadNotification',
-    component: Layout,
-    children: [{
-        path: 'uploadNotification',
-        name: '通知通报>附件上传',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/resource/uploadNotification')
-    }]
-}, {
-    path: '/trainExam',
-    component: Layout,
-    children: [{
-        path: 'check',
-        name: '培训考试审核',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/trainExam/index')
+        path: '/info',
+        component: Layout,
+        redirect: '/info/index',
+        children: [{
+            path: 'index',
+            name: '个人信息',
+            meta: {
+                i18n: 'info'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/system/userinfo')
+        }]
     }, {
-        path: 'query',
-        name: '培训申请查询',
-        meta: {
-            i18n: 'index',
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/trainExam/index')
-    }]
-},
-{
-    path: 'modifiedGrades',
-    name: '修改成绩管理',
-    meta: {
-        i18n: 'modifiedGrades'
+        path: '/work/process/leave',
+        component: Layout,
+        redirect: '/work/process/leave/form',
+        children: [{
+            path: 'form/:processDefinitionId',
+            name: '请假流程',
+            meta: {
+                i18n: 'work'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/form')
+        }, {
+            path: 'handle/:taskId/:processInstanceId/:businessId',
+            name: '处理请假流程',
+            meta: {
+                i18n: 'work'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/handle')
+        }, {
+            path: 'detail/:processInstanceId/:businessId',
+            name: '请假流程详情',
+            meta: {
+                i18n: 'work'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
+        }]
+    }, {
+        path: '/securityAnalysis',
+        component: Layout,
+        redirect: '/securityAnalysis/index',
+        children: [{
+            path: 'index',
+            name: '保安单位情况智能分析',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
+        }]
+    }, {
+        path: '/recruitmentManagement',
+        component: Layout,
+        redirect: '/recruitmentManagement/index',
+        children: [{
+            path: 'index',
+            name: '招聘管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
+        }]
+    }, {
+        path: '/securityUnit',
+        component: Layout,
+        redirect: '/securityUnit/index',
+        children: [{
+            path: 'index',
+            name: '单位信息',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
+        }]
+    }, {
+        path: '/securityGuard',
+        component: Layout,
+        redirect: '/securityGuard/securityGuard',
+        children: [{
+            path: 'index',
+            name: '保安员管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
+        }]
+    }, {
+        path: '/securityGuardOnce',
+        component: Layout,
+        redirect: '/securityGuard/securityGuardOnce',
+        children: [{
+            path: 'index',
+            name: '保安员查询',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardOnce')
+        }]
+    }, {
+        path: '/securityGuardDetail',
+        component: Layout,
+        redirect: '/securityGuardDetail/index',
+        children: [{
+            path: 'index',
+            name: '保安员详情',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
+        }]
+    }, {
+        path: '/resource',
+        component: Layout,
+        redirect: '/resource/attach',
+        children: [{
+            path: 'attach',
+            name: '附件上传',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/attach')
+        }]
+    }, {
+        path: '/securityUnitChild',
+        component: Layout,
+        redirect: '/securityUnitChild/index',
+        children: [{
+            path: 'index',
+            name: '单位详情',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
+        }]
+    }, {
+        path: '/securityGuard',
+        component: Layout,
+        redirect: '/securityGuard/securityGuard',
+        children: [{
+            path: 'index',
+            name: '保安员管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
+        }]
     },
-    component: () =>
-        import( /* webpackChunkName: "views" */ '@/views/trainExam/modifiedGrades')
-},
-{
-    path: '/accreditationRecords',
-    component: Layout,
-    redirect: '/accreditationRecords/accreditationRecords',
-    children: [{
-        path: 'index',
-        name: '制证管理',
+    // {
+    //     path: '/dispatch/dispatch',
+    //     component: Layout,
+    //     redirect: '/dispatch/dispatch',
+    //     children: [{
+    //         path: 'index',
+    //         name: '派遣服务管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
+    //     }]
+    // },
+    {
+        path: '/desk',
+        component: Layout,
+        redirect: '/desk/notice',
+        children: [{
+            path: 'index',
+            name: '通知公告',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/desk/notice')
+        }]
+    },
+    {
+        path: '/talk',
+        component: Layout,
+        redirect: '/talk/talk',
+        children: [{
+            path: 'index',
+            name: '心理咨询',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/talk/talk')
+        }]
+    },
+    {
+        path: '/workreport',
+        component: Layout,
+        redirect: '/workreport/workreport',
+        children: [{
+            path: 'workreport',
+            name: '发起的汇报',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/workreport/workreport')
+        }]
+    },
+    {
+        path: '/workreport',
+        component: Layout,
+        redirect: '/workreport/workreply',
+        children: [{
+            path: 'workreply',
+            name: '接收的汇报',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/workreport/workreply')
+        }]
+    }, {
+        path: '/resource',
+        component: Layout,
+        redirect: '/resource/attachCopy',
+        children: [{
+            path: 'attachCopy',
+            name: '保安单位附件上传',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/attachCopy')
+        }]
+    },
+    // {
+    //     path: '/dispatch',
+    //     component: Layout,
+    //     redirect: '/dispatch/dispatch',
+    //     children: [{
+    //         path: 'dispatch',
+    //         name: '派遣单位管理',
+    //         meta: {
+    //             i18n: 'dispatch'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
+    //     }, {
+    //         path: 'dispatchChildoperable',
+    //         name: '派遣记录管理',
+    //         meta: {
+    //             i18n: 'dispatch'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
+    //     }]
+    // },
+    // {
+    //     path: '/dispatchChild',
+    //     component: Layout,
+    //     redirect: '/dispatchChild/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '派遣服务记录',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
+    //     }]
+    // },
+    // {
+    //     path: '/equipments',
+    //     component: Layout,
+    //     redirect: '/equipments/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安公司装备管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/equipments/index')
+    //     }]
+    // }, {
+    //     path: '/car',
+    //     component: Layout,
+    //     redirect: '/car/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安公司车辆管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/car/index')
+    //     }]
+    // }, {
+    //     path: '/gun',
+    //     component: Layout,
+    //     redirect: '/gun/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安公司枪支管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/gun/index')
+    //     }]
+    // },
+    // {
+    //     path: '/securityEquipment',
+    //     component: Layout,
+    //     redirect: '/securityEquipment',
+    //     children: [{
+    //         path: 'equipments',
+    //         name: '装备管理',
+    //         meta: {
+    //             i18n: 'securityEquipment'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
+    //     }, {
+    //         path: 'car',
+    //         name: '车辆管理',
+    //         meta: {
+    //             i18n: 'car'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
+    //     }, {
+    //         path: 'gun',
+    //         name: '车辆管理',
+    //         meta: {
+    //             i18n: 'gun'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
+    //     }]
+    // },
+    // {
+    //     path: '/trainingRegistration',
+    //     component: Layout,
+    //     redirect: '/trainingRegistration/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安培训报名管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import ( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
+    //     }]
+    // },
+    {
+        path: '/securityAnalysis',
+        component: Layout,
+        redirect: '/securityAnalysis/index',
+        children: [{
+            path: 'index',
+            name: '保安单位情况智能分析',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityAnalysis/index')
+        }]
+    }, {
+        path: '/recruitmentManagement',
+        component: Layout,
+        redirect: '/recruitmentManagement/index',
+        children: [{
+            path: 'index',
+            name: '招聘管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/recruitmentManagement/index')
+        }]
+    }, {
+        path: '/ownerFeedback',
+        component: Layout,
+        redirect: '/ownerFeedback/index',
+        children: [{
+            path: 'index',
+            name: '业主反馈',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/ownerFeedback/owner')
+        }]
+    }, {
+        path: '/securityUnit',
+        component: Layout,
+        redirect: '/securityUnit/index',
+        children: [{
+            path: 'index',
+            name: '保安单位信息',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityUnit/index')
+        }]
+    }, {
+        path: '/securityGuard',
+        component: Layout,
+        redirect: '/securityGuard/securityGuard',
+        children: [{
+            path: 'index',
+            name: '保安员查询',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
+        }]
+    }, {
+        path: '/securityGuardDetail',
+        component: Layout,
+        redirect: '/securityGuardDetail/index',
+        children: [{
+            path: 'index',
+            name: '保安员详情',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuardDetail')
+        }]
+    }, {
+        path: '/resource',
+        component: Layout,
+        redirect: '/resource/attach',
+        children: [{
+            path: 'attach',
+            name: '附件上传',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/attach')
+        }]
+    }, {
+        path: '/securityUnitChild',
+        component: Layout,
+        redirect: '/securityUnitChild/index',
+        children: [{
+            path: 'index',
+            name: '保安单位详情',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityUnitChild/index')
+        }]
+    }, {
+        path: '/securityGuard',
+        component: Layout,
+        redirect: '/securityGuard/securityGuard',
+        children: [{
+            path: 'index',
+            name: '保安员管理',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/securityGuard')
+        }]
+    },
+    // {
+    //     path: '/dispatch/dispatch',
+    //     component: Layout,
+    //     redirect: '/dispatch/dispatch',
+    //     children: [{
+    //         path: 'index',
+    //         name: '派遣服务管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
+    //     }]
+    // },
+    {
+        path: '/desk',
+        component: Layout,
+        redirect: '/desk/notice',
+        children: [{
+            path: 'index',
+            name: '通知公告',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/desk/notice')
+        }]
+    }, {
+        path: '/dispatch',
+        component: Layout,
+        redirect: '/dispatch/dispatch',
+        children: [{
+            path: 'dispatch',
+            name: '派遣单位管理',
+            meta: {
+                i18n: 'dispatch'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/dispatch/dispatch')
+        }, {
+            path: 'dispatchChildoperable',
+            name: '派遣记录管理',
+            meta: {
+                i18n: 'dispatch'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperable')
+        }]
+    }, {
+        path: '/dispatchChild',
+        component: Layout,
+        redirect: '/dispatchChild/index',
+        children: [{
+            path: 'index',
+            name: '派遣服务记录',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/dispatchChild/index')
+        }]
+    }, {
+        path: '/applyexam',
+        redirect: '/applyexam/papers',
+        component: Layout,
+        children: [{
+            path: 'papers',
+            name: '准考证信息',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/applyexam/papers')
+        }]
+    },
+    // {
+    //     path: '/equipments',
+    //     component: Layout,
+    //     redirect: '/equipments/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安公司装备管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/equipments/index')
+    //     }]
+    // }, {
+    //     path: '/car',
+    //     component: Layout,
+    //     redirect: '/car/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安公司车辆管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/car/index')
+    //     }]
+    // }, {
+    //     path: '/gun',
+    //     component: Layout,
+    //     redirect: '/gun/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '保安公司枪支管理',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/gun/index')
+    //     }]
+    // },
+    // {
+    //     path: '/securityEquipment',
+    //     component: Layout,
+    //     redirect: '/securityEquipment',
+    //     children: [{
+    //         path: 'equipments',
+    //         name: '装备管理',
+    //         meta: {
+    //             i18n: 'securityEquipment'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/equipments')
+    //     }, {
+    //         path: 'car',
+    //         name: '车辆管理',
+    //         meta: {
+    //             i18n: 'car'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/car')
+    //     }, {
+    //         path: 'gun',
+    //         name: '车辆管理',
+    //         meta: {
+    //             i18n: 'gun'
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/securityEquipment/gun')
+    //     }]
+    // },
+    {
+        path: '/trainingRegistration',
+        component: Layout,
+        peixun: true,
+        redirect: '/trainingRegistration/index',
+        children: [{
+            path: 'index',
+            name: '培训报名列表',
+            meta: {
+                i18n: 'dict'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/trainingRegistration/index')
+        }]
+    },
+    // {
+    //     path: '/trainExam',
+    //     component: Layout,
+    //     redirect: '/trainExam/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '考试申请',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import ( /* webpackChunkName: "views" */ '@/views/trainExam/index')
+    //     }]
+    // },
+    // {
+    //     path: '/applyexam',
+    //     redirect: '/applyexam/index',
+    //     component: Layout,
+    //     children: [{
+    //         path: 'index',
+    //         name: '报名考试',
+    //         meta: {
+    //             i18n: 'index',
+    //         },
+    //         component: () =>
+    //             import( /* webpackChunkName: "views" */ '@/views/applyexam/index')
+    //     }]
+    // },
+    {
+        path: '/applydetailed',
+        redirect: '/applydetailed/index',
+        component: Layout,
+        children: [{
+            path: 'index',
+            name: '报名清册',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/applydetailed/index')
+        }]
+    },
+    {
+        path: '/trainApply',
+        redirect: '/trainApply/index',
+        component: Layout,
+        children: [{
+            path: 'index',
+            name: '报名清册',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/trainApply/index')
+        }]
+    },
+    {
+        path: '/startexam',
+        redirect: '/startexam/index',
+        component: Layout,
+        children: [{
+            path: 'index',
+            name: '开始考试',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/startexam/index')
+        }]
+    },
+    {
+        path: '/titleDetails',
+        component: () =>
+            import ( /* webpackChunkName: "views" */ '@/views/exam/topicDetails')
+    },
+    {
+        path: '',
+        component: Layout,
+        children: [{
+            path: '/exam/subjects/:id',
+            component: () =>
+                import ('@/views/exam/examSubjects'),
+            name: '题目管理',
+            title: '题目管理',
+            noCache: true
+        }]
+    },
+    {
+        path: '',
+        component: Layout,
+        children: [{
+            path: '/startexam/:id',
+            component: () =>
+                import ('@/views/startexam/index'),
+            name: '开始考试',
+            title: '开始考试',
+            noCache: true
+        }]
+    },
+    // {
+    //     path: '/traincompany',
+    //     component: Layout,
+    //     redirect: '/traincompany/index',
+    //     children: [{
+    //         path: 'index',
+    //         name: '培训公司查询',
+    //         meta: {
+    //             i18n: 'dict'
+    //         },
+    //         component: () =>
+    //             import ( /* webpackChunkName: "views" */ '@/views/traincompany/index')
+    //     }]
+    // },
+    {
+        path: '/dispatchChildoperableSee',
+        component: Layout,
+        redirect: '/dispatchChildoperableSee/index',
+        children: [{
+            path: 'index',
+            name: '派遣记录',
+            meta: {
+                i18n: 'index'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/dispatch/dispatchChildoperableSee')
+        }]
+    },
+    {
+        path: '/expression',
+        component: Layout,
+        redirect: '/expression/index',
+        children: [{
+            path: 'index',
+            name: '表现记录',
+            meta: {
+                i18n: 'index'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/people/expression')
+        }]
+    }, {
+        path: '/job',
+        component: Layout,
+        redirect: '/job/index',
+        children: [{
+            path: 'index',
+            name: '从业记录',
+            meta: {
+                i18n: 'index'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/people/job')
+        }]
+    }, {
+        path: '/resource',
+        redirect: '/resource/uploadNotice',
+        component: Layout,
+        children: [{
+            path: 'uploadNotice',
+            name: '通知公告>附件上传',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/uploadNotice')
+        }]
+    },
+    {
+        path: '/applydetailed',
+        redirect: '/applydetailed/papers',
+        component: Layout,
+        children: [{
+            path: 'papers',
+            name: '报名清册信息',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/applydetailed/papers')
+        }]
+    },
+    {
+        path: '/exam',
+        redirect: '/exam/papers',
+        component: Layout,
+        children: [{
+            path: 'papers',
+            name: '保安证',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/exam/papers')
+        }]
+    }, {
+        path: '/resource',
+        redirect: '/resource/uploadPolicyRelease',
+        component: Layout,
+        children: [{
+            path: 'uploadPolicyRelease',
+            name: '政策发布>附件上传',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/uploadPolicyRelease')
+        }]
+    }, {
+        path: '/securityMan',
+        redirect: '/securityMan/index',
+        component: Layout,
+        children: [{
+            path: 'index',
+            name: '保安员信息',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityMan/index')
+        }]
+    }, {
+        path: '/attachOnce',
+        redirect: '/resource/attachOnce',
+        component: Layout,
+        children: [{
+            path: 'index',
+            name: '附件查阅',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/attachOnce')
+        }]
+    }, {
+        path: '/resource',
+        redirect: '/resource/uploadNotification',
+        component: Layout,
+        children: [{
+            path: 'uploadNotification',
+            name: '通知通报>附件上传',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/resource/uploadNotification')
+        }]
+    }, {
+        path: '/trainExam',
+        component: Layout,
+        children: [{
+            path: 'check',
+            name: '培训考试审核',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/trainExam/index')
+        }, {
+            path: 'query',
+            name: '培训申请查询',
+            meta: {
+                i18n: 'index',
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/trainExam/index')
+        }]
+    },
+    {
+        path: 'modifiedGrades',
+        name: '修改成绩管理',
         meta: {
-            i18n: 'index'
+            i18n: 'modifiedGrades'
         },
         component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/accreditationRecords/accreditationRecords')
-    }]
-},
-{
-    path: '/certificateOfPrint',
-    component: Layout,
-    redirect: '/certificateOfPrint/index',
-    children: [{
-        path: 'index',
-        name: '纸质证书制作',
-        meta: {
-            i18n: 'index'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/views/securityGuard/certificateOfPrint')
-    }]
-},
-{
-    path: '/userSManual',
-    component: Layout,
-    redirect: '/userSManual/index',
-    children: [{
-        path: 'index',
-        name: '用户手册',
-        meta: {
-            i18n: 'index'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/page/index/top/userSManual')
-    }]
-},
-{
-    path: '/drive',
-    component: Layout,
-    redirect: '/drive/index',
-    children: [{
-        path: 'index',
-        name: '驱动',
-        meta: {
-            i18n: 'index'
-        },
-        component: () =>
-            import( /* webpackChunkName: "views" */ '@/page/index/top/drive')
-    }]
-},
+            import ( /* webpackChunkName: "views" */ '@/views/trainExam/modifiedGrades')
+    },
+    {
+        path: '/accreditationRecords',
+        component: Layout,
+        redirect: '/accreditationRecords/accreditationRecords',
+        children: [{
+            path: 'index',
+            name: '制证管理',
+            meta: {
+                i18n: 'index'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/accreditationRecords/accreditationRecords')
+        }]
+    },
+    {
+        path: '/certificateOfPrint',
+        component: Layout,
+        redirect: '/certificateOfPrint/index',
+        children: [{
+            path: 'index',
+            name: '纸质证书制作',
+            meta: {
+                i18n: 'index'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/views/securityGuard/certificateOfPrint')
+        }]
+    },
+    {
+        path: '/userSManual',
+        component: Layout,
+        redirect: '/userSManual/index',
+        children: [{
+            path: 'index',
+            name: '用户手册',
+            meta: {
+                i18n: 'index'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/page/index/top/userSManual')
+        }]
+    },
+    {
+        path: '/drive',
+        component: Layout,
+        redirect: '/drive/index',
+        children: [{
+            path: 'index',
+            name: '驱动下载',
+            meta: {
+                i18n: 'index'
+            },
+            component: () =>
+                import ( /* webpackChunkName: "views" */ '@/page/index/top/drive')
+        }]
+    },
 ]
\ No newline at end of file
diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss
index ca1fce6..c1588fa 100644
--- a/src/styles/element-ui.scss
+++ b/src/styles/element-ui.scss
@@ -20,7 +20,7 @@
 }
 
 .el-menu--display,
-.el-menu--display + .el-submenu__icon-arrow {
+.el-menu--display+.el-submenu__icon-arrow {
     display: none;
 }
 
@@ -49,17 +49,17 @@
 
 .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 {
+.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 {
+.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;
 }
 
@@ -201,6 +201,7 @@
 .avue-form__menu--center .el-button {
     float: left;
 }
+
 .dispatch .avue-form__menu--center .el-button {
     float: none;
 }
@@ -242,7 +243,7 @@
 }
 
 //top 导航 按钮
-.el-menu--horizontal > .el-menu-item.is-active,
+.el-menu--horizontal>.el-menu-item.is-active,
 .avue-top,
 .el-dropdown {
     color: #fff !important;
@@ -285,7 +286,6 @@
 //     position: relative;
 //     right: 70px;
 // }
-
 .securityGuard .el-button.el-button--text.el-button--small:nth-child(1) {
     position: relative;
     right: 70px;
@@ -317,17 +317,16 @@
     }
 }
 
-.avue-form__group > div:last-child {
+.avue-form__group>div:last-child {
     display: inline-block !important;
-    width: auto !important;
+    // width: auto !important;
 }
 
 // 表格搜索按钮样式覆盖
 @import "./tableSearchBut.scss";
-
 .userSManual .el-card.basic-container__card.is-always-shadow,
 .userSManual .el-card__body {
     width: 100% !important;
     height: 100% !important;
     box-sizing: border-box !important;
-}
+}
\ No newline at end of file
diff --git a/src/views/accreditationRecords/accreditationRecordsPaper.vue b/src/views/accreditationRecords/accreditationRecordsPaper.vue
index 3a28218..2e7e35c 100644
--- a/src/views/accreditationRecords/accreditationRecordsPaper.vue
+++ b/src/views/accreditationRecords/accreditationRecordsPaper.vue
@@ -27,6 +27,20 @@
       @refresh-change="refreshChange"
       @on-load="onLoad"
     >
+      <template slot-scope="{ row }" slot="auditStatus">
+        <el-tag class="dtype">
+          {{
+            row.auditStatus == 1
+              ? "待审核"
+              : row.auditStatus == 2
+              ? "审核通过"
+              : "审核不通过"
+          }}
+          <i class="zc" v-if="row.auditStatus == 2"></i>
+          <i class="yj" v-if="row.auditStatus == 3"></i>
+          <i class="gz" v-if="row.auditStatus == 1"></i>
+        </el-tag>
+      </template>
       <template slot="menuLeft">
         <el-button
           style="display: none"
@@ -65,13 +79,17 @@
           @click="handleSecurityAudit"
           >批量审批
         </el-button>
+        <!--图例 components-->
+              <span>
+                <Legend :datas="datalistLIU"></Legend>
+              </span>
       </template>
       <template slot-scope="{ row }" slot="category">
         <el-tag>{{ row.categoryName }}</el-tag>
       </template>
-      <template slot-scope="{ row }" slot="userType">
+      <!-- <template slot-scope="{ row }" slot="userType">
         {{ row.userType == 6 ? "已制证" : row.userType == 7 ? "未制证" : "" }}
-      </template>
+      </template> -->
       <template slot-scope="{ type, size, row }" slot="menu">
         <el-button
           style="display: none"
@@ -205,7 +223,11 @@
 import { mapState } from "vuex";
 import Qs from "qs";
 import { getToken } from "@/util/auth";
+import Legend from "@/components/liu-legend/Legend";
 export default {
+  components: {
+    Legend,
+  },
   data() {
     return {
       check: false,
@@ -218,7 +240,20 @@
         idCardNo: "",
         registered: "",
       },
-
+      datalistLIU: [
+        {
+          color: "#29C093",
+          text: "审核通过",
+        },
+        {
+          color: "#F34A4A",
+          text: "审核不通过",
+        },
+        {
+          color: "#F48F57",
+          text: "待审核",
+        },
+      ],
       Audit: {},
       dialogFormVisible: false,
       dialogBatchAudit: false,
@@ -377,6 +412,7 @@
         searchMenuSpan: 6,
         selection: true,
         reserveSelection: true,
+        align: "center",
         tip: true,
         border: true,
         index: true,
@@ -442,9 +478,7 @@
           // },
           {
             label: "企业名称",
-            searchLabelWidth: "110",
             prop: "deptName",
-            searchLabelWidth: 80,
             // type: "tree",
             // dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
             // props: {
@@ -482,6 +516,7 @@
             prop: "avatar",
             type: "upload",
             listType: "picture-img",
+            width:60,
           },
           {
             label: "保安证编号",
@@ -510,7 +545,7 @@
             prop: "applyUnit",
             search: true,
             searchLabelWidth: 120,
-            minWidth: 105,
+            minWidth: 160,
             searchSpan: 5,
             addDisplay: false,
             editDisplay: false,
@@ -533,7 +568,7 @@
             type: "select",
             search: true,
             searchLabelWidth: 90,
-            width: 90,
+            width: 110,
             searchSpan: 4,
             addDisplay: false,
             editDisplay: false,
@@ -565,7 +600,7 @@
           },
           {
             label: "是否制证",
-            prop: "userType",
+            prop: "status",
             type: "select",
             slot: true,
             search: true,
@@ -575,12 +610,16 @@
             width: 69,
             dicData: [
               {
+                label: "全部",
+                value: 3,
+              },
+              {
                 label: "已制证",
-                value: 6,
+                value: 2,
               },
               {
                 label: "未制证",
-                value: 7,
+                value: 1,
               },
             ],
           },
@@ -648,7 +687,7 @@
   },
   created() {
     if (this.userInfo.role_name == "办证管理员") {
-      this.questionBankSearch["userType"] = 7;
+      this.questionBankSearch["status"] = 1;
       this.questionBankSearch["auditStatus"] = 2;
     }
     if (this.userInfo.role_name == "公安管理员") {
@@ -1023,7 +1062,7 @@
         }
         var data = {
           type: 2,
-          userType: this.questionBankSearch.userType,
+          status: this.questionBankSearch.status,
           applyUnit: this.questionBankSearch.applyUnit,
           auditStatus: this.questionBankSearch.auditStatus,
           deptName: this.questionBankSearch.deptName,
@@ -1072,7 +1111,7 @@
         }
         var data = {
           type: 2,
-          userType: this.questionBankSearch.userType,
+          status: this.questionBankSearch.status,
           applyUnit: this.questionBankSearch.applyUnit,
           auditStatus: this.questionBankSearch.auditStatus,
           deptName: this.questionBankSearch.deptName,
@@ -1316,4 +1355,51 @@
   line-height: 40px;
   letter-spacing: 2px;
 }
+
+
+.dtype {
+  width: 100%;
+  padding-left: 0px;
+}
+
+.dx {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 6px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #dfdfdf;
+}
+.zc {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 4px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #29c093;
+}
+.yj {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 4px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #f34a4a;
+}
+.gz {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 4px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #f48f57;
+}
 </style>
diff --git a/src/views/dispatch/dispatch.vue b/src/views/dispatch/dispatch.vue
index 0968574..06b2a61 100644
--- a/src/views/dispatch/dispatch.vue
+++ b/src/views/dispatch/dispatch.vue
@@ -214,7 +214,6 @@
       },
       option: {
         tip: false,
-        // card: true,
         index: true,
         searchSize: "mini",
         searchMenuSpan: 6,
@@ -224,7 +223,6 @@
         selection: true,
         ...this.$store.state.control.clearOtherBut,
         column: [
-          //派遣服务公司登记
           {
             label: "派遣单位名称",
             prop: "name",
@@ -233,7 +231,6 @@
             overHidden: true,
             searchSpan: 4,
             width: 210,
-            // span: 12,
             labelWidth: 138,
             rules: [
               {
@@ -242,6 +239,30 @@
                 trigger: "click",
               },
             ],
+          },
+          {
+            label: "派遣单位类型",
+            prop: "district",
+            type: "select",
+            search: false,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=dispatcherUnitType",
+            props: {
+              label: "dictValue",
+              value: "dictKey"
+            },
+            searchLabelWidth: 110,
+            overHidden: true,
+            searchSpan: 4,
+            width: 100,
+            labelWidth: 138,
+            rules: [
+              {
+                required: true,
+                message: "请选择派遣单位类型",
+                trigger: "click",
+              },
+            ],
+            dataType: "number",
           },
           {
             label: "企业名称",
@@ -253,11 +274,6 @@
               label: "title",
               value: "id",
             },
-            // hide: true,
-            // hide: !website.tenantMode,
-            // addDisplay: website.tenantMode,
-            // editDisplay: website.tenantMode,
-            // viewDisplay: website.tenantMode,
             rules: [
               {
                 required: true,
@@ -266,14 +282,10 @@
               },
             ],
             labelWidth: 138,
-            width: 230,
+            width: 180,
             searchLabelWidth: 80,
             search: true,
             searchSpan: 4,
-            // editDisplay: false,
-            // addDisplay: false,
-            // hide: true,
-            // span: 11,
           },
           {
             label: "保安服务类型",
@@ -344,6 +356,7 @@
             viewDisplay: false,
             overHidden: true,
             labelWidth: 138,
+            width:100,
             type: "tree",
             dicUrl: "/api/jurisdiction/lazy-tree",
             props: {
@@ -365,30 +378,6 @@
             prop: "address",
             labelWidth: 138,
           },
-          // {
-          //   label: "合同生效时间",
-          //   prop: "releaseTimeRange",
-          //   type: "date",
-          //   format: "yyyy-MM-dd",
-          //   valueFormat: "yyyy-MM-dd",
-          //   searchValue: [this.getStartTime(), this.getEndTime()],
-          //   // searchRange: true,
-          //   searchSpan: 5,
-          //   searchLabelWidth: 110,
-          //   hide: true,
-          //   value: [this.getStartTime(), this.getEndTime()],
-          //   // addDisplay: false,
-          //   // editDisplay: false,
-          //   // viewDisplay: false,
-          //   range: true,
-          //   rules: [
-          //     {
-          //       required: true,
-          //       message: "请输入时间",
-          //       trigger: "blur",
-          //     },
-          //   ],
-          // },
           {
             label: "合同开始时间",
             prop: "startTime",
@@ -404,8 +393,6 @@
                 trigger: "click",
               },
             ],
-            // searchSpan: 4,
-            // overHidden: true
           },
           {
             label: "合同结束时间",
@@ -442,17 +429,6 @@
             prop: "phone",
             labelWidth: 138,
             width: 130,
-            // rules: [
-            //   {
-            //     required: true,
-            //     message: "请输入联系方式",
-            //     trigger: "click",
-            //   },
-            //   {
-            //     validator: phones,
-            //     trigger: ["change", "blur"],
-            //   },
-            // ],
           },
           {
             label: " 负责人",
@@ -483,6 +459,7 @@
               // },
             ],
           },
+          
           {
             label: "派遣保安员数",
             prop: "num",
@@ -505,23 +482,44 @@
   },
   created() {
     var that = this;
-    if (this.userInfo.role_name == "保安公司管理员") {
-      const deptColumn = this.findObject(this.option.column, "deptId");
-      deptColumn.search = false;
-      deptColumn.addDisplay = false;
-      deptColumn.editDisplay = false;
-      deptColumn.viewDisplay = false;
-      deptColumn.hide = true;
+    var roleName = this.userInfo.role_name;
+    // if (this.userInfo.role_name == "保安公司管理员") {
+    //   const deptColumn = this.findObject(this.option.column, "deptId");
+    //   deptColumn.search = false;
+    //   deptColumn.addDisplay = false;
+    //   deptColumn.editDisplay = false;
+    //   deptColumn.viewDisplay = false;
+    //   deptColumn.hide = true;
+    //   this.useifid = this.userInfo.dept_id;
+    // }
+
+    if (
+      roleName == "保安公司管理员" ||
+      roleName == "保安" ||
+      roleName == "分公司管理员"
+    ) {
+      //查询保安单位信息(包含子级)
+      const column = this.findObject(this.option.column, "deptId");
+      // column.search = false;
+      //默认全部展开
+      column.defaultExpandAll = true;
+      column.dicUrl =
+        "/api/blade-system/dept/security_lazy-tree?deptId=" +
+        this.userInfo.dept_id;
+      //赋值
+      column.value = that.userInfo.dept_id;
       this.useifid = this.userInfo.dept_id;
-    }
-    //公安局进入
-    if (this.userInfo.role_name == "公安管理员") {
-      that.option.column[1].dicUrl =
-        "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697&jurisdiction=" +
+    } else if (roleName == "公安管理员" || roleName == "administrator") {
+      var columnDept = that.findObject(that.option.column, "deptId");
+      columnDept.dicUrl =
+        "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
         that.userInfo.jurisdiction;
     } else {
-      that.option.column[1].dicUrl =
-        "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697";
+      //查询保安单位信息(包含子级)
+      const column = this.findObject(this.option.column, "deptId");
+      // column.search = false;
+      //默认全部展开
+      column.dicUrl = "/api/blade-system/dept/security_lazy-tree";
     }
   },
   computed: {
@@ -571,7 +569,6 @@
       //   this.$message.success("页码" + val);
     },
     rowSave(form, done, loading) {
-      // form["deptId"] = this.userInfo.dept_id;
       if (this.useifid != 266) {
         form["deptId"] = this.useifid;
       }
@@ -669,10 +666,7 @@
       window.localStorage.setItem("paqiandata", JSON.stringify(row));
       this.$router.push({
         path: "/dispatchChild",
-        // redirect: { name: "foo" },
-        // query: { row: row },
         query: { rowdispatch: "fromDispatch" },
-        // params: { row: row.identificationnumber },
       });
     },
     getStartTime() {
@@ -737,6 +731,9 @@
           if (this.data[k].num == -1) {
             this.data[k].num = null;
           }
+          if (this.data[k].district == -1) {
+            this.data[k].district = null;
+          }
         }
         window.localStorage.setItem("paqiandataS", JSON.stringify(this.data));
         this.loading = false;
diff --git a/src/views/dispatch/dispatchChildoperable.vue b/src/views/dispatch/dispatchChildoperable.vue
index 0e62499..8e4ae58 100644
--- a/src/views/dispatch/dispatchChildoperable.vue
+++ b/src/views/dispatch/dispatchChildoperable.vue
@@ -73,21 +73,15 @@
         selection: true,
         ...this.$store.state.control.clearOtherBut,
         column: [
-          // },
           {
             label: "派遣单位",
             prop: "dispatcherCompany",
-            // addDisplay: false,
-            // editDisplay: false,
-            // search: true,
-            // labelWidth: 120,
-            // searchSpan: 4,
             minWidth: 210,
             addDisplay: false,
             editDisplay: false,
           },
           {
-            label: "保安公司",
+            label: "企业名称",
             prop: "deptId",
             search: true,
             labelWidth: 120,
@@ -99,38 +93,16 @@
               value: "id",
             },
             width: 180,
-            dicUrl: `/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697`,
+            // dicUrl: `/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697`,
             rules: [
               {
                 required: true,
-                message: "请输入保安公司",
+                message: "请输入企业名称",
                 trigger: "blur",
               },
             ],
           },
-          {
-            label: "派遣单位",
-            prop: "dispatcherUnitId",
-            labelWidth: 120,
-            searchLabelWidth: 80,
-            // dicUrl: "/api/dispatcherUnit/page-tree?deptId={{key}}",
-            props: {
-              label: "name",
-              value: "id",
-            },
-            hide: true,
-            searchSpan: 4,
-            search: true,
-            overHidden: true,
-            type: "tree",
-            rules: [
-              {
-                required: true,
-                message: "请输入派遣单位",
-                trigger: "blur",
-              },
-            ],
-          },
+          
           {
             label: "保安员",
             prop: "userIds",
@@ -273,6 +245,29 @@
             ],
           },
           {
+            label: "派遣单位",
+            prop: "dispatcherUnitId",
+            labelWidth: 120,
+            searchLabelWidth: 80,
+            // dicUrl: "/api/dispatcherUnit/page-tree?deptId={{key}}",
+            props: {
+              label: "name",
+              value: "id",
+            },
+            hide: true,
+            searchSpan: 4,
+            search: true,
+            overHidden: true,
+            type: "tree",
+            rules: [
+              {
+                required: true,
+                message: "请输入派遣单位",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
             label: "派遣地址",
             prop: "dispatcheraddress",
             labelWidth: 120,
@@ -294,27 +289,49 @@
   },
   created() {
     var that = this;
-    if (this.userInfo.role_name == "保安公司管理员") {
-      const deptColumn = this.findObject(this.option.column, "deptId");
-      deptColumn.search = false;
-      deptColumn.hide = true;
+    // if (this.userInfo.role_name == "保安公司管理员") {
+    //   const deptColumn = this.findObject(this.option.column, "deptId");
+    //   deptColumn.search = false;
+    //   deptColumn.hide = true;
+    //   this.useifid = this.userInfo.dept_id;
+    // } else {
+    //   const deptColumn = this.findObject(
+    //     this.option.column,
+    //     "dispatcherUnitId"
+    //   );
+    //   deptColumn.search = false;
+    // }
+    var roleName = this.userInfo.role_name;
+    if (
+      roleName == "保安公司管理员" ||
+      roleName == "保安" ||
+      roleName == "分公司管理员"
+    ) {
+      //查询保安单位信息(包含子级)
+      const column = this.findObject(this.option.column, "deptId");
+      // column.search = false;
+      //默认全部展开
+      column.defaultExpandAll = true;
+      column.dicUrl =
+        "/api/blade-system/dept/security_lazy-tree?deptId=" +
+        this.userInfo.dept_id;
+      //赋值
+      column.value = that.userInfo.dept_id;
       this.useifid = this.userInfo.dept_id;
-    } else {
-      const deptColumn = this.findObject(
-        this.option.column,
-        "dispatcherUnitId"
-      );
-      deptColumn.search = false;
-    }
-
-    //公安局进入
-    if (this.userInfo.role_name == "公安管理员") {
-      that.option.column[1].dicUrl =
-        "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697&jurisdiction=" +
+      this.initData(2);
+    } else if (roleName == "公安管理员" || roleName == "administrator") {
+      var columnDept = that.findObject(that.option.column, "deptId");
+      columnDept.dicUrl =
+        "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
         that.userInfo.jurisdiction;
+      this.initData(1);
     } else {
-      that.option.column[1].dicUrl =
-        "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697";
+      //查询保安单位信息(包含子级)
+      const column = this.findObject(this.option.column, "deptId");
+      // column.search = false;
+      //默认全部展开
+      column.dicUrl = "/api/blade-system/dept/security_lazy-tree";
+      this.initData(1);
     }
   },
   computed: {
@@ -479,13 +496,13 @@
           "&realName=" +
           this.form.securityName;
       }
-      if (type == "add") {
-        const userColumn = this.findObject(this.option.column, "userIds");
-        userColumn.multiple = true;
-        userColumn.dicUrl =
-          "/api/blade-user/security-dispatcher-tree?deptId=" +
-          this.userInfo.dept_id;
-      }
+      // if (type == "add") {
+      //   const userColumn = this.findObject(this.option.column, "userIds");
+      //   userColumn.multiple = true;
+      //   userColumn.dicUrl =
+      //     "/api/blade-user/security-dispatcher-tree?deptId=" +
+      //     this.userInfo.dept_id;
+      // }
       done();
     },
 
@@ -531,15 +548,15 @@
         };
       }
 
-      if (this.userInfo.role_name == "保安公司管理员") {
-        const deptColumn = this.findObject(this.option.column, "deptId");
-        deptColumn.disabled = true;
-        // deptColumn.search = false; //会报错
-        deptColumn.value = this.userInfo.dept_id;
-        this.initData(2);
-      } else {
-        this.initData(1);
-      }
+      // if (this.userInfo.role_name == "保安公司管理员") {
+      //   const deptColumn = this.findObject(this.option.column, "deptId");
+      //   deptColumn.disabled = true;
+      //   // deptColumn.search = false; //会报错
+      //   deptColumn.value = this.userInfo.dept_id;
+      //   this.initData(2);
+      // } else {
+      //   this.initData(1);
+      // }
       if (this.useifid != 266) {
         values["deptId"] = this.useifid;
       }
diff --git a/src/views/securityEquipment/car.vue b/src/views/securityEquipment/car.vue
index 06f51f1..5e6bdce 100644
--- a/src/views/securityEquipment/car.vue
+++ b/src/views/securityEquipment/car.vue
@@ -159,20 +159,37 @@
       this.option.height = this.windowHeight - 320;
     }
     var that = this;
+    var roleName = this.userInfo.role_name;
     if (
-      this.userInfo.role_name == "装备管理员" ||
-      this.userInfo.role_name == "保安公司管理员"
+      roleName == "装备管理员" ||
+      roleName == "保安公司管理员" ||
+      roleName == "保安" ||
+      roleName == "分公司管理员"
     ) {
+      //查询保安单位信息(包含子级)
+      const column = this.findObject(this.option.column, "deptId");
+      column.addDisplay = true;
+       column.editDisplay = true;
+      // column.search = false;
+      //默认全部展开
+      column.defaultExpandAll = true;
+      column.dicUrl =
+        "/api/blade-system/dept/security_lazy-tree?deptId=" +
+        this.userInfo.dept_id;
+      //赋值
+      column.value = that.userInfo.dept_id;
       this.useifid = this.userInfo.dept_id;
-    }
-    //公安局进入
-    if (this.userInfo.role_name == "公安管理员") {
-      that.option.column[4].dicUrl =
-        "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697&jurisdiction=" +
+    } else if (roleName == "公安管理员" || roleName == "administrator") {
+      var columnDept = that.findObject(that.option.column, "deptId");
+      columnDept.dicUrl =
+        "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
         that.userInfo.jurisdiction;
     } else {
-      that.option.column[4].dicUrl =
-        "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697";
+      //查询保安单位信息(包含子级)
+      const column = this.findObject(this.option.column, "deptId");
+      // column.search = false;
+      //默认全部展开
+      column.dicUrl = "/api/blade-system/dept/security_lazy-tree";
     }
   },
   methods: {
@@ -340,7 +357,7 @@
         params["jurisdiction"] = that.userInfo.jurisdiction;
       }
       //保安公司进入
-      if (this.userInfo.role_name == "保安公司管理员") {
+      if (this.userInfo.role_name == "保安公司管理员" || this.userInfo.role_name == "分公司管理员") {
         params["deptId"] = that.userInfo.dept_id;
         //导入action 修改
         const importColumn = that.findObject(
diff --git a/src/views/securityEquipment/equipments.vue b/src/views/securityEquipment/equipments.vue
index 7639113..2a0b2cc 100644
--- a/src/views/securityEquipment/equipments.vue
+++ b/src/views/securityEquipment/equipments.vue
@@ -158,21 +158,37 @@
       this.option.height = this.windowHeight - 320;
     }
     var that = this;
+    var roleName = this.userInfo.role_name;
     if (
-      this.userInfo.role_name == "装备管理员" ||
-      this.userInfo.role_name == "保安公司管理员"
+      roleName == "装备管理员" ||
+      roleName == "保安公司管理员" ||
+      roleName == "保安" ||
+      roleName == "分公司管理员"
     ) {
+      //查询保安单位信息(包含子级)
+      const column = this.findObject(this.option.column, "deptId");
+      // column.search = false;
+      column.addDisplay = true;
+      column.editDisplay = true;
+      //默认全部展开
+      column.defaultExpandAll = true;
+      column.dicUrl =
+        "/api/blade-system/dept/security_lazy-tree?deptId=" +
+        this.userInfo.dept_id;
+      //赋值
+      column.value = that.userInfo.dept_id;
       this.useifid = this.userInfo.dept_id;
-    }
-
-    //公安局进入
-    if (this.userInfo.role_name == "公安管理员") {
-      that.option.column[4].dicUrl =
-        "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697&jurisdiction=" +
+    } else if (roleName == "公安管理员" || roleName == "administrator") {
+      var columnDept = that.findObject(that.option.column, "deptId");
+      columnDept.dicUrl =
+        "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
         that.userInfo.jurisdiction;
     } else {
-      that.option.column[4].dicUrl =
-        "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697";
+      //查询保安单位信息(包含子级)
+      const column = this.findObject(this.option.column, "deptId");
+      // column.search = false;
+      //默认全部展开
+      column.dicUrl = "/api/blade-system/dept/security_lazy-tree";
     }
   },
   methods: {
diff --git a/src/views/securityEquipment/gun.js b/src/views/securityEquipment/gun.js
index 05f4a1e..ee32524 100644
--- a/src/views/securityEquipment/gun.js
+++ b/src/views/securityEquipment/gun.js
@@ -125,6 +125,7 @@
         labelWidth: 160,
         // search: true,
         type: "date",
+        row: true,
         format: "yyyy-MM-dd",
         valueFormat: "yyyy-MM-dd",
         searchSpan: 4,
@@ -134,5 +135,6 @@
             message: "请输入有效日期",
             trigger: "blur"
         }]
-    }
+    },
+
 ]
\ No newline at end of file
diff --git a/src/views/securityEquipment/gun.vue b/src/views/securityEquipment/gun.vue
index a22acae..e0bc7f7 100644
--- a/src/views/securityEquipment/gun.vue
+++ b/src/views/securityEquipment/gun.vue
@@ -139,9 +139,11 @@
   },
   created() {
     var that = this;
+    this.deptIds = this.userInfo.dept_id;
     if (
       this.userInfo.role_name == "装备管理员" ||
-      this.userInfo.role_name == "保安公司管理员"
+      this.userInfo.role_name == "保安公司管理员" ||
+      this.userInfo.role_name == "分公司管理员"
     ) {
       this.useifid = this.userInfo.dept_id;
     }
@@ -154,6 +156,9 @@
       that.option.column[5].dicUrl =
         "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697";
     }
+  },
+  mounted(){
+    this.deptIds = this.userInfo.dept_id;
   },
   methods: {
     handleImport() {
@@ -311,12 +316,13 @@
       } else {
         this.openDep("deptId");
       }
+
       //公安局进入
       if (this.userInfo.role_name == "公安管理员") {
         params["jurisdiction"] = that.userInfo.jurisdiction;
       }
       //保安公司进入
-      if (this.userInfo.role_name == "保安公司管理员") {
+      if (this.userInfo.role_name == "保安公司管理员" || this.userInfo.role_name == "分公司管理员") {
         params["deptId"] = that.userInfo.dept_id;
         //导入action 修改
         const importColumn = that.findObject(
diff --git a/src/views/securityGuard/data.js b/src/views/securityGuard/data.js
index 00a8a1f..dbfc255 100644
--- a/src/views/securityGuard/data.js
+++ b/src/views/securityGuard/data.js
@@ -1,314 +1,314 @@
 //保安员基本信息
 export var securityBaseInfoColumn = [{
-    label: "",
-    labelWidth: "20",
-    type: 'title',
-    prop: "title",
-    span: 24,
-    styles: {
-        fontSize: '24px'
-    }
-},
-{
-    label: "企业名称",
-    prop: "deptId",
-    type: "tree",
-    dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
-    // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
-    props: {
-        label: "title",
-        value: "id",
-    },
-    disabled: true,
-    span: 24,
-},
-{
-    label: "登录账号",
-    prop: "account",
-    disabled: true
-},
-{
-    label: "用户姓名",
-    prop: "realName",
-    disabled: true,
-},
-{
-    label: "用户昵称",
-    prop: "name",
-    disabled: true
-},
-{
-    label: "手机号码",
-    prop: "phone",
-    disabled: true
-},
-{
-    label: "电子邮箱",
-    prop: "email",
-    disabled: true
-},
-{
-    label: "身份证号",
-    prop: "cardid",
-    disabled: true
-},
-{
-    label: "籍贯",
-    prop: "nativeplace",
-    disabled: true
-},
-{
-    label: "民族",
-    prop: "nation",
-    disabled: true
-},
-{
-    label: "是否持证",
-    prop: "hold",
-    dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
-    props: {
-        label: "dictValue",
-        value: "dictKey",
-    },
-    type: "select",
-    disabled: true
-},
-{
-    label: "保安员证编号",
-    prop: "securitynumber",
-    disabled: true
-},
-{
-    label: "所属辖区",
-    prop: "jurisdiction",
-    // multiple: true,
-    type: "tree",
-    dicUrl: "/api/jurisdiction/lazy-tree",
-    props: {
-        label: "title",
-        value: "id",
-    },
-    disabled: true
-},
-{
-    label: "最高学历",
-    prop: "education",
-    type: "select",
-    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
-    props: {
-        label: "dictValue",
-        value: "dictKey"
-    },
-    dataType: "number",
-    slot: true,
-    disabled: true
-},
-{
-    label: "政治面貌",
-    prop: "politicaloutlook",
-    disabled: true
-},
-{
-    label: "身高",
-    prop: "height",
-    disabled: true
-},
-{
-    label: "联系地址",
-    prop: "address",
-    disabled: true
-},
-{
-    label: "户口所在地",
-    prop: "registered",
-    disabled: true
-},
-{
-    label: "入职时间",
-    prop: "rtime",
-    type: 'date',
-    format: "yyyy-MM-dd",
-    valueFormat: "yyyy-MM-dd",
-    disabled: true
-},
-{
-    label: "用户性别",
-    prop: "sex",
-    type: "select",
-    dicData: [{
-        label: "男",
-        value: 1
+        label: "",
+        labelWidth: "20",
+        type: 'title',
+        prop: "title",
+        span: 24,
+        styles: {
+            fontSize: '24px'
+        }
     },
     {
-        label: "女",
-        value: 2
+        label: "企业名称",
+        prop: "deptId",
+        type: "tree",
+        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+        // dicUrl: "/api/blade-system/dept/lazy-tree?parentId=0",
+        props: {
+            label: "title",
+            value: "id",
+        },
+        disabled: true,
+        span: 24,
     },
     {
-        label: "未知",
-        value: 3
+        label: "登录账号",
+        prop: "account",
+        disabled: true
+    },
+    {
+        label: "用户姓名",
+        prop: "realName",
+        disabled: true,
+    },
+    {
+        label: "用户昵称",
+        prop: "name",
+        disabled: true
+    },
+    {
+        label: "手机号码",
+        prop: "phone",
+        disabled: true
+    },
+    {
+        label: "电子邮箱",
+        prop: "email",
+        disabled: true
+    },
+    {
+        label: "身份证号",
+        prop: "cardid",
+        disabled: true
+    },
+    {
+        label: "籍贯",
+        prop: "nativeplace",
+        disabled: true
+    },
+    {
+        label: "民族",
+        prop: "nation",
+        disabled: true
+    },
+    {
+        label: "是否持证",
+        prop: "hold",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=equipage",
+        props: {
+            label: "dictValue",
+            value: "dictKey",
+        },
+        type: "select",
+        disabled: true
+    },
+    {
+        label: "保安员证编号",
+        prop: "securitynumber",
+        disabled: true
+    },
+    {
+        label: "所属辖区",
+        prop: "jurisdiction",
+        // multiple: true,
+        type: "tree",
+        dicUrl: "/api/jurisdiction/lazy-tree",
+        props: {
+            label: "title",
+            value: "id",
+        },
+        disabled: true
+    },
+    {
+        label: "最高学历",
+        prop: "education",
+        type: "select",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        dataType: "number",
+        slot: true,
+        disabled: true
+    },
+    {
+        label: "政治面貌",
+        prop: "politicaloutlook",
+        disabled: true
+    },
+    {
+        label: "身高",
+        prop: "height",
+        disabled: true
+    },
+    {
+        label: "联系地址",
+        prop: "address",
+        disabled: true
+    },
+    {
+        label: "户口所在地",
+        prop: "registered",
+        disabled: true
+    },
+    {
+        label: "入职时间",
+        prop: "rtime",
+        type: 'date',
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        disabled: true
+    },
+    {
+        label: "用户性别",
+        prop: "sex",
+        type: "select",
+        dicData: [{
+                label: "男",
+                value: 1
+            },
+            {
+                label: "女",
+                value: 2
+            },
+            {
+                label: "未知",
+                value: 3
+            }
+        ],
+        disabled: true
+    },
+    {
+        label: "用户生日",
+        type: "date",
+        prop: "birthday",
+        disabled: true
     }
-    ],
-    disabled: true
-},
-{
-    label: "用户生日",
-    type: "date",
-    prop: "birthday",
-    disabled: true
-}
 
 
 ]
 
 
 export var securityBaseInfoColumns = [{
-    label: "所属保安单位",
-    prop: "tenantId",
-    type: "tree",
-    dicUrl: "/api/blade-system/tenant/select",
-    props: {
-        label: "tenantName",
-        value: "tenantId"
-    },
-    disabled: true,
-    span: 24,
-},
-{
-    label: "登录账号",
-    prop: "account",
-    disabled: true
-},
-{
-    label: "用户姓名",
-    prop: "realName",
-    rules: [{
-        required: true,
-        message: "请输入用户姓名",
-        trigger: "blur"
-    }, {
-        min: 2,
-        max: 5,
-        message: '姓名长度在2到5个字符'
-    }]
-},
-{
-    label: "用户昵称",
-    prop: "name"
-},
-{
-    label: "手机号码",
-    prop: "phone",
-    overHidden: true,
-    rules: [{
-        required: true,
-        message: "请输入手机号",
-        trigger: "blur"
-    }]
-},
-{
-    label: "电子邮箱",
-    prop: "email",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "身份证号",
-    prop: "cardid",
-    hide: true,
-    overHidden: true,
-    rules: [{
-        required: true,
-        message: "请输入身份证号",
-        trigger: "blur"
-    }]
-},
-{
-    label: "籍贯",
-    prop: "nativeplace",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "民族",
-    prop: "nation",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "最高学历",
-    prop: "education",
-    type: "select",
-    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
-    props: {
-        label: "dictValue",
-        value: "dictKey"
-    },
-    dataType: "number",
-    slot: true,
-    rules: [{
-        required: true,
-        message: "请选择学历",
-        trigger: "blur"
-    }]
-},
-{
-    label: "政治面貌",
-    prop: "politicaloutlook",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "身高",
-    prop: "height",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "联系地址",
-    prop: "address",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "户口所在地",
-    prop: "registered",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "入职时间",
-    prop: "rtime",
-    type: 'date',
-    format: "yyyy-MM-dd",
-    valueFormat: "yyyy-MM-dd",
-    hide: true,
-    overHidden: true
-},
-{
-    label: "用户性别",
-    prop: "sex",
-    type: "select",
-    dicData: [{
-        label: "男",
-        value: 1
+        label: "所属保安单位",
+        prop: "tenantId",
+        type: "tree",
+        dicUrl: "/api/blade-system/tenant/select",
+        props: {
+            label: "tenantName",
+            value: "tenantId"
+        },
+        disabled: true,
+        span: 24,
     },
     {
-        label: "女",
-        value: 2
+        label: "登录账号",
+        prop: "account",
+        disabled: true
     },
     {
-        label: "未知",
-        value: 3
+        label: "用户姓名",
+        prop: "realName",
+        rules: [{
+            required: true,
+            message: "请输入用户姓名",
+            trigger: "blur"
+        }, {
+            min: 2,
+            max: 5,
+            message: '姓名长度在2到5个字符'
+        }]
+    },
+    {
+        label: "用户昵称",
+        prop: "name"
+    },
+    {
+        label: "手机号码",
+        prop: "phone",
+        overHidden: true,
+        rules: [{
+            required: true,
+            message: "请输入手机号",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "电子邮箱",
+        prop: "email",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "身份证号",
+        prop: "cardid",
+        hide: true,
+        overHidden: true,
+        rules: [{
+            required: true,
+            message: "请输入身份证号",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "籍贯",
+        prop: "nativeplace",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "民族",
+        prop: "nation",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "最高学历",
+        prop: "education",
+        type: "select",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        dataType: "number",
+        slot: true,
+        rules: [{
+            required: true,
+            message: "请选择学历",
+            trigger: "blur"
+        }]
+    },
+    {
+        label: "政治面貌",
+        prop: "politicaloutlook",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "身高",
+        prop: "height",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "联系地址",
+        prop: "address",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "户口所在地",
+        prop: "registered",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "入职时间",
+        prop: "rtime",
+        type: 'date',
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        hide: true,
+        overHidden: true
+    },
+    {
+        label: "用户性别",
+        prop: "sex",
+        type: "select",
+        dicData: [{
+                label: "男",
+                value: 1
+            },
+            {
+                label: "女",
+                value: 2
+            },
+            {
+                label: "未知",
+                value: 3
+            }
+        ],
+        hide: true
+    },
+    {
+        label: "用户生日",
+        type: "date",
+        prop: "birthday",
+        hide: true
     }
-    ],
-    hide: true
-},
-{
-    label: "用户生日",
-    type: "date",
-    prop: "birthday",
-    hide: true
-}
 ]
 
 
@@ -415,62 +415,62 @@
 
 //表现
 export var trackRecordColumn = [{
-    label: "id",
-    prop: "id",
-    hide: true,
-    editDisplay: false,
-    addDisplay: false
-}, {
-    label: '时间',
-    type: 'date',
-    format: "yyyy-MM-dd",
-    valueFormat: "yyyy-MM-dd",
-    prop: "time",
-    formslot: true,
-},
-// {
-//     label: '工作态度',
-//     prop: "workingattitude",
-//     formslot: true,
-// },
-{
-    label: '工作表现',
-    prop: "achievements",
-    formslot: true,
-}, {
-    label: '表现评定',
-    prop: "score",
-    type: "select",
-    // dicUrl: "/api/blade-system/dict-biz/dictionary?code=scoreType",
-    // props: {
-    //     label: "dictValue",
-    //     value: "dictKey"
+        label: "id",
+        prop: "id",
+        hide: true,
+        editDisplay: false,
+        addDisplay: false
+    }, {
+        label: '时间',
+        type: 'date',
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        prop: "time",
+        formslot: true,
+    },
+    // {
+    //     label: '工作态度',
+    //     prop: "workingattitude",
+    //     formslot: true,
     // },
-    dicData: [{
-        label: "优秀",
-        value: 0
-    },
     {
-        label: "良好",
-        value: 1
-    },
-    {
-        label: "一般",
-        value: 2
-    },
-    {
-        label: "差",
-        value: 3
-    },
-    ],
-    dataType: "number",
-    slot: true,
-    rules: [{
-        required: true,
-        message: "请选择表现",
-        trigger: "blur"
-    }]
-}
+        label: '工作表现',
+        prop: "achievements",
+        formslot: true,
+    }, {
+        label: '表现评定',
+        prop: "score",
+        type: "select",
+        // dicUrl: "/api/blade-system/dict-biz/dictionary?code=scoreType",
+        // props: {
+        //     label: "dictValue",
+        //     value: "dictKey"
+        // },
+        dicData: [{
+                label: "优秀",
+                value: 0
+            },
+            {
+                label: "良好",
+                value: 1
+            },
+            {
+                label: "一般",
+                value: 2
+            },
+            {
+                label: "差",
+                value: 3
+            },
+        ],
+        dataType: "number",
+        slot: true,
+        rules: [{
+            required: true,
+            message: "请选择表现",
+            trigger: "blur"
+        }]
+    }
     // {
     //     label: '服务公司',
     //     prop: "departmentName",
@@ -480,265 +480,338 @@
 
 
 export var securityFormPageColumn = [{
-    label: "姓名",
-    prop: "realName",
-    search: true,
-    searchSpan: 3,
-    width: 60,
-    searchLabelWidth: 50,
-    display: false
-},
-{
-    label: "企业名称",
-    searchLabelWidth: "80",
-    // prop: "deptName",
-    prop: "deptId",
-    type: "tree",
-    // dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
-    props: {
-        label: "title",
-        value: "id",
-    },
-    // hide: true,
-    slot: true,
-    searchSpan: 5,
-    display: false,
-    search: true,
-    minWidth: 260
-},
-{
-    label: "性别",
-    prop: "sexs",
-    width: 80,
-    type: "select",
-    dicData: [{
-        label: "男",
-        value: 1,
+        label: "姓名",
+        prop: "realName",
+        search: true,
+        searchSpan: 3,
+        width: 60,
+        searchLabelWidth: 50,
+        display: false
     },
     {
-        label: "女",
-        value: 2,
+        label: "企业名称",
+        searchLabelWidth: "80",
+        // prop: "deptName",
+        prop: "deptId",
+        type: "tree",
+        // dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+        props: {
+            label: "title",
+            value: "id",
+        },
+        // hide: true,
+        slot: true,
+        searchSpan: 5,
+        display: false,
+        search: true,
+        minWidth: 260
     },
-        // {
-        //     label: "未知",
-        //     value: 3,
-        // },
-    ],
-    display: false
-},
-{
-    label: "身份证号码",
-    prop: "cardid",
-    search: true,
-    searchLabelWidth: 90,
-    searchSpan: 5,
-    minWidth: 150,
-    display: false
-},
+    {
+        label: "性别",
+        prop: "sexs",
+        sortable: true,
+        width: 70,
+        type: "select",
+        dicData: [{
+                label: "男",
+                value: 1,
+            },
+            {
+                label: "女",
+                value: 2,
+            },
+            // {
+            //     label: "未知",
+            //     value: 3,
+            // },
+        ],
+        display: false
+    },
+    {
+        label: "身份证号码",
+        prop: "cardid",
+        search: true,
+        searchLabelWidth: 90,
+        searchSpan: 5,
+        width: 140,
+        display: false
+    },
+    {
+        label: "照片",
+        prop: "avatar",
+        type: "upload",
+        listType: "picture-img",
+        width: 60,
+        display: false
+    },
+    {
+        label: "籍贯",
+        prop: "nativeplace",
+        hide: true,
+        display: false
+    },
+    {
+        label: "民族",
+        prop: "nation",
+        hide: true,
+        width: 55,
+        display: false
+    },
+    {
+        label: "出生日期",
+        prop: "birthday",
+        type: "date",
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        display: false,
+        hide: true,
+    },
+    {
+        label: "年龄",
+        prop: "age",
+        width: 55,
 
-{
-    label: "籍贯",
-    prop: "nativeplace",
-    hide: true,
-    display: false
-},
-{
-    label: "民族",
-    prop: "nation",
-    hide: true,
-    width: 55,
-    display: false
-},
+        display: false
+    },
+    // {
+    //     label: "学历",
+    //     prop: "education",
+    //     display: false,
+    //     width: 90,
+    //     dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
+    //     props: {
+    //         label: "dictValue",
+    //         value: "dictKey"
+    //     },
+    //     type: "select",
+    //     // hide: true,
+    //     rules: [{
+    //         required: true,
+    //         message: "请选择学历",
+    //         trigger: "blur"
+    //     }],
+    // },
+    {
+        label: "联系电话",
+        prop: "phone",
+        minWidth: 70,
+        display: false
+    },
+    {
+        label: "健康状态",
+        prop: "healstats",
+        hide: true,
+        display: false
+    },
+    {
+        label: "保安证编号",
+        prop: "securitynumber",
+        search: true,
+        searchLabelWidth: 90,
+        sortable: true,
+        width: 110,
+        searchSpan: 5,
+        addDisplay: false,
+        editDisplay: false,
+        // hide: true,
+    },
+    {
+        label: "入职时间",
+        prop: "rtime",
+        hide: true,
+        display: false
+    },
+    {
+        label: '是否派遣',
+        prop: 'dispatch',
+        type: 'select',
+        sortable: true,
+        editDisplay: false,
+        search: true,
+        width: 80,
+        searchSpan: 3,
+        addDisplay: false,
+        dicData: [{
+                label: '全部',
+                value: '2'
+            },
+            {
+                label: '已派遣',
+                value: '0'
+            },
+            {
+                label: '未派遣',
+                value: '1'
+            }
+        ]
+    },
+    {
+        label: "是否持证",
+        prop: "hold",
+        slot: true,
+        sortable: true,
+        search: true,
+        searchSpan: 3,
+        width: 69,
+        type: "select",
+        dicData: [{
+                label: "是",
+                value: "1",
+            },
+            {
+                label: "否",
+                value: "2",
+            },
+            {
+                label: "已吊销",
+                value: "3",
+            },
+        ],
+        display: false,
+        rules: [{
+            required: true,
+            message: "请选择",
+            trigger: "blur"
+        }],
+    },
 
-{
-    label: "出生日期",
-    prop: "birthday",
-    type: "date",
-    format: "yyyy-MM-dd",
-    valueFormat: "yyyy-MM-dd",
-    display: false,
-    hide: true,
-},
-{
-    label: "年龄",
-    prop: "age",
-    width: 55,
-    display: false
-},
-{
-    label: "学历",
-    prop: "education",
-    display: false,
-    width: 90,
-    dicUrl: "/api/blade-system/dict-biz/dictionary?code=educationType",
-    props: {
-        label: "dictValue",
-        value: "dictKey"
-    },
-    type: "select",
-    // hide: true,
-    rules: [{
-        required: true,
-        message: "请选择学历",
-        trigger: "blur"
-    }],
-},
-{
-    label: "联系电话",
-    prop: "phone",
-    minWidth: 100,
-    display: false
-},
-{
-    label: "健康状态",
-    prop: "healstats",
-    hide: true,
-    display: false
-},
-{
-    label: "保安证编号",
-    prop: "securitynumber",
-    search: true,
-    searchLabelWidth: 90,
-    minWidth: 115,
-    searchSpan: 5,
-    addDisplay: false,
-    editDisplay: false,
-    // hide: true,
-},
-{
-    label: "入职时间",
-    prop: "rtime",
-    hide: true,
-    display: false
-},
-{
-    label: '是否派遣',
-    prop: 'dispatch',
-    type: 'select',
-    editDisplay: false,
-    addDisplay: false,
-    dicData: [{
-        label: '未派遣',
-        value: '1'
-    }, {
-        label: '已派遣',
-        value: '0'
-    }]
-},
-{
-    label: "是否持证",
-    prop: "hold",
-    slot: true,
-    search: true,
-    searchSpan: 3,
-    width: 69,
-    type: "select",
-    dicData: [{
-        label: "是",
-        value: "1",
-    },
     {
-        label: "否",
-        value: "2",
+        label: "是否制证",
+        prop: "userType",
+        type: "select",
+        sortable: true,
+        slot: true,
+        search: true,
+        // searchValue: 7,
+        editDisplay: false,
+        addDisplay: false,
+        searchSpan: 3,
+        width: 69,
+        dicData: [{
+                label: "已制证",
+                value: 6,
+            },
+            {
+                label: "未制证",
+                value: 7,
+            }
+        ],
     },
-    {
-        label: "已吊销",
-        value: "3",
-    },
-    ],
-    display: false,
-    rules: [{
-        required: true,
-        message: "请选择",
-        trigger: "blur"
-    }],
-},
 
-{
-    label: "是否制证",
-    prop: "userType",
-    type: "select",
-    slot: true,
-    search: true,
-    // searchValue: 7,
-    editDisplay: false,
-    addDisplay: false,
-    searchSpan: 3,
-    width: 69,
-    dicData: [{
-        label: "已制证",
-        value: 6,
+    // {
+    //     label: "发证日期",
+    //     prop: "papertime",
+    //     type: "date",
+    //     format: "yyyy-MM-dd",
+    //     valueFormat: "yyyy-MM-dd",
+    //     // searchRange: true,
+    //     // searchSpan: 6,
+    //     // hide: true,
+    //     // addDisplay: false,
+    //     // editDisplay: false,
+    //     // viewDisplay: false,
+    //     // search: true,
+    //     // rules: [{
+    //     //     required: true,
+    //     //     message: "请输入时间",
+    //     //     trigger: "blur"
+    //     // }]
+    // },
+    {
+        label: "有无照片",
+        prop: "isAvatar",
+        type: "select",
+        search: true,
+        minWidth: 105,
+        searchSpan: 3,
+        addDisplay: false,
+        editDisplay: false,
+        hide: true,
+        display: false,
+        dicData: [{
+                label: "全部",
+                value: 3,
+            },
+            {
+                label: "有",
+                value: 1,
+            },
+            {
+                label: "无",
+                value: 2,
+            },
+        ],
     },
     {
-        label: "未制证",
-        value: 7,
-    }
-    ],
-},
-
-// {
-//     label: "发证日期",
-//     prop: "papertime",
-//     type: "date",
-//     format: "yyyy-MM-dd",
-//     valueFormat: "yyyy-MM-dd",
-//     // searchRange: true,
-//     // searchSpan: 6,
-//     // hide: true,
-//     // addDisplay: false,
-//     // editDisplay: false,
-//     // viewDisplay: false,
-//     // search: true,
-//     // rules: [{
-//     //     required: true,
-//     //     message: "请输入时间",
-//     //     trigger: "blur"
-//     // }]
-// },
-{
-    label: "在职状态",
-    prop: "status",
-    type: "select",
-    dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState",
-    props: {
-        label: "dictValue",
-        value: "dictKey"
-    },
-    dataType: "number",
-    searchValue: 1,
-    display: false,
-    hide: true,
-    searchSpan: 3,
-    width: 80,
-    search: true,
-    rules: [{
-        required: true,
-        message: "请选择在职状态",
-        trigger: "blur"
-    }]
-},
-{
-    label: "审查状态",
-    prop: "examinationType",
-    type: "select",
-    display: false,
-    searchSpan: 3,
-    search: false,
-    hide: true,
-    width: 80,
-    dicData: [{
-        label: "全部",
-        value: 6,
+        label: "是否采集指纹",
+        prop: "isFingerprint",
+        type: "select",
+        search: true,
+        searchLabelWidth: 110,
+        minWidth: 105,
+        searchSpan: 4,
+        addDisplay: false,
+        editDisplay: false,
+        hide: true,
+        display: false,
+        dicData: [{
+                label: "全部",
+                value: 3,
+            },
+            {
+                label: "是",
+                value: 1,
+            },
+            {
+                label: "否",
+                value: 2,
+            },
+        ],
     },
     {
-        label: "正常",
-        value: "0",
+        label: "在职状态",
+        prop: "status",
+        type: "select",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=workerState",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        dataType: "number",
+        searchValue: 1,
+        display: false,
+        hide: true,
+        searchSpan: 3,
+        width: 80,
+        search: true,
+        rules: [{
+            required: true,
+            message: "请选择在职状态",
+            trigger: "blur"
+        }]
     },
     {
-        label: "异常",
-        value: "1",
-    }
-    ],
-},
+        label: "审查状态",
+        prop: "examinationType",
+        type: "select",
+        sortable: true,
+        display: false,
+        searchSpan: 3,
+        search: false,
+        hide: true,
+        width: 80,
+        dicData: [{
+                label: "全部",
+                value: 6,
+            },
+            {
+                label: "正常",
+                value: "0",
+            },
+            {
+                label: "异常",
+                value: "1",
+            }
+        ],
+    },
 ]
\ No newline at end of file
diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index b9beefd..f997a1d 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -33,6 +33,7 @@
           @row-update="rowUpdate"
           :before-open="beforeOpen"
           :page.sync="page"
+          @sort-change="sortChange"
           @search-change="searchChange"
           @search-reset="searchReset"
           @selection-change="selectionChange"
@@ -40,6 +41,7 @@
           @size-change="sizeChange"
           @refresh-change="refreshChange"
           @on-load="onLoad"
+          :upload-before="uploadBefore"
           :defaults.sync="defaults"
           :before-close="beforeClose"
         >
@@ -427,31 +429,26 @@
   remove,
   update,
   updatePlatform,
-  add,
   securitySave,
   grant,
   resetPassword,
   getUserPractitionersInfo,
   updatePaperTime,
-  saveOrUpdateUserPractitionersInfo,
   getzhiwen, //指纹
 } from "@/api/system/user";
 import { securityApply } from "@/api/accreditationRecords/accreditationRecords";
 import { getList } from "@/api/securityGuard/securityGuard";
 import { getDeptLazyTree } from "@/api/system/dept";
 import { getRoleTree, getRoleDetail } from "@/api/system/role";
-import { getPostList } from "@/api/system/post";
 import { mapGetters } from "vuex";
 import website from "@/config/website";
 import { getToken } from "@/util/auth";
 import { securityFormPageColumn } from "./data";
 import { mapState } from "vuex";
 import Qs from "qs";
-
+import { MessageBox } from "element-ui";
 //加载指纹类
 import Client from "./Client";
-import doneVue from "../work/done.vue";
-// import func from "vue-editor-bridge";
 
 export default {
   data() {
@@ -605,6 +602,8 @@
       }
     };
     return {
+      sort: "",
+      sortName: "",
       nowCell: "", //空为手动,2为身份证设备读取
       // 表格数据
       defaults: {},
@@ -775,7 +774,7 @@
         align: "center",
         index: true,
         delBtnText: "注销",
-        menuWidth: 327,
+        menuWidth: 280,
         selection: true,
         viewBtn: true,
         defaultExpandAll: true,
@@ -919,10 +918,10 @@
                 },
                 canvasOption: {
                   text: " ",
-                  ratio: 0.1,
+                  ratio: 1.0,
                 },
                 action: "/api/blade-resource/oss/endpoint/put-files",
-                tip: "上传身份证一寸近期彩色正面免冠图象, (358像素(宽) × 441像素(高)、分辨率350dpi)且不超过500kb",
+                tip: "上传近期一寸彩色正面免冠图象, (358像素(宽) × 441像素(高)、分辨率350dpi)且不小于30kb,不超过500kb",
                 span: 12,
                 // row: true,
                 prop: "avatar",
@@ -989,7 +988,7 @@
                 rules: [
                   {
                     required: true,
-                    message: "请选择",
+                    message: "请选择是否有持证",
                     trigger: "blur",
                   },
                 ],
@@ -998,6 +997,12 @@
                 label: "保安员证编号",
                 prop: "securitynumber",
                 hide: true,
+                display:true,
+                rules: [{
+                    required: false,
+                    message: "请输入保安员证编号",
+                    trigger: "blur",
+                  }],
               },
               // {
               //   label: "发证日期",
@@ -1008,8 +1013,21 @@
               //   valueFormat: "yyyy-MM-dd",
               // },
               {
-                label: "电子邮箱",
+                label: "保安证书照片",
                 prop: "email",
+                type: "upload",
+                listType: "picture-img",
+                propsHttp: {
+                  res: "data",
+                  url: "url",
+                },
+                canvasOption: {
+                  text: " ",
+                  ratio: 1.0,
+                },
+                action: "/api/blade-resource/oss/endpoint/put-files",
+                tip: "上传jpg,png格式图片,大小不超过2M",
+                span: 12,
               },
               // {
               //     label: "籍贯",
@@ -1288,6 +1306,32 @@
         this.initData(this.form.tenantId);
       }
     },
+    "form.hold":{
+      handler(val){
+        var securitynumbercolumn =this.findObject(this.option.group,'securitynumber')
+        // console.log(val,1234);
+        if(val==1){
+          securitynumbercolumn.display=true;
+          securitynumbercolumn.rules=[
+                  {
+                    required: true,
+                    message: "请输入保安员证编号",
+                    trigger: "blur",
+                  }
+          ];
+        }else{
+          securitynumbercolumn.display=false;
+          securitynumbercolumn.rules=[
+                  {
+                    required: false,
+                    message: "请输入保安员证编号",
+                    trigger: "blur",
+                  }
+          ];
+        }
+      },
+      immediate: true
+    },
     "form.fingerprint"() {
       let that = this;
       if (this.form.fingerprint != undefined) {
@@ -1305,9 +1349,7 @@
             isoks: isoks,
           });
         }
-
-        setTimeout(() => {
-          // if()
+        var doZhiwen = () => {
           if (!this.form.id) {
             sets(false);
             return;
@@ -1328,7 +1370,16 @@
               }
             }
           });
-        }, 1800);
+        };
+        
+        setTimeout(() => {
+          // var iframeDom = document.getElementById("zhiwen");
+          //   console.log(iframeDom,111111);
+          //   iframeDom.onload = function () {
+          //     doZhiwen();
+          //   };
+          doZhiwen();
+        }, 2800);
       } else {
         that.isopen = false;
       }
@@ -1802,7 +1853,7 @@
           return securityApply(data);
         })
         .then(() => {
-          // this.$refs.crud.toggleSelection();
+          this.$refs.crud.toggleSelection();
           this.$message({
             type: "success",
             message: "操作成功!",
@@ -1840,7 +1891,7 @@
           return securityApply(data);
         })
         .then(() => {
-          // this.$refs.crud.toggleSelection();
+          this.$refs.crud.toggleSelection();
           this.$message({
             type: "success",
             message: "操作成功!",
@@ -1870,6 +1921,9 @@
           status: this.search.status,
           userType: this.search.startTime,
           examinationType: this.search.examinationType,
+          dispatch: this.search.dispatch,
+          isFingerprint: this.search.isFingerprint,
+          isAvatar: this.search.isAvatar,
         };
         // console.log(data,123456);
         //导出
@@ -2099,6 +2153,8 @@
     },
     selectionClear() {
       // this.selectionList = [];
+      this.sort = "";
+      this.sortName = "";
       // this.$refs.crud.toggleSelection();
     },
     handleDelete() {
@@ -2398,6 +2454,28 @@
     refreshChange() {
       this.onLoad(this.page, this.query);
     },
+    //排序
+    sortChange(value) {
+      // console.log(value, 51151515);
+      if (value.order == "ascending") {
+        this.sort = "asc";
+      }
+      if (value.order == "descending") {
+        this.sort = "desc";
+      }
+      this.sortName = value.prop;
+      //字段匹配
+      if (value.prop == "sexs") {
+        this.sortName = "sex";
+      }
+      if (value.prop == "examinationType") {
+        this.sortName = "examination_type";
+      }
+      if (value.prop == "userType") {
+        this.sortName = "user_type";
+      }
+      this.onLoad(this.page, this.query);
+    },
     onLoad(page, params = {}) {
       params = this.search;
       var that = this;
@@ -2473,6 +2551,13 @@
             );
             ColumnDeptUpdate1.dicUrl =
               "/api/blade-system/dept/security_lazy-tree";
+          }
+
+          if (this.sort) {
+            params["sort"] = this.sort;
+          }
+          if (this.sortName) {
+            params["sortName"] = this.sortName;
           }
 
           let values = {
@@ -2568,6 +2653,29 @@
         this.selectionClear();
       });
     },
+    //照片上传拦截
+    uploadBefore(file, done, loading, column) {
+      //如果你想修改file文件,由于上传的file是只读文件,必须复制新的file才可以修改名字,完后赋值到done函数里,如果不修改的话直接写done()即可
+      if (file.type.indexOf("image/") == -1) {
+        MessageBox.alert(
+          "上传图片格式错误,请上传图片类型,如:JPG,PNG后缀的文件。"
+        );
+        loading();
+        return false;
+      }
+      let data = window.URL.createObjectURL(new Blob([file]));
+      this.filename = file;
+      this.option.img = data;
+      //判断文件大小
+      const isLt1M = file.size >= 30 * 1024 && file.size <= 500 * 1024;
+      if (!isLt1M) {
+        MessageBox.alert("上传图片大小必须大于30KB,且小于500KB!");
+        loading();
+        return false;
+      }
+      done();
+      return isLt1M;
+    },
   },
 };
 </script>
diff --git a/src/views/securityGuard/sfzJS.js b/src/views/securityGuard/sfzJS.js
index f127cdb..afc669f 100644
--- a/src/views/securityGuard/sfzJS.js
+++ b/src/views/securityGuard/sfzJS.js
@@ -55,9 +55,9 @@
     //compatibility for firefox and chrome
     var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
     var pc = new myPeerConnection({
-        iceServers: []
-    }),
-        noop = function () { },
+            iceServers: []
+        }),
+        noop = function() {},
         localIPs = {},
         ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
         key;
@@ -71,19 +71,19 @@
     pc.createDataChannel("");
 
     // create offer and set local description
-    pc.createOffer().then(function (sdp) {
-        sdp.sdp.split('\n').forEach(function (line) {
+    pc.createOffer().then(function(sdp) {
+        sdp.sdp.split('\n').forEach(function(line) {
             if (line.indexOf('candidate') < 0) return;
             line.match(ipRegex).forEach(iterateIP);
         });
 
         pc.setLocalDescription(sdp, noop, noop);
-    }).catch(function (reason) {
+    }).catch(function(reason) {
         // An error occurred, so handle the failure to connect
     });
 
     //sten for candidate events
-    pc.onicecandidate = function (ice) {
+    pc.onicecandidate = function(ice) {
         if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
         ice.candidate.candidate.match(ipRegex).forEach(iterateIP);
     };
@@ -99,14 +99,14 @@
     // console.log(baseURL, 666666);
     var result = "";
     // var iParam1 = "1";
-    var urls = "http://127.0.0.1:18889/api/connect";
+    var urls = "http://localhost:18889/api/connect";
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
     // CertCtl.xhr.open("POST", "http://" + baseURL + ":18889/api/connect", false);
     CertCtl.xhr.open("POST", urls, false);
     //发送请求
     try {
         CertCtl.xhr.send();
-    } catch (e) { }
+    } catch (e) {}
     //返回值readyState   0: 请求未初始化
     //				    1: 服务器连接已建立
     //				    2:请求已接收
@@ -128,11 +128,11 @@
 function CertCtl_disconnect() {
     var result = "";
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
-    CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/disconnect", false);
+    CertCtl.xhr.open("POST", "http://localhost:18889/api/disconnect", false);
     //发送请求
     try {
         CertCtl.xhr.send();
-    } catch (e) { }
+    } catch (e) {}
     if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) {
         result = CertCtl.xhr.responseText;
         CertCtl.xhr.readyState = 1;
@@ -143,11 +143,11 @@
 function CertCtl_getStatus() {
     var result = "";
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
-    CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/getStatus", false);
+    CertCtl.xhr.open("POST", "http://localhost:18889/api/getStatus", false);
     //发送请求
     try {
         CertCtl.xhr.send();
-    } catch (e) { }
+    } catch (e) {}
     if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) {
         result = CertCtl.xhr.responseText;
         CertCtl.xhr.readyState = 1;
@@ -160,8 +160,8 @@
     var result = "";
     try {
         //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
-        CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/readCard", false); //readCard读卡,不生成正反面仿复印件
-        //CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/readCert", false);	  //readCert读卡,生成正反面仿复印件	
+        CertCtl.xhr.open("POST", "http://localhost:18889/api/readCard", false); //readCard读卡,不生成正反面仿复印件
+        //CertCtl.xhr.open("POST", "http://localhost:18889/api/readCert", false);	  //readCert读卡,生成正反面仿复印件	
         //发送请求
         CertCtl.xhr.send();
         if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) {
@@ -178,11 +178,11 @@
 function CertCtl_readICCardSN() {
     var result = "";
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
-    CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/readICCardSN", false);
+    CertCtl.xhr.open("POST", "http://localhost:18889/api/readICCardSN", false);
     //发送请求
     try {
         CertCtl.xhr.send();
-    } catch (e) { }
+    } catch (e) {}
     if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) {
         result = CertCtl.xhr.responseText;
         CertCtl.xhr.readyState = 1;
@@ -194,11 +194,11 @@
 function CertCtl_readIDCardSN() {
     var result = "";
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
-    CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/readIDCardSN", false);
+    CertCtl.xhr.open("POST", "http://localhost:18889/api/readIDCardSN", false);
     //发送请求
     try {
         CertCtl.xhr.send();
-    } catch (e) { }
+    } catch (e) {}
     if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) {
         result = CertCtl.xhr.responseText;
         CertCtl.xhr.readyState = 1;
@@ -212,11 +212,11 @@
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
     //getSAMID 获取的SAMID,格式为:05032013102800015247360103645891
     //getSAMIDStr 获取SAMID,格式为:05.03-20131028-0001524736-0103645891
-    CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/getSAMIDStr", false);
+    CertCtl.xhr.open("POST", "http://localhost:18889/api/getSAMIDStr", false);
     //发送请求
     try {
         CertCtl.xhr.send();
-    } catch (e) { }
+    } catch (e) {}
     if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) {
         result = CertCtl.xhr.responseText;
         CertCtl.xhr.readyState = 1;
@@ -249,12 +249,12 @@
 
 
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
-    CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/readM1Card?" + "SID=" + sid + "&BID=" + bid + "&KEYTYPE=" + keyType + "&KEY=" + key, false);
+    CertCtl.xhr.open("POST", "http://localhost:18889/api/readM1Card?" + "SID=" + sid + "&BID=" + bid + "&KEYTYPE=" + keyType + "&KEY=" + key, false);
 
     //发送请求
     try {
         CertCtl.xhr.send();
-    } catch (e) { }
+    } catch (e) {}
     if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) {
         result = CertCtl.xhr.responseText;
         CertCtl.xhr.readyState = 1;
@@ -290,12 +290,12 @@
         data = document.getElementById("cmd").value;
     }
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
-    CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/writeM1Card?" + "SID=" + sid + "&BID=" + bid + "&KEYTYPE=" + keyType + "&KEY=" + key + "&DATA=" + data, false);
-    //CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/writeM1Card?"+"SID="+sid+"&BID="+bid+"&KEYTYPE="+keyType+"&KEY="+key+"&DATA="+data, false);
+    CertCtl.xhr.open("POST", "http://localhost:18889/api/writeM1Card?" + "SID=" + sid + "&BID=" + bid + "&KEYTYPE=" + keyType + "&KEY=" + key + "&DATA=" + data, false);
+    //CertCtl.xhr.open("POST", "http://localhost:18889/api/writeM1Card?"+"SID="+sid+"&BID="+bid+"&KEYTYPE="+keyType+"&KEY="+key+"&DATA="+data, false);
     //发送请求
     try {
         CertCtl.xhr.send();
-    } catch (e) { }
+    } catch (e) {}
     if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) {
         result = CertCtl.xhr.responseText;
         CertCtl.xhr.readyState = 1;
@@ -311,11 +311,11 @@
         cmd = document.getElementById("cmd").value;
     }
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
-    CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/handleAPDUCMD?" + "APDUCMD=" + cmd, false);
+    CertCtl.xhr.open("POST", "http://localhost:18889/api/handleAPDUCMD?" + "APDUCMD=" + cmd, false);
     //发送请求
     try {
         CertCtl.xhr.send();
-    } catch (e) { }
+    } catch (e) {}
     if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) {
         result = CertCtl.xhr.responseText;
         CertCtl.xhr.readyState = 1;
@@ -334,7 +334,7 @@
     }
     
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
-    CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/setProgramCode?"+"PROGRAMCODE="+programData, false);
+    CertCtl.xhr.open("POST", "http://localhost:18889/api/setProgramCode?"+"PROGRAMCODE="+programData, false);
     //发送请求
     try {
         CertCtl.xhr.send();
@@ -354,11 +354,11 @@
         programData = document.getElementById("programData").value;
     }
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
-    CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/checkProgramCode?" + "PROGRAMCODE=" + programData, false);
+    CertCtl.xhr.open("POST", "http://localhost:18889/api/checkProgramCode?" + "PROGRAMCODE=" + programData, false);
     //发送请求
     try {
         CertCtl.xhr.send();
-    } catch (e) { }
+    } catch (e) {}
     if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) {
         result = CertCtl.xhr.responseText;
         CertCtl.xhr.readyState = 1;
@@ -371,11 +371,11 @@
     var result = "";
     var IsMute = false; //false - 开声音(默认开), true - 关声音
     //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
-    CertCtl.xhr.open("POST", "http://127.0.0.1:18889/api/Routon_Mute?" + "ISMUTE=" + IsMute, false);
+    CertCtl.xhr.open("POST", "http://localhost:18889/api/Routon_Mute?" + "ISMUTE=" + IsMute, false);
     //发送请求
     try {
         CertCtl.xhr.send();
-    } catch (e) { }
+    } catch (e) {}
     if (CertCtl.xhr.readyState == 4 && CertCtl.xhr.status == 200) {
         result = CertCtl.xhr.responseText;
         CertCtl.xhr.readyState = 1;
@@ -436,7 +436,7 @@
             //result页面回显
             document.getElementById("result").value = result;
         }
-    } catch (e) { }
+    } catch (e) {}
 }
 
 //断开连接方法
@@ -454,7 +454,7 @@
             //result页面回显
             document.getElementById("result").value = result;
         }
-    } catch (e) { }
+    } catch (e) {}
 }
 
 //获取状态方法
@@ -472,7 +472,7 @@
             //result页面回显
             document.getElementById("result").value = result;
         }
-    } catch (e) { }
+    } catch (e) {}
 }
 
 //读卡方法
@@ -541,7 +541,7 @@
             //result页面回显
             document.getElementById("result").value = result;
         }
-    } catch (e) { }
+    } catch (e) {}
 }
 
 function readIDCardSN() {
@@ -558,7 +558,7 @@
             //result页面回显
             document.getElementById("result").value = result;
         }
-    } catch (e) { }
+    } catch (e) {}
 }
 
 function getSAMID() {
@@ -575,7 +575,7 @@
             //result页面回显
             document.getElementById("result").value = result;
         }
-    } catch (e) { }
+    } catch (e) {}
 }
 
 function readM1Card() {
@@ -592,7 +592,7 @@
             //result页面回显
             document.getElementById("ACardResult").value = result;
         }
-    } catch (e) { }
+    } catch (e) {}
 }
 
 function writeM1Card() {
@@ -609,7 +609,7 @@
             //result页面回显
             document.getElementById("ACardResult").value = result;
         }
-    } catch (e) { }
+    } catch (e) {}
 }
 
 function handleAPDUCMD() {
@@ -626,7 +626,7 @@
             //result页面回显
             document.getElementById("ACardResult").value = result;
         }
-    } catch (e) { }
+    } catch (e) {}
 }
 
 /*
@@ -695,7 +695,7 @@
             //result页面回显
             document.getElementById("ACardResult").value = result;
         }
-    } catch (e) { }
+    } catch (e) {}
 }
 
 export default CertCtl;
\ No newline at end of file
diff --git a/src/views/securityUnit/armedEscort.vue b/src/views/securityUnit/armedEscort.vue
index 42eb7eb..a0fce85 100644
--- a/src/views/securityUnit/armedEscort.vue
+++ b/src/views/securityUnit/armedEscort.vue
@@ -49,14 +49,6 @@
         </template>
         <template slot="menuLeft">
           <el-button
-            type="primary"
-            icon="el-icon-plus"
-            size="small"
-            plain
-            @click.stop="rowSave"
-            >新增</el-button
-          >
-          <el-button
             type="danger"
             size="small"
             plain
@@ -74,22 +66,6 @@
           </el-button>
         </template>
       </avue-crud>
-      <el-dialog
-        :visible.sync="forms"
-        width="80%"
-        top="5vh"
-        :modal-append-to-body="false"
-        class="addCompany"
-      >
-        <avue-form
-          ref="form"
-          v-model="obj0"
-          :option="option0"
-          v-if="forms"
-          @submit="handleSubmit"
-        >
-        </avue-form>
-      </el-dialog>
     </div>
     <el-dialog
       title="保安单位导入"
@@ -119,15 +95,10 @@
   adddata,
   update,
   remove,
-  adddata1,
-  adddata2,
-  getDeptLazyTree,
 } from "@/api/securityUnit/securityUnit";
 import { mapGetters } from "vuex";
 export default {
   data() {
-    var w = 160,
-      s = 12;
     return {
       excelBox1: false,
       excelForm1: {},
@@ -190,51 +161,14 @@
           children: "children",
         },
       },
-
-      obj0: {
-        title0: "保安单位基本信息",
-      },
-      option0: {
-        emptyBtn: false,
-        submitBtn: true,
-        gutter: 30,
-        column: column0,
-      },
-      obj1: {
-        title1: "保安单位出资人员",
-      },
-      option1: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column1,
-      },
-      obj2: {
-        title2: "主要管理人员信息",
-      },
-      option2: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column2,
-      },
-
       forms: false,
-      data0: {},
-      data1: {},
-      data2: {},
-      b0: {},
-      b1: {},
-      b2: {},
       noshehuibianma: 0,
       nobumen: 0,
-
       query: {},
       data: [],
       option: {
         index: true,
-        addBtn: false,
-        // card: true,
+        addBtn: true,
         tip: false,
         searchSize: "mini",
         searchMenuSpan: 6,
@@ -243,15 +177,214 @@
         border: true,
         align: "center",
         selection: true,
-        column: column,
-        ...this.$store.state.control.clearOtherBut,
+        column: [
+          {
+            label: "企业名称",
+            prop: "enterprisename",
+            search: true,
+            searchSpan: 4,
+            labelWidth: 145,
+            minWidth: 160,
+            rules: [
+              {
+                required: true,
+                message: "请选择企业名称",
+                trigger: "click",
+              },
+            ],
+            overHidden: true,
+          },
+          {
+            label: "所属辖区",
+            prop: "jurisdiction",
+            //父节点不能选
+            parent: false,
+            labelWidth: 145,
+            type: "tree",
+            dicUrl: "/api//jurisdiction/lazy-trees",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            rules: [
+              {
+                required: false,
+                message: "请选择所属辖区",
+                trigger: "click",
+              },
+            ],
+            overHidden: true,
+          },
+          {
+            label: "法定代表人",
+            prop: "representative",
+            span: 12,
+            labelWidth: 145,
+            disabled: false,
+            rules: [
+              {
+                required: false,
+                message: "请输入法定代表人",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "法定代表人电话",
+            prop: "representativecell",
+            span: 12,
+            labelWidth: 145,
+            disabled: false,
+            rules: [
+              {
+                required: false,
+                message: "请输入法定代表人电话",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "联系人",
+            prop: "contacts",
+            labelWidth: 145,
+            hide: true,
+          },
+          {
+            label: "联系电话",
+            prop: "contactscell",
+            labelWidth: 145,
+            hide: true,
+          },
+          {
+            label: "保安人数",
+            labelWidth: 145,
+            prop: "znum",
+            searchSpan: 4,
+            addDisabled: false,
+            addDisplay: false,
+            editDisabled: false,
+            editDisplay: false,
+            viewDisabled: false,
+            viewDisplay: false,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "派遣人数",
+            labelWidth: 145,
+            prop: "pnum",
+            addDisabled: false,
+            addDisplay: false,
+            editDisabled: false,
+            editDisplay: false,
+            viewDisabled: false,
+            viewDisplay: false,
+            searchSpan: 4,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "持证人数",
+            labelWidth: 145,
+            prop: "cnum",
+            addDisabled: false,
+            addDisplay: false,
+            editDisabled: false,
+            editDisplay: false,
+            viewDisabled: false,
+            viewDisplay: false,
+            searchSpan: 4,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "企业属性",
+            prop: "stats",
+            type: "tree",
+            hide: true,
+            labelWidth: 145,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stats",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择企业属性",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "注册地址",
+            prop: "address",
+            labelWidth: 145,
+            // search: true,
+            hide: true,
+          },
+          {
+            label: "注册时间",
+            prop: "establishtime",
+            span: 12,
+            labelWidth: 145,
+            disabled: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: false,
+                message: "请选择注册时间",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+              label: "办公地址",
+              prop: "industry",
+              span: 12,
+              labelWidth: 145,
+              disabled: false,
+              hide:true,
+              rules: [{
+                  required: false,
+                  message: "请选择办公地址",
+                  trigger: "blur",
+              }, ],
+          },
+          {
+            label: "登记机关",
+            prop: "registration",
+            // search: true,
+            labelWidth: 145,
+            // width: 88,
+            overHidden: true,
+            hide: true,
+          },
+        ],
         ...this.$store.state.control.clearOtherBut,
       },
     };
   },
   created() {
-    this.option0.column[4].value = 3;
-    this.option0.column[4].disabled = true;
+    const column = this.findObject(this.option.column, "stats");
+    column.value = "3";
+    column.editDisabled = true;
+    column.addDisabled = true;
+    if(this.userInfo.role_name == "administrator" ){
+      column.editDisabled = false;
+      column.addDisabled = false;
+    }
   },
   computed: {
     ...mapGetters(["userInfo"]),
@@ -275,7 +408,6 @@
   },
   methods: {
     rowClickSelf(val) {
-      // console.log(val.departmentid);
       this.$router.push({
         path: "/securityGuardOnce/index",
         query: { departmentid: val.departmentid },
@@ -293,24 +425,6 @@
     handleTemplate1() {
       window.open(`/api/examSubjectChoices/export-template`);
     },
-
-    // handleChangeTABS(column) {
-    //   this.typeTABS = column;
-    //   // this.$message.success(JSON.stringify(column));
-    //   if (column.prop == "tab1") {
-    //     this.loading1 = false;
-    //     this.loading2 = false;
-    //     this.onLoad(this.page);
-    //   } else if (column.prop == "tab2") {
-    //     this.loading = false;
-    //     this.loading2 = false;
-    //     this.onLoad1(this.page1); //第二个表格不会自动执行
-    //   } else if (column.prop == "tab3") {
-    //     this.loading1 = false;
-    //     this.loading = false;
-    //     this.onLoad2(this.page2); //第二个表格不会自动执行
-    //   }
-    // },
     //保安单位基本信息
     sizeChange(val) {
       this.page1.currentPage = 1;
@@ -326,14 +440,23 @@
       //   this.$message.success("页码" + val);
     },
     rowSave(form, done, loading) {
-      // console.log("save1");
-      this.forms = true;
-      var that = this;
-      //先获取部门接口
-      getDeptLazyTree().then((res) => {
-        var d = res.data.data;
-        that.treeData = d;
-        // console.log(d);
+      form["createUserId"] = this.userInfo.Id;
+      adddata(form).then((res) => {
+        if (res.data.success) {
+          this.$message({
+            message: "操作成功",
+            type: "success",
+          });
+          this.refreshChange();
+          done();
+          this.forms = false;
+        } else {
+          this.$message({
+            message: "操作失败",
+            type: "warning",
+          });
+          done();
+        }
       });
     },
     searchChange(params, done) {
@@ -419,14 +542,11 @@
       this.onLoad(this.page, this.query);
     },
     rowClick(row) {
-      // console.log(row);
-      // row.identificationnumber; //统一社会信用代 码
       window.localStorage.setItem("danweidata", JSON.stringify(row));
+      var data = JSON.stringify(row);
       this.$router.push({
         path: "/securityUnitChild",
-        // redirect: { name: "foo" },
-        query: { rowsecurity: "fromSecurity" },
-        // params: { row: row.identificationnumber },
+        query: { data: data },
       });
     },
     //跳转到附近列表页面
@@ -459,193 +579,6 @@
         this.loading = false;
       });
     },
-    // nodeClick(data) {//分局   不在这添加
-    //   // this.treeDeptId = data.id;
-    //   // this.page.currentPage = 1;
-    //   // this.onLoad(this.page);
-    //   // this.$message.success(JSON.stringify(data));
-    //   this.obj0["departmentid"] = data.title;
-    //   this.obj1["departmentid"] = data.title;
-    //   this.obj2["departmentid"] = data.title;
-    //   this.obj0["useid"] = data.id;
-    //   this.obj1["useid"] = data.id;
-    //   this.obj2["useid"] = data.id;
-    //   this.nobumen = 1;
-    // },
-    handleSubmit(form, done) {
-      form["createUserId"] = this.userInfo.Id;
-      // console.log(form);
-      // done();
-      // return;
-      adddata(form).then((res) => {
-        if (res.data.success) {
-          this.$message({
-            message: "提交成功",
-            type: "success",
-          });
-          this.refreshChange();
-          done();
-          this.forms = false;
-        } else {
-          this.$message({
-            message: "提交失败",
-            type: "warning",
-          });
-          done();
-        }
-      });
-    },
-    tip0() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj0) {
-        for (var i in column0) {
-          if (k == column0[i].prop && k != "title0") {
-            d[k] = this.obj0[k];
-          }
-        }
-      }
-      console.log(d);
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 0);
-      this.data0 = d;
-      this.forms = 1;
-    },
-    tip1() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj1) {
-        for (var i in column1) {
-          if (k == column1[i].prop && k != "title1") {
-            d[k] = this.obj1[k];
-          }
-        }
-      }
-      d["capital"] = d["capital2"];
-      delete d["capital2"];
-      // console.log(d);
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 1);
-      this.data1 = d;
-      this.forms = 2;
-    },
-    tip2() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj2) {
-        for (var i in column2) {
-          if (k == column2[i].prop && k != "title2") {
-            d[k] = this.obj2[k];
-          }
-        }
-      }
-      console.log(d);
-      d["cardid"] = d["cardid2"];
-      delete d["cardid2"];
-      d["cell"] = d["cell2"];
-      delete d["cell2"];
-      // d["shareholdingratio"] = d["shareholdingratio2"];
-      // delete d["shareholdingratio2"];
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 2);
-      this.data2 = d;
-
-      // this.data0.departmentid = this.data0.useid;
-      // this.data1.departmentid = this.data1.useid;
-      // this.data2.departmentid = this.data2.useid;
-      // delete this.data0.useid;
-      // delete this.data1.useid;
-      // delete this.data2.useid;
-
-      adddata(this.data0).then((res) => {
-        console.log(res, 0);
-      });
-      adddata1(this.data1).then((res) => {
-        console.log(res, 1);
-      });
-      adddata2(this.data2).then((res) => {
-        console.log(res, 2);
-      });
-      var time = setTimeout(() => {
-        this.onLoad(this.page, this.query);
-        console.log(this.data0, this.data1, this.data2, "已刷新");
-      }, 500);
-      this.tipover();
-    },
-    tip1up1() {
-      this.forms = true;
-    },
-    tip2up2() {
-      this.forms = 1;
-    },
-    tipover() {
-      this.forms = -1;
-      this.obj0 = {
-        title0: "保安单位基本信息",
-      };
-      this.obj1 = {
-        title1: "保安单位出资人员",
-      };
-      this.obj2 = {
-        title2: "主要管理人员信息",
-      };
-      this.data0 = {};
-      this.data1 = {};
-      this.data2 = {};
-      this.noshehuibianma = 0;
-      this.nobumen = 0;
-    },
-    panduanmeiyouziduan() {
-      if (this.noshehuibianma == 0) {
-        this.$message.warning("请输入统一社会信用代码");
-        return true;
-      }
-      if (this.nobumen == 0) {
-        return false;
-        this.$message.warning("请选则部门");
-      }
-      return false;
-    },
-  },
-  watch: {
-    haveID() {
-      // console.log(this.haveID);
-      if (this.haveID != undefined) {
-        if (this.haveID.length > 5) {
-          //统一社会信用代码判断
-          this.noshehuibianma = 1;
-        } else {
-          this.noshehuibianma = 0;
-        }
-      }
-    },
-    havedata() {
-      console.log(this.havedata, "qqqqq");
-    },
   },
   mounted() {},
 };
@@ -658,14 +591,6 @@
   //   border: 1px solid #000;
   box-sizing: border-box;
 }
-// .el-card__body {
-//   padding-bottom: 5px !important;
-// }
-// .avue-crud__tip,
-// .el-tag,
-// .el-tag--light {
-//   padding: 0 !important;
-// }
 
 .lod {
   position: absolute;
diff --git a/src/views/securityUnit/data.js b/src/views/securityUnit/data.js
index 5e8b81e..d7da79f 100644
--- a/src/views/securityUnit/data.js
+++ b/src/views/securityUnit/data.js
@@ -25,21 +25,18 @@
     }
 };
 
-var DIC = [
-    {
-        label: '招聘中',
-        value: 1,
-    }, {
-        label: '停止招聘',
-        value: 2,
-    }
-]
+var DIC = [{
+    label: '招聘中',
+    value: 1,
+}, {
+    label: '停止招聘',
+    value: 2,
+}]
 
-export var column = [
-    {
+export var column = [{
         label: "统一社会信用代码",
         prop: "creditcode",
-        width: 140,
+        // width: 140,
         hide: true,
 
         labelWidth: 160,
@@ -52,15 +49,15 @@
         label: "企业名称",
         prop: "enterprisename",
         search: true,
-        width: 260,
+        // width: 260,
         searchSpan: 4,
         labelWidth: 160,
-        // width: 130,
+        minWidth: 160,
         overHidden: true
     },
 
     {
-        label: "企业类型",
+        label: "企业属性",
         prop: "stats",
         type: "tree",
         hide: true,
@@ -70,20 +67,18 @@
             label: "dictValue",
             value: "dictKey"
         },
-        width: 130,
-        rules: [
-            {
-                required: true,
-                message: "请选择企业类型",
-                trigger: "click",
-            },
-        ],
+        // width: 130,
+        rules: [{
+            required: true,
+            message: "请选择企业属性",
+            trigger: "click",
+        }, ],
     },
     {
         label: "法定代表人",
         labelWidth: 160,
         prop: "representative",
-        width: 110,
+        // width: 110,
         search: true,
         searchSpan: 4,
         searchLabelWidth: 100
@@ -92,7 +87,7 @@
         label: "法定代表人电话",
         labelWidth: 160,
         prop: "representativecell",
-        width: 120,
+        // width: 120,
         // search: true,
         searchSpan: 4,
         searchLabelWidth: 100,
@@ -102,7 +97,7 @@
         label: "保安人数",
         labelWidth: 160,
         prop: "znum",
-        width: 69,
+        // width: 69,
         // search: true,
         searchSpan: 4,
         searchLabelWidth: 100
@@ -111,7 +106,7 @@
         label: "派遣人数",
         labelWidth: 160,
         prop: "pnum",
-        width: 69,
+        // width: 69,
         // search: true,
         searchSpan: 4,
         searchLabelWidth: 100
@@ -120,7 +115,7 @@
         label: "持证人数",
         labelWidth: 160,
         prop: "cnum",
-        width: 69,
+        // width: 69,
         // search: true,
         searchSpan: 4,
         searchLabelWidth: 100
@@ -142,18 +137,20 @@
         hide: true,
         labelWidth: 160,
         // search: true,
-        width: 80,
+        // width: 80,
     },
     {
         label: "联系人",
         prop: "contacts",
         labelWidth: 160,
-        width: 85,
+        // width: 85,
+        hide: true,
     }, {
         label: "联系电话",
         prop: "contactscell",
         labelWidth: 160,
-        width: 95,
+        // width: 95,
+        hide: true,
     },
 
     {
@@ -184,16 +181,41 @@
         },
         // labelWidth: w,
         // span: s,
-        rules: [
-            {
-                required: true,
-                message: "请选择所属辖区",
-                trigger: "click",
-            },
-        ],
+        rules: [{
+            required: true,
+            message: "请选择所属辖区",
+            trigger: "click",
+        }, ],
         // width: 110,
         // search: true,
         overHidden: true
+    },
+    {
+        label: "注册时间",
+        prop: "establishtime",
+        span: 12,
+        labelWidth: 130,
+        disabled: true,
+        type: "date",
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        // 表单新增时是否禁止
+        addDisabled: false,
+        // 表单新增时是否可见
+        addDisplay: false,
+        // 表单新增时是否为查看模式
+        addDetail: false,
+        // 表单编辑时是否禁止
+        editDisabled: false,
+        // 表单编辑时是否可见
+        editDisplay: false,
+        // 表单编辑时是否为查看模式
+        editDetail: false,
+        rules: [{
+            required: true,
+            message: "请选择注册时间",
+            trigger: "blur",
+        }, ],
     },
     {
         label: "登记机关",
@@ -215,10 +237,9 @@
     },
 ]
 
-var w = 160
-    , s = 12;
-export var column0 = [
-    {
+var w = 160,
+    s = 12;
+export var column0 = [{
         label: "",
         labelWidth: 20,
         type: 'title',
@@ -253,13 +274,11 @@
         },
         labelWidth: w,
         span: s,
-        rules: [
-            {
-                required: true,
-                message: "请选择所属辖区",
-                trigger: "click",
-            },
-        ],
+        rules: [{
+            required: true,
+            message: "请选择所属辖区",
+            trigger: "click",
+        }, ],
     },
     {
         label: "统一社会信用代码",
@@ -318,13 +337,15 @@
         labelWidth: w,
         span: s,
         rules: [{
-            required: true,
-            message: "请输入法定代表人电话",
-            trigger: "blur"
-        },
-        {
-            validator: phones, trigger: ['change', 'blur']
-        },]
+                required: true,
+                message: "请输入法定代表人电话",
+                trigger: "blur"
+            },
+            {
+                validator: phones,
+                trigger: ['change', 'blur']
+            },
+        ]
     }, {
         label: "联系人",
         prop: "contacts",
@@ -342,13 +363,15 @@
         labelWidth: w,
         span: s,
         rules: [{
-            required: true,
-            message: "请输入联系电话",
-            trigger: "blur"
-        },
-        {
-            validator: phones, trigger: ['change', 'blur']
-        }]
+                required: true,
+                message: "请输入联系电话",
+                trigger: "blur"
+            },
+            {
+                validator: phones,
+                trigger: ['change', 'blur']
+            }
+        ]
     },
     // {
     //     label: "企业类型",
@@ -451,8 +474,7 @@
     }
 ]
 
-export var column1 = [
-    {
+export var column1 = [{
         label: "",
         labelWidth: 20,
         type: 'title',
@@ -549,31 +571,34 @@
         labelWidth: w,
         span: s,
         rules: [{
-            required: true,
-            message: "请输入身份证",
-            trigger: "blur"
-        },
-        {
-            validator: cardids, trigger: ['change', 'blur']
-        }]
+                required: true,
+                message: "请输入身份证",
+                trigger: "blur"
+            },
+            {
+                validator: cardids,
+                trigger: ['change', 'blur']
+            }
+        ]
     }, {
         label: "联系电话",
         prop: "cell",
         labelWidth: w,
         span: s,
         rules: [{
-            required: true,
-            message: "请输入联系电话",
-            trigger: "blur"
-        },
-        {
-            validator: phones, trigger: ['change', 'blur']
-        }]
+                required: true,
+                message: "请输入联系电话",
+                trigger: "blur"
+            },
+            {
+                validator: phones,
+                trigger: ['change', 'blur']
+            }
+        ]
     },
 ]
 
-export var column2 = [
-    {
+export var column2 = [{
         label: "",
         labelWidth: 20,
         type: 'title',
@@ -640,26 +665,30 @@
         labelWidth: w,
         span: s,
         rules: [{
-            required: true,
-            message: "请输入身份证",
-            trigger: "blur"
-        },
-        {
-            validator: cardids, trigger: ['change', 'blur']
-        }]
+                required: true,
+                message: "请输入身份证",
+                trigger: "blur"
+            },
+            {
+                validator: cardids,
+                trigger: ['change', 'blur']
+            }
+        ]
     }, {
         label: "联系电话",
         prop: "cell2",
         labelWidth: w,
         span: s,
         rules: [{
-            required: true,
-            message: "请输入联系电话",
-            trigger: "blur"
-        },
-        {
-            validator: phones, trigger: ['change', 'blur']
-        }]
+                required: true,
+                message: "请输入联系电话",
+                trigger: "blur"
+            },
+            {
+                validator: phones,
+                trigger: ['change', 'blur']
+            }
+        ]
     }
     // , {
     //     label: "持股比例(%)",
@@ -667,4 +696,4 @@
     //     labelWidth: w,
     //     span: s
     // }
-]
+]
\ No newline at end of file
diff --git a/src/views/securityUnit/localCompany.vue b/src/views/securityUnit/localCompany.vue
index 268682b..25a8d97 100644
--- a/src/views/securityUnit/localCompany.vue
+++ b/src/views/securityUnit/localCompany.vue
@@ -49,14 +49,6 @@
         </template>
         <template slot="menuLeft">
           <el-button
-            type="primary"
-            icon="el-icon-plus"
-            size="small"
-            plain
-            @click.stop="rowSave"
-            >新增</el-button
-          >
-          <el-button
             type="danger"
             size="small"
             plain
@@ -74,22 +66,6 @@
           </el-button>
         </template>
       </avue-crud>
-      <el-dialog
-        :visible.sync="forms"
-        width="80%"
-        top="5vh"
-        :modal-append-to-body="false"
-        class="addCompany"
-      >
-        <avue-form
-          ref="form"
-          v-model="obj0"
-          :option="option0"
-          v-if="forms"
-          @submit="handleSubmit"
-        >
-        </avue-form>
-      </el-dialog>
     </div>
     <el-dialog
       title="保安单位导入"
@@ -113,21 +89,15 @@
 </template>
 
 <script>
-import { column, column0, column1, column2 } from "./data";
 import {
   getdata,
   adddata,
   update,
   remove,
-  adddata1,
-  adddata2,
-  getDeptLazyTree,
 } from "@/api/securityUnit/securityUnit";
 import { mapGetters } from "vuex";
 export default {
   data() {
-    var w = 160,
-      s = 12;
     return {
       excelBox1: false,
       excelForm1: {},
@@ -156,7 +126,6 @@
           },
         ],
       },
-
       loading: true, //保安单位基本信息
       selectionList: [],
       page: {
@@ -165,7 +134,6 @@
         total: 0,
         ...this.$store.state.control.changePageSize,
       },
-
       treeData: [],
       treeOption: {
         title: "我是标题",
@@ -190,38 +158,6 @@
           children: "children",
         },
       },
-
-      obj0: {
-        title0: "保安单位基本信息",
-      },
-      option0: {
-        emptyBtn: false,
-        submitBtn: true,
-        gutter: 30,
-        column: column0,
-        ...this.$store.state.control.clearOtherBut,
-      },
-      obj1: {
-        title1: "保安单位出资人员",
-      },
-      option1: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column1,
-        ...this.$store.state.control.clearOtherBut,
-      },
-      obj2: {
-        title2: "主要管理人员信息",
-      },
-      option2: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column2,
-        ...this.$store.state.control.clearOtherBut,
-      },
-
       forms: false,
       data0: {},
       data1: {},
@@ -231,13 +167,11 @@
       b2: {},
       noshehuibianma: 0,
       nobumen: 0,
-
       query: {},
       data: [],
       option: {
         index: true,
-        addBtn: false,
-        // card: true,
+        addBtn: true,
         tip: false,
         searchSize: "mini",
         searchMenuSpan: 6,
@@ -246,15 +180,214 @@
         border: true,
         align: "center",
         selection: true,
-        column: column,
-        ...this.$store.state.control.clearOtherBut,
+        column: [
+          {
+            label: "企业名称",
+            prop: "enterprisename",
+            search: true,
+            searchSpan: 4,
+            labelWidth: 145,
+            minWidth: 160,
+            rules: [
+              {
+                required: true,
+                message: "请选择企业名称",
+                trigger: "click",
+              },
+            ],
+            overHidden: true,
+          },
+          {
+            label: "所属辖区",
+            prop: "jurisdiction",
+            //父节点不能选
+            parent: false,
+            labelWidth: 145,
+            type: "tree",
+            dicUrl: "/api//jurisdiction/lazy-trees",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            rules: [
+              {
+                required: false,
+                message: "请选择所属辖区",
+                trigger: "click",
+              },
+            ],
+            overHidden: true,
+          },
+          {
+            label: "法定代表人",
+            prop: "representative",
+            span: 12,
+            labelWidth: 145,
+            disabled: false,
+            rules: [
+              {
+                required: false,
+                message: "请输入法定代表人",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "法定代表人电话",
+            prop: "representativecell",
+            span: 12,
+            labelWidth: 145,
+            disabled: false,
+            rules: [
+              {
+                required: false,
+                message: "请输入法定代表人电话",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "联系人",
+            prop: "contacts",
+            labelWidth: 145,
+            hide: true,
+          },
+          {
+            label: "联系电话",
+            prop: "contactscell",
+            labelWidth: 145,
+            hide: true,
+          },
+          {
+            label: "保安人数",
+            labelWidth: 145,
+            prop: "znum",
+            searchSpan: 4,
+            addDisabled: false,
+            addDisplay: false,
+            editDisabled: false,
+            editDisplay: false,
+            viewDisabled: false,
+            viewDisplay: false,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "派遣人数",
+            labelWidth: 145,
+            prop: "pnum",
+            addDisabled: false,
+            addDisplay: false,
+            editDisabled: false,
+            editDisplay: false,
+            viewDisabled: false,
+            viewDisplay: false,
+            searchSpan: 4,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "持证人数",
+            labelWidth: 145,
+            prop: "cnum",
+            addDisabled: false,
+            addDisplay: false,
+            editDisabled: false,
+            editDisplay: false,
+            viewDisabled: false,
+            viewDisplay: false,
+            searchSpan: 4,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "企业属性",
+            prop: "stats",
+            type: "tree",
+            hide: true,
+            labelWidth: 145,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stats",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择企业属性",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "注册地址",
+            prop: "address",
+            labelWidth: 145,
+            // search: true,
+            hide: true,
+          },
+          {
+            label: "注册时间",
+            prop: "establishtime",
+            span: 12,
+            labelWidth: 145,
+            disabled: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: false,
+                message: "请选择注册时间",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+              label: "办公地址",
+              prop: "industry",
+              span: 12,
+              labelWidth: 145,
+              disabled: false,
+              hide:true,
+              rules: [{
+                  required: false,
+                  message: "请选择办公地址",
+                  trigger: "blur",
+              }, ],
+          },
+          {
+            label: "登记机关",
+            prop: "registration",
+            // search: true,
+            labelWidth: 145,
+            // width: 88,
+            overHidden: true,
+            hide: true,
+          },
+        ],
         ...this.$store.state.control.clearOtherBut,
       },
     };
   },
   created() {
-    this.option0.column[4].value = 2;
-    this.option0.column[4].disabled = true;
+    const column = this.findObject(this.option.column, "stats");
+    column.value = "2";
+    column.editDisabled = true;
+    column.addDisabled = true;
+    if(this.userInfo.role_name == "administrator" ){
+      column.editDisabled = false;
+      column.addDisabled = false;
+    }
   },
   computed: {
     ...mapGetters(["userInfo"]),
@@ -265,20 +398,9 @@
       });
       return ids.join(",");
     },
-    ids1() {
-      let ids1 = [];
-      this.selectionList.forEach((ele) => {
-        ids1.push(ele.departmentid);
-      });
-      return ids1.join(",");
-    },
-    haveID() {
-      return this.obj0.creditcode;
-    },
   },
   methods: {
     rowClickSelf(val) {
-      // console.log(val.departmentid);
       this.$router.push({
         path: "/securityGuardOnce/index",
         query: { departmentid: val.departmentid },
@@ -296,47 +418,35 @@
     handleTemplate1() {
       window.open(`/api/examSubjectChoices/export-template`);
     },
-
-    // handleChangeTABS(column) {
-    //   this.typeTABS = column;
-    //   // this.$message.success(JSON.stringify(column));
-    //   if (column.prop == "tab1") {
-    //     this.loading1 = false;
-    //     this.loading2 = false;
-    //     this.onLoad(this.page);
-    //   } else if (column.prop == "tab2") {
-    //     this.loading = false;
-    //     this.loading2 = false;
-    //     this.onLoad1(this.page1); //第二个表格不会自动执行
-    //   } else if (column.prop == "tab3") {
-    //     this.loading1 = false;
-    //     this.loading = false;
-    //     this.onLoad2(this.page2); //第二个表格不会自动执行
-    //   }
-    // },
     //保安单位基本信息
     sizeChange(val) {
       this.page1.currentPage = 1;
       this.page1.pageSize = val;
-      // this.getData();
       this.onLoad(this.page, this.query);
-      //   this.$message.success("行数" + val);
     },
     currentChange(val) {
       this.page1.currentPage = val;
       // this.getData();
       this.onLoad(this.page, this.query);
-      //   this.$message.success("页码" + val);
     },
     rowSave(form, done, loading) {
-      // console.log("save1");
-      this.forms = true;
-      var that = this;
-      //先获取部门接口
-      getDeptLazyTree().then((res) => {
-        var d = res.data.data;
-        that.treeData = d;
-        // console.log(d);
+      form["createUserId"] = this.userInfo.Id;
+      adddata(form).then((res) => {
+        if (res.data.success) {
+          this.$message({
+            message: "操作成功",
+            type: "success",
+          });
+          this.refreshChange();
+          done();
+          this.forms = false;
+        } else {
+          this.$message({
+            message: "操作失败",
+            type: "warning",
+          });
+          done();
+        }
       });
     },
     searchChange(params, done) {
@@ -403,7 +513,6 @@
         type: "warning",
       })
         .then(() => {
-          // console.log(this.ids);
           return remove(this.ids, this.ids1).then((res) => {
             this.refreshChange();
           });
@@ -422,14 +531,11 @@
       this.onLoad(this.page, this.query);
     },
     rowClick(row) {
-      // console.log(row);
-      // row.identificationnumber; //统一社会信用代 码
       window.localStorage.setItem("danweidata", JSON.stringify(row));
+      var data = JSON.stringify(row);
       this.$router.push({
         path: "/securityUnitChild",
-        // redirect: { name: "foo" },
-        query: { rowsecurity: "fromSecurity" },
-        // params: { row: row.identificationnumber },
+        query: { data: data },
       });
     },
     //跳转到附近列表页面
@@ -461,197 +567,6 @@
         console.log(this.data);
         this.loading = false;
       });
-    },
-    // nodeClick(data) {//分局   不在这添加
-    //   // this.treeDeptId = data.id;
-    //   // this.page.currentPage = 1;
-    //   // this.onLoad(this.page);
-    //   // this.$message.success(JSON.stringify(data));
-    //   this.obj0["departmentid"] = data.title;
-    //   this.obj1["departmentid"] = data.title;
-    //   this.obj2["departmentid"] = data.title;
-    //   this.obj0["useid"] = data.id;
-    //   this.obj1["useid"] = data.id;
-    //   this.obj2["useid"] = data.id;
-    //   this.nobumen = 1;
-    // },
-    handleSubmit(form, done) {
-      form["createUserId"] = this.userInfo.Id;
-      // console.log(form);
-      // done();
-      // return;
-      adddata(form).then((res) => {
-        if (res.data.success) {
-          this.$message({
-            message: "提交成功",
-            type: "success",
-          });
-          this.refreshChange();
-          done();
-          this.forms = false;
-        } else {
-          this.$message({
-            message: "提交失败",
-            type: "warning",
-          });
-          done();
-        }
-      });
-    },
-    tip0() {
-      // if (this.panduanmeiyouziduan()) {
-      //   return;
-      // }
-      var d = {};
-      for (var k in this.obj0) {
-        for (var i in column0) {
-          if (k == column0[i].prop && k != "title0") {
-            d[k] = this.obj0[k];
-          }
-        }
-      }
-      console.log(d);
-      for (var k in d) {
-        if (d[k].prop == "capital") {
-          continue;
-        }
-        let iisit0 = d[k] == "" || d[k] == undefined;
-        if (iisit0) {
-          console.log(d[k]);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 0);
-      // this.data0 = d;
-      // this.forms = 1;
-    },
-    tip1() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj1) {
-        for (var i in column1) {
-          if (k == column1[i].prop && k != "title1") {
-            d[k] = this.obj1[k];
-          }
-        }
-      }
-      d["capital"] = d["capital2"];
-      delete d["capital2"];
-      // console.log(d);
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 1);
-      this.data1 = d;
-      this.forms = 2;
-    },
-    tip2() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj2) {
-        for (var i in column2) {
-          if (k == column2[i].prop && k != "title2") {
-            d[k] = this.obj2[k];
-          }
-        }
-      }
-      console.log(d);
-      d["cardid"] = d["cardid2"];
-      delete d["cardid2"];
-      d["cell"] = d["cell2"];
-      delete d["cell2"];
-      // d["shareholdingratio"] = d["shareholdingratio2"];
-      // delete d["shareholdingratio2"];
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 2);
-      this.data2 = d;
-
-      // this.data0.departmentid = this.data0.useid;
-      // this.data1.departmentid = this.data1.useid;
-      // this.data2.departmentid = this.data2.useid;
-      // delete this.data0.useid;
-      // delete this.data1.useid;
-      // delete this.data2.useid;
-
-      adddata(this.data0).then((res) => {
-        console.log(res, 0);
-      });
-      adddata1(this.data1).then((res) => {
-        console.log(res, 1);
-      });
-      adddata2(this.data2).then((res) => {
-        console.log(res, 2);
-      });
-      var time = setTimeout(() => {
-        this.onLoad(this.page, this.query);
-        console.log(this.data0, this.data1, this.data2, "已刷新");
-      }, 500);
-      this.tipover();
-    },
-    tip1up1() {
-      this.forms = 0;
-    },
-    tip2up2() {
-      this.forms = 1;
-    },
-    tipover() {
-      this.forms = -1;
-      this.obj0 = {
-        title0: "保安单位基本信息",
-      };
-      this.obj1 = {
-        title1: "保安单位出资人员",
-      };
-      this.obj2 = {
-        title2: "主要管理人员信息",
-      };
-      this.data0 = {};
-      this.data1 = {};
-      this.data2 = {};
-      this.noshehuibianma = 0;
-      this.nobumen = 0;
-    },
-    panduanmeiyouziduan() {
-      if (this.noshehuibianma == 0) {
-        this.$message.warning("请输入统一社会信用代码");
-        return true;
-      }
-      if (this.nobumen == 0) {
-        return false;
-        this.$message.warning("请选则部门");
-      }
-      return false;
-    },
-  },
-  watch: {
-    haveID() {
-      // console.log(this.haveID);
-      if (this.haveID != undefined) {
-        if (this.haveID.length > 0) {
-          //统一社会信用代码判断
-          this.noshehuibianma = 1;
-        } else {
-          this.noshehuibianma = 0;
-        }
-      }
-    },
-    havedata() {
-      console.log(this.havedata, "qqqqq");
     },
   },
   mounted() {},
diff --git a/src/views/securityUnit/securityTraining.vue b/src/views/securityUnit/securityTraining.vue
index 891d8f6..1d5fbda 100644
--- a/src/views/securityUnit/securityTraining.vue
+++ b/src/views/securityUnit/securityTraining.vue
@@ -49,14 +49,6 @@
         </template>
         <template slot="menuLeft">
           <el-button
-            type="primary"
-            icon="el-icon-plus"
-            size="small"
-            plain
-            @click.stop="rowSave"
-            >新增</el-button
-          >
-          <el-button
             type="danger"
             size="small"
             plain
@@ -74,22 +66,6 @@
           </el-button>
         </template>
       </avue-crud>
-      <el-dialog
-        :visible.sync="forms"
-        width="80%"
-        top="5vh"
-        :modal-append-to-body="false"
-        class="addCompany"
-      >
-        <avue-form
-          ref="form"
-          v-model="obj0"
-          :option="option0"
-          v-if="forms"
-          @submit="handleSubmit"
-        >
-        </avue-form>
-      </el-dialog>
     </div>
     <el-dialog
       title="保安单位导入"
@@ -113,21 +89,15 @@
 </template>
 
 <script>
-import { column, column0, column1, column2 } from "./data";
 import {
   getdata,
   adddata,
   update,
   remove,
-  adddata1,
-  adddata2,
-  getDeptLazyTree,
 } from "@/api/securityUnit/securityUnit";
 import { mapGetters } from "vuex";
 export default {
   data() {
-    var w = 160,
-      s = 12;
     return {
       excelBox1: false,
       excelForm1: {},
@@ -156,7 +126,6 @@
           },
         ],
       },
-
       loading: true, //保安单位基本信息
       selectionList: [],
       page: {
@@ -165,7 +134,6 @@
         total: 0,
         ...this.$store.state.control.changePageSize,
       },
-
       treeData: [],
       treeOption: {
         title: "我是标题",
@@ -190,80 +158,14 @@
           children: "children",
         },
       },
-      // treeOption: {
-      //   nodeKey: "id",
-      //   // lazy: true,
-      //   // treeLoad: function (node, resolve) {
-      //   //   // const parentId = node.level === 0 ? 0 : node.data.id;
-      //   //   getDeptLazyTree().then((res) => {
-      //   //     resolve(
-      //   //       res.data.data.map((item) => {
-      //   //         console.log({
-      //   //           ...item,
-      //   //           leaf: !item.hasChildren,
-      //   //         });
-      //   //         return {
-      //   //           ...item,
-      //   //           leaf: !item.hasChildren,
-      //   //         };
-      //   //       })
-      //   //     );
-      //   //   });
-      //   // },
-      //   addBtn: false,
-      //   menu: false,
-      //   size: "small",
-      //   props: {
-      //     labelText: "标题",
-      //     label: "title",
-      //     value: "value",
-      //     children: "children",
-      //   },
-      // },
-
-      obj0: {
-        title0: "保安单位基本信息",
-      },
-      option0: {
-        emptyBtn: false,
-        submitBtn: true,
-        gutter: 30,
-        column: column0,
-      },
-      obj1: {
-        title1: "保安单位出资人员",
-      },
-      option1: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column1,
-      },
-      obj2: {
-        title2: "主要管理人员信息",
-      },
-      option2: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column2,
-      },
-
       forms: false,
-      data0: {},
-      data1: {},
-      data2: {},
-      b0: {},
-      b1: {},
-      b2: {},
       noshehuibianma: 0,
       nobumen: 0,
-
       query: {},
       data: [],
       option: {
         index: true,
-        addBtn: false,
+        addBtn: true,
         // card: true,
         tip: false,
         searchSize: "mini",
@@ -274,15 +176,214 @@
         menuWidth: 275,
         align: "center",
         selection: true,
-        column: column,
-        ...this.$store.state.control.clearOtherBut,
+        column: [
+          {
+            label: "企业名称",
+            prop: "enterprisename",
+            search: true,
+            searchSpan: 4,
+            labelWidth: 145,
+            minWidth: 160,
+            rules: [
+              {
+                required: true,
+                message: "请选择企业名称",
+                trigger: "click",
+              },
+            ],
+            overHidden: true,
+          },
+          {
+            label: "所属辖区",
+            prop: "jurisdiction",
+            //父节点不能选
+            parent: false,
+            labelWidth: 145,
+            type: "tree",
+            dicUrl: "/api//jurisdiction/lazy-trees",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            rules: [
+              {
+                required: false,
+                message: "请选择所属辖区",
+                trigger: "click",
+              },
+            ],
+            overHidden: true,
+          },
+          {
+            label: "法定代表人",
+            prop: "representative",
+            span: 12,
+            labelWidth: 145,
+            disabled: false,
+            rules: [
+              {
+                required: false,
+                message: "请输入法定代表人",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "法定代表人电话",
+            prop: "representativecell",
+            span: 12,
+            labelWidth: 145,
+            disabled: false,
+            rules: [
+              {
+                required: false,
+                message: "请输入法定代表人电话",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "联系人",
+            prop: "contacts",
+            labelWidth: 145,
+            hide: true,
+          },
+          {
+            label: "联系电话",
+            prop: "contactscell",
+            labelWidth: 145,
+            hide: true,
+          },
+          {
+            label: "保安人数",
+            labelWidth: 145,
+            prop: "znum",
+            searchSpan: 4,
+            addDisabled: false,
+            addDisplay: false,
+            editDisabled: false,
+            editDisplay: false,
+            viewDisabled: false,
+            viewDisplay: false,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "派遣人数",
+            labelWidth: 145,
+            prop: "pnum",
+            addDisabled: false,
+            addDisplay: false,
+            editDisabled: false,
+            editDisplay: false,
+            viewDisabled: false,
+            viewDisplay: false,
+            searchSpan: 4,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "持证人数",
+            labelWidth: 145,
+            prop: "cnum",
+            addDisabled: false,
+            addDisplay: false,
+            editDisabled: false,
+            editDisplay: false,
+            viewDisabled: false,
+            viewDisplay: false,
+            searchSpan: 4,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "企业属性",
+            prop: "stats",
+            type: "tree",
+            hide: true,
+            labelWidth: 145,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stats",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择企业属性",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "注册地址",
+            prop: "address",
+            labelWidth: 145,
+            // search: true,
+            hide: true,
+          },
+          {
+            label: "注册时间",
+            prop: "establishtime",
+            span: 12,
+            labelWidth: 145,
+            disabled: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: false,
+                message: "请选择注册时间",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+              label: "办公地址",
+              prop: "industry",
+              span: 12,
+              labelWidth: 145,
+              disabled: false,
+              hide:true,
+              rules: [{
+                  required: false,
+                  message: "请选择办公地址",
+                  trigger: "blur",
+              }, ],
+          },
+          {
+            label: "登记机关",
+            prop: "registration",
+            // search: true,
+            labelWidth: 145,
+            // width: 88,
+            overHidden: true,
+            hide: true,
+          },
+        ],
         ...this.$store.state.control.clearOtherBut,
       },
     };
   },
   created() {
-    this.option0.column[4].value = 1;
-    this.option0.column[4].disabled = true;
+    const column = this.findObject(this.option.column, "stats");
+    column.value = "1";
+    column.editDisabled = true;
+    column.addDisabled = true;
+    if(this.userInfo.role_name == "administrator" ){
+      column.editDisabled = false;
+      column.addDisabled = false;
+    }
   },
   computed: {
     ...mapGetters(["userInfo"]),
@@ -292,16 +393,6 @@
         ids.push(ele.creditcode);
       });
       return ids.join(",");
-    },
-    ids1() {
-      let ids1 = [];
-      this.selectionList.forEach((ele) => {
-        ids1.push(ele.departmentid);
-      });
-      return ids1.join(",");
-    },
-    haveID() {
-      return this.obj0.creditcode;
     },
   },
   methods: {
@@ -324,24 +415,6 @@
     handleTemplate1() {
       window.open(`/api/examSubjectChoices/export-template`);
     },
-
-    // handleChangeTABS(column) {
-    //   this.typeTABS = column;
-    //   // this.$message.success(JSON.stringify(column));
-    //   if (column.prop == "tab1") {
-    //     this.loading1 = false;
-    //     this.loading2 = false;
-    //     this.onLoad(this.page);
-    //   } else if (column.prop == "tab2") {
-    //     this.loading = false;
-    //     this.loading2 = false;
-    //     this.onLoad1(this.page1); //第二个表格不会自动执行
-    //   } else if (column.prop == "tab3") {
-    //     this.loading1 = false;
-    //     this.loading = false;
-    //     this.onLoad2(this.page2); //第二个表格不会自动执行
-    //   }
-    // },
     //保安单位基本信息
     sizeChange(val) {
       this.page1.currentPage = 1;
@@ -354,28 +427,13 @@
       this.page1.currentPage = val;
       // this.getData();
       this.onLoad(this.page, this.query);
-      //   this.$message.success("页码" + val);
     },
     rowSave(form, done, loading) {
-      // console.log("save1");
-      this.forms = true;
-      var that = this;
-      //先获取部门接口
-      getDeptLazyTree().then((res) => {
-        var d = res.data.data;
-        that.treeData = d;
-        // console.log(d);
-      });
-    },
-    handleSubmit(form, done) {
       form["createUserId"] = this.userInfo.Id;
-      // console.log(form);
-      // done();
-      // return;
       adddata(form).then((res) => {
         if (res.data.success) {
           this.$message({
-            message: "提交成功",
+            message: "操作成功",
             type: "success",
           });
           this.refreshChange();
@@ -383,7 +441,7 @@
           this.forms = false;
         } else {
           this.$message({
-            message: "提交失败",
+            message: "操作失败",
             type: "warning",
           });
           done();
@@ -473,14 +531,11 @@
       this.onLoad(this.page, this.query);
     },
     rowClick(row) {
-      // console.log(row);
-      // row.identificationnumber; //统一社会信用代 码
       window.localStorage.setItem("danweidata", JSON.stringify(row));
+      var data = JSON.stringify(row);
       this.$router.push({
         path: "/securityUnitChild",
-        // redirect: { name: "foo" },
-        query: { rowsecurity: "fromSecurity" },
-        // params: { row: row.identificationnumber },
+        query: { data: data },
       });
     },
     //跳转到附近列表页面
@@ -513,170 +568,7 @@
         this.loading = false;
       });
     },
-    // nodeClick(data) {//分局   不在这添加
-    //   // this.treeDeptId = data.id;
-    //   // this.page.currentPage = 1;
-    //   // this.onLoad(this.page);
-    //   // this.$message.success(JSON.stringify(data));
-    //   this.obj0["departmentid"] = data.title;
-    //   this.obj1["departmentid"] = data.title;
-    //   this.obj2["departmentid"] = data.title;
-    //   this.obj0["useid"] = data.id;
-    //   this.obj1["useid"] = data.id;
-    //   this.obj2["useid"] = data.id;
-    //   this.nobumen = 1;
-    // },
-    tip0() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj0) {
-        for (var i in column0) {
-          if (k == column0[i].prop && k != "title0") {
-            d[k] = this.obj0[k];
-          }
-        }
-      }
-      console.log(d);
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 0);
-      this.data0 = d;
-      this.forms = 1;
-    },
-    tip1() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj1) {
-        for (var i in column1) {
-          if (k == column1[i].prop && k != "title1") {
-            d[k] = this.obj1[k];
-          }
-        }
-      }
-      d["capital"] = d["capital2"];
-      delete d["capital2"];
-      // console.log(d);
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 1);
-      this.data1 = d;
-      this.forms = 2;
-    },
-    tip2() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj2) {
-        for (var i in column2) {
-          if (k == column2[i].prop && k != "title2") {
-            d[k] = this.obj2[k];
-          }
-        }
-      }
-      console.log(d);
-      d["cardid"] = d["cardid2"];
-      delete d["cardid2"];
-      d["cell"] = d["cell2"];
-      delete d["cell2"];
-      // d["shareholdingratio"] = d["shareholdingratio2"];
-      // delete d["shareholdingratio2"];
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 2);
-      this.data2 = d;
-
-      // this.data0.departmentid = this.data0.useid;
-      // this.data1.departmentid = this.data1.useid;
-      // this.data2.departmentid = this.data2.useid;
-      // delete this.data0.useid;
-      // delete this.data1.useid;
-      // delete this.data2.useid;
-
-      adddata(this.data0).then((res) => {
-        console.log(res, 0);
-      });
-      adddata1(this.data1).then((res) => {
-        console.log(res, 1);
-      });
-      adddata2(this.data2).then((res) => {
-        console.log(res, 2);
-      });
-      var time = setTimeout(() => {
-        this.onLoad(this.page, this.query);
-        console.log(this.data0, this.data1, this.data2, "已刷新");
-      }, 500);
-      this.tipover();
-    },
-    tip1up1() {
-      this.forms = true;
-    },
-    tip2up2() {
-      this.forms = 1;
-    },
-    tipover() {
-      this.forms = -1;
-      this.obj0 = {
-        title0: "保安单位基本信息",
-      };
-      this.obj1 = {
-        title1: "保安单位出资人员",
-      };
-      this.obj2 = {
-        title2: "主要管理人员信息",
-      };
-      this.data0 = {};
-      this.data1 = {};
-      this.data2 = {};
-      this.noshehuibianma = 0;
-      this.nobumen = 0;
-    },
-    panduanmeiyouziduan() {
-      if (this.noshehuibianma == 0) {
-        this.$message.warning("请输入统一社会信用代码");
-        return true;
-      }
-      if (this.nobumen == 0) {
-        return false;
-        this.$message.warning("请选则部门");
-      }
-      return false;
-    },
-  },
-  watch: {
-    haveID() {
-      // console.log(this.haveID);
-      if (this.haveID != undefined) {
-        if (this.haveID.length > 5) {
-          //统一社会信用代码判断
-          this.noshehuibianma = 1;
-        } else {
-          this.noshehuibianma = 0;
-        }
-      }
-    },
-    havedata() {
-      console.log(this.havedata, "qqqqq");
-    },
+    
   },
   mounted() {},
 };
@@ -689,14 +581,6 @@
   //   border: 1px solid #000;
   box-sizing: border-box;
 }
-// .el-card__body {
-//   padding-bottom: 5px !important;
-// }
-// .avue-crud__tip,
-// .el-tag,
-// .el-tag--light {
-//   padding: 0 !important;
-// }
 
 .lod {
   position: absolute;
diff --git a/src/views/securityUnit/selfRecruitedSecurityGuard.vue b/src/views/securityUnit/selfRecruitedSecurityGuard.vue
index 43caada..2d5b213 100644
--- a/src/views/securityUnit/selfRecruitedSecurityGuard.vue
+++ b/src/views/securityUnit/selfRecruitedSecurityGuard.vue
@@ -49,14 +49,6 @@
         </template>
         <template slot="menuLeft">
           <el-button
-            type="primary"
-            icon="el-icon-plus"
-            size="small"
-            plain
-            @click.stop="rowSave"
-            >新增</el-button
-          >
-          <el-button
             type="danger"
             size="small"
             plain
@@ -74,22 +66,6 @@
           </el-button>
         </template>
       </avue-crud>
-      <el-dialog
-        :visible.sync="forms"
-        width="80%"
-        top="5vh"
-        :modal-append-to-body="false"
-        class="addCompany"
-      >
-        <avue-form
-          ref="form"
-          v-model="obj0"
-          :option="option0"
-          v-if="forms"
-          @submit="handleSubmit"
-        >
-        </avue-form>
-      </el-dialog>
     </div>
     <el-dialog
       title="保安单位导入"
@@ -113,7 +89,7 @@
 </template>
 
 <script>
-import { column, column0, column1, column2 } from "./data";
+import { column0, column1, column2 } from "./data";
 import {
   getdata,
   adddata,
@@ -126,8 +102,6 @@
 import { mapGetters } from "vuex";
 export default {
   data() {
-    var w = 160,
-      s = 12;
     return {
       excelBox1: false,
       excelForm1: {},
@@ -190,65 +164,6 @@
           children: "children",
         },
       },
-      // treeOption: {
-      //   nodeKey: "id",
-      //   // lazy: true,
-      //   // treeLoad: function (node, resolve) {
-      //   //   // const parentId = node.level === 0 ? 0 : node.data.id;
-      //   //   getDeptLazyTree().then((res) => {
-      //   //     resolve(
-      //   //       res.data.data.map((item) => {
-      //   //         console.log({
-      //   //           ...item,
-      //   //           leaf: !item.hasChildren,
-      //   //         });
-      //   //         return {
-      //   //           ...item,
-      //   //           leaf: !item.hasChildren,
-      //   //         };
-      //   //       })
-      //   //     );
-      //   //   });
-      //   // },
-      //   addBtn: false,
-      //   menu: false,
-      //   size: "small",
-      //   props: {
-      //     labelText: "标题",
-      //     label: "title",
-      //     value: "value",
-      //     children: "children",
-      //   },
-      // },
-
-      obj0: {
-        title0: "保安单位基本信息",
-      },
-      option0: {
-        emptyBtn: false,
-        submitBtn: true,
-        gutter: 30,
-        column: column0,
-      },
-      obj1: {
-        title1: "保安单位出资人员",
-      },
-      option1: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column1,
-      },
-      obj2: {
-        title2: "主要管理人员信息",
-      },
-      option2: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column2,
-      },
-
       forms: false,
       data0: {},
       data1: {},
@@ -258,13 +173,11 @@
       b2: {},
       noshehuibianma: 0,
       nobumen: 0,
-
       query: {},
       data: [],
       option: {
         index: true,
-        addBtn: false,
-        // card: true,
+        addBtn: true,
         tip: false,
         searchSize: "mini",
         searchMenuSpan: 6,
@@ -272,42 +185,185 @@
         menuWidth: 275,
         align: "center",
         border: true,
-
         selection: true,
         ...this.$store.state.control.clearOtherBut,
         column: [
-          ...column,
+          {
+            label: "企业名称",
+            prop: "enterprisename",
+            search: true,
+            searchSpan: 4,
+            labelWidth: 110,
+            minWidth: 160,
+            rules: [
+              {
+                required: true,
+                message: "请选择企业名称",
+                trigger: "click",
+              },
+            ],
+            overHidden: true,
+          },
+          {
+            label: "所属辖区",
+            prop: "jurisdiction",
+            //父节点不能选
+            parent: false,
+            labelWidth: 110,
+            type: "tree",
+            dicUrl: "/api//jurisdiction/lazy-trees",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择所属辖区",
+                trigger: "click",
+              },
+            ],
+            overHidden: true,
+          },
+          {
+            label: "联系人",
+            prop: "contacts",
+            labelWidth: 110,
+            hide: false,
+          },
+          {
+            label: "联系电话",
+            prop: "contactscell",
+            labelWidth: 110,
+            hide: false,
+          },
+          {
+            label: "保安人数",
+            labelWidth: 110,
+            prop: "znum",
+            searchSpan: 4,
+            addDisabled:false,
+            addDisplay:false,
+            editDisabled:false,
+            editDisplay:false,
+            viewDisabled:false,
+            viewDisplay:false,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "派遣人数",
+            labelWidth: 110,
+            prop: "pnum",
+            addDisabled:false,
+            addDisplay:false,
+            editDisabled:false,
+            editDisplay:false,
+            viewDisabled:false,
+            viewDisplay:false,
+            searchSpan: 4,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "持证人数",
+            labelWidth: 110,
+            prop: "cnum",
+            addDisabled:false,
+            addDisplay:false,
+            editDisabled:false,
+            editDisplay:false,
+            viewDisabled:false,
+            viewDisplay:false,
+            searchSpan: 4,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "企业属性",
+            prop: "stats",
+            type: "tree",
+            hide: true,
+            labelWidth: 110,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stats",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择企业属性",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "注册地址",
+            prop: "address",
+            labelWidth: 110,
+            // search: true,
+            hide: true,
+          },
+          {
+            label: "注册时间",
+            prop: "establishtime",
+            span: 12,
+            labelWidth: 110,
+            disabled: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请选择注册时间",
+                trigger: "blur",
+              },
+            ],
+          },
           {
             label: "服务区域",
-            labelWidth: 160,
+            labelWidth: 110,
             prop: "fregion",
-            width: 69,
           },
           {
             label: "服务时间",
-            labelWidth: 160,
+            labelWidth: 110,
             prop: "ftime",
-            width: 69,
             type: "date",
             format: "yyyy-MM-dd",
-            valueFormat: "timestamp",
+            valueFormat: "yyyy-MM-dd",
           },
+          {
+            label: "登记机关",
+            prop: "registration",
+            // search: true,
+            labelWidth: 110,
+            // width: 88,
+            overHidden: true,
+            hide: true,
+          },
+          
         ],
       },
     };
   },
   created() {
-    this.option0.column[4].value = 0;
-    this.option0.column[4].disabled = true;
-    if (this.userInfo.role_name == "培训公司管理员") {
-      for (let k in this.option0.column) {
-        if (this.option0.column[k].prop == "enterprisename") {
-          continue;
-        }
-        if (this.option0.column[k].rules) {
-          delete this.option0.column[k].rules;
-        }
-      }
+    const column = this.findObject(this.option.column, "stats");
+    column.value = "0";
+    if(this.userInfo.role_name=="培训公司管理员"){
+      column.editDisabled = true;
+      column.addDisabled = true;
     }
   },
   computed: {
@@ -318,16 +374,6 @@
         ids.push(ele.creditcode);
       });
       return ids.join(",");
-    },
-    ids1() {
-      let ids1 = [];
-      this.selectionList.forEach((ele) => {
-        ids1.push(ele.departmentid);
-      });
-      return ids1.join(",");
-    },
-    haveID() {
-      return this.obj0.creditcode;
     },
   },
   methods: {
@@ -350,47 +396,34 @@
     handleTemplate1() {
       window.open(`/api/examSubjectChoices/export-template`);
     },
-
-    // handleChangeTABS(column) {
-    //   this.typeTABS = column;
-    //   // this.$message.success(JSON.stringify(column));
-    //   if (column.prop == "tab1") {
-    //     this.loading1 = false;
-    //     this.loading2 = false;
-    //     this.onLoad(this.page);
-    //   } else if (column.prop == "tab2") {
-    //     this.loading = false;
-    //     this.loading2 = false;
-    //     this.onLoad1(this.page1); //第二个表格不会自动执行
-    //   } else if (column.prop == "tab3") {
-    //     this.loading1 = false;
-    //     this.loading = false;
-    //     this.onLoad2(this.page2); //第二个表格不会自动执行
-    //   }
-    // },
     //保安单位基本信息
     sizeChange(val) {
       this.page1.currentPage = 1;
       this.page1.pageSize = val;
-      // this.getData();
       this.onLoad(this.page, this.query);
-      //   this.$message.success("行数" + val);
     },
     currentChange(val) {
       this.page1.currentPage = val;
-      // this.getData();
       this.onLoad(this.page, this.query);
-      //   this.$message.success("页码" + val);
     },
     rowSave(form, done, loading) {
-      // console.log("save1");
-      this.forms = true;
-      var that = this;
-      //先获取部门接口
-      getDeptLazyTree().then((res) => {
-        var d = res.data.data;
-        that.treeData = d;
-        // console.log(d);
+      form["createUserId"] = this.userInfo.Id;
+      adddata(form).then((res) => {
+        if (res.data.success) {
+          this.$message({
+            message: "操作成功",
+            type: "success",
+          });
+          this.refreshChange();
+          done();
+          this.forms = false;
+        } else {
+          this.$message({
+            message: "操作失败",
+            type: "warning",
+          });
+          done();
+        }
       });
     },
     searchChange(params, done) {
@@ -476,14 +509,11 @@
       this.onLoad(this.page, this.query);
     },
     rowClick(row) {
-      // console.log(row);
-      // row.identificationnumber; //统一社会信用代 码
       window.localStorage.setItem("danweidata", JSON.stringify(row));
+      var data = JSON.stringify(row);
       this.$router.push({
         path: "/securityUnitChild",
-        // redirect: { name: "foo" },
-        query: { rowsecurity: "fromSecurity" },
-        // params: { row: row.identificationnumber },
+        query: { data: data },
       });
     },
     //跳转到附近列表页面
@@ -498,7 +528,6 @@
     },
     onLoad(page, params = {}) {
       if (this.userInfo.role_id == "1414840172333842433") {
-        console.log("是公安add jurisdiction");
         params["jurisdiction"] = this.userInfo.jurisdiction;
       }
       if (this.userInfo.role_name == "培训公司管理员") {
@@ -518,177 +547,6 @@
         console.log(this.data);
         this.loading = false;
       });
-    },
-    // nodeClick(data) {//分局   不在这添加
-    //   // this.treeDeptId = data.id;
-    //   // this.page.currentPage = 1;
-    //   // this.onLoad(this.page);
-    //   // this.$message.success(JSON.stringify(data));
-    //   this.obj0["departmentid"] = data.title;
-    //   this.obj1["departmentid"] = data.title;
-    //   this.obj2["departmentid"] = data.title;
-    //   this.obj0["useid"] = data.id;
-    //   this.obj1["useid"] = data.id;
-    //   this.obj2["useid"] = data.id;
-    //   this.nobumen = 1;
-    // },
-    handleSubmit(form, done) {
-      form["createUserId"] = this.userInfo.Id;
-      // console.log(form);
-      // done();
-      // return;
-      adddata(form).then((res) => {
-        if (res.data.success) {
-          this.$message({
-            message: "提交成功",
-            type: "success",
-          });
-          this.refreshChange();
-          done();
-          this.forms = false;
-        } else {
-          this.$message({
-            message: "提交失败",
-            type: "warning",
-          });
-          done();
-        }
-      });
-    },
-    tip0() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj0) {
-        for (var i in column0) {
-          if (k == column0[i].prop && k != "title0") {
-            d[k] = this.obj0[k];
-          }
-        }
-      }
-      console.log(d);
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 0);
-      this.data0 = d;
-      this.forms = 1;
-    },
-    tip1() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj1) {
-        for (var i in column1) {
-          if (k == column1[i].prop && k != "title1") {
-            d[k] = this.obj1[k];
-          }
-        }
-      }
-      d["capital"] = d["capital2"];
-      delete d["capital2"];
-      // console.log(d);
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 1);
-      this.data1 = d;
-      this.forms = 2;
-    },
-    tip2() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj2) {
-        for (var i in column2) {
-          if (k == column2[i].prop && k != "title2") {
-            d[k] = this.obj2[k];
-          }
-        }
-      }
-      console.log(d);
-      d["cardid"] = d["cardid2"];
-      delete d["cardid2"];
-      d["cell"] = d["cell2"];
-      delete d["cell2"];
-      // d["shareholdingratio"] = d["shareholdingratio2"];
-      // delete d["shareholdingratio2"];
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 2);
-      this.data2 = d;
-
-      // this.data0.departmentid = this.data0.useid;
-      // this.data1.departmentid = this.data1.useid;
-      // this.data2.departmentid = this.data2.useid;
-      // delete this.data0.useid;
-      // delete this.data1.useid;
-      // delete this.data2.useid;
-
-      adddata(this.data0).then((res) => {
-        console.log(res, 0);
-      });
-      adddata1(this.data1).then((res) => {
-        console.log(res, 1);
-      });
-      adddata2(this.data2).then((res) => {
-        console.log(res, 2);
-      });
-      var time = setTimeout(() => {
-        this.onLoad(this.page, this.query);
-        console.log(this.data0, this.data1, this.data2, "已刷新");
-      }, 500);
-      this.tipover();
-    },
-    tip1up1() {
-      this.forms = true;
-    },
-    tip2up2() {
-      this.forms = 1;
-    },
-    tipover() {
-      this.forms = false;
-      this.obj0 = {
-        title0: "保安单位基本信息",
-      };
-      this.obj1 = {
-        title1: "保安单位出资人员",
-      };
-      this.obj2 = {
-        title2: "主要管理人员信息",
-      };
-      this.data0 = {};
-      this.data1 = {};
-      this.data2 = {};
-      this.noshehuibianma = 0;
-      this.nobumen = 0;
-    },
-    panduanmeiyouziduan() {
-      if (this.noshehuibianma == 0) {
-        this.$message.warning("请输入统一社会信用代码");
-        return true;
-      }
-      if (this.nobumen == 0) {
-        return false;
-        this.$message.warning("请选则部门");
-      }
-      return false;
     },
   },
   watch: {
@@ -718,14 +576,6 @@
   //   border: 1px solid #000;
   box-sizing: border-box;
 }
-// .el-card__body {
-//   padding-bottom: 5px !important;
-// }
-// .avue-crud__tip,
-// .el-tag,
-// .el-tag--light {
-//   padding: 0 !important;
-// }
 
 .lod {
   position: absolute;
diff --git a/src/views/securityUnit/transRegionalcompany.vue b/src/views/securityUnit/transRegionalcompany.vue
index cd25153..aafd14b 100644
--- a/src/views/securityUnit/transRegionalcompany.vue
+++ b/src/views/securityUnit/transRegionalcompany.vue
@@ -50,15 +50,6 @@
         </template>
         <template slot="menuLeft">
           <el-button
-            type="primary"
-            icon="el-icon-plus"
-            size="small"
-            plain
-            @click.stop="rowSave"
-            >新增</el-button
-          >
-
-          <el-button
             type="danger"
             size="small"
             plain
@@ -76,22 +67,6 @@
           </el-button>
         </template>
       </avue-crud>
-      <el-dialog
-        :visible.sync="forms"
-        width="80%"
-        top="5vh"
-        :modal-append-to-body="false"
-        class="addCompany"
-      >
-        <avue-form
-          ref="form"
-          v-model="obj0"
-          :option="option0"
-          v-if="forms"
-          @submit="handleSubmit"
-        >
-        </avue-form>
-      </el-dialog>
     </div>
     <el-dialog
       title="保安单位导入"
@@ -115,15 +90,11 @@
 </template>
 
 <script>
-import { column, column0, column1, column2 } from "./data";
 import {
   getdata,
   adddata,
   update,
   remove,
-  adddata1,
-  adddata2,
-  getDeptLazyTree,
 } from "@/api/securityUnit/securityUnit";
 import { mapGetters } from "vuex";
 export default {
@@ -158,7 +129,6 @@
           },
         ],
       },
-
       loading: true, //保安单位基本信息
       selectionList: [],
       page: {
@@ -167,7 +137,6 @@
         total: 0,
         ...this.$store.state.control.changePageSize,
       },
-
       treeData: [],
       treeOption: {
         title: "我是标题",
@@ -192,81 +161,14 @@
           children: "children",
         },
       },
-      // treeOption: {
-      //   nodeKey: "id",
-      //   // lazy: true,
-      //   // treeLoad: function (node, resolve) {
-      //   //   // const parentId = node.level === 0 ? 0 : node.data.id;
-      //   //   getDeptLazyTree().then((res) => {
-      //   //     resolve(
-      //   //       res.data.data.map((item) => {
-      //   //         console.log({
-      //   //           ...item,
-      //   //           leaf: !item.hasChildren,
-      //   //         });
-      //   //         return {
-      //   //           ...item,
-      //   //           leaf: !item.hasChildren,
-      //   //         };
-      //   //       })
-      //   //     );
-      //   //   });
-      //   // },
-      //   addBtn: false,
-      //   menu: false,
-      //   size: "small",
-      //   props: {
-      //     labelText: "标题",
-      //     label: "title",
-      //     value: "value",
-      //     children: "children",
-      //   },
-      // },
-
-      obj0: {
-        title0: "保安单位基本信息",
-      },
-      option0: {
-        emptyBtn: false,
-        submitBtn: true,
-        gutter: 30,
-        column: column0,
-      },
-      obj1: {
-        title1: "保安单位出资人员",
-      },
-      option1: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column1,
-      },
-      obj2: {
-        title2: "主要管理人员信息",
-      },
-      option2: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column2,
-      },
-
       forms: false,
-      data0: {},
-      data1: {},
-      data2: {},
-      b0: {},
-      b1: {},
-      b2: {},
       noshehuibianma: 0,
       nobumen: 0,
-
       query: {},
       data: [],
       option: {
         index: true,
-        addBtn: false,
-        // card: true,
+        addBtn: true,
         tip: false,
         searchSize: "mini",
         searchMenuSpan: 6,
@@ -276,14 +178,214 @@
         border: true,
 
         selection: true,
-        column: column,
+        column: [
+          {
+            label: "企业名称",
+            prop: "enterprisename",
+            search: true,
+            searchSpan: 4,
+            labelWidth: 145,
+            minWidth: 160,
+            rules: [
+              {
+                required: true,
+                message: "请选择企业名称",
+                trigger: "click",
+              },
+            ],
+            overHidden: true,
+          },
+          {
+            label: "所属辖区",
+            prop: "jurisdiction",
+            //父节点不能选
+            parent: false,
+            labelWidth: 145,
+            type: "tree",
+            dicUrl: "/api//jurisdiction/lazy-trees",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            rules: [
+              {
+                required: false,
+                message: "请选择所属辖区",
+                trigger: "click",
+              },
+            ],
+            overHidden: true,
+          },
+          {
+            label: "分公司负责人",
+            prop: "representative",
+            span: 12,
+            labelWidth: 145,
+            disabled: false,
+            rules: [
+              {
+                required: false,
+                message: "请输入分公司负责人",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "分公司负责人电话",
+            prop: "representativecell",
+            span: 12,
+            labelWidth: 145,
+            disabled: false,
+            rules: [
+              {
+                required: false,
+                message: "请输入分公司负责人电话",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "联系人",
+            prop: "contacts",
+            labelWidth: 145,
+            hide: true,
+          },
+          {
+            label: "联系电话",
+            prop: "contactscell",
+            labelWidth: 145,
+            hide: true,
+          },
+          {
+            label: "保安人数",
+            labelWidth: 145,
+            prop: "znum",
+            searchSpan: 4,
+            addDisabled: false,
+            addDisplay: false,
+            editDisabled: false,
+            editDisplay: false,
+            viewDisabled: false,
+            viewDisplay: false,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "派遣人数",
+            labelWidth: 145,
+            prop: "pnum",
+            addDisabled: false,
+            addDisplay: false,
+            editDisabled: false,
+            editDisplay: false,
+            viewDisabled: false,
+            viewDisplay: false,
+            searchSpan: 4,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "持证人数",
+            labelWidth: 145,
+            prop: "cnum",
+            addDisabled: false,
+            addDisplay: false,
+            editDisabled: false,
+            editDisplay: false,
+            viewDisabled: false,
+            viewDisplay: false,
+            searchSpan: 4,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "企业属性",
+            prop: "stats",
+            type: "tree",
+            hide: true,
+            labelWidth: 145,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=stats",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择企业属性",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "注册地址",
+            prop: "address",
+            labelWidth: 145,
+            // search: true,
+            hide: true,
+          },
+          {
+            label: "注册时间",
+            prop: "establishtime",
+            span: 12,
+            labelWidth: 145,
+            disabled: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: false,
+                message: "请选择注册时间",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+              label: "办公地址",
+              prop: "industry",
+              span: 12,
+              labelWidth: 145,
+              disabled: false,
+              hide:true,
+              rules: [{
+                  required: false,
+                  message: "请选择办公地址",
+                  trigger: "blur",
+              }, ],
+          },
+          {
+            label: "登记机关",
+            prop: "registration",
+            // search: true,
+            labelWidth: 145,
+            // width: 88,
+            overHidden: true,
+            hide: true,
+          },
+        ],
         ...this.$store.state.control.clearOtherBut,
       },
     };
   },
   created() {
-    this.option0.column[4].value = 4;
-    this.option0.column[4].disabled = true;
+    const column = this.findObject(this.option.column, "stats");
+    column.value = "4";
+    column.editDisabled = true;
+    column.addDisabled = true;
+    if(this.userInfo.role_name == "administrator" ){
+      column.editDisabled = false;
+      column.addDisabled = false;
+    }
   },
   computed: {
     ...mapGetters(["userInfo"]),
@@ -294,20 +396,9 @@
       });
       return ids.join(",");
     },
-    ids1() {
-      let ids1 = [];
-      this.selectionList.forEach((ele) => {
-        ids1.push(ele.departmentid);
-      });
-      return ids1.join(",");
-    },
-    haveID() {
-      return this.obj0.creditcode;
-    },
   },
   methods: {
     rowClickSelf(val) {
-      // console.log(val.departmentid);
       this.$router.push({
         path: "/securityGuardOnce/index",
         query: { departmentid: val.departmentid },
@@ -325,58 +416,22 @@
     handleTemplate1() {
       window.open(`/api/examSubjectChoices/export-template`);
     },
-
-    // handleChangeTABS(column) {
-    //   this.typeTABS = column;
-    //   // this.$message.success(JSON.stringify(column));
-    //   if (column.prop == "tab1") {
-    //     this.loading1 = false;
-    //     this.loading2 = false;
-    //     this.onLoad(this.page);
-    //   } else if (column.prop == "tab2") {
-    //     this.loading = false;
-    //     this.loading2 = false;
-    //     this.onLoad1(this.page1); //第二个表格不会自动执行
-    //   } else if (column.prop == "tab3") {
-    //     this.loading1 = false;
-    //     this.loading = false;
-    //     this.onLoad2(this.page2); //第二个表格不会自动执行
-    //   }
-    // },
     //保安单位基本信息
     sizeChange(val) {
       this.page1.currentPage = 1;
       this.page1.pageSize = val;
-      // this.getData();
       this.onLoad(this.page, this.query);
-      //   this.$message.success("行数" + val);
     },
     currentChange(val) {
       this.page1.currentPage = val;
-      // this.getData();
       this.onLoad(this.page, this.query);
-      //   this.$message.success("页码" + val);
     },
     rowSave(form, done, loading) {
-      // console.log("save1");
-      this.forms = true;
-      var that = this;
-      //先获取部门接口
-      getDeptLazyTree().then((res) => {
-        var d = res.data.data;
-        that.treeData = d;
-        // console.log(d);
-      });
-    },
-    handleSubmit(form, done) {
       form["createUserId"] = this.userInfo.Id;
-      // console.log(form);
-      // done();
-      // return;
       adddata(form).then((res) => {
         if (res.data.success) {
           this.$message({
-            message: "提交成功",
+            message: "操作成功",
             type: "success",
           });
           this.refreshChange();
@@ -384,7 +439,7 @@
           this.forms = false;
         } else {
           this.$message({
-            message: "提交失败",
+            message: "操作成功",
             type: "warning",
           });
           done();
@@ -474,14 +529,11 @@
       this.onLoad(this.page, this.query);
     },
     rowClick(row) {
-      // console.log(row);
-      // row.identificationnumber; //统一社会信用代 码
       window.localStorage.setItem("danweidata", JSON.stringify(row));
+      var data = JSON.stringify(row);
       this.$router.push({
         path: "/securityUnitChild",
-        // redirect: { name: "foo" },
-        query: { rowsecurity: "fromSecurity" },
-        // params: { row: row.identificationnumber },
+        query: { data: data },
       });
     },
     //跳转到附近列表页面
@@ -513,154 +565,6 @@
         console.log(this.data);
         this.loading = false;
       });
-    },
-    // nodeClick(data) {//分局   不在这添加
-    //   // this.treeDeptId = data.id;
-    //   // this.page.currentPage = 1;
-    //   // this.onLoad(this.page);
-    //   // this.$message.success(JSON.stringify(data));
-    //   this.obj0["departmentid"] = data.title;
-    //   this.obj1["departmentid"] = data.title;
-    //   this.obj2["departmentid"] = data.title;
-    //   this.obj0["useid"] = data.id;
-    //   this.obj1["useid"] = data.id;
-    //   this.obj2["useid"] = data.id;
-    //   this.nobumen = 1;
-    // },
-    tip0() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj0) {
-        for (var i in column0) {
-          if (k == column0[i].prop && k != "title0") {
-            d[k] = this.obj0[k];
-          }
-        }
-      }
-      console.log(d);
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 0);
-      this.data0 = d;
-      this.forms = 1;
-    },
-    tip1() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj1) {
-        for (var i in column1) {
-          if (k == column1[i].prop && k != "title1") {
-            d[k] = this.obj1[k];
-          }
-        }
-      }
-      d["capital"] = d["capital2"];
-      delete d["capital2"];
-      // console.log(d);
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 1);
-      this.data1 = d;
-      this.forms = 2;
-    },
-    tip2() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj2) {
-        for (var i in column2) {
-          if (k == column2[i].prop && k != "title2") {
-            d[k] = this.obj2[k];
-          }
-        }
-      }
-      console.log(d);
-      d["cardid"] = d["cardid2"];
-      delete d["cardid2"];
-      d["cell"] = d["cell2"];
-      delete d["cell2"];
-      // d["shareholdingratio"] = d["shareholdingratio2"];
-      // delete d["shareholdingratio2"];
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 2);
-      this.data2 = d;
-
-      // this.data0.departmentid = this.data0.useid;
-      // this.data1.departmentid = this.data1.useid;
-      // this.data2.departmentid = this.data2.useid;
-      // delete this.data0.useid;
-      // delete this.data1.useid;
-      // delete this.data2.useid;
-
-      adddata(this.data0).then((res) => {
-        console.log(res, 0);
-      });
-      adddata1(this.data1).then((res) => {
-        console.log(res, 1);
-      });
-      adddata2(this.data2).then((res) => {
-        console.log(res, 2);
-      });
-      var time = setTimeout(() => {
-        this.onLoad(this.page, this.query);
-        console.log(this.data0, this.data1, this.data2, "已刷新");
-      }, 500);
-      this.tipover();
-    },
-    tip1up1() {
-      this.forms = true;
-    },
-    tip2up2() {
-      this.forms = 1;
-    },
-    tipover() {
-      this.forms = -1;
-      this.obj0 = {
-        title0: "保安单位基本信息",
-      };
-      this.obj1 = {
-        title1: "保安单位出资人员",
-      };
-      this.obj2 = {
-        title2: "主要管理人员信息",
-      };
-      this.data0 = {};
-      this.data1 = {};
-      this.data2 = {};
-      this.noshehuibianma = 0;
-      this.nobumen = 0;
-    },
-    panduanmeiyouziduan() {
-      if (this.noshehuibianma == 0) {
-        this.$message.warning("请输入统一社会信用代码");
-        return true;
-      }
-      if (this.nobumen == 0) {
-        return false;
-        this.$message.warning("请选则部门");
-      }
-      return false;
     },
   },
   watch: {
diff --git a/src/views/securityUnitChild/data.js b/src/views/securityUnitChild/data.js
index bd16da3..ce454d9 100644
--- a/src/views/securityUnitChild/data.js
+++ b/src/views/securityUnitChild/data.js
@@ -1,10 +1,3 @@
-var DIC = [{
-    label: '招聘中',
-    value: 1,
-}, {
-    label: '停止招聘',
-    value: 2,
-}]
 var w = 160,
     s = 12;
 
@@ -31,125 +24,15 @@
     {
         label: "企业名称",
         prop: "enterprisename",
-        span: 11,
-        labelWidth: 130,
-        disabled: true,
-    },
-    // {
-    //     label: "统一社会信用代码",
-    //     prop: "creditcode",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // },
-    {
-        label: "法定代表人",
-        prop: "representative",
-        span: 11,
-        labelWidth: 130,
+        span: 12,
+        labelWidth: 145,
         disabled: true,
         rules: [{
             required: true,
-            message: "请输入法定代表人",
-            trigger: "blur",
-        }, ],
-    }, {
-        label: "法定代表人电话",
-        prop: "representativecell",
-        span: 11,
-        labelWidth: 130,
-        disabled: true,
-        rules: [{
-            required: true,
-            message: "请输入法定代表人电话",
+            message: "请输入企业名称",
             trigger: "blur",
         }, ],
     },
-    {
-        label: "联系人",
-        prop: "contacts",
-        span: 11,
-        labelWidth: 130,
-        disabled: true,
-    }, {
-        label: "联系电话",
-        prop: "contactscell",
-        span: 11,
-        labelWidth: 130,
-        disabled: true,
-    },
-    // {
-    //     label: "注册时间",
-    //     prop: "establishtime",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // },
-    // {
-    //     label: "注册资本",
-    //     prop: "registeredcapital",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // },
-    // {
-    //     label: "实缴资本",
-    //     prop: "capital",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // },
-    // {
-    //     label: "组织机构代码",
-    //     prop: "organizationcode",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // },
-    // {
-    //     label: "工商注册号",
-    //     prop: "registrationnumber",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // },
-    // {
-    //     label: "纳税人识别号",
-    //     prop: "identificationnumber",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // },
-    {
-        label: "企业类型",
-        prop: "stats",
-        type: "tree",
-        dicUrl: "/api/blade-system/dict-biz/dictionary?code=stats",
-        props: {
-            label: "dictValue",
-            value: "dictKey"
-        },
-        span: 11,
-        labelWidth: 130,
-        disabled: true,
-    },
-    {
-        label: "注册地址",
-        prop: "address",
-        span: 11,
-        labelWidth: 130,
-        disabled: true,
-        // search: true,
-    },
-    // {
-    //     label: "所属辖区",
-    //     prop: "region",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     width: 110,
-    //     overHidden: true,
-    //     disabled: true,
-    // },
     {
         label: "所属辖区",
         prop: "jurisdiction",
@@ -162,43 +45,145 @@
             label: "title",
             value: "id",
         },
-        span: 11,
-        labelWidth: 130,
+        span: 12,
+        labelWidth: 145,
         width: 110,
         overHidden: true,
         disabled: true,
         rules: [{
-            required: false,
+            required: true,
             message: "请选择所属辖区",
             trigger: "click",
         }, ],
     },
     {
-        label: "所属行业",
-        prop: "industry",
-        span: 11,
-        labelWidth: 130,
+        label: "法定代表人",
+        prop: "representative",
+        span: 12,
+        labelWidth: 145,
         disabled: true,
+        rules: [{
+            required: true,
+            message: "请输入法定代表人",
+            trigger: "blur",
+        }, ],
+    }, {
+        label: "法定代表人电话",
+        prop: "representativecell",
+        span: 12,
+        labelWidth: 145,
+        disabled: true,
+        rules: [{
+            required: true,
+            message: "请输入法定代表人电话",
+            trigger: "blur",
+        }, ],
+    },
+    {
+        label: "联系人",
+        prop: "contacts",
+        span: 12,
+        labelWidth: 145,
+        disabled: true,
+        rules: [{
+            required: true,
+            message: "请输入联系人",
+            trigger: "blur",
+        }, ],
+    }, {
+        label: "联系电话",
+        prop: "contactscell",
+        span: 12,
+        labelWidth: 145,
+        disabled: true,
+        rules: [{
+            required: true,
+            message: "请输入联系电话",
+            trigger: "blur",
+        }, ],
+    },
+    {
+        label: "企业属性",
+        prop: "stats",
+        type: "tree",
+        dicUrl: "/api/blade-system/dict-biz/dictionary?code=statsType",
+        props: {
+            label: "dictValue",
+            value: "dictKey"
+        },
+        span: 12,
+        labelWidth: 145,
+        disabled: true,
+        rules: [{
+            required: true,
+            message: "请输入企业属性",
+            trigger: "blur",
+        }, ],
+    },
+    {
+        label: "注册地址",
+        prop: "address",
+        span: 12,
+        labelWidth: 145,
+        disabled: true,
+        // search: true,
+        rules: [{
+            required: true,
+            message: "请输入注册地址",
+            trigger: "blur",
+        }, ],
+    },
+    {
+        label: "办公地址",
+        prop: "industry",
+        span: 12,
+        labelWidth: 145,
+        disabled: true,
+        rules: [{
+            required: true,
+            message: "请选择办公地址",
+            trigger: "blur",
+        }, ],
+    },
+    {
+        label: "服务区域",
+        labelWidth: 145,
+        prop: "fregion",
+        display: false,
+        rules: [{
+            required: true,
+            message: "请输入服务区域",
+            trigger: "blur",
+        }, ],
+    },
+    {
+        label: "服务时间",
+        labelWidth: 145,
+        prop: "ftime",
+        type: "date",
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        display: false,
+        rules: [{
+            required: true,
+            message: "请选择服务时间",
+            trigger: "blur",
+        }, ],
     },
     {
         label: "登记机关",
         prop: "registration",
         // span: 11,
-        labelWidth: 130,
+        labelWidth: 145,
         disabled: true,
-        span: 11,
+        span: 12,
+        rules: [{
+            required: true,
+            message: "请输入登记机关",
+            trigger: "blur",
+        }, ],
     },
-    {
-        label: "经营范围",
-        prop: "business",
-        span: 24,
-        labelWidth: 130,
-        width: 110,
-        // overHidden: true,
-        type: 'textarea',
-        showWordLimit: true,
-        disabled: true,
-    }
+
 ]
 export var column11 = [{
         label: "",
@@ -210,51 +195,17 @@
             fontSize: '24px'
         }
     },
-    // {
-    //     label: "企业名称",
-    //     prop: "enterprisename",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // },
     {
         label: "统一社会信用代码",
         prop: "creditcode",
-        span: 11,
+        span: 12,
         labelWidth: 130,
         disabled: true,
     },
-    // {
-    //     label: "法定代表人",
-    //     prop: "representative",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // },
-    // {
-    //     label: "法定代表人电话",
-    //     prop: "representativecell",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // },
-    // {
-    //     label: "联系人",
-    //     prop: "contacts",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // }, {
-    //     label: "联系电话",
-    //     prop: "contactscell",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // },
     {
         label: "注册时间",
         prop: "establishtime",
-        span: 11,
+        span: 12,
         labelWidth: 130,
         disabled: true,
         type: "date",
@@ -278,118 +229,65 @@
             trigger: "blur",
         }, ],
     },
+
     {
         label: "注册资本",
         prop: "registeredcapital",
-        span: 11,
-        labelWidth: 130,
-        disabled: true,
-    },
-    // {
-    //     label: "实缴资本",
-    //     prop: "capital",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    // },
-    {
-        label: "组织机构代码",
-        prop: "organizationcode",
-        span: 11,
+        span: 12,
         labelWidth: 130,
         disabled: true,
     },
     {
-        label: "工商注册号",
-        prop: "registrationnumber",
-        span: 11,
+        label: "经营范围",
+        prop: "business",
+        span: 12,
         labelWidth: 130,
+        width: 110,
+        // overHidden: true,
+        // type: 'textarea',
+        showWordLimit: true,
         disabled: true,
     },
     {
-        label: "纳税人识别号",
-        prop: "identificationnumber",
-        span: 11,
+        label: '营业执照',
+        prop: 'businessLicense',
+        type: 'upload',
+        listType: 'picture-img',
+        span: 12,
+        propsHttp: {
+            res: 'data'
+        },
+        canvasOption: {
+            text: '',
+            ratio: 1.0
+        },
         labelWidth: 130,
+        tip: '只能上传jpg/png格式图片,且不超过2Mb',
+        action: "/api/blade-resource/oss/endpoint/put-files",
         disabled: true,
     },
     // {
-    //     label: "企业类型",
-    //     prop: "stats",
-    //     type: "tree",
-    //     dicUrl: "/api/blade-system/dict-biz/dictionary?code=stats",
-    //     props: {
-    //         label: "dictValue",
-    //         value: "dictKey"
-    //     },
+    //     label: "组织机构代码",
+    //     prop: "organizationcode",
     //     span: 11,
     //     labelWidth: 130,
     //     disabled: true,
     // },
     // {
-    //     label: "注册地址",
-    //     prop: "address",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
-    //     // search: true,
-    // },
-    // {
-    //     label: "所属辖区",
-    //     prop: "region",
-    //     span: 11,
-    //     labelWidth: 130,
-    //     width: 110,
-    //     overHidden: true,
-    //     disabled: true,
-    // },
-    // {
-    //     label: "所属辖区",
-    //     prop: "region",
-    //     // multiple: true,
-    //     type: "tree",
-    //     dicUrl: "/api/jurisdiction/lazy-tree",
-    //     props: {
-    //         label: "title",
-    //         value: "id",
-    //     },
-    //     span: 11,
-    //     labelWidth: 130,
-    //     width: 110,
-    //     overHidden: true,
-    //     disabled: true,
-    //     rules: [{
-    //         required: false,
-    //         message: "请选择所属辖区",
-    //         trigger: "click",
-    //     }, ],
-    // },
-    // {
-    //     label: "所属行业",
-    //     prop: "industry",
+    //     label: "工商注册号",
+    //     prop: "registrationnumber",
     //     span: 11,
     //     labelWidth: 130,
     //     disabled: true,
     // },
     // {
-    //     label: "登记机关",
-    //     prop: "registration",
-    //     // span: 11,
-    //     labelWidth: 130,
-    //     disabled: true,
+    //     label: "纳税人识别号",
+    //     prop: "identificationnumber",
     //     span: 11,
-    // },
-    // {
-    //     label: "经营范围",
-    //     prop: "business",
-    //     span: 24,
     //     labelWidth: 130,
-    //     width: 110,
-    //     // overHidden: true,
-    //     type: 'textarea',
-    //     showWordLimit: true,
     //     disabled: true,
-    // }
+    // },
+
 ]
 export var column1 = [{
         label: "id",
diff --git a/src/views/securityUnitChild/index copy.vue b/src/views/securityUnitChild/index copy.vue
new file mode 100644
index 0000000..2b56522
--- /dev/null
+++ b/src/views/securityUnitChild/index copy.vue
@@ -0,0 +1,1182 @@
+<template>
+  <div class="dispatch">
+    <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
+    <span v-if="typeTABS.prop === 'tab1'" class="tab">
+      <basic-container>
+        <avue-form
+          ref="form"
+          v-model="obj0"
+          :option="option0"
+          @submit="submit0"
+        >
+        </avue-form>
+      </basic-container>
+    </span>
+    <span v-if="typeTABS.prop === 'tab11'" class="tab">
+      <basic-container>
+        <avue-form
+          ref="form"
+          v-model="obj0"
+          :option="option01"
+          @submit="submit0"
+        >
+        </avue-form>
+      </basic-container>
+    </span>
+    <span v-else-if="typeTABS.prop === 'tab2'" class="tab">
+      <basic-container>
+        <avue-crud
+          :option="option1"
+          :data="data1"
+          :page.sync="page1"
+          ref="crudrec1"
+          :table-loading="loading1"
+          @row-save="rowSave1"
+          @search-change="searchChange1"
+          @search-reset="searchReset1"
+          @row-update="rowUpdate1"
+          @row-del="rowDel1"
+          @selection-change="selectionChange1"
+          @refresh-change="refreshChange1"
+          @on-load="onLoad1"
+        >
+          <template slot="menuLeft">
+            <el-button
+              type="danger"
+              size="small"
+              plain
+              icon="el-icon-delete"
+              @click="handleDelete1"
+              >删 除
+            </el-button>
+            <el-button
+              type="success"
+              size="small"
+              plain
+              icon="el-icon-upload2"
+              @click="handleImport"
+              >批量导入
+            </el-button>
+          </template>
+        </avue-crud>
+      </basic-container>
+    </span>
+    <span v-else-if="typeTABS.prop === 'tab3'" class="tab">
+      <basic-container>
+        <avue-crud
+          :option="option2"
+          :data="data2"
+          :page.sync="page2"
+          ref="crudrec2"
+          :table-loading="loading2"
+          @row-save="rowSave2"
+          @search-change="searchChange2"
+          @search-reset="searchReset2"
+          @row-update="rowUpdate2"
+          @row-del="rowDel2"
+          @selection-change="selectionChange2"
+          @refresh-change="refreshChange2"
+          @on-load="onLoad2"
+        >
+          <template slot="menuLeft">
+            <el-button
+              type="danger"
+              size="small"
+              plain
+              icon="el-icon-delete"
+              @click="handleDelete2"
+              >删 除
+            </el-button>
+            <el-button
+              type="success"
+              size="small"
+              plain
+              icon="el-icon-upload2"
+              @click="handleImport1"
+              >批量导入
+            </el-button>
+          </template>
+        </avue-crud>
+      </basic-container>
+    </span>
+    <span v-else-if="typeTABS.prop === 'tab4'" class="tab">
+      <equipments :fromDeptId="departmentid"></equipments>
+    </span>
+    <span v-else-if="typeTABS.prop === 'tab5'" class="tab">
+      <car :fromDeptId="departmentid"></car>
+    </span>
+    <span v-else-if="typeTABS.prop === 'tab9'" class="tab">
+      <social :deptid="obj0.departmentid"></social>
+    </span>
+    <span v-else-if="typeTABS.prop === 'tab7'" class="tab">
+      <businessLicense :row="obj0"></businessLicense>
+    </span>
+    <span v-else-if="typeTABS.prop === 'tab8'" class="tab">
+      <licence :row="obj0"></licence>
+    </span> -->
+    <el-tabs v-model="activeName" @tab-click="handleClick">
+      <!-- <span v-if="typeTABS.prop === 'tab1'" class="tab"> -->
+      <el-tab-pane label="保安单位基本信息" name="tab1">
+        <basic-container>
+          <avue-form
+            ref="form"
+            v-model="obj0"
+            :option="option0"
+            @submit="submit0"
+          >
+          </avue-form>
+        </basic-container>
+        <!-- </span> -->
+      </el-tab-pane>
+      <!-- <span v-if="typeTABS.prop === 'tab11'" class="tab"> -->
+      <el-tab-pane label="工商信息" name="tab11">
+        <basic-container>
+          <avue-form
+            ref="form"
+            v-model="obj0"
+            :option="option01"
+            @submit="submit0"
+          >
+          </avue-form>
+        </basic-container>
+        <!-- </span> -->
+      </el-tab-pane>
+      <!-- <span v-else-if="typeTABS.prop === 'tab2'" class="tab"> -->
+      
+      <el-tab-pane
+        :label="tab2label"
+        name="tab2"
+        :class="[
+          $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '',
+        ]"
+      >
+        <div class="manager">
+        <basic-container>
+          <avue-crud
+            v-if="true"
+            :option="option1"
+            :data="data1"
+            :page.sync="page1"
+            ref="crudrec1"
+            :table-loading="loading1"
+            @row-save="rowSave1"
+            @search-change="searchChange1"
+            @search-reset="searchReset1"
+            @row-update="rowUpdate1"
+            @row-del="rowDel1"
+            @selection-change="selectionChange1"
+            @refresh-change="refreshChange1"
+            @on-load="onLoad1"
+          >
+            <template slot="menuLeft">
+              <el-button
+                type="danger"
+                size="small"
+                plain
+                icon="el-icon-delete"
+                @click="handleDelete1"
+                >删 除
+              </el-button>
+              <el-button
+                type="success"
+                size="small"
+                plain
+                icon="el-icon-upload2"
+                @click="handleImport"
+                >批量导入
+              </el-button>
+            </template>
+          </avue-crud>
+        </basic-container>
+         </div>
+        <!-- </span> -->
+      </el-tab-pane>
+     
+      <!-- <span v-else-if="typeTABS.prop === 'tab3'" class="tab"> -->
+      <el-tab-pane
+        label="主要管理人员信息"
+        name="tab3"
+        :class="[
+          $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '',
+        ]"
+      >
+        <div class="manager">
+        <basic-container>
+          <avue-crud
+            v-if="true"
+            :option="option2"
+            :data="data2"
+            :page.sync="page2"
+            ref="crudrec2"
+            :table-loading="loading2"
+            @row-save="rowSave2"
+            @search-change="searchChange2"
+            @search-reset="searchReset2"
+            @row-update="rowUpdate2"
+            @row-del="rowDel2"
+            @selection-change="selectionChange2"
+            @refresh-change="refreshChange2"
+            @on-load="onLoad2"
+          >
+            <template slot="menuLeft">
+              <el-button
+                type="danger"
+                size="small"
+                plain
+                icon="el-icon-delete"
+                @click="handleDelete2"
+                >删 除
+              </el-button>
+              <el-button
+                type="success"
+                size="small"
+                plain
+                icon="el-icon-upload2"
+                @click="handleImport1"
+                >批量导入
+              </el-button>
+            </template>
+          </avue-crud>
+        </basic-container>
+        </div>
+        <!-- </span> -->
+      </el-tab-pane>
+      <!-- <span v-else-if="typeTABS.prop === 'tab4'" class="tab"> -->
+      <el-tab-pane label="装备管理" name="tab4">
+        <!-- 装备管理 -->
+        <equipments
+          v-if="overzb"
+          :fromDeptId="departmentid"
+          :windowHeight="windowHeight"
+        ></equipments>
+        <!-- </span> -->
+      </el-tab-pane>
+      <!-- <span v-else-if="typeTABS.prop === 'tab5'" class="tab"> -->
+      <el-tab-pane label="车辆管理" name="tab5">
+        <!-- 车辆管理 -->
+        <car
+          :fromDeptId="departmentid"
+          v-if="overcar"
+          :windowHeight="windowHeight"
+        ></car>
+        <!-- </span> -->
+      </el-tab-pane>
+      <!-- <span v-else-if="typeTABS.prop === 'tab6'" class="tab">
+      枪支管理
+      <gun :fromDeptId="departmentid"></gun>
+    </span> -->
+      <!-- <span v-else-if="typeTABS.prop === 'tab9'" class="tab"> -->
+      <el-tab-pane label="社保记录" name="tab9">
+        <!-- 社保记录  -->
+        <social
+          :deptid="obj0.departmentid"
+          :socialRE="social"
+          v-if="social"
+        ></social>
+        <!-- </span> -->
+      </el-tab-pane>
+      <!-- <span v-else-if="typeTABS.prop === 'tab7'" class="tab"> -->
+      <el-tab-pane label="营业执照" name="tab7">
+        <!-- 营业执照 -->
+        <businessLicense :row="obj0" v-if="overHtp"></businessLicense>
+        <!-- </span> -->
+      </el-tab-pane>
+      <!-- <span v-else-if="typeTABS.prop === 'tab8'" class="tab"> -->
+      <el-tab-pane label="许可证" name="tab8">
+        <!-- 许可证  -->
+        <licence :row="obj0" v-if="overHtp"></licence>
+        <!-- </span> -->
+      </el-tab-pane>
+    </el-tabs>
+    <el-dialog
+      title="出资人导入"
+      append-to-body
+      :visible.sync="excelBox"
+      width="555px"
+    >
+      <avue-form
+        :option="excelOption"
+        v-model="excelForm"
+        :upload-after="uploadAfter"
+      >
+        <template slot="excelTemplate">
+          <el-button type="primary" @click="handleTemplate">
+            点击下载<i class="el-icon-download el-icon--right"></i>
+          </el-button>
+        </template>
+      </avue-form>
+    </el-dialog>
+
+    <el-dialog
+      title="管理人导入"
+      append-to-body
+      :visible.sync="excelBox1"
+      width="555px"
+    >
+      <avue-form
+        :option="excelOption1"
+        v-model="excelForm1"
+        :upload-after="uploadAfter1"
+      >
+        <template slot="excelTemplate">
+          <el-button type="primary" @click="handleTemplate1">
+            点击下载<i class="el-icon-download el-icon--right"></i>
+          </el-button>
+        </template>
+      </avue-form>
+    </el-dialog>
+  </div>
+</template> 
+
+<script>
+import { column11, column, column1, column2 } from "./data";
+import {
+  getOncedata,
+  update,
+  getdataOnce1,
+  adddata1,
+  update1,
+  remove1,
+  getdataOnce2,
+  adddata2,
+  update2,
+  remove2,
+} from "@/api/securityUnit/securityUnit";
+import equipments from "../securityEquipment/equipments.vue";
+import car from "../securityEquipment/car.vue";
+import gun from "../securityEquipment/gun.vue";
+import licence from "./licence.vue";
+import businessLicense from "./businessLicense.vue";
+import social from "./social.vue";
+import { mapGetters } from "vuex";
+import { getRoleDetail } from "@/api/system/role";
+
+export default {
+  components: {
+    equipments: equipments,
+    car: car,
+    gun: gun,
+    licence: licence,
+    businessLicense: businessLicense,
+    social: social,
+  },
+  data() {
+    return {
+      tab2label:"",
+      visible: false,
+      overzb: false, //结决id传入、信息获取的优先级
+      overcar: false, //结决id传入、信息获取的优先级
+      social: false, //解决表格错乱
+      overHtp: false,
+      activeName: "tab1",
+      departmentid: "",
+      excelBox: false, //出资人
+      excelForm: {},
+      excelOption: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [
+          {
+            label: "文件上传",
+            prop: "excelFile",
+            type: "upload",
+            drag: true,
+            loadText: "文件上传中,请稍等",
+            span: 24,
+            propsHttp: {
+              res: "data",
+            },
+            tip: "请上传 .xls,.xlsx 标准格式文件",
+            action: "/api/shareholder/import-share",
+          },
+          {
+            label: "模板下载",
+            prop: "excelTemplate",
+            formslot: true,
+            span: 24,
+          },
+        ],
+      },
+
+      excelBox1: false, //管理人
+      excelForm1: {},
+      excelOption1: {
+        submitBtn: false,
+        emptyBtn: false,
+        ...this.$store.state.control.clearOtherBut,
+        column: [
+          {
+            label: "文件上传",
+            prop: "excelFile",
+            type: "upload",
+            drag: true,
+            loadText: "文件上传中,请稍等",
+            span: 24,
+            propsHttp: {
+              res: "data",
+            },
+            tip: "请上传 .xls,.xlsx 标准格式文件",
+            action: "/api/member/import-member",
+          },
+          {
+            label: "模板下载",
+            prop: "excelTemplate",
+            formslot: true,
+            span: 24,
+          },
+        ],
+      },
+
+      typeTABS: {}, //标签页
+      optionTABS: {
+        column: [
+          {
+            // icon: "el-icon-info",
+            label: "保安单位基本信息",
+            prop: "tab1",
+          },
+          {
+            // icon: "el-icon-info",
+            label: "工商信息",
+            prop: "tab11",
+          },
+          {
+            // icon: "el-icon-info",
+            label: "保安单位出资人员",
+            prop: "tab2",
+          },
+          {
+            // icon: "el-icon-info",
+            label: "主要管理人员信息",
+            prop: "tab3",
+          },
+          {
+            // icon: "el-icon-info",
+            label: "装备管理 ",
+            prop: "tab4",
+          },
+          {
+            // icon: "el-icon-info",
+            label: "车辆管理 ",
+            prop: "tab5",
+          },
+          // {
+          //   // icon: "el-icon-info",
+          //   label: "枪支管理 ",
+          //   prop: "tab6",
+          // },
+          {
+            // icon: "el-icon-info",
+            label: "社保记录 ",
+            prop: "tab9",
+          },
+          {
+            // icon: "el-icon-info",
+            label: "营业执照 ",
+            prop: "tab7",
+          },
+          {
+            // icon: "el-icon-info",
+            label: "许可证 ",
+            prop: "tab8",
+          },
+        ],
+      },
+
+      //全局单位统一社会信用代码
+      creditcode: "",
+      //保安单位信息表单
+      obj0: {
+        // title: "我是头部标题",
+      },
+      option0: {
+        emptyBtn: false,
+        submitBtn: false,
+        submitText: "保存",
+        gutter: 30,
+        column: column,
+      },
+
+      option01: {
+        emptyBtn: false,
+        submitBtn: false,
+        submitText: "保存",
+        gutter: 30,
+        column: column11,
+      },
+
+      loading1: true, //派遣记录
+      selectionList1: [],
+      page1: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+        ...this.$store.state.control.changePageSize,
+      },
+      query1: {},
+      data1: [],
+      option1: {
+        // card: true,
+        tip: false,
+        searchSize: "mini",
+        searchMenuSpan: 8,
+        height: "auto",
+        menuWidth: 200,
+        align: "center",
+        selection: true,
+        ...this.$store.state.control.clearOtherBut,
+        column: column1,
+      },
+
+      loading2: true, //派遣记录
+      selectionList2: [],
+      page2: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+        ...this.$store.state.control.changePageSize,
+      },
+      query2: {},
+      data2: [],
+      option2: {
+        // card: true,
+        tip: false,
+        searchSize: "mini",
+        searchMenuSpan: 8,
+        height: "auto",
+        menuWidth: 200,
+        menuAlign: "center",
+        align: "center",
+        selection: true,
+        ...this.$store.state.control.clearOtherBut,
+        column: column2,
+      },
+    };
+  },
+  computed: {
+    ...mapGetters(["userInfo", "windowHeight"]),
+    chuzitime() {
+      return this.data1.capitaltime;
+    },
+    // ids() {
+    //   let ids = [];
+    //   this.selectionList.forEach((ele) => {
+    //     ids.push(ele.id);
+    //   });
+    //   return ids.join(",");
+    // },
+    ids1() {
+      let ids1 = [];
+      this.selectionList1.forEach((ele) => {
+        ids1.push(ele.id);
+      });
+      return ids1.join(",");
+    },
+    ids2() {
+      let ids2 = [];
+      this.selectionList2.forEach((ele) => {
+        ids2.push(ele.id);
+      });
+      return ids2.join(",");
+    },
+  },
+  methods: {
+    submit0(row, done, loading) {
+      // let nowTab = this.typeTABS.prop;
+      // console.log(this.typeTABS);
+      if (this.userInfo.role_name == "保安公司管理员") {
+        row["departmentid"] = this.userInfo.dept_id;
+      }
+      console.log(row);
+      update(row).then(
+        () => {
+          // this.onLoad(this.page);
+          // this.onloads();
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.onloads();
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+
+      done();
+    },
+    handleImport() {
+      //出资人
+      this.excelBox = true;
+    },
+    uploadAfter(res, done, loading, column) {
+      window.console.log(column);
+      this.excelBox = false;
+      this.refreshChange1();
+      done();
+    },
+    handleTemplate() {
+      window.open(`/api/shareholder/export-template`);
+    },
+
+    handleImport1() {
+      //管理人
+      this.excelBox1 = true;
+    },
+    uploadAfter1(res, done, loading, column) {
+      window.console.log(column);
+      this.excelBox1 = false;
+      this.refreshChange2();
+      done();
+    },
+    handleTemplate1() {
+      window.open(`/api/member/export-template`);
+    },
+
+    // handleChangeTABS(column) {
+    //   // this.typeTABS = column;
+    //   // console.log(column.prop);
+    //   // this.$message.success(JSON.stringify(column));
+    //   if (column.prop == "tab1") {
+    //     this.loading1 = false;
+    //     this.loading2 = false;
+    //     // this.onLoad(this.page);
+    //   } else if (column.prop == "tab2") {
+    //     //  this.loading1 = false;
+    //     this.loading2 = false;
+    //     this.onLoad1(this.page1); //第二个表格不会自动执行
+    //   } else if (column.prop == "tab3") {
+    //     this.loading1 = false;
+    //     // this.loading2 = false;
+    //     this.onLoad2(this.page2); //第二个表格不会自动执行
+    //   }
+    // },
+    handleClick(tab, event) {
+      // console.log(tab.name, event);
+      if (tab.name == "tab1") {
+        this.loading1 = false;
+        this.loading2 = false;
+        // this.onLoad(this.page);
+      } else if (tab.name == "tab5") {
+        this.overcar = true;
+        // this.onLoad(this.page);
+      } else if (tab.name == "tab4") {
+        this.overzb = true;
+        // this.onLoad(this.page);
+      } else if (tab.name == "tab2") {
+        //  this.loading1 = false;
+        this.loading2 = false;
+        this.onLoad1(this.page1); //第二个表格不会自动执行
+      } else if (tab.name == "tab3") {
+        this.loading1 = false;
+        // this.loading2 = false;
+        this.onLoad2(this.page2); //第二个表格不会自动执行
+      } else if (tab.name == "tab9") {
+        this.social = true; //表格错乱
+      } else {
+        this.social = false;
+        this.overcar = false;
+        this.overzb = false;
+        this.overcar = false;
+      }
+    },
+    //派遣记录
+    sizeChange1(val) {
+      this.page1.currentPage = 1;
+      this.page1.pageSize = val;
+      // this.getData();
+      this.onLoad1(this.page1, this.query1);
+      //   this.$message.success("行数" + val);
+    },
+    currentChange1(val) {
+      this.page1.currentPage = val;
+      // this.getData();
+      this.onLoad1(this.page1, this.query1);
+      //   this.$message.success("页码" + val);
+    },
+    rowSave1(form, done, loading) {
+      // var that = this;
+      //   var form = this.data[0];
+      //   delete form.id;
+      //   for (var k = 0; k < 13; k++) {
+      form["deptId"] = this.departmentid;
+      adddata1(form).then(
+        () => {
+          this.onLoad1(this.page1);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+      //   }
+    },
+    searchChange1(params, done) {
+      this.query1 = params;
+      this.page1.currentPage = 1;
+      this.onLoad1(this.page1, params);
+      done();
+    },
+    searchReset1() {
+      this.query = {};
+      this.onLoad1(this.page1);
+    },
+    rowUpdate1(row, index, done, loading) {
+      delete row.shareholdingratio;
+      delete row.tenantId;
+
+      console.log(row);
+      row["deptId"] = this.departmentid;
+      update1(row).then(
+        () => {
+          this.onLoad1(this.page1);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    rowDel1(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove1(row.id);
+        })
+        .then(() => {
+          this.onLoad1(this.page1);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    selectionChange1(list) {
+      this.selectionList1 = list;
+    },
+    handleDelete1() {
+      if (this.selectionList1.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove1(this.ids1);
+        })
+        .then(() => {
+          this.onLoad1(this.page1);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$refs.crudrec1.toggleSelection();
+        });
+    },
+    refreshChange1() {
+      this.onLoad1(this.page1, this.query1);
+    },
+
+    //
+    onLoad1(page, params = {}) {
+      this.loading1 = true;
+      // console.log(page, params, 3435434);
+      params["deptId"] = this.departmentid;
+      getdataOnce1(
+        page.currentPage,
+        page.pageSize,
+        Object.assign(params, this.query)
+      ).then((res) => {
+        // console.log(res);
+        const data = res.data.data;
+        this.page1.total = data.total;
+        this.data1 = data.records;
+        // console.log(this.data1);
+        this.loading1 = false;
+
+        // this.$refs.crudrec1.refreshTable();
+        // this.$refs.crudrec1.doLayout();
+      });
+      // onLoad1(page, params = {}) {
+      //   this.loading1 = true;
+      //   // console.log(page);
+      //   getdata1(
+      //     page.currentPage,
+      //     page.pageSize,
+      //     Object.assign(params, this.query)
+      //   ).then((res) => {
+      //     // console.log(res);
+      //     const data = res.data.data;
+      //     this.page1.total = data.total;
+      //     this.data1 = data.records;
+      //     console.log(this.data1);
+      //     this.loading1 = false;
+      //   });
+    },
+    //派遣记录
+
+    //派遣记录
+    sizeChange2(val) {
+      this.page2.currentPage = 1;
+      this.page2.pageSize = val;
+      // this.getData();
+      this.onLoad2(this.page2, this.query2);
+      //   this.$message.success("行数" + val);
+    },
+    currentChange2(val) {
+      this.page2.currentPage = val;
+      // this.getData();
+      this.onLoad2(this.page2, this.query2);
+      //   this.$message.success("页码" + val);
+    },
+    rowSave2(form, done, loading) {
+      // var that = this;
+      //   var form = this.data[0];
+      //   delete form.id;
+      //   for (var k = 0; k < 13; k++) {
+      form["deptId"] = this.departmentid;
+      adddata2(form).then(
+        () => {
+          this.onLoad2(this.page1);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+      //   }
+    },
+    searchChange2(params, done) {
+      this.query2 = params;
+      this.page2.currentPage = 1;
+      this.onLoad2(this.page2, params);
+      done();
+    },
+    searchReset2() {
+      this.query = {};
+      this.onLoad2(this.page2);
+    },
+    rowUpdate2(row, index, done, loading) {
+      console.log(row);
+      delete row.shareholdingratio;
+      row["deptId"] = this.departmentid;
+      update2(row).then(
+        () => {
+          this.onLoad2(this.page2);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    rowDel2(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove2(row.id);
+        })
+        .then(() => {
+          this.onLoad2(this.page1);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    selectionChange2(list) {
+      this.selectionList2 = list;
+    },
+    handleDelete2() {
+      if (this.selectionList2.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove2(this.ids2);
+        })
+        .then(() => {
+          this.onLoad2(this.page2);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$refs.crudrec2.toggleSelection();
+        });
+    },
+    refreshChange2() {
+      this.onLoad2(this.page2, this.query2);
+    },
+
+    //
+    onLoad2(page, params = {}) {
+      this.loading2 = true;
+      // console.log(page);
+      // getdata2(
+      params["deptId"] = this.departmentid;
+      getdataOnce2(
+        page.currentPage,
+        page.pageSize,
+        Object.assign(params, this.query)
+      ).then((res) => {
+        // console.log(res);
+        const data = res.data.data;
+        this.page2.total = data.total;
+        this.data2 = data.records;
+        // console.log(this.data2);
+        this.loading2 = false;
+        this.$refs.crudrec2.refreshTable();
+        this.$refs.crudrec2.doLayout();
+      });
+    },
+    //派遣记录
+    saveLock(name, val) {
+      window.localStorage.setItem(name, val);
+    },
+    readLock(name) {
+      return window.localStorage.getItem(name);
+    },
+    onloads(tab) {
+      var that = this;
+      var doit = (a) => {
+        that.typeTABS = that.optionTABS.column[0];
+        // if (tab) {
+        // that.typeTABS.prop = tab;
+        // }
+        var row = {};
+        if (that.readLock("danweidata") != null) {
+          row = JSON.parse(that.readLock("danweidata"));
+          // that.obj0.title = row.enterprisename;
+          // console.log(row, "rowneibu");
+          that.departmentid = row.departmentid;
+          for (var k in row) {
+            that.obj0[k] = row[k];
+          }
+          if (row.creditcode == "") {
+            that.creditcode = 111;
+          } else {
+            that.creditcode = row.creditcode;
+          }
+          that.overHtp = true;
+          if (that.readLock("danweidataS") != null && a == 1) {
+            var b = JSON.parse(that.readLock("danweidataS"));
+            var i = 0;
+            for (var k in b) {
+              if (b[k].enterprisename == row.enterprisename) {
+                i = 1;
+              }
+            }
+            if (i == 1) {
+              // console.log("存在");
+            } else {
+              // console.log("已删除");
+
+              that.obj0 = {};
+              that.obj0.enterprisename = row.enterprisename + "该公司已删除";
+              window.localStorage.removeItem("danweidata");
+              that.creditcode = "";
+            }
+          }
+        } else {
+          // console.log("no");
+          that.obj0.enterprisename = "未选择查询单位";
+        }
+      };
+      var flag = false,
+        i = 0,
+        ind = null;
+      this.$store.state.tags.tagList.forEach((item, index) => {
+        if (item.label == "保安单位详情") {
+          if (flag == false) {
+            ind = index;
+            flag = true;
+          }
+          i++;
+        }
+      });
+      if (i > 1) {
+        this.$store.state.tags.tagList.splice(ind, 1);
+      }
+
+      var getdatas = (roleAlias) => {
+        var fromSecunityGuardId = that.$route.query.fromSecunityGuardId;
+        // var fromSecunityGuardId = that.$route.query;
+        if (fromSecunityGuardId != undefined || roleAlias == "保安公司管理员") {
+          var value = {
+            departmentid: fromSecunityGuardId || that.userInfo.dept_id,
+          };
+          getOncedata(value).then((res) => {
+            // console.log(res.data.data, "get");
+            window.localStorage.setItem(
+              "danweidata",
+              JSON.stringify(res.data.data)
+            );
+            doit();
+          });
+          // return;
+        } else {
+          doit(1);
+        }
+      };
+
+      // console.log(this.userInfo, "userInfo");
+      //获取当前登录人员的角色信息
+      var roleIds = this.userInfo.role_id.split(",");
+      roleIds.forEach((roleId) => {
+        getRoleDetail(roleId).then((res) => {
+          var roleAlias = res.data.data.roleAlias;
+          var d = that.option0.column;
+          var e = that.option01.column;
+          // console.log(roleAlias);
+          if (roleAlias == "保安公司管理员") {
+            that.option0.submitBtn = true;
+            that.option01.submitBtn = true;
+            for (var k in d) {
+              // if (d[k].label != "企业类型") {
+              d[k].disabled = false;
+              // }
+            }
+            for (var n in e) {
+              // if (d[k].label != "企业类型") {
+              e[n].disabled = false;
+              // }
+            }
+          } else {
+            that.option0.submitBtn = false;
+            that.option01.submitBtn = false;
+            for (var k in d) {
+              d[k].disabled = true;
+            }
+            for (var n in e) {
+              e[n].disabled = true;
+            }
+          }
+          getdatas(roleAlias);
+        });
+      });
+    },
+    //数据初始化
+    initData(){
+      var role_name = this.userInfo.role_name;
+      var data = this.$route.query.data;
+      var deptId = this.$route.query.data.departmentid;
+      console.log(this.$route.query,1111111);
+      //1.判断进入的入口,单位信息进入,单位列表查看进入
+      if(deptId){
+        //2.1 单位信息进入
+        //判断人员角色
+        if(role_name=="公安管理员" || role_name=="administrator"){
+            //3.1 判断按进入的公司类型
+            if(data.state=="2"){
+              //本市保安公司,对应的tab 条数
+
+            }
+        }
+        if(role_name=="保安公司管理员" || role_name=="分公司管理员"){
+            //3.2 判断按进入的公司类型
+        }
+        
+      }else{
+        //单位列表进入
+        //判断人员角色
+
+      }
+    }
+  },
+  mounted() {
+    this.onloads();
+  },
+  created(){
+    //初始化信息
+    this.initData();
+  },
+  watch: {
+    // windowWidth() {
+    //   console.log(this.windowWidth, "windowWidth");
+    // },
+    windowHeight() {
+      // console.log(this.windowHeight, "windowHeight");
+      // this.option1.height = this.windowHeight + 100;
+      // this.option2.height = this.windowHeight - 320;
+      this.visible = false;
+      this.$nextTick(() => {
+        this.visible = true;
+        this.refreshChange1();
+        this.refreshChange2();
+      });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.dispatch {
+  width: 100%;
+  height: 100%;
+  //   border: 1px solid #000;
+  box-sizing: border-box;
+}
+// .el-card__body {
+//   padding-bottom: 5px !important;
+// }
+// .avue-crud__tip,
+// .el-tag,
+// .el-tag--light {
+//   padding: 0 !important;
+// }
+
+.el-collapse-item {
+  padding-top: 15px !important;
+}
+
+.tab {
+  position: relative;
+  // border: 1px solid red;
+  background-color: #fff;
+  height: 92%;
+  display: inline-block;
+  width: 100%;
+  overflow: hidden;
+  top: -10px;
+}
+
+.manager{
+  height: 755px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/securityUnitChild/index.vue b/src/views/securityUnitChild/index.vue
index cac55eb..265a313 100644
--- a/src/views/securityUnitChild/index.vue
+++ b/src/views/securityUnitChild/index.vue
@@ -1,346 +1,97 @@
 <template>
   <div class="dispatch">
-    <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
-    <span v-if="typeTABS.prop === 'tab1'" class="tab">
-      <basic-container>
-        <avue-form
-          ref="form"
-          v-model="obj0"
-          :option="option0"
-          @submit="submit0"
-        >
-        </avue-form>
-      </basic-container>
-    </span>
-    <span v-if="typeTABS.prop === 'tab11'" class="tab">
-      <basic-container>
-        <avue-form
-          ref="form"
-          v-model="obj0"
-          :option="option01"
-          @submit="submit0"
-        >
-        </avue-form>
-      </basic-container>
-    </span>
-    <span v-else-if="typeTABS.prop === 'tab2'" class="tab">
-      <basic-container>
-        <avue-crud
-          :option="option1"
-          :data="data1"
-          :page.sync="page1"
-          ref="crudrec1"
-          :table-loading="loading1"
-          @row-save="rowSave1"
-          @search-change="searchChange1"
-          @search-reset="searchReset1"
-          @row-update="rowUpdate1"
-          @row-del="rowDel1"
-          @selection-change="selectionChange1"
-          @refresh-change="refreshChange1"
-          @on-load="onLoad1"
-        >
-          <template slot="menuLeft">
-            <el-button
-              type="danger"
-              size="small"
-              plain
-              icon="el-icon-delete"
-              @click="handleDelete1"
-              >删 除
-            </el-button>
-            <el-button
-              type="success"
-              size="small"
-              plain
-              icon="el-icon-upload2"
-              @click="handleImport"
-              >批量导入
-            </el-button>
-          </template>
-        </avue-crud>
-      </basic-container>
-    </span>
-    <span v-else-if="typeTABS.prop === 'tab3'" class="tab">
-      <basic-container>
-        <avue-crud
-          :option="option2"
-          :data="data2"
-          :page.sync="page2"
-          ref="crudrec2"
-          :table-loading="loading2"
-          @row-save="rowSave2"
-          @search-change="searchChange2"
-          @search-reset="searchReset2"
-          @row-update="rowUpdate2"
-          @row-del="rowDel2"
-          @selection-change="selectionChange2"
-          @refresh-change="refreshChange2"
-          @on-load="onLoad2"
-        >
-          <template slot="menuLeft">
-            <el-button
-              type="danger"
-              size="small"
-              plain
-              icon="el-icon-delete"
-              @click="handleDelete2"
-              >删 除
-            </el-button>
-            <el-button
-              type="success"
-              size="small"
-              plain
-              icon="el-icon-upload2"
-              @click="handleImport1"
-              >批量导入
-            </el-button>
-          </template>
-        </avue-crud>
-      </basic-container>
-    </span>
-    <span v-else-if="typeTABS.prop === 'tab4'" class="tab">
-      <equipments :fromDeptId="departmentid"></equipments>
-    </span>
-    <span v-else-if="typeTABS.prop === 'tab5'" class="tab">
-      <car :fromDeptId="departmentid"></car>
-    </span>
-    <span v-else-if="typeTABS.prop === 'tab9'" class="tab">
-      <social :deptid="obj0.departmentid"></social>
-    </span>
-    <span v-else-if="typeTABS.prop === 'tab7'" class="tab">
-      <businessLicense :row="obj0"></businessLicense>
-    </span>
-    <span v-else-if="typeTABS.prop === 'tab8'" class="tab">
-      <licence :row="obj0"></licence>
-    </span> -->
     <el-tabs v-model="activeName" @tab-click="handleClick">
-      <!-- <span v-if="typeTABS.prop === 'tab1'" class="tab"> -->
-      <el-tab-pane label="保安单位基本信息" name="tab1">
+      <!-- 基本信息 -->
+      <el-tab-pane :label="baseTitle" name="tab1">
         <basic-container>
           <avue-form
             ref="form"
-            v-model="obj0"
-            :option="option0"
-            @submit="submit0"
+            v-model="objBase"
+            :option="optionBase"
+            @submit="submitBase"
           >
           </avue-form>
         </basic-container>
-        <!-- </span> -->
       </el-tab-pane>
-      <!-- <span v-if="typeTABS.prop === 'tab11'" class="tab"> -->
+      <!-- 工商信息 -->
       <el-tab-pane label="工商信息" name="tab11">
         <basic-container>
           <avue-form
+            v-if="businessVisiable"
             ref="form"
-            v-model="obj0"
+            v-model="obj"
             :option="option01"
-            @submit="submit0"
+            @submit="submitBase"
+          >
+          </avue-form>
+          <avue-form
+            v-if="!businessVisiable"
+            ref="businessForm"
+            v-model="businessObj"
+            :option="businessOption"
+            @submit="businessSubmit"
           >
           </avue-form>
         </basic-container>
-        <!-- </span> -->
       </el-tab-pane>
-      <!-- <span v-else-if="typeTABS.prop === 'tab2'" class="tab"> -->
-      <el-tab-pane
-        label="保安单位出资人员"
-        name="tab2"
-        :class="[
-          $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '',
-        ]"
-      >
-        <basic-container>
-          <avue-crud
-            v-if="visible"
-            :option="option1"
-            :data="data1"
-            :page.sync="page1"
-            ref="crudrec1"
-            :table-loading="loading1"
-            @row-save="rowSave1"
-            @search-change="searchChange1"
-            @search-reset="searchReset1"
-            @row-update="rowUpdate1"
-            @row-del="rowDel1"
-            @selection-change="selectionChange1"
-            @refresh-change="refreshChange1"
-            @on-load="onLoad1"
-          >
-            <template slot="menuLeft">
-              <el-button
-                type="danger"
-                size="small"
-                plain
-                icon="el-icon-delete"
-                @click="handleDelete1"
-                >删 除
-              </el-button>
-              <el-button
-                type="success"
-                size="small"
-                plain
-                icon="el-icon-upload2"
-                @click="handleImport"
-                >批量导入
-              </el-button>
-            </template>
-          </avue-crud>
-        </basic-container>
-        <!-- </span> -->
+      <!-- 出资人列表信息 -->
+      <el-tab-pane :label="tab2label" name="tab2" v-if="shareholderVisiable">
+        <shareholder
+          v-if="overshareholder"
+          :deptid="departmentid"
+          :windowHeight="windowHeight"
+        ></shareholder>
       </el-tab-pane>
-      <!-- <span v-else-if="typeTABS.prop === 'tab3'" class="tab"> -->
-      <el-tab-pane
-        label="主要管理人员信息"
-        name="tab3"
-        :class="[
-          $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '',
-        ]"
-      >
-        <basic-container>
-          <avue-crud
-            v-if="visible"
-            :option="option2"
-            :data="data2"
-            :page.sync="page2"
-            ref="crudrec2"
-            :table-loading="loading2"
-            @row-save="rowSave2"
-            @search-change="searchChange2"
-            @search-reset="searchReset2"
-            @row-update="rowUpdate2"
-            @row-del="rowDel2"
-            @selection-change="selectionChange2"
-            @refresh-change="refreshChange2"
-            @on-load="onLoad2"
-          >
-            <template slot="menuLeft">
-              <el-button
-                type="danger"
-                size="small"
-                plain
-                icon="el-icon-delete"
-                @click="handleDelete2"
-                >删 除
-              </el-button>
-              <el-button
-                type="success"
-                size="small"
-                plain
-                icon="el-icon-upload2"
-                @click="handleImport1"
-                >批量导入
-              </el-button>
-            </template>
-          </avue-crud>
-        </basic-container>
-        <!-- </span> -->
+      <!-- 主要管理人信息 -->
+      <el-tab-pane :label="managerLabel" name="tab3">
+        <manager v-if="overmanager" :deptid="departmentid"></manager>
       </el-tab-pane>
-      <!-- <span v-else-if="typeTABS.prop === 'tab4'" class="tab"> -->
-      <el-tab-pane label="装备管理" name="tab4">
-        <!-- 装备管理 -->
+      <!-- 装备管理列表 -->
+      <el-tab-pane label="装备管理" name="tab4" v-if="equipmentVisiable">
         <equipments
           v-if="overzb"
           :fromDeptId="departmentid"
           :windowHeight="windowHeight"
         ></equipments>
-        <!-- </span> -->
       </el-tab-pane>
-      <!-- <span v-else-if="typeTABS.prop === 'tab5'" class="tab"> -->
-      <el-tab-pane label="车辆管理" name="tab5">
-        <!-- 车辆管理 -->
+      <!-- 车辆管理 -->
+      <el-tab-pane label="车辆管理" name="tab5" v-if="carVisiable">
         <car
           :fromDeptId="departmentid"
           v-if="overcar"
           :windowHeight="windowHeight"
         ></car>
-        <!-- </span> -->
       </el-tab-pane>
-      <!-- <span v-else-if="typeTABS.prop === 'tab6'" class="tab">
-      枪支管理
-      <gun :fromDeptId="departmentid"></gun>
-    </span> -->
-      <!-- <span v-else-if="typeTABS.prop === 'tab9'" class="tab"> -->
+      <!-- 社保记录  -->
       <el-tab-pane label="社保记录" name="tab9">
-        <!-- 社保记录  -->
         <social
-          :deptid="obj0.departmentid"
+          :deptid="objBase.departmentid"
           :socialRE="social"
           v-if="social"
         ></social>
         <!-- </span> -->
       </el-tab-pane>
-      <!-- <span v-else-if="typeTABS.prop === 'tab7'" class="tab"> -->
-      <el-tab-pane label="营业执照" name="tab7">
-        <!-- 营业执照 -->
-        <businessLicense :row="obj0" v-if="overHtp"></businessLicense>
-        <!-- </span> -->
+      <!-- 营业执照 -->
+      <el-tab-pane label="营业执照" name="tab7" v-if="false">
+        <businessLicense :row="objBase" v-if="overHtp"></businessLicense>
       </el-tab-pane>
-      <!-- <span v-else-if="typeTABS.prop === 'tab8'" class="tab"> -->
-      <el-tab-pane label="许可证" name="tab8">
-        <!-- 许可证  -->
-        <licence :row="obj0" v-if="overHtp"></licence>
-        <!-- </span> -->
+      <!-- 许可证  -->
+      <el-tab-pane :label="licenceLabel" name="tab8" v-if="licenceVisiable">
+        <licence :row="objBase" v-if="overHtp"></licence>
+      </el-tab-pane>
+      <!-- 备案证  -->
+      <el-tab-pane label="备案证" name="tab12" v-if="certificdinedVisiable">
+        <licence :row="objBase" v-if="overHtp"></licence>
       </el-tab-pane>
     </el-tabs>
-    <el-dialog
-      title="出资人导入"
-      append-to-body
-      :visible.sync="excelBox"
-      width="555px"
-    >
-      <avue-form
-        :option="excelOption"
-        v-model="excelForm"
-        :upload-after="uploadAfter"
-      >
-        <template slot="excelTemplate">
-          <el-button type="primary" @click="handleTemplate">
-            点击下载<i class="el-icon-download el-icon--right"></i>
-          </el-button>
-        </template>
-      </avue-form>
-    </el-dialog>
-
-    <el-dialog
-      title="管理人导入"
-      append-to-body
-      :visible.sync="excelBox1"
-      width="555px"
-    >
-      <avue-form
-        :option="excelOption1"
-        v-model="excelForm1"
-        :upload-after="uploadAfter1"
-      >
-        <template slot="excelTemplate">
-          <el-button type="primary" @click="handleTemplate1">
-            点击下载<i class="el-icon-download el-icon--right"></i>
-          </el-button>
-        </template>
-      </avue-form>
-    </el-dialog>
   </div>
 </template> 
 
 <script>
-import { column11, column, column1, column2 } from "./data";
-import {
-  getOncedata,
-  // getdata,
-  // adddata,
-  update,
-  // remove,
-  getdataOnce1,
-  getdata1,
-  adddata1,
-  update1,
-  remove1,
-  getdataOnce2,
-  getdata2,
-  adddata2,
-  update2,
-  remove2,
-} from "@/api/securityUnit/securityUnit";
+import { column11, column } from "./data";
+import { getOncedata, update,getBusinessInfo } from "@/api/securityUnit/securityUnit";
+import manager from "./manager.vue";
+import shareholder from "./shareholder.vue";
 import equipments from "../securityEquipment/equipments.vue";
 import car from "../securityEquipment/car.vue";
 import gun from "../securityEquipment/gun.vue";
@@ -352,229 +103,206 @@
 
 export default {
   components: {
-    equipments: equipments,
-    car: car,
-    gun: gun,
-    licence: licence,
-    businessLicense: businessLicense,
-    social: social,
+    equipments,
+    car,
+    gun,
+    licence,
+    businessLicense,
+    social,
+    manager,
+    shareholder,
   },
   data() {
-    var DIC = {
-      VAILD: [
-        {
-          label: "真",
-          value: "true",
-        },
-        {
-          label: "假",
-          value: "false",
-        },
-      ],
-      SEX: [
-        {
-          label: "男",
-          value: 0,
-        },
-        {
-          label: "女",
-          value: 1,
-        },
-      ],
-    };
     return {
+      tab2label: "出资人信息",
+      managerLabel: "主要管理人信息",
+      licenceLabel: "许可证",
+      baseTitle: "基本信息",
       visible: false,
-      overcar: false, //结决id传入、信息获取的优先级
-      overzb: false, //结决id传入、信息获取的优先级
-      overcar: false, //结决id传入、信息获取的优先级
-
-      social: false, //解决表格错乱
+      certificdinedVisiable: false,
+      businessVisiable: true,
+      licenceVisiable: true,
+      shareholderVisiable: true,
+      equipmentVisiable: true,
+      carVisiable: true,
+      //结决id传入、信息获取的优先级
+      overzb: false,
+      overmanager: false,
+      overshareholder: false,
+      //结决id传入、信息获取的优先级
+      overcar: false,
+      //解决表格错乱
+      social: false,
       overHtp: false,
-
       activeName: "tab1",
-
       departmentid: "",
-
-      excelBox: false, //出资人
-      excelForm: {},
-      excelOption: {
-        submitBtn: false,
-        emptyBtn: false,
-        column: [
-          {
-            label: "文件上传",
-            prop: "excelFile",
-            type: "upload",
-            drag: true,
-            loadText: "文件上传中,请稍等",
-            span: 24,
-            propsHttp: {
-              res: "data",
-            },
-            tip: "请上传 .xls,.xlsx 标准格式文件",
-            action: "/api/shareholder/import-share",
-          },
-          {
-            label: "模板下载",
-            prop: "excelTemplate",
-            formslot: true,
-            span: 24,
-          },
-        ],
-      },
-
-      excelBox1: false, //管理人
-      excelForm1: {},
-      excelOption1: {
-        submitBtn: false,
-        emptyBtn: false,
-        ...this.$store.state.control.clearOtherBut,
-        column: [
-          {
-            label: "文件上传",
-            prop: "excelFile",
-            type: "upload",
-            drag: true,
-            loadText: "文件上传中,请稍等",
-            span: 24,
-            propsHttp: {
-              res: "data",
-            },
-            tip: "请上传 .xls,.xlsx 标准格式文件",
-            action: "/api/member/import-member",
-          },
-          {
-            label: "模板下载",
-            prop: "excelTemplate",
-            formslot: true,
-            span: 24,
-          },
-        ],
-      },
-
-      typeTABS: {}, //标签页
-      optionTABS: {
-        column: [
-          {
-            // icon: "el-icon-info",
-            label: "保安单位基本信息",
-            prop: "tab1",
-          },
-          {
-            // icon: "el-icon-info",
-            label: "工商信息",
-            prop: "tab11",
-          },
-          {
-            // icon: "el-icon-info",
-            label: "保安单位出资人员",
-            prop: "tab2",
-          },
-          {
-            // icon: "el-icon-info",
-            label: "主要管理人员信息",
-            prop: "tab3",
-          },
-          {
-            // icon: "el-icon-info",
-            label: "装备管理 ",
-            prop: "tab4",
-          },
-          {
-            // icon: "el-icon-info",
-            label: "车辆管理 ",
-            prop: "tab5",
-          },
-          // {
-          //   // icon: "el-icon-info",
-          //   label: "枪支管理 ",
-          //   prop: "tab6",
-          // },
-          {
-            // icon: "el-icon-info",
-            label: "社保记录 ",
-            prop: "tab9",
-          },
-          {
-            // icon: "el-icon-info",
-            label: "营业执照 ",
-            prop: "tab7",
-          },
-          {
-            // icon: "el-icon-info",
-            label: "许可证 ",
-            prop: "tab8",
-          },
-        ],
-      },
-
       //全局单位统一社会信用代码
       creditcode: "",
       //保安单位信息表单
-      obj0: {
+      objBase: {
         // title: "我是头部标题",
       },
-      option0: {
+      formData: {},
+      businessObj:{},
+      businessOption: {
+        height: "auto",
+        // calcHeight: 80,
+        emptyBtn: false,
+        // submitBtn:false,
+        submitText:"保存",
+        group: [
+          {
+            label: "总公司工商信息",
+            labelWidth: "110",
+            prop: "baseInfo",
+            icon: "el-icon-user-solid",
+            column: [
+              {
+                label: "统一社会信用代码",
+                prop: "socialCreditCode",
+                span: 12,
+                labelWidth: 130,
+                disabled: false,
+              },
+              {
+                label: "注册时间",
+                prop: "registerTime",
+                span: 12,
+                labelWidth: 130,
+                disabled: false,
+                type: "date",
+                format: "yyyy-MM-dd",
+                valueFormat: "yyyy-MM-dd",
+                rules: [
+                  {
+                    required: true,
+                    message: "请选择注册时间",
+                    trigger: "blur",
+                  },
+                ],
+              },
+              {
+                label: "注册资本",
+                prop: "capital",
+                span: 12,
+                labelWidth: 130,
+                disabled: false,
+              },
+              {
+                label: "经营范围",
+                prop: "businessScope",
+                span: 12,
+                labelWidth: 130,
+                width: 110,
+                // overHidden: true,
+                // type: 'textarea',
+                showWordLimit: true,
+                disabled: false,
+              },
+              {
+                label: "营业执照",
+                prop: "trading",
+                type: "upload",
+                listType: "picture-img",
+                span: 12,
+                propsHttp: {
+                  res: "data",
+                },
+                canvasOption: {
+                  text: "",
+                  ratio: 1.0,
+                },
+                labelWidth: 130,
+                tip: "只能上传jpg/png格式图片,且不超过2Mb",
+                action: "/api/blade-resource/oss/endpoint/put-files",
+                disabled: false,
+              },
+            ],
+          },
+          {
+            label: "分公司工商信息",
+            prop: "detailInfo",
+            labelWidth: "110",
+            icon: "el-icon-s-order",
+            column: [
+              {
+                label: "统一社会信用代码",
+                prop: "creditcode",
+                span: 12,
+                labelWidth: 130,
+                disabled: false,
+              },
+              {
+                label: "注册时间",
+                prop: "establishtime",
+                span: 12,
+                labelWidth: 130,
+                disabled: false,
+                type: "date",
+                format: "yyyy-MM-dd",
+                valueFormat: "yyyy-MM-dd",
+                rules: [
+                  {
+                    required: true,
+                    message: "请选择注册时间",
+                    trigger: "blur",
+                  },
+                ],
+              },
+
+              {
+                label: "注册资本",
+                prop: "registeredcapital",
+                span: 12,
+                labelWidth: 130,
+                disabled: false,
+              },
+              {
+                label: "经营范围",
+                prop: "business",
+                span: 12,
+                labelWidth: 130,
+                width: 110,
+                // overHidden: true,
+                // type: 'textarea',
+                showWordLimit: true,
+                disabled: false,
+              },
+              {
+                label: "营业执照",
+                prop: "businessLicense",
+                type: "upload",
+                listType: "picture-img",
+                span: 12,
+                propsHttp: {
+                  res: "data",
+                },
+                canvasOption: {
+                  text: "",
+                  ratio: 1.0,
+                },
+                labelWidth: 130,
+                tip: "只能上传jpg/png格式图片,且不超过2Mb",
+                action: "/api/blade-resource/oss/endpoint/put-files",
+                disabled: false,
+              },
+            ],
+          },
+        ],
+      },
+      optionBase: {
         emptyBtn: false,
         submitBtn: false,
         submitText: "保存",
         gutter: 30,
         column: column,
       },
-
       option01: {
         emptyBtn: false,
         submitBtn: false,
         submitText: "保存",
         gutter: 30,
         column: column11,
-      },
-
-      loading1: true, //派遣记录
-      selectionList1: [],
-      page1: {
-        pageSize: 10,
-        currentPage: 1,
-        total: 0,
-        ...this.$store.state.control.changePageSize,
-      },
-      query1: {},
-      data1: [],
-      option1: {
-        // card: true,
-        tip: false,
-        searchSize: "mini",
-        searchMenuSpan: 8,
-        height: "auto",
-        menuWidth: 200,
-        align: "center",
-        selection: true,
-        ...this.$store.state.control.clearOtherBut,
-        column: column1,
-      },
-
-      loading2: true, //派遣记录
-      selectionList2: [],
-      page2: {
-        pageSize: 10,
-        currentPage: 1,
-        total: 0,
-        ...this.$store.state.control.changePageSize,
-      },
-      query2: {},
-      data2: [],
-      option2: {
-        // card: true,
-        tip: false,
-        searchSize: "mini",
-        searchMenuSpan: 8,
-        height: "auto",
-        menuWidth: 200,
-        menuAlign: "center",
-        align: "center",
-        selection: true,
-        ...this.$store.state.control.clearOtherBut,
-        column: column2,
       },
     };
   },
@@ -583,45 +311,55 @@
     chuzitime() {
       return this.data1.capitaltime;
     },
-    // ids() {
-    //   let ids = [];
-    //   this.selectionList.forEach((ele) => {
-    //     ids.push(ele.id);
-    //   });
-    //   return ids.join(",");
-    // },
-    ids1() {
-      let ids1 = [];
-      this.selectionList1.forEach((ele) => {
-        ids1.push(ele.id);
-      });
-      return ids1.join(",");
-    },
-    ids2() {
-      let ids2 = [];
-      this.selectionList2.forEach((ele) => {
-        ids2.push(ele.id);
-      });
-      return ids2.join(",");
-    },
   },
   methods: {
-    submit0(row, done, loading) {
-      // let nowTab = this.typeTABS.prop;
-      // console.log(this.typeTABS);
-      if (this.userInfo.role_name == "保安公司管理员") {
+    //分公司工商信息修改
+    businessSubmit(row, done, loading){
+      alert(1);
+      var that = this;
+      if (
+        this.userInfo.role_name == "保安公司管理员" ||
+        this.userInfo.role_name == "培训公司管理员" ||
+        this.userInfo.role_name == "分公司管理员"
+      ) {
         row["departmentid"] = this.userInfo.dept_id;
+        row["id"] = this.formData.id;
       }
-      console.log(row);
       update(row).then(
         () => {
-          // this.onLoad(this.page);
-          // this.onloads();
           this.$message({
             type: "success",
             message: "操作成功!",
           });
-          this.onloads();
+          that.formData = row;
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+      done();
+    },
+    //其他公司基本信息,工商信息修改
+    submitBase(row, done, loading) {
+      var that = this;
+      if (
+        this.userInfo.role_name == "保安公司管理员" ||
+        this.userInfo.role_name == "培训公司管理员" ||
+        this.userInfo.role_name == "分公司管理员"
+      ) {
+        row["departmentid"] = this.userInfo.dept_id;
+        row["id"] = this.formData.id;
+      }
+      // console.log(row);
+      update(row).then(
+        () => {
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          that.formData = row;
           done();
         },
         (error) => {
@@ -632,422 +370,42 @@
 
       done();
     },
-    handleImport() {
-      //出资人
-      this.excelBox = true;
+    //从 localStorage 获取数据
+    readLock(name) {
+      return window.localStorage.getItem(name);
     },
-    uploadAfter(res, done, loading, column) {
-      window.console.log(column);
-      this.excelBox = false;
-      this.refreshChange1();
-      done();
-    },
-    handleTemplate() {
-      window.open(`/api/shareholder/export-template`);
-    },
-
-    handleImport1() {
-      //管理人
-      this.excelBox1 = true;
-    },
-    uploadAfter1(res, done, loading, column) {
-      window.console.log(column);
-      this.excelBox1 = false;
-      this.refreshChange2();
-      done();
-    },
-    handleTemplate1() {
-      window.open(`/api/member/export-template`);
-    },
-
-    // handleChangeTABS(column) {
-    //   // this.typeTABS = column;
-    //   // console.log(column.prop);
-    //   // this.$message.success(JSON.stringify(column));
-    //   if (column.prop == "tab1") {
-    //     this.loading1 = false;
-    //     this.loading2 = false;
-    //     // this.onLoad(this.page);
-    //   } else if (column.prop == "tab2") {
-    //     //  this.loading1 = false;
-    //     this.loading2 = false;
-    //     this.onLoad1(this.page1); //第二个表格不会自动执行
-    //   } else if (column.prop == "tab3") {
-    //     this.loading1 = false;
-    //     // this.loading2 = false;
-    //     this.onLoad2(this.page2); //第二个表格不会自动执行
-    //   }
-    // },
     handleClick(tab, event) {
-      // console.log(tab.name, event);
       if (tab.name == "tab1") {
         this.loading1 = false;
-        this.loading2 = false;
-        // this.onLoad(this.page);
+      } else if (tab.name == "tab11") {
+        this.obj = this.formData;
       } else if (tab.name == "tab5") {
         this.overcar = true;
-        // this.onLoad(this.page);
       } else if (tab.name == "tab4") {
         this.overzb = true;
-        // this.onLoad(this.page);
       } else if (tab.name == "tab2") {
-        //  this.loading1 = false;
-        this.loading2 = false;
-        this.onLoad1(this.page1); //第二个表格不会自动执行
+        this.overshareholder = true;
       } else if (tab.name == "tab3") {
-        this.loading1 = false;
-        // this.loading2 = false;
-        this.onLoad2(this.page2); //第二个表格不会自动执行
+        this.overmanager = true;
       } else if (tab.name == "tab9") {
-        this.social = true; //表格错乱
+        this.social = true;
       } else {
         this.social = false;
         this.overcar = false;
         this.overzb = false;
         this.overcar = false;
+        this.overmanager = false;
+        this.overshareholder = false;
       }
     },
-    //派遣记录
-    sizeChange1(val) {
-      this.page1.currentPage = 1;
-      this.page1.pageSize = val;
-      // this.getData();
-      this.onLoad1(this.page1, this.query1);
-      //   this.$message.success("行数" + val);
-    },
-    currentChange1(val) {
-      this.page1.currentPage = val;
-      // this.getData();
-      this.onLoad1(this.page1, this.query1);
-      //   this.$message.success("页码" + val);
-    },
-    rowSave1(form, done, loading) {
-      // var that = this;
-      //   var form = this.data[0];
-      //   delete form.id;
-      //   for (var k = 0; k < 13; k++) {
-      form["deptId"] = this.departmentid;
-      adddata1(form).then(
-        () => {
-          this.onLoad1(this.page1);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          done();
-        },
-        (error) => {
-          window.console.log(error);
-          loading();
-        }
-      );
-      //   }
-    },
-    searchChange1(params, done) {
-      this.query1 = params;
-      this.page1.currentPage = 1;
-      this.onLoad1(this.page1, params);
-      done();
-    },
-    searchReset1() {
-      this.query = {};
-      this.onLoad1(this.page1);
-    },
-    rowUpdate1(row, index, done, loading) {
-      delete row.shareholdingratio;
-      delete row.tenantId;
-
-      console.log(row);
-      row["deptId"] = this.departmentid;
-      update1(row).then(
-        () => {
-          this.onLoad1(this.page1);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          done();
-        },
-        (error) => {
-          window.console.log(error);
-          loading();
-        }
-      );
-    },
-    rowDel1(row) {
-      this.$confirm("确定将选择数据删除?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          return remove1(row.id);
-        })
-        .then(() => {
-          this.onLoad1(this.page1);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-        });
-    },
-    selectionChange1(list) {
-      this.selectionList1 = list;
-    },
-    handleDelete1() {
-      if (this.selectionList1.length === 0) {
-        this.$message.warning("请选择至少一条数据");
-        return;
-      }
-      this.$confirm("确定将选择数据删除?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          return remove1(this.ids1);
-        })
-        .then(() => {
-          this.onLoad1(this.page1);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          this.$refs.crudrec1.toggleSelection();
-        });
-    },
-    refreshChange1() {
-      this.onLoad1(this.page1, this.query1);
-    },
-
-    //
-    onLoad1(page, params = {}) {
-      this.loading1 = true;
-      // console.log(page, params, 3435434);
-      params["deptId"] = this.departmentid;
-      getdataOnce1(
-        page.currentPage,
-        page.pageSize,
-        Object.assign(params, this.query)
-      ).then((res) => {
-        // console.log(res);
-        const data = res.data.data;
-        this.page1.total = data.total;
-        this.data1 = data.records;
-        // console.log(this.data1);
-        this.loading1 = false;
-
-        // this.$refs.crudrec1.refreshTable();
-        // this.$refs.crudrec1.doLayout();
-      });
-      // onLoad1(page, params = {}) {
-      //   this.loading1 = true;
-      //   // console.log(page);
-      //   getdata1(
-      //     page.currentPage,
-      //     page.pageSize,
-      //     Object.assign(params, this.query)
-      //   ).then((res) => {
-      //     // console.log(res);
-      //     const data = res.data.data;
-      //     this.page1.total = data.total;
-      //     this.data1 = data.records;
-      //     console.log(this.data1);
-      //     this.loading1 = false;
-      //   });
-    },
-    //派遣记录
-
-    //派遣记录
-    sizeChange2(val) {
-      this.page2.currentPage = 1;
-      this.page2.pageSize = val;
-      // this.getData();
-      this.onLoad2(this.page2, this.query2);
-      //   this.$message.success("行数" + val);
-    },
-    currentChange2(val) {
-      this.page2.currentPage = val;
-      // this.getData();
-      this.onLoad2(this.page2, this.query2);
-      //   this.$message.success("页码" + val);
-    },
-    rowSave2(form, done, loading) {
-      // var that = this;
-      //   var form = this.data[0];
-      //   delete form.id;
-      //   for (var k = 0; k < 13; k++) {
-      form["deptId"] = this.departmentid;
-      adddata2(form).then(
-        () => {
-          this.onLoad2(this.page1);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          done();
-        },
-        (error) => {
-          window.console.log(error);
-          loading();
-        }
-      );
-      //   }
-    },
-    searchChange2(params, done) {
-      this.query2 = params;
-      this.page2.currentPage = 1;
-      this.onLoad2(this.page2, params);
-      done();
-    },
-    searchReset2() {
-      this.query = {};
-      this.onLoad2(this.page2);
-    },
-    rowUpdate2(row, index, done, loading) {
-      console.log(row);
-      delete row.shareholdingratio;
-      row["deptId"] = this.departmentid;
-      update2(row).then(
-        () => {
-          this.onLoad2(this.page2);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          done();
-        },
-        (error) => {
-          window.console.log(error);
-          loading();
-        }
-      );
-    },
-    rowDel2(row) {
-      this.$confirm("确定将选择数据删除?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          return remove2(row.id);
-        })
-        .then(() => {
-          this.onLoad2(this.page1);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-        });
-    },
-    selectionChange2(list) {
-      this.selectionList2 = list;
-    },
-    handleDelete2() {
-      if (this.selectionList2.length === 0) {
-        this.$message.warning("请选择至少一条数据");
-        return;
-      }
-      this.$confirm("确定将选择数据删除?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          return remove2(this.ids2);
-        })
-        .then(() => {
-          this.onLoad2(this.page2);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          this.$refs.crudrec2.toggleSelection();
-        });
-    },
-    refreshChange2() {
-      this.onLoad2(this.page2, this.query2);
-    },
-
-    //
-    onLoad2(page, params = {}) {
-      this.loading2 = true;
-      // console.log(page);
-      // getdata2(
-      params["deptId"] = this.departmentid;
-      getdataOnce2(
-        page.currentPage,
-        page.pageSize,
-        Object.assign(params, this.query)
-      ).then((res) => {
-        // console.log(res);
-        const data = res.data.data;
-        this.page2.total = data.total;
-        this.data2 = data.records;
-        // console.log(this.data2);
-        this.loading2 = false;
-        this.$refs.crudrec2.refreshTable();
-        this.$refs.crudrec2.doLayout();
-      });
-    },
-    //派遣记录
-    saveLock(name, val) {
-      window.localStorage.setItem(name, val);
-    },
-    readLock(name) {
-      return window.localStorage.getItem(name);
-    },
-    onloads(tab) {
-      var that = this;
-      var doit = (a) => {
-        that.typeTABS = that.optionTABS.column[0];
-        // if (tab) {
-        // that.typeTABS.prop = tab;
-        // }
-        var row = {};
-        if (that.readLock("danweidata") != null) {
-          row = JSON.parse(that.readLock("danweidata"));
-          // that.obj0.title = row.enterprisename;
-          // console.log(row, "rowneibu");
-          that.departmentid = row.departmentid;
-          for (var k in row) {
-            that.obj0[k] = row[k];
-          }
-          if (row.creditcode == "") {
-            that.creditcode = 111;
-          } else {
-            that.creditcode = row.creditcode;
-          }
-          that.overHtp = true;
-          if (that.readLock("danweidataS") != null && a == 1) {
-            var b = JSON.parse(that.readLock("danweidataS"));
-            var i = 0;
-            for (var k in b) {
-              if (b[k].enterprisename == row.enterprisename) {
-                i = 1;
-              }
-            }
-            if (i == 1) {
-              // console.log("存在");
-            } else {
-              // console.log("已删除");
-
-              that.obj0 = {};
-              that.obj0.enterprisename = row.enterprisename + "该公司已删除";
-              window.localStorage.removeItem("danweidata");
-              that.creditcode = "";
-            }
-          }
-        } else {
-          // console.log("no");
-          that.obj0.enterprisename = "未选择查询单位";
-        }
-      };
+    //tag 防重复处理
+    tagTraim() {
+      //tag 防重复处理
       var flag = false,
         i = 0,
         ind = null;
       this.$store.state.tags.tagList.forEach((item, index) => {
-        if (item.label == "保安单位详情") {
+        if (item.label == "单位详情") {
           if (flag == false) {
             ind = index;
             flag = true;
@@ -1058,84 +416,192 @@
       if (i > 1) {
         this.$store.state.tags.tagList.splice(ind, 1);
       }
-
-      var getdatas = (roleAlias) => {
-        var fromSecunityGuardId = that.$route.query.fromSecunityGuardId;
-        // var fromSecunityGuardId = that.$route.query;
-        if (fromSecunityGuardId != undefined || roleAlias == "保安公司管理员") {
-          var value = {
-            departmentid: fromSecunityGuardId || that.userInfo.dept_id,
-          };
-          getOncedata(value).then((res) => {
-            // console.log(res.data.data, "get");
-            window.localStorage.setItem(
-              "danweidata",
-              JSON.stringify(res.data.data)
-            );
-            doit();
-          });
-          // return;
-        } else {
-          doit(1);
-        }
-      };
-
-      // console.log(this.userInfo, "userInfo");
+    },
+    //编辑状态控制
+    editController() {
+      var that = this;
       //获取当前登录人员的角色信息
       var roleIds = this.userInfo.role_id.split(",");
       roleIds.forEach((roleId) => {
         getRoleDetail(roleId).then((res) => {
           var roleAlias = res.data.data.roleAlias;
-          var d = that.option0.column;
+          var d = that.optionBase.column;
           var e = that.option01.column;
-          // console.log(roleAlias);
-          if (roleAlias == "保安公司管理员") {
-            that.option0.submitBtn = true;
+          //控制按钮,编辑状态
+          if (
+            roleAlias == "保安公司管理员" ||
+            roleAlias == "分公司管理员" ||
+            roleAlias == "培训公司管理员"
+          ) {
+            that.optionBase.submitBtn = true;
+            that.businessOption.submitBtn = true;
             that.option01.submitBtn = true;
             for (var k in d) {
-              // if (d[k].label != "企业类型") {
               d[k].disabled = false;
-              // }
             }
             for (var n in e) {
-              // if (d[k].label != "企业类型") {
               e[n].disabled = false;
-              // }
             }
           } else {
-            that.option0.submitBtn = false;
+            that.optionBase.submitBtn = false;
             that.option01.submitBtn = false;
-            for (var k in d) {
-              d[k].disabled = true;
+            that.businessOption.submitBtn = false;
+            for (var a in d) {
+              d[a].disabled = true;
             }
-            for (var n in e) {
-              e[n].disabled = true;
+            for (var b in e) {
+              e[b].disabled = true;
             }
           }
-          getdatas(roleAlias);
         });
       });
     },
-  },
-  mounted() {
-    this.onloads();
-  },
-  watch: {
-    // windowWidth() {
-    //   console.log(this.windowWidth, "windowWidth");
-    // },
-    windowHeight() {
-      // console.log(this.windowHeight, "windowHeight");
-      this.option1.height = this.windowHeight - 320;
-      this.option2.height = this.windowHeight - 320;
-      this.visible = false;
-      this.$nextTick(() => {
-        this.visible = true;
-        this.refreshChange1();
-        this.refreshChange2();
-      });
+    //获取保安公司数据
+    getdatas(data) {
+      //页面编辑状态控制
+      this.editController();
+      //数据读取
+      this.doit(data);
+    },
+    doit(data) {
+      var that = this;
+      var row = {};
+      if (data != null) {
+        row = data;
+        that.departmentid = row.departmentid;
+        for (var k in row) {
+          that.objBase[k] = row[k];
+        }
+        if (row.creditcode == "") {
+          that.creditcode = 111;
+        } else {
+          that.creditcode = row.creditcode;
+        }
+        that.overHtp = true;
+        if (data.stats == "0") {
+          //自招保安单位
+          const industrycolumn = this.findObject(
+            this.optionBase.column,
+            "industry"
+          );
+          const representativecolumn = this.findObject(
+            this.optionBase.column,
+            "representative"
+          );
+          const representativecellcolumn = this.findObject(
+            this.optionBase.column,
+            "representativecell"
+          );
+          const fregioncolumn = this.findObject(
+            this.optionBase.column,
+            "fregion"
+          );
+          const ftimecolumn = this.findObject(this.optionBase.column, "ftime");
+
+          //法人及电话,办公地址不可见
+          industrycolumn.display = false;
+          representativecolumn.display = false;
+          representativecellcolumn.display = false;
+          //服务区域,时间可见
+          fregioncolumn.display = true;
+          ftimecolumn.display = true;
+        }
+        if (data.stats == "4") {
+          //分公司
+          const representativecolumn = this.findObject(
+            this.optionBase.column,
+            "representative"
+          );
+          const representativecellcolumn = this.findObject(
+            this.optionBase.column,
+            "representativecell"
+          );
+          //法人及电话不可见
+          representativecolumn.label = "分公司负责人";
+          representativecellcolumn.label = "分公司负责人电话";
+        }
+      } else {
+        that.objBase.enterprisename = "未选择查询单位";
+      }
+    },
+    //数据初始化
+    initData() {
+      var that = this;
+      var datas = this.$route.query.data;
+      // console.log(datas,123456);
+      //判断进入的入口,单位信息进入,单位列表查看进入
+      if (datas) {
+        var data = JSON.parse(this.$route.query.data);
+        that.formData = data;
+        //单位列表进入
+        var stats = data.stats;
+        var deptId = data.departmentid;
+        //初始tab控制
+        this.initController(stats,deptId);
+        //初始数据获取
+        this.getdatas(data);
+      } else {
+        //单位信息进入
+        var value = {
+          departmentid: that.userInfo.dept_id,
+        };
+        getOncedata(value).then((res) => {
+          that.formData = res.data.data;
+          var stats = res.data.data.stats;
+          var deptId = res.data.data.departmentid;
+          //初始tab控制
+          this.initController(stats,deptId);
+          //初始数据获取
+          this.getdatas(res.data.data);
+        });
+      }
+    },
+    //tab 初始设置
+    initController(stats,deptId) {
+      var that = this;
+      // 判断按进入的公司类型
+      if (stats == "2") {
+        //本市保安公司
+        that.baseTitle = "保安单位基本信息";
+      }
+      if (stats == "0") {
+        //自招保安单位
+        that.baseTitle = "单位基本信息";
+        that.equipmentVisiable = false;
+        that.carVisiable = false;
+        that.shareholderVisiable = false;
+        that.certificdinedVisiable = true;
+        that.licenceVisiable = false;
+      }
+      if (stats == "4") {
+        //分公司
+        that.baseTitle = "保安单位基本信息";
+        that.certificdinedVisiable = true;
+        that.businessVisiable = false;
+        //查询分公司(及总公司)工商信息
+        getBusinessInfo(deptId).then((res)=>{
+          console.log(res.data.data,1234546);
+          that.businessObj = res.data.data;
+        })
+      }
+      if (stats == "1") {
+        //培训学校
+        that.baseTitle = "学校基本信息";
+        that.managerLabel = "师资力量";
+        that.licenceLabel = "培训许可证";
+        that.carVisiable = false;
+        that.shareholderVisiable = false;
+      }
     },
   },
+  mounted() {
+    this.tagTraim();
+  },
+  created() {
+    //初始化信息
+    this.initData();
+  },
+  watch: {},
 };
 </script>
 
@@ -1143,17 +609,8 @@
 .dispatch {
   width: 100%;
   height: 100%;
-  //   border: 1px solid #000;
   box-sizing: border-box;
 }
-// .el-card__body {
-//   padding-bottom: 5px !important;
-// }
-// .avue-crud__tip,
-// .el-tag,
-// .el-tag--light {
-//   padding: 0 !important;
-// }
 
 .el-collapse-item {
   padding-top: 15px !important;
@@ -1169,4 +626,8 @@
   overflow: hidden;
   top: -10px;
 }
+
+.manager {
+  height: 755px;
+}
 </style>
\ No newline at end of file
diff --git a/src/views/securityUnitChild/manager.vue b/src/views/securityUnitChild/manager.vue
new file mode 100644
index 0000000..e6f1947
--- /dev/null
+++ b/src/views/securityUnitChild/manager.vue
@@ -0,0 +1,337 @@
+<template>
+  <basic-container
+    :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']"
+  >
+    <avue-crud
+      :option="option"
+      :table-loading="loading"
+      :data="data"
+      :page.sync="page"
+      :permission="permissionList"
+      :before-open="beforeOpen"
+      v-model="form"
+      ref="crud"
+      @row-update="rowUpdate"
+      @row-save="rowSave"
+      @row-del="rowDel"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @selection-change="selectionChange"
+      @current-change="currentChange"
+      @size-change="sizeChange"
+      @refresh-change="refreshChange"
+      @on-load="onLoad"
+    >
+      <template slot="menuLeft">
+        <el-button
+          type="danger"
+          size="small"
+          icon="el-icon-delete"
+          plain
+          @click="handleDelete"
+          >删 除
+          <!-- v-if="permission.social_delete" -->
+        </el-button>
+        <el-button
+          type="success"
+          size="small"
+          plain
+          icon="el-icon-upload2"
+          @click="handleImport"
+          >批量导入
+        </el-button>
+      </template>
+    </avue-crud>
+    <el-dialog
+      title="管理人导入"
+      append-to-body
+      :visible.sync="excelBox"
+      width="555px"
+    >
+      <avue-form
+        :option="excelOption"
+        v-model="excelForm"
+        :upload-after="uploadAfter"
+      >
+        <template slot="excelTemplate">
+          <el-button type="primary" @click="handleTemplate">
+            点击下载<i class="el-icon-download el-icon--right"></i>
+          </el-button>
+        </template>
+      </avue-form>
+    </el-dialog>
+  </basic-container>
+</template>
+
+<script>
+import {
+  getdataOnce2,
+  getDetail2,
+  adddata2,
+  update2,
+  remove2,
+} from  "@/api/securityUnit/securityUnit";
+import { mapGetters } from "vuex";
+import { getToken } from "@/util/auth";
+export default {
+  props: ["deptid"],
+  data() {
+    var deptid = this.deptid;
+    if (deptid == undefined) {
+      deptid = this.$store.getters.userInfo.dept_id;
+    }
+    return {
+      visible: true,
+      form: { cardid: "" },
+
+      query: {},
+      loading: true,
+      excelBox: false,
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+        ...this.$store.state.control.changePageSize,
+      },
+      selectionList: [],
+      option: {
+        tip: false,
+        searchSize: "mini",
+        searchMenuSpan: 8,
+        height: "auto",
+        editBtn:true,
+        delBtn:true,
+        viewBtn:true,
+        menuWidth: 200,
+        menuAlign: "center",
+        align: "center",
+        selection: true,
+        ...this.$store.state.control.clearOtherBut,
+        column: [
+          {
+            label: "统一社会信用代码",
+            prop: "creditcode",
+            hide: true,
+            addDisplay: false,
+            editDisplay: false,
+          },
+          {
+            label: "id",
+            prop: "id",
+            hide: true,
+            addDisplay: false,
+            editDisplay: false,
+          },
+          {
+            label: "姓名",
+            prop: "name",
+            search: true,
+          },
+          {
+            label: "职务",
+            prop: "post",
+            search: true,
+          },
+          {
+            label: "身份证",
+            prop: "cardid",
+          },
+          {
+            label: "联系电话",
+            prop: "cell",
+          },
+        ],
+      },
+      data: [],
+      excelForm: {},
+      excelOption: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [
+          {
+            label: "模板上传",
+            prop: "excelFile",
+            type: "upload",
+            drag: true,
+            loadText: "模板上传中,请稍等",
+            span: 24,
+            propsHttp: {
+              res: "data",
+            },
+            tip: "请上传 .xls,.xlsx 标准格式文件",
+            action: "/api/member/import-member",
+          },
+          {
+            label: "模板下载",
+            prop: "excelTemplate",
+            formslot: true,
+            span: 24,
+          },
+        ],
+      },
+    };
+  },
+  created() {
+    this.option.height = this.windowHeight - 320;
+  },
+  computed: {
+    ...mapGetters(["permission", "userInfo", "windowHeight"]),
+    // permissionList() {
+    //   return {
+    //     addBtn: this.vaildData(this.permission.social_add, true),
+    //     viewBtn: this.vaildData(this.permission.social_view, false),
+    //     delBtn: this.vaildData(this.permission.social_delete, false),
+    //     editBtn: this.vaildData(this.permission.social_edit, false),
+    //   };
+    // },
+    ids() {
+      let ids = [];
+      this.selectionList.forEach((ele) => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
+    },
+  },
+  methods: {
+    rowSave(row, done, loading) {
+      row['deptId'] = this.deptid;
+      adddata2(row).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          loading();
+          window.console.log(error);
+        }
+      );
+    },
+    rowUpdate(row, index, done, loading) {
+      row['deptId'] = this.deptid;
+      update2(row).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          loading();
+          console.log(error);
+        }
+      );
+    },
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove2(row.id);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    handleTemplate() {
+      window.open(
+        `/api/member/export-template?${this.website.tokenHeader}=${getToken()}`
+      );
+    },
+    uploadAfter(res, done, loading, column) {
+      window.console.log(column);
+      this.excelBox = false;
+      this.refreshChange();
+      done();
+    },
+    handleImport() {
+      this.excelBox = true;
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove2(this.ids);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$refs.crud.toggleSelection();
+        });
+    },
+    beforeOpen(done, type) {
+      if (["edit", "view"].includes(type)) {
+        getDetail2(this.form.id).then((res) => {
+          this.form = res.data.data;
+        });
+      }
+      done();
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    selectionClear() {
+      this.selectionList = [];
+      this.$refs.crud.toggleSelection();
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      params["deptId"] = this.deptid;
+      getdataOnce2(
+        page.currentPage,
+        page.pageSize,
+        Object.assign(params, this.query)
+      ).then((res) => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.data = data.records;
+        this.loading = false;
+        this.selectionClear();
+      });
+    },
+  },
+};
+</script>
+
+<style>
+</style>
diff --git a/src/views/securityUnitChild/shareholder.vue b/src/views/securityUnitChild/shareholder.vue
new file mode 100644
index 0000000..c86f816
--- /dev/null
+++ b/src/views/securityUnitChild/shareholder.vue
@@ -0,0 +1,383 @@
+<template>
+  <basic-container
+    :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']"
+  >
+    <avue-crud
+      v-if="visible"
+      :option="option"
+      :table-loading="loading"
+      :data="data"
+      :page.sync="page"
+      :permission="permissionList"
+      :before-open="beforeOpen"
+      v-model="form"
+      ref="crud"
+      @row-update="rowUpdate"
+      @row-save="rowSave"
+      @row-del="rowDel"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @selection-change="selectionChange"
+      @current-change="currentChange"
+      @size-change="sizeChange"
+      @refresh-change="refreshChange"
+      @on-load="onLoad"
+    >
+      <template slot="menuLeft">
+        <el-button
+          type="danger"
+          size="small"
+          icon="el-icon-delete"
+          plain
+          @click="handleDelete"
+          >删 除
+          <!-- v-if="permission.social_delete" -->
+        </el-button>
+        <el-button
+          type="success"
+          size="small"
+          plain
+          icon="el-icon-upload2"
+          @click="handleImport"
+          >批量导入
+        </el-button>
+      </template>
+    </avue-crud>
+    <el-dialog
+      title="管理人导入"
+      append-to-body
+      :visible.sync="excelBox"
+      width="555px"
+    >
+      <avue-form
+        :option="excelOption"
+        v-model="excelForm"
+        :upload-after="uploadAfter"
+      >
+        <template slot="excelTemplate">
+          <el-button type="primary" @click="handleTemplate">
+            点击下载<i class="el-icon-download el-icon--right"></i>
+          </el-button>
+        </template>
+      </avue-form>
+    </el-dialog>
+  </basic-container>
+</template>
+
+<script>
+import {
+  getdataOnce1,
+  getDetail1,
+  adddata1,
+  update1,
+  remove1,
+} from "@/api/securityUnit/securityUnit";
+import { mapGetters } from "vuex";
+import { getToken } from "@/util/auth";
+
+const validatePassNumber = (rule, value, callback) => {
+  var test = /^[0-9]*$/gm;
+  if (!test.test(value)) {
+    callback(new Error("请输入数字"));
+  } else {
+    callback();
+  }
+};
+export default {
+  props: ["deptid"],
+  data() {
+    var deptid = this.deptid;
+    if (this.deptid == undefined) {
+      // deptid = this.userInfo
+      // console.log(this.$store.getters.userInfo.dept_id);
+      deptid = this.$store.getters.userInfo.dept_id;
+    }
+    return {
+      visible: true,
+      form: { cardid: "" },
+
+      query: {},
+      loading: true,
+      excelBox: false,
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+        ...this.$store.state.control.changePageSize,
+      },
+      selectionList: [],
+      option: {
+        tip: false,
+        searchSize: "mini",
+        searchMenuSpan: 8,
+        height: "auto",
+        menuWidth: 200,
+        menuAlign: "center",
+        align: "center",
+        selection: true,
+        ...this.$store.state.control.clearOtherBut,
+        column: [
+          {
+            label: "股东",
+            prop: "shareholder",
+            searchLabelWidth: 55,
+            search: true,
+            labelWidth:130,
+          },
+          {
+            label: "持股比例(%)",
+            prop: "shareholdingratio",
+            rules: [
+              {
+                required: true,
+                validator: validatePassNumber,
+                trigger: "blur",
+              },
+            ],
+            labelWidth:130,
+          },
+          {
+            label: "出资金额(万元)",
+            prop: "capital",
+            rules: [
+              {
+                required: true,
+                validator: validatePassNumber,
+                trigger: "blur",
+              },
+            ],
+            labelWidth:130,
+          },
+          {
+            label: "出资时间",
+            prop: "capitaltime",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            labelWidth:130,
+          },
+          {
+            label: "身份证",
+            prop: "cardid",
+            search: true,
+            labelWidth:130,
+          },
+          {
+            label: "联系电话",
+            prop: "cell",
+            labelWidth:130,
+          },
+          {
+            label: "统一社会信用代码",
+            prop: "creditcode",
+            hide: true,
+            addDisplay: false,
+            editDisplay: false,
+            labelWidth:130,
+          },
+        ],
+      },
+      data: [],
+      excelForm: {},
+      excelOption: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [
+          {
+            label: "模板上传",
+            prop: "excelFile",
+            type: "upload",
+            drag: true,
+            loadText: "模板上传中,请稍等",
+            span: 24,
+            propsHttp: {
+              res: "data",
+            },
+            tip: "请上传 .xls,.xlsx 标准格式文件",
+            action: "/api/shareholder/import-share",
+          },
+          {
+            label: "模板下载",
+            prop: "excelTemplate",
+            formslot: true,
+            span: 24,
+          },
+        ],
+      },
+    };
+  },
+  watch: {
+    windowHeight() {
+      console.log(this.windowHeight);
+      this.option.height = this.windowHeight - 320;
+      this.visible = false;
+      this.$nextTick(() => {
+        this.visible = true;
+        this.refreshChange();
+      });
+    },
+  },
+  created() {
+    this.option.height = this.windowHeight - 320;
+  },
+  computed: {
+    ...mapGetters(["permission", "userInfo", "windowHeight"]),
+    // permissionList() {
+    //   return {
+    //     addBtn: this.vaildData(this.permission.social_add, true),
+    //     viewBtn: this.vaildData(this.permission.social_view, false),
+    //     delBtn: this.vaildData(this.permission.social_delete, false),
+    //     editBtn: this.vaildData(this.permission.social_edit, false),
+    //   };
+    // },
+    ids() {
+      let ids = [];
+      this.selectionList.forEach((ele) => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
+    },
+  },
+  methods: {
+    rowSave(row, done, loading) {
+      row['deptId'] = this.deptid;
+      adddata1(row).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          loading();
+          window.console.log(error);
+        }
+      );
+    },
+    rowUpdate(row, index, done, loading) {
+      row['deptId'] = this.deptid;
+      update1(row).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          loading();
+          console.log(error);
+        }
+      );
+    },
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove1(row.id);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    handleTemplate() {
+      window.open(
+        `/api/shareholder/export-template?${this.website.tokenHeader}=${getToken()}`
+      );
+    },
+    uploadAfter(res, done, loading, column) {
+      window.console.log(column);
+      this.excelBox = false;
+      this.refreshChange();
+      done();
+    },
+    handleImport() {
+      this.excelBox = true;
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove1(this.ids);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$refs.crud.toggleSelection();
+        });
+    },
+    beforeOpen(done, type) {
+      if (["edit", "view"].includes(type)) {
+        getDetail1(this.form.id).then((res) => {
+          this.form = res.data.data;
+        });
+      }
+      done();
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    selectionClear() {
+      this.selectionList = [];
+      this.$refs.crud.toggleSelection();
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      params["deptId"] = this.deptid;
+      getdataOnce1(
+        page.currentPage,
+        page.pageSize,
+        Object.assign(params, this.query)
+      ).then((res) => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.data = data.records;
+        this.loading = false;
+        this.selectionClear();
+      });
+    },
+  },
+};
+</script>
+
+<style>
+</style>
diff --git a/src/views/securityUnitChild/social.vue b/src/views/securityUnitChild/social.vue
index cd71fd1..223c8a0 100644
--- a/src/views/securityUnitChild/social.vue
+++ b/src/views/securityUnitChild/social.vue
@@ -233,8 +233,8 @@
             prop: "residence",
             labelWidth: 110,
             overHidden: true,
-            addDisabled: true,
-            editDisabled: true,
+            addDisabled: false,
+            editDisabled: false,
             rules: [
               {
                 required: true,
@@ -333,33 +333,6 @@
             tip: "请上传 .xls,.xlsx 标准格式文件",
             action: "/api/social/import-user?deptid=" + deptid,
           },
-          // {
-          //   label: "数据覆盖",
-          //   prop: "isCovered",
-          //   type: "switch",
-          //   align: "center",
-          //   hide: true,
-          //   width: 80,
-          //   dicData: [
-          //     {
-          //       label: "否",
-          //       value: 0,
-          //     },
-          //     {
-          //       label: "是",
-          //       value: 1,
-          //     },
-          //   ],
-          //   value: 0,
-          //   slot: true,
-          //   rules: [
-          //     {
-          //       required: true,
-          //       message: "请选择是否覆盖",
-          //       trigger: "blur",
-          //     },
-          //   ],
-          // },
           {
             label: "模板下载",
             prop: "excelTemplate",
@@ -425,7 +398,7 @@
           var d = res.data.data;
           this.form.cardid = d.cardid;
           this.form.telephone = d.phone;
-          this.form.residence = d.nativeplace;
+          this.form.residence = d.registered;
           this.form.address = d.address;
           this.form.sex = d.sex;
           this.form.nation = d.nation;
diff --git a/src/views/statisticalQueryManagement/businessStatistics.vue b/src/views/statisticalQueryManagement/businessStatistics.vue
new file mode 100644
index 0000000..a630978
--- /dev/null
+++ b/src/views/statisticalQueryManagement/businessStatistics.vue
@@ -0,0 +1,423 @@
+<template>
+  <div>
+    <basic-container>
+      <avue-crud
+        :option="tableOption"
+        :table-loading="loading"
+        :data="tableData"
+        :page.sync="page"
+        :permission="permissionList"
+        ref="crud"
+        :search.sync="search"
+        @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"
+      >
+        <template slot="menuLeft">
+          <el-button
+            type="warning"
+            size="small"
+            plain
+            icon="el-icon-download"
+            @click="handleExportBusinessStatis"
+            >导出
+          </el-button>
+        </template>
+      </avue-crud>
+    </basic-container>
+    <el-dialog
+      class="tongji-class"
+      :title="dialogTitle"
+      width="80%"
+      style="height:100%"
+      append-to-body
+      :visible.sync="dialogShow"
+      v-if="dialogShow"
+    >
+      <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>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import { mapGetters } from "vuex";
+import {
+  selectYw,
+  dictionaryList,
+} from "@/api/statisticalQueryManagement/statisticalQueryManagement";
+// import {  lazyTrees } from "@/api/index/index";
+import businessStatisticsDetail from "./businessStatisticsDetail";
+import businessStatisticsPq from "./businessStatisticsPq";
+import businessStatisticsFwdq from "./businessStatisticsFwdq";
+import securityGuardDetail from "./securityGuardDetail";
+import Qs from "qs";
+import { getToken } from "@/util/auth";
+export default {
+  name: "业务情况统计",
+  components: {
+    businessStatisticsDetail,
+    businessStatisticsPq,
+    businessStatisticsFwdq,
+    securityGuardDetail,
+  },
+  data() {
+    return {
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+        ...this.$store.state.control.changePageSize,
+      },
+      search: {},
+      query: {},
+      value1: "",
+      value2: "",
+      tableData: [],
+      tableOption: {
+        delBtn: false,
+        editBtn: false,
+        addBtn: false,
+        selection: false,
+        menu: false,
+        align: "center",
+        height: "auto",
+        calcHeight: 30,
+        tip: false,
+        searchShowBtn: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        index: true,
+        indexLabel: "序号",
+        viewBtn: true,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "公司名称",
+            prop: "enterpriseName",
+            search: true,
+            searchSpan: 4,
+            width: 300,
+            display: false,
+          },
+          {
+            label: "单位类型",
+            prop: "stats",
+            search: true,
+            searchSpan: 4,
+            display: false,
+            type: "select",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            dicData: [],
+          },
+          {
+            label: "所属辖区",
+            prop: "jurname",
+            type: "tree",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            dicData: [],
+            rules: [
+              {
+                required: true,
+                message: "请选择所属辖区",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "所属辖区",
+            prop: "jurisdiction",
+            search: true,
+            searchSpan: 4,
+            type: "tree",
+            dicUrl: "/api/jurisdiction/lazy-tree",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            hide: true,
+            checkStrictly: true,
+            slot: true,
+            rules: [
+              {
+                required: false,
+                message: "请选择所属辖区",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "保安员人数",
+            prop: "znum",
+            display: false,
+          },
+          {
+            label: "持证人数",
+            prop: "cznum",
+            display: false,
+          },
+          {
+            label: "派遣人数",
+            prop: "pqnum",
+            display: false,
+          },
+          {
+            label: "服务对象数量",
+            prop: "fwnum",
+            display: false,
+          },
+          {
+            label: "服务到期数量",
+            prop: "dqnum",
+            display: false,
+          },
+          {
+            label: "单位注册时间",
+            prop: "releaseTimeRange",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            searchRange: true,
+            searchSpan: 6,
+            searchLabelWidth: 120,
+            labelWidth: 160,
+            hide: true,
+            addDisplay: false,
+            editDisplay: false,
+            viewDisplay: false,
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择单位注册时间",
+                trigger: "blur",
+              },
+            ],
+          },
+        ],
+      },
+      loading: true,
+      dialogTitle: "",
+      dialogShow: false,
+      pqdialogShow: false,
+      fwdeptId: "",
+      searchitem: "",
+      paramCz: false,
+    };
+  },
+  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: {
+    //业务情况统计信息导出
+    handleExportBusinessStatis() {
+      this.$confirm("是否导出业务情况统计信息数据?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        //获取查询条件
+        const { releaseTimeRange } = this.search;
+        if (releaseTimeRange) {
+          this.search["startTime"] = releaseTimeRange[0];
+          this.search["endTime"] = releaseTimeRange[1];
+        }
+        var data = {
+          jurisdiction: this.search.jurisdiction,
+          stats: this.search.stats,
+          deptid: this.search.enterpriseName,
+          startTime: this.search.startTime,
+          endTime: this.search.endTime,
+        };
+        // console.log(data,123);
+        //序列号url形式,用&拼接
+        data = Qs.stringify(data);
+        window.open(
+          `/api/information/export-business-statis?${
+            this.website.tokenHeader
+          }=${getToken()}&` + 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);
+      //   }
+      // });
+    },
+    getDictionaryList() {
+      dictionaryList().then((res) => {
+        if (res.data.code === 200) {
+          this.tableOption.column.forEach((item) => {
+            if (item.label == "单位类型") {
+              item.dicData = res.data.data;
+            }
+          });
+        }
+      });
+    },
+    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 = {}) {
+      params = this.search;
+      this.loading = true;
+      let param = {};
+      param["jurisdiction"] = params["jurisdiction"] || "";
+      param["deptid"] = params["enterpriseName"] || "";
+      param["stats"] = params["stats"] || "";
+      param["current"] = page.currentPage;
+      param["size"] = page.pageSize;
+      const { releaseTimeRange } = this.query;
+      let values = {
+        ...param,
+      };
+      if (releaseTimeRange) {
+        values = {
+          ...param,
+          startTime: releaseTimeRange[0],
+          endTime: releaseTimeRange[1],
+          ...this.query,
+        };
+        values.releaseTimeRange = null;
+      }
+      selectYw(values).then((res) => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.tableData = data.records;
+        this.loading = false;
+      });
+    },
+    handleRowClick(row, column, cell, event) {
+      this.paramCz = false;
+
+      if (column.label == "服务对象数量") {
+        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.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 = "zong";
+        this.paramCz = true;
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+      } else {
+        this.dialogShow = false;
+      }
+    },
+  },
+  mounted() {
+    // this.getSubOfficeData();
+    this.getDictionaryList();
+  },
+};
+</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(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
new file mode 100644
index 0000000..327f7a7
--- /dev/null
+++ b/src/views/statisticalQueryManagement/businessStatisticsDetail.vue
@@ -0,0 +1,241 @@
+<template>
+  <div class="businessDetail">
+  <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>
+   </div>
+</template>
+<script>
+import { mapGetters } from "vuex";
+import {
+  dispatcherUnit
+} from "../../api/statisticalQueryManagement/statisticalQueryManagement";
+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,
+        align: "center",
+        height: "auto",
+        calcHeight: 30,
+        tip: false,
+        searchShowBtn: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        index: true,
+        indexLabel:'序号',
+        viewBtn: true,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "服务单位名称",
+            prop: "name",
+            props: {
+              label: "name",
+              value: "name"
+            },
+            searchLabelWidth: 110,
+            search: true,
+            searchSpan: 8,
+            rules: [
+              {
+                required: true,
+                message: "请选择服务单位",
+                trigger: "blur"
+              }
+            ]
+            // display: false
+          },
+          {
+            label: "保安公司名称",
+            width: 300,
+            prop: "deptName",
+            display: false
+          },
+          {
+            label: "服务开始时间",
+            prop: "startTime",
+            display: false
+          },
+          {
+            label: "服务到期时间",
+            prop: "endTime",
+            display: false
+          },
+          {
+            label: "保安员人数",
+            prop: "num",
+            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["deptName"] = params['deptName'] || "";
+      param["deptId"] = this.fwdeptId;
+      param["current"] = page.currentPage;
+      param["size"] = page.pageSize;
+      param["name"] = params["name"] || "";
+
+      dispatcherUnit(param).then(res => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.tableData = 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"] || "";
+      // let jurisdiction = object["jurisdiction"] || "";
+      this.query = { deptid: this.deptid };
+      this.onLoad(this.page, this.query);
+    }
+  },
+  mounted() {
+  }
+};
+</script>
+<style lang="scss" scoped>
+</style>
diff --git a/src/views/statisticalQueryManagement/businessStatisticsFwdq.vue b/src/views/statisticalQueryManagement/businessStatisticsFwdq.vue
new file mode 100644
index 0000000..1bcd515
--- /dev/null
+++ b/src/views/statisticalQueryManagement/businessStatisticsFwdq.vue
@@ -0,0 +1,221 @@
+<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 {
+  dispatcherUnit2
+} from "../../api/statisticalQueryManagement/statisticalQueryManagement";
+export default {
+  name: "业务情况统计明细---保安公司服务到期的公司列表",
+  props: ["fwdeptId"],
+  data() {
+    return {
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      query: {},
+      value1: "",
+      value2: "",
+      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,
+        indexLabel:'序号',
+        viewBtn: true,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "服务单位名称",
+            prop: "name",
+            props: {
+              label: "name",
+              value: "name"
+            },
+            searchLabelWidth: 110,
+            search: true,
+            searchSpan: 8,
+            rules: [
+              {
+                required: true,
+                message: "请选择服务单位",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "所属保安公司",
+            prop: "deptName",
+            width: 300,
+            display: false
+          },
+          {
+            label: "服务开始时间",
+            prop: "startTime",
+            display: false
+          },
+          {
+            label: "服务到期时间",
+            prop: "endTime",
+            display: false
+          },
+          {
+            label: "保安员数量",
+            prop: "num",
+            display: false
+          },
+          {
+            label: "联系人",
+            prop: "linkman",
+            display: false
+          },
+          {
+            label: "联系电话",
+            prop: "phone",
+            display: false
+          }
+        ]
+      },
+      typeValue: "0",
+      subofficeValue: "0",
+      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["deptName"] = params["deptName"] || "";
+      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..3f1f385
--- /dev/null
+++ b/src/views/statisticalQueryManagement/businessStatisticsPq.vue
@@ -0,0 +1,219 @@
+<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 {
+  selectFw,
+  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: "",
+      tablePage: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      tableOption: {
+        excelBtn: true,
+        delBtn: false,
+        editBtn: false,
+        addBtn: false,
+        selection: true,
+        menu: false,
+        align: "center",
+        height: "auto",
+        calcHeight: 30,
+        tip: false,
+        searchShowBtn: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        index: true,
+        indexLabel:'序号',
+        viewBtn: true,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "保安公司名称",
+            prop: "deptName",
+            width: 300,
+            display: false,
+          },
+          {
+            label: "服务单位名称",
+            prop: "dispatcherCompany",
+            width: 300,
+            props: {
+              label: "name",
+              value: "name"
+            },
+            dicData: [],
+            searchLabelWidth: 110,
+            type: "tree",
+            rules: [
+              {
+                required: true,
+                message: "请选择服务单位",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "派遣时间",
+            prop: "dispatchertime",
+            display: false
+          },
+          {
+            label: "保安员姓名",
+            prop: "securityName",
+            display: false,
+            search:true,
+            searchSpan:4,
+            searchLabelWidth:110
+          },
+          {
+            label: "身份证号",
+            prop: "idCardNo",
+            display: false
+          },
+          {
+            label: "联系电话",
+            prop: "securityPhone",
+            display: false
+          }
+        ]
+      },
+      typeValue: "0",
+      subofficeValue: "0",
+      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["securityName"] = params["securityName"] || "";
+      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();
+  }
+};
+</script>
+<style lang="scss" scoped></style>
diff --git a/src/views/statisticalQueryManagement/companyDetails.vue b/src/views/statisticalQueryManagement/companyDetails.vue
new file mode 100644
index 0000000..b72bc83
--- /dev/null
+++ b/src/views/statisticalQueryManagement/companyDetails.vue
@@ -0,0 +1,396 @@
+<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"
+    >
+    </avue-crud>
+  </basic-container>
+</template>
+<script>
+import { mapGetters } from "vuex";
+import { selectUIn } from "../../api/statisticalQueryManagement/statisticalQueryManagement";
+export default {
+  name: "公司人员详情",
+  props: ["fwdeptId"],
+  data() {
+    return {
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      query: {},
+      value1: "",
+      value2: "",
+      tableData: [
+        // {
+        //   name: "张强",
+        //   No: "NO.2143",
+        //   idNumber: "230229187623601221",
+        //   tel: "13728198762",
+        //   holder: "是",
+        //   socialSecurity: "是",
+        //   picture: "是",
+        //   qualification: "通过",
+        //   pass: "是",
+        //   send: "是"
+        // },
+        // {
+        //   name: "张强",
+        //   No: "NO.2143",
+        //   idNumber: "230229187623601221",
+        //   tel: "13728198762",
+        //   holder: "是",
+        //   socialSecurity: "是",
+        //   picture: "是",
+        //   qualification: "通过",
+        //   pass: "是",
+        //   send: "是"
+        // },
+        // {
+        //   name: "张强",
+        //   No: "NO.2143",
+        //   idNumber: "230229187623601221",
+        //   tel: "13728198762",
+        //   holder: "是",
+        //   socialSecurity: "是",
+        //   picture: "是",
+        //   qualification: "通过",
+        //   pass: "是",
+        //   send: "是"
+        // }
+      ],
+      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: 10,
+        index: true,
+        indexLabel:'序号',
+        viewBtn: true,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "保安姓名",
+            // searchLabelWidth: 90,
+            prop: "real_name",
+            search: true,
+            searchSpan: 4,
+            display: false
+          },
+          {
+            label: "所属保安公司",
+            prop: "enterpriseName",
+            width: 300,
+            display: false
+          },
+
+          {
+            label: "保安证编号",
+            prop: "securitynumber",
+            width: 180,
+            display: false
+          },
+          {
+            label: "身份证号",
+            prop: "cardid",
+            width: 180,
+            display: false
+          },
+          {
+            label: "联系方式",
+            prop: "phone",
+            width: 180,
+            display: false
+          },
+          {
+            label: "是否持证",
+            prop: "hold",
+            searchSpan: 4,
+            type: "select",
+            props: {
+              label: "label",
+              value: "value"
+            },
+            // cascaderItem: ["city", "area"],
+            // dicUrl:subofficeOptions,
+            dicData: [
+              {
+                value: "1",
+                label: "是"
+              },
+              {
+                value: "2",
+                label: "否"
+              },
+              {
+                value: "3",
+                label: "吊销"
+              }
+            ],
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择是否持证",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "是否缴纳社保",
+            //  labelWidth: 120,
+            searchLabelWidth: 100,
+            prop: "soil",
+            searchSpan: 4,
+            type: "select",
+            props: {
+              label: "label",
+              value: "value"
+            },
+            dicData: [
+              {
+                value: "0",
+                label: "是"
+              },
+              {
+                value: "1",
+                label: "否"
+              }
+            ],
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择是否缴纳社保",
+                trigger: "blur"
+              }
+            ]
+          },
+
+          {
+            label: "是否已采集照片",
+            searchLabelWidth: 120,
+            prop: "photo",
+            searchSpan: 4,
+            type: "select",
+            props: {
+              label: "label",
+              value: "value"
+            },
+            dicData: [
+              {
+                value: "0",
+                label: "是"
+              },
+              {
+                value: "1",
+                label: "否"
+              }
+            ],
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择是否已采集照片",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "资格审查情况",
+            searchLabelWidth: 100,
+            prop: "examination_type",
+            searchSpan: 4,
+            type: "select",
+            props: {
+              label: "label",
+              value: "value"
+            },
+            dicData: [
+              {
+                value: "0",
+                label: "正常"
+              },
+              {
+                value: "1",
+                label: "异常"
+              }
+            ],
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择资格审查情况",
+                trigger: "blur"
+              }
+            ]
+          },
+          // {
+          //   label: "是否通过考试",
+          //   searchLabelWidth: 110,
+          //   prop: "pass",
+          //   searchSpan: 4,
+          //   type: "select",
+          //   props: {
+          //     label: "label",
+          //     value: "value"
+          //   },
+          //   dicData: [
+          //     {
+          //       value: "0",
+          //       label: "是"
+          //     },
+          //     {
+          //       value: "2",
+          //       label: "否"
+          //     }
+          //   ],
+          //   search: true,
+          //   rules: [
+          //     {
+          //       required: true,
+          //       message: "请选择是否通过考试",
+          //       trigger: "blur"
+          //     }
+          //   ]
+          // },
+          {
+            label: "是否派遣",
+            prop: "dispatch",
+            searchSpan: 4,
+            type: "select",
+            props: {
+              label: "label",
+              value: "value"
+            },
+            dicData: [
+              {
+                value: "0",
+                label: "是"
+              },
+              {
+                value: "1",
+                label: "否"
+              }
+            ],
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择是否派遣",
+                trigger: "blur"
+              }
+            ]
+          }
+        ]
+      },
+      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, this.query);
+    },
+    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["deptid"] = this.fwdeptId;
+      param["name"] = params["real_name"] || "";
+      param["hold"] =
+        params["hold"] || params["hold"] == "0" ? Number(params["hold"]) : "";
+      param["photo"] =
+        params["photo"] || params["photo"] == "0"
+          ? Number(params["photo"])
+          : "";
+      param["examinationtype"] =
+        params["examination_type"] || params["examination_type"] == "0"
+          ? Number(params["examination_type"])
+          : "";
+      param["dispatch"] =
+        params["dispatch"] || params["dispatch"] == "0"
+          ? Number(params["dispatch"])
+          : "";
+      param["soil"] =
+        params["soil"] || params["soil"] == "0" ? Number(params["soil"]) : "";
+      param["current"] = page.currentPage;
+      param["size"] = page.pageSize;
+      selectUIn(param).then(res => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.tableData = data.records;
+        // 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["deptid"] || "";
+      this.query = { deptid: this.deptid };
+      this.onLoad(this.page, this.query);
+    }
+  },
+};
+</script>
+<style lang="scss" scoped>
+</style>
diff --git a/src/views/statisticalQueryManagement/securityGuardDetail.vue b/src/views/statisticalQueryManagement/securityGuardDetail.vue
new file mode 100644
index 0000000..4a801a0
--- /dev/null
+++ b/src/views/statisticalQueryManagement/securityGuardDetail.vue
@@ -0,0 +1,265 @@
+<template>
+  <basic-container>
+    <avue-crud
+      :option="tableOption"
+      :table-loading="loading"
+      :data="data"
+      ref="crud"
+      v-model="form"
+      :permission="permissionList"
+      :page.sync="page"
+      :search.sync = "search"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @selection-change="selectionChange"
+      @current-change="currentChange"
+      @size-change="sizeChange"
+      @refresh-change="refreshChange"
+      @row-click="handleRowClick"
+      @on-load="onLoad"
+    >
+    </avue-crud>
+  </basic-container>
+</template>
+<script>
+import { mapGetters } from "vuex";
+import { getList } from "@/api/securityGuard/securityGuard";
+export default {
+  name: "保安员明细",
+  props: ["fwdeptId", "paramCz"],
+  data() {
+    return {
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      query: {},
+      search:{},
+      value1: "",
+      value2: "",
+      tableData: [],
+      tablePage: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      tableOption: {
+        excelBtn: true,
+        delBtn: false,
+        editBtn: false,
+        addBtn: false,
+        selection: true,
+        menu: false,
+        align: "center",
+        height: "auto",
+        calcHeight: 30,
+        tip: false,
+        searchShowBtn: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        index: true,
+        indexLabel:'序号',
+        viewBtn: true,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "保安姓名",
+            prop: "realName",
+            search: true,
+            searchSpan: 4,
+            display: false
+          },
+          {
+            label: "性别",
+            prop: "sex",
+            type: "select",
+            // search: true,
+            searchSpan: 4,
+            searchLabelWidth: 50,
+            dicData: [
+              {
+                label: "女",
+                value: 2
+              },
+              {
+                label: "男",
+                value: 1
+              }
+            ],
+            slot: true,
+            display: false
+          },
+          {
+            label: "保安公司",
+            prop: "deptName",
+            width: 300,
+            // search: true,
+            // searchSpan: 4,
+            overHidden: true,
+            slot: true,
+            display: false
+          },
+          {
+            label: "保安证编号",
+            prop: "securitynumber",
+            display: false,
+            searchSpan: 5,
+            searchLabelWidth: 110,
+            width: 180
+          },
+          {
+            label: "身份证号",
+            prop: "cardid",
+            slot: true,
+            display: false,
+            width: 180
+          },
+          {
+            label: "联系方式",
+            prop: "phone",
+            slot: true,
+            display: false,
+            width: 180
+          },
+          {
+            label: "入职时间",
+            prop: "rtime",
+            slot: true,
+            display: false,
+            width: 180
+          },
+          {
+            label: "是否在职",
+            prop: "status",
+            type: "select",
+            search: true,
+            searchSpan: 4,
+            dicData: [
+              {
+                label: "全部",
+                value: 0
+              },
+              {
+                label: "是",
+                value: 1
+              },
+              {
+                label: "否",
+                value: 2
+              }
+            ],
+            slot: true,
+            display: false
+          },
+          {
+            label: "是否持证",
+            prop: "hold",
+            type: "select",
+            search: !this.paramCz,
+            searchSpan: 4,
+            dicData: [
+              {
+                label: "是",
+                value: "1"
+              },
+              {
+                label: "否",
+                value: "2"
+              },
+              {
+                label: "已吊销",
+                value: "3"
+              }
+            ],
+            slot: true,
+            display: false
+          }
+        ]
+      },
+      typeValue: "0",
+      servicesList: [],
+      companyName: "",
+      loading: true
+    };
+  },
+  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)
+      };
+    }
+  },
+  created(){
+    this.search['status'] = 1;
+  },
+  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 = {}) {
+      params = this.search;
+      if (this.paramCz) {
+        params["hold"] = '1';
+      } else {
+        params["hold"] = params["hold"] || "";
+      }
+      let values = {
+            ...params,
+          };
+          values = {
+            ...params,
+            roleAlias: "111",
+            deptId:this.fwdeptId,
+            ...this.query,
+          };
+      this.loading = true;
+      getList(page.currentPage, page.pageSize,values).then(res => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        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);
+    }
+  },
+  mounted() {
+    // this.getLocationParams();
+  }
+};
+</script>
diff --git a/src/views/statisticalQueryManagement/securityGuardStatistics.vue b/src/views/statisticalQueryManagement/securityGuardStatistics.vue
new file mode 100644
index 0000000..25d3d94
--- /dev/null
+++ b/src/views/statisticalQueryManagement/securityGuardStatistics.vue
@@ -0,0 +1,351 @@
+<template>
+  <div>
+    <basic-container class="witerFontColorInput">
+      <avue-crud
+        :option="tableOption"
+        :table-loading="loading"
+        :data="tableData"
+        :page.sync="page"
+        :permission="permissionList"
+        ref="crud"
+        :search.sync="search"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
+        @on-load="onLoad"
+        @cell-click="handleRowClick"
+        class="rowClick"
+      >
+      <template slot="menuLeft">
+      <el-button
+              type="warning"
+              size="small"
+              plain
+              icon="el-icon-download"
+              @click="handleExportSecurityStatisInfo"
+              >导出
+            </el-button>
+      </template>
+      </avue-crud>
+      
+    </basic-container>
+    <el-dialog
+      class="tongji-class"
+      :title="dialogTitle"
+      width="80%"
+      append-to-body
+      :visible.sync="dialogShow"
+      v-if="dialogShow"
+    >
+      <companyDetails :fwdeptId="fwdeptId"></companyDetails>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import { mapGetters } from "vuex";
+import { selectLi, dictionaryList } from "@/api/statisticalQueryManagement/statisticalQueryManagement";
+import companyDetails from "./companyDetails";
+import Qs from "qs";
+import { getToken } from "@/util/auth";
+export default {
+  name: "业务情况统计",
+  components: {
+    companyDetails
+  },
+  data() {
+    return {
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+        ...this.$store.state.control.changePageSize,
+      },
+      search:{},
+      query: {},
+      value1: "",
+      value2: "",
+      tableData: [
+      ],
+      tableOption: {
+        align: "center",
+        viewBtn: true,
+        delBtn: false,
+        editBtn: false,
+        addBtn: false,
+        selection: true,
+        menu: false,
+        height: "auto",
+        menuWidth: 380,
+        calcHeight: 30,
+        tip: false,
+        searchShowBtn: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        index: true,
+        indexLabel:'序号',
+        dialogClickModal: false,
+        column: [
+          {
+            label: "公司名称",
+            prop: "deptname",
+            search: true,
+            searchSpan: 4,
+            width: 280,
+            display: false
+          },
+          {
+            label: "单位类型",
+            prop: "stats",
+            search: true,
+            searchSpan: 4,
+            display: false,
+            type: "select",
+            props: {
+              label: "dictValue",
+              value: "dictKey"
+            },
+            dicData: []
+          },
+          {
+            label: "所属辖区",
+            prop: "jurname",
+            type: "tree",
+            props: {
+              label: "title",
+              value: "value"
+            },
+            dicData: [
+            ],
+            rules: [
+              {
+                required: true,
+                message: "请选择所属辖区",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "所属辖区",
+            prop: "jurisdiction",
+            search: true,
+            searchSpan: 4,
+            type: "tree",
+            dicUrl: "/api/jurisdiction/lazy-tree",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            hide: true,
+            checkStrictly: true,
+            slot: true,
+            rules: [
+              {
+                required: false,
+                message: "请选择所属辖区",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "单位注册时间",
+            prop: "releaseTimeRange",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            searchRange: true,
+            searchSpan: 6,
+            searchLabelWidth: 120,
+            labelWidth:160,
+            hide: true,
+            addDisplay: false,
+            editDisplay: false,
+            viewDisplay: false,
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择单位注册时间",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "保安员总数",
+            prop: "num",
+            display: false
+          },
+          {
+            label: "持证上岗人数",
+            prop: "cznum",
+            display: false
+          },
+          {
+            label: "未派遣人数",
+            prop: "wpqnum",
+            display: false
+          },
+          {
+            label: "派遣人数",
+            prop: "pqnum",
+            display: false
+          },
+          {
+            label: "已采集照片人数",
+            prop: "ycjzpnum",
+            display: false
+          },
+          {
+            label: "未采集照片人数",
+            prop: "wcjzpnum",
+            display: false
+          },
+          {
+            label: "已采集指纹人数",
+            prop: "ycjzwnum",
+            display: false
+          },
+          {
+            label: "资格审查异常人数",
+            width: 150,
+            prop: "scycnum",
+            display: false
+          },
+          {
+            label: "缴纳社保人数",
+            prop: "jnsbnum",
+            display: false
+          }
+        ]
+      },
+      companyName: "",
+      loading: true,
+      dialogShow: false,
+      dialogTitle: ""
+    };
+  },
+  computed: {
+    ...mapGetters(["permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(null, false),
+        viewBtn: this.vaildData(null, false),
+        delBtn: this.vaildData(null, false),
+        editBtn: this.vaildData(null, false)
+      };
+    }
+  },
+  methods: {
+    //保安员统计信息导出
+    handleExportSecurityStatisInfo() {
+      this.$confirm("是否导出保安员统计信息数据?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        //获取查询条件
+        const { releaseTimeRange } = this.search;
+        if (releaseTimeRange) {
+          this.search["startTime"] = releaseTimeRange[0];
+          this.search["endTime"] = releaseTimeRange[1];
+        }
+        var data = {
+          jurisdiction: this.search.jurisdiction,
+          stats: this.search.stats,
+          deptid: this.search.deptname,
+          startTime: this.search.startTime,
+          endTime: this.search.endTime,
+        };
+        // console.log(data,123);
+        //序列号url形式,用&拼接
+        data = Qs.stringify(data);
+        window.open(
+          `/api/information/export-security-statis-info?${
+            this.website.tokenHeader
+          }=${getToken()}&` + data
+        );
+      });
+    },
+    getDictionaryList() {
+      dictionaryList().then(res => {
+        if (res.data.code === 200) {
+          this.tableOption.column.forEach(item => {
+            if (item.label == "单位类型") {
+              item.dicData = res.data.data;
+            }
+          });
+        }
+      });
+    },
+    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 = {}) {
+      params = this.search;
+      this.loading = true;
+      let param = {};
+      param["jurisdiction"] = params["jurisdiction"] || "";
+      param["deptid"] = params["deptname"] || "";
+      param["stats"] = params["stats"] || "";
+      param["current"] = page.currentPage;
+      param["size"] = page.pageSize;
+      const { releaseTimeRange } = this.query;
+      let values = {
+          ...param,
+        };
+        if (releaseTimeRange) {
+          values = {
+            ...param,
+            startTime: releaseTimeRange[0],
+            endTime: releaseTimeRange[1],
+            ...this.query,
+          };
+          values.releaseTimeRange = null;
+        }
+      selectLi(values).then(res => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.tableData = data.records;
+        this.loading = false;
+      });
+    },
+    handleRowClick(row, column, cell, event) {
+      if (column.label == "保安员总数") {
+        this.dialogTitle = "保安员明细";
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+      } else {
+        this.dialogShow = false;
+      }
+    }
+  },
+  mounted() {
+    this.getDictionaryList();
+  }
+};
+</script>
+<style lang="scss" scoped>
+/deep/ .rowClick .el-table__row:hover td:nth-child(6) {
+  cursor: pointer;
+}
+</style>
diff --git a/src/views/trainApply/index.vue b/src/views/trainApply/index.vue
index 75ba9b1..13066f5 100644
--- a/src/views/trainApply/index.vue
+++ b/src/views/trainApply/index.vue
@@ -676,7 +676,7 @@
     },
   },
   methods: {
-    //保安员证信息导出
+    //报名信息导出
     handleApplyInfoExport() {
       this.$confirm("是否导出考试报名信息数据?", "提示", {
         confirmButtonText: "确定",
diff --git a/src/views/trainExam/index.vue b/src/views/trainExam/index.vue
index 9dd8291..35120b9 100644
--- a/src/views/trainExam/index.vue
+++ b/src/views/trainExam/index.vue
@@ -34,28 +34,20 @@
             @row-update="questionBankRowUpdate"
             @row-del="questionBankRowDel"
           >
-            <!-- 自定义按钮 -->
-            <!-- <template slot="menuLeft">
-                            <el-button type="danger"
-                                       size="mini"
-                                       icon="el-icon-delete"
-                                       plain
-                                       @click="handleDelete">新增
-                            </el-button>
-                            <el-button type="danger"
-                                       size="mini"
-                                       icon="el-icon-delete"
-                                       plain
-                                       @click="handleDelete">删除
-                            </el-button>
-                            <el-button type="danger"
-                                       size="mini"
-                                       icon="el-icon-delete"
-                                       plain
-                                       @click="handleDelete">导出
-                            </el-button>
-                        </template> -->
-
+            <template slot-scope="{ row }" slot="auditStatus">
+              <el-tag class="dtype">
+                {{
+                  row.auditStatus == 1
+                    ? "审核通过"
+                    : row.auditStatus == 2
+                    ? "审核不通过"
+                    : "待审核"
+                }}
+                <i class="zc" v-if="row.auditStatus == 1"></i>
+                <i class="yj" v-if="row.auditStatus == 2"></i>
+                <i class="gz" v-if="row.auditStatus == 3"></i>
+              </el-tag>
+            </template>
             <template slot="menuLeft">
               <el-button
                 style="display: none"
@@ -65,6 +57,10 @@
                 @click="questionBankHandleDelete"
                 >删 除
               </el-button>
+              <!--图例 components-->
+              <span>
+                <Legend :datas="datalistLIU"></Legend>
+              </span>
             </template>
 
             <template slot-scope="{ row }" slot="examStatus">
@@ -92,7 +88,15 @@
               <el-button
                 type="text"
                 size="mini"
-                icon="el-icon-folder-checked"
+                icon="el-icon-circle-check"
+                v-if="permission.trainExam_confirm"
+                @click="handleConfirm(row)"
+                >考试名单确认
+              </el-button>
+              <el-button
+                type="text"
+                size="mini"
+                icon="el-icon-search"
                 v-if="permission.trainExam_index_examScoreViews"
                 @click="examScoreViews(row)"
                 >成绩查看
@@ -128,10 +132,15 @@
   remove,
   update,
   updateAudit,
+  applyConfirm,
 } from "@/api/examapi/examination";
 import { auditColumn } from "./data";
 import { mapGetters } from "vuex";
+import Legend from "@/components/liu-legend/Legend";
 export default {
+  components: {
+    Legend,
+  },
   data() {
     var validatePass = (rule, value, callback) => {
       console.log(value);
@@ -149,6 +158,21 @@
 
     return {
       form: {},
+      //legend-liu数据
+      datalistLIU: [
+        {
+          color: "#29C093",
+          text: "审核通过",
+        },
+        {
+          color: "#F34A4A",
+          text: "审核不通过",
+        },
+        {
+          color: "#F48F57",
+          text: "待审核",
+        },
+      ],
       Audit: {},
       dialogFormVisible: false,
       optionAudit: {
@@ -176,14 +200,12 @@
         delBtn: false,
         editBtn: true,
         addBtn: false,
-        selection: true,
+        // selection: true,
         menu: true,
         // 导出按钮
         excelBtn: false,
         viewBtn: false,
-
         // title: '题库',
-
         align: "center",
         height: "auto",
         calcHeight: 80,
@@ -195,7 +217,7 @@
         //dialogType: 'drawer',
         dialogClickModal: false,
         // 操作栏宽度
-        menuWidth: 280,
+        menuWidth: 260,
         labelWidth: 140,
         ...this.$store.state.control.clearOtherBut,
         column: [
@@ -225,27 +247,8 @@
             ],
             span: 24,
             width: 200,
+            overHidden: true,
           },
-          // {
-          //     label: "试卷分数",
-          //     prop: "totalScore",
-          //     slot: true,
-          //     // 表单新增时是否禁止
-          //     addDisabled: false,
-          //     // 表单新增时是否可见
-          //     addDisplay: true,
-          //     // 表单新增时是否为查看模式
-          //     addDetail: false,
-          //     // 表单编辑时是否禁止
-          //     editDisabled: false,
-          //     // 表单编辑时是否可见
-          //     editDisplay: true,
-          //     // 表单编辑时是否为查看模式
-          //     editDetail: false,
-
-          //     rules: [{ validator: validatePass, required: true, trigger: 'blur' }],
-          //     width: 100
-          // },
           {
             label: "考试时间",
             prop: "startTime",
@@ -277,7 +280,6 @@
             label: "考试开始时间",
             prop: "startTime",
             type: "datetime",
-            // span: 24,
             format: "yyyy-MM-dd HH:mm",
             valueFormat: "yyyy-MM-dd HH:mm",
             // 表单新增时是否禁止
@@ -292,7 +294,7 @@
             editDisplay: false,
             // 表单编辑时是否为查看模式
             editDetail: false,
-            width: 140,
+            width: 120,
           },
           {
             label: "考试开始截止时间",
@@ -313,28 +315,29 @@
             editDisplay: true,
             // 表单编辑时是否为查看模式
             editDetail: false,
-            width: 140,
+            width: 120,
           },
-          {
-            label: "申请人",
-            prop: "realName",
-            slot: true,
-            // 表单新增时是否禁止
-            addDisabled: true,
-            // 表单新增时是否可见
-            addDisplay: false,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: false,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            // hide: true,
-            display: false,
-            width: 80,
-          },
+
+          // {
+          //   label: "申请人",
+          //   prop: "realName",
+          //   slot: true,
+          //   // 表单新增时是否禁止
+          //   addDisabled: true,
+          //   // 表单新增时是否可见
+          //   addDisplay: false,
+          //   // 表单新增时是否为查看模式
+          //   addDetail: false,
+          //   // 表单编辑时是否禁止
+          //   editDisabled: true,
+          //   // 表单编辑时是否可见
+          //   editDisplay: false,
+          //   // 表单编辑时是否为查看模式
+          //   editDetail: false,
+          //   // hide: true,
+          //   display: false,
+          //   width: 70,
+          // },
           {
             label: "申请人所属学校",
             prop: "deptName",
@@ -353,6 +356,7 @@
             editDetail: false,
             // hide: true,
             display: false,
+            overHidden: true,
           },
           {
             label: "备注",
@@ -412,7 +416,7 @@
             editDisplay: false,
             // 表单编辑时是否为查看模式
             editDetail: false,
-            width: 80,
+            width: 70,
           },
           {
             label: "考试人数",
@@ -432,13 +436,13 @@
             editDisplay: false,
             // 表单编辑时是否为查看模式
             editDetail: false,
-            width: 80,
+            width: 70,
           },
           {
             label: "申请时间",
             prop: "creatorDate",
             type: "datetime",
-            width: 150,
+            width: 130,
             editDisplay: false,
             addDisplay: false,
             format: "yyyy-MM-dd HH:mm:ss",
@@ -455,7 +459,7 @@
             label: "审核时间",
             prop: "auditTime",
             type: "datetime",
-            width: 150,
+            width: 130,
             editDisplay: false,
             addDisplay: false,
             format: "yyyy-MM-dd HH:mm:ss",
@@ -498,13 +502,64 @@
                 value: 3,
               },
             ],
-            width: 80,
+            width: 110,
           },
           {
             label: "审核明细",
             editDisplay: false,
             addDisplay: false,
             prop: "auditDetail",
+            width: 90,
+            overHidden: true,
+          },
+          {
+            label: "距考试开始时间",
+            editDisplay: false,
+            addDisplay: false,
+            prop: "deadline",
+            width: 110,
+            overHidden: true,
+          },
+          {
+            label: "考试名单确认人",
+            prop: "confirmUserName",
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            // hide: true,
+            display: false,
+            width: 80,
+          },
+          {
+            label: "确认时间",
+            prop: "confirmTime",
+            type: "datetime",
+            // span: 24,
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            width: 130,
           },
         ],
       },
@@ -694,6 +749,24 @@
           });
         });
     },
+    handleConfirm(row) {
+      this.$confirm("已确认当前考试申请人员名单无误?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          row["confirmUser"] = this.userInfo.Id;
+          return applyConfirm(row);
+        })
+        .then(() => {
+          this.questionBankOnLoad(this.questionBankPage);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
     questionBankHandleDelete() {
       if (this.questionBankSelectionList.length === 0) {
         this.$message.warning("请选择至少一条数据");
@@ -725,4 +798,49 @@
 </script>
 
 <style lang="scss" scoped>
+.dtype {
+  width: 100%;
+  padding-left: 0px;
+}
+
+.dx {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 6px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #dfdfdf;
+}
+.zc {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 4px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #29c093;
+}
+.yj {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 4px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #f34a4a;
+}
+.gz {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 4px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #f48f57;
+}
 </style>
diff --git a/src/views/trainExam/modifiedGrades.vue b/src/views/trainExam/modifiedGrades.vue
index 4817ab8..cca4f13 100644
--- a/src/views/trainExam/modifiedGrades.vue
+++ b/src/views/trainExam/modifiedGrades.vue
@@ -32,7 +32,7 @@
             ref="questionBankCrud"
             :page.sync="questionBankPage"
             @on-load="questionBankOnLoad"
-            @selection-change="questionBankSelectionChange"
+            @selection-change="selectionChange"
             @search-change="questionBankSearchChange"
             @search-reset="questionBankSearchReset"
             @current-change="questionBankCurrentChange"
@@ -40,20 +40,35 @@
             @row-update="questionBankRowUpdate"
             @refresh-change="refreshChange"
           >
+            <template slot-scope="{ row }" slot="status">
+              <el-tag class="dtype">
+                {{
+                  row.status == 2
+                    ? "审核通过"
+                    : row.status == 3
+                    ? "审核不通过"
+                    : "待审核"
+                }}
+                <i class="zc" v-if="row.status == 2"></i>
+                <i class="yj" v-if="row.status == 3"></i>
+                <i class="gz" v-if="row.status == 1"></i>
+              </el-tag>
+            </template>
             <!-- 自定义按钮 -->
             <template slot="menuLeft">
-              <!-- <el-button type="danger"
-                                       size="mini"
-                                       icon="el-icon-delete"
-                                       plain
-                                       @click="handleDelete">新增
-                            </el-button> -->
-              <!-- <el-button type="danger"
-                                       size="mini"
-                                       icon="el-icon-delete"
-                                       plain
-                                       @click="handleDelete">删除
-                            </el-button> -->
+              <el-button
+                type="primary"
+                size="small"
+                plain
+                v-if="checks"
+                icon="el-icon-collection-tag"
+                @click="handleBatchAudit"
+                >批量审批
+              </el-button>
+              <!--图例 components-->
+              <span>
+                <Legend :datas="datalistLIU"></Legend>
+              </span>
             </template>
 
             <template slot-scope="{ type, size, row }" slot="menu">
@@ -86,18 +101,128 @@
         @submit="submit"
       ></avue-form>
     </el-dialog>
+    <el-dialog
+      title="批量审批"
+      append-to-body
+      :visible.sync="dialogBatchAudit"
+      width="900px"
+      @close="closeDialog"
+    >
+    <avue-form
+      ref="formBatchAudit"
+      v-model="batchAudit"
+      :option="optionBatchAudit"
+      @reset-change="emptytChange"
+      @submit="submitBatchAudit"
+    ></avue-form>
+    </el-dialog>
   </el-row>
 </template>
 
 <script>
-import { getList, update, applyAudit } from "@/api/examapi/modifiedGrades";
+import {
+  getList,
+  update,
+  applyAudit,
+  batchAudit,
+} from "@/api/examapi/modifiedGrades";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
+import Legend from "@/components/liu-legend/Legend";
 export default {
+  components: {
+    Legend,
+  },
   data() {
     return {
+      //legend-liu数据
+      datalistLIU: [
+        {
+          color: "#29C093",
+          text: "审核通过",
+        },
+        {
+          color: "#F34A4A",
+          text: "审核不通过",
+        },
+        {
+          color: "#F48F57",
+          text: "待审核",
+        },
+      ],
       Audit: {},
       dialogFormVisible: false,
+      dialogBatchAudit: false,
+      batchAudit: {
+        number: 0,
+      },
+      optionBatchAudit: {
+        height: "auto",
+        filterBtn: true,
+        calcHeight: 30,
+        dialogWidth: 950,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true, //liu
+        index: true,
+        stripe: true,
+        viewBtn: true,
+        selection: false,
+        excelBtn: false,
+        menuWidth: 380,
+        dialogClickModal: false,
+        ...this.$store.state.control.clearOtherBut,
+        column: [
+          {
+            label: "所选保安人数",
+            prop: "number",
+            span: 24,
+            value: 0,
+            disabled: true,
+            labelWidth: 110,
+          },
+          {
+            label: "审核状态",
+            search: true,
+            searchSpan: 5,
+            span: 24,
+            prop: "status",
+            slot: true,
+            editDisplay: false,
+            addDisplay: false,
+            type: "select",
+            rules: [
+              {
+                required: true,
+                message: "请选择审核类型",
+                trigger: "blur",
+              },
+            ],
+            dicData: [
+              {
+                label: "待审核",
+                value: 1,
+              },
+              {
+                label: "审核通过",
+                value: 2,
+              },
+              {
+                label: "审核不通过",
+                value: 3,
+              },
+            ],
+          },
+          {
+            label: "审核明细",
+            span: 24,
+            type: "textarea",
+            prop: "auditDetail",
+          },
+        ],
+      },
+      choiceList: [],
       optionAudit: {
         height: "auto",
         calcHeight: 30,
@@ -165,17 +290,16 @@
         delBtn: false,
         editBtn: true,
         addBtn: false,
-        selection: false,
         check: false,
-        // 导出按钮
-        // excelBtn: true,
-        // excelBtnText: "成绩导出",
-        viewBtn: true,
+        checks: false,
+        selection: true,
+        reserveSelection: true,
+        tip: false,
+        viewBtn: false,
         // title: '成绩',
         align: "center",
         height: "auto",
         calcHeight: 80,
-        tip: false,
         searchShow: true,
         searchMenuSpan: 4,
         index: true,
@@ -184,7 +308,7 @@
         dialogClickModal: false,
         // 操作栏宽度
         menu: true,
-        menuWidth: 220,
+        menuWidth: 160,
         labelWidth: 120,
         ...this.$store.state.control.clearOtherBut,
         column: [
@@ -216,7 +340,7 @@
               },
             ],
             width: 210,
-            // overHidden:true,
+            overHidden:true,
           },
 
           {
@@ -280,7 +404,8 @@
                 trigger: "blur",
               },
             ],
-            width: 230,
+            width: 200,
+            overHidden:true
           },
 
           {
@@ -352,9 +477,9 @@
           {
             label: "申请人所在单位",
             prop: "applyUnitName",
-            search:true,
-            searchLabelWidth:120,
-            searchSpan:4,
+            search: true,
+            searchLabelWidth: 120,
+            searchSpan: 4,
             slot: true,
             // 表单新增时是否禁止
             addDisabled: false,
@@ -367,8 +492,9 @@
             // 表单编辑时是否可见
             editDisplay: true,
             // 表单编辑时是否为查看模式
+            width:200,
             editDetail: false,
-            overHidden:true,
+            overHidden: true,
           },
           {
             label: "申请理由",
@@ -386,14 +512,16 @@
             editDisplay: true,
             // 表单编辑时是否为查看模式
             editDetail: false,
+            minWidth:70,
+            overHidden:true
           },
 
           {
             label: "修改申请时间",
             prop: "createTime",
             type: "date",
-            format: "yyyy-MM-dd",
-            valueFormat: "yyyy-MM-dd",
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd  HH:mm:ss",
             slot: true,
             searchSpan: 4,
             // 表单新增时是否禁止
@@ -409,15 +537,15 @@
             // 表单编辑时是否为查看模式
             editDetail: false,
             viewDisplay: false,
-            width: 120,
+            width: 130,
           },
 
           {
             label: "审核时间",
             prop: "auditTime",
             type: "date",
-            format: "yyyy-MM-dd",
-            valueFormat: "yyyy-MM-dd",
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd  HH:mm:ss",
             slot: true,
             searchSpan: 4,
             // 表单新增时是否禁止
@@ -433,7 +561,7 @@
             // 表单编辑时是否为查看模式
             editDetail: false,
             viewDisplay: false,
-            width: 120,
+            width: 130,
           },
 
           {
@@ -469,7 +597,7 @@
             editDisplay: true,
             // 表单编辑时是否为查看模式
             editDetail: false,
-            width: 96,
+            width: 110,
           },
 
           {
@@ -514,8 +642,16 @@
         this.check = false;
       }
     }
+    //批量审批
+    //判断是否为超级管理员
+    if (this.userInfo.role_name == "administrator") {
+      this.checks = true;
+      this.questionBankOption.tip = true
+    }
   },
-  mounted() {},
+  mounted() {
+    
+  },
   computed: {
     ...mapGetters(["userInfo", "permission"]),
     permissionList() {
@@ -604,7 +740,27 @@
         }
       );
     },
-
+    //成绩修改批量审核
+    handleBatchAudit() {
+      if (this.choiceList.length == 0) {
+        this.$message({
+          message: "未选择考试的人员",
+          type: "warning",
+        });
+        return;
+      }
+      this.dialogBatchAudit = true;
+      this.batchAudit.number = this.choiceList.length;
+    },
+    selectionChange(list) {
+      // this.selectionList = list;
+      this.choiceList = [];
+      for (let k in list) {
+        this.choiceList.push({
+          id: list[k].id,
+        });
+      }
+    },
     questionBankOnLoad(page, params = {}) {
       //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
       var that = this;
@@ -643,11 +799,11 @@
 
     questionBankSelectionClear() {
       this.questionBankSelectionList = [];
-      this.$refs.questionBankCrud.toggleSelection();
+      // this.$refs.questionBankCrud.toggleSelection();
     },
-    questionBankSelectionChange(list) {
-      this.questionBankSelectionList = list;
-    },
+    // questionBankSelectionChange(list) {
+    //   this.questionBankSelectionList = list;
+    // },
     questionBankSearchChange(params, done) {
       this.questionBankQuery = params;
       this.questionBankPage.currentPage = 1;
@@ -684,7 +840,43 @@
         }
       );
     },
-
+    //批量审批
+    submitBatchAudit(row, done, loading) {
+      var that = this;
+      let cho = this.choiceList;
+      let str = "";
+      for (let k in cho) {
+        str += cho[k].id;
+        if (k != cho.length - 1) {
+          str += ",";
+        }
+      }
+      const data = {
+        ids: str,
+        status: row.status,
+        auditDetail: row.auditDetail,
+        auditUser: this.userInfo.Id,
+      };
+      //提交申请
+      batchAudit(data).then(
+        () => {
+          this.questionBankOnLoad(this.page);
+          that.$refs.formBatchAudit.resetFields();
+          that.dialogBatchAudit = false;
+          this.$message({
+            type: "success",
+            message: "操作成功",
+          });
+          //清除选项
+          that.$refs.questionBankCrud.toggleSelection();
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
     refreshChange() {
       this.questionBankOnLoad(this.questionBankPage, this.questionBankQuery);
     },
@@ -696,4 +888,50 @@
 .morpheus-box {
   position: relative;
 }
+
+.dtype {
+  width: 100%;
+  padding-left: 0px;
+}
+
+.dx {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 6px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #dfdfdf;
+}
+.zc {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 4px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #29c093;
+}
+.yj {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 4px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #f34a4a;
+}
+.gz {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 4px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #f48f57;
+}
 </style>
diff --git a/src/views/trainExam/performance.vue b/src/views/trainExam/performance.vue
index 38c608c..abdbd72 100644
--- a/src/views/trainExam/performance.vue
+++ b/src/views/trainExam/performance.vue
@@ -25,6 +25,7 @@
             :permission="permissionList"
             ref="questionBankCrud"
             :page.sync="questionBankPage"
+            @sort-change="sortChange"
             @on-load="questionBankOnLoad"
             @selection-change="questionBankSelectionChange"
             @search-change="questionBankSearchChange"
@@ -123,6 +124,14 @@
                 :size="size"
                 :type="type"
                 >申请修改成绩</el-button
+              >
+              <el-button
+                icon="el-icon-edit"
+                v-if="row.isPaper==6"
+                @click="securityPaperApply(row)"
+                :size="size"
+                :type="type"
+                >补证申请</el-button
               >
             </template>
           </avue-crud>
@@ -274,7 +283,7 @@
 } from "@/api/examapi/performance";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
-import { securityApply } from "@/api/accreditationRecords/accreditationRecords";
+import { securityApply,add} from "@/api/accreditationRecords/accreditationRecords";
 import Qs from "qs";
 export default {
   components: {
@@ -347,7 +356,7 @@
         selection: true,
         reserveSelection: true,
         selectable: (row) => {
-          if (row.qualified != "0") {
+          if (row.qualified != "0" || row.isPaper==6) {
             return false;
           } else {
             return true;
@@ -366,7 +375,7 @@
         dialogClickModal: false,
         // 操作栏宽度
         menu: true,
-        menuWidth: 295,
+        menuWidth: 330,
         labelWidth: 120,
         ...this.$store.state.control.clearOtherBut,
 
@@ -488,6 +497,7 @@
             prop: "candidateNo",
             search: true,
             searchSpan: 4,
+            hide:true,
             slot: true,
             // 表单新增时是否禁止
             addDisabled: false,
@@ -515,6 +525,7 @@
             prop: "avatar",
             type: "upload",
             listType: "picture-img",
+            width:60,
           },
           {
             label: "所属公司",
@@ -600,7 +611,7 @@
             slot: true,
             search: true,
             searchSpan: 3,
-            width: 60,
+            width: 80,
             dicData: [
               {
                 label: "发布成绩",
@@ -639,6 +650,7 @@
             label: "理论成绩",
             prop: "theoryGrade",
             slot: true,
+            sortable: true,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -657,6 +669,7 @@
             label: "实操成绩",
             prop: "learnGrade",
             slot: true,
+            sortable: true,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -678,6 +691,7 @@
             label: "总成绩",
             prop: "allGrade",
             slot: true,
+            sortable: true,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -774,6 +788,32 @@
             editDetail: false,
           },
           {
+            label: "是否制证",
+            prop: "isPaper",
+            type: "select",
+            search: true,
+            width: 70,
+            searchSpan: 3,
+            addDisplay: false,
+            editDisplay: false,
+            // hide: true,
+            display: false,
+            dicData: [
+              {
+                label: "全部",
+                value: 10,
+              },
+              {
+                label: "已制证",
+                value: 6,
+              },
+              {
+                label: "未制证",
+                value: 7,
+              },
+            ],
+          },
+          {
             label: "有无照片",
             prop: "isAvatar",
             type: "select",
@@ -805,6 +845,8 @@
       questionBankSearch: {},
       questionBankLoading: true,
       questionBankData: [],
+      sort:"",
+      sortName:"",
       questionBankPage: {
         pageSize: 10,
         currentPage: 1,
@@ -952,6 +994,27 @@
     closezhengjian() {
       this.dialogVisiblezhengjian = false;
     },
+    //排序
+    sortChange(value) {
+      if(value.order=="ascending"){
+        this.sort = "asc";
+      }
+      if(value.order=="descending"){
+        this.sort = "desc";
+      }
+      this.sortName = value.prop;
+      //字段匹配
+      if(value.prop=="theoryGrade"){
+        this.sortName = "theory_grade";
+      }
+      if(value.prop=="learnGrade"){
+        this.sortName = "learn_grade";
+      }
+      if(value.prop=="allGrade"){
+        this.sortName = "all_grade";
+      }
+      this.questionBankOnLoad(this.questionBankPage);
+    },
     questionBankOnLoad(page, params = {}) {
       //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
       var that = this;
@@ -970,6 +1033,12 @@
           }
           that.questionBankLoading = false;
           params["examType"] = 2;
+          if(this.sort){
+            params["sort"] = this.sort;
+          }
+          if(this.sortName){
+            params["sortName"] = this.sortName;
+          }
           getList(
             page.currentPage,
             page.pageSize,
@@ -978,6 +1047,9 @@
             const data = res.data.data;
 
             data.records.forEach((item) => {
+              if (item.isPaper == null || item.isPaper == -1) {
+                item.isPaper = "";
+              }
               if (item.theoryGrade == null && item.learnGrade == -1) {
                 item.qualified = "";
               }
@@ -998,6 +1070,34 @@
             that.questionBankSelectionClear();
           });
         });
+      });
+    },
+    //补证申请
+    securityPaperApply(row,done,loading){
+      this.$confirm("当前保安员已制证,确定要继续申请制证?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        const data = {
+          createUser:this.userInfo.user_id,
+          type:2,
+          userId:row.userId
+        }
+        add(data).then(
+          () => {
+            this.questionBankOnLoad(this.questionBankPage);
+            this.$message({
+              type: "success",
+              message: "操作成功!",
+            });
+            done();
+          },
+          (error) => {
+            window.console.log(error);
+            loading();
+          }
+        );
       });
     },
     //缺考标记
@@ -1084,6 +1184,8 @@
 
     questionBankSelectionClear() {
       this.questionBankSelectionList = [];
+      this.sort = "";
+      this.sortName = "";
       // this.$refs.questionBankCrud.toggleSelection();
     },
     questionBankSelectionChange(list) {
@@ -1170,6 +1272,7 @@
           securityName: this.questionBankSearch.securityName,
           examName: this.questionBankSearch.examName,
           isAvatar: this.questionBankSearch.isAvatar,
+          isPaper: this.questionBankSearch.isPaper,
         };
         //导出
         if (
diff --git a/src/views/trainExam/singleperformance.vue b/src/views/trainExam/singleperformance.vue
index 893ddc5..2eaa39a 100644
--- a/src/views/trainExam/singleperformance.vue
+++ b/src/views/trainExam/singleperformance.vue
@@ -23,6 +23,7 @@
             :table-loading="questionBankLoading"
             :data="questionBankData"
             ref="questionBankCrud"
+            @sort-change="sortChange"
             :permission="permissionList"
             :page.sync="questionBankPage"
             @on-load="questionBankOnLoad"
@@ -149,6 +150,8 @@
         // title: '成绩',
         align: "center",
         height: "auto",
+        sort:"",
+      sortName:"",
         calcHeight: 80,
         tip: false,
         searchShow: true,
@@ -396,6 +399,10 @@
                 label: "考试中",
                 value: 3,
               },
+              {
+                label: "缺考",
+                value: 4,
+              },
             ],
             width: 90,
             // 表单新增时是否禁止
@@ -422,6 +429,7 @@
             label: "理论成绩",
             prop: "theoryGrade",
             slot: true,
+            sortable: true,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -440,6 +448,7 @@
             label: "实操成绩",
             prop: "learnGrade",
             slot: true,
+            sortable: true,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -461,6 +470,7 @@
             label: "总成绩",
             prop: "allGrade",
             slot: true,
+            sortable: true,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -489,7 +499,7 @@
             slot: true,
             search: true,
             searchSpan: 4,
-            width: 110,
+            // width: 110,
             width: 68,
             dicData: [
               {
@@ -570,6 +580,27 @@
         query: obj,
       });
     },
+    //排序
+    sortChange(value) {
+      if(value.order=="ascending"){
+        this.sort = "asc";
+      }
+      if(value.order=="descending"){
+        this.sort = "desc";
+      }
+      this.sortName = value.prop;
+      //字段匹配
+      if(value.prop=="theoryGrade"){
+        this.sortName = "theory_grade";
+      }
+      if(value.prop=="learnGrade"){
+        this.sortName = "learn_grade";
+      }
+      if(value.prop=="allGrade"){
+        this.sortName = "all_grade";
+      }
+      this.questionBankOnLoad(this.questionBankPage);
+    },
     questionBankOnLoad(page, params = {}) {
       //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
       var that = this;
@@ -593,6 +624,12 @@
           }
           that.questionBankLoading = false;
           params["examType"] = 2;
+          if(this.sort){
+            params["sort"] = this.sort;
+          }
+          if(this.sortName){
+            params["sortName"] = this.sortName;
+          }
           getList(
             page.currentPage,
             page.pageSize,
diff --git a/src/views/traincompany/index.vue b/src/views/traincompany/index.vue
index 6ac501e..2998845 100644
--- a/src/views/traincompany/index.vue
+++ b/src/views/traincompany/index.vue
@@ -334,6 +334,8 @@
         },
         (error) => {
           window.console.log(error);
+          this.$refs.formTrainApply.resetFields();
+          this.dialogDisable = false;
         }
       );
     },
diff --git a/src/views/trainingRegistration/data.js b/src/views/trainingRegistration/data.js
index 65fd128..15554f3 100644
--- a/src/views/trainingRegistration/data.js
+++ b/src/views/trainingRegistration/data.js
@@ -19,228 +19,228 @@
 var w = 160,
     s = 12;
 export var column = [{
-    label: "学校名称",
-    prop: "trainingUnitId",
-    dicUrl: "/api/blade-system/dept/lazy-tree-type?parentId=1418458374477549569",
-    cascaderItem: ["trainExamId"],
-    props: {
-        label: "title",
-        value: "id"
+        label: "学校名称",
+        prop: "trainingUnitId",
+        dicUrl: "/api/blade-system/dept/lazy-tree-type?parentId=1418458374477549569",
+        cascaderItem: ["trainExamId"],
+        props: {
+            label: "title",
+            value: "id"
+        },
+        type: "select",
+        rules: [{
+            required: true,
+            message: "请输入学校名称",
+            trigger: "blur"
+        }],
+        searchSpan: 4,
+        searchLabelWidth: 110,
+        width: 200,
+    }, {
+        label: "姓名",
+        prop: "userId",
+        type: "select",
+        hide: true,
+        dicUrl: "/api/blade-user/page-security-unit?deptId={{key}}",
+        props: {
+            label: "realName",
+            value: "id"
+        },
+        searchSpan: 4,
+        rules: [{
+            required: true,
+            message: "请输入姓名",
+            trigger: "blur"
+        }],
+    }, {
+        label: "姓名",
+        prop: "realName",
+        search: true,
+        searchLabelWidth: 56,
+        editDisplay: false,
+        addDisplay: false,
+        searchSpan: 3,
+    }, {
+        label: "身份证号",
+        prop: "idCardNo",
+        rules: [{
+            required: true,
+            message: "请输入身份证号",
+            trigger: "blur"
+        }],
+        editDisplay: false,
+        addDisplay: false,
+        width: 160
+    }, {
+        label: "准考证号",
+        prop: "candidateNo",
+        rules: [{
+            required: true,
+            message: "请输入准考证号",
+            trigger: "blur"
+        }],
+        editDisplay: false,
+        addDisplay: false,
+        width: 160
     },
-    type: "select",
-    rules: [{
-        required: true,
-        message: "请输入学校名称",
-        trigger: "blur"
-    }],
-    searchSpan: 4,
-    searchLabelWidth: 110,
-    width: 200,
-}, {
-    label: "姓名",
-    prop: "userId",
-    type: "select",
-    hide: true,
-    dicUrl: "/api/blade-user/page-security-unit?deptId={{key}}",
-    props: {
-        label: "realName",
-        value: "id"
-    },
-    searchSpan: 4,
-    rules: [{
-        required: true,
-        message: "请输入姓名",
-        trigger: "blur"
-    }],
-}, {
-    label: "姓名",
-    prop: "realName",
-    search: true,
-    searchLabelWidth: 56,
-    editDisplay: false,
-    addDisplay: false,
-    searchSpan: 3,
-}, {
-    label: "身份证号",
-    prop: "idCardNo",
-    rules: [{
-        required: true,
-        message: "请输入身份证号",
-        trigger: "blur"
-    }],
-    editDisplay: false,
-    addDisplay: false,
-    width: 160
-}, {
-    label: "准考证号",
-    prop: "candidateNo",
-    rules: [{
-        required: true,
-        message: "请输入准考证号",
-        trigger: "blur"
-    }],
-    editDisplay: false,
-    addDisplay: false,
-    width: 160
-},
-// {
-//     label: "电话",
-//     prop: "phone",
-//     // hide: true,
-//     rules: [{
-//         required: true,
-//         message: "请输入电话",
-//         trigger: "blur"
-//     }],
-//     editDisplay: false,
-//     addDisplay: false,
-//     width: 110,
-// },
-{
-    label: "企业名称",
-    prop: "deptId",
-    // width: 70,
-    // search: true,
-    // searchSpan: 4,
-    dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
-    cascaderItem: ["userId"],
-    props: {
-        label: "title",
-        value: "id"
-    },
-    // search: true,
-    type: "select",
-    hide: true,
-    rules: [{
-        required: true,
-        message: "请输入企业名称",
-        trigger: "blur"
-    }],
-    overHidden: true
-}, {
-    label: "企业名称",
-    prop: "deptName",
-    // hide: true,
-    search: true,
-    searchLabelWidth: 85,
-    searchSpan: 5,
-    rules: [{
-        required: true,
-        message: "请输入企业名称",
-        trigger: "blur"
-    }],
+    // {
+    //     label: "电话",
+    //     prop: "phone",
+    //     // hide: true,
+    //     rules: [{
+    //         required: true,
+    //         message: "请输入电话",
+    //         trigger: "blur"
+    //     }],
+    //     editDisplay: false,
+    //     addDisplay: false,
+    //     width: 110,
+    // },
+    {
+        label: "企业名称",
+        prop: "deptId",
+        // width: 70,
+        // search: true,
+        // searchSpan: 4,
+        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+        cascaderItem: ["userId"],
+        props: {
+            label: "title",
+            value: "id"
+        },
+        // search: true,
+        type: "select",
+        hide: true,
+        rules: [{
+            required: true,
+            message: "请输入企业名称",
+            trigger: "blur"
+        }],
+        overHidden: true
+    }, {
+        label: "企业名称",
+        prop: "deptName",
+        // hide: true,
+        search: true,
+        searchLabelWidth: 85,
+        searchSpan: 5,
+        rules: [{
+            required: true,
+            message: "请输入企业名称",
+            trigger: "blur"
+        }],
 
-},
-{
-    label: "考试名称",
-    prop: "trainExamName",
-    width: 220,
-},
-{
-    label: "考试证件",
-    prop: "applyCard"
-},
-{
-    label: "审核状态",
-    search: true,
-    searchLabelWidth: 110,
-    type: "select",
-    searchSpan: 4, searchLabelWidth: 85,
-    prop: "auditStatus",
-    searchValue: 4,
-    dicData: [{
-        label: '全部',
-        value: 0,
     },
     {
-        label: '审核通过',
-        value: 1,
+        label: "考试名称",
+        prop: "trainExamName",
+        width: 220,
     },
     {
-        label: '审核不通过',
-        value: 2,
+        label: "考试证件",
+        prop: "applyCard"
     },
     {
-        label: '已提交审核',
-        value: 3,
+        label: "审核状态",
+        search: true,
+        type: "select",
+        searchSpan: 4,
+        prop: "auditStatus",
+        searchValue: 4,
+        dicData: [{
+                label: '全部',
+                value: 0,
+            },
+            {
+                label: '审核通过',
+                value: 1,
+            },
+            {
+                label: '审核不通过',
+                value: 2,
+            },
+            {
+                label: '已提交审核',
+                value: 3,
+            },
+            {
+                label: '未提交审核',
+                value: 4,
+            }
+        ],
+        props: {
+            label: "label",
+            value: "value"
+        },
+        editDisplay: false,
+        addDisplay: false,
+        width: 100,
     },
     {
-        label: '未提交审核',
-        value: 4,
-    }
-    ],
-    props: {
-        label: "label",
-        value: "value"
-    },
-    editDisplay: false,
-    addDisplay: false,
-    width: 100,
-},
-{
-    label: "报名状态",
-    search: true,
-    type: "select",
-    searchSpan: 4,
-    prop: "cancel",
-    searchValue: 1, searchLabelWidth: 85,
-    dicData: [{
-        label: '全部',
-        value: 0,
+        label: "报名状态",
+        search: true,
+        type: "select",
+        searchSpan: 4,
+        prop: "cancel",
+        searchValue: 1,
+        searchLabelWidth: 85,
+        dicData: [{
+                label: '全部',
+                value: 0,
+            },
+            {
+                label: '已报名',
+                value: 1,
+            },
+            {
+                label: '已取消',
+                value: 2,
+            }
+        ],
+        props: {
+            label: "label",
+            value: "value"
+        },
+        editDisplay: false,
+        addDisplay: false,
+        width: 100,
     },
     {
-        label: '已报名',
-        value: 1,
+        label: "考试状态",
+        search: true,
+        type: "select",
+        searchSpan: 4,
+        prop: "isExam",
+        searchValue: 1,
+        dicData: [{
+                label: '全部',
+                value: 0,
+            },
+            {
+                label: '未考试',
+                value: 1,
+            },
+            {
+                label: '考试结束',
+                value: 2,
+            },
+            {
+                label: '考试中',
+                value: 3,
+            },
+            {
+                label: '缺考',
+                value: 4,
+            }
+        ],
+        props: {
+            label: "label",
+            value: "value"
+        },
+        editDisplay: false,
+        addDisplay: false,
+        width: 100,
     },
-    {
-        label: '已取消',
-        value: 2,
-    }
-    ],
-    props: {
-        label: "label",
-        value: "value"
-    },
-    editDisplay: false,
-    addDisplay: false,
-    width: 100,
-},
-{
-    label: "考试状态",
-    search: true,
-    type: "select",
-    searchSpan: 4,
-    prop: "isExam",
-    searchValue: 1,
-    dicData: [{
-        label: '全部',
-        value: 0,
-    },
-    {
-        label: '未考试',
-        value: 1,
-    },
-    {
-        label: '考试结束',
-        value: 2,
-    },
-    {
-        label: '考试中',
-        value: 3,
-    },
-    {
-        label: '缺考',
-        value: 4,
-    }
-    ],
-    props: {
-        label: "label",
-        value: "value"
-    },
-    editDisplay: false,
-    addDisplay: false,
-    width: 100,
-},
     //  {
     //     label: "确认截止时间",
     //     prop: "remainingTime",
diff --git a/src/views/trainingRegistration/index.vue b/src/views/trainingRegistration/index.vue
index e688c72..b7c5ae3 100644
--- a/src/views/trainingRegistration/index.vue
+++ b/src/views/trainingRegistration/index.vue
@@ -53,6 +53,14 @@
           @click="handleImport"
           >批量导入
         </el-button>
+        <el-button
+          type="warning"
+          size="small"
+          plain
+          icon="el-icon-download"
+          @click="handleApplyInfoExport"
+          >报名信息导出
+        </el-button>
       </template>
       <template slot-scope="{ type, size, row }" slot="menu">
         <el-button
@@ -133,6 +141,9 @@
 } from "@/api/trainingRegistration/trainingRegistration";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
+import Qs from "qs";
+import { getToken } from "@/util/auth";
+
 export default {
   data() {
     return {
@@ -382,6 +393,47 @@
     // }
   },
   methods: {
+    //报名信息导出
+    handleApplyInfoExport() {
+      this.$confirm("是否导出报名信息数据?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        //获取查询条件
+        // const { releaseTimeRange } = this.questionBankSearch;
+        // if (releaseTimeRange) {
+        //   this.questionBankSearch["startTime"] = releaseTimeRange[0];
+        //   this.questionBankSearch["endTime"] = releaseTimeRange[1];
+        // }
+        var data = {
+          cancel: this.search.cancel,
+          auditStatus: this.search.auditStatus,
+          deptName: this.search.deptName,
+          isExam: this.search.isExam,
+          realName: this.search.realName,
+        };
+        if (
+          this.userInfo.role_name == "保安公司管理员" ||
+          this.userInfo.role_name == "保安" ||
+          this.userInfo.role_name == "分公司管理员"
+        ) {
+          //如果是保安公司管理员
+          data["deptId"] = this.userInfo.dept_id;
+        }
+        if (this.userInfo.role_name == "培训公司管理员") {
+          //如果是培训公司管理员
+          data["trainingUnitId"] = this.userInfo.dept_id;
+        }
+        //序列号url形式,用&拼接
+        data = Qs.stringify(data);
+        window.open(
+          `/api/trainingRegistration/export-apply-info?${
+            this.website.tokenHeader
+          }=${getToken()}&` + data
+        );
+      });
+    },
     //准考证查看
     handlePrint(row) {
       var obj = row;
diff --git a/src/views/workreport/workreport.vue b/src/views/workreport/workreport.vue
index 2b3e5b4..5dd2525 100644
--- a/src/views/workreport/workreport.vue
+++ b/src/views/workreport/workreport.vue
@@ -1,9 +1,6 @@
 <template>
   <basic-container
-    :class="[
-      'workreply',
-      $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '',
-    ]"
+    :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']"
   >
     <avue-crud
       :option="option"

--
Gitblit v1.9.3