From b6d70fd9329b1c5fee415713e7ca5d9dcab66526 Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Wed, 02 Mar 2022 09:01:06 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/zhba_enterprises

---
 src/views/securityUnit/localCompany.vue                      |   18 
 src/views/wel/index.vue                                      |    2 
 src/views/accreditationRecords/accreditationRecordsPaper.vue |    6 
 src/views/securityGuard/securityGuard.vue                    |    7 
 public/securityInfo.html                                     |  231 -----
 src/api/trainingRegistration/trainingRegistration.js         |    9 
 src/views/trainApply/index.vue                               |  322 ++++---
 src/api/licenseApproval/recordlegalperson.js                 |   62 +
 src/views/system/user.vue                                    |   28 
 src/views/securityEquipment/gun.vue                          |   17 
 src/views/trainingRegistration/index.vue                     |   39 
 src/views/desk/notification.vue                              |   12 
 src/views/securityUnitChild/index copy.vue                   |    2 
 src/api/contract/contract.js                                 |   39 
 src/views/dispatch/dispatchChildoperable.vue                 |   16 
 src/views/securityGuard/securityGuard指纹自动识别(集成VUE报错)-9.vue   |    2 
 src/views/licenseApproval/changeLegalPerson.vue              |  596 +++++++++++++
 src/views/talk/talk.vue                                      |    6 
 src/views/licenseApproval/securityPermit.vue                 |    7 
 src/views/contract/contract.vue                              |  379 ++++++++
 src/views/registerUnit/registerUnit.vue                      |    4 
 src/views/licenseApproval/branchOffice.vue                   |   17 
 src/views/securityEquipment/car.vue                          |   17 
 src/views/system/user copy.vue                               |    2 
 src/views/trainingRegistration/data.js                       |   34 
 public/securityInfo copy.html                                |   37 
 src/views/workreport/workreport.vue                          |    2 
 src/views/accreditationRecords/accreditationRecords.vue      |    4 
 src/views/recruitmentManagement/index.vue                    |   16 
 src/views/securityUnit/selfRecruitedSecurityGuard.vue        |   17 
 src/views/trainExam/singleperformance.vue                    |    4 
 src/views/desk/notice.vue                                    |    4 
 src/views/dispatch/dispatch.vue                              |   17 
 src/views/securityEquipment/equipments.vue                   |   17 
 src/views/licenseApproval/cancellationOfFiling.vue           |   15 
 src/views/securityUnit/transRegionalcompany.vue              |   18 
 src/views/licenseApproval/securityTraining.vue               |   17 
 src/views/licenseApproval/column.js                          |  424 +++++++++
 src/views/licenseApproval/securityGuard.vue                  |   19 
 src/views/securityGuard/securityGuardOnce copy.vue           |    2 
 src/views/securityGuard/securityGuardOnce.vue                |    2 
 src/views/licenseApproval/crossRegion.vue                    |   21 
 src/views/trainExam/modifiedGrades.vue                       |    4 
 src/views/securityUnit/securityTraining.vue                  |   18 
 44 files changed, 2,037 insertions(+), 495 deletions(-)

diff --git a/public/securityInfo copy.html b/public/securityInfo copy.html
index f5f68ed..893fe88 100644
--- a/public/securityInfo copy.html
+++ b/public/securityInfo copy.html
@@ -22,7 +22,6 @@
             width: 100%;
             height: 100%;
         }
-        
         .top {
             width: 100%;
             margin-top: 15px;
@@ -106,9 +105,6 @@
             right: 1.8rem;
             font-size: 0.95rem;
         }
-        .content-data-red {
-            color:red;
-        }
     </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>
@@ -160,13 +156,6 @@
             if (data.securitynumber.indexOf("赣") != -1) {
                 fzjg = "南昌市公安局"
             }
-
-            var classRed = ""
-            //是否吊classRed销
-            if(data.examinationType=="1"){
-                classRed = "content-data-red";
-                data.securitynumber = "已吊销";
-            }
             var str = `<div class="top">
             <div class="avatar">
                 <img src="img/securityInfo/security.png">
@@ -208,7 +197,7 @@
 
             <div class="row-content">
                 <span class="title">保安证编号:</span>
-                <span class="content-data ${classRed}">&nbsp;&nbsp;&nbsp;&nbsp;${data.securitynumber}</span>
+                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.securitynumber}</span>
             </div>
 
             <div class="row-content">
@@ -217,18 +206,18 @@
             </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 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>`
 
diff --git a/public/securityInfo.html b/public/securityInfo.html
index 0657953..44e7aa9 100644
--- a/public/securityInfo.html
+++ b/public/securityInfo.html
@@ -22,30 +22,6 @@
             width: 100%;
             height: 100%;
         }
-        <!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%;
@@ -269,213 +245,6 @@
                 <div class="avatar-1">
                     <img src="${data.avatar}">
                 </div>
-            </div>
-
-        </div>`
-
-            var dom = $('.securityInfo');
-            dom.empty();
-            dom.append(str);
-        });
-    </script>
-</body>
-
-</html>
-        .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="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> -->
-    </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=赣洪202115423').then(function(res) {
-
-            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 fzjg = "";
-            if (data.securitynumber.indexOf("赣") != -1) {
-                fzjg = "南昌市公安局"
-            }
-            var str = `<div class="top">
-            <div class="avatar">
-                <img src="img/securityInfo/security.png">
-            </div>
-        </div>
-        <div class="content">
-            <div class="row-content">
-                <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 class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.sex == 1 ? '男' : data.sex == 2 ? '女' : ''}</span>
-            </div>
-
-            <div class="row-content">
-                <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 class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${data.age}</span>
-            </div>
-
-            <div class="row-content">
-                <span class="title">发证机关:</span>
-                <span class="content-data">&nbsp;&nbsp;&nbsp;&nbsp;${fzjg}</span>
-            </div>
-
-            <div class="row-content">
-                <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 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>`
diff --git a/src/api/contract/contract.js b/src/api/contract/contract.js
new file mode 100644
index 0000000..79e7cf9
--- /dev/null
+++ b/src/api/contract/contract.js
@@ -0,0 +1,39 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+    return request({
+        url: '/api/contract/page',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size,
+        }
+    })
+}
+
+export const add = (row) => {
+    return request({
+        url: '/api/contract/save',
+        method: 'post',
+        data: row
+    })
+}
+
+export const update = (row) => {
+    return request({
+        url: '/api/contract/update',
+        method: 'post',
+        data: row
+    })
+}
+
+export const remove = (ids) => {
+    return request({
+        url: '/api/contract/remove',
+        method: 'post',
+        params: {
+            ids,
+        }
+    })
+}
\ No newline at end of file
diff --git a/src/api/licenseApproval/recordlegalperson.js b/src/api/licenseApproval/recordlegalperson.js
new file mode 100644
index 0000000..9004791
--- /dev/null
+++ b/src/api/licenseApproval/recordlegalperson.js
@@ -0,0 +1,62 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/recordlegalperson/page',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const getListold = (current, size, params) => {
+  return request({
+    url: '/api/recordlegalperson/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const getDetail = (id) => {
+  return request({
+    url: '/api/recordlegalperson/detail',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}
+
+export const remove = (ids) => {
+  return request({
+    url: '/api/recordlegalperson/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+
+export const add = (row) => {
+  return request({
+    url: '/api/recordlegalperson/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/recordlegalperson/update',
+    method: 'post',
+    data: row
+  })
+}
+
diff --git a/src/api/trainingRegistration/trainingRegistration.js b/src/api/trainingRegistration/trainingRegistration.js
index 6c00b00..b003c76 100644
--- a/src/api/trainingRegistration/trainingRegistration.js
+++ b/src/api/trainingRegistration/trainingRegistration.js
@@ -80,4 +80,13 @@
         method: 'post',
         data: params
     })
+}
+
+
+export const vipSign = (row) => {
+    return request({
+        url: '/api/trainingRegistration/vipSign',
+        method: 'post',
+        data: row
+    })
 }
\ No newline at end of file
diff --git a/src/views/accreditationRecords/accreditationRecords.vue b/src/views/accreditationRecords/accreditationRecords.vue
index f0180b0..8cfa3fd 100644
--- a/src/views/accreditationRecords/accreditationRecords.vue
+++ b/src/views/accreditationRecords/accreditationRecords.vue
@@ -911,7 +911,7 @@
         //如果是培训公司管理员
         params["createUser"] = this.userInfo.Id;
       }
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         //如果是公安管理员
         params["jurisdiction"] = this.userInfo.jurisdiction;
       }
@@ -972,7 +972,7 @@
           //如果是培训公司管理员
           data["createUser"] = this.userInfo.Id;
         }
-        if (this.userInfo.role_name == "公安管理员") {
+        if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
           //如果是公安管理员
           data["jurisdiction"] = this.userInfo.jurisdiction;
         }
diff --git a/src/views/accreditationRecords/accreditationRecordsPaper.vue b/src/views/accreditationRecords/accreditationRecordsPaper.vue
index 140c76e..5a96126 100644
--- a/src/views/accreditationRecords/accreditationRecordsPaper.vue
+++ b/src/views/accreditationRecords/accreditationRecordsPaper.vue
@@ -1028,7 +1028,7 @@
         //如果是培训公司管理员
         params["createUser"] = this.userInfo.Id;
       }
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         //如果是公安管理员
         params["jurisdiction"] = this.userInfo.jurisdiction;
       }
@@ -1090,7 +1090,7 @@
           //如果是培训公司管理员
           data["createUser"] = this.userInfo.Id;
         }
-        if (this.userInfo.role_name == "公安管理员") {
+        if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
           //如果是公安管理员
           data["jurisdiction"] = this.userInfo.jurisdiction;
         }
@@ -1138,7 +1138,7 @@
           //如果是培训公司管理员
           data["createUser"] = this.userInfo.Id;
         }
-        if (this.userInfo.role_name == "公安管理员") {
+        if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
           //如果是公安管理员
           data["jurisdiction"] = this.userInfo.jurisdiction;
         }
diff --git a/src/views/contract/contract.vue b/src/views/contract/contract.vue
new file mode 100644
index 0000000..fb16e24
--- /dev/null
+++ b/src/views/contract/contract.vue
@@ -0,0 +1,379 @@
+<template>
+  <basic-container
+    :class="[
+      'securityUnit',
+      $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize',
+      $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : ''
+    ]"
+  >
+    <avue-crud
+      class="tablesss"
+      :option="option"
+      :data="data"
+      :page.sync="page"
+      ref="crud"
+      :permission="permissionList"
+      @on-load="onLoad"
+      :table-loading="loading"
+      @row-save="rowSave"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @row-update="rowUpdate"
+      @row-del="rowDel"
+      @selection-change="selectionChange"
+      @refresh-change="refreshChange"
+    >
+      <template slot="menuLeft">
+        <el-button
+          type="danger"
+          size="small"
+          plain
+          icon="el-icon-delete"
+          v-if="permission.contract_delete"
+          @click="handleDelete"
+          >删 除
+        </el-button>
+      </template>
+    </avue-crud>
+  </basic-container>
+</template>
+
+<script>
+import {
+  getList,
+  add,
+  update,
+  remove
+} from "@/api/contract/contract";
+import { mapGetters } from "vuex";
+import { getToken } from "@/util/auth";
+export default {
+  data() {
+    return {
+      loading: true,
+      selectionList: [],
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+        ...this.$store.state.control.changePageSize
+      },
+      query: {},
+      data: [],
+      option: {
+        index: true,
+        tip:false,
+        addBtn: true,
+        searchSize: "mini",
+        searchMenuSpan: 6,
+        height: 583,
+        menuWidth: 180,
+        border: true,
+        align: "center",
+        selection: true,
+        column: [
+          {
+            label: "合同名称",
+            prop: "name",
+            search: true,
+            searchSpan: 4,
+            labelWidth: 145,
+            minWidth: 160,
+            span:24,
+            rules: [
+              {
+                required: true,
+                message: "请选择合同名称",
+                trigger: "click"
+              }
+            ],
+            overHidden: true
+          },
+          
+          {
+            label: "合同甲方",
+            prop: "partya",
+            span: 12,
+            labelWidth: 145,
+            disabled: false,
+            rules: [
+              {
+                required: true,
+                message: "请输入合同甲方",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "合同乙方",
+            prop: "partyb",
+            span: 12,
+            labelWidth: 145,
+            disabled: false,
+            rules: [
+              {
+                required: true,
+                message: "请输入合同乙方",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "合同金额",
+            prop: "money",
+            span: 12,
+            labelWidth: 145,
+            disabled: false,
+            rules: [
+              {
+                required: true,
+                message: "请输入合同金额",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "签订日期",
+            prop: "signedTime",
+            labelWidth: 145,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            rules: [
+              {
+                required: true,
+                message: "请选择签订日期",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "纸质合同图片",
+            prop: "urls",
+            labelWidth: 145,
+            type: "upload",
+            dataType: "string",
+            span: 24,
+            limit: 5,
+            listType: "picture-card",
+            tip: "只能上传jpg/png文件,最多上传5张",
+            propsHttp: {
+              res: "data",
+              url: "url"
+            },
+            action: "/api/blade-resource/oss/endpoint/put-files"
+          }
+        ],
+        ...this.$store.state.control.clearOtherBut
+      }
+    };
+  },
+  created() {
+  },
+  computed: {
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.contract_add, false),
+        viewBtn: this.vaildData(this.permission.contract_view, false),
+        delBtn: this.vaildData(this.permission.contract_delete, false),
+        editBtn: this.vaildData(this.permission.contract_edit, false)
+      };
+    },
+    ids() {
+      let ids = [];
+      this.selectionList.forEach(ele => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
+    },
+  },
+  mounted() {
+    this.$store.commit("setWindowSizeHeightAdd");
+  },
+  methods: {
+    sizeChange(val) {
+      this.page1.currentPage = 1;
+      this.page1.pageSize = val;
+      this.onLoad(this.page, this.query);
+    },
+    currentChange(val) {
+      this.page1.currentPage = val;
+      // this.getData();
+      this.onLoad(this.page, this.query);
+    },
+    rowSave(form, done, loading) {
+      add(form).then(res => {
+        if (res.data.success) {
+          this.$message({
+            message: "操作成功",
+            type: "success"
+          });
+          this.refreshChange();
+          done();
+        } else {
+          this.$message({
+            message: "操作失败",
+            type: "warning"
+          });
+          done();
+        }
+      });
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    rowUpdate(row, index, done, loading) {
+      update(row).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done();
+        },
+        error => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    rowDel(row) {
+      this.$confirm(
+        "确定删除当前合同信息数据?",
+        {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }
+      )
+        .then(() => {
+          console.log(row);
+          return remove(row.id);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+        });
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定批量将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          return remove(this.ids).then(res => {
+            this.refreshChange();
+          });
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.$refs.crudrec.toggleSelection();
+        })
+        .catch(res => {});
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      if(this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警" || this.userInfo.role_name == "administrator"){
+        params["jurisdiction"] = this.userInfo.jurisdiction;
+      }
+      this.loading = true;
+      getList(
+        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;
+        window.localStorage.setItem("danweidataS", JSON.stringify(this.data));
+        this.$store.commit("setWindowSizeHeightAdd");
+        this.loading = false;
+      });
+    }
+  },
+};
+</script>
+
+<style lang="scss">
+.securityUnit {
+  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;
+// }
+
+.lod {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  background-color: rgba($color: #000000, $alpha: 0.5);
+  padding: 100px 0 0 0;
+  z-index: 1500 !important;
+  display: flex;
+  // align-items: center;
+  justify-content: center;
+  .trees {
+    z-index: 501 !important;
+    position: absolute;
+    width: 15%;
+    top: 100px;
+    left: 0;
+    // display: none;
+  }
+  .lod-in {
+    width: 70%;
+    height: auto;
+    background-color: transparent;
+
+    // padding: 10px 0 0 0;
+  }
+
+  .el-collapse-item {
+    padding-top: 15px !important;
+  }
+}
+.el-collapse {
+  border-top: 1px solid transparent !important;
+}
+.rowClickSelf {
+  &:hover {
+    cursor: pointer;
+  }
+}
+</style>
diff --git a/src/views/desk/notice.vue b/src/views/desk/notice.vue
index ddcf661..4cf4bd3 100644
--- a/src/views/desk/notice.vue
+++ b/src/views/desk/notice.vue
@@ -406,10 +406,12 @@
           this.userInfo.role_name == "装备管理员"
         ) {
           params["deptId"] = this.userInfo.dept_id;
+        }else{
+          params["jurisdiction"] = this.userInfo.jurisdiction;
         }
 
         const { releaseTimeRange } = this.query;
-        params["jurisdiction"] = this.jurisdiction;
+        
         params["type"] = 1;
         let values = {
           ...params
diff --git a/src/views/desk/notification.vue b/src/views/desk/notification.vue
index 4797569..2b3c7c6 100644
--- a/src/views/desk/notification.vue
+++ b/src/views/desk/notification.vue
@@ -52,7 +52,7 @@
           type="danger"
           size="small"
           icon="el-icon-delete"
-          v-if="permission.notice_delete"
+          v-if="permission.notification_delete"
           plain
           @click="handleDelete"
           >删 除
@@ -66,7 +66,7 @@
         <el-button
           :size="size"
           :type="type"
-          v-if="permission.notice_upload"
+          v-if="permission.notification_upload"
           @click="handleUploadPage(row)"
           >附件上传
         </el-button>
@@ -259,10 +259,10 @@
     ...mapGetters(["userInfo", "permission"]),
     permissionList() {
       return {
-        addBtn: this.vaildData(this.permission.notice_add, false),
-        viewBtn: this.vaildData(this.permission.notice_view, false),
-        delBtn: this.vaildData(this.permission.notice_delete, false),
-        editBtn: this.vaildData(this.permission.notice_edit, false)
+        addBtn: this.vaildData(this.permission.notification_add, false),
+        viewBtn: this.vaildData(this.permission.notification_view, false),
+        delBtn: this.vaildData(this.permission.notification_delete, false),
+        editBtn: this.vaildData(this.permission.notification_edit, false)
       };
     },
     ids() {
diff --git a/src/views/dispatch/dispatch.vue b/src/views/dispatch/dispatch.vue
index 5055743..7e44d0f 100644
--- a/src/views/dispatch/dispatch.vue
+++ b/src/views/dispatch/dispatch.vue
@@ -14,6 +14,7 @@
       :data="data"
       :page.sync="page"
       ref="crudrec"
+      :permission="permissionList"
       @on-load="onLoad"
       :table-loading="loading"
       @row-save="rowSave"
@@ -31,6 +32,7 @@
           size="small"
           plain
           icon="el-icon-delete"
+          v-if="permission.dispatch_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -40,6 +42,7 @@
           size="small"
           plain
           icon="el-icon-upload2"
+          v-if="permission.dispatch_import"
           @click="handleImport"
           >批量导入
         </el-button>
@@ -502,7 +505,7 @@
       //赋值
       column.value = that.userInfo.dept_id;
       this.useifid = this.userInfo.dept_id;
-    } else if (roleName == "公安管理员" || roleName == "administrator") {
+    } else if (roleName == "公安管理员" || roleName == "administrator" || roleName == "民警") {
       var columnDept = that.findObject(that.option.column, "deptId");
       columnDept.dicUrl =
         "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
@@ -516,7 +519,15 @@
     }
   },
   computed: {
-    ...mapGetters(["userInfo"]),
+    ...mapGetters(["permission", "userInfo"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.dispatch_add, false),
+        viewBtn: this.vaildData(this.permission.dispatch_view, true),
+        delBtn: this.vaildData(this.permission.dispatch_delete, false),
+        editBtn: this.vaildData(this.permission.dispatch_edit, false)
+      };
+    },
     ids() {
       let ids = [];
       this.selectionList.forEach(ele => {
@@ -706,7 +717,7 @@
       if (this.useifid != 266) {
         values["deptId"] = this.useifid;
       }
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         values["jurisdiction"] = that.userInfo.jurisdiction;
       }
       getdata(
diff --git a/src/views/dispatch/dispatchChildoperable.vue b/src/views/dispatch/dispatchChildoperable.vue
index 7cfd404..b07e07c 100644
--- a/src/views/dispatch/dispatchChildoperable.vue
+++ b/src/views/dispatch/dispatchChildoperable.vue
@@ -12,6 +12,7 @@
       :data="data"
       :page.sync="page"
       ref="crudrec1"
+      :permission="permissionList"
       v-model="form"
       :table-loading="loading"
       :before-open="beforeOpen"
@@ -40,6 +41,7 @@
 } from "@/api/dispatch/dispatch";
 import { update, getSecurityDispatcherTree } from "@/api/system/user";
 import { mapState } from "vuex";
+import { mapGetters } from "vuex";
 
 export default {
   data() {
@@ -320,7 +322,7 @@
       column.value = that.userInfo.dept_id;
       this.useifid = this.userInfo.dept_id;
       this.initData(2);
-    } else if (roleName == "公安管理员" || roleName == "administrator") {
+    } else if (roleName == "公安管理员" || roleName == "administrator" || roleName == "民警") {
       var columnDept = that.findObject(that.option.column, "deptId");
       columnDept.dicUrl =
         "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
@@ -336,7 +338,15 @@
     }
   },
   computed: {
-    // },
+    ...mapGetters(["permission", "userInfo"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.dispatchChildoperable_add, false),
+        viewBtn: this.vaildData(this.permission.dispatchChildoperable_view, true),
+        delBtn: this.vaildData(this.permission.dispatchChildoperable_delete, false),
+        editBtn: this.vaildData(this.permission.dispatchChildoperable_edit, false)
+      };
+    },
     ids1() {
       let ids1 = [];
       this.selectionList1.forEach(ele => {
@@ -556,7 +566,7 @@
         values["deptId"] = this.useifid;
       }
       //公安局进入
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         values["jurisdiction"] = this.userInfo.jurisdiction;
       }
       getdata1(
diff --git a/src/views/licenseApproval/branchOffice.vue b/src/views/licenseApproval/branchOffice.vue
index 26918a2..80584ff 100644
--- a/src/views/licenseApproval/branchOffice.vue
+++ b/src/views/licenseApproval/branchOffice.vue
@@ -37,7 +37,7 @@
           size="small"
           icon="el-icon-delete"
           plain
-          v-if="permission.permit_delete"
+          v-if="permission.licenseApproval_branchOffice_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -48,6 +48,7 @@
           :size="size"
           :type="type"
           class="zhengJian-icon"
+          v-if="permission.licenseApproval_branchOffice_upload"
           @click.stop="handleCredentials(row)"
           >附件</el-button
         >
@@ -55,7 +56,7 @@
           icon="el-icon-edit"
           :size="size"
           :type="type"
-          v-if="row.type == '2' && userData == '0'"
+          v-if="row.type == '2' && userData == '0' && permission.licenseApproval_branchOffice_audit"
           @click.stop="rowDel(row)"
           >备案审批
         </el-button>
@@ -64,7 +65,7 @@
           :size="size"
           :type="type"
           @click.stop="viewLicense(row)"
-          v-if="row.type == '0'"
+          v-if="row.type == '0' && permission.licenseApproval_branchOffice_print"
           >打印备案证
         </el-button>
       </template>
@@ -223,10 +224,10 @@
     ...mapGetters(["permission", "userInfo"]),
     permissionList() {
       return {
-        addBtn: this.vaildData(this.permission.permit_add, false),
-        viewBtn: this.vaildData(this.permission.permit_view, true),
-        delBtn: this.vaildData(this.permission.permit_delete, false),
-        editBtn: this.vaildData(this.permission.permit_edit, false)
+        addBtn: this.vaildData(this.permission.licenseApproval_branchOffice_add, false),
+        viewBtn: this.vaildData(this.permission.licenseApproval_branchOffice_view, true),
+        delBtn: this.vaildData(this.permission.licenseApproval_branchOffice_delete, false),
+        editBtn: this.vaildData(this.permission.licenseApproval_branchOffice_edit, false)
       };
     },
     ids() {
@@ -248,7 +249,7 @@
         return;
       }
       var gonganj = "";
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         let test = /派出所$/g;
         if (test.test(this.userInfo.list.name)) {
           gonganj = "2";
diff --git a/src/views/licenseApproval/cancellationOfFiling.vue b/src/views/licenseApproval/cancellationOfFiling.vue
index 6fb4d03..4ab6af5 100644
--- a/src/views/licenseApproval/cancellationOfFiling.vue
+++ b/src/views/licenseApproval/cancellationOfFiling.vue
@@ -37,7 +37,7 @@
           size="small"
           icon="el-icon-delete"
           plain
-          v-if="permission.permit_delete"
+          v-if="permission.licenseApproval_cancellationOfFiling_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -48,6 +48,7 @@
           :size="size"
           :type="type"
           class="zhengJian-icon"
+          v-if="permission.licenseApproval_cancellationOfFiling_upload"
           @click.stop="handleCredentials(row)"
           >附件
         </el-button>
@@ -56,7 +57,7 @@
           :size="size"
           :type="type"
           @click.stop="rowDel(row)"
-          v-if="row.type == '2' && userData == '0'"
+          v-if="row.type == '2' && userData == '0' && permission.licenseApproval_cancellationOfFiling_audit"
           >撤销备案审批
         </el-button>
       </template>
@@ -162,10 +163,10 @@
     ...mapGetters(["permission", "userInfo"]),
     permissionList() {
       return {
-        addBtn: this.vaildData(this.permission.permit_add, false),
-        viewBtn: this.vaildData(this.permission.permit_view, true),
-        delBtn: this.vaildData(this.permission.permit_delete, false),
-        editBtn: this.vaildData(this.permission.permit_edit, false)
+        addBtn: this.vaildData(this.permission.licenseApproval_cancellationOfFiling_add, false),
+        viewBtn: this.vaildData(this.permission.licenseApproval_cancellationOfFiling_view, true),
+        delBtn: this.vaildData(this.permission.licenseApproval_cancellationOfFiling_delete, false),
+        editBtn: this.vaildData(this.permission.licenseApproval_cancellationOfFiling_edit, false)
       };
     },
     ids() {
@@ -187,7 +188,7 @@
         return;
       }
       var gonganj = "";
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         let test = /派出所$/g;
         if (test.test(this.userInfo.list.name)) {
           gonganj = "2";
diff --git a/src/views/licenseApproval/changeLegalPerson.vue b/src/views/licenseApproval/changeLegalPerson.vue
new file mode 100644
index 0000000..4291d57
--- /dev/null
+++ b/src/views/licenseApproval/changeLegalPerson.vue
@@ -0,0 +1,596 @@
+/* * @Author:liu * @Date: 2021-08-26 16:59:35 * @Last Modified by: liu * @Last
+Modified time: 2021-11-05 14:51:52 */
+
+<template>
+  <basic-container
+    :class="[
+      'permit',
+      $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize',
+      $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : ''
+    ]"
+  >
+    <avue-crud
+      class="tablesss"
+      :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"
+      :row-style="rowStyle"
+    >
+      <template slot="menuLeft">
+        <el-button
+          type="danger"
+          size="small"
+          icon="el-icon-delete"
+          plain
+          v-if="permission.licenseApproval_changeLegalPerson_delete"
+          @click="handleDelete"
+          >删 除
+        </el-button>
+      </template>
+      <template slot-scope="{ type, size, row }" slot="menu">
+        <el-button
+          icon="icon-zhengjian"
+          :size="size"
+          :type="type"
+          class="zhengJian-icon"
+          v-if="permission.licenseApproval_changeLegalPerson_upload"
+          @click.stop="handleCredentials(row)"
+          >附件
+        </el-button>
+        <el-button
+          icon="el-icon-edit"
+          :size="size"
+          :type="type"
+          @click.stop="rowDel(row)"
+          v-if="row.type == '2' && userData == '0' && permission.licenseApproval_changeLegalPerson_audit"
+          >审批
+        </el-button>
+        <el-button
+          style="display:none"
+          icon="el-icon-edit"
+          :size="size"
+          :type="type"
+          @click.stop="viewLicense(row)"
+          v-if="row.type == '0' && permission.licenseApproval_changeLegalPerson_print"
+          >打印备案证
+        </el-button>
+      </template>
+      <template class="tdtype" slot-scope="{ row }" slot="type">
+        <el-tag class="dtype">
+          {{ row.type == "0" ? "通过" : row.type == "1" ? "不通过" : "待审核" }}
+          <i class="gz" v-if="row.type == '2'"></i>
+          <!--  黄色 -->
+          <i class="yj" v-if="row.type == '1'"></i>
+          <!--  红色 -->
+          <i class="zc" v-if="row.type == '0'"></i>
+          <!--  绿色 -->
+        </el-tag>
+      </template>
+    </avue-crud>
+    <div
+      v-if="dialogVisible"
+      class="dialogVisibles"
+      :class="classStyle == 'print' ? 'printstyle' : ''"
+    >
+      <div
+        id="licence_box"
+        :class="classStyle == 'print' ? 'printstyle' : ''"
+        ref="licence"
+      >
+        <div class="licence" id="licence" v-if="dialogVisible">
+          <div class="licence-head">备案回执</div>
+          <div class="head-tid">
+            编号
+            <span class="fontStyle">{{
+              licenceData.row.organizationcode
+            }}</span>
+            <!-- 号 -->
+          </div>
+          <div class="licence-main">
+            <div
+              class="l-m-once"
+              v-for="(item, index, key) in licenceData.chiden"
+              :key="key"
+            >
+              <span class="l-m-o-title"> {{ index }}: </span>
+              <span class="l-m-r-once">{{ item }}</span>
+            </div>
+          </div>
+          <div class="licence-bottom">(公安机关印章)</div>
+          <div class="l-bottom">
+            <!-- 发证日期 -->
+            <span class="l-b-t">{{
+              licenceData.row.permitime.slice(0, 4)
+            }}</span
+            >年
+            <span class="l-b-t">{{
+              licenceData.row.permitime.slice(5, 7)
+            }}</span>
+            月
+            <span class="l-b-t">{{
+              licenceData.row.permitime.slice(8, 10)
+            }}</span>
+            日
+          </div>
+        </div>
+        <span slot="footer" class="dialog-footer no-print PrintBut">
+          <el-button type="primary" @click="Print">打 印</el-button>
+          <el-button type="primary" @click="closePrint"> 取 消 </el-button>
+        </span>
+      </div>
+    </div>
+    <el-dialog
+      title=""
+      :visible.sync="dialogVisiblecc"
+      width="30%"
+      :modal-append-to-body="false"
+    >
+      <div class="flots">
+        <span class="f_title">是否通过审批?</span>
+        <span class="f_body">请输入审批意见:</span>
+        <textarea
+          name="reworkmes"
+          cols="40"
+          rows="4"
+          style="overflow: hidden"
+          v-model="textareaShenpi"
+        ></textarea>
+        <div class="but">
+          <el-button type="danger" @click="subcc">不通过</el-button>
+          <el-button type="primary" @click="closecc">通过</el-button>
+        </div>
+      </div>
+    </el-dialog>
+  </basic-container>
+</template>
+
+<script>
+import {
+  getList,
+  getDetail,
+  add,
+  update,
+  remove
+} from "@/api/licenseApproval/recordlegalperson";
+import { mapGetters } from "vuex";
+import { column2 } from "./column";
+export default {
+  data() {
+    return {
+      classStyle: "print", //打印样式
+
+      dialogVisiblecc: false, //许可证审核抽屉
+      xukezData: {},
+
+      dialogVisible: false, //许可证抽屉
+      licenceData: {
+        row: {},
+        chiden: {}
+      },
+      textareaShenpi: "",
+
+      form: {},
+      query: {},
+      loading: true,
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+        ...this.$store.state.control.changePageSize
+      },
+      selectionList: [],
+      option: {
+        height: "auto",
+        calcHeight: 30,
+        excelBtn: true,
+        tip: false,
+        searchShowBtn: false,
+        searchShow: true,
+        searchMenuSpan: 8,
+        border: true,
+        menuWidth: 300,
+        labelWidth: 130,
+        headerAlign: "center",
+        align: "center",
+        // border: false,
+        index: true,
+        viewBtn: true,
+        selection: true,
+        dialogClickModal: false,
+        column: column2,
+        ...this.$store.state.control.clearOtherBut
+      },
+      data: [],
+      userData: ""
+    };
+  },
+  computed: {
+    ...mapGetters(["permission", "userInfo"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.licenseApproval_changeLegalPerson_add, false),
+        viewBtn: this.vaildData(this.permission.licenseApproval_changeLegalPerson_view, true),
+        delBtn: this.vaildData(this.permission.licenseApproval_changeLegalPerson_delete, false),
+        editBtn: this.vaildData(this.permission.licenseApproval_changeLegalPerson_edit, false)
+      };
+    },
+    ids() {
+      let ids = [];
+      this.selectionList.forEach(ele => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
+    }
+  },
+  mounted() {
+    this.$store.commit("setWindowSizeHeightAdd");
+  },
+  methods: {
+    changeuserData() {
+      // console.log(this.userInfo, "userDatauserDatauserData");
+      if (this.userInfo.Id == "1123598821738675201") {
+        this.userData = "0";
+        return;
+      }
+      var gonganj = "";
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
+        let test = /派出所$/g;
+        if (test.test(this.userInfo.list.name)) {
+          gonganj = "2";
+        }
+        test = /分局|公安局$/g;
+        if (test.test(this.userInfo.list.name)) {
+          gonganj = "1";
+        }
+        test = /市公安局$/g;
+        if (test.test(this.userInfo.list.name)) {
+          gonganj = "0";
+        }
+      }
+      this.userData = gonganj;
+    },
+    Print() {
+      this.$Print(this.$refs.licence);
+    },
+
+    handleCredentials(row) {
+      this.$router.push({
+        path: "/attachOnce/index",
+        // redirect: { name: "foo" },
+        // query: { row: row },
+        query: { deptid: row.cardid, type: "7" }
+        // params: { row: row.identificationnumber },
+      });
+    },
+    rowSave(row, done, loading) {
+      row.deptid = this.userInfo.dept_id;
+      add(row).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done();
+        },
+        error => {
+          loading();
+          window.console.log(error);
+        }
+      );
+    },
+    rowUpdate(row, index, done, loading) {
+      update(row).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done();
+        },
+        error => {
+          loading();
+          console.log(error);
+        }
+      );
+    },
+    rowDel(row) {
+      this.dialogVisiblecc = true;
+      this.xukezData = row;
+    },
+    closecc() {
+      this.xukezData.type = "0";
+      this.dialogVisiblecc = false;
+      this.xukezData["approve"] = this.textareaShenpi;
+      console.log(this.xukezData);
+      update(this.xukezData);
+      this.textareaShenpi = "";
+    },
+    subcc() {
+      this.xukezData.type = "1";
+      this.dialogVisiblecc = false;
+      this.xukezData["approve"] = this.textareaShenpi;
+      update(this.xukezData);
+      this.textareaShenpi = "";
+    },
+
+    viewLicense(row) {
+      //查看许可证
+      this.licenceData.row = row;
+      this.licenceData.chiden = {};
+      this.licenceData.chiden["名称"] = row.enterprisename;
+      this.licenceData.chiden["地址"] = row.address;
+      this.licenceData.chiden["服务区域"] = row.industry;
+      this.licenceData.chiden["法定代表人"] = row.representative;
+      this.licenceData.chiden["备案时间"] = row.officetime;
+      this.licenceData.chiden["备案内容"] = "跨区域经营备案";
+      // this.licenceData.chiden["注册资本"] = row.registeredcapital;
+      // this.licenceData.chiden["批准文号"] = row.registrationnumber;
+
+      console.log(this.licenceData);
+      this.dialogVisible = true;
+    },
+    closePrint() {
+      this.dialogVisible = false;
+    },
+    handleDelete() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          return remove(this.ids);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.$refs.crud.toggleSelection();
+        });
+    },
+    beforeOpen(done, type) {
+      if (["edit", "view"].includes(type)) {
+        getDetail(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.changeuserData();
+      this.loading = true;
+      params["ptype"] = 7;
+      params["jurisdiction"] = this.userInfo.jurisdiction;
+      params["usetype"] = this.userData;
+      getList(
+        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.$store.commit("setWindowSizeHeightAdd");
+        this.selectionClear();
+      });
+    },
+    rowStyle({ row }) {
+      if (row.dtype != null && row.dtype != "") {
+        if (row.dtype == "2") {
+          return {
+            color: "#F34A4A"
+          };
+        }
+        if (row.dtype == "1") {
+          return {
+            color: "#F48F57"
+          };
+        }
+      }
+    }
+  }
+};
+</script>
+
+<style scoped lang="scss">
+.dtype {
+  width: 80px;
+}
+
+.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: 6px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #29c093;
+}
+.yj {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 6px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #f34a4a;
+}
+.gz {
+  position: absolute;
+  top: 50%;
+  margin-top: -5px;
+  margin-left: 6px;
+  width: 10px;
+  height: 10px;
+  border-radius: 30%;
+  background: #f48f57;
+}
+
+.el-tag {
+  display: inline-block;
+  width: 80px;
+
+  /*padding-right: 40px !important;*/
+}
+#licence_box {
+  position: relative;
+  top: 15px;
+  width: 1080px;
+  height: 780px;
+  background-color: #004ca7;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+}
+.licence {
+  width: 960px;
+  height: 648px;
+  background-color: #fff !important;
+  background-image: url("/img/permit/服务许可背景图.png");
+  background-size: 100% 100%;
+  background-repeat: no-repeat;
+  box-sizing: border-box;
+  padding: 10%;
+  color: #000;
+}
+.licence-head {
+  width: 100%;
+  height: 1.8rem;
+  font-size: 1.8rem;
+  text-align: center;
+}
+.head-tid {
+  position: relative;
+  left: 70%;
+}
+.head-tid span {
+  margin: 0 1rem;
+}
+.licence-main {
+  width: 80%;
+}
+.l-m-once {
+  width: 100%;
+  height: 2rem;
+  margin-top: 1rem;
+}
+.l-m-o-title {
+  font-size: 1.3rem;
+  width: 22%;
+  text-align: justify;
+  display: inline-block;
+}
+.l-m-r-once {
+  font-size: 1.1rem;
+  /* border: 1px solid #000; */
+  display: inline-block;
+  width: 77%;
+}
+.licence-bottom,
+.l-bottom {
+  position: relative;
+  left: 60%;
+  font-size: 1.5rem;
+  margin-top: 0.5rem;
+}
+.dialogVisibles {
+  position: fixed;
+  top: 0;
+  left: -10%;
+  height: 0;
+  width: 120%;
+  height: 100%;
+  background-color: rgba(0, 0, 0, 0.5);
+  z-index: 9000;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.printstyle {
+  background-color: #fff !important;
+}
+.PrintBut {
+  margin-top: 15px;
+}
+
+.flots {
+  display: flex;
+  justify-content: space-between;
+  flex-direction: column;
+  .f_title {
+    position: absolute;
+    top: 15px;
+    font-size: 18px;
+  }
+}
+.but {
+  margin-top: 20px;
+  width: 100%;
+  display: flex;
+  align-content: center;
+  justify-content: center;
+}
+</style>
diff --git a/src/views/licenseApproval/column.js b/src/views/licenseApproval/column.js
index 489cb62..36d39d1 100644
--- a/src/views/licenseApproval/column.js
+++ b/src/views/licenseApproval/column.js
@@ -304,4 +304,428 @@
             },
         ],
     },
+];
+
+
+export var column1 = [
+    {
+        label: "企业名称",
+        search: true,
+        prop: "enterprisename",
+        searchLabelWidth: 80,
+        searchSpan: 4,
+        overHidden: true,
+        width: 250,
+        rules: [
+            {
+                required: true,
+                message: "请输入企业名称",
+                trigger: "blur",
+            },
+        ],
+    },
+    // {
+    //   label: "社会信用代码",
+    //   prop: "creditcode",
+    //   hide: true,
+    //   rules: [
+    //     {
+    //       required: true,
+    //       message: "请输入统一社会信用代码",
+    //       trigger: "blur",
+    //     },
+    //   ],
+    // },
+    {
+        label: "法定代表人",
+        prop: "representative",
+        search: true,
+        searchLabelWidth: 90,
+        width: 82,
+        rules: [
+            {
+                required: true,
+                message: "请输入法定代表人",
+                trigger: "blur",
+            },
+        ],
+    },
+    {
+        label: "法定代表人电话",
+        width: 106,
+        prop: "representativecell",
+        rules: [
+            {
+                required: true,
+                message: "请输入法定代表人电话",
+                trigger: "blur",
+            },
+        ],
+    },
+    {
+        label: "联系人",
+        prop: "contacts",
+        hide:true,
+        rules: [
+            {
+                required: true,
+                message: "请输入联系人",
+                trigger: "blur",
+            },
+        ],
+    },
+    {
+        label: "联系人电话",
+        width: 106,
+        hide:true,
+        prop: "contactscell",
+        rules: [
+            {
+                required: true,
+                message: "请输入联系人电话",
+                trigger: "blur",
+            },
+        ],
+    },
+    {
+        label: "项目名称",
+        prop: "kproject",
+        width: 120,
+        rules: [
+            {
+                required: true,
+                message: "请输入项目名称",
+                trigger: "blur",
+            },
+        ],
+        overHidden:true
+    },
+    {
+        label: "服务时间",
+        width: 150,
+        prop: "kservicetime",
+        rules: [
+            {
+                required: true,
+                message: "请输入服务时间",
+                trigger: "blur",
+            },
+        ],
+    },
+    {
+        label: "注册地址",
+        prop: "address",
+        overHidden: true,
+        rules: [
+            {
+                required: true,
+                message: "请输入注册地址",
+                trigger: "blur",
+            },
+        ],
+    },
+    {
+        label: "所属行业",
+        hide: true,
+        prop: "industry",
+        rules: [
+            {
+                required: true,
+                message: "请输入所属行业",
+                trigger: "blur",
+            },
+        ],
+    },
+    {
+        label: "所属辖区",
+        prop: "jurisdiction",
+        type: "tree",
+        dicUrl: "/api/jurisdiction/lazy-trees",
+        props: {
+            label: "title",
+            value: "id",
+        },
+        width: 110,
+    },
+    {
+        label: "许可类型",
+        // search: true,
+        hide: true,
+        prop: "ptype",
+        type: "select",
+        searchSpan: 4,
+        dicData: [
+            {
+                label: "保安服务许可",
+                value: "0",
+            },
+        ],
+    },
+    {
+        label: "提交时间",
+        prop: "permitime",
+        overHidden: true,
+        addDisplay: false,
+        width: 132,
+        type: "date",
+        format: "yyyy-MM-dd HH:mm:ss",
+        valueFormat: "yyyy-MM-dd HH:mm:ss",
+    },
+    {
+        label: "审核状态",
+        prop: "type",
+        addDisplay: false,
+        type: "select",
+        width:130,
+        dicData: [
+            {
+                label: "通过",
+                value: "0",
+            },
+            {
+                label: "不通过",
+                value: "1",
+            },
+            {
+                label: "待审核",
+                value: "2",
+            },
+        ],
+    },
+    {
+        label: "审批意见",
+        prop: "approve",
+        overHidden: true
+        // addDisplay: false,
+        // type: "select",
+        // dicData: [
+        //     {
+        //         label: "通过",
+        //         value: "0",
+        //     },
+        //     {
+        //         label: "不通过",
+        //         value: "1",
+        //     },
+        //     {
+        //         label: "待审核",
+        //         value: "2",
+        //     },
+        // ],
+    },
+    {
+        label: "服务范围",
+        prop: "business",
+        component: "AvueUeditor",
+        hide: true,
+        minRows: 6,
+        span: 24,
+        rules: [
+            {
+                required: true,
+                message: "请输入经营范围",
+                trigger: "blur",
+            },
+        ],
+    },
+];
+
+
+export var column2 = [
+    {
+        label: "企业名称",
+        search: true,
+        prop: "enterprisename",
+        searchLabelWidth: 80,
+        searchSpan: 4,
+        overHidden: true,
+        width: 250,
+        rules: [
+            {
+                required: true,
+                message: "请输入企业名称",
+                trigger: "blur",
+            },
+        ],
+    },
+    // {
+    //   label: "社会信用代码",
+    //   prop: "creditcode",
+    //   hide: true,
+    //   rules: [
+    //     {
+    //       required: true,
+    //       message: "请输入统一社会信用代码",
+    //       trigger: "blur",
+    //     },
+    //   ],
+    // },
+    {
+        label: "原法定代表人",
+        prop: "representative",
+        search: true,
+        searchLabelWidth: 110,
+        width: 100,
+        rules: [
+            {
+                required: true,
+                message: "请输入原法定代表人",
+                trigger: "blur",
+            },
+        ],
+    },
+    {
+        label: "原法定代表人电话",
+        width: 130,
+        prop: "representativecell",
+        rules: [
+            {
+                required: true,
+                message: "请输入原法定代表人电话",
+                trigger: "blur",
+            },
+        ],
+    },
+    {
+        label: "变更法人姓名",
+        prop: "changecontacts",
+        width: 120,
+        rules: [
+            {
+                required: true,
+                message: "请输入变更法人姓名",
+                trigger: "blur",
+            },
+        ],
+        overHidden:true
+    },
+    {
+        label: "变更法人电话",
+        width: 120,
+        prop: "changecontactscell",
+        rules: [
+            {
+                required: true,
+                message: "请输入变更法人电话",
+                trigger: "blur",
+            },
+        ],
+    },
+    
+    {
+        label: "注册地址",
+        prop: "address",
+        overHidden: true,
+        rules: [
+            {
+                required: true,
+                message: "请输入注册地址",
+                trigger: "blur",
+            },
+        ],
+    },
+    {
+        label: "所属行业",
+        hide: true,
+        prop: "industry",
+        rules: [
+            {
+                required: true,
+                message: "请输入所属行业",
+                trigger: "blur",
+            },
+        ],
+    },
+    {
+        label: "所属辖区",
+        prop: "jurisdiction",
+        type: "tree",
+        dicUrl: "/api/jurisdiction/lazy-trees",
+        props: {
+            label: "title",
+            value: "id",
+        },
+        width: 110,
+    },
+    {
+        label: "许可类型",
+        // search: true,
+        hide: true,
+        prop: "ptype",
+        type: "select",
+        searchSpan: 4,
+        dicData: [
+            {
+                label: "保安服务许可",
+                value: "0",
+            },
+        ],
+    },
+    {
+        label: "提交时间",
+        prop: "permitime",
+        overHidden: true,
+        addDisplay: false,
+        width: 132,
+        type: "date",
+        format: "yyyy-MM-dd HH:mm:ss",
+        valueFormat: "yyyy-MM-dd HH:mm:ss",
+    },
+    {
+        label: "审核状态",
+        prop: "type",
+        addDisplay: false,
+        type: "select",
+        width:130,
+        dicData: [
+            {
+                label: "通过",
+                value: "0",
+            },
+            {
+                label: "不通过",
+                value: "1",
+            },
+            {
+                label: "待审核",
+                value: "2",
+            },
+        ],
+    },
+    {
+        label: "审批意见",
+        prop: "approve",
+        overHidden: true
+        // addDisplay: false,
+        // type: "select",
+        // dicData: [
+        //     {
+        //         label: "通过",
+        //         value: "0",
+        //     },
+        //     {
+        //         label: "不通过",
+        //         value: "1",
+        //     },
+        //     {
+        //         label: "待审核",
+        //         value: "2",
+        //     },
+        // ],
+    },
+    {
+        label: "服务范围",
+        prop: "business",
+        component: "AvueUeditor",
+        hide: true,
+        minRows: 6,
+        span: 24,
+        rules: [
+            {
+                required: true,
+                message: "请输入经营范围",
+                trigger: "blur",
+            },
+        ],
+    },
 ];
\ No newline at end of file
diff --git a/src/views/licenseApproval/crossRegion.vue b/src/views/licenseApproval/crossRegion.vue
index efdd4f5..21ee978 100644
--- a/src/views/licenseApproval/crossRegion.vue
+++ b/src/views/licenseApproval/crossRegion.vue
@@ -37,7 +37,7 @@
           size="small"
           icon="el-icon-delete"
           plain
-          v-if="permission.permit_delete"
+          v-if="permission.licenseApproval_crossRegion_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -48,6 +48,7 @@
           :size="size"
           :type="type"
           class="zhengJian-icon"
+          v-if="permission.licenseApproval_crossRegion_upload"
           @click.stop="handleCredentials(row)"
           >附件
         </el-button>
@@ -56,7 +57,7 @@
           :size="size"
           :type="type"
           @click.stop="rowDel(row)"
-          v-if="row.type == '2' && userData == '0'"
+          v-if="row.type == '2' && userData == '0' && permission.licenseApproval_crossRegion_audit"
           >备案审批
         </el-button>
         <el-button
@@ -64,7 +65,7 @@
           :size="size"
           :type="type"
           @click.stop="viewLicense(row)"
-          v-if="row.type == '0'"
+          v-if="row.type == '0' && permission.licenseApproval_crossRegion_print"
           >打印备案证
         </el-button>
       </template>
@@ -166,7 +167,7 @@
   remove
 } from "@/api/licenseApproval/recordk";
 import { mapGetters } from "vuex";
-import { column } from "./column";
+import { column1 } from "./column";
 export default {
   data() {
     return {
@@ -210,7 +211,7 @@
         viewBtn: true,
         selection: true,
         dialogClickModal: false,
-        column: column,
+        column: column1,
         ...this.$store.state.control.clearOtherBut
       },
       data: [],
@@ -221,10 +222,10 @@
     ...mapGetters(["permission", "userInfo"]),
     permissionList() {
       return {
-        addBtn: this.vaildData(this.permission.permit_add, false),
-        viewBtn: this.vaildData(this.permission.permit_view, true),
-        delBtn: this.vaildData(this.permission.permit_delete, false),
-        editBtn: this.vaildData(this.permission.permit_edit, false)
+        addBtn: this.vaildData(this.permission.licenseApproval_crossRegion_add, false),
+        viewBtn: this.vaildData(this.permission.licenseApproval_crossRegion_view, true),
+        delBtn: this.vaildData(this.permission.licenseApproval_crossRegion_delete, false),
+        editBtn: this.vaildData(this.permission.licenseApproval_crossRegion_edit, false)
       };
     },
     ids() {
@@ -246,7 +247,7 @@
         return;
       }
       var gonganj = "";
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         let test = /派出所$/g;
         if (test.test(this.userInfo.list.name)) {
           gonganj = "2";
diff --git a/src/views/licenseApproval/securityGuard.vue b/src/views/licenseApproval/securityGuard.vue
index 7e9c6fe..049f28a 100644
--- a/src/views/licenseApproval/securityGuard.vue
+++ b/src/views/licenseApproval/securityGuard.vue
@@ -37,7 +37,7 @@
           size="small"
           icon="el-icon-delete"
           plain
-          v-if="permission.permit_delete"
+          v-if="permission.licenseApproval_securityGuard_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -48,6 +48,7 @@
           :size="size"
           :type="type"
           class="zhengJian-icon"
+          v-if="permission.licenseApproval_securityGuard_upload"
           @click.stop="handleCredentials(row)"
           >附件</el-button
         >
@@ -55,7 +56,7 @@
           icon="el-icon-edit"
           :size="size"
           :type="type"
-          v-if="row.stateOur == '0'"
+          v-if="row.stateOur == '0' || permission.licenseApproval_securityGuard_audit"
           @click.stop="rowDel(row)"
           >备案审批
         </el-button>
@@ -80,7 +81,7 @@
           :type="type"
           @click.stop="viewLicense(row)"
           v-if="
-            row.papprove == '1' && row.xapprove == '1' && row.sapprove == '1'
+            row.papprove == '1' && row.xapprove == '1' && row.sapprove == '1' && permission.licenseApproval_securityGuard_print
           "
           >打印备案证
         </el-button>
@@ -89,7 +90,7 @@
           :size="size"
           :type="type"
           v-if="
-            row.papprove == '1' && row.xapprove == '1' && row.sapprove == '1'
+            row.papprove == '1' && row.xapprove == '1' && row.sapprove == '1' && permission.licenseApproval_securityGuard_prints
           "
           @click.stop="viewLicensehuizhi(row)"
           >回执打印
@@ -318,10 +319,10 @@
     ...mapGetters(["permission", "userInfo"]),
     permissionList() {
       return {
-        addBtn: this.vaildData(this.permission.permit_add, false),
-        viewBtn: this.vaildData(this.permission.permit_view, true),
-        delBtn: this.vaildData(this.permission.permit_delete, false),
-        editBtn: this.vaildData(this.permission.permit_edit, false)
+        addBtn: this.vaildData(this.permission.licenseApproval_securityGuard_add, false),
+        viewBtn: this.vaildData(this.permission.licenseApproval_securityGuard_view, true),
+        delBtn: this.vaildData(this.permission.licenseApproval_securityGuard_delete, false),
+        editBtn: this.vaildData(this.permission.licenseApproval_securityGuard_edit, false)
       };
     },
     ids() {
@@ -569,7 +570,7 @@
       this.loading = true;
       params["ptype"] = 3;
       var gonganj = "";
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         let test = /派出所$/g;
         if (test.test(this.userInfo.list.name)) {
           gonganj = "派出所管理员";
diff --git a/src/views/licenseApproval/securityPermit.vue b/src/views/licenseApproval/securityPermit.vue
index 785503b..aff47b4 100644
--- a/src/views/licenseApproval/securityPermit.vue
+++ b/src/views/licenseApproval/securityPermit.vue
@@ -48,6 +48,7 @@
           :size="size"
           :type="type"
           class="zhengJian-icon"
+          v-if="permission.permit_upload"
           @click.stop="handleCredentials(row)"
           >附件
         </el-button>
@@ -56,7 +57,7 @@
           :size="size"
           :type="type"
           @click.stop="rowDel(row)"
-          v-if="row.type == '2' && userData == '0'"
+          v-if="row.type == '2' && userData == '0' && permission.permit_audit"
           >许可审批
         </el-button>
         <el-button
@@ -64,7 +65,7 @@
           :size="size"
           :type="type"
           @click.stop="viewLicense(row)"
-          v-if="row.type == '0'"
+          v-if="row.type == '0' && permission.permit_print"
           >打印许可证
         </el-button>
       </template>
@@ -300,7 +301,7 @@
         return;
       }
       var gonganj = "";
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         let test = /派出所$/g;
         if (test.test(this.userInfo.list.name)) {
           gonganj = "2";
diff --git a/src/views/licenseApproval/securityTraining.vue b/src/views/licenseApproval/securityTraining.vue
index 91d41d9..7356edc 100644
--- a/src/views/licenseApproval/securityTraining.vue
+++ b/src/views/licenseApproval/securityTraining.vue
@@ -37,7 +37,7 @@
           size="small"
           icon="el-icon-delete"
           plain
-          v-if="permission.permit_delete"
+          v-if="permission.licenseApproval_securityTraining_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -48,6 +48,7 @@
           :size="size"
           :type="type"
           class="zhengJian-icon"
+          v-if="permission.licenseApproval_securityTraining_upload"
           @click.stop="handleCredentials(row)"
           >附件
         </el-button>
@@ -56,7 +57,7 @@
           :size="size"
           :type="type"
           @click.stop="rowDel(row)"
-          v-if="row.type == '2' && userData == '0'"
+          v-if="row.type == '2' && userData == '0' && permission.licenseApproval_securityTraining_audit"
           >许可审批
         </el-button>
         <el-button
@@ -64,7 +65,7 @@
           :size="size"
           :type="type"
           @click.stop="viewLicense(row)"
-          v-if="row.type == '0'"
+          v-if="row.type == '0' && permission.licenseApproval_securityTraining_print"
           >打印许可证
         </el-button>
       </template>
@@ -274,10 +275,10 @@
     ...mapGetters(["permission", "userInfo"]),
     permissionList() {
       return {
-        addBtn: this.vaildData(this.permission.permit_add, false),
-        viewBtn: this.vaildData(this.permission.permit_view, true),
-        delBtn: this.vaildData(this.permission.permit_delete, false),
-        editBtn: this.vaildData(this.permission.permit_edit, false)
+        addBtn: this.vaildData(this.permission.licenseApproval_securityTraining_add, false),
+        viewBtn: this.vaildData(this.permission.licenseApproval_securityTraining_view, true),
+        delBtn: this.vaildData(this.permission.licenseApproval_securityTraining_delete, false),
+        editBtn: this.vaildData(this.permission.licenseApproval_securityTraining_edit, false)
       };
     },
     ids() {
@@ -299,7 +300,7 @@
         return;
       }
       var gonganj = "";
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         let test = /派出所$/g;
         if (test.test(this.userInfo.list.name)) {
           gonganj = "2";
diff --git a/src/views/recruitmentManagement/index.vue b/src/views/recruitmentManagement/index.vue
index 936ebc8..15bf01e 100644
--- a/src/views/recruitmentManagement/index.vue
+++ b/src/views/recruitmentManagement/index.vue
@@ -12,6 +12,7 @@
       :data="data"
       :page.sync="page"
       ref="crudrec"
+      :permission="permissionList"
       @on-load="onLoad"
       :table-loading="loading"
       @row-save="rowSave"
@@ -28,6 +29,7 @@
           size="small"
           plain
           icon="el-icon-delete"
+          v-if="permission.recruitment_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -87,7 +89,7 @@
       deptColumn.value = this.useifid;
     }
     //公安局进入
-    if (this.userInfo.role_name == "公安管理员") {
+    if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
       that.option.column[1].dicUrl =
         "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697&jurisdiction=" +
         that.userInfo.jurisdiction;
@@ -97,7 +99,15 @@
     }
   },
   computed: {
-    ...mapGetters(["userInfo"]),
+        ...mapGetters(["permission", "userInfo"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.recruitment_add, false),
+        viewBtn: this.vaildData(this.permission.recruitment_view, true),
+        delBtn: this.vaildData(this.permission.recruitment_delete, false),
+        editBtn: this.vaildData(this.permission.recruitment_edit, false)
+      };
+    },
     ids() {
       let ids = [];
       this.selectionList.forEach(ele => {
@@ -222,7 +232,7 @@
         params["deptId"] = this.useifid;
       }
       //公安局进入
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         params["jurisdiction"] = this.userInfo.jurisdiction;
       }
 
diff --git a/src/views/registerUnit/registerUnit.vue b/src/views/registerUnit/registerUnit.vue
index 1262e52..77ca8b8 100644
--- a/src/views/registerUnit/registerUnit.vue
+++ b/src/views/registerUnit/registerUnit.vue
@@ -309,7 +309,7 @@
     },
   },
   created(){
-    if(this.userInfo.role_name=="公安管理员"){
+    if(this.userInfo.role_name=="公安管理员" || this.userInfo.role_name == "民警"){
       this.search['auditStatus'] = "1";
     }
   },
@@ -471,7 +471,7 @@
     onLoad(page, params = {}) {
       params = this.search;
       this.loading = true;
-      if(this.userInfo.role_name=="公安管理员"){
+      if(this.userInfo.role_name=="公安管理员" || this.userInfo.role_name == "民警"){
         params['jurisdiction'] = this.userInfo.jurisdiction;
       }
       getList(
diff --git a/src/views/securityEquipment/car.vue b/src/views/securityEquipment/car.vue
index 2872832..772c618 100644
--- a/src/views/securityEquipment/car.vue
+++ b/src/views/securityEquipment/car.vue
@@ -13,6 +13,7 @@
       :data="data"
       :page.sync="page"
       ref="crudrec"
+      :permission="permissionList"
       @on-load="onLoad"
       :table-loading="loading"
       @row-save="rowSave"
@@ -29,6 +30,7 @@
           size="small"
           plain
           icon="el-icon-delete"
+          v-if="permission.car_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -37,6 +39,7 @@
           size="small"
           plain
           icon="el-icon-upload2"
+          v-if="permission.car_import"
           @click="handleImport"
           >批量导入
         </el-button>
@@ -130,7 +133,15 @@
     };
   },
   computed: {
-    ...mapGetters(["userInfo"]),
+    ...mapGetters(["permission", "userInfo"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.car_add, false),
+        viewBtn: this.vaildData(this.permission.car_view, true),
+        delBtn: this.vaildData(this.permission.car_delete, false),
+        editBtn: this.vaildData(this.permission.car_edit, false)
+      };
+    },
     ids() {
       let ids = [];
       this.selectionList.forEach(ele => {
@@ -168,7 +179,7 @@
       //赋值
       column.value = that.userInfo.dept_id;
       this.useifid = this.userInfo.dept_id;
-    } else if (roleName == "公安管理员" || roleName == "administrator") {
+    } else if (roleName == "公安管理员" || roleName == "administrator" || roleName == "民警") {
       var columnDept = that.findObject(that.option.column, "deptId");
       columnDept.dicUrl =
         "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
@@ -344,7 +355,7 @@
       }
 
       //公安局进入
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         params["jurisdiction"] = that.userInfo.jurisdiction;
       }
       //保安公司进入
diff --git a/src/views/securityEquipment/equipments.vue b/src/views/securityEquipment/equipments.vue
index ecc0053..e19f6ea 100644
--- a/src/views/securityEquipment/equipments.vue
+++ b/src/views/securityEquipment/equipments.vue
@@ -13,6 +13,7 @@
       :data="data"
       :page.sync="page"
       ref="crudrec"
+      :permission="permissionList"
       @on-load="onLoad"
       :table-loading="loading"
       @row-save="rowSave"
@@ -29,6 +30,7 @@
           size="small"
           plain
           icon="el-icon-delete"
+          v-if="permission.equipments_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -37,6 +39,7 @@
           size="small"
           plain
           icon="el-icon-upload2"
+          v-if="permission.equipments_import"
           @click="handleImport"
           >批量导入
         </el-button>
@@ -133,7 +136,15 @@
     };
   },
   computed: {
-    ...mapGetters(["userInfo"]),
+    ...mapGetters(["permission", "userInfo"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.equipments_add, false),
+        viewBtn: this.vaildData(this.permission.equipments_view, true),
+        delBtn: this.vaildData(this.permission.equipments_delete, false),
+        editBtn: this.vaildData(this.permission.equipments_edit, false)
+      };
+    },
     ids() {
       let ids = [];
       this.selectionList.forEach(ele => {
@@ -170,7 +181,7 @@
       //赋值
       column.value = that.userInfo.dept_id;
       this.useifid = this.userInfo.dept_id;
-    } else if (roleName == "公安管理员" || roleName == "administrator") {
+    } else if (roleName == "公安管理员" || roleName == "administrator" || this.userInfo.role_name == "民警") {
       var columnDept = that.findObject(that.option.column, "deptId");
       columnDept.dicUrl =
         "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
@@ -358,7 +369,7 @@
         this.openDep("deptId");
       }
       //公安局进入
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         params["jurisdiction"] = that.userInfo.jurisdiction;
       }
 
diff --git a/src/views/securityEquipment/gun.vue b/src/views/securityEquipment/gun.vue
index c6a780f..c4bf473 100644
--- a/src/views/securityEquipment/gun.vue
+++ b/src/views/securityEquipment/gun.vue
@@ -12,6 +12,7 @@
       :data="data"
       :page.sync="page"
       ref="crudrec"
+      :permission="permissionList"
       @on-load="onLoad"
       :table-loading="loading"
       @row-save="rowSave"
@@ -28,6 +29,7 @@
           size="small"
           plain
           icon="el-icon-delete"
+          v-if="permission.gun_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -36,6 +38,7 @@
           size="small"
           plain
           icon="el-icon-upload2"
+          v-if="permission.gun_import"
           @click="handleImport"
           >批量导入
         </el-button>
@@ -128,7 +131,15 @@
     };
   },
   computed: {
-    ...mapGetters(["userInfo"]),
+    ...mapGetters(["permission", "userInfo"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.gun_add, false),
+        viewBtn: this.vaildData(this.permission.gun_view, true),
+        delBtn: this.vaildData(this.permission.gun_delete, false),
+        editBtn: this.vaildData(this.permission.gun_edit, false)
+      };
+    },
     ids() {
       let ids = [];
       this.selectionList.forEach(ele => {
@@ -148,7 +159,7 @@
       this.useifid = this.userInfo.dept_id;
     }
     //公安局进入
-    if (this.userInfo.role_name == "公安管理员") {
+    if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
       that.option.column[5].dicUrl =
         "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697&jurisdiction=" +
         that.userInfo.jurisdiction;
@@ -321,7 +332,7 @@
       }
 
       //公安局进入
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         params["jurisdiction"] = that.userInfo.jurisdiction;
       }
       //保安公司进入
diff --git a/src/views/securityGuard/securityGuard.vue b/src/views/securityGuard/securityGuard.vue
index 7bea438..d535f26 100644
--- a/src/views/securityGuard/securityGuard.vue
+++ b/src/views/securityGuard/securityGuard.vue
@@ -169,6 +169,7 @@
                   icon="el-icon-view"
                   :size="size"
                   :type="type"
+                  v-if="permission.securityGuard_view"
                   @click.stop="rowClick(row)"
                   >查看
                 </el-button>
@@ -1571,7 +1572,6 @@
   beforeCreate() {},
   created() {
     var that = this;
-    // console.log(this.userInfo, 9999);
     if (this.userInfo.role_name == "办证管理员") {
       this.search["userType"] = 7;
       this.search["hold"] = "1";
@@ -1592,7 +1592,7 @@
       column.dicUrl =
         "/api/blade-system/dept/security_lazy-tree?deptId=" +
         this.userInfo.dept_id;
-    } else if (roleName == "公安管理员" || roleName == "administrator") {
+    } else if (roleName == "公安管理员" || roleName == "administrator" || this.userInfo.role_name == "民警") {
       var columnDept = that.findObject(that.option.column, "deptId");
       columnDept.dicUrl =
         "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
@@ -2132,7 +2132,7 @@
           //如果是培训公司管理员
           data["trainingUnitId"] = this.userInfo.Id;
         }
-        if (this.userInfo.role_name == "公安管理员") {
+        if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
           //如果是公安管理员
           data["jurisdiction"] = this.userInfo.jurisdiction;
         }
@@ -2732,6 +2732,7 @@
           } else if (
             roleAlias == "公安管理员" ||
             roleAlias == "administrator"
+            || this.userInfo.role_name == "民警"
           ) {
             params["jurisdiction"] = that.userInfo.jurisdiction;
             var ColumnDeptUpdate = that.findObject(that.option.group, "deptId");
diff --git a/src/views/securityGuard/securityGuardOnce copy.vue b/src/views/securityGuard/securityGuardOnce copy.vue
index 4b0303b..87cb919 100644
--- a/src/views/securityGuard/securityGuardOnce copy.vue
+++ b/src/views/securityGuard/securityGuardOnce copy.vue
@@ -1380,7 +1380,7 @@
             that.isSecurity = true;
             //如果是保安公司管理员
             params["deptId"] = that.userInfo.dept_id;
-          } else if (roleAlias == "公安管理员") {
+          } else if (roleAlias == "公安管理员" || this.userInfo.role_name == "民警") {
             params["jurisdiction"] = that.userInfo.jurisdiction;
             var columnDept = that.findObject(that.option.column, "deptId");
             columnDept.dicUrl =
diff --git a/src/views/securityGuard/securityGuardOnce.vue b/src/views/securityGuard/securityGuardOnce.vue
index 5596633..ac63988 100644
--- a/src/views/securityGuard/securityGuardOnce.vue
+++ b/src/views/securityGuard/securityGuardOnce.vue
@@ -1347,7 +1347,7 @@
             that.isSecurity = false;
             //如果是保安公司管理员
             params["deptId"] = that.userInfo.dept_id;
-          } else if (roleAlias == "公安管理员") {
+          } else if (roleAlias == "公安管理员" || this.userInfo.role_name == "民警") {
             params["jurisdiction"] = that.userInfo.jurisdiction;
             var columnDept = that.findObject(that.option.column, "deptId");
             columnDept.dicUrl =
diff --git "a/src/views/securityGuard/securityGuard\346\214\207\347\272\271\350\207\252\345\212\250\350\257\206\345\210\253\357\274\210\351\233\206\346\210\220VUE\346\212\245\351\224\231\357\274\211-9.vue" "b/src/views/securityGuard/securityGuard\346\214\207\347\272\271\350\207\252\345\212\250\350\257\206\345\210\253\357\274\210\351\233\206\346\210\220VUE\346\212\245\351\224\231\357\274\211-9.vue"
index 46d1d95..2765f15 100644
--- "a/src/views/securityGuard/securityGuard\346\214\207\347\272\271\350\207\252\345\212\250\350\257\206\345\210\253\357\274\210\351\233\206\346\210\220VUE\346\212\245\351\224\231\357\274\211-9.vue"
+++ "b/src/views/securityGuard/securityGuard\346\214\207\347\272\271\350\207\252\345\212\250\350\257\206\345\210\253\357\274\210\351\233\206\346\210\220VUE\346\212\245\351\224\231\357\274\211-9.vue"
@@ -1872,7 +1872,7 @@
             );
             importColumn.action =
               "/api/blade-user/import-user?deptId=" + this.deptIds;
-          } else if (roleAlias == "公安管理员") {
+          } else if (roleAlias == "公安管理员" || this.userInfo.role_name == "民警") {
             params["jurisdiction"] = that.userInfo.jurisdiction;
             var columnDept = that.findObject(that.option.column, "deptId");
             columnDept.dicUrl =
diff --git a/src/views/securityUnit/localCompany.vue b/src/views/securityUnit/localCompany.vue
index 92fb9c7..f7a236c 100644
--- a/src/views/securityUnit/localCompany.vue
+++ b/src/views/securityUnit/localCompany.vue
@@ -12,6 +12,7 @@
       :data="data"
       :page.sync="page"
       ref="crudrec"
+      :permission="permissionList"
       @on-load="onLoad"
       :table-loading="loading"
       @row-save="rowSave"
@@ -37,12 +38,14 @@
           icon="el-icon-s-custom"
           :size="size"
           :type="type"
+          v-if="permission.localCompany_view"
           @click.stop="rowClick(row)"
           >查看
         </el-button>
         <el-button
           :size="size"
           :type="type"
+          v-if="permission.localCompany_upload"
           @click="handleUploadPage(row)"
           icon="el-icon-circle-check"
           >附件上传
@@ -54,6 +57,7 @@
           size="small"
           plain
           icon="el-icon-delete"
+          v-if="permission.localCompany_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -62,6 +66,7 @@
           size="small"
           plain
           icon="el-icon-upload2"
+          v-if="permission.localCompany_import"
           @click="handleImport1"
           >批量导入
         </el-button>
@@ -397,7 +402,15 @@
     // this.getJurisdictionTree();
   },
   computed: {
-    ...mapGetters(["userInfo"]),
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.localCompany_add, false),
+        viewBtn: this.vaildData(this.permission.localCompany_view, false),
+        delBtn: this.vaildData(this.permission.localCompany_delete, false),
+        editBtn: this.vaildData(this.permission.localCompany_edit, false)
+      };
+    },
     ids() {
       let ids = [];
       this.selectionList.forEach(ele => {
@@ -574,8 +587,7 @@
       });
     },
     onLoad(page, params = {}) {
-      if (this.userInfo.role_id == "1414840172333842433") {
-        console.log("是公安add jurisdiction");
+      if(this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警" || this.userInfo.role_name == "administrator"){
         params["jurisdiction"] = this.userInfo.jurisdiction;
       }
       params["stats"] = "2";
diff --git a/src/views/securityUnit/securityTraining.vue b/src/views/securityUnit/securityTraining.vue
index 80fe0c5..a2c78e5 100644
--- a/src/views/securityUnit/securityTraining.vue
+++ b/src/views/securityUnit/securityTraining.vue
@@ -12,6 +12,7 @@
       :data="data"
       :page.sync="page"
       ref="crudrec"
+      :permission="permissionList"
       @on-load="onLoad"
       :table-loading="loading"
       @row-save="rowSave"
@@ -37,12 +38,14 @@
           icon="el-icon-s-custom"
           :size="size"
           :type="type"
+          v-if="permission.securityTraining_view"
           @click.stop="rowClick(row)"
           >查看
         </el-button>
         <el-button
           :size="size"
           :type="type"
+          v-if="permission.securityTraining_upload"
           @click="handleUploadPage(row)"
           icon="el-icon-circle-check"
           >附件上传
@@ -54,6 +57,7 @@
           size="small"
           plain
           icon="el-icon-delete"
+          v-if="permission.securityTraining_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -62,6 +66,7 @@
           size="small"
           plain
           icon="el-icon-upload2"
+          v-if="permission.securityTraining_import"
           @click="handleImport1"
           >批量导入
         </el-button>
@@ -389,7 +394,15 @@
     }
   },
   computed: {
-    ...mapGetters(["userInfo"]),
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.securityTraining_add, false),
+        viewBtn: this.vaildData(this.permission.securityTraining_view, false),
+        delBtn: this.vaildData(this.permission.securityTraining_delete, false),
+        editBtn: this.vaildData(this.permission.securityTraining_edit, false)
+      };
+    },
     ids() {
       let ids = [];
       this.selectionList.forEach(ele => {
@@ -559,8 +572,7 @@
       });
     },
     onLoad(page, params = {}) {
-      if (this.userInfo.role_id == "1414840172333842433") {
-        console.log("是公安add jurisdiction");
+      if(this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警" || this.userInfo.role_name == "administrator"){
         params["jurisdiction"] = this.userInfo.jurisdiction;
       }
       params["stats"] = 1;
diff --git a/src/views/securityUnit/selfRecruitedSecurityGuard.vue b/src/views/securityUnit/selfRecruitedSecurityGuard.vue
index d47e58d..ace56ba 100644
--- a/src/views/securityUnit/selfRecruitedSecurityGuard.vue
+++ b/src/views/securityUnit/selfRecruitedSecurityGuard.vue
@@ -12,6 +12,7 @@
       :data="data"
       :page.sync="page"
       ref="crudrec"
+      :permission="permissionList"
       @on-load="onLoad"
       :table-loading="loading"
       @row-save="rowSave"
@@ -37,12 +38,14 @@
           icon="el-icon-s-custom"
           :size="size"
           :type="type"
+          v-if="permission.selfRecruitedSecurityGuard_view"
           @click.stop="rowClick(row)"
           >查看
         </el-button>
         <el-button
           :size="size"
           :type="type"
+          v-if="permission.selfRecruitedSecurityGuard_upload"
           @click="handleUploadPage(row)"
           icon="el-icon-circle-check"
           >附件上传
@@ -54,6 +57,7 @@
           size="small"
           plain
           icon="el-icon-delete"
+          v-if="permission.selfRecruitedSecurityGuard_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -62,6 +66,7 @@
           size="small"
           plain
           icon="el-icon-upload2"
+          v-if="permission.selfRecruitedSecurityGuard_import"
           @click="handleImport1"
           >批量导入
         </el-button>
@@ -364,7 +369,15 @@
     }
   },
   computed: {
-    ...mapGetters(["userInfo"]),
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.selfRecruitedSecurityGuard_add, false),
+        viewBtn: this.vaildData(this.permission.selfRecruitedSecurityGuard_view, false),
+        delBtn: this.vaildData(this.permission.selfRecruitedSecurityGuard_delete, false),
+        editBtn: this.vaildData(this.permission.selfRecruitedSecurityGuard_edit, false)
+      };
+    },
     ids() {
       let ids = [];
       this.selectionList.forEach(ele => {
@@ -530,7 +543,7 @@
       });
     },
     onLoad(page, params = {}) {
-      if (this.userInfo.role_id == "1414840172333842433") {
+      if(this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警" || this.userInfo.role_name == "administrator"){
         params["jurisdiction"] = this.userInfo.jurisdiction;
       }
       if (this.userInfo.role_name == "培训公司管理员") {
diff --git a/src/views/securityUnit/transRegionalcompany.vue b/src/views/securityUnit/transRegionalcompany.vue
index 36942b3..f7a3c56 100644
--- a/src/views/securityUnit/transRegionalcompany.vue
+++ b/src/views/securityUnit/transRegionalcompany.vue
@@ -12,6 +12,7 @@
       :data="data"
       :page.sync="page"
       ref="crudrec"
+      :permission="permissionList"
       @on-load="onLoad"
       :table-loading="loading"
       @row-save="rowSave"
@@ -38,12 +39,14 @@
           icon="el-icon-s-custom"
           :size="size"
           :type="type"
+          v-if="permission.transRegionalcompany_view"
           @click.stop="rowClick(row)"
           >查看
         </el-button>
         <el-button
           :size="size"
           :type="type"
+          v-if="permission.transRegionalcompany_upload"
           @click="handleUploadPage(row)"
           icon="el-icon-circle-check"
           >附件上传
@@ -55,6 +58,7 @@
           size="small"
           plain
           icon="el-icon-delete"
+          v-if="permission.transRegionalcompany_delete"
           @click="handleDelete"
           >删 除
         </el-button>
@@ -63,6 +67,7 @@
           size="small"
           plain
           icon="el-icon-upload2"
+          v-if="permission.transRegionalcompany_import"
           @click="handleImport1"
           >批量导入
         </el-button>
@@ -391,7 +396,15 @@
     }
   },
   computed: {
-    ...mapGetters(["userInfo"]),
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.transRegionalcompany_add, false),
+        viewBtn: this.vaildData(this.permission.transRegionalcompany_view, false),
+        delBtn: this.vaildData(this.permission.transRegionalcompany_delete, false),
+        editBtn: this.vaildData(this.permission.transRegionalcompany_edit, false)
+      };
+    },
     ids() {
       let ids = [];
       this.selectionList.forEach(ele => {
@@ -557,8 +570,7 @@
       });
     },
     onLoad(page, params = {}) {
-      if (this.userInfo.role_id == "1414840172333842433") {
-        console.log("是公安add jurisdiction");
+      if(this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警" || this.userInfo.role_name == "administrator"){
         params["jurisdiction"] = this.userInfo.jurisdiction;
       }
       params["stats"] = 4;
diff --git a/src/views/securityUnitChild/index copy.vue b/src/views/securityUnitChild/index copy.vue
index b27db3e..3d587f3 100644
--- a/src/views/securityUnitChild/index copy.vue
+++ b/src/views/securityUnitChild/index copy.vue
@@ -1101,7 +1101,7 @@
       if (deptId) {
         //2.1 单位信息进入
         //判断人员角色
-        if (role_name == "公安管理员" || role_name == "administrator") {
+        if (role_name == "公安管理员" || role_name == "administrator" || this.userInfo.role_name == "民警") {
           //3.1 判断按进入的公司类型
           if (data.state == "2") {
             //本市保安公司,对应的tab 条数
diff --git a/src/views/system/user copy.vue b/src/views/system/user copy.vue
index 9f89963..be30104 100644
--- a/src/views/system/user copy.vue
+++ b/src/views/system/user copy.vue
@@ -706,7 +706,7 @@
     //公安局进入
     var parentId = null;
     var that = this;
-    // if (this.userInfo.role_name == "公安管理员") {
+    // if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
 
     parentId = this.userInfo.dept_id;
     if (parentId == "1123598813738675201") {
diff --git a/src/views/system/user.vue b/src/views/system/user.vue
index e527212..fe5c521 100644
--- a/src/views/system/user.vue
+++ b/src/views/system/user.vue
@@ -717,7 +717,7 @@
 
     var that = this;
     //公安局进入
-    if (this.userInfo.role_name == "公安管理员") {
+    if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
       var parentId = this.userInfo.dept_id;
       var userId = this.userInfo.Id;
       getDeptLazyTree(parentId, userId).then(res => {
@@ -803,8 +803,24 @@
           column.dicData = b;
         } else if (d == "公安管理员") {
           for (var i in k) {
-            if (k[i].title == "公安管理员") {
+            if (k[i].title == "公安管理员" || k[i].title == "民警") {
               b.push(k[i]);
+            }
+          }
+          column.dicData = b;
+        }else if (d == "民警") {
+          for (var z in k) {
+            if (k[z].title == "民警") {
+              b.push(k[z]);
+            }
+            if (k[z].children) {
+              for (var ff in k[z].children) {
+                if (
+                  k[z].children[ff].title == "民警"
+                ) {
+                  b.push(k[z].children[ff]);
+                }
+              }
             }
           }
           column.dicData = b;
@@ -814,7 +830,7 @@
       });
       // this.userInfo.role_name == "保安公司管理员"
       //公安局进入
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         var parentId = this.userInfo.dept_id;
         var userId = this.userInfo.Id;
         getDeptLazyTree(parentId, userId).then(res => {
@@ -1031,7 +1047,7 @@
     },
     beforeOpen(done, type) {
       if (["edit", "view"].includes(type)) {
-        if (this.userInfo.role_name != "公安管理员") {
+        if (this.userInfo.role_name != "公安管理员" && this.userInfo.role_name != "民警") {
           const column = this.findObject(this.option.group, "code");
           column.display = false;
         }
@@ -1050,7 +1066,7 @@
         });
       }
       if (["add"].includes(type)) {
-        if (this.userInfo.role_name != "公安管理员") {
+        if (this.userInfo.role_name != "公安管理员" && this.userInfo.role_name !== "民警") {
           const column = this.findObject(this.option.group, "code");
           column.display = false;
         }
@@ -1071,7 +1087,7 @@
       this.loading = true;
       var deptid = this.deptids == null ? this.treeDeptId.id : this.deptids;
       //公安局进入
-      if (this.userInfo.role_name == "公安管理员") {
+      if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         params["jurisdiction"] = this.userInfo.jurisdiction;
         params["roleId"] = "1";
       }
diff --git a/src/views/talk/talk.vue b/src/views/talk/talk.vue
index ae084b1..3624ea2 100644
--- a/src/views/talk/talk.vue
+++ b/src/views/talk/talk.vue
@@ -322,8 +322,12 @@
       this.onLoad(this.page, this.query);
     },
     onLoad(page, params = {}) {
+      if(this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警" || this.userInfo.role_name == "administrator"){
+        params["jurisdiction"] = this.userInfo.jurisdiction;
+      }else{
+        params["deptid"] = this.userInfo.dept_id;
+      }
       this.loading = true;
-      // console.log(1);
       getList(
         page.currentPage,
         page.pageSize,
diff --git a/src/views/trainApply/index.vue b/src/views/trainApply/index.vue
index 7230bf3..ec87ff4 100644
--- a/src/views/trainApply/index.vue
+++ b/src/views/trainApply/index.vue
@@ -6,131 +6,128 @@
  * menu-name 报名考试
  */
 <template>
-  <el-row class="morpheus-box-apply-exam-1">
-    <el-col
-      :span="24"
-      :class="[
-        'hasButOne',
-        $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '',
-      ]"
+  <!-- class="exam-card-body" -->
+  <basic-container
+    :class="[
+      $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize',
+      $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : '',
+    ]"
+  >
+    <avue-crud
+      v-model="obj"
+      class="company-box tablesss"
+      :option="questionBankOption"
+      :search.sync="questionBankSearch"
+      :table-loading="questionBankLoading"
+      :data="questionBankData"
+      ref="questionBankCrud"
+      :page.sync="questionBankPage"
+      @on-load="questionBankOnLoad"
+      @selection-change="questionBankSelectionChange"
+      @search-change="questionBankSearchChange"
+      @search-reset="questionBankSearchReset"
+      @current-change="questionBankCurrentChange"
+      @size-change="questionBankSizeChange"
+      @row-save="questionBankRowSave"
+      @row-del="questionBankRowDel"
+      :row-style="rowStyle"
     >
-      <el-card>
-        <div class="exam-card-body">
-          <avue-crud
-            v-model="obj"
-            class="company-box"
-            :option="questionBankOption"
-            :search.sync="questionBankSearch"
-            :table-loading="questionBankLoading"
-            :data="questionBankData"
-            ref="questionBankCrud"
-            :page.sync="questionBankPage"
-            @on-load="questionBankOnLoad"
-            @selection-change="questionBankSelectionChange"
-            @search-change="questionBankSearchChange"
-            @search-reset="questionBankSearchReset"
-            @current-change="questionBankCurrentChange"
-            @size-change="questionBankSizeChange"
-            @row-save="questionBankRowSave"
-            @row-del="questionBankRowDel"
-            :row-style="rowStyle"
-          >
-            <!-- 自定义按钮 -->
-            <template slot="menuLeft">
-              <el-button
-                style="display: none"
-                type="warning"
-                size="small"
-                plain
-                icon="el-icon-download"
-                @click="handleExport"
-                >导出
-              </el-button>
-              <el-button
-                type="warning"
-                size="small"
-                plain
-                icon="el-icon-receiving"
-                @click="handleExport"
-                >清册打印
-              </el-button>
-              <el-button
-                type="success"
-                size="small"
-                plain
-                v-if="false"
-                icon="el-icon-download"
-                @click="handleImport"
-                >清册导入
-              </el-button>
-              <el-button
-                type="warning"
-                size="small"
-                plain
-                icon="el-icon-download"
-                @click="handleApplyInfoExport"
-                >报名清册信息导出
-              </el-button>
-            </template>
+      <!-- 自定义按钮 -->
+      <template slot="menuLeft">
+        <el-button
+          style="display: none"
+          type="warning"
+          size="small"
+          plain
+          icon="el-icon-download"
+          @click="handleExport"
+          >导出
+        </el-button>
+        <el-button
+          type="warning"
+          size="small"
+          plain
+          icon="el-icon-receiving"
+          @click="handleExport"
+          >清册打印
+        </el-button>
+        <el-button
+          type="success"
+          size="small"
+          plain
+          v-if="false"
+          icon="el-icon-download"
+          @click="handleImport"
+          >清册导入
+        </el-button>
+        <el-button
+          type="warning"
+          size="small"
+          plain
+          icon="el-icon-download"
+          @click="handleApplyInfoExport"
+          >报名清册信息导出
+        </el-button>
+      </template>
 
-            <template slot-scope="{ type, row }" slot="menu">
-              <el-button
-                :type="type"
-                size="small"
-                icon="el-icon-receiving"
-                :disabled="
-                  row.candidateNo == '' ||
-                  row.cancel == 2 ||
-                  row.auditStatus == 2
-                "
-                @click="handlePrint(row)"
-                >准考证打印
-              </el-button>
-              <el-button
-                :type="type"
-                size="small"
-                icon="el-icon-refresh-left"
-                :disabled="
-                  row.cancel == 2 || row.isExam == 2 || row.isExam == 3
-                "
-                @click="revoke(row)"
-                >取消报名
-              </el-button>
-              <el-button
-                style="display: none"
-                :type="type"
-                size="small"
-                icon="el-icon-circle-check"
-                :disabled="row.auditStatus == 1"
-                @click="auditSucess(row)"
-                >审核通过
-              </el-button>
-              
-            </template>
-          </avue-crud>
+      <template slot-scope="{ type, row }" slot="menu">
+        <el-button
+          :type="type"
+          size="small"
+          icon="el-icon-receiving"
+          :disabled="
+            row.candidateNo == '' || row.cancel == 2 || row.auditStatus == 2
+          "
+          @click="handlePrint(row)"
+          >准考证打印
+        </el-button>
+        <el-button
+          :type="type"
+          size="small"
+          icon="el-icon-refresh-left"
+          :disabled="row.cancel == 2 || row.isExam == 2 || row.isExam == 3"
+          @click="revoke(row)"
+          >取消报名
+        </el-button>
+        <el-button
+          style="display: none"
+          :type="type"
+          size="small"
+          icon="el-icon-circle-check"
+          :disabled="row.auditStatus == 1"
+          @click="auditSucess(row)"
+          >审核通过
+        </el-button>
+        <el-button
+          v-if="row.vipStatus != 1 && permission.exam_vip"
+          icon="el-icon-folder-checked"
+          @click="usesVipConfirm(row)"
+          :size="size"
+          :type="type"
+          >缴费确认</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>
-        </div>
-      </el-card>
-    </el-col>
-  </el-row>
+    <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>
@@ -138,12 +135,15 @@
   getdata,
   adddata,
   cancelTrainAudit,
+  cancelTrain,
   auditSucess,
   remove,
+  vipSign,
 } from "@/api/trainingRegistration/trainingRegistration";
 import Qs from "qs";
 import { getToken } from "@/util/auth";
 import { mapState } from "vuex";
+import { mapGetters } from "vuex";
 
 var DIC = {
   cancel: [
@@ -187,7 +187,7 @@
         //dialogType: 'drawer',
         dialogClickModal: false,
         // 操作栏宽度
-        menuWidth: 200,
+        menuWidth: 280,
         ...this.$store.state.control.clearOtherBut,
         column: [
           {
@@ -230,6 +230,7 @@
             // 表单新增时是否可见
             addDisplay: false,
             search: true,
+            searchSpan: 3,
             // 表单新增时是否为查看模式
             addDetail: false,
             // 表单编辑时是否禁止
@@ -281,12 +282,14 @@
                 trigger: "blur",
               },
             ],
-            width: 220,
+            width: 180,
+            overHidden: true,
           },
           {
             label: "所属企业",
             prop: "deptName",
             search: true,
+            searchSpan: 5,
             slot: true,
             // 表单新增时是否禁止
             addDisabled: false,
@@ -307,7 +310,8 @@
                 trigger: "blur",
               },
             ],
-            width: 220,
+            width: 200,
+            overHidden: true,
           },
           {
             label: "报名状态",
@@ -379,7 +383,7 @@
                 trigger: "blur",
               },
             ],
-            width: 200,
+            width: 150,
           },
           {
             label: "报考证件",
@@ -560,6 +564,34 @@
             addDisplay: false,
             width: 100,
           },
+          //   {
+          //     label: "缴费状态",
+          //     search: true,
+          //     type: "select",
+          //     searchSpan: 4,
+          //     prop: "vipStatus",
+          //     dicData: [
+          //         {
+          //             label: '全部',
+          //             value: 0,
+          //         },
+          //         {
+          //             label: '已缴费',
+          //             value: 1,
+          //         },
+          //         {
+          //             label: '未缴费',
+          //             value: 2,
+          //         }
+          //     ],
+          //     props: {
+          //         label: "label",
+          //         value: "value"
+          //     },
+          //     editDisplay: false,
+          //     addDisplay: false,
+          //     width: 100,
+          //   },
         ],
       },
       questionBankSearch: {},
@@ -659,6 +691,7 @@
     if (i > 1) {
       this.$store.state.tags.tagList.splice(ind, 1);
     }
+    this.$store.commit("setWindowSizeHeightAdd");
   },
   computed: {
     ...mapState({
@@ -670,6 +703,15 @@
         ids.push(ele.id);
       });
       return ids.join(",");
+    },
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.notice_add, false),
+        viewBtn: this.vaildData(this.permission.notice_view, false),
+        delBtn: this.vaildData(this.permission.notice_delete, false),
+        editBtn: this.vaildData(this.permission.notice_edit, false),
+      };
     },
   },
   methods: {
@@ -691,7 +733,7 @@
           auditStatus: this.questionBankSearch.auditStatus,
           deptName: this.questionBankSearch.deptName,
           isExam: this.questionBankSearch.isExam,
-          realName: this.questionBankSearch.realName
+          realName: this.questionBankSearch.realName,
         };
         data["examId"] = this.$route.query.id;
         //序列号url形式,用&拼接
@@ -736,6 +778,7 @@
         this.questionBankData = data.records;
         this.questionBankLoading = false;
         this.questionBankSelectionClear();
+        this.$store.commit("setWindowSizeHeightAdd");
       });
     },
     questionBankSelectionClear() {
@@ -769,7 +812,7 @@
         type: "warning",
       }).then(() => {
         row.cancel = 2;
-        cancelTrainAudit(row).then(
+        cancelTrain(row).then(
           () => {
             this.onLoad(this.page);
             this.$message({
@@ -809,7 +852,28 @@
         );
       });
     },
-
+    usesVipConfirm(row) {
+      this.$confirm("确定将选择当前人员确认已缴费?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          var data = {
+            id: row.id,
+            userId: row.userId,
+            vipStatus: 1,
+          };
+          return vipSign(data);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
     // 新增
     questionBankRowSave(row, done, loading) {
       adddata({
diff --git a/src/views/trainExam/modifiedGrades.vue b/src/views/trainExam/modifiedGrades.vue
index 447a3d8..10f5f3e 100644
--- a/src/views/trainExam/modifiedGrades.vue
+++ b/src/views/trainExam/modifiedGrades.vue
@@ -644,7 +644,7 @@
     };
   },
   created() {
-    if (this.userInfo.role_name == "公安管理员") {
+    if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
       //判断是否为市局管理员
       if (this.userInfo.jurisdiction == "1372091709474910209") {
         this.check = true;
@@ -787,7 +787,7 @@
             //如果是培训公司管理员
             params["trainUnitId"] = that.userInfo.dept_id;
           }
-          if (this.userInfo.role_name == "公安管理员") {
+          if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
             //如果是公安管理员
             params["jurisdiction"] = this.userInfo.jurisdiction;
           }
diff --git a/src/views/trainExam/singleperformance.vue b/src/views/trainExam/singleperformance.vue
index 28b2525..deeef57 100644
--- a/src/views/trainExam/singleperformance.vue
+++ b/src/views/trainExam/singleperformance.vue
@@ -624,6 +624,10 @@
             //如果是培训公司管理员
             params["trainUnitId"] = that.userInfo.dept_id;
           }
+          if (roleAlias == "公安管理员" || roleAlias == "民警") {
+            //如果公安
+            params["jurisdiction"] = that.userInfo.jurisdiction;
+          }
           that.questionBankLoading = false;
           params["examType"] = 2;
           if (this.sort) {
diff --git a/src/views/trainingRegistration/data.js b/src/views/trainingRegistration/data.js
index 15554f3..8e5d689 100644
--- a/src/views/trainingRegistration/data.js
+++ b/src/views/trainingRegistration/data.js
@@ -35,7 +35,7 @@
         }],
         searchSpan: 4,
         searchLabelWidth: 110,
-        width: 200,
+        width: 180,
     }, {
         label: "姓名",
         prop: "userId",
@@ -60,6 +60,7 @@
         editDisplay: false,
         addDisplay: false,
         searchSpan: 3,
+        width:90
     }, {
         label: "身份证号",
         prop: "idCardNo",
@@ -138,7 +139,8 @@
     },
     {
         label: "考试证件",
-        prop: "applyCard"
+        prop: "applyCard",
+        width:70
     },
     {
         label: "审核状态",
@@ -241,6 +243,34 @@
         addDisplay: false,
         width: 100,
     },
+    // {
+    //     label: "缴费状态",
+    //     search: true,
+    //     type: "select",
+    //     searchSpan: 4,
+    //     prop: "vipStatus",
+    //     dicData: [
+    //         {
+    //             label: '全部',
+    //             value: 0,
+    //         },
+    //         {
+    //             label: '已缴费',
+    //             value: 1,
+    //         },
+    //         {
+    //             label: '未缴费',
+    //             value: 2,
+    //         }
+    //     ],
+    //     props: {
+    //         label: "label",
+    //         value: "value"
+    //     },
+    //     editDisplay: false,
+    //     addDisplay: false,
+    //     width: 100,
+    // },
     //  {
     //     label: "确认截止时间",
     //     prop: "remainingTime",
diff --git a/src/views/trainingRegistration/index.vue b/src/views/trainingRegistration/index.vue
index 9c7c4f8..a3a234e 100644
--- a/src/views/trainingRegistration/index.vue
+++ b/src/views/trainingRegistration/index.vue
@@ -93,6 +93,14 @@
           :type="type"
           >确认报名</el-button
         >
+        <el-button
+          v-if="row.vipStatus!=1 && permission.trainingRegistration_vip"
+          icon="el-icon-folder-checked"
+          @click="usesVipConfirm(row)"
+          :size="size"
+          :type="type"
+          >缴费确认</el-button
+        >
       </template>
     </avue-crud>
 
@@ -141,7 +149,8 @@
   update,
   remove,
   cancelTrain,
-  addExam
+  addExam,
+  vipSign
 } from "@/api/trainingRegistration/trainingRegistration";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
@@ -339,7 +348,7 @@
           }
         },
         labelWidth: "120",
-        menuWidth: 200,
+        menuWidth: 280,
         align: "center",
         reserveSelection: true,
         selection: true,
@@ -565,6 +574,28 @@
           });
         });
     },
+    usesVipConfirm(row){
+        this.$confirm("确定将选择当前人员确认已缴费?", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+      })
+        .then(() => {
+          var data = {
+            id : row.id,
+            userId:row.userId,
+            vipStatus :1
+          }
+          return vipSign(data);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+        });
+    },
     selectionChange(list) {
       // this.selectionList = list;
       this.choiceName = [];
@@ -626,6 +657,10 @@
             //如果是培训公司管理员
             params["trainingUnitId"] = that.userInfo.dept_id;
           }
+          if (roleAlias == "公安管理员" || roleAlias == "民警") {
+            //如果公安
+            params["jurisdiction"] = that.userInfo.jurisdiction;
+          }
           // params["isExam"] = 1;
           getdata(
             page.currentPage,
diff --git a/src/views/wel/index.vue b/src/views/wel/index.vue
index 30e36da..b879dd4 100644
--- a/src/views/wel/index.vue
+++ b/src/views/wel/index.vue
@@ -67,7 +67,7 @@
   },
   created(){
     //获取二维码图片
-    if(this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "administrator"){
+    if(this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "administrator" || this.userInfo.role_name == "民警"){
       this.isImg = true;
       //查询图片
       getDetails(10).then((res) => {
diff --git a/src/views/workreport/workreport.vue b/src/views/workreport/workreport.vue
index 12c4a2b..1e19ab7 100644
--- a/src/views/workreport/workreport.vue
+++ b/src/views/workreport/workreport.vue
@@ -293,7 +293,7 @@
             this.selectionClear();
           });
         });
-      } else if (this.userInfo.role_name == "公安管理员") {
+      } else if (this.userInfo.role_name == "公安管理员" || this.userInfo.role_name == "民警") {
         const column = that.findObject(that.option.column, "category");
         var code1 = { code: "workReportCategory" };
         getDictionaryBiz(code1).then(res => {

--
Gitblit v1.9.3