Administrator
2022-01-04 0e4d44c2f5a7511d2eee72deecb76b5ba67358cd
src/views/trainExam/performance.vue
@@ -2,7 +2,7 @@
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: liu
 * @Last Modified time: 2021-11-27 10:00:37
 * @Last Modified time: 2021-11-27 10:20:19
 * menu-name 成绩管理
 */
<template>
@@ -25,6 +25,7 @@
            :permission="permissionList"
            ref="questionBankCrud"
            :page.sync="questionBankPage"
            @sort-change="sortChange"
            @on-load="questionBankOnLoad"
            @selection-change="questionBankSelectionChange"
            @search-change="questionBankSearchChange"
@@ -93,7 +94,7 @@
                type="primary"
                size="small"
                plain
                v-if="permission.securityGuard_security_paper_apply"
                v-if="permission.trainExam_performance_paper_apply"
                icon="el-icon-collection-tag"
                @click="handleSecurityPaperApply"
                >证书制证申请
@@ -102,6 +103,7 @@
            <template slot-scope="{ type, size, row }" slot="menu">
              <el-button
                style="display:none"
                icon="el-icon-s-flag"
                @click="absent(row)"
                :size="size"
@@ -122,6 +124,14 @@
                :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>
@@ -273,7 +283,7 @@
} from "@/api/examapi/performance";
import { mapGetters } from "vuex";
import { getRoleDetail } from "@/api/system/role";
import { securityApply } from "@/api/accreditationRecords/accreditationRecords";
import { securityApply,add} from "@/api/accreditationRecords/accreditationRecords";
import Qs from "qs";
export default {
  components: {
@@ -294,11 +304,25 @@
        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: validatePass, required: true, trigger: "blur" },
          { validator: validatePass2, required: true, trigger: "blur" },
        ],
      },
      gradeForm: {
@@ -325,13 +349,14 @@
        delBtn: false,
        editBtn: true,
        addBtn: false,
        selection: true,
        // 导出按钮
        // excelBtn: true,
        // excelBtnText: "成绩导出",
        viewBtn: true,
        viewBtn: false,
        selection: true,
        reserveSelection: true,
        selectable: (row) => {
          if (row.qualified != "0") {
          if (row.qualified != "0" || row.isPaper==6) {
            return false;
          } else {
            return true;
@@ -341,7 +366,7 @@
        align: "center",
        height: "auto",
        calcHeight: 80,
        tip: false,
        tip: true,
        searchShow: true,
        searchMenuSpan: 4,
        index: true,
@@ -350,9 +375,10 @@
        dialogClickModal: false,
        // 操作栏宽度
        menu: true,
        menuWidth: 295,
        menuWidth: 330,
        labelWidth: 120,
        ...this.$store.state.control.clearOtherBut,
        column: [
          {
            label: "考试时间",
@@ -406,8 +432,8 @@
                trigger: "blur",
              },
            ],
            width: 210,
            // overHidden:true,
            width: 200,
            overHidden:true,
          },
          {
            label: "姓名",
@@ -471,6 +497,7 @@
            prop: "candidateNo",
            search: true,
            searchSpan: 4,
            hide:true,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
@@ -491,7 +518,14 @@
                trigger: "blur",
              },
            ],
            width: 140,
            width: 110,
          },
          {
            label: "照片",
            prop: "avatar",
            type: "upload",
            listType: "picture-img",
            width:60,
          },
          {
            label: "所属公司",
@@ -523,7 +557,8 @@
                trigger: "blur",
              },
            ],
            width: 230,
            width: 180,
            overHidden: true,
          },
          {
            label: "考试开始时间",
@@ -570,13 +605,13 @@
            editDetail: false,
          },
          {
            label: "状态",
            label: "考试状态",
            prop: "isExam",
            type: "select",
            slot: true,
            search: true,
            searchSpan: 3,
            width: 60,
            width: 80,
            dicData: [
              {
                label: "发布成绩",
@@ -585,6 +620,10 @@
              {
                label: "考试中",
                value: 3,
              },
              {
                label: "缺考",
                value: 4,
              },
            ],
            // 表单新增时是否禁止
@@ -611,6 +650,7 @@
            label: "理论成绩",
            prop: "theoryGrade",
            slot: true,
            sortable: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
@@ -629,6 +669,7 @@
            label: "实操成绩",
            prop: "learnGrade",
            slot: true,
            sortable: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
@@ -650,6 +691,7 @@
            label: "总成绩",
            prop: "allGrade",
            slot: true,
            sortable: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
@@ -662,6 +704,7 @@
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            width: 58,
          },
          {
@@ -700,7 +743,9 @@
            // 表单编辑时是否禁止
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: true,
            editDisplay: false,
            viewDetail: false,
            viewDisplay: false,
            // 表单编辑时是否为查看模式
            editDetail: false,
          },
@@ -736,17 +781,72 @@
            // 表单新增时是否为查看模式
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: false,
            editDisabled: true,
            // 表单编辑时是否可见
            editDisplay: false,
            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,
@@ -874,7 +974,7 @@
          return securityApply(data);
        })
        .then(() => {
          // this.$refs.crud.toggleSelection();
          this.$refs.questionBankCrud.toggleSelection();
          this.$message({
            type: "success",
            message: "操作成功!",
@@ -894,6 +994,27 @@
    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;
@@ -912,6 +1033,12 @@
          }
          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,
@@ -920,6 +1047,9 @@
            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 = "";
              }
@@ -940,6 +1070,34 @@
            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);
            this.$message({
              type: "success",
              message: "操作成功!",
            });
            done();
          },
          (error) => {
            window.console.log(error);
            loading();
          }
        );
      });
    },
    //缺考标记
@@ -1026,7 +1184,9 @@
    questionBankSelectionClear() {
      this.questionBankSelectionList = [];
      this.$refs.questionBankCrud.toggleSelection();
      this.sort = "";
      this.sortName = "";
      // this.$refs.questionBankCrud.toggleSelection();
    },
    questionBankSelectionChange(list) {
      // this.questionBankSelectionList = list;
@@ -1111,6 +1271,8 @@
          qualified: this.questionBankSearch.qualified,
          securityName: this.questionBankSearch.securityName,
          examName: this.questionBankSearch.examName,
          isAvatar: this.questionBankSearch.isAvatar,
          isPaper: this.questionBankSearch.isPaper,
        };
        //导出
        if (
@@ -1125,6 +1287,7 @@
          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);