From 2a3bad7a886e8e0271663e74ec47d651edd18308 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Tue, 10 Aug 2021 17:36:09 +0800
Subject: [PATCH] 考试报名修改

---
 src/views/applyexam/index.vue |  300 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 245 insertions(+), 55 deletions(-)

diff --git a/src/views/applyexam/index.vue b/src/views/applyexam/index.vue
index c7c9488..2472e7d 100644
--- a/src/views/applyexam/index.vue
+++ b/src/views/applyexam/index.vue
@@ -57,13 +57,33 @@
                                        @click="questionBankHandleDelete">删 除
                             </el-button>
                         </template> -->
+            <!-- 自定义按钮 -->
+            <template slot="menuLeft">
+              <el-button
+                type="primary"
+                size="small"
+                plain
+                icon="el-icon-folder-checked"
+                @click="handleBatchExam"
+                v-if="examPersission"
+                >生成考试
+              </el-button>
+              <el-button
+                type="primary"
+                size="small"
+                plain
+                icon="el-icon-folder-checked"
+               @click="handleImport"
+                >清册导入
+              </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"
+                :disabled="row.isApply == 2"
                 @click="handleCancel(row)"
                 >取消报名
               </el-button>
@@ -101,6 +121,43 @@
               @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="1000px"
+            @close='closeDialog'
+          >
+            <avue-form
+              ref="formExamApply"
+              v-model="examApply"
+              :option="optionExamApply"
+              @reset-change="emptytChange"
+              @submit="submitExamApply"
+            ></avue-form>
           </el-dialog>
         </div>
       </el-card>
@@ -114,6 +171,7 @@
   addApply,
   updateApply,
   remove,
+  addExam
 } from "@/api/examapi/applyexam";
 import { mapState } from "vuex";
 
@@ -134,7 +192,37 @@
   data() {
     return {
       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,
@@ -188,16 +276,64 @@
           },
         ],
       },
+      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,
+          },
+        ],
+      },
       questionBankOption: {
         // 操作栏多余按钮去除
         delBtn: false,
         editBtn: false,
-        addBtn: true,
+        addBtn: false,
         selection: true,
         menu: true,
         // 导出按钮
         // excelBtn: true,
-        viewBtn: false,
+        viewBtn: true,
 
         // title: '题库',
 
@@ -214,7 +350,7 @@
         //tree 默认展开
         defaultExpandAll: true,
         // 操作栏宽度
-        menuWidth: 200,
+        menuWidth: 300,
 
         column: [
           {
@@ -222,7 +358,6 @@
             prop: "userId",
             type: "tree",
             dicUrl: "",
-            search: true,
             hide: true,
             slot: true,
             searchSpan: 4,
@@ -234,8 +369,10 @@
             addDetail: false,
             // 表单编辑时是否禁止
             editDisabled: true,
+            viewDisabled: false,
             // 表单编辑时是否可见
             editDisplay: true,
+            viewDisplay: false,
             // 表单编辑时是否为查看模式
             editDetail: false,
             props: {
@@ -253,7 +390,9 @@
           },
           {
             label: "保安姓名",
-            prop: "name",
+            prop: "realName",
+            searchSpan: 4,
+            search: true,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -316,7 +455,7 @@
             prop: "deptName",
             search: true,
             slot: true,
-            searchSpan: 4,
+            searchSpan: 6,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -473,48 +612,48 @@
 
             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: 4,
-            // 表单新增时是否禁止
-            addDisabled: false,
-            // 表单新增时是否可见
-            addDisplay: false,
-            // 表单新增时是否为查看模式
-            addDetail: false,
-            // 表单编辑时是否禁止
-            editDisabled: false,
-            // 表单编辑时是否可见
-            editDisplay: true,
-            // 表单编辑时是否为查看模式
-            editDetail: false,
-            dicData: DIC.applyStatus,
-            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: "applyStatus",
+          //   slot: true,
+          //   searchSpan: 4,
+          //   // 表单新增时是否禁止
+          //   addDisabled: false,
+          //   // 表单新增时是否可见
+          //   addDisplay: false,
+          //   // 表单新增时是否为查看模式
+          //   addDetail: false,
+          //   // 表单编辑时是否禁止
+          //   editDisabled: false,
+          //   // 表单编辑时是否可见
+          //   editDisplay: true,
+          //   // 表单编辑时是否为查看模式
+          //   editDetail: false,
+          //   dicData: DIC.applyStatus,
+          //   search: true,
+          //   type: "select",
+          // },
           // {
           //     label: "审核状态",
           //     prop: "examinationType",
@@ -592,12 +731,7 @@
     console.log(this.userInfo);
 
     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.examPersission = true;
     }
   },
   mounted() {},
@@ -696,6 +830,42 @@
       );
     },
 
+    //生成考试弹窗
+    handleBatchExam(){
+      this.dialogExamFormVisible = true;
+      if (this.questionBankSelectionList.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.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: "确定",
@@ -760,6 +930,26 @@
       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>

--
Gitblit v1.9.3