From 79d9fc857559982b00b68b2d709807bdc4cd286f Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 11 Apr 2022 10:58:17 +0800
Subject: [PATCH] minio 地址修改

---
 src/views/trainExam/performance.vue | 2601 +++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 1,632 insertions(+), 969 deletions(-)

diff --git a/src/views/trainExam/performance.vue b/src/views/trainExam/performance.vue
index 6ef70be..f53f93c 100644
--- a/src/views/trainExam/performance.vue
+++ b/src/views/trainExam/performance.vue
@@ -1,1020 +1,1683 @@
-/*
- * @Author: Morpheus
- * @Date: 2021-07-05 16:31:54
- * @Last Modified by: Morpheus
- * @Last Modified time: 2021-11-04 16:18:32
- * menu-name 成绩管理
- */
+/* * @Author: Morpheus * @Date: 2021-07-05 16:31:54 * @Last Modified by: liu *
+@Last Modified time: 2021-11-27 10:20:19 * menu-name 成绩管理 */
 <template>
-    <el-row class="morpheus-box">
-        <el-col :span="24"
-                class="recruitmentManagement">
-            <el-card>
-                <div class="exam-card-body">
-                    <avue-crud v-model="obj"
-                               class="company-box"
-                               :option="questionBankOption"
-                               :search.sync="questionBankSearch"
-                               :table-loading="questionBankLoading"
-                               :data="questionBankData"
-                               :permission="permissionList"
-                               ref="questionBankCrud"
-                               :page.sync="questionBankPage"
-                               @on-load="questionBankOnLoad"
-                               @selection-change="questionBankSelectionChange"
-                               @search-change="questionBankSearchChange"
-                               @search-reset="questionBankSearchReset"
-                               @current-change="questionBankCurrentChange"
-                               @size-change="questionBankSizeChange"
-                               @row-update="questionBankRowUpdate"
-                               @refresh-change="refreshChange">
-                        <template slot-scope="{ row }"
-                                  slot="theoryGrade">
-                            {{ row.theoryGrade == -1 ? "" : row.theoryGrade }}
-                        </template>
-                        <template slot-scope="{ row }"
-                                  slot="learnGrade">
-                            {{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
-                        </template>
-                        <template slot-scope="{ row }"
-                                  slot="allGrade">
-                            {{ row.allGrade == -1 ? "" : row.allGrade }}
-                        </template>
-                        <template slot-scope="{ row }"
-                                  slot="qualified">
-                            {{
-                row.qualified == -1
-                  ? ""
-                  : row.qualified == 0
-                  ? "合格"
-                  : row.qualified == 1
-                  ? "不合格"
-                  : row.qualified == 3
-                  ? "缺考,成绩无效"
-                  : ""
-              }}
-                        </template>
+  <basic-container
+    :class="[
+      'exam-card-body',
+      $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize',
+      $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : ''
+    ]"
+  >
+    <avue-crud
+      v-model="obj"
+      class="company-box tablesss"
+      :option="questionBankOption"
+      :search.sync="questionBankSearch"
+      :table-loading="questionBankLoading"
+      :data="questionBankData"
+      :permission="permissionList"
+      ref="questionBankCrud"
+      :page.sync="questionBankPage"
+      @sort-change="sortChange"
+      @on-load="questionBankOnLoad"
+      @selection-change="questionBankSelectionChange"
+      @search-change="questionBankSearchChange"
+      @search-reset="questionBankSearchReset"
+      @current-change="questionBankCurrentChange"
+      @size-change="questionBankSizeChange"
+      @row-update="questionBankRowUpdate"
+      @refresh-change="refreshChange"
+    >
+      <template slot-scope="{ row }" slot="theoryGrade">
+        {{ row.theoryGrade }}
+      </template>
+      <template slot-scope="{ row }" slot="learnGrade">
+        {{ row.learnGrade == "" ? "暂未录入" : row.learnGrade }}
+      </template>
+      <template slot-scope="{ row }" slot="allGrade">
+        {{ row.allGrade == -1 ? "" : row.allGrade }}
+      </template>
+      <template slot-scope="{ row }" slot="qualified">
+        {{
+          row.qualified == ""
+            ? ""
+            : row.qualified == 0
+            ? "合格"
+            : row.qualified == 1
+            ? "不合格"
+            : row.qualified == 3
+            ? "缺考,成绩无效"
+            : ""
+        }}
+      </template>
 
-                        <!-- 自定义按钮 -->
-                        <template slot="menuLeft">
-                            <!-- <el-button type="danger"
+      <!-- 自定义按钮 -->
+      <template slot="menuLeft">
+        <!-- <el-button type="danger"
                                        size="mini"
                                        icon="el-icon-delete"
                                        plain
                                        @click="handleDelete">新增
                             </el-button> -->
-                            <!-- <el-button type="danger"
+        <!-- <el-button type="danger"
                                        size="mini"
                                        icon="el-icon-delete"
                                        plain
                                        @click="handleDelete">删除
                             </el-button> -->
-                            <el-button type="success"
-                                       size="small"
-                                       plain
-                                       icon="el-icon-upload2"
-                                       v-if="permission.trainExam_performance_import"
-                                       @click="handleImport">实操成绩导入
-                            </el-button>
-                            <el-button type="warning"
-                                       size="small"
-                                       plain
-                                       icon="el-icon-download"
-                                       v-if="permission.trainExam_performance_export"
-                                       @click="handleExport">成绩导出
-                            </el-button>
-                        </template>
+        <el-button
+          type="success"
+          size="small"
+          plain
+          icon="el-icon-upload2"
+          v-if="permission.trainExam_performance_import"
+          @click="handleImport"
+          >实操成绩导入
+        </el-button>
+        <el-button
+          type="warning"
+          size="small"
+          plain
+          icon="el-icon-download"
+          v-if="permission.trainExam_performance_export"
+          @click="handleExport"
+          >成绩导出
+        </el-button>
+        <el-button
+          type="primary"
+          size="small"
+          plain
+          v-if="permission.trainExam_performance_paper_apply"
+          icon="el-icon-collection-tag"
+          @click="handleSecurityPaperApply"
+          >证书制证申请
+        </el-button>
+        <el-button
+          type="primary"
+          size="small"
+          plain
+          v-if="permission.trainExam_performance_worker_paper_apply"
+          icon="el-icon-collection-tag"
+          @click="handleWorkerPaperApply"
+          >上岗证制证申请
+        </el-button>
+      </template>
 
-                        <template slot-scope="{ type, size, row }"
-                                  slot="menu">
-                            <el-button icon="el-icon-s-flag"
-                                       @click="absent(row)"
-                                       :size="size"
-                                       :type="type">缺考标记</el-button>
-                            <el-button icon="el-icon-s-promotion"
-                                       @click="openzhengjian(row)"
-                                       :disabled="row.qualified != 0"
-                                       :size="size"
-                                       :type="type">查看证件</el-button>
-                            <el-button icon="el-icon-edit"
-                                       @click="modifiedGrades(row)"
-                                       :size="size"
-                                       :type="type">申请修改成绩</el-button>
-                        </template>
+      <template slot-scope="{ type, size, row }" slot="menu">
+        <el-button
+          style="display: none"
+          icon="el-icon-s-flag"
+          @click="absent(row)"
+          :size="size"
+          :type="type"
+          >缺考标记</el-button
+        >
+        <el-button
+          icon="el-icon-s-promotion"
+          @click="openzhengjian(row)"
+          :disabled="row.qualified != 0"
+          :size="size"
+          :type="type"
+          >查看证件</el-button
+        >
+        <el-button
+          icon="el-icon-edit"
+          @click="modifiedGrades(row)"
+          :size="size"
+          :type="type"
+          >申请修改成绩</el-button
+        >
+        <el-button
+          icon="el-icon-edit"
+          v-if="row.isPaper == 6"
+          @click="securityPaperApply(row)"
+          :size="size"
+          :type="type"
+          >补证申请</el-button
+        >
+      </template>
+    </avue-crud>
 
-                    </avue-crud>
+    <el-dialog
+      title="实操成绩导入"
+      append-to-body
+      :visible.sync="excelBox"
+      width="555px"
+    >
+      <avue-form
+        :option="excelOption"
+        v-model="excelForm"
+        :upload-after="uploadAfter"
+      >
+        <template slot="excelTemplate">
+          <el-button type="primary" @click="handleTemplate">
+            点击下载<i class="el-icon-download el-icon--right"></i>
+          </el-button>
+        </template>
+      </avue-form>
+    </el-dialog>
 
-                    <el-dialog title="实操成绩导入"
-                               append-to-body
-                               :visible.sync="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>
-                </div>
-            </el-card>
-        </el-col>
+    <el-dialog
+      title="申请修改成绩"
+      :visible.sync="gradeBoxVisible"
+      width="width"
+      :modal="true"
+      :modal-append-to-body="true"
+      :append-to-body="true"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :before-close="dialogBeforeClose"
+    >
+      <div>
+        <!-- <el-form
+          ref="gradeForm"
+          :model="gradeForm"
+          :rules="rules"
+          label-width="80px"
+          label-position="left"
+        >
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="考试名称" label-width="108px">
+                <el-input v-model="gradeForm.examName" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="姓名" label-width="108px">
+                <el-input v-model="gradeForm.securityName" disabled></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
 
-        <el-dialog title="申请修改成绩"
-                   :visible.sync="gradeBoxVisible"
-                   width="width"
-                   :modal='true'
-                   :modal-append-to-body='true'
-                   :append-to-body='true'
-                   :close-on-click-modal='false'
-                   :close-on-press-escape='false'
-                   :before-close="dialogBeforeClose">
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="身份证号" label-width="108px">
+                <el-input v-model="gradeForm.account" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="准考证号" label-width="108px">
+                <el-input v-model="gradeForm.candidateNo" disabled></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
 
-            <div>
-                <el-form ref="gradeForm"
-                         :model="gradeForm"
-                         :rules="rules"
-                         label-width="80px"
-                         label-position="left">
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="原理论成绩" label-width="108px">
+                <el-input v-model="gradeForm.theoryGrade" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item
+                label="修改考试成绩"
+                label-width="108px"
+                prop="editGrades"
+              >
+                <el-input
+                  v-model.number="gradeForm.editGrades"
+                  autocomplete="off"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
 
-                    <el-row :gutter="24">
-                        <el-col :span="12">
-                            <el-form-item label="考试名称"
-                                          label-width="108px">
-                                <el-input v-model="gradeForm.examName"
-                                          disabled></el-input>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="12">
-                            <el-form-item label="姓名"
-                                          label-width="108px">
-                                <el-input v-model="gradeForm.securityName"
-                                          disabled></el-input>
-                            </el-form-item>
-                        </el-col>
-                    </el-row>
+          <el-row :gutter="24">
+            <el-col :span="12">
+              <el-form-item label="实操成绩" label-width="108px">
+                <el-input v-model="gradeForm.learnGrade" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="总成绩" label-width="108px">
+                <el-input v-model="gradeForm.allGrade" disabled></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
 
-                    <el-row :gutter="24">
-                        <el-col :span="12">
-                            <el-form-item label="身份证号"
-                                          label-width="108px">
-                                <el-input v-model="gradeForm.account"
-                                          disabled></el-input>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="12">
-                            <el-form-item label="准考证号"
-                                          label-width="108px">
-                                <el-input v-model="gradeForm.candidateNo"
-                                          disabled></el-input>
-                            </el-form-item>
-                        </el-col>
-                    </el-row>
+          <el-form-item
+            prop="businessLicense"
+            label="笔试答题图片"
+            label-width="108px"
+          >
+            <el-upload
+              list-type="picture-card"
+              action=""
+              :show-file-list="true"
+              :file-list="gradeForm.fileList"
+              :limit="limit"
+              :auto-upload="true"
+              :http-request="httpRequest"
+            >
+              <i class="el-icon-plus"></i>
+              <div slot="file" slot-scope="{ file }">
+                <img
+                  class="el-upload-list__item-thumbnail"
+                  :src="file.url"
+                  alt=""
+                />
+                <span class="el-upload-list__item-actions">
+                  <span
+                    class="el-upload-list__item-preview"
+                    @click="handlePictureCardPreview(file)"
+                  >
+                    <i class="el-icon-zoom-in"></i>
+                  </span>
+                  <span
+                    v-if="!disabled"
+                    class="el-upload-list__item-delete"
+                    @click="handleRemove(file)"
+                  >
+                    <i class="el-icon-delete"></i>
+                  </span>
+                </span>
+              </div>
+              <div class="el-upload__tip" slot="tip">
+                请上传笔试答题图片,只能上传jpg/png文件,最多上传5张图片
+              </div>
+            </el-upload>
+            <el-dialog :visible.sync="dialogVisible" 
+              :modal="true"
+              :modal-append-to-body="true"
+              :append-to-body="true"
+              :close-on-click-modal="false"
+              :close-on-press-escape="false">
+              <img width="100%" :src="dialogImageUrl" alt="">
+            </el-dialog>
+          </el-form-item>
 
-                    <el-row :gutter="24">
-                        <el-col :span="12">
-                            <el-form-item label="原理论成绩"
-                                          label-width="108px">
-                                <el-input v-model="gradeForm.theoryGrade"
-                                          disabled></el-input>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="12">
-                            <el-form-item label="修改考试成绩"
-                                          label-width="108px"
-                                          prop='editGrades'>
-                                <el-input v-model.number="gradeForm.editGrades"
-                                          autocomplete="off"></el-input>
-                            </el-form-item>
-                        </el-col>
-                    </el-row>
+          <el-form-item label="修改理由" label-width="108px">
+            <el-input
+              type="textarea"
+              :rows="3"
+              placeholder="请输入修改理由"
+              resize="none"
+              v-model="gradeForm.editReason"
+            ></el-input>
+          </el-form-item>
 
-                    <el-row :gutter="24">
-                        <el-col :span="12">
-                            <el-form-item label="实操成绩"
-                                          label-width="108px">
-                                <el-input v-model="gradeForm.learnGrade"
-                                          disabled></el-input>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="12">
-                            <el-form-item label="总成绩"
-                                          label-width="108px">
-                                <el-input v-model="gradeForm.allGrade"
-                                          disabled></el-input>
-                            </el-form-item>
-                        </el-col>
-                    </el-row>
+          <el-form-item style="text-align: center" label-width="0">
+            <el-button type="primary" @click="uploadGrade('gradeForm')"
+              >确 定</el-button
+            >
+            <el-button @click="gradeBoxVisible = false">取 消</el-button>
+          </el-form-item>
+        </el-form> -->
+        <avue-form
+          ref="form"
+          :option="option"
+          v-model="form"
+          @reset-change="emptytChange"
+          @submit="submit"
+        >
+        </avue-form>
+      </div>
+    </el-dialog>
 
-                    <el-form-item label="修改理由"
-                                  label-width="108px">
-                        <el-input type='textarea'
-                                  :rows="3"
-                                  placeholder="请输入修改理由"
-                                  resize='none'
-                                  v-model="gradeForm.editReason"></el-input>
-                    </el-form-item>
-
-                    <el-form-item style="text-align: center;"
-                                  label-width="0">
-                        <el-button type="primary"
-                                   @click="uploadGrade('gradeForm')">确 定</el-button>
-                        <el-button @click="gradeBoxVisible = false">取 消</el-button>
-                    </el-form-item>
-
-                </el-form>
-            </div>
-
-        </el-dialog>
-
-        <!-- <el-dialog
+    <!-- <el-dialog
       title="打印证件"
       :visible.sync="dialogVisiblezhengjian"
       :modal-append-to-body="false"
     > -->
-        <div class="dialogVisiblezhengjian"
-             v-if="dialogVisiblezhengjian">
-            <baoanz :data="baoanzdata"
-                    :close="1"
-                    @close="closezhengjian"
-                    :closePrint="1"></baoanz>
-        </div>
-        <!-- </el-dialog> -->
-    </el-row>
+    <div class="dialogVisiblezhengjian" v-if="dialogVisiblezhengjian">
+      <baoanz
+        :data="baoanzdata"
+        :close="1"
+        @close="closezhengjian"
+        :closePrint="1"
+      ></baoanz>
+    </div>
+  </basic-container>
 </template>
 
 <script>
 import baoanz from "../securityGuard/baoanz.vue";
-import { getList, update, updateAbsent, updateGrade } from "@/api/examapi/performance";
+import {
+  getList,
+  update,
+  updateAbsent,
+  updateGrade,
+  getNowDate
+} from "@/api/examapi/performance";
 import { mapGetters } from "vuex";
 import { getRoleDetail } from "@/api/system/role";
+import {
+  securityApply,
+  add
+} from "@/api/accreditationRecords/accreditationRecords";
 import Qs from "qs";
+import { getToken } from "@/util/auth";
+import { putFile, removeFile } from "@/api/resource/oss";
 export default {
-    components: {
-        baoanz,
+  components: {
+    baoanz
+  },
+  data() {
+    var validatePass = (rule, value, callback) => {
+      if (value == undefined || value == "") {
+        callback(new Error("请输入实操成绩"));
+        return;
+      } else if (value !== "" && isNaN(value) == true) {
+        callback(new Error("请输入数字"));
+      } else if (value <= 0) {
+        callback(new Error("分数设置请大于0"));
+      } else if (value > 100) {
+        callback(new Error("分数设置请小于100"));
+      } else {
+        callback();
+      }
+    };
+    var validatePass2 = (rule, value, callback) => {
+      if (value == undefined || value == "") {
+        callback(new Error("请输入理论成绩"));
+        return;
+      } else if (value !== "" && isNaN(value) == true) {
+        callback(new Error("请输入数字"));
+      } else if (value <= 0) {
+        callback(new Error("分数设置请大于0"));
+      } else if (value > 100) {
+        callback(new Error("分数设置请小于100"));
+      } else {
+        callback();
+      }
+    };
+
+    return {
+      option: {
+        height: "auto",
+        calcHeight: 30,
+        dialogWidth: 1000,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true,
+        index: true,
+        stripe: true,
+        viewBtn: false,
+        addBtn: false,
+        editBtn: false,
+        selection: true,
+        excelBtn: false,
+        menuWidth: 230,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "考试名称",
+            prop: "examName",
+            labelWidth: 110,
+            disabled: true,
+            rules: [
+              {
+                required: true,
+                message: "请输入考试名称",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "姓名",
+            prop: "securityName",
+            labelWidth: 110,
+            disabled: true,
+            rules: [
+              {
+                required: true,
+                message: "请输入姓名",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "身份证号",
+            prop: "account",
+            labelWidth: 110,
+            disabled: true,
+            rules: [
+              {
+                required: true,
+                message: "请输入身份证号",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "准考证号",
+            prop: "candidateNo",
+            labelWidth: 110,
+            disabled: true,
+            rules: [
+              {
+                required: false,
+                message: "请输入准考证号",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "原理论成绩",
+            prop: "theoryGrade",
+            labelWidth: 110,
+            disabled: true,
+            rules: [
+              {
+                required: false,
+                message: "请输入原理论成绩",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "修改考试成绩",
+            prop: "newScore",
+            labelWidth: 110,
+            rules: [
+              {
+                required: true,
+                message: "请输入修改考试成绩",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "实操成绩",
+            prop: "learnGrade",
+            labelWidth: 110,
+            disabled: true,
+            rules: [
+              {
+                required: false,
+                message: "请输入实操成绩",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "总成绩",
+            prop: "allGrade",
+            labelWidth: 110,
+            disabled: true,
+            rules: [
+              {
+                required: false,
+                message: "请输入总成绩",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "笔试答题图片",
+            prop: "url",
+            labelWidth: 110,
+            type: "upload",
+            dataType: "string",
+            span: 24,
+            limit: 5,
+            listType: "picture-card",
+            tip: "只能上传jpg/png文件,最多上传5张",
+            propsHttp: {
+              res: "data",
+              url: "url"
+            },
+            action: "/api/blade-resource/oss/endpoint/put-files"
+          },
+          {
+            label: "修改理由",
+            labelWidth: 110,
+            span: 24,
+            type: "textarea",
+            prop: "editReason"
+          }
+        ]
+      },
+      form: {},
+      limit: 5,
+      dialogImageUrl: "",
+      dialogVisible: false,
+      disabled: false,
+      rules: {
+        editGrades: [
+          { validator: validatePass2, required: true, trigger: "blur" }
+        ]
+      },
+      gradeForm: {
+        id: null,
+        examName: "",
+        securityName: "",
+        account: "",
+        candidateNo: "",
+        theoryGrade: "",
+        learnGrade: "",
+        allGrade: "",
+        editGrades: "",
+        editReason: "",
+        fileList: []
+      },
+      gradeBoxVisible: false,
+      dialogVisiblezhengjian: false,
+      baoanzdata: {},
+      obj: {
+        name: "张三"
+      },
+      excelBox: false,
+      questionBankOption: {
+        // 操作栏多余按钮去除
+        delBtn: false,
+        editBtn: true,
+        addBtn: false,
+        // 导出按钮
+        // excelBtn: true,
+        // excelBtnText: "成绩导出",
+        viewBtn: false,
+        selection: true,
+        reserveSelection: true,
+        selectable: row => {
+          if (row.qualified != "0" || row.isPaper == 6) {
+            return false;
+          } else {
+            return true;
+          }
+        },
+        // title: '成绩',
+        align: "center",
+        height: "auto",
+        calcHeight: 80,
+        tip: true,
+        searchShow: true,
+        searchMenuSpan: 4,
+        index: true,
+        indexLabel: "序号",
+        //dialogType: 'drawer',
+        dialogClickModal: false,
+        // 操作栏宽度
+        menu: true,
+        menuWidth: 330,
+        labelWidth: 120,
+        ...this.$store.state.control.clearOtherBut,
+
+        column: [
+          {
+            label: "考试时间",
+            prop: "examDate",
+            type: "date",
+            hide: true,
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            width: 140,
+            slot: true,
+            search: true,
+            searchSpan: 4,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            viewDisplay: false
+          },
+          {
+            label: "考试时间",
+            prop: "startTime",
+            type: "datetime",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            width: 90,
+            viewDisplay: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            viewDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请输入试卷名称",
+                trigger: "blur"
+              }
+            ],
+            overHidden: true
+          },
+          {
+            label: "姓名",
+            prop: "securityName",
+            search: true,
+            searchSpan: 3,
+            slot: true,
+            viewDisplay: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            viewDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            searchLabelWidth: 50,
+            searchSpan: 3,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请输入试卷名称",
+                trigger: "blur"
+              }
+            ],
+            width: 80
+            // overHidden:true,
+          },
+          {
+            label: "身份证号",
+            prop: "account",
+            search: true,
+            searchSpan: 4,
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请输入保安姓名",
+                trigger: "blur"
+              }
+            ],
+            width: 140
+          },
+          {
+            label: "准考证号",
+            prop: "candidateNo",
+            search: true,
+            searchSpan: 4,
+            hide: true,
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请输入保安姓名",
+                trigger: "blur"
+              }
+            ],
+            width: 110
+          },
+          {
+            label: "照片",
+            prop: "avatar",
+            type: "upload",
+            listType: "picture-img",
+            width: 60,
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false
+          },
+          {
+            label: "所属公司",
+            prop: "companyName",
+            sortable: true,
+            search: true,
+            searchSpan: 4,
+            // dicUrl: '/api/blade-system/dept/tree',
+            // props: {
+            //     label: "title",
+            //     value: "id",
+            // },
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请输入所属公司",
+                trigger: "blur"
+              }
+            ],
+            width: 180,
+            overHidden: true
+          },
+          {
+            label: "考试开始时间",
+            prop: "examTime",
+            type: "datetime",
+            // span: 24,
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            width: 140,
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false
+          },
+          {
+            label: "考试结束时间",
+            prop: "examEndTime",
+            type: "datetime",
+            // span: 24,
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            width: 140,
+            slot: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false
+          },
+          {
+            label: "考试状态",
+            prop: "isExam",
+            type: "select",
+            slot: true,
+            search: true,
+            searchSpan: 3,
+            width: 80,
+            dicData: [
+              {
+                label: "发布成绩",
+                value: 2
+              },
+              {
+                label: "考试中",
+                value: 3
+              },
+              {
+                label: "纸质考试",
+                value: 5
+              },
+              {
+                label: "缺考",
+                value: 4
+              }
+            ],
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            rules: [
+              {
+                required: true,
+                message: "请输入考试名称",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "理论成绩",
+            prop: "theoryGrade",
+            slot: true,
+            sortable: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            width: 95
+          },
+          {
+            label: "实操成绩",
+            prop: "learnGrade",
+            slot: true,
+            sortable: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: false,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            width: 95,
+            rules: [
+              { validator: validatePass, required: true, trigger: "blur" }
+            ]
+          },
+          {
+            label: "总成绩",
+            prop: "allGrade",
+            slot: true,
+            sortable: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            width: 80
+          },
+          {
+            label: "是否合格",
+            prop: "qualified",
+            type: "select",
+            slot: true,
+            hide: true,
+            search: true,
+            searchSpan: 4,
+            width: 90,
+            dicData: [
+              {
+                label: "合格",
+                value: 0
+              },
+              {
+                label: "不合格",
+                value: 1
+              },
+              {
+                label: "暂未录实操成绩",
+                value: 2
+              },
+              {
+                label: "缺考,成绩无效",
+                value: 3
+              }
+            ],
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: false,
+            viewDetail: false,
+            viewDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false
+          },
+          {
+            label: "是否合格",
+            prop: "qualifieds",
+            type: "select",
+            sortable: true,
+            searchSpan: 3,
+            width: 100,
+            dicData: [
+              {
+                label: "合格",
+                value: 0
+              },
+              {
+                label: "不合格",
+                value: 1
+              },
+              {
+                label: "暂未录实操成绩",
+                value: 2
+              },
+              {
+                label: "缺考,成绩无效",
+                value: 3
+              }
+            ],
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: false,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false
+          },
+          {
+            label: "是否制证",
+            prop: "isPaper",
+            type: "select",
+            search: true,
+            width: 70,
+            searchSpan: 3,
+            addDisplay: false,
+            editDisplay: false,
+            // hide: true,
+            display: false,
+            dicData: [
+              {
+                label: "全部",
+                value: 10
+              },
+              {
+                label: "已制证",
+                value: 6
+              },
+              {
+                label: "未制证",
+                value: 7
+              }
+            ]
+          },
+          {
+            label: "有无照片",
+            prop: "isAvatar",
+            type: "select",
+            search: true,
+            searchLabelWidth: 90,
+            minWidth: 105,
+            searchSpan: 3,
+            addDisplay: false,
+            editDisplay: false,
+            hide: true,
+            display: false,
+            dicData: [
+              {
+                label: "全部",
+                value: 3
+              },
+              {
+                label: "有",
+                value: 1
+              },
+              {
+                label: "无",
+                value: 2
+              }
+            ]
+          }
+        ]
+      },
+      questionBankSearch: {},
+      questionBankLoading: true,
+      questionBankData: [],
+      sort: "",
+      sortName: "",
+      questionBankPage: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 16,
+        ...this.$store.state.control.changePageSize
+      },
+      questionBankQuery: {},
+      questionBankSelectionList: [],
+      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/examScore/import-examScore"
+          },
+          // {
+          //     label: "数据覆盖",
+          //     prop: "isCovered",
+          //     type: "switch",
+          //     align: "center",
+          //     width: 80,
+          //     dicData: [
+          //     {
+          //         label: "否",
+          //         value: 0,
+          //     },
+          //     {
+          //         label: "是",
+          //         value: 1,
+          //     },
+          //     ],
+          //     value: 0,
+          //     slot: true,
+          //     rules: [
+          //     {
+          //         required: true,
+          //         message: "请选择是否覆盖",
+          //         trigger: "blur",
+          //     },
+          //     ],
+          // },
+          {
+            label: "模板下载",
+            prop: "excelTemplate",
+            formslot: true,
+            span: 24
+          }
+        ]
+      },
+      choiceList: []
+    };
+  },
+  created() {},
+  mounted() {
+    this.$store.commit("setWindowSizeHeightAdd");
+  },
+  computed: {
+    ...mapGetters(["userInfo", "permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(null, false),
+        viewBtn: this.vaildData(
+          this.permission.trainExam_performance_view,
+          false
+        ),
+        delBtn: this.vaildData(null, false),
+        editBtn: this.vaildData(
+          this.permission.trainExam_performance_edit,
+          false
+        ),
+        excelBtn: this.vaildData(
+          this.permission.trainExam_performance_export,
+          false
+        )
+      };
+    }
+  },
+  methods: {
+    //提交考试成绩修改申请
+    submit(row, done, loading) {
+      var that = this;
+      row["createUser"] = this.userInfo.Id;
+      // console.log(row,1234660);
+      updateGrade(row).then(
+        () => {
+          that.$refs.form.resetFields();
+          that.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          that.gradeBoxVisible = false;
+
+          done();
+        },
+        error => {
+          window.console.log(error);
+          done();
+        }
+      );
     },
-    data () {
-        var validatePass = (rule, value, callback) => {
-            if (value == undefined || value == "") {
-                callback(new Error("请输入实操成绩"));
-                return;
-            } else if (value !== "" && isNaN(value) == true) {
-                callback(new Error("请输入数字"));
-            } else if (value <= 0) {
-                callback(new Error("分数设置请大于0"));
-            } else if (value > 100) {
-                callback(new Error("分数设置请小于100"));
-            } else {
-                callback();
+    //自定义上传
+    httpRequest(opt) {
+      var that = this;
+      const file = opt.file;
+      // 根据后台需求数据格式
+      const form = new FormData();
+      // 文件对象
+      form.append("file", file);
+      putFile(form).then(res => {
+        that.gradeForm.fileList.push({
+          name: res.data.data.name,
+          url: res.data.data.url
+        });
+        console.log(that.gradeForm.fileList, 365441);
+      });
+      console.log(that.gradeForm.fileList, 11122222);
+    },
+    //图片展示
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url;
+      this.dialogVisible = true;
+    },
+    //图片删除
+    handleRemove(file) {
+      var index = [];
+      //遍历图片集合,获取下标
+      this.gradeForm.fileList.forEach(function(img, i) {
+        if (img.name == file.name) {
+          index.push(i);
+          //存储对象中删除
+          removeFile(img.name);
+        }
+      });
+      // console.log(index,222333);
+      //删除
+      for (var i = 0; i < index.length; i++) {
+        this.gradeForm.fileList.splice(index[i] - i, 1);
+      }
+    },
+    selectionChange(list) {
+      // this.selectionList = list;
+      this.choiceList = [];
+      for (let k in list) {
+        this.choiceList.push({
+          id: list[k].userId
+        });
+      }
+    },
+    //证书制证申请
+    handleSecurityPaperApply() {
+      if (this.choiceList.length === 0) {
+        this.$message.warning("请勾选至少一位持证保安员");
+        return;
+      }
+      this.$confirm(
+        "共选择制证申请人数" + this.choiceList.length + "人,确定申请制证?",
+        {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }
+      )
+        .then(() => {
+          let cho = this.choiceList;
+          let str = "";
+          for (let k in cho) {
+            str += cho[k].id;
+            if (k != cho.length - 1) {
+              str += ",";
             }
-        };
-
-        return {
-            rules: {
-                editGrades: [
-                    { validator: validatePass, required: true, trigger: "blur" },
-                ]
-            },
-            gradeForm: {
-                id: null,
-                examName: '',
-                securityName: '',
-                account: '',
-                candidateNo: '',
-                theoryGrade: '',
-                learnGrade: '',
-                allGrade: '',
-                editGrades: '',
-                editReason: ''
-            },
-            gradeBoxVisible: false,
-            dialogVisiblezhengjian: false,
-            baoanzdata: {},
-            obj: {
-                name: "张三",
-            },
-            excelBox: false,
-            questionBankOption: {
-                // 操作栏多余按钮去除
-                delBtn: false,
-                editBtn: true,
-                addBtn: false,
-                selection: false,
-                // 导出按钮
-                // excelBtn: true,
-                // excelBtnText: "成绩导出",
-                viewBtn: true,
-                // title: '成绩',
-                align: "center",
-                height: "auto",
-                calcHeight: 80,
-                tip: false,
-                searchShow: true,
-                searchMenuSpan: 4,
-                index: true,
-                indexLabel: "序号",
-                //dialogType: 'drawer',
-                dialogClickModal: false,
-                // 操作栏宽度
-                menu: true,
-                menuWidth: 295,
-                labelWidth: 120,
-                column: [
-                    {
-                        label: "考试时间",
-                        prop: "examDate",
-                        type: "date",
-                        hide: true,
-                        format: "yyyy-MM-dd",
-                        valueFormat: "yyyy-MM-dd",
-                        width: 140,
-                        slot: true,
-                        search: true,
-                        searchSpan: 4,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: false,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: false,
-                        // 表单编辑时是否可见
-                        editDisplay: false,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        viewDisplay: false,
-                    },
-                    {
-                        label: "考试名称",
-                        prop: "examName",
-                        search: true,
-                        searchSpan: 5,
-                        slot: true,
-                        viewDisplay: true,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: true,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: true,
-                        viewDisabled: true,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        rules: [
-                            {
-                                required: true,
-                                message: "请输入试卷名称",
-                                trigger: "blur",
-                            },
-                        ],
-                        width: 210,
-                        // overHidden:true,
-                    },
-                    {
-                        label: "姓名",
-                        prop: "securityName",
-                        search: true,
-                        searchSpan: 3,
-                        slot: true,
-                        viewDisplay: true,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: true,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: true,
-                        viewDisabled: true,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        rules: [
-                            {
-                                required: true,
-                                message: "请输入试卷名称",
-                                trigger: "blur",
-                            },
-                        ],
-                        width: 80,
-                        // overHidden:true,
-                    },
-                    {
-                        label: "身份证号",
-                        prop: "account",
-                        search: true,
-                        searchSpan: 4,
-                        slot: true,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: true,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: true,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        rules: [
-                            {
-                                required: true,
-                                message: "请输入保安姓名",
-                                trigger: "blur",
-                            },
-                        ],
-                        width: 140,
-                    },
-                    {
-                        label: "准考证号",
-                        prop: "candidateNo",
-                        search: true,
-                        searchSpan: 4,
-                        slot: true,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: true,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: true,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        rules: [
-                            {
-                                required: true,
-                                message: "请输入保安姓名",
-                                trigger: "blur",
-                            },
-                        ],
-                        width: 140,
-                    },
-                    {
-                        label: "所属公司",
-                        prop: "companyName",
-                        search: true,
-                        searchSpan: 4,
-                        // dicUrl: '/api/blade-system/dept/tree',
-                        // props: {
-                        //     label: "title",
-                        //     value: "id",
-                        // },
-                        slot: true,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: true,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: true,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        rules: [
-                            {
-                                required: true,
-                                message: "请输入所属公司",
-                                trigger: "blur",
-                            },
-                        ],
-                        width: 230,
-                    },
-                    {
-                        label: "考试开始时间",
-                        prop: "examTime",
-                        type: "datetime",
-                        // span: 24,
-                        format: "yyyy-MM-dd HH:mm:ss",
-                        valueFormat: "yyyy-MM-dd HH:mm:ss",
-                        width: 140,
-                        slot: true,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: true,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: true,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                    },
-                    {
-                        label: "考试结束时间",
-                        prop: "examEndTime",
-                        type: "datetime",
-                        // span: 24,
-                        format: "yyyy-MM-dd HH:mm:ss",
-                        valueFormat: "yyyy-MM-dd HH:mm:ss",
-                        width: 140,
-                        slot: true,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: true,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: true,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                    },
-                    {
-                        label: "状态",
-                        prop: "isExam",
-                        type: "select",
-                        slot: true,
-                        search: true,
-                        searchSpan: 3,
-                        width: 60,
-                        dicData: [
-                            {
-                                label: "发布成绩",
-                                value: 2,
-                            },
-                            {
-                                label: "考试中",
-                                value: 3,
-                            },
-                        ],
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: true,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: true,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        rules: [
-                            {
-                                required: true,
-                                message: "请输入考试名称",
-                                trigger: "blur",
-                            },
-                        ],
-                    },
-                    {
-                        label: "理论成绩",
-                        prop: "theoryGrade",
-                        slot: true,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: true,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: true,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        width: 68,
-                    },
-                    {
-                        label: "实操成绩",
-                        prop: "learnGrade",
-                        slot: true,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: true,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: false,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        width: 68,
-                        rules: [
-                            { validator: validatePass, required: true, trigger: "blur" },
-                        ],
-                    },
-                    {
-                        label: "总成绩",
-                        prop: "allGrade",
-                        slot: true,
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: true,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: true,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        width: 58,
-                        rules: [
-                            {
-                                required: true,
-                                message: "请输入考试名称",
-                                trigger: "blur",
-                            },
-                        ],
-                    },
-                    {
-                        label: "是否合格",
-                        prop: "qualified",
-                        type: "select",
-                        slot: true,
-                        search: true,
-                        searchSpan: 3,
-                        width: 68,
-                        dicData: [
-                            {
-                                label: "合格",
-                                value: 0,
-                            },
-                            {
-                                label: "不合格",
-                                value: 1,
-                            },
-                            {
-                                label: "暂未录实操成绩",
-                                value: 2,
-                            },
-                            {
-                                label: "缺考,成绩无效",
-                                value: 3,
-                            },
-                        ],
-                        // 表单新增时是否禁止
-                        addDisabled: false,
-                        // 表单新增时是否可见
-                        addDisplay: true,
-                        // 表单新增时是否为查看模式
-                        addDetail: false,
-                        // 表单编辑时是否禁止
-                        editDisabled: true,
-                        // 表单编辑时是否可见
-                        editDisplay: true,
-                        // 表单编辑时是否为查看模式
-                        editDetail: false,
-                        rules: [
-                            {
-                                required: true,
-                                message: "请输入考试名称",
-                                trigger: "blur",
-                            },
-                        ],
-                    },
-                ],
-            },
-            questionBankSearch: {},
-            questionBankLoading: true,
-            questionBankData: [],
-            questionBankPage: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 16,
-            },
-            questionBankQuery: {},
-            questionBankSelectionList: [],
-            excelForm: {},
-            excelOption: {
-                submitBtn: false,
-                emptyBtn: false,
-                column: [
-                    {
-                        label: "模板上传",
-                        prop: "excelFile",
-                        type: "upload",
-                        drag: true,
-                        loadText: "模板上传中,请稍等",
-                        span: 24,
-                        propsHttp: {
-                            res: "data",
-                        },
-                        tip: "请上传 .xls,.xlsx 标准格式文件",
-                        action: "/api/examScore/import-examScore",
-                    },
-                    // {
-                    //     label: "数据覆盖",
-                    //     prop: "isCovered",
-                    //     type: "switch",
-                    //     align: "center",
-                    //     width: 80,
-                    //     dicData: [
-                    //     {
-                    //         label: "否",
-                    //         value: 0,
-                    //     },
-                    //     {
-                    //         label: "是",
-                    //         value: 1,
-                    //     },
-                    //     ],
-                    //     value: 0,
-                    //     slot: true,
-                    //     rules: [
-                    //     {
-                    //         required: true,
-                    //         message: "请选择是否覆盖",
-                    //         trigger: "blur",
-                    //     },
-                    //     ],
-                    // },
-                    {
-                        label: "模板下载",
-                        prop: "excelTemplate",
-                        formslot: true,
-                        span: 24,
-                    },
-                ],
-            },
-        };
+          }
+          const data = {
+            ids: str,
+            createUser: this.userInfo.user_id,
+            type: 2
+          };
+          return securityApply(data);
+        })
+        .then(() => {
+          this.$refs.questionBankCrud.toggleSelection();
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+        });
     },
-    created () { },
-    mounted () { },
-    computed: {
-        ...mapGetters(["userInfo", "permission"]),
-        permissionList () {
-            return {
-                addBtn: this.vaildData(null, false),
-                viewBtn: this.vaildData(
-                    this.permission.trainExam_performance_view,
-                    false
-                ),
-                delBtn: this.vaildData(null, false),
-                editBtn: this.vaildData(
-                    this.permission.trainExam_performance_edit,
-                    false
-                ),
-                excelBtn: this.vaildData(
-                    this.permission.trainExam_performance_export,
-                    false
-                ),
-            };
-        },
+    //上岗证制证申请
+    handleWorkerPaperApply() {
+      if (this.choiceList.length === 0) {
+        this.$message.warning("请勾选至少一位持证保安员");
+        return;
+      }
+      this.$confirm(
+        "共选择上岗证制证申请人数" +
+          this.choiceList.length +
+          "人,确定申请制证?",
+        {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }
+      )
+        .then(() => {
+          let cho = this.choiceList;
+          let str = "";
+          for (let k in cho) {
+            str += cho[k].id;
+            if (k != cho.length - 1) {
+              str += ",";
+            }
+          }
+          const data = {
+            ids: str,
+            createUser: this.userInfo.user_id,
+            type: 1
+          };
+          return securityApply(data);
+        })
+        .then(() => {
+          this.$refs.questionBankCrud.toggleSelection();
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+        });
     },
-    methods: {
-        openzhengjian (row) {
-            this.baoanzdata = {
-                realName: row.securityName,
-                $sex: row.sex == 1 ? "男" : "女",
-                securitynumber: row.securityNumber,
-                paperTime: row.paperTime,
-                avatar: row.avatar,
-            };
-            this.dialogVisiblezhengjian = true;
-        },
-        closezhengjian () {
-            this.dialogVisiblezhengjian = false;
-        },
-        questionBankOnLoad (page, params = {}) {
-            //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
-            var that = this;
-            //获取当前登录人员的角色信息
-            var roleIds = this.userInfo.role_id.split(",");
-            roleIds.forEach((roleId) => {
-                getRoleDetail(roleId).then((res) => {
-                    var roleAlias = res.data.data.roleAlias;
-                    if (roleAlias == "保安公司管理员" || roleAlias == "保安") {
-                        //如果是保安公司管理员
-                        params["deptId"] = that.userInfo.dept_id;
-                    }
-                    if (roleAlias == "培训公司管理员") {
-                        //如果是培训公司管理员
-                        params["trainUnitId"] = that.userInfo.dept_id;
-                    }
-                    that.questionBankLoading = false;
-                    params["examType"] = 2;
-                    getList(
-                        page.currentPage,
-                        page.pageSize,
-                        Object.assign(params, this.questionBankQuery)
-                    ).then((res) => {
-                        const data = res.data.data;
-                        that.questionBankPage.total = data.total;
-                        that.questionBankData = data.records;
-                        that.questionBankLoading = false;
-                        that.questionBankSelectionClear();
-                    });
-                });
+    openzhengjian(row) {
+      this.baoanzdata = {
+        realName: row.securityName,
+        $sex: row.sex == 1 ? "男" : "女",
+        securitynumber: row.securityNumber,
+        paperTime: row.paperTime,
+        avatar: row.avatar
+      };
+      this.dialogVisiblezhengjian = true;
+    },
+    //关闭dialog
+    dialogBeforeClose(done) {
+      this.gradeForm.fileList = [];
+      done();
+    },
+    closezhengjian() {
+      this.dialogVisiblezhengjian = false;
+    },
+    //排序
+    sortChange(value) {
+      if (value.order == "ascending") {
+        this.sort = "asc";
+      }
+      if (value.order == "descending") {
+        this.sort = "desc";
+      }
+      this.sortName = value.prop;
+      //字段匹配
+      if (value.prop == "theoryGrade") {
+        this.sortName = "theory_grade";
+      }
+      if (value.prop == "learnGrade") {
+        this.sortName = "learn_grade";
+      }
+      if (value.prop == "allGrade") {
+        this.sortName = "all_grade";
+      }
+      if (value.prop == "qualifieds") {
+        this.sortName = "qualified";
+      }
+      if (value.prop == "companyName") {
+        this.sortName = "companyName";
+      }
+      this.questionBankOnLoad(this.questionBankPage);
+    },
+    questionBankOnLoad(page, params = {}) {
+      //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
+      var that = this;
+      //获取当前登录人员的角色信息
+      var roleIds = this.userInfo.role_id.split(",");
+      roleIds.forEach(roleId => {
+        getRoleDetail(roleId).then(res => {
+          var roleAlias = res.data.data.roleAlias;
+          if (roleAlias == "保安公司管理员" || roleAlias == "保安") {
+            //如果是保安公司管理员
+            params["deptId"] = that.userInfo.dept_id;
+          }
+          if (roleAlias == "培训公司管理员") {
+            //如果是培训公司管理员
+            params["trainUnitId"] = that.userInfo.dept_id;
+          }
+          that.questionBankLoading = false;
+          params["examType"] = 2;
+          if (this.sort) {
+            params["sort"] = this.sort;
+          }
+          if (this.sortName) {
+            params["sortName"] = this.sortName;
+          }
+          getList(
+            page.currentPage,
+            page.pageSize,
+            Object.assign(params, this.questionBankQuery)
+          ).then(res => {
+            const data = res.data.data;
+
+            data.records.forEach(item => {
+              if (item.isPaper == null || item.isPaper == -1) {
+                item.isPaper = "";
+              }
+              if (item.theoryGrade == null && item.learnGrade == -1) {
+                item.qualified = "";
+              }
+              item.theoryGrade == null
+                ? (item.theoryGrade = "")
+                : item.theoryGrade;
+              item.learnGrade == -1 ? (item.learnGrade = "") : item.learnGrade;
             });
-        },
-        //缺考标记
-        absent (row, done, loading) {
-            this.$confirm("确定缺考标记?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            }).then(() => {
-                row.qualified = 3;
-                updateAbsent(row).then(
-                    () => {
-                        this.questionBankOnLoad(this.questionBankPage);
-                        this.$message({
-                            type: "success",
-                            message: "操作成功!",
-                        });
-                        done();
-                    },
-                    (error) => {
-                        window.console.log(error);
-                        loading();
-                    }
-                );
-            });
-        },
-
-        // 修改考试成绩
-        modifiedGrades (row) {
-
-            var { id, examName, securityName, account, candidateNo, theoryGrade, learnGrade, allGrade } = row
-
-            this.gradeForm.examName = examName
-            this.gradeForm.securityName = securityName
-            this.gradeForm.account = account
-            this.gradeForm.candidateNo = candidateNo
-            this.gradeForm.theoryGrade = theoryGrade
-            this.gradeForm.learnGrade = learnGrade
-            this.gradeForm.allGrade = allGrade
-            this.gradeForm.editGrades = ''
-            this.gradeForm.editReason = ''
-            this.gradeForm.id = id
-
-            this.gradeBoxVisible = true
-
-        },
-
-
-        uploadGrade (formName) {
-
-            var that = this
-
-            this.$refs[formName].validate((valid) => {
-
-                if (valid) {
-                    var obj = {}
-                    obj.oldScore = this.gradeForm.theoryGrade
-                    obj.newScore = this.gradeForm.editGrades
-                    obj.applyCause = this.gradeForm.editReason
-                    obj.examScoreId = this.gradeForm.id
-                    obj.createUser = this.userInfo.Id
-
-                    updateGrade(obj).then(
-                        () => {
-                            that.questionBankOnLoad(that.questionBankPage)
-                            that.$message({
-                                type: "success",
-                                message: "操作成功!",
-                            })
-
-                            that.gradeBoxVisible = false
-                        },
-                        (error) => {
-                            window.console.log(error)
-                        }
-                    );
-
-                }
-
-            })
-
-        },
-
-        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 = {};
+            for (let k in data.records) {
+              data.records[k]["qualifieds"] =
+                data.records[k]["qualified"] == -1
+                  ? ""
+                  : data.records[k]["qualified"];
+            }
+            that.questionBankPage.total = data.total;
+            that.questionBankData = data.records;
+            that.questionBankLoading = false;
+            that.$store.commit("setWindowSizeHeightAdd");
+            that.questionBankSelectionClear();
+          });
+        });
+      });
+    },
+    //补证申请
+    securityPaperApply(row, done, loading) {
+      this.$confirm("当前保安员已制证,确定要继续申请制证?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        const data = {
+          createUser: this.userInfo.user_id,
+          type: 2,
+          userId: row.userId
+        };
+        add(data).then(
+          () => {
             this.questionBankOnLoad(this.questionBankPage);
-        },
-        questionBankCurrentChange (currentPage) {
-            this.questionBankPage.currentPage = currentPage;
-        },
-        questionBankSizeChange (pageSize) {
-            this.questionBankPage.pageSize = pageSize;
-        },
-
-        questionBankRowUpdate (row, index, done, loading) {
-            update({
-                theoryGrade: row.theoryGrade,
-                learnGrade: row.learnGrade,
-                examId: row.examId,
-                id: row.id,
-            }).then(
-                () => {
-                    this.questionBankOnLoad(this.questionBankPage);
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!",
-                    });
-                    done();
-                },
-                (error) => {
-                    window.console.log(error);
-                    loading();
-                }
-            );
-        },
-        handleTemplate () {
-            window.open(`/api/examScore/export-template`);
-        },
-        handleImport () {
-            this.excelBox = true;
-        },
-        uploadAfter (res, done, loading, column) {
-            window.console.log(column);
-            this.excelBox = false;
-            // this.$message({
-            //   type: "success",
-            //   message: "操作成功!",
-            // });
-            this.refreshChange();
-            done();
-        },
-        refreshChange () {
-            this.questionBankOnLoad(this.questionBankPage, this.questionBankQuery);
-        },
-        //成绩导出
-        handleExport () {
-            this.$confirm("是否导出成绩数据?", "提示", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning",
-            }).then(() => {
-                //获取查询条件
-                // console.log(this.questionBankSearch, 456);
-                var data = {
-                    account: this.questionBankSearch.account,
-                    companyName: this.questionBankSearch.companyName,
-                    examDate: this.questionBankSearch.examDate,
-                    isExam: this.questionBankSearch.isExam,
-                    qualified: this.questionBankSearch.qualified,
-                    securityName: this.questionBankSearch.securityName,
-                    examName: this.questionBankSearch.examName,
-                };
-                //导出
-                if (
-                    this.userInfo.role_name == "保安公司管理员" ||
-                    this.userInfo.role_name == "保安"
-                ) {
-                    //如果是保安公司管理员
-                    data["deptId"] = this.userInfo.dept_id;
-                }
-                if (this.userInfo.role_name == "培训公司管理员") {
-                    //如果是培训公司管理员
-                    data["trainUnitId"] = this.userInfo.dept_id;
-                }
-                data["examType"] = 2;
-                //序列号url形式,用&拼接
-                data = Qs.stringify(data);
-                window.open(`/api/examScore/export-examScore?` + data);
+            this.$message({
+              type: "success",
+              message: "操作成功!"
             });
-        },
+            done();
+          },
+          error => {
+            window.console.log(error);
+            loading();
+          }
+        );
+      });
     },
+    //缺考标记
+    absent(row, done, loading) {
+      this.$confirm("确定缺考标记?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        row.qualified = 3;
+        updateAbsent(row).then(
+          () => {
+            this.questionBankOnLoad(this.questionBankPage);
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            done();
+          },
+          error => {
+            window.console.log(error);
+            loading();
+          }
+        );
+      });
+    },
+
+    // 修改考试成绩
+    modifiedGrades(row) {
+      var that = this;
+      //判断时间,获取系统时间,减去考试结束时间,小于24小时则可以申请,超过则提示无法申请
+      var endTime = row.endTime;
+      //必须把日期'-'转为'/'
+      endTime = endTime.replace(/-/g, "/");
+      //得到时间戳
+      var longtime = new Date(endTime).getTime();
+      // console.log(longtime,123466);
+      getNowDate().then(res => {
+        var num = 24 * 3600 * 1000;
+        if (this.userInfo.role_name == "培训公司管理员") {
+          // if (res.data.data - longtime <= num) {
+            this.form = {
+              id: null,
+              examScoreId: row.id,
+              examName: row.examName,
+              candidateNo: row.candidateNo,
+              account: row.account,
+              securityName: row.securityName,
+              theoryGrade: row.theoryGrade,
+              learnGrade: row.learnGrade,
+              allGrade: row.allGrade
+            };
+            this.gradeBoxVisible = true;
+          // } else {
+          //   //提示
+          //   that.$message({
+          //     type: "warning",
+          //     message: "成绩修改申请只能在考试截止时间后的24小内提交!"
+          //   });
+          // }
+        } else {
+          this.form = {
+            id: null,
+            examScoreId: row.id,
+            examName: row.examName,
+            candidateNo: row.candidateNo,
+            account: row.account,
+            securityName: row.securityName,
+            theoryGrade: row.theoryGrade,
+            learnGrade: row.learnGrade,
+            allGrade: row.allGrade
+          };
+          this.gradeBoxVisible = true;
+        }
+      });
+    },
+
+    uploadGrade(formName) {
+      var that = this;
+
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          var obj = {};
+          obj.oldScore = this.gradeForm.theoryGrade;
+          obj.newScore = this.gradeForm.editGrades;
+          obj.applyCause = this.gradeForm.editReason;
+          obj.examScoreId = this.gradeForm.id;
+          obj.createUser = this.userInfo.Id;
+
+          updateGrade(obj).then(
+            () => {
+              that.questionBankOnLoad(that.questionBankPage);
+              that.$message({
+                type: "success",
+                message: "操作成功!"
+              });
+
+              that.gradeBoxVisible = false;
+            },
+            error => {
+              window.console.log(error);
+            }
+          );
+        }
+      });
+    },
+
+    questionBankSelectionClear() {
+      this.questionBankSelectionList = [];
+      this.sort = "";
+      this.sortName = "";
+      // this.$refs.questionBankCrud.toggleSelection();
+    },
+    questionBankSelectionChange(list) {
+      // this.questionBankSelectionList = list;
+      this.choiceList = [];
+      for (let k in list) {
+        this.choiceList.push({
+          id: list[k].userId
+        });
+      }
+    },
+    questionBankSearchChange(params, done) {
+      this.questionBankQuery = params;
+      this.questionBankPage.currentPage = 1;
+      this.questionBankOnLoad(this.questionBankPage, params);
+      done();
+    },
+    questionBankSearchReset() {
+      this.questionBankQuery = {};
+      this.questionBankOnLoad(this.questionBankPage);
+    },
+    questionBankCurrentChange(currentPage) {
+      this.questionBankPage.currentPage = currentPage;
+    },
+    questionBankSizeChange(pageSize) {
+      this.questionBankPage.pageSize = pageSize;
+    },
+
+    questionBankRowUpdate(row, index, done, loading) {
+      update({
+        theoryGrade: row.theoryGrade,
+        learnGrade: row.learnGrade,
+        examId: row.examId,
+        id: row.id
+      }).then(
+        () => {
+          this.questionBankOnLoad(this.questionBankPage);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done();
+        },
+        error => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    handleTemplate() {
+      window.open(
+        `/api/examScore/export-template?${
+          this.website.tokenHeader
+        }=${getToken()}&`
+      );
+    },
+    handleImport() {
+      this.excelBox = true;
+    },
+    uploadAfter(res, done, loading, column) {
+      window.console.log(column);
+      this.excelBox = false;
+      // this.$message({
+      //   type: "success",
+      //   message: "操作成功!",
+      // });
+      this.refreshChange();
+      done();
+    },
+    refreshChange() {
+      this.questionBankOnLoad(this.questionBankPage, this.questionBankQuery);
+    },
+    //成绩导出
+    handleExport() {
+      this.$confirm("是否导出成绩数据?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        //获取查询条件
+        // console.log(this.questionBankSearch, 456);
+        var data = {
+          account: this.questionBankSearch.account,
+          companyName: this.questionBankSearch.companyName,
+          examDate: this.questionBankSearch.examDate,
+          isExam: this.questionBankSearch.isExam,
+          qualified: this.questionBankSearch.qualified,
+          securityName: this.questionBankSearch.securityName,
+          examName: this.questionBankSearch.examName,
+          isAvatar: this.questionBankSearch.isAvatar,
+          isPaper: this.questionBankSearch.isPaper
+        };
+        //导出
+        if (
+          this.userInfo.role_name == "保安公司管理员" ||
+          this.userInfo.role_name == "保安"
+        ) {
+          //如果是保安公司管理员
+          data["deptId"] = this.userInfo.dept_id;
+        }
+        if (this.userInfo.role_name == "培训公司管理员") {
+          //如果是培训公司管理员
+          data["trainUnitId"] = this.userInfo.dept_id;
+        }
+        data["examType"] = 2;
+        // console.log(data,11225111);
+        //序列号url形式,用&拼接
+        data = Qs.stringify(data);
+        window.open(
+          `/api/examScore/export-examScore?${
+            this.website.tokenHeader
+          }=${getToken()}&` + data
+        );
+      });
+    }
+  }
 };
 </script>
 
 <style lang="scss" scoped>
 .morpheus-box {
-    position: relative;
+  position: relative;
 }
 .dialogVisiblezhengjian {
-    position: absolute;
-    background-color: #fff;
-    width: 100%;
-    height: 100%;
-    z-index: 10000 !important;
+  position: absolute;
+  background-color: #fff;
+  width: 100%;
+  height: 100%;
+  z-index: 10000 !important;
 }
 </style>

--
Gitblit v1.9.3