From 21c7375b7b38ebf2c8a2ca8fbf6fe9fb4f28250f Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 12 Jan 2022 10:59:40 +0800
Subject: [PATCH] 新增公司注册机公司注册审核

---
 src/views/trainExam/performance.vue |  871 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 771 insertions(+), 100 deletions(-)

diff --git a/src/views/trainExam/performance.vue b/src/views/trainExam/performance.vue
index dc7adac..abdbd72 100644
--- a/src/views/trainExam/performance.vue
+++ b/src/views/trainExam/performance.vue
@@ -1,15 +1,20 @@
 /*
  * @Author: Morpheus
  * @Date: 2021-07-05 16:31:54
- * @Last Modified by: Morpheus
- * @Last Modified time: 2021-07-18 19:44:47
+ * @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-col :span="24">
       <el-card>
-        <div class="exam-card-body">
+        <div
+          :class="[
+            'exam-card-body',
+            $store.state.control.windowWidth >= 1024 ? 'tooRowSearch' : '',
+          ]"
+        >
           <avue-crud
             v-model="obj"
             class="company-box"
@@ -20,6 +25,7 @@
             :permission="permissionList"
             ref="questionBankCrud"
             :page.sync="questionBankPage"
+            @sort-change="sortChange"
             @on-load="questionBankOnLoad"
             @selection-change="questionBankSelectionChange"
             @search-change="questionBankSearchChange"
@@ -27,18 +33,29 @@
             @current-change="questionBankCurrentChange"
             @size-change="questionBankSizeChange"
             @row-update="questionBankRowUpdate"
+            @refresh-change="refreshChange"
           >
             <template slot-scope="{ row }" slot="theoryGrade">
-              {{ row.theoryGrade == -1 ? "" : row.theoryGrade }}
+              {{ row.theoryGrade }}
             </template>
-             <template slot-scope="{ row }" slot="learnGrade">
-              {{ row.learnGrade == -1 ? "暂未录入" : row.learnGrade }}
+            <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 == -1 ? "" : row.qualified==0?"合格":row.qualified==1?"不合格":row.qualified==3?"缺考,成绩无效":'' }}
+              {{
+                row.qualified == ""
+                  ? ""
+                  : row.qualified == 0
+                  ? "合格"
+                  : row.qualified == 1
+                  ? "不合格"
+                  : row.qualified == 3
+                  ? "缺考,成绩无效"
+                  : ""
+              }}
             </template>
 
             <!-- 自定义按钮 -->
@@ -64,16 +81,58 @@
                 @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>
             </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
+                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>
 
@@ -98,17 +157,140 @@
         </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-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-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.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 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
+      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>
 </template>
 
 <script>
-import { getList, update,updateAbsent } from "@/api/examapi/performance";
+import baoanz from "../securityGuard/baoanz.vue";
+import {
+  getList,
+  update,
+  updateAbsent,
+  updateGrade,
+} 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";
 export default {
+  components: {
+    baoanz,
+  },
   data() {
     var validatePass = (rule, value, callback) => {
-      console.log(value);
       if (value == undefined || value == "") {
         callback(new Error("请输入实操成绩"));
         return;
@@ -122,8 +304,42 @@
         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 {
+      rules: {
+        editGrades: [
+          { validator: validatePass2, required: true, trigger: "blur" },
+        ],
+      },
+      gradeForm: {
+        id: null,
+        examName: "",
+        securityName: "",
+        account: "",
+        candidateNo: "",
+        theoryGrade: "",
+        learnGrade: "",
+        allGrade: "",
+        editGrades: "",
+        editReason: "",
+      },
+      gradeBoxVisible: false,
+      dialogVisiblezhengjian: false,
+      baoanzdata: {},
       obj: {
         name: "张三",
       },
@@ -133,16 +349,24 @@
         delBtn: false,
         editBtn: true,
         addBtn: false,
-        selection: false,
         // 导出按钮
-        excelBtn: true,
-        excelBtnText: "成绩导出",
-        viewBtn: true,
+        // 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: false,
+        tip: true,
         searchShow: true,
         searchMenuSpan: 4,
         index: true,
@@ -151,17 +375,43 @@
         dialogClickModal: false,
         // 操作栏宽度
         menu: true,
-        menuWidth: 136,
+        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: "examName",
             search: true,
-            searchSpan: 4,
+            searchSpan: 5,
             slot: true,
-            viewDisplay:true,
+            viewDisplay: true,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -182,11 +432,41 @@
                 trigger: "blur",
               },
             ],
-            width:250,
+            width: 200,
+            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: "用户名",
+            label: "身份证号",
             prop: "account",
             search: true,
             searchSpan: 4,
@@ -210,7 +490,42 @@
                 trigger: "blur",
               },
             ],
-             width:160,
+            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,
           },
           {
             label: "所属公司",
@@ -242,7 +557,8 @@
                 trigger: "blur",
               },
             ],
-            width:230,
+            width: 180,
+            overHidden: true,
           },
           {
             label: "考试开始时间",
@@ -251,7 +567,7 @@
             // span: 24,
             format: "yyyy-MM-dd HH:mm:ss",
             valueFormat: "yyyy-MM-dd HH:mm:ss",
-            width: 160,
+            width: 140,
             slot: true,
             // 表单新增时是否禁止
             addDisabled: false,
@@ -273,7 +589,7 @@
             // span: 24,
             format: "yyyy-MM-dd HH:mm:ss",
             valueFormat: "yyyy-MM-dd HH:mm:ss",
-            width: 160,
+            width: 140,
             slot: true,
             // 表单新增时是否禁止
             addDisabled: false,
@@ -289,12 +605,13 @@
             editDetail: false,
           },
           {
-            label: "状态",
+            label: "考试状态",
             prop: "isExam",
             type: "select",
             slot: true,
             search: true,
-            searchSpan: 4,
+            searchSpan: 3,
+            width: 80,
             dicData: [
               {
                 label: "发布成绩",
@@ -303,6 +620,10 @@
               {
                 label: "考试中",
                 value: 3,
+              },
+              {
+                label: "缺考",
+                value: 4,
               },
             ],
             // 表单新增时是否禁止
@@ -329,6 +650,7 @@
             label: "理论成绩",
             prop: "theoryGrade",
             slot: true,
+            sortable: true,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -341,11 +663,13 @@
             editDisplay: true,
             // 表单编辑时是否为查看模式
             editDetail: false,
+            width: 68,
           },
           {
             label: "实操成绩",
             prop: "learnGrade",
             slot: true,
+            sortable: true,
             // 表单新增时是否禁止
             addDisabled: false,
             // 表单新增时是否可见
@@ -358,39 +682,40 @@
             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,
-              rules: [{
-                  required: true,
-                  message: "请输入考试名称",
-                  trigger: "blur"
-              }]
+            label: "总成绩",
+            prop: "allGrade",
+            slot: true,
+            sortable: true,
+            // 表单新增时是否禁止
+            addDisabled: false,
+            // 表单新增时是否可见
+            addDisplay: true,
+            // 表单新增时是否为查看模式
+            addDetail: false,
+            // 表单编辑时是否禁止
+            editDisabled: true,
+            // 表单编辑时是否可见
+            editDisplay: true,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+            
+            width: 58,
           },
           {
             label: "是否合格",
             prop: "qualified",
             type: "select",
             slot: true,
+            hide: true,
             search: true,
-            searchSpan: 4,
+            searchSpan: 3,
+            width: 68,
             dicData: [
               {
                 label: "合格",
@@ -418,14 +743,100 @@
             // 表单编辑时是否禁止
             editDisabled: true,
             // 表单编辑时是否可见
+            editDisplay: false,
+            viewDetail: false,
+            viewDisplay: false,
+            // 表单编辑时是否为查看模式
+            editDetail: false,
+          },
+          {
+            label: "是否合格",
+            prop: "qualifieds",
+            type: "select",
+            // search: true,
+            searchSpan: 3,
+            width: 68,
+            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,
-            rules: [
+          },
+          {
+            label: "是否制证",
+            prop: "isPaper",
+            type: "select",
+            search: true,
+            width: 70,
+            searchSpan: 3,
+            addDisplay: false,
+            editDisplay: false,
+            // hide: true,
+            display: false,
+            dicData: [
               {
-                required: true,
-                message: "请输入考试名称",
-                trigger: "blur",
+                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,
               },
             ],
           },
@@ -434,10 +845,13 @@
       questionBankSearch: {},
       questionBankLoading: true,
       questionBankData: [],
+      sort:"",
+      sortName:"",
       questionBankPage: {
         pageSize: 10,
         currentPage: 1,
         total: 16,
+        ...this.$store.state.control.changePageSize,
       },
       questionBankQuery: {},
       questionBankSelectionList: [],
@@ -493,23 +907,114 @@
           },
         ],
       },
+      choiceList: [],
     };
   },
   created() {},
   mounted() {},
-  computed:{
+  computed: {
     ...mapGetters(["userInfo", "permission"]),
     permissionList() {
       return {
         addBtn: this.vaildData(null, false),
-        viewBtn: this.vaildData(this.permission.trainExam_performance_view, 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),
+        editBtn: this.vaildData(
+          this.permission.trainExam_performance_edit,
+          false
+        ),
+        excelBtn: this.vaildData(
+          this.permission.trainExam_performance_export,
+          false
+        ),
       };
     },
   },
   methods: {
+    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 += ",";
+            }
+          }
+          const data = {
+            ids: str,
+            createUser: this.userInfo.user_id,
+            type: 2,
+          };
+          return securityApply(data);
+        })
+        .then(() => {
+          this.$refs.questionBankCrud.toggleSelection();
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+        });
+    },
+    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;
+    },
+    //排序
+    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";
+      }
+      this.questionBankOnLoad(this.questionBankPage);
+    },
     questionBankOnLoad(page, params = {}) {
       //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
       var that = this;
@@ -517,48 +1022,71 @@
       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.query)
-            ).then((res) => {
-              const data = res.data.data;
-              that.questionBankPage.total = data.total;
-              that.questionBankData = data.records;
-              that.questionBankLoading = false;
-              that.questionBankSelectionClear();
+          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;
             });
-        })
+            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.questionBankSelectionClear();
+          });
+        });
       });
-      
     },
-    //缺考标记
-    absent(row, done, loading) {
-      this.$confirm("确定缺考标记?", {
+    //补证申请
+    securityPaperApply(row,done,loading){
+      this.$confirm("当前保安员已制证,确定要继续申请制证?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning",
       }).then(() => {
-        row.qualified = 3;
-        updateAbsent(row).then(
+        const data = {
+          createUser:this.userInfo.user_id,
+          type:2,
+          userId:row.userId
+        }
+        add(data).then(
           () => {
-            this.onLoad(this.page);
+            this.questionBankOnLoad(this.questionBankPage);
             this.$message({
               type: "success",
               message: "操作成功!",
@@ -572,12 +1100,102 @@
         );
       });
     },
+    //缺考标记
+    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();
+      this.sort = "";
+      this.sortName = "";
+      // this.$refs.questionBankCrud.toggleSelection();
     },
     questionBankSelectionChange(list) {
-      this.questionBankSelectionList = list;
+      // this.questionBankSelectionList = list;
+      this.choiceList = [];
+      for (let k in list) {
+        this.choiceList.push({
+          id: list[k].userId,
+        });
+      }
     },
     questionBankSearchChange(params, done) {
       this.questionBankQuery = params;
@@ -600,7 +1218,7 @@
       update({
         theoryGrade: row.theoryGrade,
         learnGrade: row.learnGrade,
-        examId:row.examId,
+        examId: row.examId,
         id: row.id,
       }).then(
         () => {
@@ -626,15 +1244,68 @@
     uploadAfter(res, done, loading, column) {
       window.console.log(column);
       this.excelBox = false;
+      // this.$message({
+      //   type: "success",
+      //   message: "操作成功!",
+      // });
       this.refreshChange();
       done();
     },
     refreshChange() {
-      this.questionBankOnLoad(this.page, this.query);
+      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?` + data);
+      });
     },
   },
 };
 </script>
 
 <style lang="scss" scoped>
+.morpheus-box {
+  position: relative;
+}
+.dialogVisiblezhengjian {
+  position: absolute;
+  background-color: #fff;
+  width: 100%;
+  height: 100%;
+  z-index: 10000 !important;
+}
 </style>

--
Gitblit v1.9.3