From fe0c2d838e1657dbe3efdf4dfd083cee6cf80de1 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 13 Sep 2021 19:20:26 +0800
Subject: [PATCH] 考试报名,培训报名修改

---
 src/views/trainingRegistration/index.vue | 1330 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 932 insertions(+), 398 deletions(-)

diff --git a/src/views/trainingRegistration/index.vue b/src/views/trainingRegistration/index.vue
index 372c962..ddebd9c 100644
--- a/src/views/trainingRegistration/index.vue
+++ b/src/views/trainingRegistration/index.vue
@@ -1,125 +1,178 @@
+/*
+ * @Author: Morpheus
+ * @Date: 2021-07-05 16:31:54
+ * @Last Modified by: Morpheus
+ * @Last Modified time: 2021-07-19 19:39:45
+ * menu-name 报名考试
+ */
 <template>
-  <basic-container>
-    <avue-crud
-      :option="option"
-      :table-loading="loading"
-      :data="data"
-      :page.sync="page"
-      :search.sync="search"
-      ref="crud"
-      @row-del="rowDel"
-      v-model="form"
-      :permission="permissionList"
-      @row-update="rowUpdate"
-      @row-save="rowSave"
-      :before-open="beforeOpen"
-      @filter="filterChange"
-      @search-change="searchChange"
-      @search-reset="searchReset"
-      @selection-change="selectionChange"
-      @current-change="currentChange"
-      @size-change="sizeChange"
-      @refresh-change="refreshChange"
-      @on-load="onLoad"
-    >
-      <template slot="menuLeft">
-        <el-button
-          style="display: none"
-          type="danger"
-          size="small"
-          plain
-          icon="el-icon-delete"
-          @click="handleDelete"
-          >删 除
-        </el-button>
-        <el-button
-          type="primary"
-          size="small"
-          plain
-          icon="el-icon-folder-checked"
-          @click="handleBatchExam"
-          v-if="permission.trainingRegistration_exam"
-          >考试申请
-        </el-button>
-        <el-button
-          type="primary"
-          size="small"
-          plain
-          icon="el-icon-folder-checked"
-          v-if="permission.trainingRegistration_import"
-          @click="handleImport"
-          >批量导入
-        </el-button>
-      </template>
-      <template slot-scope="{ type, size, row }" slot="menu">
-        <el-button
-          icon="el-icon-refresh-right"
-          @click="revoke(row)"
-          :size="size"
-          :type="type"
-          v-if="permission.trainingRegistration_cancel"
-          :disabled="row.cancel==2"
-          >取消报名</el-button
-        >
-        <el-button
-          :type="type"
-          size="small"
-          icon="el-icon-receiving"
-          v-if="permission.trainingRegistration_print"
-          :disabled="row.candidateNo == '' || row.cancel==2"
-          @click="handlePrint(row)"
-          >准考证打印
-        </el-button>
-        <el-button
-          icon="el-icon-folder-checked"
-          style="display: none"
-          @click="affirmApply(row)"
-          :size="size"
-          :type="type"
-          >确认报名</el-button
-        >
-      </template>
-    </avue-crud>
+  <el-row class="morpheus-box-apply-exam">
+    <el-col :span="24" class="hasButOne">
+      <el-card>
+        <div class="exam-card-body">
+          <avue-crud
+            v-model="obj"
+            class="company-box"
+            :option="questionBankOption"
+            :search.sync="questionBankSearch"
+            :table-loading="questionBankLoading"
+            :data="questionBankData"
+            ref="questionBankCrud"
+            :page.sync="questionBankPage"
+            @on-load="questionBankOnLoad"
+            @selection-change="questionBankSelectionChange"
+            @search-change="questionBankSearchChange"
+            @search-reset="questionBankSearchReset"
+            @current-change="questionBankCurrentChange"
+            @size-change="questionBankSizeChange"
+            @row-save="questionBankRowSave"
+            @row-del="questionBankRowDel"
+          >
+            <!-- 自定义按钮 -->
+            <!-- <template slot="menuLeft">
+                            <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">新增
+                            </el-button>
+                            <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">删除
+                            </el-button>
+                            <el-button type="danger"
+                                       size="mini"
+                                       icon="el-icon-delete"
+                                       plain
+                                       @click="handleDelete">导出
+                            </el-button>
+                        </template> -->
 
-    <el-dialog
-      title="清册数据导入"
-      append-to-body
-      :visible.sync="excelBox"
-      width="555px"
-    >
-      <avue-form
-        :option="excelOption"
-        v-model="excelForm"
-        :upload-after="uploadAfter"
-      >
-        <template slot="excelTemplate">
-          <el-button type="primary" @click="handleTemplate">
-            点击下载<i class="el-icon-download el-icon--right"></i>
-          </el-button>
-        </template>
-      </avue-form>
-    </el-dialog>
+            <!-- <template slot="menuLeft">
+                            <el-button type="danger"
+                                       size="small"
+                                       icon="el-icon-delete"
+                                       @click="questionBankHandleDelete">删 除
+                            </el-button>
+                        </template> -->
+            <!-- 自定义按钮 -->
+            <template slot="menuLeft">
+              <el-button
+                type="primary"
+                style="display:none"
+                size="small"
+                plain
+                icon="el-icon-folder-checked"
+                @click="handleBatchExam"
+                v-if="permission.applyexam_exam"
+                >生成考试
+              </el-button>
+              <!-- v-if="examPersission" -->
+              <el-button
+                style="display:none"
+                type="primary"
+                size="small"
+                plain
+                icon="el-icon-folder-checked"
+                v-if="permission.applyexam_import"
+                @click="handleImport"
+                >批量报名
+              </el-button>
+            </template>
 
-    <el-dialog
-      title="考试申请"
-      append-to-body
-      :visible.sync="dialogExamFormVisible"
-      width="1000px"
-      @close="closeDialog"
-    >
-      <avue-form
-        ref="formExamApply"
-        v-model="examApply"
-        :option="optionExamApply"
-        @reset-change="emptytChange"
-        @submit="submitExamApply"
-      ></avue-form>
-    </el-dialog>
-  </basic-container>
+            <template slot-scope="{ type, row }" slot="menu">
+              <el-button
+                :type="type"
+                size="small"
+                icon="el-icon-refresh-left"
+                v-if="permission.applyexam_cancel"
+                :disabled="row.cancel == 2"
+                @click="handleCancel(row)"
+                >取消报名
+              </el-button>
+              <el-button
+                style="display: none"
+                :type="type"
+                size="small"
+                icon="el-icon-folder-checked"
+                :disabled="row.cancel == 2"
+                @click="handleAudit(row)"
+                >审核
+              </el-button>
+              <el-button
+                :type="type"
+                size="small"
+                icon="el-icon-receiving"
+                v-if="permission.applyexam_print && row.candidateNo != ''"
+                @click="handlePrint(row)"
+                >准考证打印
+              </el-button>
+            </template>
+
+            <template slot-scope="{ row }" slot="age">
+              {{ row.age == -1 ? "" : row.age }}
+            </template>
+          </avue-crud>
+
+          <el-dialog
+            title="考试资格审核"
+            :visible.sync="dialogFormVisible"
+            modal-append-to-body="false"
+            append-to-body="true"
+            :close-on-click-model="true"
+          >
+            <avue-form
+              ref="formAudit"
+              v-model="Audit"
+              :option="optionAudit"
+              @reset-change="emptytChange"
+              @submit="submit"
+            ></avue-form>
+          </el-dialog>
+
+          <el-dialog
+            title="批量报名导入"
+            append-to-body
+            :visible.sync="excelBox"
+            width="555px"
+          >
+            <avue-form
+              :option="excelOption"
+              v-model="excelForm"
+              :upload-after="uploadAfter"
+            >
+              <template slot="excelTemplate">
+                <el-button type="primary" @click="handleTemplate">
+                  点击下载<i class="el-icon-download el-icon--right"></i>
+                </el-button>
+              </template>
+            </avue-form>
+          </el-dialog>
+
+          <el-dialog
+            title="考试生成"
+            append-to-body
+            :visible.sync="dialogExamFormVisible"
+            width="900px"
+            @close="closeDialog"
+          >
+            <avue-form
+              ref="formExamApply"
+              v-model="examApply"
+              :option="optionExamApply"
+              @reset-change="emptytChange"
+              @submit="submitExamApply"
+            ></avue-form>
+          </el-dialog>
+        </div>
+      </el-card>
+    </el-col>
+  </el-row>
 </template>
 
 <script>
-import { column } from "./data";
 import {
   getdata,
   adddata,
@@ -128,15 +181,102 @@
   cancelTrain,
   addExam,
 } from "@/api/trainingRegistration/trainingRegistration";
+import { mapState } from "vuex";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
+import { getUserDetails } from "@/api/experience/experience"
+
 export default {
   data() {
     return {
-      loading: true,
-      excelBox: false,
+      obj:{
+        userId:''
+      },
+      dialogFormVisible: false,
       dialogExamFormVisible: false,
-      search:{},
+      examPersission: false,
+      applyExport: false,
+      excelBox: false,
+      Audit: {},
+      excelForm: {},
+      excelOption: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [
+          {
+            label: "模板上传",
+            prop: "excelFile",
+            type: "upload",
+            drag: true,
+            loadText: "模板上传中,请稍等",
+            span: 24,
+            propsHttp: {
+              res: "data",
+            },
+            tip: "请上传 .xls,.xlsx 标准格式文件",
+            action: "/api/apply/import-apply",
+          },
+          {
+            label: "模板下载",
+            prop: "excelTemplate",
+            formslot: true,
+            span: 24,
+          },
+        ],
+      },
+      optionAudit: {
+        height: "auto",
+        calcHeight: 30,
+        dialogWidth: 1000,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true, //liu
+        index: true,
+        stripe: true,
+        viewBtn: true,
+        addBtn: true,
+        selection: true,
+        excelBtn: false,
+        menuWidth: 230,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "审核状态",
+            search: true,
+            searchSpan: 5,
+            span: 24,
+            prop: "auditStatus",
+            slot: true,
+            editDisplay: false,
+            addDisplay: false,
+            type: "select",
+            rules: [
+              {
+                required: true,
+                message: "请选择审核类型",
+                trigger: "blur",
+              },
+            ],
+            dicData: [
+              {
+                label: "审核通过",
+                value: 2,
+              },
+              {
+                label: "不通过",
+                value: 3,
+              },
+            ],
+          },
+          {
+            label: "审核明细",
+            span: 24,
+            type: "textarea",
+            prop: "auditDetail",
+          },
+        ],
+      },
       optionExamApply: {
         height: "auto",
         filterBtn: true,
@@ -149,7 +289,7 @@
         index: true,
         stripe: true,
         viewBtn: true,
-        selection: false,
+        selection: true,
         excelBtn: false,
         menuWidth: 380,
         dialogClickModal: false,
@@ -157,15 +297,15 @@
           {
             label: "考试人数",
             prop: "number",
-            type: 'number',
+            type: "number",
             span: 12,
-            precision:0,
-            step:50,
-            mock:{
-              type:'number',
-              max:1000,
-              min:0,
-              precision:0
+            precision: 0,
+            step: 50,
+            mock: {
+              type: "number",
+              max: 1000,
+              min: 0,
+              precision: 0,
             },
             rules: [
               {
@@ -176,22 +316,22 @@
             ],
             minRows: 0,
             maxRows: 1000,
-            value:50,
+            value: 50,
           },
           {
             label: "序号开始",
             prop: "serialStart",
             span: 6,
-            value:1,
-            mock:{
-              type:'number',
-              max:1000,
-              min:1,
-              precision:0
+            value: 1,
+            mock: {
+              type: "number",
+              max: 1000,
+              min: 1,
+              precision: 0,
             },
             minRows: 1,
             maxRows: 1000,
-            type:"number",
+            type: "number",
             rules: [
               {
                 required: true,
@@ -204,16 +344,16 @@
             label: "序号结束",
             prop: "serialEnd",
             span: 6,
-            value:50,
-            mock:{
-              type:'number',
-              max:1000,
-              min:1,
-              precision:0
+            value: 50,
+            mock: {
+              type: "number",
+              max: 1000,
+              min: 1,
+              precision: 0,
             },
             minRows: 1,
             maxRows: 1000,
-            type:"number",
+            type: "number",
             rules: [
               {
                 required: true,
@@ -278,80 +418,489 @@
           },
         ],
       },
-      excelForm: {},
-      excelOption: {
-        submitBtn: false,
-        emptyBtn: false,
+      questionBankOption: {
+        // 操作栏多余按钮去除
+        delBtn: false,
+        editBtn: false,
+        addBtn: true,
+        addBtnText: "报名新增",
+        selection: false,
+        menu: true,
+        // 导出按钮
+        // excelBtn: true,
+        viewBtn: true,
+
+        // title: '题库',
+
+        align: "center",
+        height: "auto",
+        calcHeight: 80,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 4,
+        index: true,
+        indexLabel: "#",
+        //dialogType: 'drawer',
+        dialogClickModal: false,
+        //tree 默认展开
+        defaultExpandAll: true,
+        // 操作栏宽度
+        menuWidth: 250,
         column: [
           {
-            label: "模板上传",
-            prop: "excelFile",
-            type: "upload",
-            drag: true,
-            loadText: "模板上传中,请稍等",
-            span: 24,
-            propsHttp: {
-              res: "data",
-            },
-            tip: "请上传 .xls,.xlsx 标准格式文件",
-            action: "/api/trainingRegistration/import-trainingRegistration",
+            label: "报名时间",
+            prop: "releaseTimeRange",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            searchRange: true,
+            searchSpan: 5,
+            hide: true,
+            addDisplay: false,
+            editDisplay: false,
+            viewDisplay: false,
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请输入时间",
+                trigger: "blur",
+              },
+            ],
           },
           {
-            label: "模板下载",
-            prop: "excelTemplate",
-            formslot: true,
-            span: 24,
+            label: "保安单位名称",
+            searchLabelWidth: "110",
+            labelWidth: 110,
+            cascaderItem: ["userId"],
+            prop: "deptId",
+            type: "tree",
+            hide: true,
+            viewDisabled:false,
+            viewDisplay:false,
+            dicUrl:
+              "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            slot: true,
+            searchSpan: 4,
+            search: false,
+            width: 260,
+            rules: [
+              {
+                required: true,
+                message: "保安单位",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "保安姓名",
+            prop: "userId",
+            type: "tree",
+            dicUrl:
+              "/api/blade-user/security-apply-tree?examType=2&deptId={{key}}",
+            hide: true,
+            slot: true,
+            searchSpan: 4,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            viewDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            viewDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            props: {
+              label: "name",
+              value: "id",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择保安姓名",
+                trigger: "blur",
+              },
+            ],
+            width: 80,
+          },
+          {
+            label: "培训机构名称",
+            prop: "trainingUnitId",
+            type: "select",
+            labelWidth:110,
+            dicUrl:
+              "/api/information/train-unit-tree",
+            hide: true,
+            slot: true,
+            searchSpan: 4,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            viewDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            viewDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            props: {
+              label: "deptName",
+              value: "departmentid",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择保安姓名",
+                trigger: "blur",
+              },
+            ],
+            width: 80,
+          },
+          {
+            label: "保安姓名",
+            prop: "realName",
+            searchSpan: 4,
+            search: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            viewDisplay: true,
+            props: {
+              label: "title",
+              value: "id",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择保安姓名",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "年龄",
+            prop: "age",
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+            viewDisplay: true,
+          },
+          {
+            label: "身份证号",
+            prop: "idCardNo",
+            slot: true,
+            search: true,
+            searchSpan: 5,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请选择准考证号",
+                trigger: "blur",
+              },
+            ],
+            width: 150,
+          },
+          {
+            label: "身份证号",
+            prop: "cardid",
+            searchSpan: 5,
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+            hide:true,
+            rules: [
+              {
+                required: true,
+                message: "请选择准考证号",
+                trigger: "blur",
+              },
+            ],
+            width: 150,
+          },
+          {
+            label: "性别",
+            prop: "sex",
+            type: "select",
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+            dicData: [
+              {
+                label: "男",
+                value: 1,
+              },
+              {
+                label: "女",
+                value: 2,
+              },
+              {
+                label: "未知",
+                value: 3,
+              },
+              {
+                label: " ",
+                value: -1,
+              },
+            ],
+            display: false,
+          },
+
+          {
+            label: "籍贯",
+            prop: "nativePlace",
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+          },
+          {
+            label: "联系电话",
+            prop: "phone",
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: true,
+          },
+          {
+            label: "所属保安单位",
+            labelWidth: "110",
+            addDisplay: false,
+            prop: "deptName",
+            width: 260,
+          },
+          // {
+          //   label: "准考证号",
+          //   prop: "candidateNo",
+          //   slot: true,
+          //   // 表单新增时是否禁止
+          //   addDisabled: false,
+          //   // 表单新增时是否可见
+          //   addDisplay: false,
+          //   // 表单新增时是否为查看模式
+          //   addDetail: false,
+          //   // 表单编辑时是否禁止
+          //   editDisabled: false,
+          //   // 表单编辑时是否可见
+          //   editDisplay: true,
+          //   // 表单编辑时是否为查看模式
+          //   editDetail: false,
+          //   rules: [
+          //     {
+          //       required: true,
+          //       message: "请选择准考证号",
+          //       trigger: "blur",
+          //     },
+          //   ],
+          //   width: 100,
+          // },
+          // {
+          //   label: "报考证件",
+          //   prop: "applyCard",
+          //   slot: true,
+          //   // 表单新增时是否禁止
+          //   addDisabled: false,
+          //   // 表单新增时是否可见
+          //   addDisplay: false,
+          //   // 表单新增时是否为查看模式
+          //   addDetail: false,
+          //   // 表单编辑时是否禁止
+          //   editDisabled: false,
+          //   // 表单编辑时是否可见
+          //   editDisplay: true,
+          //   // 表单编辑时是否为查看模式
+          //   editDetail: false,
+          //   rules: [
+          //     {
+          //       required: true,
+          //       message: "请选择准考证号",
+          //       trigger: "blur",
+          //     },
+          //   ],
+          // },
+          {
+            label: "报名时间",
+            prop: "trainingTime",
+            type: "datetime",
+            // span: 24,
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            // 表单新增时是否禁止
+            addDisabled: true,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            value:
+              new Date().getFullYear() +
+              "-" +
+              (new Date().getMonth() + 1 < 10
+                ? "0" + (new Date().getMonth() + 1)
+                : new Date().getMonth() + 1) +
+              "-" +
+              (new Date().getDate() < 10
+                ? "0" + new Date().getDate()
+                : new Date().getDate()) +
+              " " +
+              (new Date().getHours() < 10
+                ? "0" + new Date().getHours()
+                : new Date().getHours()) +
+              ":" +
+              (new Date().getMinutes() < 10
+                ? "0" + new Date().getMinutes()
+                : new Date().getMinutes()) +
+              ":" +
+              (new Date().getSeconds() < 10
+                ? "0" + new Date().getSeconds()
+                : new Date().getSeconds()),
+
+            width: 150,
+          },
+          {
+            label: "报名状态",
+            prop: "cancel",
+            search: true,
+            searchSpan: 4,
+            type: "select",
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            dicData: [
+              {
+                label: "全部",
+                value: 11,
+              },
+              {
+                label: "已报名",
+                value: 1,
+              },
+              {
+                label: "已取消",
+                value: 2,
+              },
+            ],
           },
         ],
       },
-      selectionList: [],
-      page: {
+      questionBankSearch: {},
+      questionBankLoading: true,
+      questionBankData: [],
+      questionBankPage: {
         pageSize: 10,
         currentPage: 1,
-        total: 0,
+        total: 16,
       },
-      query: {},
-      data: [],
-      option: {
-        // card: true,
-        tip: false,
-        // searchSize: "mini",
-        searchMenuSpan: 6,
-        height: 583,
-        index: true,
-        labelWidth: "120",
-        menuWidth: 200,
-        align: "center",
-        selection: false,
-        column: column,
-        delBtn: false,
-        editBtn: false,
-        addBtn: false,
-      },
+      questionBankQuery: {},
+      questionBankSelectionList: [],
     };
   },
+
+  watch: {
+    "obj.userId": {
+      // form是表单或者表格绑定的数据集,v-model='form'
+      handler(val) {
+        if(val){
+          //查询用户信息
+          getUserDetails(this.userId).then((res)=>{
+            var data = res.data.data;
+            this.obj.cardid = data.cardid;
+            this.obj.age = data.age;
+            this.obj.nativeplace = data.nativeplace;
+            this.obj.phone = data.phone;
+          })
+        }
+      },
+      immediate: true,
+    },
+  },
+  created() {
+    console.log(this.userInfo);
+
+    if (this.userInfo.role_name.indexOf("ksxtadmin") != -1) {
+      this.examPersission = true;
+    }
+
+    this.questionBankSearch["cancel"] = 1;
+  },
+  mounted() {},
   computed: {
+    ...mapState({
+      userInfo: (state) => state.user.userInfo,
+    }),
+
+    ...mapGetters(["userInfo", "permission"]),
+
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.applyexam_add, false),
+        viewBtn: this.vaildData(this.permission.applyexam_view, false),
+        delBtn: this.vaildData(null, false),
+        editBtn: this.vaildData(null, false),
+      };
+    },
     ids() {
       let ids = [];
-      this.selectionList.forEach((ele) => {
+      this.questionBankSelectionList.forEach((ele) => {
         ids.push(ele.id);
       });
       return ids.join(",");
     },
-    ...mapGetters(["userInfo", "permission"]),
-    permissionList() {
-      return {
-        addBtn: this.vaildData(this.permission.notice_add, false),
-        viewBtn: this.vaildData(this.permission.notice_view, false),
-        delBtn: this.vaildData(this.permission.notice_delete, false),
-        editBtn: this.vaildData(this.permission.notice_edit, false),
-      };
+    userId() {
+        var d = this.obj.userId + "";
+        return d;
     },
-   
-  },
-  created(){
-    this.search['cancel'] = 1;
-    this.search['auditStatus'] = 4;
   },
   methods: {
     //准考证查看
@@ -363,19 +912,90 @@
         query: obj,
       });
     },
-    sizeChange(val) {
-      this.page.pageSize = val;
-      this.getData();
-    },
-    currentChange(val) {
-      this.page.currentPage = val;
-      this.getData();
-    },
-    rowSave(form, done, loading) {
+    questionBankOnLoad(page, params = {}) {
+      params = this.questionBankSearch;
+      this.questionBankLoading = false;
+      this.loading = true;
+      //判断角色,如果是保安公司管理员或保安,只能查看当前公司的报名信息
       var that = this;
-      adddata(form).then(
+      //获取当前登录人员的角色信息
+      var roleIds = this.userInfo.role_id.split(",");
+      roleIds.forEach((roleId) => {
+        getRoleDetail(roleId).then((res) => {
+          var roleAlias = res.data.data.roleAlias;
+          if (roleAlias == "保安公司管理员" || roleAlias == "保安") {
+            //如果是保安公司管理员
+            params["deptId"] = that.userInfo.dept_id;
+          }
+
+          // const { releaseTimeRange } = this.questionBankSearch;
+          const { releaseTimeRange } = this.questionBankQuery;
+
+          var values;
+
+          // console.log(releaseTimeRange, 123);
+          if (releaseTimeRange) {
+            values = {
+              ...params,
+              beginTime: releaseTimeRange[0],
+              overTime: releaseTimeRange[1],
+              ...this.questionBankQuery,
+            };
+            values.releaseTimeRange = null;
+          } else {
+            values = {
+              ...params,
+              ...this.questionBankQuery,
+            };
+          }
+          getdata(
+            page.currentPage,
+            page.pageSize,
+            // Object.assign(values, this.questionBankQuery)
+            values
+          ).then((res) => {
+            const data = res.data.data;
+            this.questionBankPage.total = data.total;
+            this.questionBankData = data.records;
+            this.questionBankLoading = false;
+            this.questionBankSelectionClear();
+          });
+        });
+      });
+    },
+    questionBankSelectionClear() {
+      this.questionBankSelectionList = [];
+      this.$refs.questionBankCrud.toggleSelection();
+    },
+    questionBankSelectionChange(list) {
+      this.questionBankSelectionList = list;
+    },
+    questionBankSearchChange(params, done) {
+      this.questionBankQuery = params;
+      this.questionBankPage.currentPage = 1;
+      this.questionBankOnLoad(this.questionBankPage, params);
+      done();
+    },
+    questionBankSearchReset() {
+      this.questionBankQuery = {
+        cancel:11,
+      };
+      this.questionBankOnLoad(this.questionBankPage);
+    },
+    questionBankCurrentChange(currentPage) {
+      this.questionBankPage.currentPage = currentPage;
+    },
+    questionBankSizeChange(pageSize) {
+      this.questionBankPage.pageSize = pageSize;
+    },
+
+    // 新增
+    questionBankRowSave(row, done, loading) {
+      // debugger;
+      console.log(row,11111);
+      adddata(row).then(
         (res) => {
-          this.onLoad(this.page);
+          this.questionBankOnLoad(this.questionBankPage);
           if (res.data.data == 201) {
             this.$message({
               type: "warning",
@@ -400,180 +1020,11 @@
         }
       );
     },
-    searchChange(params, done) {
-      this.query = params;
-      this.page.currentPage = 1;
-      this.onLoad(this.page, params);
-      done();
-    },
-    searchReset() {
-      this.query = {};
-      this.onLoad(this.page);
-    },
-    rowUpdate(row, index, done, loading) {
-      update(row).then(
-        () => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          done();
-        },
-        (error) => {
-          window.console.log(error);
-          loading();
-        }
-      );
-    },
-    //确认报名
-    affirmApply(row, done, loading) {
-      this.$confirm("确认报名?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      }).then(() => {
-        row.cancel = 3;
-        update(row).then(
-          () => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "确认报名成功!",
-            });
-            done();
-          },
-          (error) => {
-            window.console.log(error);
-            loading();
-          }
-        );
-      });
-    },
-    revoke(row, done, loading) {
-      this.$confirm("确定取消报名?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      }).then(() => {
-        row.cancel = 2;
-        cancelTrain(row).then(
-          () => {
-            this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "取消报名成功!",
-            });
-            done();
-          },
-          (error) => {
-            window.console.log(error);
-            loading();
-          }
-        );
-      });
-    },
-    rowDel(row) {
-      this.$confirm("确定将选择数据删除?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          return remove(row.id);
-        })
-        .then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-        });
-    },
-    selectionChange(list) {
-      this.selectionList = list;
-    },
-    handleDelete() {
-      if (this.selectionList.length === 0) {
-        this.$message.warning("请选择至少一条数据");
-        return;
-      }
-      this.$confirm("确定将选择数据删除?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          return remove(this.ids);
-        })
-        .then(() => {
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!",
-          });
-          this.$refs.crudrec.toggleSelection();
-        });
-    },
-    refreshChange() {
-      this.onLoad(this.page, this.query);
-    },
-    onLoad(page, params = {}) {
-      this.loading = true;
-      //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
-      var that = this;
-      //获取当前登录人员的角色信息
-      var roleIds = this.userInfo.role_id.split(",");
-      params = this.search;
-      roleIds.forEach((roleId) => {
-        getRoleDetail(roleId).then((res) => {
-            var roleAlias = res.data.data.roleAlias;
-            if (
-              roleAlias == "保安公司管理员" ||
-              roleAlias == "保安"
-            ) {
-              //如果是保安公司管理员
-              params["deptId"] = that.userInfo.dept_id;
-            }
-            if (
-              roleAlias == "培训公司管理员"
-            ) {
-              //如果是培训公司管理员
-              params["trainingUnitId"] = that.userInfo.dept_id;
-            }
-            getdata(
-              page.currentPage,
-              page.pageSize,
-              Object.assign(params, this.query)
-            ).then((res) => {
-              // console.log(res);
-              const data = res.data.data;
-              this.page.total = data.total;
-              this.data = data.records;
-              console.log(this.data);
-              this.loading = false;
-            });
-        })
-      })
-    },
-    handleImport() {
-      this.excelBox = true;
-    },
-
-    handleTemplate() {
-      window.open(`/api/trainingRegistration/export-template`);
-    },
-    uploadAfter(res, done, loading, column) {
-      window.console.log(column);
-      this.excelBox = false;
-      this.refreshChange();
-      done();
-    },
 
     //生成考试弹窗
     handleBatchExam() {
       this.dialogExamFormVisible = true;
-      if (this.selectionList.length === 0) {
+      if (this.questionBankSelectionList.length === 0) {
         this.ids = "";
       }
     },
@@ -582,35 +1033,34 @@
       var that = this;
       row.startTime = row.startTime + ":00";
       row.endTime = row.endTime + ":00";
-      if(row.number!=((row.serialEnd-row.serialStart)+1)){
-          this.$message({
-            type: "error",
-            message: "考试人数与序号不匹配!",
-          });
-         done();
-         return;
+      if (row.number != row.serialEnd - row.serialStart + 1) {
+        this.$message({
+          type: "error",
+          message: "考试人数与序号不匹配!",
+        });
+        done();
+        return;
       }
 
       var s = new Date(row.startTime);
       var e = new Date(row.endTime);
-      if(s>e){
+      if (s > e) {
         this.$message({
-            type: "error",
-            message: "截止时间不能早于考试考试开始时间!",
-          });
-         done();
-         return;
+          type: "error",
+          message: "截止时间不能早于考试考试开始时间!",
+        });
+        done();
+        return;
       }
-      
-      addExam(Object.assign(row, this.search)).then(
+      addExam(Object.assign(row, this.questionBankSearch)).then(
         () => {
-          this.onLoad(this.page);
-          that.$refs.formExamApply.resetFields();
-          that.dialogExamFormVisible = false;
+          this.questionBankOnLoad(this.questionBankPage);
           this.$message({
             type: "success",
-            message: "操作成功",
+            message: "操作成功!",
           });
+          that.$refs.formExamApply.resetFields();
+          that.dialogExamFormVisible = false;
           done();
         },
         (error) => {
@@ -623,9 +1073,93 @@
     closeDialog() {
       this.$refs.formExamApply.resetFields();
     },
+
+    questionBankRowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(row.id);
+        })
+        .then(() => {
+          this.questionBankOnLoad(this.questionBankPage);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+
+    //取消报名
+    handleCancel(row) {
+      this.$confirm("确定取消报名?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          row.cancel = 2;
+          row['isExam'] = 1;
+          return cancelTrain(row);
+        })
+        .then(() => {
+          this.questionBankOnLoad(this.questionBankPage);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+
+    questionBankHandleDelete() {
+      if (this.questionBankSelectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          return remove(this.ids);
+        })
+        .then(() => {
+          this.questionBankOnLoad(this.questionBankPage);
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$refs.questionBankCrud.toggleSelection();
+        });
+    },
+    handleAudit(row) {
+      this.dialogFormVisible = true;
+      this.Audit = row;
+    },
+
+    handleImport() {
+      this.excelBox = true;
+    },
+
+    handleTemplate() {
+      window.open(`/api/apply/export-template`);
+    },
+    uploadAfter(res, done, loading, column) {
+      window.console.log(column);
+      this.excelBox = false;
+      this.refreshChange();
+      done();
+    },
+
+    refreshChange() {
+      this.questionBankOnLoad(this.page, this.query);
+    },
   },
 };
 </script>
 
-<style>
+<style lang="scss" scoped>
 </style>

--
Gitblit v1.9.3