From afbf287f31db7e14f7fc890f2674f281fdbef3bd Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 13 Aug 2021 08:43:00 +0800
Subject: [PATCH] 报名考试修改

---
 src/views/trainExam/index.vue                        |  686 +++++++++++++++++++++-------
 src/views/trainingRegistration/data.js               |   70 +-
 public/securityPrint.html                            |    2 
 src/views/securityUnit/index.vue                     |    3 
 public/papers.html                                   |    1 
 src/api/trainingRegistration/trainingRegistration.js |   14 
 src/views/trainApply/index.vue                       |   78 ++-
 src/views/trainingRegistration/index.vue             |  193 +++++++
 public/papersApply.html                              |    1 
 src/views/applydetailed/index.vue                    |    2 
 src/views/securityEquipment/equipments.vue           |    6 
 src/views/exam/startexam.vue                         |    1 
 src/api/examapi/examination.js                       |   61 +-
 src/views/trainExam/data.js                          |  294 ++++++------
 14 files changed, 997 insertions(+), 415 deletions(-)

diff --git a/public/papers.html b/public/papers.html
index f4829ce..b39f705 100644
--- a/public/papers.html
+++ b/public/papers.html
@@ -121,6 +121,7 @@
             var examType = JSON.parse(getData("data")).examType;
             // console.log(JSON.parse(getData("data")), 111);
 
+            // axios.get('http://223.82.109.183:2080/apply/getApplyInfo?id=' + id + "&applyExamType=" + examType).then(function(res) {
             axios.get('http://localhost:81/apply/getApplyInfo?id=' + id + "&applyExamType=" + examType).then(function(res) {
                 var data = res.data.data;
                 var str = `<span class="title">${data.examName}</span>
diff --git a/public/papersApply.html b/public/papersApply.html
index 2df373c..3682b04 100644
--- a/public/papersApply.html
+++ b/public/papersApply.html
@@ -77,6 +77,7 @@
             var name = JSON.parse(getData("data")).name;
             // console.log(JSON.parse(getData("data")), 111);
 
+            // axios.get('http://223.82.109.183:2080/apply/getApplyDetailList?examId=' + id).then(function(res) {
             axios.get('http://localhost:81/apply/getApplyDetailList?examId=' + id).then(function(res) {
                 var data = res.data;
                 var list = data.applyList;
diff --git a/public/securityPrint.html b/public/securityPrint.html
index f03c34a..6935f39 100644
--- a/public/securityPrint.html
+++ b/public/securityPrint.html
@@ -199,7 +199,7 @@
         var securityName = JSON.parse(getData("data")).securityName;
         // console.log(JSON.parse(getData("data")), 111);
 
-        axios.get('http://localhost:81/apply/userDetail?id=' + id).then(function(res) {
+        axios.get('http://223.82.109.183:2080/apply/userDetail?id=' + id).then(function(res) {
             var data = res.data.data;
             var str = `<div id="table1"></div>
             <div id="table">
diff --git a/src/api/examapi/examination.js b/src/api/examapi/examination.js
index c1fe666..5112045 100644
--- a/src/api/examapi/examination.js
+++ b/src/api/examapi/examination.js
@@ -1,39 +1,48 @@
 import request from '@/router/axios';
 
 export const getList = (current, size, params) => {
-  return request({
-    url: '/api/exampaper/page',
-    method: 'get',
-    params: {
-      ...params,
-      current,
-      size
-    }
-  })
+    return request({
+        url: '/api/exampaper/page',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size
+        }
+    })
 }
 
 export const remove = (ids) => {
-  return request({
-    url: '/api/exampaper/remove',
-    method: 'post',
-    params: {
-      ids,
-    }
-  })
+    return request({
+        url: '/api/exampaper/remove',
+        method: 'post',
+        params: {
+            ids,
+        }
+    })
 }
 
 export const add = (row) => {
-  return request({
-    url: '/api/exampaper/submit',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/exampaper/submit',
+        method: 'post',
+        data: row
+    })
 }
 
 export const update = (row) => {
-  return request({
-    url: '/api/exampaper/update',
-    method: 'post',
-    data: row
-  })
+    return request({
+        url: '/api/exampaper/update',
+        method: 'post',
+        data: row
+    })
 }
+
+
+export const updateAudit = (row) => {
+    return request({
+        url: '/api/exampaper/update-audit',
+        method: 'post',
+        data: row
+    })
+}
\ No newline at end of file
diff --git a/src/api/trainingRegistration/trainingRegistration.js b/src/api/trainingRegistration/trainingRegistration.js
index 5049a88..9b93056 100644
--- a/src/api/trainingRegistration/trainingRegistration.js
+++ b/src/api/trainingRegistration/trainingRegistration.js
@@ -54,4 +54,18 @@
             ids,
         }
     })
+}
+
+
+export const addExam = (ids, examTime, startTime, endTime) => {
+    return request({
+        url: '/api/trainingRegistration/batchExam',
+        method: 'post',
+        params: {
+            ids,
+            examTime,
+            startTime,
+            endTime
+        }
+    })
 }
\ No newline at end of file
diff --git a/src/views/applydetailed/index.vue b/src/views/applydetailed/index.vue
index 813d19a..58bfe60 100644
--- a/src/views/applydetailed/index.vue
+++ b/src/views/applydetailed/index.vue
@@ -36,7 +36,7 @@
                 plain
                 icon="el-icon-download"
                 @click="handleExport"
-                >清册生成
+                >清册打印
               </el-button>
               <el-button
                 style="display:none"
diff --git a/src/views/exam/startexam.vue b/src/views/exam/startexam.vue
index 07cfd3d..0a343d4 100644
--- a/src/views/exam/startexam.vue
+++ b/src/views/exam/startexam.vue
@@ -338,6 +338,7 @@
   methods: {
     questionBankOnLoad(page, params = {}) {
       this.questionBankLoading = false;
+      params['examType'] = 1;
       getList(
         page.currentPage,
         page.pageSize,
diff --git a/src/views/securityEquipment/equipments.vue b/src/views/securityEquipment/equipments.vue
index 399fed4..e2b3ebe 100644
--- a/src/views/securityEquipment/equipments.vue
+++ b/src/views/securityEquipment/equipments.vue
@@ -36,7 +36,7 @@
         </template>
       </avue-crud>
       <el-dialog
-        title="题库导入"
+        title="装备附件批量导入"
         append-to-body
         :visible.sync="excelBox"
         width="555px"
@@ -81,7 +81,7 @@
               res: "data",
             },
             tip: "请上传 .xls,.xlsx 标准格式文件",
-            action: "/api/examSubjectChoices/import-examSubject",
+            action: "/api/equipage/import-equipage",
           },
           {
             label: "模板下载",
@@ -135,7 +135,7 @@
       done();
     },
     handleTemplate() {
-      window.open(`/api/examSubjectChoices/export-template`);
+      window.open(`/api/equipage/export-template`);
     },
     sizeChange(val) {
       this.page1.currentPage = 1;
diff --git a/src/views/securityUnit/index.vue b/src/views/securityUnit/index.vue
index 624bc9d..aa0a674 100644
--- a/src/views/securityUnit/index.vue
+++ b/src/views/securityUnit/index.vue
@@ -19,6 +19,7 @@
       >
         <template slot-scope="{ type, size, row }" slot="menu">
           <el-button
+            style="display:none"
             :size="size"
             :type="type"
             @click="handleUploadPage(row)"
@@ -285,7 +286,7 @@
         searchSize: "mini",
         searchMenuSpan: 6,
         height: 583,
-        menuWidth: 290,
+        menuWidth: 160,
         align: "center",
         selection: true,
         column: column,
diff --git a/src/views/trainApply/index.vue b/src/views/trainApply/index.vue
index 57af7a2..f5bc5e0 100644
--- a/src/views/trainApply/index.vue
+++ b/src/views/trainApply/index.vue
@@ -31,6 +31,7 @@
                         <!-- 自定义按钮 -->
                         <template slot="menuLeft">
                             <el-button
+                                style="display:none"
                                 type="warning"
                                 size="small"
                                 plain
@@ -39,12 +40,21 @@
                                 >导出
                             </el-button>
                             <el-button
+                                 style="display:none"
                                 type="success"
                                 size="small"
                                 plain
                                 icon="el-icon-upload2"
                                 @click="handleImport"
                                 >导入
+                            </el-button>
+                            <el-button
+                                type="warning"
+                                size="small"
+                                plain
+                                icon="el-icon-download"
+                                @click="handleExport"
+                                >清册打印
                             </el-button>
                         </template>
 
@@ -142,7 +152,7 @@
                         prop: "userId",
                         type: 'tree',
                         dicUrl: '',
-                        search: true,
+                        
                         hide:true,
                         slot: true,
                         // 表单新增时是否禁止
@@ -174,6 +184,7 @@
                         addDisabled: false,
                         // 表单新增时是否可见
                         addDisplay: false,
+                        search: true,
                         // 表单新增时是否为查看模式
                         addDetail: false,
                         // 表单编辑时是否禁止
@@ -385,26 +396,27 @@
                         // 表单编辑时是否为查看模式
                         editDetail: false,
                         width: 160
-                    },{
-                        label: "报名状态",
-                        prop: "cancel", 
-                        slot: true,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: false,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: false,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        dicData:DIC.cancel,
-                        search:true,
-                        type:"select"
                     },
+                    // {
+                    //     label: "报名状态",
+                    //     prop: "cancel", 
+                    //     slot: true,
+                    //     // 表单新增时是否禁止
+                    //     addDisabled: false,
+                    //     // 表单新增时是否可见
+                    //     addDisplay: false,
+                    //     // 表单新增时是否为查看模式
+                    //     addDetail: false,
+                    //     // 表单编辑时是否禁止
+                    //     editDisabled: false,
+                    //     // 表单编辑时是否可见
+                    //     editDisplay: true,
+                    //     // 表单编辑时是否为查看模式
+                    //     editDetail: false,
+                    //     dicData:DIC.cancel,
+                    //     search:true,
+                    //     type:"select"
+                    // },
                 ]
             },
             questionBankSearch: {},
@@ -620,17 +632,27 @@
                     this.$refs.questionBankCrud.toggleSelection();
                 });
         },
-
-        //导出数据
+        //清册生成
         handleExport() {
-            this.$confirm("是否导出清册数据?", "提示", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            }).then(() => {
-                window.open(`/api/trainingRegistration/export-apply?examId=${this.$route.query.id}`);
+            var obj ={};
+            obj["name"] = "报名清册信息";
+            obj["examId"] = this.$route.query.id;
+            this.$router.push({
+                path: `/applydetailed/papers`,
+                query: obj,
             });
         },
+
+        //导出数据
+        // handleExport() {
+        //     this.$confirm("是否导出清册数据?", "提示", {
+        //         confirmButtonText: "确定",
+        //         cancelButtonText: "取消",
+        //         type: "warning",
+        //     }).then(() => {
+        //         window.open(`/api/trainingRegistration/export-apply?examId=${this.$route.query.id}`);
+        //     });
+        // },
         handleImport() {
             this.excelBox = true;
         },
diff --git a/src/views/trainExam/data.js b/src/views/trainExam/data.js
index d206338..5b314b3 100644
--- a/src/views/trainExam/data.js
+++ b/src/views/trainExam/data.js
@@ -1,160 +1,164 @@
 export var infoColumn = [{
-    label: "申请单位名称",
+        label: "申请单位名称",
 
-    prop: "deptId",
-    type: "tree",
-    dicUrl: "/api/blade-system/dept/lazy-tree-type?deptCategory=3&parentId=1418458374477549569",
-    width: 180,
-    hide: true,
-    viewDisplay: false,
-    props: {
-        label: "title",
-        value: "id"
-    },
-    rules: [{
-        required: true,
-        message: "请选择申请单位名称",
-        trigger: "blur"
-    }]
-}, {
-    label: "申请单位名称",
-    prop: "deptName",
-    type: "select",
-    dicUrl: "/api/blade-system/dept/tree",
-    width: 180,
-    editDisplay: false,
-    addDisplay: false
-},
-{
-    label: "考试名称",
-    searchSpan: 4,
-    width: 180,
-    prop: "trainExamName",
-    search: true,
-},
-
-{
-    label: "开始时间",
-    prop: "startTime",
-    type: "datetime",
-    format: "yyyy-MM-dd HH:mm:ss",
-    valueFormat: "yyyy-MM-dd HH:mm:ss",
-    width: 180,
-    rules: [{
-        required: true,
-        message: "请选择开始时间",
-        trigger: "blur"
-    }]
-},
-{
-    label: "结束时间",
-    prop: "endTime",
-    type: "datetime",
-    width: 180,
-    format: "yyyy-MM-dd HH:mm:ss",
-    valueFormat: "yyyy-MM-dd HH:mm:ss",
-    rules: [{
-        required: true,
-        message: "请选择结束时间",
-        trigger: "click"
-    }]
-},
-{
-    label: "申请时间",
-    prop: "createTime",
-    type: "datetime",
-    width: 180,
-    editDisplay: false,
-    addDisplay: false,
-    format: "yyyy-MM-dd HH:mm:ss",
-    valueFormat: "yyyy-MM-dd HH:mm:ss",
-    rules: [{
-        required: true,
-        message: "请选择结束时间",
-        trigger: "click"
-    }]
-},
-{
-    label: "审核时间",
-    prop: "auditTime",
-    type: "datetime",
-    width: 180,
-    editDisplay: false,
-    addDisplay: false,
-    format: "yyyy-MM-dd HH:mm:ss",
-    valueFormat: "yyyy-MM-dd HH:mm:ss",
-    rules: [{
-        required: true,
-        message: "请选择结束时间",
-        trigger: "click"
-    }]
-},
-{
-    label: "审核状态",
-    search: true,
-    searchSpan: 4,
-    prop: "auditStatus",
-    slot: true,
-    editDisplay: false,
-    addDisplay: false,
-    type: "select",
-    rules: [{
-        required: true,
-        message: "请选择审核类型",
-        trigger: "blur"
-    }],
-    dicData: [{
-        label: "审核通过",
-        value: 1
+        prop: "deptId",
+        type: "tree",
+        dicUrl: "/api/blade-system/dept/lazy-tree-type?deptCategory=3&parentId=1418458374477549569",
+        width: 180,
+        hide: true,
+        viewDisplay: false,
+        props: {
+            label: "title",
+            value: "id"
+        },
+        rules: [{
+            required: true,
+            message: "请选择申请单位名称",
+            trigger: "blur"
+        }]
+    }, {
+        label: "申请单位名称",
+        prop: "deptName",
+        type: "select",
+        dicUrl: "/api/blade-system/dept/tree",
+        width: 180,
+        editDisplay: false,
+        addDisplay: false
     },
     {
-        label: "不通过",
-        value: 2
+        label: "考试名称",
+        searchSpan: 4,
+        width: 180,
+        prop: "trainExamName",
+        search: true,
+    },
+
+    {
+        label: "开始时间",
+        prop: "startTime",
+        type: "datetime",
+        format: "yyyy-MM-dd HH:mm:ss",
+        valueFormat: "yyyy-MM-dd HH:mm:ss",
+        width: 180,
+        rules: [{
+            required: true,
+            message: "请选择开始时间",
+            trigger: "blur"
+        }]
     },
     {
-        label: "待审核",
-        value: 3
+        label: "结束时间",
+        prop: "endTime",
+        type: "datetime",
+        width: 180,
+        format: "yyyy-MM-dd HH:mm:ss",
+        valueFormat: "yyyy-MM-dd HH:mm:ss",
+        rules: [{
+            required: true,
+            message: "请选择结束时间",
+            trigger: "click"
+        }]
+    },
+    {
+        label: "申请时间",
+        prop: "createTime",
+        type: "datetime",
+        width: 180,
+        editDisplay: false,
+        addDisplay: false,
+        format: "yyyy-MM-dd HH:mm:ss",
+        valueFormat: "yyyy-MM-dd HH:mm:ss",
+        rules: [{
+            required: true,
+            message: "请选择结束时间",
+            trigger: "click"
+        }]
+    },
+    {
+        label: "审核时间",
+        prop: "auditTime",
+        type: "datetime",
+        width: 180,
+        editDisplay: false,
+        addDisplay: false,
+        format: "yyyy-MM-dd HH:mm:ss",
+        valueFormat: "yyyy-MM-dd HH:mm:ss",
+        rules: [{
+            required: true,
+            message: "请选择结束时间",
+            trigger: "click"
+        }]
+    },
+    {
+        label: "审核状态",
+        search: true,
+        searchSpan: 4,
+        prop: "auditStatus",
+        slot: true,
+        editDisplay: false,
+        addDisplay: false,
+        type: "select",
+        rules: [{
+            required: true,
+            message: "请选择审核类型",
+            trigger: "blur"
+        }],
+        dicData: [{
+                label: "审核通过",
+                value: 1
+            },
+            {
+                label: "不通过",
+                value: 2
+            },
+            {
+                label: "待审核",
+                value: 3
+            }
+        ]
+    },
+    {
+        label: "审核明细",
+        editDisplay: false,
+        addDisplay: false,
+        prop: "auditDetail"
     }
-    ]
-},
-{
-    label: "审核明细",
-    editDisplay: false,
-    addDisplay: false,
-    prop: "auditDetail"
-}
 ]
 
 
 export var auditColumn = [{
-    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: 1
+        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: 1
+            },
+            {
+                label: "不通过",
+                value: 2
+            },
+            {
+                label: "待审核",
+                value: 3
+            }
+        ]
     },
     {
-        label: "不通过",
-        value: 2
+        label: "审核明细",
+        span: 24,
+        type: "textarea",
+        prop: "auditDetail"
     }
-    ]
-},
-{
-    label: "审核明细",
-    span: 24,
-    type: "textarea",
-    prop: "auditDetail"
-}
 ]
\ No newline at end of file
diff --git a/src/views/trainExam/index.vue b/src/views/trainExam/index.vue
index 4aa7515..bae15c3 100644
--- a/src/views/trainExam/index.vue
+++ b/src/views/trainExam/index.vue
@@ -1,77 +1,134 @@
+/*
+ * @Author: Morpheus
+ * @Date: 2021-07-05 16:31:54
+ * @Last Modified by: Morpheus
+ * @Last Modified time: 2021-07-18 17:09:52
+ * menu-name 考试管理
+ */
 <template>
-  <basic-container class="hasButOne">
-    <avue-crud
-      :option="option"
-      :table-loading="loading"
-      :data="data"
-      :page.sync="page"
-      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-scope="{ type,row }" slot="menu">
-        <el-button
-          :type="type"
-          size="small"
-          icon="el-icon-folder-checked"
-          @click="handleAudit(row)"
-          >审核
-        </el-button>
-      </template>
-    </avue-crud>
+  <el-row class="morpheus-box-paper">
+    <el-col :span="24">
+      <el-card>
+        <div class="exam-card-body">
+          <avue-crud
+            v-model="form"
+            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-update="questionBankRowUpdate"
+            @row-del="questionBankRowDel"
+          >
+            <!-- 自定义按钮 -->
+            <!-- <template slot="menuLeft">
+                            <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">新增
+                            </el-button>
+                            <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">删除
+                            </el-button>
+                            <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">导出
+                            </el-button>
+                        </template> -->
 
-    <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>
-  </basic-container>
+            <template slot="menuLeft">
+              <el-button
+                type="danger"
+                size="small"
+                icon="el-icon-delete"
+                @click="questionBankHandleDelete"
+                >删 除
+              </el-button>
+            </template>
+
+            <template slot-scope="{ row }" slot="examStatus">
+              <el-tag>{{ row.examStatus == 0 ? "已发布" : "草稿" }}</el-tag>
+            </template>
+
+            <template slot-scope="{ row }" slot="menu">
+              <el-button
+                type="text"
+                size="mini"
+                icon="el-icon-collection"
+                class="start-kaoshi"
+                @click="startExam(row)"
+                >报名清册
+              </el-button>
+              <el-button
+                type="text"
+                size="mini"
+                icon="el-icon-folder-checked"
+                @click="handleAudit(row)"
+                >审核
+              </el-button>
+            </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>
+        </div>
+      </el-card>
+    </el-col>
+  </el-row>
 </template>
 
 <script>
-import { infoColumn,auditColumn } from "./data";
-import {
-  getList,
-  remove,
-  update,
-  updateAudit,
-  add,
-  getDetail,
-} from "@/api/trainExam/trainExam";
-import { mapGetters } from "vuex";
-
+import { getList, add, remove, update,updateAudit } from "@/api/examapi/examination";
+import { auditColumn } from "./data";
 export default {
   data() {
+    var validatePass = (rule, value, callback) => {
+      console.log(value);
+      if (value == undefined || value == "") {
+        callback(new Error("请输入分数"));
+        return;
+      } else if (value !== "" && isNaN(value) == true) {
+        callback(new Error("请输入数字"));
+      } else if (value <= 0) {
+        callback(new Error("分数设置请大于0"));
+      } else {
+        callback();
+      }
+    };
+
     return {
       form: {},
-      Audit:{},
-      query: {},
-      loading: true,
-      deptCategory: "",
-      deptId: "",
-      userId: "",
+      Audit: {},
       dialogFormVisible: false,
-      page: {
-        pageSize: 10,
-        currentPage: 1,
-        total: 0,
-      },
-      selectionList: [],
-      optionAudit:{
+      optionAudit: {
         height: "auto",
         calcHeight: 30,
         dialogWidth: 1000,
@@ -89,54 +146,393 @@
         dialogClickModal: false,
         column: auditColumn,
       },
-      option: {
-        height: "auto",
-        calcHeight: 30,
-        dialogWidth: 1000,
-        tip: false,
-        searchShow: true,
-        searchMenuSpan: 6,
-        border: false,
-        index: true,
-        stripe: true,
-        viewBtn: true,
+      questionBankOption: {
+        // 操作栏多余按钮去除
+        delBtn: true,
+        editBtn: true,
         addBtn: true,
         selection: true,
+        menu: true,
+        // 导出按钮
         excelBtn: false,
-        menuWidth: 230,
-        labelWidth: "120",
+        viewBtn: true,
+
+        // title: '题库',
+
+        align: "center",
+        height: "auto",
+        calcHeight: 80,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 4,
+        index: true,
+        indexLabel: "序号",
+        //dialogType: 'drawer',
         dialogClickModal: false,
-        column: infoColumn,
+        // 操作栏宽度
+        menuWidth: 280,
+
+        labelWidth: 140,
+
+        column: [
+          {
+            label: "考试名称",
+            prop: "examName",
+            search: true,
+            searchSpan: 4,
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请输入试卷名称",
+                trigger: "blur",
+              },
+            ],
+            width:200,
+          },
+          // {
+          //     label: "试卷分数",
+          //     prop: "totalScore",
+          //     slot: true,
+          //     // 表单新增时是否禁止
+          //     addDisabled: false,
+          //     // 表单新增时是否可见
+          //     addDisplay: true,
+          //     // 表单新增时是否为查看模式
+          //     addDetail: false,
+          //     // 表单编辑时是否禁止
+          //     editDisabled: false,
+          //     // 表单编辑时是否可见
+          //     editDisplay: true,
+          //     // 表单编辑时是否为查看模式
+          //     editDetail: false,
+
+          //     rules: [{ validator: validatePass, required: true, trigger: 'blur' }],
+          //     width: 100
+          // },
+          {
+            label: "考试时间",
+            prop: "examTime",
+            type: "daterange",
+            // span: 24,
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            startPlaceholder: "考试开始时间",
+            endPlaceholder: "考试结束时间",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            // display: false,
+            hide: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择考试时间",
+                trigger: "blur",
+              },
+            ],
+            width: 160,
+          },
+          {
+            label: "考试开始时间",
+            prop: "startTime",
+            type: "datetime",
+            // span: 24,
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            width: 160,
+          },
+          {
+            label: "考试结束时间",
+            prop: "endTime",
+            type: "datetime",
+            // span: 24,
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            width: 160,
+          },
+          {
+            label: "创建人",
+            prop: "creator",
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            hide: true,
+            display: false,
+          },
+          {
+            label: "备注",
+            prop: "remark",
+            span: 24,
+            hide:true,
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+          },
+          {
+            label: "注意事项",
+            prop: "examAttention",
+            type: "textarea",
+            span: 24,
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            width: 150,
+          },
+          {
+            label: "申请时间",
+            prop: "createTime",
+            type: "datetime",
+            width: 160,
+            editDisplay: false,
+            addDisplay: false,
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            rules: [
+              {
+                required: true,
+                message: "请选择结束时间",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "审核时间",
+            prop: "auditTime",
+            type: "datetime",
+            width: 160,
+            editDisplay: false,
+            addDisplay: false,
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            rules: [
+              {
+                required: true,
+                message: "请选择结束时间",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "审核状态",
+            search: true,
+            searchSpan: 4,
+            prop: "auditStatus",
+            slot: true,
+            editDisplay: false,
+            addDisplay: false,
+            type: "select",
+            rules: [
+              {
+                required: true,
+                message: "请选择审核类型",
+                trigger: "blur",
+              },
+            ],
+            dicData: [
+              {
+                label: "审核通过",
+                value: 1,
+              },
+              {
+                label: "不通过",
+                value: 2,
+              },
+              {
+                label: "待审核",
+                value: 3,
+              },
+            ],
+          },
+          {
+            label: "审核明细",
+            editDisplay: false,
+            addDisplay: false,
+            prop: "auditDetail",
+          },
+        ],
       },
-      data: [],
+      questionBankSearch: {},
+      questionBankLoading: true,
+      questionBankData: [],
+      questionBankPage: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 16,
+      },
+      questionBankQuery: {},
+      questionBankSelectionList: [],
     };
   },
+  created() {},
+  mounted() {},
   computed: {
-    ...mapGetters(["permission"]),
-    permissionList() {
-      return {
-        addBtn: this.vaildData(this.permission.notice_add, false),
-        viewBtn: this.vaildData(this.permission.notice_view, false),
-        delBtn: this.vaildData(null, false),
-        editBtn: this.vaildData(this.permission.notice_edit, false),
-      };
-    },
     ids() {
       let ids = [];
-      this.selectionList.forEach((ele) => {
+      this.questionBankSelectionList.forEach((ele) => {
         ids.push(ele.id);
       });
       return ids.join(",");
     },
   },
-  mounted() {},
+  watch: {},
   methods: {
-    rowSave(row, done, loading) {
-      row.category = 1;
-      row.deptId = this.deptId;
+    questionBankOnLoad(page, params = {}) {
+      this.questionBankLoading = false;
+      params["examType"] = 2;
+      getList(
+        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();
+      });
+    },
+    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;
+    },
+    //审核
+    submit(row,done,loading){
+      updateAudit(row).then(
+        () => {
+          this.dialogFormVisible = false;
+          this.questionBankOnLoad(this.questionBankPage);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    startExam(row) {
+      //正式考试
+      if (row.examType == 1) {
+        this.$router.push({
+          path: `/applydetailed`,
+          query: row,
+        });
+      }
+
+      //模拟考试
+      if (row.examType == 2) {
+        this.$router.push({
+          path: `/trainApply`,
+          query: row,
+        });
+      }
+    },
+    // 新增
+    questionBankRowSave(row, done, loading) {
+      row.startTime = row.examTime[0];
+      row.endTime = row.examTime[1];
+      row.examTime = JSON.stringify(row.examTime);
       add(row).then(
         () => {
-          this.onLoad(this.page);
+          this.questionBankOnLoad(this.questionBankPage);
           this.$message({
             type: "success",
             message: "操作成功!",
@@ -149,10 +545,16 @@
         }
       );
     },
-    rowUpdate(row, index, done, loading) {
+    questionBankRowUpdate(row, index, done, loading) {
+      if (Array.isArray(row.examTime) != true) {
+        row.examTime = row.examTime.split(",");
+      }
+      row.startTime = row.examTime[0];
+      row.endTime = row.examTime[1];
+      row.examTime = JSON.stringify(row.examTime);
       update(row).then(
         () => {
-          this.onLoad(this.page);
+          this.questionBankOnLoad(this.questionBankPage);
           this.$message({
             type: "success",
             message: "操作成功!",
@@ -165,7 +567,7 @@
         }
       );
     },
-    rowDel(row) {
+    questionBankRowDel(row) {
       this.$confirm("确定将选择数据删除?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
@@ -175,32 +577,15 @@
           return remove(row.id);
         })
         .then(() => {
-          this.onLoad(this.page);
+          this.questionBankOnLoad(this.questionBankPage);
           this.$message({
             type: "success",
             message: "操作成功!",
           });
         });
     },
-    searchReset() {
-      this.query = {};
-      this.onLoad(this.page);
-    },
-    searchChange(params, done) {
-      this.query = params;
-      this.page.currentPage = 1;
-      this.onLoad(this.page, params);
-      done();
-    },
-    selectionChange(list) {
-      this.selectionList = list;
-    },
-    selectionClear() {
-      this.selectionList = [];
-      this.$refs.crud.toggleSelection();
-    },
-    handleDelete() {
-      if (this.selectionList.length === 0) {
+    questionBankHandleDelete() {
+      if (this.questionBankSelectionList.length === 0) {
         this.$message.warning("请选择至少一条数据");
         return;
       }
@@ -213,76 +598,21 @@
           return remove(this.ids);
         })
         .then(() => {
-          this.onLoad(this.page);
+          this.questionBankOnLoad(this.questionBankPage);
           this.$message({
             type: "success",
             message: "操作成功!",
           });
-          this.$refs.crud.toggleSelection();
+          this.$refs.questionBankCrud.toggleSelection();
         });
     },
-    //审核
-    submit(row,done,loading){
-      updateAudit(row).then(
-        () => {
-          this.dialogFormVisible = false;
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          done();
-        },
-        (error) => {
-          window.console.log(error);
-          loading();
-        }
-      );
-    },
-    handleAudit(row){
-        this.dialogFormVisible = true;
-        this.Audit = row;
-    },
-    beforeOpen(done, type) {
-      if (["edit", "view"].includes(type)) {
-        getDetail(this.form.id).then((res) => {
-          this.form = res.data.data;
-        });
-      }
-      done();
-    },
-    currentChange(currentPage) {
-      this.page.currentPage = currentPage;
-    },
-    sizeChange(pageSize) {
-      this.page.pageSize = pageSize;
-    },
-    refreshChange() {
-      this.onLoad(this.page, this.query);
-    },
-    onLoad(page, params = {}) {
-      this.deptId = JSON.parse(
-        window.localStorage.getItem("saber-userInfo")
-      ).content.dept_id;
-
-      this.userId = JSON.parse(
-        window.localStorage.getItem("saber-userInfo")
-      ).content.user_id;
-
-        this.loading = true;
-        getList(page.currentPage, page.pageSize, params).then(
-            (res) => {
-            const data = res.data.data;
-            this.page.total = data.total;
-            this.data = data.records;
-            this.loading = false;
-            this.selectionClear();
-            }
-        );
+    handleAudit(row) {
+      this.dialogFormVisible = true;
+      this.Audit = row;
     },
   },
 };
 </script>
 
-<style>
+<style lang="scss" scoped>
 </style>
diff --git a/src/views/trainingRegistration/data.js b/src/views/trainingRegistration/data.js
index f4ab8ac..f08ae3d 100644
--- a/src/views/trainingRegistration/data.js
+++ b/src/views/trainingRegistration/data.js
@@ -69,20 +69,32 @@
         editDisplay: false,
         addDisplay: false,
         width: 160
-    },
-    {
-        label: "电话",
-        prop: "phone",
-        // hide: true,
+    }, {
+        label: "准考证号",
+        prop: "candidateNo",
         rules: [{
             required: true,
-            message: "请输入电话",
+            message: "请输入准考证号",
             trigger: "blur"
         }],
         editDisplay: false,
         addDisplay: false,
-        width: 110,
-    }, {
+        width: 160
+    },
+    // {
+    //     label: "电话",
+    //     prop: "phone",
+    //     // hide: true,
+    //     rules: [{
+    //         required: true,
+    //         message: "请输入电话",
+    //         trigger: "blur"
+    //     }],
+    //     editDisplay: false,
+    //     addDisplay: false,
+    //     width: 110,
+    // },
+    {
         label: "单位名称",
         prop: "deptId",
         // width: 70,
@@ -115,30 +127,28 @@
             trigger: "blur"
         }],
     },
-    // {
-    //     label: "考试名称",
-    //     prop: "trainExamId",
-    //     dicUrl: "/api/trainExam/page-tree?deptId={{key}}",
-    //     props: {
-    //         label: "trainExamName",
-    //         value: "id"
-    //     },
-
-    // },
     {
-        label: "报名状态",
-        prop: "cancel",
-        // search: true,
-        dicData: DIC1,
-        props: {
-            label: "label",
-            value: "value"
-        },
-        editDisplay: false,
-        addDisplay: false,
-        searchSpan: 4,
-        width: 100,
+        label: "考试名称",
+        prop: "trainExamName"
     },
+    {
+        label: "考试证件",
+        prop: "applyCard"
+    },
+    // {
+    //     label: "报名状态",
+    //     prop: "cancel",
+    //     // search: true,
+    //     dicData: DIC1,
+    //     props: {
+    //         label: "label",
+    //         value: "value"
+    //     },
+    //     editDisplay: false,
+    //     addDisplay: false,
+    //     searchSpan: 4,
+    //     width: 100,
+    // },
     //  {
     //     label: "确认截止时间",
     //     prop: "remainingTime",
diff --git a/src/views/trainingRegistration/index.vue b/src/views/trainingRegistration/index.vue
index c0b9909..51fb7b9 100644
--- a/src/views/trainingRegistration/index.vue
+++ b/src/views/trainingRegistration/index.vue
@@ -40,6 +40,14 @@
           
           >考试申请
         </el-button>
+        <el-button
+          type="primary"
+          size="small"
+          plain
+          icon="el-icon-folder-checked"
+          @click="handleImport"
+          >清册导入
+        </el-button>
       </template>
       <template slot-scope="{ type, size, row }" slot="menu">
         <el-button
@@ -50,6 +58,14 @@
           >取消报名</el-button
         >
         <el-button
+          :type="type"
+          size="small"
+          icon="el-icon-receiving"
+          :disabled="row.candidateNo==''"
+          @click="handlePrint(row)"
+          >准考证打印
+        </el-button>
+        <el-button
           icon="el-icon-folder-checked"
           style="display: none"
           @click="affirmApply(row)"
@@ -59,6 +75,42 @@
         >
       </template>
     </avue-crud>
+
+    <el-dialog
+        title="清册数据导入"
+        append-to-body
+        :visible.sync="excelBox"
+        width="555px"
+        >
+        <avue-form
+            :option="excelOption"
+            v-model="excelForm"
+            :upload-after="uploadAfter"
+        >
+            <template slot="excelTemplate">
+            <el-button type="primary" @click="handleTemplate">
+                点击下载<i class="el-icon-download el-icon--right"></i>
+            </el-button>
+            </template>
+        </avue-form>
+    </el-dialog>
+
+
+    <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>
 
@@ -69,13 +121,90 @@
   adddata,
   update,
   remove,
-  cancelTrain
+  cancelTrain,
+  addExam
 } from "@/api/trainingRegistration/trainingRegistration";
 
 export default {
   data() {
     return {
       loading: true,
+      excelBox:false,
+      dialogExamFormVisible:false,
+      optionExamApply: {
+        height: "auto",
+        filterBtn: true,
+        calcHeight: 30,
+        dialogWidth: 950,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: false,
+        index: true,
+        stripe: true,
+        viewBtn: true,
+        selection: true,
+        excelBtn: false,
+        menuWidth: 380,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "考试时间",
+            prop: "examTime",
+            type: "daterange",
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            startPlaceholder: "考试开始时间",
+            endPlaceholder: "考试结束时间",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请选择考试时间",
+                trigger: "blur",
+              },
+            ],
+            span: 24,
+          },
+        ],
+      },
+      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/trainingRegistration/import-trainingRegistration",
+          },
+          {
+              label: "模板下载",
+              prop: "excelTemplate",
+              formslot: true,
+              span: 24,
+          },
+          ],
+      },
       selectionList: [],
       page: {
         pageSize: 10,
@@ -92,7 +221,7 @@
         height: 583,
         index: true,
         labelWidth: "120",
-        menuWidth: 100,
+        menuWidth: 200,
         align: "center",
         selection: true,
         column: column,
@@ -112,6 +241,15 @@
     },
   },
   methods: {
+    //准考证查看
+    handlePrint(row) {
+        var obj = row;
+        obj["name"] = "准考证信息";
+        this.$router.push({
+            path: `/applyexam/papers`,
+            query: obj,
+        });
+    },
     sizeChange(val) {
       this.page1.currentPage = 1;
       this.page1.pageSize = val;
@@ -287,6 +425,57 @@
         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) {
+        this.ids = "";
+      }
+    },
+    //生成考试
+    submitExamApply(row, done, loading){
+      var that = this;
+      var startTime = row.examTime[0];
+      var endTime = row.examTime[1];
+      var examTime = JSON.stringify(row.examTime);
+      console.log(this.ids,111);
+      addExam(this.ids, examTime, startTime, endTime).then(
+        () => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          that.$refs.formExamApply.resetFields();
+          that.dialogExamFormVisible = false;
+          done();
+        },
+        (error) => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    //关闭窗口清除数据
+    closeDialog(){
+      this.$refs.formExamApply.resetFields();
+    },
   },
   mounted() {
     // this.Ourdata = data;

--
Gitblit v1.9.3