钟日健
2022-02-08 2c461eb9efb980d55dfd7407ee70088fc90a4a7a
src/views/trainExam/singleperformance.vue
@@ -2,14 +2,19 @@
 * @Author: Morpheus
 * @Date: 2021-07-05 16:31:54
 * @Last Modified by: liu
 * @Last Modified time: 2021-10-26 15:38:19
 * @Last Modified time: 2021-12-10 10:01:11
 * menu-name 成绩查看
 */
<template>
  <el-row class="morpheus-box-score">
    <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"
@@ -18,6 +23,7 @@
            :table-loading="questionBankLoading"
            :data="questionBankData"
            ref="questionBankCrud"
            @sort-change="sortChange"
            :permission="permissionList"
            :page.sync="questionBankPage"
            @on-load="questionBankOnLoad"
@@ -109,6 +115,7 @@
import { mapGetters } from "vuex";
import { getRoleDetail } from "@/api/system/role";
import Qs from "qs";
import { getToken } from "@/util/auth";
export default {
  data() {
    var validatePass = (rule, value, callback) => {
@@ -144,6 +151,8 @@
        // title: '成绩',
        align: "center",
        height: "auto",
        sort:"",
      sortName:"",
        calcHeight: 80,
        tip: false,
        searchShow: true,
@@ -156,6 +165,7 @@
        menu: false,
        menuWidth: 136,
        labelWidth: 120,
        ...this.$store.state.control.clearOtherBut,
        column: [
          {
            label: "考试时间",
@@ -183,12 +193,13 @@
            viewDisplay: false,
          },
          {
            label: "考试名称",
            prop: "examName",
            search: true,
            searchSpan: 5,
            slot: true,
            viewDisplay: false,
            label: "考试时间",
            prop: "startTime",
            type: "datetime",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            width: 90,
            viewDisplay: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
@@ -197,25 +208,26 @@
            addDetail: false,
            // 表单编辑时是否禁止
            editDisabled: true,
            viewDisabled: true,
            // 表单编辑时是否可见
            editDisplay: false,
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            rules: [
              {
                required: true,
                message: "请输入试卷名称",
                message: "请输入考试时间",
                trigger: "blur",
              },
            ],
            // overHidden:true,
            minWidth: 230,
            overHidden:true,
          },
          {
            label: "姓名",
            prop: "securityName",
            search: true,
            searchSpan: 3,
            searchLabelWidth: 50,
            slot: true,
            viewDisplay: true,
            // 表单新增时是否禁止
@@ -245,7 +257,7 @@
            label: "身份证号",
            prop: "account",
            search: true,
            searchSpan: 4,
            searchSpan: 5,
            slot: true,
            // 表单新增时是否禁止
            addDisabled: false,
@@ -299,6 +311,7 @@
            label: "所属公司",
            prop: "companyName",
            search: true,
            sortable: true,
            searchSpan: 4,
            // dicUrl: '/api/blade-system/dept/tree',
            // props: {
@@ -373,12 +386,12 @@
            editDetail: false,
          },
          {
            label: "状态",
            label: "考试状态",
            prop: "isExam",
            type: "select",
            slot: true,
            search: true,
            searchSpan: 3,
            searchSpan: 4,
            dicData: [
              {
                label: "发布成绩",
@@ -387,6 +400,14 @@
              {
                label: "考试中",
                value: 3,
              },
              {
                label: "纸质考试",
                value: 5,
              },
              {
                label: "缺考",
                value: 4,
              },
            ],
            width: 90,
@@ -414,6 +435,7 @@
            label: "理论成绩",
            prop: "theoryGrade",
            slot: true,
            sortable: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
@@ -426,12 +448,13 @@
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            width: 68,
            width: 95,
          },
          {
            label: "实操成绩",
            prop: "learnGrade",
            slot: true,
            sortable: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
@@ -444,7 +467,7 @@
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            width: 68,
            width: 95,
            rules: [
              { validator: validatePass, required: true, trigger: "blur" },
            ],
@@ -453,6 +476,7 @@
            label: "总成绩",
            prop: "allGrade",
            slot: true,
            sortable: true,
            // 表单新增时是否禁止
            addDisabled: false,
            // 表单新增时是否可见
@@ -465,7 +489,7 @@
            editDisplay: true,
            // 表单编辑时是否为查看模式
            editDetail: false,
            width: 58,
            width: 80,
            rules: [
              {
                required: true,
@@ -478,11 +502,11 @@
            label: "是否合格",
            prop: "qualified",
            type: "select",
            sortable: true,
            slot: true,
            search: true,
            searchSpan: 3,
            width: 110,
            width: 68,
            searchSpan: 4,
            width: 120,
            dicData: [
              {
                label: "合格",
@@ -525,7 +549,8 @@
      questionBankPage: {
        pageSize: 10,
        currentPage: 1,
        total: 16,
        total: 0,
        ...this.$store.state.control.changePageSize,
      },
      questionBankQuery: {},
      questionBankSelectionList: [],
@@ -533,7 +558,8 @@
  },
  created() {
    // console.log(this.$route.query,111);
    this.questionBankSearch["examName"] = this.$route.query.examName;
    this.questionBankSearch["examId"] = this.$route.query.id;
    // console.log(this.$route.query,111);
  },
  mounted() {},
  computed: {
@@ -561,6 +587,30 @@
        query: obj,
      });
    },
    //排序
    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=="companyName"){
        this.sortName = "companyName";
      }
      this.questionBankOnLoad(this.questionBankPage);
    },
    questionBankOnLoad(page, params = {}) {
      //判断角色,如果是保安公司管理员或保安,只能查看当前公司的考试成绩
      var that = this;
@@ -570,7 +620,11 @@
      roleIds.forEach((roleId) => {
        getRoleDetail(roleId).then((res) => {
          var roleAlias = res.data.data.roleAlias;
          if (roleAlias == "保安公司管理员" || roleAlias == "保安") {
          if (
            roleAlias == "保安公司管理员" ||
            roleAlias == "保安" ||
            roleAlias == "分公司管理员"
          ) {
            //如果是保安公司管理员
            params["deptId"] = that.userInfo.dept_id;
          }
@@ -580,6 +634,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,
@@ -657,7 +717,7 @@
          isExam: this.questionBankSearch.isExam,
          qualified: this.questionBankSearch.qualified,
          securityName: this.questionBankSearch.securityName,
          examName: this.questionBankSearch.examName,
          examId:this.questionBankSearch.examId,
        };
        //导出
        if (
@@ -672,9 +732,13 @@
          data["trainUnitId"] = this.userInfo.dept_id;
        }
        data["examType"] = 2;
        console.log(data,1234567989);
        //序列号url形式,用&拼接
        data = Qs.stringify(data);
        window.open(`/api/examScore/export-examScore?` + data);
        window.open(`/api/examScore/export-examScore?${
            this.website.tokenHeader
          }=${getToken()}&` + data
        );
      });
    },
  },