zhouwx
2024-07-29 b4698317fb97d89e389f131e8fd9dcf8d7108c77
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,19 +123,33 @@
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: '否'
    }
  ]
});
const { queryParams, total, dataList } = toRefs(data);
const backValue = ref()
onMounted(async ()=>{
  const userInfo = JSON.parse(Cookies.get('userInfo'))
  console.log("userInfo",userInfo)
  if(userInfo.userType === 0){
@@ -98,6 +158,7 @@
    data.isAdmin = false;
  }
  const val = JSON.parse(route.query.val)
  backValue.value = val
  // data.queryParams.pageId = val.id
  data.queryParams.paperId = val.id
  await getList()
@@ -108,6 +169,17 @@
const getRowKey = (row) => {
  return row.id
}
const back = () => {
  // router.push("/group");
  const obj = {
    pageNum: backValue.value.pageNum,
    pageSize: backValue.value.pageSize,
  }
  const v = JSON.stringify(obj)
  router.push({ path: "/group", query: { val: v } });
}
const getList = async () => {
  loading.value = true
@@ -127,7 +199,14 @@
/** 重置新增的表单以及其他数据  */
function reset() {
  proxy.resetForm("roleRef");
  data.queryParams = {
    paperId: data.queryParams.paperId,
    studentName: '',
    completed: null,
    pageNum: 1,
    pageSize: 10,
  }
  getList()
}
const handleSelectionChange = (val) => {