From ff46cc24356b2cd2f23ab3cd7892e61b682d2b8c Mon Sep 17 00:00:00 2001
From: 祖安之光 <11848914+light-of-zuan@user.noreply.gitee.com>
Date: Mon, 11 May 2026 10:03:42 +0800
Subject: [PATCH] 主线提交
---
src/views/onlineEducation/groupExams/components/student.vue | 132 +++++++++++++++++++++++++++++++++++++-------
1 files changed, 111 insertions(+), 21 deletions(-)
diff --git a/src/views/onlineEducation/groupExams/components/student.vue b/src/views/onlineEducation/groupExams/components/student.vue
index ba9af7d..e44bda8 100644
--- a/src/views/onlineEducation/groupExams/components/student.vue
+++ b/src/views/onlineEducation/groupExams/components/student.vue
@@ -1,25 +1,55 @@
<template>
<div class="app-container">
- <div style="margin-bottom: 10px;display: flex;align-items: center;justify-content: space-between">
+ <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.state"
+ 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="primary"
+ type="danger"
plain
- icon="Plus"
- @click="openDialog()"
- >选择学员</el-button>
+ icon="Delete"
+ @click="handleDeleteBatch"
+ >批量删除</el-button>
<el-button
type="primary"
plain
@click="back"
>返回</el-button>
</div>
- <el-button
- type="danger"
- plain
- icon="Delete"
- @click="handleDeleteBatch"
- >批量删除</el-button>
+
</div>
<!-- 表格数据 -->
<el-table ref="tableRef" v-loading="loading" :data="dataList" :border="true" :row-key="getRowKey" @selection-change="handleSelectionChange">
@@ -40,23 +70,29 @@
<span>{{scope.row.student.phone}}</span>
</template>
</el-table-column>
- <el-table-column label="考试是否完成" prop="completed" align="center" >
+ <el-table-column label="试卷状态" prop="state" align="center" >
<template #default="scope">
- <span>{{scope.row.completed ===0 ? '未完成' : '已完成'}}</span>
+ <span>{{scope.row.state ===0 ? '待考试' : scope.row.state ===1 ? '待批阅':'批阅完成'}}</span>
</template>
</el-table-column>
+<!-- <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>
+ <span>{{scope.row.state ===0 || scope.row.state ===1 ? '--' : scope.row.score}}</span>
</template>
</el-table-column>
<el-table-column label="是否合格" prop="passed" align="center" >
<template #default="scope">
- <span>{{scope.row.completed ===0 ? '--' : scope.row.passed === 0 ? '不合格' : '合格'}}</span>
+ <span>{{scope.row.state ===0 || scope.row.state ===1 ? '--' : scope.row.passed === 0 ? '不合格' : '合格'}}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
<template #default="scope">
+ <el-button link type="primary" @click="correct(scope.row)" v-if="scope.row.state != 0">批阅</el-button>
<el-button link type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
@@ -93,19 +129,49 @@
const data = reactive({
queryParams: {
paperId: null,
+ studentName: '',
+ state: null,
pageNum: 1,
pageSize: 10,
},
total: 0,
dataList: [],
isAdmin: false,
- chooseStu: []
+ chooseStu: [],
+ completeList: [
+ {
+ id: 0,
+ name: '待考试'
+ },
+ {
+ id: 1,
+ name: '待批阅'
+ },
+ {
+ id: 2,
+ name: '批阅完成'
+ },
+ ]
});
const { queryParams, total, dataList } = toRefs(data);
+const backValue = ref()
onMounted(async ()=>{
+
+ if(route.query.val){
+ const val = JSON.parse(route.query.val)
+ if(val.type == 'index'){
+ data.queryParams.pageNum = val.pageNum;
+ data.queryParams.pageSize = val.pageSize;
+ data.queryParams.paperId = val.id
+ }else {
+ data.queryParams.paperId = val.paperId
+ data.queryParams.pageNum = val.pageNum;
+ data.queryParams.pageSize = val.pageSize;
+ }
+ }
const userInfo = JSON.parse(Cookies.get('userInfo'))
console.log("userInfo",userInfo)
if(userInfo.userType === 0){
@@ -113,9 +179,6 @@
}else {
data.isAdmin = false;
}
- const val = JSON.parse(route.query.val)
- // data.queryParams.pageId = val.id
- data.queryParams.paperId = val.id
await getList()
})
onUnmounted(()=>{
@@ -127,7 +190,15 @@
}
const back = () => {
- router.push("/group");
+ // router.push("/group");
+
+ const obj = {
+
+ pageNum: data.queryParams.pageNum,
+ pageSize: data.queryParams.pageSize,
+ }
+ const v = JSON.stringify(obj)
+ router.push({ path: "/group", query: { val: v } });
}
const getList = async () => {
loading.value = true
@@ -147,13 +218,32 @@
/** 重置新增的表单以及其他数据 */
function reset() {
- proxy.resetForm("roleRef");
+ data.queryParams = {
+ paperId: data.queryParams.paperId,
+ studentName: '',
+ state: null,
+ pageNum: 1,
+ pageSize: 10,
+ }
+ getList()
}
const handleSelectionChange = (val) => {
console.log("选中的行", val)
data.chooseStu = val.map(item => item.id)
}
+
+const correct = (val) => {
+ const obj = {
+ id: val.id,
+ paperId: data.queryParams.paperId,
+ pageNum: data.queryParams.pageNum,
+ pageSize: data.queryParams.pageSize,
+ state: val.state
+ }
+ const v = JSON.stringify(obj)
+ router.push({ path: "/correctExam", query: { val: v } });
+}
const handleDelete = (val) => {
ElMessageBox.confirm(
'确定删除此条数据?',
--
Gitblit v1.9.2