liuyg
2021-12-25 ef46e4b78e81418a831d4f7f21eb24d2fd4d35e1
Merge branch 'master' of http://192.168.0.105:10010/r/zhba_enterprises
40 files modified
17 files added
15218 ■■■■■ changed files
package.json 3 ●●●● patch | view | raw | blame | history
public/img/securityInfo/security.png patch | view | raw | blame | history
public/img/top/driver.png patch | view | raw | blame | history
public/img/top/heard.png patch | view | raw | blame | history
public/img/top/heard1.png patch | view | raw | blame | history
public/securityInfo.html 324 ●●●● patch | view | raw | blame | history
public/securityInfos1.html 218 ●●●●● patch | view | raw | blame | history
src/api/accreditationRecords/accreditationRecords.js 10 ●●●●● patch | view | raw | blame | history
src/api/examapi/examination.js 8 ●●●●● patch | view | raw | blame | history
src/api/examapi/modifiedGrades.js 8 ●●●●● patch | view | raw | blame | history
src/api/securityUnit/securityUnit.js 276 ●●●● patch | view | raw | blame | history
src/api/statisticalQueryManagement/statisticalQueryManagement.js 88 ●●●●● patch | view | raw | blame | history
src/components/liu-legend/Legend.vue 54 ●●●●● patch | view | raw | blame | history
src/lang/zh.js 218 ●●●● patch | view | raw | blame | history
src/page/index/top/index.vue 9 ●●●●● patch | view | raw | blame | history
src/page/index/top/top-drive.vue 8 ●●●● patch | view | raw | blame | history
src/page/index/top/top-userSManual.vue 7 ●●●● patch | view | raw | blame | history
src/router/views/index.js 2048 ●●●● patch | view | raw | blame | history
src/styles/element-ui.scss 25 ●●●● patch | view | raw | blame | history
src/views/accreditationRecords/accreditationRecordsPaper.vue 112 ●●●● patch | view | raw | blame | history
src/views/dispatch/dispatch.vue 133 ●●●● patch | view | raw | blame | history
src/views/dispatch/dispatchChildoperable.vue 149 ●●●●● patch | view | raw | blame | history
src/views/securityEquipment/car.vue 37 ●●●● patch | view | raw | blame | history
src/views/securityEquipment/equipments.vue 36 ●●●● patch | view | raw | blame | history
src/views/securityEquipment/gun.js 4 ●●● patch | view | raw | blame | history
src/views/securityEquipment/gun.vue 10 ●●●● patch | view | raw | blame | history
src/views/securityGuard/data.js 1261 ●●●● patch | view | raw | blame | history
src/views/securityGuard/securityGuard.vue 142 ●●●● patch | view | raw | blame | history
src/views/securityGuard/sfzJS.js 86 ●●●● patch | view | raw | blame | history
src/views/securityUnit/armedEscort.vue 521 ●●●●● patch | view | raw | blame | history
src/views/securityUnit/data.js 221 ●●●●● patch | view | raw | blame | history
src/views/securityUnit/localCompany.vue 531 ●●●●● patch | view | raw | blame | history
src/views/securityUnit/securityTraining.vue 534 ●●●●● patch | view | raw | blame | history
src/views/securityUnit/selfRecruitedSecurityGuard.vue 514 ●●●●● patch | view | raw | blame | history
src/views/securityUnit/transRegionalcompany.vue 512 ●●●●● patch | view | raw | blame | history
src/views/securityUnitChild/data.js 418 ●●●●● patch | view | raw | blame | history
src/views/securityUnitChild/index copy.vue 1182 ●●●●● patch | view | raw | blame | history
src/views/securityUnitChild/index.vue 1425 ●●●●● patch | view | raw | blame | history
src/views/securityUnitChild/manager.vue 337 ●●●●● patch | view | raw | blame | history
src/views/securityUnitChild/shareholder.vue 383 ●●●●● patch | view | raw | blame | history
src/views/securityUnitChild/social.vue 33 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/businessStatistics.vue 423 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/businessStatisticsDetail.vue 241 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/businessStatisticsFwdq.vue 221 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/businessStatisticsPq.vue 219 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/companyDetails.vue 396 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/securityGuardDetail.vue 265 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/securityGuardStatistics.vue 351 ●●●●● patch | view | raw | blame | history
src/views/trainApply/index.vue 2 ●●● patch | view | raw | blame | history
src/views/trainExam/index.vue 268 ●●●● patch | view | raw | blame | history
src/views/trainExam/modifiedGrades.vue 320 ●●●● patch | view | raw | blame | history
src/views/trainExam/performance.vue 111 ●●●●● patch | view | raw | blame | history
src/views/trainExam/singleperformance.vue 39 ●●●●● patch | view | raw | blame | history
src/views/traincompany/index.vue 2 ●●●●● patch | view | raw | blame | history
src/views/trainingRegistration/data.js 418 ●●●● patch | view | raw | blame | history
src/views/trainingRegistration/index.vue 52 ●●●●● patch | view | raw | blame | history
src/views/workreport/workreport.vue 5 ●●●● patch | view | raw | blame | history
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"
    ]
  }
}
}
public/img/securityInfo/security.png
public/img/top/driver.png
public/img/top/heard.png
public/img/top/heard1.png
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>
public/securityInfos1.html
New file
@@ -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>
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',
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
    })
}
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
    })
}
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
        // }
    })
}
src/api/statisticalQueryManagement/statisticalQueryManagement.js
New file
@@ -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
    });
};
src/components/liu-legend/Legend.vue
New file
@@ -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>
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: '关闭所有'
  }
}
}
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"
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>
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>
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')
        }]
    },
]
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;
}
}
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>
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;
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;
      }
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(
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: {
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"
        }]
    }
    },
]
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(
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",
            }
        ],
    },
]
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>
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;
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;
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
    // }
]
]
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() {},
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;
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;
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: {
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",
src/views/securityUnitChild/index copy.vue
New file
@@ -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>
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>
src/views/securityUnitChild/manager.vue
New file
@@ -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>
src/views/securityUnitChild/shareholder.vue
New file
@@ -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>
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;
src/views/statisticalQueryManagement/businessStatistics.vue
New file
@@ -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>
src/views/statisticalQueryManagement/businessStatisticsDetail.vue
New file
@@ -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>
src/views/statisticalQueryManagement/businessStatisticsFwdq.vue
New file
@@ -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>
src/views/statisticalQueryManagement/businessStatisticsPq.vue
New file
@@ -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>
src/views/statisticalQueryManagement/companyDetails.vue
New file
@@ -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>
src/views/statisticalQueryManagement/securityGuardDetail.vue
New file
@@ -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>
src/views/statisticalQueryManagement/securityGuardStatistics.vue
New file
@@ -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>
src/views/trainApply/index.vue
@@ -676,7 +676,7 @@
    },
  },
  methods: {
    //保安员证信息导出
    //报名信息导出
    handleApplyInfoExport() {
      this.$confirm("是否导出考试报名信息数据?", "提示", {
        confirmButtonText: "确定",
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>
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>
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 (
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,
src/views/traincompany/index.vue
@@ -334,6 +334,8 @@
        },
        (error) => {
          window.console.log(error);
          this.$refs.formTrainApply.resetFields();
          this.dialogDisable = false;
        }
      );
    },
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",
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;
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"