zhouwx
2024-07-22 55cc4c8bbbd66ce4b33fff8712d4c53e2080b5a0
src/views/onlineEducation/groupExams/components/student.vue
@@ -1,18 +1,55 @@
<template>
  <div class="app-container">
    <div style="margin-bottom: 10px;display: flex;align-items: center;justify-content: space-between">
      <el-button
          type="primary"
          plain
          icon="Plus"
          @click="openDialog()"
      >选择学员</el-button>
      <el-button
          type="danger"
          plain
          icon="Delete"
          @click="handleDeleteBatch"
      >批量删除</el-button>
    <div style="display: flex;justify-content: space-between">
      <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" >
        <el-form-item>
          <el-button
              type="primary"
              plain
              icon="Plus"
              @click="openDialog()"
          >选择学员</el-button>
        </el-form-item>
        <el-form-item label="学生姓名:" >
          <el-input v-model="data.queryParams.studentName" placeholder="请输入学生姓名"></el-input>
        </el-form-item>
        <el-form-item label="考试是否完成:" >
          <el-select
              v-model="data.queryParams.completed"
              class="w100"
              style="max-width: 180px"
              clearable
              size="default"
          >
            <el-option v-for="item in data.completeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item >
          <el-button
              type="primary"
              @click="getList"
          >查询</el-button>
          <el-button
              type="primary"
              plain
              @click="reset"
          >重置</el-button>
        </el-form-item>
      </el-form>
      <div>
        <el-button
            type="danger"
            plain
            icon="Delete"
            @click="handleDeleteBatch"
        >批量删除</el-button>
        <el-button
            type="primary"
            plain
            @click="back"
        >返回</el-button>
      </div>
    </div>
    <!-- 表格数据 -->
    <el-table ref="tableRef" v-loading="loading" :data="dataList" :border="true" :row-key="getRowKey"  @selection-change="handleSelectionChange">
@@ -33,10 +70,19 @@
          <span>{{scope.row.student.phone}}</span>
        </template>
      </el-table-column>
      <el-table-column label="成绩" prop="score" align="center"  />
      <el-table-column label="考试是否完成" prop="completed" align="center" >
        <template #default="scope">
          <span>{{scope.row.completed ===0 ? '未完成' : '已完成'}}</span>
        </template>
      </el-table-column>
      <el-table-column label="成绩" prop="score" align="center" >
        <template #default="scope">
          <span>{{scope.row.completed ===0 ? '--' : scope.row.score}}</span>
        </template>
      </el-table-column>
      <el-table-column label="是否合格" prop="passed" align="center"  >
        <template #default="scope">
          <span>{{scope.row.passed === 0 ? '不合格' : '合格'}}</span>
          <span>{{scope.row.completed ===0 ? '--' : scope.row.passed === 0 ? '不合格' : '合格'}}</span>
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width"  width="180">
@@ -64,11 +110,11 @@
import Cookies from "js-cookie";
import {delQuestionBank, getQuestionBank} from "@/api/onlineEducation/questionBank";
import {batchDelStudent, delBatchStu, getBatchStudent} from "@/api/onlineEducation/batch";
import {useRoute} from 'vue-router'
import {useRoute, useRouter} from 'vue-router'
import {delExamStu, examDelStudent, getExamStudent} from "@/api/onlineEducation/exam";
import ExamChooseStudent from "@/views/onlineEducation/groupExams/components/examChooseStudent.vue";
const route = useRoute()
const router = useRouter();
const { proxy } = getCurrentInstance();
const loading = ref(false);
@@ -77,13 +123,25 @@
const data = reactive({
  queryParams: {
    paperId: null,
    studentName: '',
    completed: null,
    pageNum: 1,
    pageSize: 10,
  },
  total: 0,
  dataList: [],
  isAdmin: false,
  chooseStu: []
  chooseStu: [],
  completeList: [
    {
      id: 1,
      name: '是'
    },
    {
      id: 0,
      name: '否'
    }
  ]
});
@@ -109,6 +167,10 @@
const getRowKey = (row) => {
  return row.id
}
const back = () => {
  router.push("/group");
}
const getList = async () => {
  loading.value = true
  const res = await getExamStudent(data.queryParams)
@@ -127,7 +189,14 @@
/** 重置新增的表单以及其他数据  */
function reset() {
  proxy.resetForm("roleRef");
  data.queryParams = {
    paperId: data.queryParams.paperId,
    studentName: '',
    completed: null,
    pageNum: 1,
    pageSize: 10,
  }
  getList()
}
const handleSelectionChange = (val) => {