From 8e2a42e4a2da78f9cda9fa3e7732a0ef72f0c906 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Fri, 12 Nov 2021 09:29:02 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/zhba_enterprises

---
 src/views/applyexam/index.vue |  961 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 675 insertions(+), 286 deletions(-)

diff --git a/src/views/applyexam/index.vue b/src/views/applyexam/index.vue
index c7a6fc3..a68a781 100644
--- a/src/views/applyexam/index.vue
+++ b/src/views/applyexam/index.vue
@@ -2,15 +2,15 @@
  * @Author: Morpheus
  * @Date: 2021-07-05 16:31:54
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-07-19 19:39:45
+ * @Last Modified time: 2021-11-05 12:02:26
  * menu-name 报名考试
  */
 <template>
     <el-row class="morpheus-box-apply-exam">
-        <el-col :span="24" class="hasButOne">
+        <el-col :span="24"
+                class="hasButOne">
             <el-card>
                 <div class="exam-card-body">
-
                     <avue-crud v-model="obj"
                                class="company-box"
                                :option="questionBankOption"
@@ -27,7 +27,6 @@
                                @size-change="questionBankSizeChange"
                                @row-save="questionBankRowSave"
                                @row-del="questionBankRowDel">
-
                         <!-- 自定义按钮 -->
                         <!-- <template slot="menuLeft">
                             <el-button type="danger"
@@ -57,89 +56,167 @@
                                        @click="questionBankHandleDelete">删 除
                             </el-button>
                         </template> -->
-
-                        <template slot-scope="{ type,row }" slot="menu">
-                            <el-button
-                            :type="type"
-                            size="small"
-                            icon="el-icon-refresh-left"
-                            :disabled="row.applyStatus==4"
-                            @click="handleCancel(row)"
-                            >取消报名
+                        <!-- 自定义按钮 -->
+                        <template slot="menuLeft">
+                            <el-button type="primary"
+                                       size="small"
+                                       plain
+                                       icon="el-icon-folder-checked"
+                                       @click="handleBatchExam"
+                                       v-if="permission.applyexam_exam">生成考试
                             </el-button>
-                            <el-button
-                            style="display:none"
-                            :type="type"
-                            size="small"
-                            icon="el-icon-folder-checked"
-                            :disabled="row.applyStatus==4"
-                            @click="handleAudit(row)"
-                            >审核
-                            </el-button>
-                            <el-button
-                            :type="type"
-                            size="small"
-                            icon="el-icon-receiving"
-                            :disabled="row.applyStatus==4"
-                            @click="handlePrint(row)"
-                            >准考证打印
+                            <!-- v-if="examPersission" -->
+                            <el-button type="primary"
+                                       size="small"
+                                       plain
+                                       icon="el-icon-folder-checked"
+                                       v-if="permission.applyexam_import"
+                                       @click="handleImport">批量报名
                             </el-button>
                         </template>
 
+                        <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.isApply == 2"
+                                       @click="handleCancel(row)">取消报名
+                            </el-button>
+                            <el-button style="display: none"
+                                       :type="type"
+                                       size="small"
+                                       icon="el-icon-folder-checked"
+                                       :disabled="row.applyStatus == 4"
+                                       @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 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-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 {
     getApplyList,
     addApply,
-    updateApply,
-    remove
+    cancelApply,
+    remove,
+    addExam,
 } from "@/api/examapi/applyexam";
-import { mapState } from 'vuex'
-
-
+import { mapState } from "vuex";
+import { mapGetters } from "vuex";
+import { getRoleDetail } from "@/api/system/role";
 var DIC = {
-    applyStatus: [{
-        label: '已报名',
-        value: 2
-    }, {
-        label: '已取消',
-        value: 4
-    }]
-}
-
-
+    applyStatus: [
+        {
+            label: "已报名",
+            value: 2,
+        },
+        {
+            label: "已取消",
+            value: 4,
+        },
+    ],
+};
 
 export default {
     data () {
-
         return {
-            dialogFormVisible:false,
-            Audit:{},
-            optionAudit:{
+            dialogFormVisible: false,
+            dialogExamFormVisible: false,
+            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: false,
+                border: true, //liu
                 index: true,
                 stripe: true,
                 viewBtn: true,
@@ -159,67 +236,210 @@
                         editDisplay: false,
                         addDisplay: false,
                         type: "select",
-                        rules: [{
-                            required: true,
-                            message: "请选择审核类型",
-                            trigger: "blur"
-                        }],
-                        dicData: [{
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择审核类型",
+                                trigger: "blur",
+                            },
+                        ],
+                        dicData: [
+                            {
                                 label: "审核通过",
-                                value: 2
+                                value: 2,
                             },
                             {
                                 label: "不通过",
-                                value: 3
-                            }
-                        ]
+                                value: 3,
+                            },
+                        ],
                     },
                     {
                         label: "审核明细",
                         span: 24,
                         type: "textarea",
-                        prop: "auditDetail"
-                    }
+                        prop: "auditDetail",
+                    },
+                ],
+            },
+            optionExamApply: {
+                height: "auto",
+                filterBtn: true,
+                calcHeight: 30,
+                dialogWidth: 950,
+                tip: false,
+                searchShow: true,
+                searchMenuSpan: 6,
+                border: true, //liu
+                index: true,
+                stripe: true,
+                viewBtn: true,
+                selection: true,
+                excelBtn: false,
+                menuWidth: 380,
+                dialogClickModal: false,
+                column: [
+                    {
+                        label: "考试人数",
+                        prop: "number",
+                        type: 'number',
+                        span: 12,
+                        precision: 0,
+                        step: 50,
+                        mock: {
+                            type: 'number',
+                            max: 1000,
+                            min: 0,
+                            precision: 0
+                        },
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入考试人数",
+                                trigger: "blur",
+                            },
+                        ],
+                        minRows: 0,
+                        maxRows: 1000,
+                        value: 50,
+                    },
+                    {
+                        label: "序号开始",
+                        prop: "serialStart",
+                        span: 6,
+                        value: 1,
+                        mock: {
+                            type: 'number',
+                            max: 1000,
+                            min: 1,
+                            precision: 0
+                        },
+                        minRows: 1,
+                        maxRows: 1000,
+                        type: "number",
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入序号",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "序号结束",
+                        prop: "serialEnd",
+                        span: 6,
+                        value: 50,
+                        mock: {
+                            type: 'number',
+                            max: 1000,
+                            min: 1,
+                            precision: 0
+                        },
+                        minRows: 1,
+                        maxRows: 1000,
+                        type: "number",
+                        rules: [
+                            {
+                                required: true,
+                                message: "请输入序号",
+                                trigger: "blur",
+                            },
+                        ],
+                    },
+                    {
+                        label: "考试时间",
+                        prop: "startTime",
+                        type: "datetime",
+                        format: "yyyy-MM-dd HH:mm",
+                        valueFormat: "yyyy-MM-dd HH:mm",
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: false,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择考试时间",
+                                trigger: "blur",
+                            },
+                        ],
+                        span: 12,
+                    },
+                    {
+                        label: "截止时间",
+                        prop: "endTime",
+                        type: "datetime",
+                        format: "yyyy-MM-dd HH:mm",
+                        valueFormat: "yyyy-MM-dd HH:mm",
+                        // 表单新增时是否禁止
+                        addDisabled: false,
+                        // 表单新增时是否可见
+                        addDisplay: true,
+                        // 表单新增时是否为查看模式
+                        addDetail: false,
+                        // 表单编辑时是否禁止
+                        editDisabled: false,
+                        // 表单编辑时是否可见
+                        editDisplay: true,
+                        // 表单编辑时是否为查看模式
+                        editDetail: false,
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择考试时间",
+                                trigger: "blur",
+                            },
+                        ],
+                        span: 12,
+                    },
                 ],
             },
             questionBankOption: {
                 // 操作栏多余按钮去除
                 delBtn: false,
                 editBtn: false,
-                addBtn: true,
-                selection: true,
+                addBtn: false,
+                selection: false,
                 menu: true,
                 // 导出按钮
                 // excelBtn: true,
-                viewBtn: false,
+                viewBtn: true,
 
                 // title: '题库',
 
-                align: 'center',
-                height: 'auto',
+                align: "center",
+                height: "auto",
                 calcHeight: 80,
                 tip: false,
                 searchShow: true,
                 searchMenuSpan: 4,
                 index: true,
-                indexLabel: '#',
+                indexLabel: "#",
                 //dialogType: 'drawer',
                 dialogClickModal: false,
                 //tree 默认展开
-                defaultExpandAll:true,
+                defaultExpandAll: true,
                 // 操作栏宽度
-                menuWidth: 200,
+                menuWidth: 250,
 
                 column: [
                     {
                         label: "保安姓名",
                         prop: "userId",
-                        type: 'tree',
-                        dicUrl: '',
-                        search: true,
-                        hide:true,
+                        type: "tree",
+                        dicUrl: "",
+                        hide: true,
                         slot: true,
-                        searchSpan:5,
+                        searchSpan: 4,
                         // 表单新增时是否禁止
                         addDisabled: false,
                         // 表单新增时是否可见
@@ -228,24 +448,30 @@
                         addDetail: false,
                         // 表单编辑时是否禁止
                         editDisabled: true,
+                        viewDisabled: false,
                         // 表单编辑时是否可见
                         editDisplay: true,
+                        viewDisplay: false,
                         // 表单编辑时是否为查看模式
                         editDetail: false,
                         props: {
                             label: "title",
                             value: "id",
                         },
-                        rules: [{
-                            required: true,
-                            message: "请选择保安姓名",
-                            trigger: "blur"
-                        }],
-                        width:80
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择保安姓名",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 80,
                     },
                     {
                         label: "保安姓名",
-                        prop: "name",
+                        prop: "realName",
+                        searchSpan: 4,
+                        search: true,
                         // 表单新增时是否禁止
                         addDisabled: false,
                         // 表单新增时是否可见
@@ -258,53 +484,75 @@
                         editDisplay: false,
                         // 表单编辑时是否为查看模式
                         editDetail: false,
-                        viewDisplay:true,
+                        viewDisplay: true,
                         props: {
                             label: "title",
                             value: "id",
                         },
-                        rules: [{
-                            required: true,
-                            message: "请选择保安姓名",
-                            trigger: "blur"
-                        }]
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择保安姓名",
+                                trigger: "blur",
+                            },
+                        ],
                     },
                     {
-                        label: "考试名称",
-                        prop: "examName",
-                        type: 'tree',
-                        dicUrl: '/api/exampaper/page-tree?examType=1',
-                        // search: true,
+                        label: "年龄",
+                        prop: "age",
                         slot: true,
                         // 表单新增时是否禁止
                         addDisabled: false,
                         // 表单新增时是否可见
-                        addDisplay: true,
+                        addDisplay: false,
                         // 表单新增时是否为查看模式
                         addDetail: false,
                         // 表单编辑时是否禁止
-                        editDisabled: true,
+                        editDisabled: false,
                         // 表单编辑时是否可见
-                        editDisplay: true,
+                        editDisplay: false,
                         // 表单编辑时是否为查看模式
                         editDetail: false,
-                        props: {
-                            label: "examName",
-                            value: "id",
-                        },
-                        rules: [{
-                            required: true,
-                            message: "请选择试卷名称",
-                            trigger: "blur"
-                        }],
-                        width: 220
+                        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:5,
+                        searchSpan: 6,
                         // 表单新增时是否禁止
                         addDisabled: false,
                         // 表单新增时是否可见
@@ -317,12 +565,14 @@
                         editDisplay: true,
                         // 表单编辑时是否为查看模式
                         editDetail: false,
-                        rules: [{
-                            required: true,
-                            message: "请选择所属公司",
-                            trigger: "blur"
-                        }],
-                        width: 220
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择所属公司",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 220,
                     },
                     {
                         label: "准考证号",
@@ -340,12 +590,14 @@
                         editDisplay: true,
                         // 表单编辑时是否为查看模式
                         editDetail: false,
-                        rules: [{
-                            required: true,
-                            message: "请选择准考证号",
-                            trigger: "blur"
-                        }],
-                        width: 100
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择准考证号",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 100,
                     },
                     {
                         label: "身份证号",
@@ -363,16 +615,18 @@
                         editDisplay: true,
                         // 表单编辑时是否为查看模式
                         editDetail: false,
-                        rules: [{
-                            required: true,
-                            message: "请选择准考证号",
-                            trigger: "blur"
-                        }],
-                        width: 150
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择准考证号",
+                                trigger: "blur",
+                            },
+                        ],
+                        width: 150,
                     },
                     {
                         label: "报考证件",
-                        prop: "applyCard", 
+                        prop: "applyCard",
                         slot: true,
                         // 表单新增时是否禁止
                         addDisabled: false,
@@ -386,11 +640,13 @@
                         editDisplay: true,
                         // 表单编辑时是否为查看模式
                         editDetail: false,
-                        rules: [{
-                            required: true,
-                            message: "请选择准考证号",
-                            trigger: "blur"
-                        }],
+                        rules: [
+                            {
+                                required: true,
+                                message: "请选择准考证号",
+                                trigger: "blur",
+                            },
+                        ],
                     },
                     // {
                     //     label: "试卷分数",
@@ -414,8 +670,8 @@
                         prop: "applyTime",
                         type: "datetime",
                         // span: 24,
-                        format: 'yyyy-MM-dd HH:mm:ss',
-                        valueFormat: 'yyyy-MM-dd HH:mm:ss',
+                        format: "yyyy-MM-dd HH:mm:ss",
+                        valueFormat: "yyyy-MM-dd HH:mm:ss",
                         // 表单新增时是否禁止
                         addDisabled: true,
                         // 表单新增时是否可见
@@ -428,110 +684,143 @@
                         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
+                        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())),
+                                : 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: "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: "applyStatus", 
-                        slot: true,
-                        searchSpan:5,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: false,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: false,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        dicData:DIC.applyStatus,
-                        search:true,
-                        type:"select"
+                        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"
-                    //         },
-                    //         {
-                    //             label: '审核不通过',
-                    //             value: "3"
-                    //         }
-                    //         ],
-                    //     search:true,
-                    //     type:"select"
+                    //   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,
+                    // },
+                ],
             },
             questionBankSearch: {},
             questionBankLoading: true,
-            questionBankData: [
-
-            ],
+            questionBankData: [],
             questionBankPage: {
                 pageSize: 10,
                 currentPage: 1,
-                total: 16
+                total: 16,
             },
             questionBankQuery: {},
             questionBankSelectionList: [],
-        }
+        };
     },
 
     watch: {
@@ -560,29 +849,29 @@
     },
     created () {
 
-      console.log(this.userInfo)
+        if (this.userInfo.role_name.indexOf("ksxtadmin") != -1) {
+            this.examPersission = true;
+        }
 
-      if (this.userInfo.role_name.indexOf('ksxtadmin') != -1) {
-
-        this.questionBankOption.column[0].dicUrl = "/api/blade-system/dept/lazy-tree-user?parentId="
-      } else {
-        this.questionBankOption.column[0].dicUrl = "/api/blade-system/dept/lazy-tree-user?parentId=" + this.userInfo.dept_id
-
-      }
-
-
+        this.questionBankSearch['applyStatus'] = 2;
     },
-    mounted () {
-
-
-    },
+    mounted () { },
     computed: {
         ...mapState({
-            userInfo: state => state.user.userInfo
+            userInfo: (state) => state.user.userInfo,
         }),
+        ...mapGetters(["userInfo", "permission"]),
+        permissionList () {
+            return {
+                addBtn: this.vaildData(null, false),
+                viewBtn: this.vaildData(this.permission.applyexam_view, false),
+                delBtn: this.vaildData(null, false),
+                editBtn: this.vaildData(null, false),
+            };
+        },
         ids () {
             let ids = [];
-            this.questionBankSelectionList.forEach(ele => {
+            this.questionBankSelectionList.forEach((ele) => {
                 ids.push(ele.id);
             });
             return ids.join(",");
@@ -590,7 +879,7 @@
     },
     methods: {
         //准考证查看
-        handlePrint(row) {
+        handlePrint (row) {
             var obj = row;
             obj["name"] = "准考证信息";
             this.$router.push({
@@ -599,14 +888,36 @@
             });
         },
         questionBankOnLoad (page, params = {}) {
+            params = this.questionBankSearch;
             this.questionBankLoading = false;
-            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();
-            });
+            this.loading = true;
+            //判断角色,如果是保安公司管理员或保安,只能查看当前公司的报名信息
+            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 == "保安"
+                    ) {
+                        //如果是保安公司管理员
+                        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();
+                    });
+                })
+            })
         },
         questionBankSelectionClear () {
             this.questionBankSelectionList = [];
@@ -635,36 +946,96 @@
         // 新增
         questionBankRowSave (row, done, loading) {
             // debugger;
-            addApply({ userId: row.userId, examId: row.examName, applyTime: row.applyTime }).then((res) => {
-                this.questionBankOnLoad(this.questionBankPage);
-                if(res.data.data==201){
-                    this.$message({
-                    type: "warning",
-                    message:"已报名,不能重复报名",
-                    });
-                }else if(res.data.data==201){
-                    this.$message({
-                    type: "warning",
-                    message:"报名失败",
-                    });
-                }else{
-                    this.$message({
-                    type: "success",
-                    message:"报名成功",
-                    });
+            addApply({
+                userId: row.userId,
+                examId: row.examName,
+                applyTime: row.applyTime,
+            }).then(
+                (res) => {
+                    this.questionBankOnLoad(this.questionBankPage);
+                    if (res.data.data == 201) {
+                        this.$message({
+                            type: "warning",
+                            message: "已报名,不能重复报名",
+                        });
+                    } else if (res.data.data == 201) {
+                        this.$message({
+                            type: "warning",
+                            message: "报名失败",
+                        });
+                    } else {
+                        this.$message({
+                            type: "success",
+                            message: "报名成功",
+                        });
+                    }
+                    done();
+                },
+                (error) => {
+                    window.console.log(error);
+                    loading();
                 }
+            );
+        },
+
+        //生成考试弹窗
+        handleBatchExam () {
+            this.dialogExamFormVisible = true;
+            if (this.questionBankSelectionList.length === 0) {
+                this.ids = "";
+            }
+        },
+        //生成考试
+        submitExamApply (row, done, loading) {
+            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();
-            }, error => {
-                window.console.log(error);
-                loading();
-            });
+                return;
+            }
+
+            var s = new Date(row.startTime);
+            var e = new Date(row.endTime);
+            if (s > e) {
+                this.$message({
+                    type: "error",
+                    message: "截止时间不能早于考试考试开始时间!",
+                });
+                done();
+                return;
+            }
+            addExam(Object.assign(row, this.questionBankSearch)).then(
+                () => {
+                    this.questionBankOnLoad(this.questionBankPage);
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!",
+                    });
+                    that.$refs.formExamApply.resetFields();
+                    that.dialogExamFormVisible = false;
+                    done();
+                },
+                (error) => {
+                    window.console.log(error);
+                    loading();
+                }
+            );
+        },
+        //关闭窗口清除数据
+        closeDialog () {
+            this.$refs.formExamApply.resetFields();
         },
 
         questionBankRowDel (row) {
             this.$confirm("确定将选择数据删除?", {
                 confirmButtonText: "确定",
                 cancelButtonText: "取消",
-                type: "warning"
+                type: "warning",
             })
                 .then(() => {
                     return remove(row.id);
@@ -673,27 +1044,27 @@
                     this.questionBankOnLoad(this.questionBankPage);
                     this.$message({
                         type: "success",
-                        message: "操作成功!"
+                        message: "操作成功!",
                     });
                 });
         },
 
         //取消报名
-        handleCancel(row){
+        handleCancel (row) {
             this.$confirm("确定取消报名?", {
                 confirmButtonText: "确定",
                 cancelButtonText: "取消",
-                type: "warning"
+                type: "warning",
             })
                 .then(() => {
                     row.applyStatus = 4;
-                    return updateApply(row);
+                    return cancelApply(row);
                 })
                 .then(() => {
                     this.questionBankOnLoad(this.questionBankPage);
                     this.$message({
                         type: "success",
-                        message: "操作成功!"
+                        message: "操作成功!",
                     });
                 });
         },
@@ -706,7 +1077,7 @@
             this.$confirm("确定将选择数据删除?", {
                 confirmButtonText: "确定",
                 cancelButtonText: "取消",
-                type: "warning"
+                type: "warning",
             })
                 .then(() => {
                     return remove(this.ids);
@@ -715,17 +1086,35 @@
                     this.questionBankOnLoad(this.questionBankPage);
                     this.$message({
                         type: "success",
-                        message: "操作成功!"
+                        message: "操作成功!",
                     });
                     this.$refs.questionBankCrud.toggleSelection();
                 });
         },
-        handleAudit(row){
+        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 lang="scss" scoped>

--
Gitblit v1.9.3