Administrator
2022-01-12 21c7375b7b38ebf2c8a2ca8fbf6fe9fb4f28250f
src/views/trainExam/performance.vue
@@ -25,6 +25,7 @@
            :permission="permissionList"
            ref="questionBankCrud"
            :page.sync="questionBankPage"
            @sort-change="sortChange"
            @on-load="questionBankOnLoad"
            @selection-change="questionBankSelectionChange"
            @search-change="questionBankSearchChange"
@@ -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: {
@@ -328,11 +352,11 @@
        // 导出按钮
        // 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;
@@ -351,7 +375,7 @@
        dialogClickModal: false,
        // 操作栏宽度
        menu: true,
        menuWidth: 295,
        menuWidth: 330,
        labelWidth: 120,
        ...this.$store.state.control.clearOtherBut,
@@ -408,8 +432,8 @@
                trigger: "blur",
              },
            ],
            width: 210,
            // overHidden:true,
            width: 200,
            overHidden:true,
          },
          {
            label: "姓名",
@@ -473,6 +497,7 @@
            prop: "candidateNo",
            search: true,
            searchSpan: 4,
            hide:true,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
@@ -493,7 +518,14 @@
                trigger: "blur",
              },
            ],
            width: 140,
            width: 110,
          },
          {
            label: "照片",
            prop: "avatar",
            type: "upload",
            listType: "picture-img",
            width:60,
          },
          {
            label: "所属公司",
@@ -525,7 +557,8 @@
                trigger: "blur",
              },
            ],
            width: 230,
            width: 180,
            overHidden: true,
          },
          {
            label: "考试开始时间",
@@ -572,13 +605,13 @@
            editDetail: false,
          },
          {
            label: "状态",
            label: "考试状态",
            prop: "isExam",
            type: "select",
            slot: true,
            search: true,
            searchSpan: 3,
            width: 60,
            width: 80,
            dicData: [
              {
                label: "发布成绩",
@@ -587,6 +620,10 @@
              {
                label: "考试中",
                value: 3,
              },
              {
                label: "缺考",
                value: 4,
              },
            ],
            // 表单新增时是否禁止
@@ -613,6 +650,7 @@
            label: "理论成绩",
            prop: "theoryGrade",
            slot: true,
            sortable: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
@@ -631,6 +669,7 @@
            label: "实操成绩",
            prop: "learnGrade",
            slot: true,
            sortable: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
@@ -652,6 +691,7 @@
            label: "总成绩",
            prop: "allGrade",
            slot: true,
            sortable: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
@@ -747,11 +787,66 @@
            // 表单编辑时是否为查看模式
            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,
@@ -899,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;
@@ -917,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,
@@ -925,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 = "";
              }
@@ -945,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();
          }
        );
      });
    },
    //缺考标记
@@ -1031,6 +1184,8 @@
    questionBankSelectionClear() {
      this.questionBankSelectionList = [];
      this.sort = "";
      this.sortName = "";
      // this.$refs.questionBankCrud.toggleSelection();
    },
    questionBankSelectionChange(list) {
@@ -1116,6 +1271,8 @@
          qualified: this.questionBankSearch.qualified,
          securityName: this.questionBankSearch.securityName,
          examName: this.questionBankSearch.examName,
          isAvatar: this.questionBankSearch.isAvatar,
          isPaper: this.questionBankSearch.isPaper,
        };
        //导出
        if (
@@ -1130,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);