From b93a670eb02613d9ce82e4cca02f9435cdd855b4 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Thu, 16 Sep 2021 09:45:16 +0800
Subject: [PATCH] 解决冲突

---
 src/views/applyexam/index.vue                         |  603 +++----
 src/views/trainingRegistration/data.js                |  331 ++++
 src/views/securityUnit/index.vue                      | 1384 +++++++++--------
 vue.config.js                                         |    4 
 src/views/exam/examPayment.vue                        |  394 +++++
 src/views/securityUnit/selfRecruitedSecurityGuard.vue |   16 
 src/views/securityUnit/armedEscort.vue                |   16 
 src/api/applyexam/applyexam.js                        |  178 +-
 src/views/trainingRegistration/index.vue              | 1330 ++++++++++++-----
 src/views/applydetailed/index.vue                     |   92 +
 src/views/companyApply/index.vue                      |   81 
 src/api/exam/examPayment.js                           |   52 
 src/views/securityUnit/transRegionalcompany.vue       |   16 
 src/views/exam/startexam.vue                          |    6 
 src/views/securityUnit/securityTraining.vue           |   16 
 15 files changed, 3,009 insertions(+), 1,510 deletions(-)

diff --git a/src/api/applyexam/applyexam.js b/src/api/applyexam/applyexam.js
index 14e597d..7769502 100644
--- a/src/api/applyexam/applyexam.js
+++ b/src/api/applyexam/applyexam.js
@@ -1,120 +1,130 @@
 import request from '@/router/axios';
 
 export const getList = (current, size, params, deptId) => {
-  return request({
-    url: '/api/blade-user/page',
-    method: 'get',
-    params: {
-      ...params,
-      current,
-      size,
-      deptId,
-    }
-  })
+    return request({
+        url: '/api/blade-user/page',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size,
+            deptId,
+        }
+    })
 }
 
 export const remove = (ids) => {
-  return request({
-    url: '/api/blade-user/remove',
-    method: 'post',
-    params: {
-      ids,
-    }
-  })
+    return request({
+        url: '/api/blade-user/remove',
+        method: 'post',
+        params: {
+            ids,
+        }
+    })
 }
 
 export const add = (row) => {
-  return request({
-    url: '/api/blade-user/submit',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/blade-user/submit',
+        method: 'post',
+        data: row
+    })
 }
 
 export const update = (row) => {
-  return request({
-    url: '/api/blade-user/update',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/blade-user/update',
+        method: 'post',
+        data: row
+    })
 }
 
 export const updatePlatform = (userId, userType, userExt) => {
-  return request({
-    url: '/api/blade-user/update-platform',
-    method: 'post',
-    params: {
-      userId,
-      userType,
-      userExt,
-    }
-  })
+    return request({
+        url: '/api/blade-user/update-platform',
+        method: 'post',
+        params: {
+            userId,
+            userType,
+            userExt,
+        }
+    })
+}
+
+export const getApplyDetailList = (examId) => {
+    return request({
+        url: '/api/apply/getApplyDetailList',
+        method: 'get',
+        params: {
+            examId,
+        }
+    })
 }
 
 export const getUser = (id) => {
-  return request({
-    url: '/api/blade-user/detail',
-    method: 'get',
-    params: {
-      id,
-    }
-  })
+    return request({
+        url: '/api/blade-user/detail',
+        method: 'get',
+        params: {
+            id,
+        }
+    })
 }
 
 export const getUserPlatform = (id) => {
-  return request({
-    url: '/api/blade-user/platform-detail',
-    method: 'get',
-    params: {
-      id,
-    }
-  })
+    return request({
+        url: '/api/blade-user/platform-detail',
+        method: 'get',
+        params: {
+            id,
+        }
+    })
 }
 
 export const getUserInfo = () => {
-  return request({
-    url: '/api/blade-user/info',
-    method: 'get',
-  })
+    return request({
+        url: '/api/blade-user/info',
+        method: 'get',
+    })
 }
 
 export const resetPassword = (userIds) => {
-  return request({
-    url: '/api/blade-user/reset-password',
-    method: 'post',
-    params: {
-      userIds,
-    }
-  })
+    return request({
+        url: '/api/blade-user/reset-password',
+        method: 'post',
+        params: {
+            userIds,
+        }
+    })
 }
 
 export const updatePassword = (oldPassword, newPassword, newPassword1) => {
-  return request({
-    url: '/api/blade-user/update-password',
-    method: 'post',
-    params: {
-      oldPassword,
-      newPassword,
-      newPassword1,
-    }
-  })
+    return request({
+        url: '/api/blade-user/update-password',
+        method: 'post',
+        params: {
+            oldPassword,
+            newPassword,
+            newPassword1,
+        }
+    })
 }
 
 export const updateInfo = (row) => {
-  return request({
-    url: '/api/blade-user/update-info',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/blade-user/update-info',
+        method: 'post',
+        data: row
+    })
 }
 
 export const grant = (userIds, roleIds) => {
-  return request({
-    url: '/api/blade-user/grant',
-    method: 'post',
-    params: {
-      userIds,
-      roleIds,
-    }
-  })
-}
+    return request({
+        url: '/api/blade-user/grant',
+        method: 'post',
+        params: {
+            userIds,
+            roleIds,
+        }
+    })
+}
\ No newline at end of file
diff --git a/src/api/exam/examPayment.js b/src/api/exam/examPayment.js
new file mode 100644
index 0000000..3c41947
--- /dev/null
+++ b/src/api/exam/examPayment.js
@@ -0,0 +1,52 @@
+import request from '@/router/axios';
+
+
+export const getExamPaymentList = (current, size, params) => {
+    return request({
+        url: '/api/examPayment/page',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size
+        }
+    })
+}
+
+
+export const remove = (ids) => {
+    return request({
+        url: '/api/examPayment/remove',
+        method: 'post',
+        params: {
+            ids,
+        }
+    })
+}
+
+export const add = (row) => {
+    return request({
+        url: '/api/examPayment/submit',
+        method: 'post',
+        data: row
+    })
+}
+
+export const update = (row) => {
+    return request({
+        url: '/api/examPayment/submit',
+        method: 'post',
+        data: row
+    })
+}
+
+
+export const getExamPayment = (id) => {
+    return request({
+        url: '/api/examPayment/detail',
+        method: 'get',
+        params: {
+            id,
+        }
+    })
+}
\ No newline at end of file
diff --git a/src/views/applydetailed/index.vue b/src/views/applydetailed/index.vue
index e813954..22310e7 100644
--- a/src/views/applydetailed/index.vue
+++ b/src/views/applydetailed/index.vue
@@ -34,17 +34,25 @@
                 type="warning"
                 size="small"
                 plain
-                icon="el-icon-download"
+                icon="el-icon-position"
+                @click="handleImport1"
+                >报名清册生成
+              </el-button>
+              <el-button
+                type="warning"
+                size="small"
+                plain
+                icon="el-icon-receiving"
                 @click="handleExport"
-                >清册打印
+                >报名清册打印
               </el-button>
               <el-button
                 type="success"
                 size="small"
                 plain
-                icon="el-icon-receiving"
+                icon="el-icon-upload2"
                 @click="handleImport"
-                >清册导入
+                >报名清册附件上传
               </el-button>
             </template>
 
@@ -78,6 +86,55 @@
               </template>
             </avue-form>
           </el-dialog>
+          <el-dialog
+            title="报名清册生成"
+            append-to-body
+            :visible.sync="excelBox1"
+            width="1200px"
+          >
+            <el-table
+              :data="tableData"
+              :span-method="arraySpanMethod"
+              border
+              style="width: 100%">
+
+              <template slot-scope="{ row }" slot="sex">
+                  {{row.sex==1?"男":row.sex==2?"女":row.sex==-1?'':row.sex}}
+              </template>
+              <el-table-column
+                prop="realName"
+                label="姓名">
+              </el-table-column>
+              <el-table-column
+                prop="idCardNo"
+                label="身份证号">
+              </el-table-column>
+              <el-table-column
+                prop="sex"
+                label="性别">
+                <template slot-scope="scope">
+                  {{scope.row.sex==1?"男":scope.row.sex==2?"女":scope.row.sex==-1?'':scope.row.sex}}
+                </template>
+              </el-table-column>
+              <el-table-column
+                prop="candidateNo"
+                label="准考证号">
+              </el-table-column>
+              <el-table-column
+                prop="deptName"
+                width="180"
+                label="单位名称">
+              </el-table-column>
+              <el-table-column
+                prop="applyCard"
+                label="报考证件">
+              </el-table-column>
+              <el-table-column
+                prop="applyTime"
+                label="报名时间">
+              </el-table-column>
+            </el-table>
+          </el-dialog>
         </div>
       </el-card>
     </el-col>
@@ -86,6 +143,7 @@
 
 <script>
 import { getApplyList, addApply, remove } from "@/api/examapi/applyexam";
+import { getApplyDetailList } from "@/api/applyexam/applyexam";
 import { mapState } from "vuex";
 
 var DIC = {
@@ -105,10 +163,12 @@
   data() {
     var examId = this.$route.query.id;
     return {
+      tableData:[],
       obj: {
         name: "张三",
       },
       excelBox: false,
+      excelBox1: false,
       questionBankOption: {
         // 操作栏多余按钮去除
         delBtn: false,
@@ -118,6 +178,7 @@
         menu: true,
         // 导出按钮
         // excelBtn: true,
+        // excelBtnText:"报名清册生成",
         viewBtn: false,
 
         // title: '题库',
@@ -538,7 +599,7 @@
     questionBankOnLoad(page, params = {}) {
       // debugger;
       params["examId"] = this.$route.query.id;
-      // params["applyStatus"] = 2;
+      params["applyStatus"] = 3;
       this.questionBankLoading = false;
       getApplyList(
         page.currentPage,
@@ -639,10 +700,29 @@
         });
     },
 
-
     handleImport() {
       this.excelBox = true;
     },
+    handleImport1() {
+      this.excelBox1 = true;
+      //获取报名信息
+      getApplyDetailList(this.$route.query.id).then((res)=>{
+          // console.log(res.data,111452);
+          this.tableData = res.data.applyList;
+          this.tableData.push({
+            realName:"总人数",
+            idCardNo:res.data.num
+          })
+      })
+    },
+    arraySpanMethod({ rowIndex, columnIndex }) {
+        // console.log(rowIndex,columnIndex,333);
+        if(rowIndex == (this.tableData.length-1)){
+          if (columnIndex === 0) {
+            return [1, 6];
+          }
+        }
+      },
     handleTemplate() {
       window.open(`/api/apply/export-template`);
     },
diff --git a/src/views/applyexam/index.vue b/src/views/applyexam/index.vue
index bf9a8f8..ca1296b 100644
--- a/src/views/applyexam/index.vue
+++ b/src/views/applyexam/index.vue
@@ -75,7 +75,7 @@
                 plain
                 icon="el-icon-folder-checked"
                 v-if="permission.applyexam_import"
-               @click="handleImport"
+                @click="handleImport"
                 >批量报名
               </el-button>
             </template>
@@ -103,7 +103,7 @@
                 :type="type"
                 size="small"
                 icon="el-icon-receiving"
-                v-if="permission.applyexam_print && row.candidateNo!=''"
+                v-if="permission.applyexam_print && row.candidateNo != ''"
                 @click="handlePrint(row)"
                 >准考证打印
               </el-button>
@@ -181,6 +181,7 @@
 import { mapState } from "vuex";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
+import { getUserDetails } from "@/api/experience/experience"
 var DIC = {
   applyStatus: [
     {
@@ -197,6 +198,9 @@
 export default {
   data() {
     return {
+      obj:{
+        userId:''
+      },
       dialogFormVisible: false,
       dialogExamFormVisible: false,
       examPersission: false,
@@ -302,15 +306,15 @@
           {
             label: "考试人数",
             prop: "number",
-            type: 'number',
+            type: "number",
             span: 12,
-            precision:0,
-            step:50,
-            mock:{
-              type:'number',
-              max:1000,
-              min:0,
-              precision:0
+            precision: 0,
+            step: 50,
+            mock: {
+              type: "number",
+              max: 1000,
+              min: 0,
+              precision: 0,
             },
             rules: [
               {
@@ -321,22 +325,22 @@
             ],
             minRows: 0,
             maxRows: 1000,
-            value:50,
+            value: 50,
           },
           {
             label: "序号开始",
             prop: "serialStart",
             span: 6,
-            value:1,
-            mock:{
-              type:'number',
-              max:1000,
-              min:1,
-              precision:0
+            value: 1,
+            mock: {
+              type: "number",
+              max: 1000,
+              min: 1,
+              precision: 0,
             },
             minRows: 1,
             maxRows: 1000,
-            type:"number",
+            type: "number",
             rules: [
               {
                 required: true,
@@ -349,16 +353,16 @@
             label: "序号结束",
             prop: "serialEnd",
             span: 6,
-            value:50,
-            mock:{
-              type:'number',
-              max:1000,
-              min:1,
-              precision:0
+            value: 50,
+            mock: {
+              type: "number",
+              max: 1000,
+              min: 1,
+              precision: 0,
             },
             minRows: 1,
             maxRows: 1000,
-            type:"number",
+            type: "number",
             rules: [
               {
                 required: true,
@@ -427,7 +431,8 @@
         // 操作栏多余按钮去除
         delBtn: false,
         editBtn: false,
-        addBtn: false,
+        addBtn: true,
+        addBtnText: "报名信息新增",
         selection: false,
         menu: true,
         // 导出按钮
@@ -450,13 +455,55 @@
         defaultExpandAll: true,
         // 操作栏宽度
         menuWidth: 250,
-
         column: [
+          {
+            label: "报名时间",
+            prop: "releaseTimeRange",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            searchRange: true,
+            searchSpan: 5,
+            hide: true,
+            addDisplay: false,
+            editDisplay: false,
+            viewDisplay: false,
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请输入时间",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "保安公司名称",
+            searchLabelWidth: "110",
+            labelWidth: 110,
+            cascaderItem: ["userId"],
+            prop: "deptId",
+            type: "tree",
+            hide: true,
+            viewDisabled:false,
+            viewDisplay:false,
+            dicUrl:
+              "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            slot: true,
+            searchSpan: 4,
+            search: false,
+            width: 260,
+          },
           {
             label: "保安姓名",
             prop: "userId",
             type: "tree",
-            dicUrl: "",
+            dicUrl:
+              "/api/blade-user/security-apply-tree?examType=1&deptId={{key}}",
             hide: true,
             slot: true,
             searchSpan: 4,
@@ -475,7 +522,7 @@
             // 表单编辑时是否为查看模式
             editDetail: false,
             props: {
-              label: "title",
+              label: "name",
               value: "id",
             },
             rules: [
@@ -522,107 +569,17 @@
             prop: "age",
             slot: true,
             // 表单新增时是否禁止
-            addDisabled: false,
+            addDisabled: true,
             // 表单新增时是否可见
-            addDisplay: false,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: false,
-            // 表单编辑时是否可见
-            editDisplay: false,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
+            addDisplay: true,
             viewDisplay: true,
-          },
-          // {
-          //   label: "考试名称",
-          //   prop: "examName",
-          //   type: "tree",
-          //   dicUrl: "/api/exampaper/page-tree?examType=1",
-          //   // search: true,
-          //   slot: true,
-          //   // 表单新增时是否禁止
-          //   addDisabled: false,
-          //   // 表单新增时是否可见
-          //   addDisplay: true,
-          //   // 表单新增时是否为查看模式
-          //   addDetail: false,
-          //   // 表单编辑时是否禁止
-          //   editDisabled: true,
-          //   // 表单编辑时是否可见
-          //   editDisplay: true,
-          //   // 表单编辑时是否为查看模式
-          //   editDetail: false,
-          //   props: {
-          //     label: "examName",
-          //     value: "id",
-          //   },
-          //   rules: [
-          //     {
-          //       required: true,
-          //       message: "请选择试卷名称",
-          //       trigger: "blur",
-          //     },
-          //   ],
-          //   width: 220,
-          // },
-          {
-            label: "所属公司",
-            prop: "deptName",
-            search: true,
-            slot: true,
-            searchSpan: 6,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: false,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: true,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            rules: [
-              {
-                required: true,
-                message: "请选择所属公司",
-                trigger: "blur",
-              },
-            ],
-            width: 220,
-          },
-          {
-            label: "准考证号",
-            prop: "candidateNo",
-            slot: true,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: false,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: false,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            rules: [
-              {
-                required: true,
-                message: "请选择准考证号",
-                trigger: "blur",
-              },
-            ],
-            width: 100,
           },
           {
             label: "身份证号",
             prop: "idCardNo",
             slot: true,
+            search: true,
+            searchSpan: 5,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -645,21 +602,14 @@
             width: 150,
           },
           {
-            label: "报考证件",
-            prop: "applyCard",
-            slot: true,
+            label: "身份证号",
+            prop: "cardid",
+            searchSpan: 5,
             // 表单新增时是否禁止
-            addDisabled: false,
+            addDisabled: true,
             // 表单新增时是否可见
-            addDisplay: false,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: false,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
+            addDisplay: true,
+            hide:true,
             rules: [
               {
                 required: true,
@@ -667,23 +617,108 @@
                 trigger: "blur",
               },
             ],
+            width: 150,
+          },
+          {
+            label: "性别",
+            prop: "sex",
+            type: "select",
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+            dicData: [
+              {
+                label: "男",
+                value: 1,
+              },
+              {
+                label: "女",
+                value: 2,
+              },
+              {
+                label: "未知",
+                value: 3,
+              },
+              {
+                label: " ",
+                value: -1,
+              },
+            ],
+            display: false,
+          },
+
+          {
+            label: "籍贯",
+            prop: "nativePlace",
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+          },
+          {
+            label: "联系电话",
+            prop: "phone",
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+          },
+          {
+            label: "保安公司名称",
+            labelWidth: "110",
+            addDisplay: false,
+            prop: "deptName",
+            width: 260,
           },
           // {
-          //     label: "试卷分数",
-          //     prop: "paperScore",
-          //     slot: true,
-          //     // 表单新增时是否禁止
-          //     addDisabled: false,
-          //     // 表单新增时是否可见
-          //     addDisplay: false,
-          //     // 表单新增时是否为查看模式
-          //     addDetail: false,
-          //     // 表单编辑时是否禁止
-          //     editDisabled: true,
-          //     // 表单编辑时是否可见
-          //     editDisplay: true,
-          //     // 表单编辑时是否为查看模式
-          //     editDetail: false
+          //   label: "准考证号",
+          //   prop: "candidateNo",
+          //   slot: true,
+          //   // 表单新增时是否禁止
+          //   addDisabled: false,
+          //   // 表单新增时是否可见
+          //   addDisplay: false,
+          //   // 表单新增时是否为查看模式
+          //   addDetail: false,
+          //   // 表单编辑时是否禁止
+          //   editDisabled: false,
+          //   // 表单编辑时是否可见
+          //   editDisplay: true,
+          //   // 表单编辑时是否为查看模式
+          //   editDetail: false,
+          //   rules: [
+          //     {
+          //       required: true,
+          //       message: "请选择准考证号",
+          //       trigger: "blur",
+          //     },
+          //   ],
+          //   width: 100,
+          // },
+          // {
+          //   label: "报考证件",
+          //   prop: "applyCard",
+          //   slot: true,
+          //   // 表单新增时是否禁止
+          //   addDisabled: false,
+          //   // 表单新增时是否可见
+          //   addDisplay: false,
+          //   // 表单新增时是否为查看模式
+          //   addDetail: false,
+          //   // 表单编辑时是否禁止
+          //   editDisabled: false,
+          //   // 表单编辑时是否可见
+          //   editDisplay: true,
+          //   // 表单编辑时是否为查看模式
+          //   editDetail: false,
+          //   rules: [
+          //     {
+          //       required: true,
+          //       message: "请选择准考证号",
+          //       trigger: "blur",
+          //     },
+          //   ],
           // },
           {
             label: "报名时间",
@@ -729,105 +764,39 @@
 
             width: 150,
           },
-          // {
-          //   label: "考试时间",
-          //   prop: "examTime",
-          //   type: "datetime",
-          //   // span: 24,
-          //   format: "yyyy-MM-dd HH:mm:ss",
-          //   valueFormat: "yyyy-MM-dd HH:mm:ss",
-          //   // 表单新增时是否禁止
-          //   addDisabled: false,
-          //   // 表单新增时是否可见
-          //   addDisplay: false,
-          //   // 表单新增时是否为查看模式
-          //   addDetail: false,
-          //   // 表单编辑时是否禁止
-          //   editDisabled: false,
-          //   // 表单编辑时是否可见
-          //   editDisplay: true,
-          //   // 表单编辑时是否为查看模式
-          //   editDetail: false,
-          //   width: 150,
-          // },
-
-          // {
-          //   label: "审查状态",
-          //   prop: "examinationType",
-          //   slot: true,
-          //   searchSpan: 5,
-          //   // 表单新增时是否禁止
-          //   addDisabled: false,
-          //   // 表单新增时是否可见
-          //   addDisplay: false,
-          //   // 表单新增时是否为查看模式
-          //   addDetail: false,
-          //   // 表单编辑时是否禁止
-          //   editDisabled: false,
-          //   // 表单编辑时是否可见
-          //   editDisplay: true,
-          //   // 表单编辑时是否为查看模式
-          //   editDetail: false,
-          //   dicData: [
-          //     {
-          //       label: "正常",
-          //       value: "1",
-          //     },
-          //     {
-          //       label: "异常",
-          //       value: "2",
-          //     },
-          //   ],
-          //   search: true,
-          //   type: "select",
-          // },
-          // {
-          //   label: "审查明细",
-          //   prop: "examinationMx",
-          //   slot: true,
-          //   // 表单新增时是否禁止
-          //   addDisabled: false,
-          //   // 表单新增时是否可见
-          //   addDisplay: false,
-          //   // 表单新增时是否为查看模式
-          //   addDetail: false,
-          //   // 表单编辑时是否禁止
-          //   editDisabled: false,
-          //   // 表单编辑时是否可见
-          //   editDisplay: true,
-          //   // 表单编辑时是否为查看模式
-          //   editDetail: false,
-          //   overHidden: true,
-          //   width: 150,
-          // },
-          //   {
-          //     label: "报名状态",
-          //     search: true,
-          //     type: "select",
-          //     searchSpan: 4,
-          //     prop: "applyStatus",
-          //     searchValue: 2,
-          //     dicData: [{
-          //             label: '全部',
-          //             value: 0,
-          //         },
-          //         {
-          //             label: '已报名',
-          //             value: 2,
-          //         },
-          //         {
-          //             label: '已取消',
-          //             value: 4,
-          //         }
-          //     ],
-          //     props: {
-          //         label: "label",
-          //         value: "value"
-          //     },
-          //     editDisplay: false,
-          //     addDisplay: false,
-          //     width: 100,
-          // },
+          {
+            label: "报名状态",
+            prop: "applyStatus",
+            search: true,
+            searchSpan: 4,
+            type: "select",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            dicData: [
+              {
+                label: "全部",
+                value: 1,
+              },
+              {
+                label: "已报名",
+                value: 2,
+              },
+              {
+                label: "已取消",
+                value: 4,
+              },
+            ],
+          },
         ],
       },
       questionBankSearch: {},
@@ -844,24 +813,18 @@
   },
 
   watch: {
-    "form.examname": {
+    "obj.userId": {
       // form是表单或者表格绑定的数据集,v-model='form'
       handler(val) {
-        if (val) {
-          //地址截取,从县/区开始截取,并且取从县区第一个出现的位置开始
-          var address = val.formattedAddress.toString();
-          if (address.search("县") != -1) {
-            this.form.address = address.substring(
-              address.indexOf("县") + 1,
-              address.length
-            );
-          }
-          if (address.search("区") != -1) {
-            this.form.address = address.substring(
-              address.indexOf("区") + 1,
-              address.length
-            );
-          }
+        if(val){
+          //查询用户信息
+          getUserDetails(this.userId).then((res)=>{
+            var data = res.data.data;
+            this.obj.cardid = data.cardid;
+            this.obj.age = data.age;
+            this.obj.nativeplace = data.nativeplace;
+            this.obj.phone = data.phone;
+          })
         }
       },
       immediate: true,
@@ -874,17 +837,19 @@
       this.examPersission = true;
     }
 
-    this.questionBankSearch['applyStatus'] = 2;
+    this.questionBankSearch["applyStatus"] = 2;
   },
   mounted() {},
   computed: {
     ...mapState({
       userInfo: (state) => state.user.userInfo,
     }),
+
     ...mapGetters(["userInfo", "permission"]),
+
     permissionList() {
       return {
-        addBtn: this.vaildData(null, false),
+        addBtn: this.vaildData(this.permission.applyexam_add, false),
         viewBtn: this.vaildData(this.permission.applyexam_view, false),
         delBtn: this.vaildData(null, false),
         editBtn: this.vaildData(null, false),
@@ -896,6 +861,10 @@
         ids.push(ele.id);
       });
       return ids.join(",");
+    },
+    userId() {
+        var d = this.obj.userId + "";
+        return d;
     },
   },
   methods: {
@@ -918,27 +887,46 @@
       var roleIds = this.userInfo.role_id.split(",");
       roleIds.forEach((roleId) => {
         getRoleDetail(roleId).then((res) => {
-            var roleAlias = res.data.data.roleAlias;
-            if (
-              roleAlias == "保安公司管理员" ||
-              roleAlias == "保安"
-            ) {
-              //如果是保安公司管理员
-              params["deptId"] = that.userInfo.dept_id;
-            }
-            getApplyList(
-              page.currentPage,
-              page.pageSize,
-              Object.assign(params, this.questionBankQuery)
-            ).then((res) => {
-              const data = res.data.data;
-              this.questionBankPage.total = data.total;
-              this.questionBankData = data.records;
-              this.questionBankLoading = false;
-              this.questionBankSelectionClear();
-            });
-          })
-      })
+          var roleAlias = res.data.data.roleAlias;
+          if (roleAlias == "保安公司管理员" || roleAlias == "保安") {
+            //如果是保安公司管理员
+            params["deptId"] = that.userInfo.dept_id;
+          }
+
+          // const { releaseTimeRange } = this.questionBankSearch;
+          const { releaseTimeRange } = this.questionBankQuery;
+
+          var values;
+
+          // console.log(releaseTimeRange, 123);
+          if (releaseTimeRange) {
+            values = {
+              ...params,
+              beginTime: releaseTimeRange[0],
+              overTime: releaseTimeRange[1],
+              ...this.questionBankQuery,
+            };
+            values.releaseTimeRange = null;
+          } else {
+            values = {
+              ...params,
+              ...this.questionBankQuery,
+            };
+          }
+          getApplyList(
+            page.currentPage,
+            page.pageSize,
+            // Object.assign(values, this.questionBankQuery)
+            values
+          ).then((res) => {
+            const data = res.data.data;
+            this.questionBankPage.total = data.total;
+            this.questionBankData = data.records;
+            this.questionBankLoading = false;
+            this.questionBankSelectionClear();
+          });
+        });
+      });
     },
     questionBankSelectionClear() {
       this.questionBankSelectionList = [];
@@ -954,7 +942,9 @@
       done();
     },
     questionBankSearchReset() {
-      this.questionBankQuery = {};
+      this.questionBankQuery = {
+        applyStatus:1,
+      };
       this.questionBankOnLoad(this.questionBankPage);
     },
     questionBankCurrentChange(currentPage) {
@@ -967,11 +957,8 @@
     // 新增
     questionBankRowSave(row, done, loading) {
       // debugger;
-      addApply({
-        userId: row.userId,
-        examId: row.examName,
-        applyTime: row.applyTime,
-      }).then(
+      console.log(row,11111);
+      addApply(row).then(
         (res) => {
           this.questionBankOnLoad(this.questionBankPage);
           if (res.data.data == 201) {
@@ -1011,24 +998,24 @@
       var that = this;
       row.startTime = row.startTime + ":00";
       row.endTime = row.endTime + ":00";
-      if(row.number!=((row.serialEnd-row.serialStart)+1)){
-          this.$message({
-            type: "error",
-            message: "考试人数与序号不匹配!",
-          });
-         done();
-         return;
+      if (row.number != row.serialEnd - row.serialStart + 1) {
+        this.$message({
+          type: "error",
+          message: "考试人数与序号不匹配!",
+        });
+        done();
+        return;
       }
 
       var s = new Date(row.startTime);
       var e = new Date(row.endTime);
-      if(s>e){
+      if (s > e) {
         this.$message({
-            type: "error",
-            message: "截止时间不能早于考试考试开始时间!",
-          });
-         done();
-         return;
+          type: "error",
+          message: "截止时间不能早于考试考试开始时间!",
+        });
+        done();
+        return;
       }
       addExam(Object.assign(row, this.questionBankSearch)).then(
         () => {
diff --git a/src/views/companyApply/index.vue b/src/views/companyApply/index.vue
index 6627bc6..4415aec 100644
--- a/src/views/companyApply/index.vue
+++ b/src/views/companyApply/index.vue
@@ -32,6 +32,7 @@
             <!-- 自定义按钮 -->
             <template slot="menuLeft">
               <el-button
+                style="display:none"
                 type="primary"
                 size="small"
                 plain
@@ -153,7 +154,7 @@
         index: true,
         stripe: true,
         viewBtn: false,
-        addBtn: false,
+        addBtn: true,
         selection: true,
         excelBtn: false,
         menuWidth: 230,
@@ -241,15 +242,13 @@
         // 操作栏多余按钮去除
         delBtn: false,
         editBtn: false,
-        addBtn: false,
+        addBtn: true,
         selection: true,
         menu: true,
         // 导出按钮
         // excelBtn: true,
         viewBtn: false,
-
-        // title: '题库',
-
+        addBtnText:"报名信息新增",
         align: "center",
         height: "auto",
         calcHeight: 80,
@@ -267,12 +266,34 @@
 
         column: [
           {
-            label: "姓名",
+            label: "保安公司名称",
+            searchLabelWidth: "110",
+            // prop: "deptName",
+            prop: "deptId",
+            type: "tree",
+            hide:true,
+            dicUrl:
+              "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            slot: true,
+            searchSpan: 4,
+            search: false,
+            width: 260,
+          },
+          {
+            label: "保安员",
             prop: "realName",
             search: true,
             searchSpan: 4,
-            searchLabelWidth: 50,
-            display: false,
+            searchLabelWidth: 100,
+          },
+          {
+            label: "身份证号",
+            prop: "cardid",
+            width:150,
           },
           {
             label: "性别",
@@ -302,36 +323,13 @@
           {
             label: "籍贯",
             prop: "nativeplace",
-            display: false,
           },
           {
             label: "联系电话",
             prop: "phone",
-            display: false,
           },
-          {
-            label: "入职时间",
-            prop: "rtime",
-            display: false,
-          },
-          {
-            label: "保安公司名称",
-            searchLabelWidth: "110",
-            // prop: "deptName",
-            prop: "deptId",
-            type: "tree",
-            dicUrl:
-              "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
-            props: {
-              label: "title",
-              value: "id",
-            },
-            slot: true,
-            searchSpan: 4,
-            display: false,
-            search: false,
-            width: 260,
-          },
+          
+          
           {
             label: "是否持证",
             prop: "hold",
@@ -350,6 +348,21 @@
                 trigger: "blur",
               },
             ],
+          },
+          {
+            label: "保安公司名称",
+            searchLabelWidth: "110",
+            prop: "deptName",
+            // prop: "deptId",
+            type: "tree",
+            // dicUrl:
+            //   "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+            // props: {
+            //   label: "title",
+            //   value: "id",
+            // },
+            search: false,
+            width: 260,
           },
           {
             label: "在职状态",
@@ -443,7 +456,7 @@
     ...mapGetters(["userInfo", "permission"]),
     permissionList() {
       return {
-        addBtn: this.vaildData(null, false),
+        addBtn: this.vaildData(this.permission.company_add, false),
         viewBtn: this.vaildData(null, false),
         delBtn: this.vaildData(null, false),
         editBtn: this.vaildData(null, false),
diff --git a/src/views/exam/examPayment.vue b/src/views/exam/examPayment.vue
new file mode 100644
index 0000000..6ea508b
--- /dev/null
+++ b/src/views/exam/examPayment.vue
@@ -0,0 +1,394 @@
+/*
+ * @Author: Morpheus
+ * @Date: 2021-07-05 16:31:54
+ * @Last Modified by: Morpheus
+ * @Last Modified time: 2021-07-18 19:44:47
+ * menu-name 考试缴费管理
+ */
+<template>
+  <el-row class="morpheus-box">
+    <el-col :span="24" class="recruitmentManagement">
+      <el-card>
+        <div class="exam-card-body">
+          <avue-crud
+            v-model="obj"
+            class="company-box"
+            :option="questionBankOption"
+            :permission="permissionList"
+            :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-del="rowDel"
+            @row-update="questionBankRowUpdate"
+          >
+            <template slot-scope="{ row }" slot="sex">
+              <el-tag v-if="row.sex == 1">男</el-tag>
+              <el-tag v-if="row.sex == 2">女</el-tag>
+            </template>
+
+            <!-- 自定义按钮 -->
+            <template slot="menuLeft">
+              <!-- <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">新增
+                            </el-button> -->
+              <!-- <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">删除
+                            </el-button> -->
+              <el-button
+                type="success"
+                size="small"
+                plain
+                icon="el-icon-upload2"
+                v-if="permission.performance_import"
+                @click="handleImport"
+                >缴费凭证批量上传
+              </el-button>
+            </template>
+
+            <template slot-scope="{ row }" slot="menu">
+              <el-button
+                style="display:none"
+                type="text"
+                size="mini"
+                icon="el-icon-collection"
+                class="start-kaoshi"
+                v-if="permission.performance_print"
+                :disabled="row.qualified==1"
+                @click="securityPrint(row)"
+                >保安证打印
+              </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"
+            >
+            </avue-form>
+          </el-dialog>
+        </div>
+      </el-card>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import { getExamPaymentList, update,remove } from "@/api/exam/examPayment";
+import { mapGetters } from "vuex";
+import { getRoleDetail } from "@/api/system/role";
+
+export default {
+  data() {
+    return {
+      obj: {
+        name: "张三",
+      },
+      excelBox: false,
+      questionBankOption: {
+        // 操作栏多余按钮去除
+        delBtn: true,
+        editBtn: false,
+        addBtn: false,
+        selection: false,
+        viewBtn: true,
+        // title: '成绩',
+        align: "center",
+        height: "auto",
+        calcHeight: 80,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 4,
+        index: true,
+        indexLabel: "序号",
+        dialogClickModal: false,
+        // 操作栏宽度
+        menu: true,
+        menuWidth: 186,
+        labelWidth: 120,
+
+        column: [
+              // {
+              //     label: "缴费类型",
+              //     prop: "type",
+              //     dicData:[
+              //       {
+              //         label:"公司缴费",
+              //         value: 1
+              //       },
+              //       {
+              //         label:"个人缴费",
+              //         value: 2
+              //       }
+              //     ],
+              //     searchSpan: 4,
+              //     search: true,
+              //     type: "select",
+              // },
+              {
+                  label: "缴费人",
+                  prop: "realName",
+                  search:true,
+                  searchSpan:4,
+              },
+              {
+                  label: "身份证号",
+                  prop: "idCardNo",
+                  search:true,
+                  searchSpan:4,
+              },
+              {
+                  label: "性别",
+                  prop: "sex",
+                  slot:true,
+                  dicData: [
+                    {
+                      label:"男",
+                      value:1
+                    },
+                    {
+                      label:"女",
+                      value:2
+                    }
+                  ],
+              },
+              {
+                  label: "联系方式",
+                  prop: "phone",
+              },
+              {
+                  label: "所在单位",
+                  prop: "deptName",
+                  search:true,
+                  searchSpan:6,
+              },
+              // {
+              //     label: "缴费状态",
+              //     prop: "paymentStatus",
+              //     searchSpan: 4,
+              //     search: true,
+              //     dicData: [
+              //       {
+              //         label:"已缴费",
+              //         value:1
+              //       },
+              //       {
+              //         label:"未缴费",
+              //         value:2
+              //       },
+              //       {
+              //         label:"部分缴费",
+              //         value:3
+              //       },
+              //     ],
+              //     type: "select",
+              // },
+              {
+                  label: "缴费凭证",
+                  prop: "certificateUrl",
+                  overHidden: true,
+                  type: "upload",
+                  listType: "picture-img",
+              },
+              {
+                  label: "缴费时间",
+                  prop: "paymentTime",
+                  type: "date",
+                  format: "yyyy-MM-dd",
+                  valueFormat: "yyyy-MM-dd",
+                  labelWidth: 120,
+                  searchSpan: 4,
+                  // search: true,
+                  overHidden: true,
+                  rules: [
+                      {
+                          required: true,
+                          message: "请输入时间",
+                          trigger: "click",
+                      },
+                  ],
+              },
+          ],
+      },
+      questionBankSearch: {},
+      questionBankLoading: true,
+      questionBankData: [],
+      questionBankPage: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 16,
+      },
+      questionBankQuery: {},
+      questionBankSelectionList: [],
+      excelForm: {},
+      excelOption: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [
+          {
+            label: "模板上传",
+            prop: "excelFile",
+            type: "upload",
+            drag: true,
+            loadText: "模板上传中,请稍等",
+            span: 24,
+            propsHttp: {
+              res: "data",
+            },
+            tip: "请上传 zip 压缩文件",
+            action: "/api/blade-resource/oss/endpoint/put-file-exam-payment-zip",
+          }
+        ],
+      },
+    };
+  },
+  computed:{
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(null, false),
+        viewBtn: this.vaildData(this.permission.notice_view, false),
+        delBtn: this.vaildData(this.permission.notice_delete, false),
+        editBtn: this.vaildData(this.permission.performance__edit, false),
+        excelBtn: this.vaildData(this.permission.performance_export, false),
+      };
+    },
+  },
+  created() {},
+  mounted() {},
+  methods: {
+    questionBankOnLoad(page, params = {}) {
+      //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
+      var that = this;
+      //获取当前登录人员的角色信息
+      var roleIds = this.userInfo.role_id.split(",");
+      roleIds.forEach((roleId) => {
+        getRoleDetail(roleId).then((res) => {
+            var roleAlias = res.data.data.roleAlias;
+            if (
+              roleAlias == "保安公司管理员" ||
+              roleAlias == "保安" ||
+              roleAlias == "未持证保安"
+            ) {
+              //如果是保安公司管理员
+              params["deptId"] = that.userInfo.dept_id;
+            }
+            that.questionBankLoading = false;
+            params["examType"] = 1;
+            getExamPaymentList(
+              page.currentPage,
+              page.pageSize,
+              Object.assign(params, this.query)
+            ).then((res) => {
+              const data = res.data.data;
+              that.questionBankPage.total = data.total;
+              that.questionBankData = data.records;
+              that.questionBankLoading = false;
+              that.questionBankSelectionClear();
+            });
+        })
+      });
+      
+    },
+
+     rowDel(row) {
+      this.$confirm("确定删除当前缴费数据?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
+        })
+        .then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    questionBankSelectionClear() {
+      this.questionBankSelectionList = [];
+      this.$refs.questionBankCrud.toggleSelection();
+    },
+    questionBankSelectionChange(list) {
+      this.questionBankSelectionList = list;
+    },
+    questionBankSearchChange(params, done) {
+      this.questionBankQuery = params;
+      this.questionBankPage.currentPage = 1;
+      this.questionBankOnLoad(this.questionBankPage, params);
+      done();
+    },
+    questionBankSearchReset() {
+      this.questionBankQuery = {};
+      this.questionBankOnLoad(this.questionBankPage);
+    },
+    questionBankCurrentChange(currentPage) {
+      this.questionBankPage.currentPage = currentPage;
+    },
+    questionBankSizeChange(pageSize) {
+      this.questionBankPage.pageSize = pageSize;
+    },
+
+    questionBankRowUpdate(row, index, done, loading) {
+      // debugger;
+      update({
+        theoryGrade: row.theoryGrade,
+        learnGrade: row.learnGrade,
+        examId: row.examId,
+        id: row.id,
+      }).then(
+        () => {
+          this.questionBankOnLoad(this.questionBankPage);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    handleImport() {
+      this.excelBox = true;
+    },
+    uploadAfter(res, done, loading, column) {
+      window.console.log(column);
+      this.excelBox = false;
+      this.refreshChange();
+      done();
+    },
+    refreshChange() {
+      this.questionBankOnLoad(this.page, this.query);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+</style>
diff --git a/src/views/exam/startexam.vue b/src/views/exam/startexam.vue
index fc874e2..4462384 100644
--- a/src/views/exam/startexam.vue
+++ b/src/views/exam/startexam.vue
@@ -76,7 +76,7 @@
                 class="start-kaoshi"
                 v-if="permission.startexam_applyPapers"
                 @click="startExam(row)"
-                >报名清册
+                >报名清册详情
               </el-button>
             </template>
           </avue-crud>
@@ -281,8 +281,8 @@
             display: false,
           },
           {
-            label: "备注",
-            prop: "remark",
+            label: "报名人数",
+            prop: "num",
             span: 24,
             slot: true,
             // 表单新增时是否禁止
diff --git a/src/views/securityUnit/armedEscort.vue b/src/views/securityUnit/armedEscort.vue
index 66966f4..bbcbb44 100644
--- a/src/views/securityUnit/armedEscort.vue
+++ b/src/views/securityUnit/armedEscort.vue
@@ -739,4 +739,20 @@
     cursor: pointer;
   }
 }
+
+.information-box {
+  .el-dialog {
+    position: fixed !important;
+    top: 0 !important;
+    left: 0 !important;
+    right: 0 !important;
+    bottom: 0 !important;
+    margin: auto !important;
+    height: 86% !important;
+
+    .el-dialog__body {
+      padding: 10px 20px !important;
+    }
+  }
+}
 </style>
diff --git a/src/views/securityUnit/index.vue b/src/views/securityUnit/index.vue
index 9f6b96c..5c0a0f6 100644
--- a/src/views/securityUnit/index.vue
+++ b/src/views/securityUnit/index.vue
@@ -1,669 +1,719 @@
 <template>
-  <basic-container>
-    <div class="securityUnit">
-      <avue-crud
-        :option="option"
-        :data="data"
-        :page.sync="page"
-        ref="crudrec"
-        @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"
-        @row-click="rowClick"
-      >
-        <template slot-scope="{ type, size, row }" slot="menu">
-          <el-button
-            :size="size"
-            :type="type"
-            @click="handleUploadPage(row)"
-            icon="el-icon-circle-check"
-            >附件上传
-          </el-button>
-        </template>
-        <template slot="menuLeft">
-          <el-button
-            type="primary"
-            icon="el-icon-plus"
-            size="small"
-            plain
-            @click.stop="rowSave"
-            >新增</el-button
-          >
-          <el-button
-            type="danger"
-            size="small"
-            plain
-            icon="el-icon-delete"
-            @click="handleDelete"
-            >删 除
-          </el-button>
-          <el-button
-            type="success"
-            size="small"
-            plain
-            icon="el-icon-upload2"
-            @click="handleImport1"
-            >批量导入
-          </el-button>
-        </template>
-      </avue-crud>
-      <div class="lod" v-show="forms != -1">
-        <div class="lod-in">
-          <!-- <el-col class="trees" v-if="forms == 0">
-          <div class="box">
-            <el-scrollbar>
-              <basic-container>
-                <avue-tree
-                  :option="treeOption"
-                  :data="treeData"
-                  @node-click="nodeClick"
-                />
-              </basic-container>
-            </el-scrollbar>
-          </div>
-        </el-col> -->
-          <avue-form
-            ref="form"
-            v-model="obj0"
-            :option="option0"
-            v-if="forms == 0"
-          >
-            <template slot="menuForm">
-              <el-button type="primary" @click="tip0">下一页</el-button>
-              <el-button type="info" @click="tipover">取消</el-button>
-            </template>
-          </avue-form>
-          <avue-form
-            ref="form1"
-            v-model="obj1"
-            :option="option1"
-            v-else-if="forms == 1"
-          >
-            <template slot="menuForm">
-              <el-button type="primary" @click="tip1up1">上一页</el-button>
-              <el-button type="primary" @click="tip1">下一页</el-button>
-              <el-button type="info" @click="tipover">取消</el-button>
-            </template>
-          </avue-form>
-          <avue-form
-            ref="form2"
-            v-model="obj2"
-            :option="option2"
-            v-else-if="forms == 2"
-          >
-            <template slot="menuForm">
-              <el-button type="primary" @click="tip2up2">上一页</el-button>
-              <el-button type="primary" @click="tip2">提交</el-button>
-              <el-button type="info" @click="tipover">取消</el-button>
-            </template>
-          </avue-form>
+    <basic-container>
+        <div class="securityUnit">
+            <avue-crud :option="option"
+                       :data="data"
+                       :page.sync="page"
+                       ref="crudrec"
+                       @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"
+                       @row-click="rowClick">
+                <template slot-scope="{ type, size, row }"
+                          slot="menu">
+                    <el-button :size="size"
+                               :type="type"
+                               @click="handleUploadPage(row)"
+                               icon="el-icon-circle-check">附件上传
+                    </el-button>
+                </template>
+                <template slot="menuLeft">
+                    <el-button type="primary"
+                               icon="el-icon-plus"
+                               size="small"
+                               plain
+                               @click.stop="rowSave">信息登记</el-button>
+                    <el-button type="danger"
+                               size="small"
+                               plain
+                               icon="el-icon-delete"
+                               @click="handleDelete">删 除
+                    </el-button>
+                    <el-button type="success"
+                               size="small"
+                               plain
+                               icon="el-icon-upload2"
+                               @click="handleImport1">批量导入
+                    </el-button>
+                </template>
+            </avue-crud>
+
+            <el-dialog title="信息登记"
+                       append-to-body
+                       :visible.sync="forms"
+                       :close-on-click-modal="false"
+                       @close="tipover"
+                       class="information-box"
+                       width="60%">
+                <el-tabs v-model="activeName"
+                         @tab-click="handleClick">
+                    <el-tab-pane label="保安单位基本信息"
+                                 name="first">
+                        <avue-form ref="form"
+                                   v-model="obj0"
+                                   :option="option0">
+                            <template slot="menuForm"
+                                      align="center">
+                                <el-button type="primary"
+                                           @click="submitAdd">提交</el-button>
+                                <el-button type="info"
+                                           @click="tipover">取消</el-button>
+                            </template>
+                        </avue-form>
+                    </el-tab-pane>
+                    <el-tab-pane label="保安单位出资人员"
+                                 name="second">
+                        <avue-form ref="form1"
+                                   v-model="obj1"
+                                   :option="option1">
+                            <template slot="menuForm">
+                                <el-button type="primary"
+                                           @click="submitAdd">提交</el-button>
+                                <el-button type="info"
+                                           @click="tipover">取消</el-button>
+                            </template>
+                        </avue-form>
+                    </el-tab-pane>
+                    <el-tab-pane label="主要管理人员信息"
+                                 name="third">
+                        <avue-form ref="form2"
+                                   v-model="obj2"
+                                   :option="option2">
+                            <template slot="menuForm">
+                                <el-button type="primary"
+                                           @click="submitAdd">提交</el-button>
+                                <el-button type="info"
+                                           @click="tipover">取消</el-button>
+                            </template>
+                        </avue-form>
+                    </el-tab-pane>
+                </el-tabs>
+            </el-dialog>
+
         </div>
-      </div>
-    </div>
-    <el-dialog
-      title="保安单位导入"
-      append-to-body
-      :visible.sync="excelBox1"
-      width="555px"
-    >
-      <avue-form
-        :option="excelOption1"
-        v-model="excelForm1"
-        :upload-after="uploadAfter1"
-      >
-        <template slot="excelTemplate">
-          <el-button type="primary" @click="handleTemplate1">
-            点击下载<i class="el-icon-download el-icon--right"></i>
-          </el-button>
-        </template>
-      </avue-form>
-    </el-dialog>
-  </basic-container>
+        <el-dialog title="保安单位导入"
+                   append-to-body
+                   :visible.sync="excelBox1"
+                   width="555px">
+            <avue-form :option="excelOption1"
+                       v-model="excelForm1"
+                       :upload-after="uploadAfter1">
+                <template slot="excelTemplate">
+                    <el-button type="primary"
+                               @click="handleTemplate1">
+                        点击下载<i class="el-icon-download el-icon--right"></i>
+                    </el-button>
+                </template>
+            </avue-form>
+        </el-dialog>
+    </basic-container>
 </template>
 
 <script>
 import { column, column0, column1, column2 } from "./data";
 import {
-  getdata,
-  adddata,
-  update,
-  remove,
-  adddata1,
-  adddata2,
-  getDeptLazyTree,
+    getdata,
+    adddata,
+    update,
+    remove,
+    adddata1,
+    adddata2,
+    getDeptLazyTree,
 } from "@/api/securityUnit/securityUnit";
 import { mapGetters } from "vuex";
 export default {
-  data() {
-    var w = 160,
-      s = 12;
-    return {
-      excelBox1: false,
-      excelForm1: {},
-      excelOption1: {
-        submitBtn: false,
-        emptyBtn: false,
-        column: [
-          {
-            label: "文件上传",
-            prop: "excelFile",
-            type: "upload",
-            drag: true,
-            loadText: "文件上传中,请稍等",
-            span: 24,
-            propsHttp: {
-              res: "data",
+    data () {
+        var w = 160,
+            s = 12;
+        return {
+            excelBox1: false,
+            excelForm1: {},
+            excelOption1: {
+                submitBtn: false,
+                emptyBtn: false,
+                column: [
+                    {
+                        label: "文件上传",
+                        prop: "excelFile",
+                        type: "upload",
+                        drag: true,
+                        loadText: "文件上传中,请稍等",
+                        span: 24,
+                        propsHttp: {
+                            res: "data",
+                        },
+                        tip: "请上传 .xls,.xlsx 标准格式文件",
+                        action: "/api/information/import-informaton",
+                    },
+                    {
+                        label: "模板下载",
+                        prop: "excelTemplate",
+                        formslot: true,
+                        span: 24,
+                    },
+                ],
             },
-            tip: "请上传 .xls,.xlsx 标准格式文件",
-            action: "/api/information/import-informaton",
-          },
-          {
-            label: "模板下载",
-            prop: "excelTemplate",
-            formslot: true,
-            span: 24,
-          },
-        ],
-      },
 
-      loading: true, //保安单位基本信息
-      selectionList: [],
-      page: {
-        pageSize: 10,
-        currentPage: 1,
-        total: 0,
-      },
-
-      treeData: [],
-      treeOption: {
-        title: "我是标题",
-        filterText: "搜索关键字自定义",
-        defaultExpandAll: true,
-        addBtn: false,
-        menu: false,
-        size: "small",
-        formOption: {
-          labelWidth: 100,
-          column: [
-            {
-              label: "自定义项",
-              prop: "label",
+            loading: true, //保安单位基本信息
+            selectionList: [],
+            page: {
+                pageSize: 10,
+                currentPage: 1,
+                total: 0,
             },
-          ],
+
+            treeData: [],
+            treeOption: {
+                title: "我是标题",
+                filterText: "搜索关键字自定义",
+                defaultExpandAll: true,
+                addBtn: false,
+                menu: false,
+                size: "small",
+                formOption: {
+                    labelWidth: 100,
+                    column: [
+                        {
+                            label: "自定义项",
+                            prop: "label",
+                        },
+                    ],
+                },
+                props: {
+                    labelText: "标题",
+                    label: "title",
+                    value: "id",
+                    children: "children",
+                },
+            },
+            // treeOption: {
+            //   nodeKey: "id",
+            //   // lazy: true,
+            //   // treeLoad: function (node, resolve) {
+            //   //   // const parentId = node.level === 0 ? 0 : node.data.id;
+            //   //   getDeptLazyTree().then((res) => {
+            //   //     resolve(
+            //   //       res.data.data.map((item) => {
+            //   //         console.log({
+            //   //           ...item,
+            //   //           leaf: !item.hasChildren,
+            //   //         });
+            //   //         return {
+            //   //           ...item,
+            //   //           leaf: !item.hasChildren,
+            //   //         };
+            //   //       })
+            //   //     );
+            //   //   });
+            //   // },
+            //   addBtn: false,
+            //   menu: false,
+            //   size: "small",
+            //   props: {
+            //     labelText: "标题",
+            //     label: "title",
+            //     value: "value",
+            //     children: "children",
+            //   },
+            // },
+
+            obj0: {
+                creditcode: "",
+                jurisdiction: "",
+                stats: "",
+                enterprisename: "",
+                representative: "",
+                establishtime: "",
+                registeredcapital: "",
+                capital: "",
+                organizationcode: "",
+                registrationnumber: "",
+                identificationnumber: "",
+                enterprises: "",
+                address: "",
+                business: "",
+                region: "",
+                registration: "",
+                industry: "",
+            },
+            obj1: {
+                creditcode: "",
+                shareholder: "",
+                shareholdingratio: "",
+                capital2: "",
+                capitaltime: "",
+                cardid: "",
+                cell: "",
+            },
+            obj2: {
+                creditcode: "",
+                name: "",
+                post: "",
+                cardid2: "",
+                cell2: "",
+            },
+            option0: {
+                emptyBtn: false,
+                submitBtn: false,
+                gutter: 30,
+                column: column0,
+            },
+
+            option1: {
+                emptyBtn: false,
+                submitBtn: false,
+                gutter: 30,
+                column: column1,
+            },
+
+            option2: {
+                emptyBtn: false,
+                submitBtn: false,
+                gutter: 30,
+                column: column2,
+            },
+
+            forms: false,
+            data0: {},
+            data1: {},
+            data2: {},
+            b0: {},
+            b1: {},
+            b2: {},
+            noshehuibianma: 0,
+            nobumen: 0,
+
+            query: {},
+            data: [],
+            option: {
+                index: true,
+                addBtn: false,
+                // card: true,
+                tip: false,
+                searchSize: "mini",
+                searchMenuSpan: 6,
+                height: 583,
+                menuWidth: 220,
+                align: "center",
+                selection: true,
+                column: column,
+                addTitle: "信息登记",
+                addBtnText: "信息登记",
+            },
+
+            activeName: "first",
+        };
+    },
+    computed: {
+        ...mapGetters(["userInfo"]),
+        ids () {
+            let ids = [];
+            this.selectionList.forEach((ele) => {
+                ids.push(ele.creditcode);
+            });
+            return ids.join(",");
         },
-        props: {
-          labelText: "标题",
-          label: "title",
-          value: "id",
-          children: "children",
+        ids1 () {
+            let ids1 = [];
+            this.selectionList1.forEach((ele) => {
+                ids1.push(ele.id);
+            });
+            return ids1.join(",");
         },
-      },
-      // treeOption: {
-      //   nodeKey: "id",
-      //   // lazy: true,
-      //   // treeLoad: function (node, resolve) {
-      //   //   // const parentId = node.level === 0 ? 0 : node.data.id;
-      //   //   getDeptLazyTree().then((res) => {
-      //   //     resolve(
-      //   //       res.data.data.map((item) => {
-      //   //         console.log({
-      //   //           ...item,
-      //   //           leaf: !item.hasChildren,
-      //   //         });
-      //   //         return {
-      //   //           ...item,
-      //   //           leaf: !item.hasChildren,
-      //   //         };
-      //   //       })
-      //   //     );
-      //   //   });
-      //   // },
-      //   addBtn: false,
-      //   menu: false,
-      //   size: "small",
-      //   props: {
-      //     labelText: "标题",
-      //     label: "title",
-      //     value: "value",
-      //     children: "children",
-      //   },
-      // },
-
-      obj0: {
-        title0: "保安单位基本信息",
-      },
-      option0: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column0,
-      },
-      obj1: {
-        title1: "保安单位出资人员",
-      },
-      option1: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column1,
-      },
-      obj2: {
-        title2: "主要管理人员信息",
-      },
-      option2: {
-        emptyBtn: false,
-        submitBtn: false,
-        gutter: 30,
-        column: column2,
-      },
-
-      forms: -1,
-      data0: {},
-      data1: {},
-      data2: {},
-      b0: {},
-      b1: {},
-      b2: {},
-      noshehuibianma: 0,
-      nobumen: 0,
-
-      query: {},
-      data: [],
-      option: {
-        index: true,
-        addBtn: false,
-        // card: true,
-        tip: false,
-        searchSize: "mini",
-        searchMenuSpan: 6,
-        height: 583,
-        menuWidth: 220,
-        align: "center",
-        selection: true,
-        column: column,
-      },
-    };
-  },
-  computed: {
-    ...mapGetters(["userInfo"]),
-    ids() {
-      let ids = [];
-      this.selectionList.forEach((ele) => {
-        ids.push(ele.creditcode);
-      });
-      return ids.join(",");
-    },
-    ids1() {
-      let ids1 = [];
-      this.selectionList1.forEach((ele) => {
-        ids1.push(ele.id);
-      });
-      return ids1.join(",");
-    },
-    ids2() {
-      let ids2 = [];
-      this.selectionList2.forEach((ele) => {
-        ids2.push(ele.id);
-      });
-      return ids2.join(",");
-    },
-    haveID() {
-      return this.obj0.creditcode;
-    },
-  },
-  methods: {
-    handleImport1() {
-      this.excelBox1 = true;
-    },
-    uploadAfter1(res, done, loading, column) {
-      window.console.log(column);
-      this.excelBox1 = false;
-      // this.refreshChange();
-      done();
-    },
-    handleTemplate1() {
-      window.open(`/api/examSubjectChoices/export-template`);
-    },
-
-    // handleChangeTABS(column) {
-    //   this.typeTABS = column;
-    //   // this.$message.success(JSON.stringify(column));
-    //   if (column.prop == "tab1") {
-    //     this.loading1 = false;
-    //     this.loading2 = false;
-    //     this.onLoad(this.page);
-    //   } else if (column.prop == "tab2") {
-    //     this.loading = false;
-    //     this.loading2 = false;
-    //     this.onLoad1(this.page1); //第二个表格不会自动执行
-    //   } else if (column.prop == "tab3") {
-    //     this.loading1 = false;
-    //     this.loading = false;
-    //     this.onLoad2(this.page2); //第二个表格不会自动执行
-    //   }
-    // },
-    //保安单位基本信息
-    sizeChange(val) {
-      this.page1.currentPage = 1;
-      this.page1.pageSize = val;
-      // this.getData();
-      this.onLoad(this.page, this.query);
-      //   this.$message.success("行数" + val);
-    },
-    currentChange(val) {
-      this.page1.currentPage = val;
-      // this.getData();
-      this.onLoad(this.page, this.query);
-      //   this.$message.success("页码" + val);
-    },
-    rowSave(form, done, loading) {
-      // console.log("save1");
-      this.forms = 0;
-      var that = this;
-      //先获取部门接口
-      getDeptLazyTree().then((res) => {
-        var d = res.data.data;
-        that.treeData = d;
-        // console.log(d);
-      });
-    },
-    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) {
-      delete row.tenantid;
-      delete row.regstsat;
-      console.log(row, 0);
-      update(row).then(
-        () => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          done();
+        ids2 () {
+            let ids2 = [];
+            this.selectionList2.forEach((ele) => {
+                ids2.push(ele.id);
+            });
+            return ids2.join(",");
         },
-        (error) => {
-          window.console.log(error);
-          loading();
-        }
-      );
+        haveID () {
+            return this.obj0.creditcode;
+        },
     },
-    rowDel(row) {
-      this.$confirm("确定将选择数据删除?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          console.log(row);
-          return remove(row.creditcode, row.departmentid);
-        })
-        .then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
+    methods: {
+        handleImport1 () {
+            this.excelBox1 = true;
+        },
+        uploadAfter1 (res, done, loading, column) {
+            window.console.log(column);
+            this.excelBox1 = false;
+            // this.refreshChange();
+            done();
+        },
+        handleTemplate1 () {
+            window.open(`/api/examSubjectChoices/export-template`);
+        },
+
+        // handleChangeTABS(column) {
+        //   this.typeTABS = column;
+        //   // this.$message.success(JSON.stringify(column));
+        //   if (column.prop == "tab1") {
+        //     this.loading1 = false;
+        //     this.loading2 = false;
+        //     this.onLoad(this.page);
+        //   } else if (column.prop == "tab2") {
+        //     this.loading = false;
+        //     this.loading2 = false;
+        //     this.onLoad1(this.page1); //第二个表格不会自动执行
+        //   } else if (column.prop == "tab3") {
+        //     this.loading1 = false;
+        //     this.loading = false;
+        //     this.onLoad2(this.page2); //第二个表格不会自动执行
+        //   }
+        // },
+        //保安单位基本信息
+        sizeChange (val) {
+            this.page1.currentPage = 1;
+            this.page1.pageSize = val;
+            // this.getData();
+            this.onLoad(this.page, this.query);
+            //   this.$message.success("行数" + val);
+        },
+        currentChange (val) {
+            this.page1.currentPage = val;
+            // this.getData();
+            this.onLoad(this.page, this.query);
+            //   this.$message.success("页码" + val);
+        },
+        rowSave (form, done, loading) {
+            // console.log("save1");
+            this.forms = true;
+            this.activeName = "first";
+            var that = this;
+            //先获取部门接口
+            getDeptLazyTree().then((res) => {
+                var d = res.data.data;
+                that.treeData = d;
+                // console.log(d);
+            });
+        },
+        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) {
+            delete row.tenantid;
+            delete row.regstsat;
+            console.log(row, 0);
+            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.creditcode, row.departmentid);
+                })
+                .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(() => {
+                    console.log(this.ids);
+                    // return remove(this.ids);
+                })
+                .then(() => {
+                    this.onLoad(this.page);
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    });
+                    this.$refs.crudrec.toggleSelection();
+                });
+        },
+        refreshChange () {
+            this.onLoad(this.page, this.query);
+        },
+        rowClick (row) {
+            // console.log(row);
+            // row.identificationnumber; //统一社会信用代 码
+            window.localStorage.setItem("danweidata", JSON.stringify(row));
+            this.$router.push({
+                path: "/securityUnitChild",
+                // redirect: { name: "foo" },
+                query: { rowsecurity: "fromSecurity" },
+                // params: { row: row.identificationnumber },
+            });
+        },
+        //跳转到附近列表页面
+        handleUploadPage (row) {
+            this.$router.push({
+                path: `/resource/attachCopy`,
+                query: {
+                    deptId: row.departmentid,
+                    enterprisename: row.enterprisename,
+                },
+            });
+        },
+        onLoad (page, params = {}) {
+            if (this.userInfo.role_id == "1414840172333842433") {
+                console.log("是公安add jurisdiction");
+                params["jurisdiction"] = this.userInfo.jurisdiction;
+            }
+            this.loading = true;
+            getdata(
+                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));
+                console.log(this.data);
+                this.loading = false;
+            });
+        },
+        // nodeClick(data) {//分局   不在这添加
+        //   // this.treeDeptId = data.id;
+        //   // this.page.currentPage = 1;
+        //   // this.onLoad(this.page);
+        //   // this.$message.success(JSON.stringify(data));
+        //   this.obj0["departmentid"] = data.title;
+        //   this.obj1["departmentid"] = data.title;
+        //   this.obj2["departmentid"] = data.title;
+        //   this.obj0["useid"] = data.id;
+        //   this.obj1["useid"] = data.id;
+        //   this.obj2["useid"] = data.id;
+        //   this.nobumen = 1;
+        // },
+        submitAdd () {
+            if (this.panduanmeiyouziduan()) {
+                return;
+            }
+
+            var oneObj = {};
+
+            for (var k in this.obj0) {
+                for (var i in column0) {
+                    if (k == column0[i].prop && k != "title0") {
+                        oneObj[k] = this.obj0[k];
+                    }
+
+                    if (column0[i].prop == "creditcode") {
+                        column1[1].value = column0[i].value;
+                    }
+                }
+            }
+
+            for (var key in oneObj) {
+                if (oneObj[key] == "" || oneObj[key] == undefined) {
+                    console.log(key);
+                    this.$message.warning("请检查表单是否填写完整!1");
+                    return;
+                }
+            }
+
+            this.data0 = oneObj;
+
+            var twoObj = {};
+            for (var twok in this.obj1) {
+                for (var twoi in column1) {
+                    if (twok == column1[twoi].prop && twok != "title1") {
+                        twoObj[twok] = this.obj1[twok];
+                    }
+                }
+            }
+
+            twoObj["capital"] = twoObj["capital2"];
+            delete twoObj["capital2"];
+            // console.log(d);
+            for (var twokey in twoObj) {
+                if (twoObj[twokey] == "" || twoObj[twokey] == undefined) {
+                    console.log(twokey);
+                    this.$message.warning("请检查表单是否填写完整!2");
+                    return;
+                }
+            }
+
+            this.data1 = twoObj;
+
+            var threeObj = {};
+            for (var threek in this.obj2) {
+                for (var threei in column2) {
+                    if (threek == column2[threei].prop && threek != "title2") {
+                        threeObj[threek] = this.obj2[threek];
+                    }
+                }
+            }
+
+            threeObj["cardid"] = threeObj["cardid2"];
+            delete threeObj["cardid2"];
+            threeObj["cell"] = threeObj["cell2"];
+            delete threeObj["cell2"];
+            // d["shareholdingratio"] = d["shareholdingratio2"];
+            // delete d["shareholdingratio2"];
+            for (var threekey in threeObj) {
+                if (threeObj[threekey] == "" || threeObj[threekey] == undefined) {
+                    console.log(threekey);
+                    this.$message.warning("请检查表单是否填写完整!3");
+                    return;
+                }
+            }
+            this.data2 = threeObj;
+
+            // this.data0.departmentid = this.data0.useid;
+            // this.data1.departmentid = this.data1.useid;
+            // this.data2.departmentid = this.data2.useid;
+            // delete this.data0.useid;
+            // delete this.data1.useid;
+            // delete this.data2.useid;
+
+            adddata(this.data0).then((res) => {
+                console.log(res, 0);
+            });
+            adddata1(this.data1).then((res) => {
+                console.log(res, 1);
+            });
+            adddata2(this.data2).then((res) => {
+                console.log(res, 2);
+            });
+            var time = setTimeout(() => {
+                this.onLoad(this.page, this.query);
+                console.log(this.data0, this.data1, this.data2, "已刷新");
+            }, 500);
+            this.tipover();
+        },
+
+        tipover () {
+            this.forms = false;
+            this.obj0 = {
+                creditcode: "",
+                jurisdiction: "",
+                stats: "",
+                enterprisename: "",
+                representative: "",
+                establishtime: "",
+                registeredcapital: "",
+                capital: "",
+                organizationcode: "",
+                registrationnumber: "",
+                identificationnumber: "",
+                enterprises: "",
+                address: "",
+                business: "",
+                region: "",
+                registration: "",
+                industry: "",
+            };
+
+            this.obj1 = {
+                creditcode: "",
+                shareholder: "",
+                shareholdingratio: "",
+                capital2: "",
+                capitaltime: "",
+                cardid: "",
+                cell: "",
+            };
+            this.obj2 = {
+                creditcode: "",
+                name: "",
+                post: "",
+                cardid2: "",
+                cell2: "",
+            };
+            this.data0 = {};
+            this.data1 = {};
+            this.data2 = {};
+            this.noshehuibianma = 0;
+            this.nobumen = 0;
+        },
+        panduanmeiyouziduan () {
+            if (this.noshehuibianma == 0) {
+                this.$message.warning("请输入统一社会信用代码");
+                return true;
+            }
+            if (this.nobumen == 0) {
+                return false;
+                this.$message.warning("请选则部门");
+            }
+            return false;
+        },
+    },
+    watch: {
+        haveID () {
+            // console.log(this.haveID);
+            if (this.haveID != undefined) {
+                if (this.haveID.length > 5) {
+                    //统一社会信用代码判断
+                    this.noshehuibianma = 1;
+                } else {
+                    this.noshehuibianma = 0;
+                }
+            }
+        },
+        havedata () {
+            console.log(this.havedata, "qqqqq");
+        },
+    },
+    mounted () {
+        var that = this;
+
+        this.option0.column.forEach((item) => {
+            if (item.prop == "creditcode") {
+                item.change = function (e) {
+                    that.obj1.creditcode = e.value;
+                    that.obj2.creditcode = e.value;
+                };
+            }
         });
     },
-    selectionChange(list) {
-      this.selectionList = list;
-    },
-    handleDelete() {
-      if (this.selectionList.length === 0) {
-        this.$message.warning("请选择至少一条数据");
-        return;
-      }
-      this.$confirm("确定批量将选择数据删除?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          console.log(this.ids);
-          // return remove(this.ids);
-        })
-        .then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          this.$refs.crudrec.toggleSelection();
-        });
-    },
-    refreshChange() {
-      this.onLoad(this.page, this.query);
-    },
-    rowClick(row) {
-      // console.log(row);
-      // row.identificationnumber; //统一社会信用代 码
-      window.localStorage.setItem("danweidata", JSON.stringify(row));
-      this.$router.push({
-        path: "/securityUnitChild",
-        // redirect: { name: "foo" },
-        query: { rowsecurity: "fromSecurity" },
-        // params: { row: row.identificationnumber },
-      });
-    },
-    //跳转到附近列表页面
-    handleUploadPage(row) {
-      this.$router.push({
-        path: `/resource/attachCopy`,
-        query: {
-          deptId: row.departmentid,
-          enterprisename: row.enterprisename,
-        },
-      });
-    },
-    onLoad(page, params = {}) {
-      if (this.userInfo.role_id == "1414840172333842433") {
-        console.log("是公安add jurisdiction");
-        params["jurisdiction"] = this.userInfo.jurisdiction;
-      }
-      this.loading = true;
-      getdata(
-        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));
-        console.log(this.data);
-        this.loading = false;
-      });
-    },
-    // nodeClick(data) {//分局   不在这添加
-    //   // this.treeDeptId = data.id;
-    //   // this.page.currentPage = 1;
-    //   // this.onLoad(this.page);
-    //   // this.$message.success(JSON.stringify(data));
-    //   this.obj0["departmentid"] = data.title;
-    //   this.obj1["departmentid"] = data.title;
-    //   this.obj2["departmentid"] = data.title;
-    //   this.obj0["useid"] = data.id;
-    //   this.obj1["useid"] = data.id;
-    //   this.obj2["useid"] = data.id;
-    //   this.nobumen = 1;
-    // },
-    tip0() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj0) {
-        for (var i in column0) {
-          if (k == column0[i].prop && k != "title0") {
-            d[k] = this.obj0[k];
-          }
-        }
-      }
-      console.log(d);
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 0);
-      this.data0 = d;
-      this.forms = 1;
-    },
-    tip1() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj1) {
-        for (var i in column1) {
-          if (k == column1[i].prop && k != "title1") {
-            d[k] = this.obj1[k];
-          }
-        }
-      }
-      d["capital"] = d["capital2"];
-      delete d["capital2"];
-      // console.log(d);
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 1);
-      this.data1 = d;
-      this.forms = 2;
-    },
-    tip2() {
-      if (this.panduanmeiyouziduan()) {
-        return;
-      }
-      var d = {};
-      for (var k in this.obj2) {
-        for (var i in column2) {
-          if (k == column2[i].prop && k != "title2") {
-            d[k] = this.obj2[k];
-          }
-        }
-      }
-      console.log(d);
-      d["cardid"] = d["cardid2"];
-      delete d["cardid2"];
-      d["cell"] = d["cell2"];
-      delete d["cell2"];
-      // d["shareholdingratio"] = d["shareholdingratio2"];
-      // delete d["shareholdingratio2"];
-      for (var k in d) {
-        if (d[k] == "" || d[k] == undefined) {
-          console.log(k);
-          this.$message.warning("请检查表单是否填写完整!");
-          return;
-        }
-      }
-      console.log(d, 2);
-      this.data2 = d;
-
-      // this.data0.departmentid = this.data0.useid;
-      // this.data1.departmentid = this.data1.useid;
-      // this.data2.departmentid = this.data2.useid;
-      // delete this.data0.useid;
-      // delete this.data1.useid;
-      // delete this.data2.useid;
-
-      adddata(this.data0).then((res) => {
-        console.log(res, 0);
-      });
-      adddata1(this.data1).then((res) => {
-        console.log(res, 1);
-      });
-      adddata2(this.data2).then((res) => {
-        console.log(res, 2);
-      });
-      var time = setTimeout(() => {
-        this.onLoad(this.page, this.query);
-        console.log(this.data0, this.data1, this.data2, "已刷新");
-      }, 500);
-      this.tipover();
-    },
-    tip1up1() {
-      this.forms = 0;
-    },
-    tip2up2() {
-      this.forms = 1;
-    },
-    tipover() {
-      this.forms = -1;
-      this.obj0 = {
-        title0: "保安单位基本信息",
-      };
-      this.obj1 = {
-        title1: "保安单位出资人员",
-      };
-      this.obj2 = {
-        title2: "主要管理人员信息",
-      };
-      this.data0 = {};
-      this.data1 = {};
-      this.data2 = {};
-      this.noshehuibianma = 0;
-      this.nobumen = 0;
-    },
-    panduanmeiyouziduan() {
-      if (this.noshehuibianma == 0) {
-        this.$message.warning("请输入统一社会信用代码");
-        return true;
-      }
-      if (this.nobumen == 0) {
-        return false;
-        this.$message.warning("请选则部门");
-      }
-      return false;
-    },
-  },
-  watch: {
-    haveID() {
-      // console.log(this.haveID);
-      if (this.haveID != undefined) {
-        if (this.haveID.length > 5) {
-          //统一社会信用代码判断
-          this.noshehuibianma = 1;
-        } else {
-          this.noshehuibianma = 0;
-        }
-      }
-    },
-    havedata() {
-      console.log(this.havedata, "qqqqq");
-    },
-  },
-  mounted() {},
 };
 </script>
 
 <style lang="scss">
 .securityUnit {
-  width: 100%;
-  height: 100%;
-  //   border: 1px solid #000;
-  box-sizing: border-box;
+    width: 100%;
+    height: 100%;
+    //   border: 1px solid #000;
+    box-sizing: border-box;
 }
 // .el-card__body {
 //   padding-bottom: 5px !important;
@@ -674,39 +724,23 @@
 //   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: 500 !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;
+    border-top: 1px solid transparent !important;
+}
+
+.information-box {
+  .el-dialog {
+    position: fixed !important;
+    top: 0 !important;
+    left: 0 !important;
+    right: 0 !important;
+    bottom: 0 !important;
+    margin: auto !important;
+    height: 86% !important;
+
+    .el-dialog__body {
+      padding: 10px 20px !important;
+    }
+  }
 }
 </style>
diff --git a/src/views/securityUnit/securityTraining.vue b/src/views/securityUnit/securityTraining.vue
index b5b4df6..d1981aa 100644
--- a/src/views/securityUnit/securityTraining.vue
+++ b/src/views/securityUnit/securityTraining.vue
@@ -765,4 +765,20 @@
 .el-collapse {
   border-top: 1px solid transparent !important;
 }
+
+.information-box {
+  .el-dialog {
+    position: fixed !important;
+    top: 0 !important;
+    left: 0 !important;
+    right: 0 !important;
+    bottom: 0 !important;
+    margin: auto !important;
+    height: 86% !important;
+
+    .el-dialog__body {
+      padding: 10px 20px !important;
+    }
+  }
+}
 </style>
diff --git a/src/views/securityUnit/selfRecruitedSecurityGuard.vue b/src/views/securityUnit/selfRecruitedSecurityGuard.vue
index 6f753d1..4020624 100644
--- a/src/views/securityUnit/selfRecruitedSecurityGuard.vue
+++ b/src/views/securityUnit/selfRecruitedSecurityGuard.vue
@@ -782,4 +782,20 @@
 .el-collapse {
   border-top: 1px solid transparent !important;
 }
+
+.information-box {
+  .el-dialog {
+    position: fixed !important;
+    top: 0 !important;
+    left: 0 !important;
+    right: 0 !important;
+    bottom: 0 !important;
+    margin: auto !important;
+    height: 86% !important;
+
+    .el-dialog__body {
+      padding: 10px 20px !important;
+    }
+  }
+}
 </style>
diff --git a/src/views/securityUnit/transRegionalcompany.vue b/src/views/securityUnit/transRegionalcompany.vue
index 26d868e..0829f2f 100644
--- a/src/views/securityUnit/transRegionalcompany.vue
+++ b/src/views/securityUnit/transRegionalcompany.vue
@@ -764,4 +764,20 @@
 .el-collapse {
   border-top: 1px solid transparent !important;
 }
+
+.information-box {
+  .el-dialog {
+    position: fixed !important;
+    top: 0 !important;
+    left: 0 !important;
+    right: 0 !important;
+    bottom: 0 !important;
+    margin: auto !important;
+    height: 86% !important;
+
+    .el-dialog__body {
+      padding: 10px 20px !important;
+    }
+  }
+}
 </style>
diff --git a/src/views/trainingRegistration/data.js b/src/views/trainingRegistration/data.js
index c05d907..40fa65e 100644
--- a/src/views/trainingRegistration/data.js
+++ b/src/views/trainingRegistration/data.js
@@ -18,7 +18,7 @@
 
 var w = 160,
     s = 12;
-export var column = [{
+export var column1 = [{
         label: "培训公司名称",
         prop: "trainingUnitId",
         dicUrl: "/api/blade-system/dept/lazy-tree-type?parentId=1418458374477549569",
@@ -211,4 +211,333 @@
     //     width: 160
     // }
 
+]
+
+
+export var column = [{
+        label: "报名时间",
+        prop: "releaseTimeRange",
+        type: "date",
+        format: "yyyy-MM-dd",
+        valueFormat: "yyyy-MM-dd",
+        searchRange: true,
+        searchSpan: 5,
+        hide: true,
+        addDisplay: false,
+        editDisplay: false,
+        viewDisplay: false,
+        search: true,
+        rules: [{
+            required: true,
+            message: "请输入时间",
+            trigger: "blur",
+        }, ],
+    },
+    {
+        label: "保安公司名称",
+        searchLabelWidth: "110",
+        labelWidth: 110,
+        cascaderItem: ["userId"],
+        prop: "deptId",
+        type: "tree",
+        hide: true,
+        viewDisabled: false,
+        viewDisplay: false,
+        dicUrl: "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+        props: {
+            label: "title",
+            value: "id",
+        },
+        slot: true,
+        searchSpan: 4,
+        search: false,
+        width: 260,
+    },
+    {
+        label: "保安姓名",
+        prop: "userId",
+        type: "tree",
+        dicUrl: "/api/blade-user/security-apply-tree?examType=1&deptId={{key}}",
+        hide: true,
+        slot: true,
+        searchSpan: 4,
+        // 表单新增时是否禁止
+        addDisabled: false,
+        // 表单新增时是否可见
+        addDisplay: true,
+        // 表单新增时是否为查看模式
+        addDetail: false,
+        // 表单编辑时是否禁止
+        editDisabled: true,
+        viewDisabled: false,
+        // 表单编辑时是否可见
+        editDisplay: true,
+        viewDisplay: false,
+        // 表单编辑时是否为查看模式
+        editDetail: false,
+        props: {
+            label: "name",
+            value: "id",
+        },
+        rules: [{
+            required: true,
+            message: "请选择保安姓名",
+            trigger: "blur",
+        }, ],
+        width: 80,
+    },
+    {
+        label: "保安姓名",
+        prop: "realName",
+        searchSpan: 4,
+        search: true,
+        // 表单新增时是否禁止
+        addDisabled: false,
+        // 表单新增时是否可见
+        addDisplay: false,
+        // 表单新增时是否为查看模式
+        addDetail: false,
+        // 表单编辑时是否禁止
+        editDisabled: false,
+        // 表单编辑时是否可见
+        editDisplay: false,
+        // 表单编辑时是否为查看模式
+        editDetail: false,
+        viewDisplay: true,
+        props: {
+            label: "title",
+            value: "id",
+        },
+        rules: [{
+            required: true,
+            message: "请选择保安姓名",
+            trigger: "blur",
+        }, ],
+    },
+    {
+        label: "年龄",
+        prop: "age",
+        slot: true,
+        // 表单新增时是否禁止
+        addDisabled: true,
+        // 表单新增时是否可见
+        addDisplay: true,
+        viewDisplay: true,
+    },
+    {
+        label: "身份证号",
+        prop: "idCardNo",
+        slot: true,
+        search: true,
+        searchSpan: 5,
+        // 表单新增时是否禁止
+        addDisabled: false,
+        // 表单新增时是否可见
+        addDisplay: false,
+        // 表单新增时是否为查看模式
+        addDetail: false,
+        // 表单编辑时是否禁止
+        editDisabled: false,
+        // 表单编辑时是否可见
+        editDisplay: true,
+        // 表单编辑时是否为查看模式
+        editDetail: false,
+        rules: [{
+            required: true,
+            message: "请选择准考证号",
+            trigger: "blur",
+        }, ],
+        width: 150,
+    },
+    {
+        label: "身份证号",
+        prop: "cardid",
+        searchSpan: 5,
+        // 表单新增时是否禁止
+        addDisabled: true,
+        // 表单新增时是否可见
+        addDisplay: true,
+        hide: true,
+        rules: [{
+            required: true,
+            message: "请选择准考证号",
+            trigger: "blur",
+        }, ],
+        width: 150,
+    },
+    {
+        label: "性别",
+        prop: "sex",
+        type: "select",
+        // 表单新增时是否禁止
+        addDisabled: true,
+        // 表单新增时是否可见
+        addDisplay: true,
+        dicData: [{
+                label: "男",
+                value: 1,
+            },
+            {
+                label: "女",
+                value: 2,
+            },
+            {
+                label: "未知",
+                value: 3,
+            },
+            {
+                label: " ",
+                value: -1,
+            },
+        ],
+        display: false,
+    },
+
+    {
+        label: "籍贯",
+        prop: "nativePlace",
+        // 表单新增时是否禁止
+        addDisabled: true,
+        // 表单新增时是否可见
+        addDisplay: true,
+    },
+    {
+        label: "联系电话",
+        prop: "phone",
+        // 表单新增时是否禁止
+        addDisabled: true,
+        // 表单新增时是否可见
+        addDisplay: true,
+    },
+    {
+        label: "保安公司名称",
+        labelWidth: "110",
+        addDisplay: false,
+        prop: "deptName",
+        width: 260,
+    },
+    // {
+    //   label: "准考证号",
+    //   prop: "candidateNo",
+    //   slot: true,
+    //   // 表单新增时是否禁止
+    //   addDisabled: false,
+    //   // 表单新增时是否可见
+    //   addDisplay: false,
+    //   // 表单新增时是否为查看模式
+    //   addDetail: false,
+    //   // 表单编辑时是否禁止
+    //   editDisabled: false,
+    //   // 表单编辑时是否可见
+    //   editDisplay: true,
+    //   // 表单编辑时是否为查看模式
+    //   editDetail: false,
+    //   rules: [
+    //     {
+    //       required: true,
+    //       message: "请选择准考证号",
+    //       trigger: "blur",
+    //     },
+    //   ],
+    //   width: 100,
+    // },
+    // {
+    //   label: "报考证件",
+    //   prop: "applyCard",
+    //   slot: true,
+    //   // 表单新增时是否禁止
+    //   addDisabled: false,
+    //   // 表单新增时是否可见
+    //   addDisplay: false,
+    //   // 表单新增时是否为查看模式
+    //   addDetail: false,
+    //   // 表单编辑时是否禁止
+    //   editDisabled: false,
+    //   // 表单编辑时是否可见
+    //   editDisplay: true,
+    //   // 表单编辑时是否为查看模式
+    //   editDetail: false,
+    //   rules: [
+    //     {
+    //       required: true,
+    //       message: "请选择准考证号",
+    //       trigger: "blur",
+    //     },
+    //   ],
+    // },
+    {
+        label: "报名时间",
+        prop: "applyTime",
+        type: "datetime",
+        // span: 24,
+        format: "yyyy-MM-dd HH:mm:ss",
+        valueFormat: "yyyy-MM-dd HH:mm:ss",
+        // 表单新增时是否禁止
+        addDisabled: true,
+        // 表单新增时是否可见
+        addDisplay: false,
+        // 表单新增时是否为查看模式
+        addDetail: false,
+        // 表单编辑时是否禁止
+        editDisabled: true,
+        // 表单编辑时是否可见
+        editDisplay: true,
+        // 表单编辑时是否为查看模式
+        editDetail: false,
+        value: new Date().getFullYear() +
+            "-" +
+            (new Date().getMonth() + 1 < 10 ?
+                "0" + (new Date().getMonth() + 1) :
+                new Date().getMonth() + 1) +
+            "-" +
+            (new Date().getDate() < 10 ?
+                "0" + new Date().getDate() :
+                new Date().getDate()) +
+            " " +
+            (new Date().getHours() < 10 ?
+                "0" + new Date().getHours() :
+                new Date().getHours()) +
+            ":" +
+            (new Date().getMinutes() < 10 ?
+                "0" + new Date().getMinutes() :
+                new Date().getMinutes()) +
+            ":" +
+            (new Date().getSeconds() < 10 ?
+                "0" + new Date().getSeconds() :
+                new Date().getSeconds()),
+
+        width: 150,
+    },
+    {
+        label: "报名状态",
+        prop: "applyStatus",
+        search: true,
+        searchSpan: 4,
+        type: "select",
+        // 表单新增时是否禁止
+        addDisabled: false,
+        // 表单新增时是否可见
+        addDisplay: false,
+        // 表单新增时是否为查看模式
+        addDetail: false,
+        // 表单编辑时是否禁止
+        editDisabled: true,
+        // 表单编辑时是否可见
+        editDisplay: true,
+        // 表单编辑时是否为查看模式
+        editDetail: false,
+        dicData: [{
+                label: "全部",
+                value: 1,
+            },
+            {
+                label: "已报名",
+                value: 2,
+            },
+            {
+                label: "已取消",
+                value: 4,
+            },
+        ],
+    },
 ]
\ No newline at end of file
diff --git a/src/views/trainingRegistration/index.vue b/src/views/trainingRegistration/index.vue
index 372c962..ddebd9c 100644
--- a/src/views/trainingRegistration/index.vue
+++ b/src/views/trainingRegistration/index.vue
@@ -1,125 +1,178 @@
+/*
+ * @Author: Morpheus
+ * @Date: 2021-07-05 16:31:54
+ * @Last Modified by: Morpheus
+ * @Last Modified time: 2021-07-19 19:39:45
+ * menu-name 报名考试
+ */
 <template>
-  <basic-container>
-    <avue-crud
-      :option="option"
-      :table-loading="loading"
-      :data="data"
-      :page.sync="page"
-      :search.sync="search"
-      ref="crud"
-      @row-del="rowDel"
-      v-model="form"
-      :permission="permissionList"
-      @row-update="rowUpdate"
-      @row-save="rowSave"
-      :before-open="beforeOpen"
-      @filter="filterChange"
-      @search-change="searchChange"
-      @search-reset="searchReset"
-      @selection-change="selectionChange"
-      @current-change="currentChange"
-      @size-change="sizeChange"
-      @refresh-change="refreshChange"
-      @on-load="onLoad"
-    >
-      <template slot="menuLeft">
-        <el-button
-          style="display: none"
-          type="danger"
-          size="small"
-          plain
-          icon="el-icon-delete"
-          @click="handleDelete"
-          >删 除
-        </el-button>
-        <el-button
-          type="primary"
-          size="small"
-          plain
-          icon="el-icon-folder-checked"
-          @click="handleBatchExam"
-          v-if="permission.trainingRegistration_exam"
-          >考试申请
-        </el-button>
-        <el-button
-          type="primary"
-          size="small"
-          plain
-          icon="el-icon-folder-checked"
-          v-if="permission.trainingRegistration_import"
-          @click="handleImport"
-          >批量导入
-        </el-button>
-      </template>
-      <template slot-scope="{ type, size, row }" slot="menu">
-        <el-button
-          icon="el-icon-refresh-right"
-          @click="revoke(row)"
-          :size="size"
-          :type="type"
-          v-if="permission.trainingRegistration_cancel"
-          :disabled="row.cancel==2"
-          >取消报名</el-button
-        >
-        <el-button
-          :type="type"
-          size="small"
-          icon="el-icon-receiving"
-          v-if="permission.trainingRegistration_print"
-          :disabled="row.candidateNo == '' || row.cancel==2"
-          @click="handlePrint(row)"
-          >准考证打印
-        </el-button>
-        <el-button
-          icon="el-icon-folder-checked"
-          style="display: none"
-          @click="affirmApply(row)"
-          :size="size"
-          :type="type"
-          >确认报名</el-button
-        >
-      </template>
-    </avue-crud>
+  <el-row class="morpheus-box-apply-exam">
+    <el-col :span="24" class="hasButOne">
+      <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"
+          >
+            <!-- 自定义按钮 -->
+            <!-- <template slot="menuLeft">
+                            <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">新增
+                            </el-button>
+                            <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">删除
+                            </el-button>
+                            <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">导出
+                            </el-button>
+                        </template> -->
 
-    <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>
+            <!-- <template slot="menuLeft">
+                            <el-button type="danger"
+                                       size="small"
+                                       icon="el-icon-delete"
+                                       @click="questionBankHandleDelete">删 除
+                            </el-button>
+                        </template> -->
+            <!-- 自定义按钮 -->
+            <template slot="menuLeft">
+              <el-button
+                type="primary"
+                style="display:none"
+                size="small"
+                plain
+                icon="el-icon-folder-checked"
+                @click="handleBatchExam"
+                v-if="permission.applyexam_exam"
+                >生成考试
+              </el-button>
+              <!-- v-if="examPersission" -->
+              <el-button
+                style="display:none"
+                type="primary"
+                size="small"
+                plain
+                icon="el-icon-folder-checked"
+                v-if="permission.applyexam_import"
+                @click="handleImport"
+                >批量报名
+              </el-button>
+            </template>
 
-    <el-dialog
-      title="考试申请"
-      append-to-body
-      :visible.sync="dialogExamFormVisible"
-      width="1000px"
-      @close="closeDialog"
-    >
-      <avue-form
-        ref="formExamApply"
-        v-model="examApply"
-        :option="optionExamApply"
-        @reset-change="emptytChange"
-        @submit="submitExamApply"
-      ></avue-form>
-    </el-dialog>
-  </basic-container>
+            <template slot-scope="{ type, row }" slot="menu">
+              <el-button
+                :type="type"
+                size="small"
+                icon="el-icon-refresh-left"
+                v-if="permission.applyexam_cancel"
+                :disabled="row.cancel == 2"
+                @click="handleCancel(row)"
+                >取消报名
+              </el-button>
+              <el-button
+                style="display: none"
+                :type="type"
+                size="small"
+                icon="el-icon-folder-checked"
+                :disabled="row.cancel == 2"
+                @click="handleAudit(row)"
+                >审核
+              </el-button>
+              <el-button
+                :type="type"
+                size="small"
+                icon="el-icon-receiving"
+                v-if="permission.applyexam_print && row.candidateNo != ''"
+                @click="handlePrint(row)"
+                >准考证打印
+              </el-button>
+            </template>
+
+            <template slot-scope="{ row }" slot="age">
+              {{ row.age == -1 ? "" : row.age }}
+            </template>
+          </avue-crud>
+
+          <el-dialog
+            title="考试资格审核"
+            :visible.sync="dialogFormVisible"
+            modal-append-to-body="false"
+            append-to-body="true"
+            :close-on-click-model="true"
+          >
+            <avue-form
+              ref="formAudit"
+              v-model="Audit"
+              :option="optionAudit"
+              @reset-change="emptytChange"
+              @submit="submit"
+            ></avue-form>
+          </el-dialog>
+
+          <el-dialog
+            title="批量报名导入"
+            append-to-body
+            :visible.sync="excelBox"
+            width="555px"
+          >
+            <avue-form
+              :option="excelOption"
+              v-model="excelForm"
+              :upload-after="uploadAfter"
+            >
+              <template slot="excelTemplate">
+                <el-button type="primary" @click="handleTemplate">
+                  点击下载<i class="el-icon-download el-icon--right"></i>
+                </el-button>
+              </template>
+            </avue-form>
+          </el-dialog>
+
+          <el-dialog
+            title="考试生成"
+            append-to-body
+            :visible.sync="dialogExamFormVisible"
+            width="900px"
+            @close="closeDialog"
+          >
+            <avue-form
+              ref="formExamApply"
+              v-model="examApply"
+              :option="optionExamApply"
+              @reset-change="emptytChange"
+              @submit="submitExamApply"
+            ></avue-form>
+          </el-dialog>
+        </div>
+      </el-card>
+    </el-col>
+  </el-row>
 </template>
 
 <script>
-import { column } from "./data";
 import {
   getdata,
   adddata,
@@ -128,15 +181,102 @@
   cancelTrain,
   addExam,
 } from "@/api/trainingRegistration/trainingRegistration";
+import { mapState } from "vuex";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
+import { getUserDetails } from "@/api/experience/experience"
+
 export default {
   data() {
     return {
-      loading: true,
-      excelBox: false,
+      obj:{
+        userId:''
+      },
+      dialogFormVisible: false,
       dialogExamFormVisible: false,
-      search:{},
+      examPersission: false,
+      applyExport: false,
+      excelBox: false,
+      Audit: {},
+      excelForm: {},
+      excelOption: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [
+          {
+            label: "模板上传",
+            prop: "excelFile",
+            type: "upload",
+            drag: true,
+            loadText: "模板上传中,请稍等",
+            span: 24,
+            propsHttp: {
+              res: "data",
+            },
+            tip: "请上传 .xls,.xlsx 标准格式文件",
+            action: "/api/apply/import-apply",
+          },
+          {
+            label: "模板下载",
+            prop: "excelTemplate",
+            formslot: true,
+            span: 24,
+          },
+        ],
+      },
+      optionAudit: {
+        height: "auto",
+        calcHeight: 30,
+        dialogWidth: 1000,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true, //liu
+        index: true,
+        stripe: true,
+        viewBtn: true,
+        addBtn: true,
+        selection: true,
+        excelBtn: false,
+        menuWidth: 230,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "审核状态",
+            search: true,
+            searchSpan: 5,
+            span: 24,
+            prop: "auditStatus",
+            slot: true,
+            editDisplay: false,
+            addDisplay: false,
+            type: "select",
+            rules: [
+              {
+                required: true,
+                message: "请选择审核类型",
+                trigger: "blur",
+              },
+            ],
+            dicData: [
+              {
+                label: "审核通过",
+                value: 2,
+              },
+              {
+                label: "不通过",
+                value: 3,
+              },
+            ],
+          },
+          {
+            label: "审核明细",
+            span: 24,
+            type: "textarea",
+            prop: "auditDetail",
+          },
+        ],
+      },
       optionExamApply: {
         height: "auto",
         filterBtn: true,
@@ -149,7 +289,7 @@
         index: true,
         stripe: true,
         viewBtn: true,
-        selection: false,
+        selection: true,
         excelBtn: false,
         menuWidth: 380,
         dialogClickModal: false,
@@ -157,15 +297,15 @@
           {
             label: "考试人数",
             prop: "number",
-            type: 'number',
+            type: "number",
             span: 12,
-            precision:0,
-            step:50,
-            mock:{
-              type:'number',
-              max:1000,
-              min:0,
-              precision:0
+            precision: 0,
+            step: 50,
+            mock: {
+              type: "number",
+              max: 1000,
+              min: 0,
+              precision: 0,
             },
             rules: [
               {
@@ -176,22 +316,22 @@
             ],
             minRows: 0,
             maxRows: 1000,
-            value:50,
+            value: 50,
           },
           {
             label: "序号开始",
             prop: "serialStart",
             span: 6,
-            value:1,
-            mock:{
-              type:'number',
-              max:1000,
-              min:1,
-              precision:0
+            value: 1,
+            mock: {
+              type: "number",
+              max: 1000,
+              min: 1,
+              precision: 0,
             },
             minRows: 1,
             maxRows: 1000,
-            type:"number",
+            type: "number",
             rules: [
               {
                 required: true,
@@ -204,16 +344,16 @@
             label: "序号结束",
             prop: "serialEnd",
             span: 6,
-            value:50,
-            mock:{
-              type:'number',
-              max:1000,
-              min:1,
-              precision:0
+            value: 50,
+            mock: {
+              type: "number",
+              max: 1000,
+              min: 1,
+              precision: 0,
             },
             minRows: 1,
             maxRows: 1000,
-            type:"number",
+            type: "number",
             rules: [
               {
                 required: true,
@@ -278,80 +418,489 @@
           },
         ],
       },
-      excelForm: {},
-      excelOption: {
-        submitBtn: false,
-        emptyBtn: false,
+      questionBankOption: {
+        // 操作栏多余按钮去除
+        delBtn: false,
+        editBtn: false,
+        addBtn: true,
+        addBtnText: "报名新增",
+        selection: false,
+        menu: true,
+        // 导出按钮
+        // excelBtn: true,
+        viewBtn: true,
+
+        // title: '题库',
+
+        align: "center",
+        height: "auto",
+        calcHeight: 80,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 4,
+        index: true,
+        indexLabel: "#",
+        //dialogType: 'drawer',
+        dialogClickModal: false,
+        //tree 默认展开
+        defaultExpandAll: true,
+        // 操作栏宽度
+        menuWidth: 250,
         column: [
           {
-            label: "模板上传",
-            prop: "excelFile",
-            type: "upload",
-            drag: true,
-            loadText: "模板上传中,请稍等",
-            span: 24,
-            propsHttp: {
-              res: "data",
-            },
-            tip: "请上传 .xls,.xlsx 标准格式文件",
-            action: "/api/trainingRegistration/import-trainingRegistration",
+            label: "报名时间",
+            prop: "releaseTimeRange",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            searchRange: true,
+            searchSpan: 5,
+            hide: true,
+            addDisplay: false,
+            editDisplay: false,
+            viewDisplay: false,
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请输入时间",
+                trigger: "blur",
+              },
+            ],
           },
           {
-            label: "模板下载",
-            prop: "excelTemplate",
-            formslot: true,
-            span: 24,
+            label: "保安单位名称",
+            searchLabelWidth: "110",
+            labelWidth: 110,
+            cascaderItem: ["userId"],
+            prop: "deptId",
+            type: "tree",
+            hide: true,
+            viewDisabled:false,
+            viewDisplay:false,
+            dicUrl:
+              "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            slot: true,
+            searchSpan: 4,
+            search: false,
+            width: 260,
+            rules: [
+              {
+                required: true,
+                message: "保安单位",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "保安姓名",
+            prop: "userId",
+            type: "tree",
+            dicUrl:
+              "/api/blade-user/security-apply-tree?examType=2&deptId={{key}}",
+            hide: true,
+            slot: true,
+            searchSpan: 4,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            viewDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            viewDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            props: {
+              label: "name",
+              value: "id",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择保安姓名",
+                trigger: "blur",
+              },
+            ],
+            width: 80,
+          },
+          {
+            label: "培训机构名称",
+            prop: "trainingUnitId",
+            type: "select",
+            labelWidth:110,
+            dicUrl:
+              "/api/information/train-unit-tree",
+            hide: true,
+            slot: true,
+            searchSpan: 4,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            viewDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            viewDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            props: {
+              label: "deptName",
+              value: "departmentid",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择保安姓名",
+                trigger: "blur",
+              },
+            ],
+            width: 80,
+          },
+          {
+            label: "保安姓名",
+            prop: "realName",
+            searchSpan: 4,
+            search: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            viewDisplay: true,
+            props: {
+              label: "title",
+              value: "id",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择保安姓名",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "年龄",
+            prop: "age",
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+            viewDisplay: true,
+          },
+          {
+            label: "身份证号",
+            prop: "idCardNo",
+            slot: true,
+            search: true,
+            searchSpan: 5,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请选择准考证号",
+                trigger: "blur",
+              },
+            ],
+            width: 150,
+          },
+          {
+            label: "身份证号",
+            prop: "cardid",
+            searchSpan: 5,
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+            hide:true,
+            rules: [
+              {
+                required: true,
+                message: "请选择准考证号",
+                trigger: "blur",
+              },
+            ],
+            width: 150,
+          },
+          {
+            label: "性别",
+            prop: "sex",
+            type: "select",
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+            dicData: [
+              {
+                label: "男",
+                value: 1,
+              },
+              {
+                label: "女",
+                value: 2,
+              },
+              {
+                label: "未知",
+                value: 3,
+              },
+              {
+                label: " ",
+                value: -1,
+              },
+            ],
+            display: false,
+          },
+
+          {
+            label: "籍贯",
+            prop: "nativePlace",
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+          },
+          {
+            label: "联系电话",
+            prop: "phone",
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+          },
+          {
+            label: "所属保安单位",
+            labelWidth: "110",
+            addDisplay: false,
+            prop: "deptName",
+            width: 260,
+          },
+          // {
+          //   label: "准考证号",
+          //   prop: "candidateNo",
+          //   slot: true,
+          //   // 表单新增时是否禁止
+          //   addDisabled: false,
+          //   // 表单新增时是否可见
+          //   addDisplay: false,
+          //   // 表单新增时是否为查看模式
+          //   addDetail: false,
+          //   // 表单编辑时是否禁止
+          //   editDisabled: false,
+          //   // 表单编辑时是否可见
+          //   editDisplay: true,
+          //   // 表单编辑时是否为查看模式
+          //   editDetail: false,
+          //   rules: [
+          //     {
+          //       required: true,
+          //       message: "请选择准考证号",
+          //       trigger: "blur",
+          //     },
+          //   ],
+          //   width: 100,
+          // },
+          // {
+          //   label: "报考证件",
+          //   prop: "applyCard",
+          //   slot: true,
+          //   // 表单新增时是否禁止
+          //   addDisabled: false,
+          //   // 表单新增时是否可见
+          //   addDisplay: false,
+          //   // 表单新增时是否为查看模式
+          //   addDetail: false,
+          //   // 表单编辑时是否禁止
+          //   editDisabled: false,
+          //   // 表单编辑时是否可见
+          //   editDisplay: true,
+          //   // 表单编辑时是否为查看模式
+          //   editDetail: false,
+          //   rules: [
+          //     {
+          //       required: true,
+          //       message: "请选择准考证号",
+          //       trigger: "blur",
+          //     },
+          //   ],
+          // },
+          {
+            label: "报名时间",
+            prop: "trainingTime",
+            type: "datetime",
+            // span: 24,
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            value:
+              new Date().getFullYear() +
+              "-" +
+              (new Date().getMonth() + 1 < 10
+                ? "0" + (new Date().getMonth() + 1)
+                : new Date().getMonth() + 1) +
+              "-" +
+              (new Date().getDate() < 10
+                ? "0" + new Date().getDate()
+                : new Date().getDate()) +
+              " " +
+              (new Date().getHours() < 10
+                ? "0" + new Date().getHours()
+                : new Date().getHours()) +
+              ":" +
+              (new Date().getMinutes() < 10
+                ? "0" + new Date().getMinutes()
+                : new Date().getMinutes()) +
+              ":" +
+              (new Date().getSeconds() < 10
+                ? "0" + new Date().getSeconds()
+                : new Date().getSeconds()),
+
+            width: 150,
+          },
+          {
+            label: "报名状态",
+            prop: "cancel",
+            search: true,
+            searchSpan: 4,
+            type: "select",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            dicData: [
+              {
+                label: "全部",
+                value: 11,
+              },
+              {
+                label: "已报名",
+                value: 1,
+              },
+              {
+                label: "已取消",
+                value: 2,
+              },
+            ],
           },
         ],
       },
-      selectionList: [],
-      page: {
+      questionBankSearch: {},
+      questionBankLoading: true,
+      questionBankData: [],
+      questionBankPage: {
         pageSize: 10,
         currentPage: 1,
-        total: 0,
+        total: 16,
       },
-      query: {},
-      data: [],
-      option: {
-        // card: true,
-        tip: false,
-        // searchSize: "mini",
-        searchMenuSpan: 6,
-        height: 583,
-        index: true,
-        labelWidth: "120",
-        menuWidth: 200,
-        align: "center",
-        selection: false,
-        column: column,
-        delBtn: false,
-        editBtn: false,
-        addBtn: false,
-      },
+      questionBankQuery: {},
+      questionBankSelectionList: [],
     };
   },
+
+  watch: {
+    "obj.userId": {
+      // form是表单或者表格绑定的数据集,v-model='form'
+      handler(val) {
+        if(val){
+          //查询用户信息
+          getUserDetails(this.userId).then((res)=>{
+            var data = res.data.data;
+            this.obj.cardid = data.cardid;
+            this.obj.age = data.age;
+            this.obj.nativeplace = data.nativeplace;
+            this.obj.phone = data.phone;
+          })
+        }
+      },
+      immediate: true,
+    },
+  },
+  created() {
+    console.log(this.userInfo);
+
+    if (this.userInfo.role_name.indexOf("ksxtadmin") != -1) {
+      this.examPersission = true;
+    }
+
+    this.questionBankSearch["cancel"] = 1;
+  },
+  mounted() {},
   computed: {
+    ...mapState({
+      userInfo: (state) => state.user.userInfo,
+    }),
+
+    ...mapGetters(["userInfo", "permission"]),
+
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.applyexam_add, false),
+        viewBtn: this.vaildData(this.permission.applyexam_view, false),
+        delBtn: this.vaildData(null, false),
+        editBtn: this.vaildData(null, false),
+      };
+    },
     ids() {
       let ids = [];
-      this.selectionList.forEach((ele) => {
+      this.questionBankSelectionList.forEach((ele) => {
         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),
-      };
+    userId() {
+        var d = this.obj.userId + "";
+        return d;
     },
-   
-  },
-  created(){
-    this.search['cancel'] = 1;
-    this.search['auditStatus'] = 4;
   },
   methods: {
     //准考证查看
@@ -363,19 +912,90 @@
         query: obj,
       });
     },
-    sizeChange(val) {
-      this.page.pageSize = val;
-      this.getData();
-    },
-    currentChange(val) {
-      this.page.currentPage = val;
-      this.getData();
-    },
-    rowSave(form, done, loading) {
+    questionBankOnLoad(page, params = {}) {
+      params = this.questionBankSearch;
+      this.questionBankLoading = false;
+      this.loading = true;
+      //判断角色,如果是保安公司管理员或保安,只能查看当前公司的报名信息
       var that = this;
-      adddata(form).then(
+      //获取当前登录人员的角色信息
+      var roleIds = this.userInfo.role_id.split(",");
+      roleIds.forEach((roleId) => {
+        getRoleDetail(roleId).then((res) => {
+          var roleAlias = res.data.data.roleAlias;
+          if (roleAlias == "保安公司管理员" || roleAlias == "保安") {
+            //如果是保安公司管理员
+            params["deptId"] = that.userInfo.dept_id;
+          }
+
+          // const { releaseTimeRange } = this.questionBankSearch;
+          const { releaseTimeRange } = this.questionBankQuery;
+
+          var values;
+
+          // console.log(releaseTimeRange, 123);
+          if (releaseTimeRange) {
+            values = {
+              ...params,
+              beginTime: releaseTimeRange[0],
+              overTime: releaseTimeRange[1],
+              ...this.questionBankQuery,
+            };
+            values.releaseTimeRange = null;
+          } else {
+            values = {
+              ...params,
+              ...this.questionBankQuery,
+            };
+          }
+          getdata(
+            page.currentPage,
+            page.pageSize,
+            // Object.assign(values, this.questionBankQuery)
+            values
+          ).then((res) => {
+            const data = res.data.data;
+            this.questionBankPage.total = data.total;
+            this.questionBankData = data.records;
+            this.questionBankLoading = false;
+            this.questionBankSelectionClear();
+          });
+        });
+      });
+    },
+    questionBankSelectionClear() {
+      this.questionBankSelectionList = [];
+      this.$refs.questionBankCrud.toggleSelection();
+    },
+    questionBankSelectionChange(list) {
+      this.questionBankSelectionList = list;
+    },
+    questionBankSearchChange(params, done) {
+      this.questionBankQuery = params;
+      this.questionBankPage.currentPage = 1;
+      this.questionBankOnLoad(this.questionBankPage, params);
+      done();
+    },
+    questionBankSearchReset() {
+      this.questionBankQuery = {
+        cancel:11,
+      };
+      this.questionBankOnLoad(this.questionBankPage);
+    },
+    questionBankCurrentChange(currentPage) {
+      this.questionBankPage.currentPage = currentPage;
+    },
+    questionBankSizeChange(pageSize) {
+      this.questionBankPage.pageSize = pageSize;
+    },
+
+    // 新增
+    questionBankRowSave(row, done, loading) {
+      // debugger;
+      console.log(row,11111);
+      adddata(row).then(
         (res) => {
-          this.onLoad(this.page);
+          this.questionBankOnLoad(this.questionBankPage);
           if (res.data.data == 201) {
             this.$message({
               type: "warning",
@@ -400,180 +1020,11 @@
         }
       );
     },
-    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();
-        }
-      );
-    },
-    //确认报名
-    affirmApply(row, done, loading) {
-      this.$confirm("确认报名?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      }).then(() => {
-        row.cancel = 3;
-        update(row).then(
-          () => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "确认报名成功!",
-            });
-            done();
-          },
-          (error) => {
-            window.console.log(error);
-            loading();
-          }
-        );
-      });
-    },
-    revoke(row, done, loading) {
-      this.$confirm("确定取消报名?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      }).then(() => {
-        row.cancel = 2;
-        cancelTrain(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(() => {
-          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(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          this.$refs.crudrec.toggleSelection();
-        });
-    },
-    refreshChange() {
-      this.onLoad(this.page, this.query);
-    },
-    onLoad(page, params = {}) {
-      this.loading = true;
-      //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
-      var that = this;
-      //获取当前登录人员的角色信息
-      var roleIds = this.userInfo.role_id.split(",");
-      params = this.search;
-      roleIds.forEach((roleId) => {
-        getRoleDetail(roleId).then((res) => {
-            var roleAlias = res.data.data.roleAlias;
-            if (
-              roleAlias == "保安公司管理员" ||
-              roleAlias == "保安"
-            ) {
-              //如果是保安公司管理员
-              params["deptId"] = that.userInfo.dept_id;
-            }
-            if (
-              roleAlias == "培训公司管理员"
-            ) {
-              //如果是培训公司管理员
-              params["trainingUnitId"] = that.userInfo.dept_id;
-            }
-            getdata(
-              page.currentPage,
-              page.pageSize,
-              Object.assign(params, this.query)
-            ).then((res) => {
-              // console.log(res);
-              const data = res.data.data;
-              this.page.total = data.total;
-              this.data = data.records;
-              console.log(this.data);
-              this.loading = false;
-            });
-        })
-      })
-    },
-    handleImport() {
-      this.excelBox = true;
-    },
-
-    handleTemplate() {
-      window.open(`/api/trainingRegistration/export-template`);
-    },
-    uploadAfter(res, done, loading, column) {
-      window.console.log(column);
-      this.excelBox = false;
-      this.refreshChange();
-      done();
-    },
 
     //生成考试弹窗
     handleBatchExam() {
       this.dialogExamFormVisible = true;
-      if (this.selectionList.length === 0) {
+      if (this.questionBankSelectionList.length === 0) {
         this.ids = "";
       }
     },
@@ -582,35 +1033,34 @@
       var that = this;
       row.startTime = row.startTime + ":00";
       row.endTime = row.endTime + ":00";
-      if(row.number!=((row.serialEnd-row.serialStart)+1)){
-          this.$message({
-            type: "error",
-            message: "考试人数与序号不匹配!",
-          });
-         done();
-         return;
+      if (row.number != row.serialEnd - row.serialStart + 1) {
+        this.$message({
+          type: "error",
+          message: "考试人数与序号不匹配!",
+        });
+        done();
+        return;
       }
 
       var s = new Date(row.startTime);
       var e = new Date(row.endTime);
-      if(s>e){
+      if (s > e) {
         this.$message({
-            type: "error",
-            message: "截止时间不能早于考试考试开始时间!",
-          });
-         done();
-         return;
+          type: "error",
+          message: "截止时间不能早于考试考试开始时间!",
+        });
+        done();
+        return;
       }
-      
-      addExam(Object.assign(row, this.search)).then(
+      addExam(Object.assign(row, this.questionBankSearch)).then(
         () => {
-          this.onLoad(this.page);
-          that.$refs.formExamApply.resetFields();
-          that.dialogExamFormVisible = false;
+          this.questionBankOnLoad(this.questionBankPage);
           this.$message({
             type: "success",
-            message: "操作成功",
+            message: "操作成功!",
           });
+          that.$refs.formExamApply.resetFields();
+          that.dialogExamFormVisible = false;
           done();
         },
         (error) => {
@@ -623,9 +1073,93 @@
     closeDialog() {
       this.$refs.formExamApply.resetFields();
     },
+
+    questionBankRowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
+        })
+        .then(() => {
+          this.questionBankOnLoad(this.questionBankPage);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+
+    //取消报名
+    handleCancel(row) {
+      this.$confirm("确定取消报名?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          row.cancel = 2;
+          row['isExam'] = 1;
+          return cancelTrain(row);
+        })
+        .then(() => {
+          this.questionBankOnLoad(this.questionBankPage);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+
+    questionBankHandleDelete() {
+      if (this.questionBankSelectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(this.ids);
+        })
+        .then(() => {
+          this.questionBankOnLoad(this.questionBankPage);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$refs.questionBankCrud.toggleSelection();
+        });
+    },
+    handleAudit(row) {
+      this.dialogFormVisible = true;
+      this.Audit = row;
+    },
+
+    handleImport() {
+      this.excelBox = true;
+    },
+
+    handleTemplate() {
+      window.open(`/api/apply/export-template`);
+    },
+    uploadAfter(res, done, loading, column) {
+      window.console.log(column);
+      this.excelBox = false;
+      this.refreshChange();
+      done();
+    },
+
+    refreshChange() {
+      this.questionBankOnLoad(this.page, this.query);
+    },
   },
 };
 </script>
 
-<style>
+<style lang="scss" scoped>
 </style>
diff --git a/vue.config.js b/vue.config.js
index 3822093..525b2f8 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -30,6 +30,8 @@
                 // target: 'http://localhost:83',
                 // target: 'http://192.168.0.114:83',//钟日健W
                 // target: 'http://192.168.0.106:83',//曾杭W
+                // target: 'http://localhost:81',
+                // target: 'http://192.168.0.115:83',//钟日健W
                 // target: 'http://localhost:81', //原W
                 // target: 'http://192.168.0.115:83',//原W
                 // target: 'http://192.168.0.107:83',//唐N
@@ -42,4 +44,4 @@
             }
         }
     }
-};
\ No newline at end of file
+};

--
Gitblit v1.9.3