diff --git a/.api/safetyEval-classStudentExamRecord-page-get/spec.json b/.api/safetyEval-classStudentExamRecord-page-get/spec.json
deleted file mode 100644
index 6629dcc..0000000
--- a/.api/safetyEval-classStudentExamRecord-page-get/spec.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- "openapi": "3.0.1",
- "info": {
- "title": "分页查询学员考试记录",
- "description": "同步自 Apifox(学员考试记录),int64 主键按前端精度规范落为 string",
- "version": "1.0.0"
- },
- "paths": {
- "/safetyEval/classStudentExamRecord/page": {
- "get": {
- "summary": "分页查询学员考试记录",
- "tags": ["学员考试记录"],
- "parameters": [
- {
- "name": "current",
- "in": "query",
- "description": "当前页(默认1)",
- "required": false,
- "schema": { "type": "integer", "default": 1 }
- },
- {
- "name": "size",
- "in": "query",
- "description": "每页条数(默认10)",
- "required": false,
- "schema": { "type": "integer", "default": 10 }
- },
- {
- "name": "classId",
- "in": "query",
- "description": "所属班级ID(后端 Long;前端按字符串保证精度)",
- "required": false,
- "schema": { "type": "string" }
- },
- {
- "name": "studentId",
- "in": "query",
- "description": "学员ID(后端 Long;前端按字符串保证精度)",
- "required": false,
- "schema": { "type": "string" }
- },
- {
- "name": "examId",
- "in": "query",
- "description": "试卷id(后端 Long;前端按字符串保证精度)",
- "required": false,
- "schema": { "type": "string" }
- },
- {
- "name": "passed",
- "in": "query",
- "description": "是否通过(0-未通过,1-通过)",
- "required": false,
- "schema": { "type": "integer" }
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": { "$ref": "#/components/schemas/PageResponseClassStudentExamRecordVO" }
- }
- }
- }
- }
- }
- }
- },
- "components": {
- "schemas": {
- "PageResponseClassStudentExamRecordVO": {
- "type": "object",
- "properties": {
- "success": { "type": "boolean", "description": "是否成功" },
- "code": { "type": "string", "description": "响应码" },
- "message": { "type": "string", "description": "响应消息" },
- "errMessage": { "type": "string", "description": "错误响应消息" },
- "data": {
- "type": "array",
- "description": "响应数据",
- "items": { "$ref": "#/components/schemas/ClassStudentExamRecordVO" }
- },
- "total": { "type": "integer", "description": "总条数" }
- }
- },
- "ClassStudentExamRecordVO": {
- "type": "object",
- "description": "学员考试记录",
- "properties": {
- "id": { "type": "string", "description": "主键" },
- "studentId": { "type": "string", "description": "学员ID(后端 Long;前端按字符串保证精度)" },
- "studentName": { "type": "string", "description": "学员名称" },
- "classId": { "type": "string", "description": "所属班级ID(后端 Long;前端按字符串保证精度)" },
- "paperName": { "type": "string", "description": "试卷名称" },
- "paperId": { "type": "string", "description": "试卷id(后端 Long;前端按字符串保证精度)" },
- "score": { "type": "number", "description": "得分" },
- "passed": { "type": "integer", "description": "是否通过(0-未通过,1-通过)" },
- "wrongCount": { "type": "integer", "description": "错误题数" },
- "accuracy": { "type": "number", "description": "正确率(百分比)" },
- "startTime": { "type": "string", "description": "考试开始时间" },
- "endTime": { "type": "string", "description": "考试结束时间" },
- "className": { "type": "string", "description": "app: 班级名称" },
- "examDurationMinutes": { "type": "integer", "description": "app: 考试时长分钟" }
- }
- }
- }
- }
-}
diff --git a/.api/safetyEval-classStudentExamRecord-page-get/type.d.ts b/.api/safetyEval-classStudentExamRecord-page-get/type.d.ts
deleted file mode 100644
index f8ac543..0000000
--- a/.api/safetyEval-classStudentExamRecord-page-get/type.d.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * GET /safetyEval/classStudentExamRecord/page —— 分页查询学员考试记录
- * 契约见同目录 spec.json
- */
-
-/** 分页查询入参 */
-export interface ClassStudentExamRecordPageQuery {
- /** 当前页(默认1) */
- current?: number;
- /** 每页条数(默认10) */
- size?: number;
- /** 所属班级ID(后端 Long;前端按字符串保证精度) */
- classId?: string;
- /** 学员ID(后端 Long;前端按字符串保证精度) */
- studentId?: string;
- /** 试卷id(后端 Long;前端按字符串保证精度) */
- examId?: string;
- /** 是否通过(0-未通过,1-通过) */
- passed?: number;
-}
-
-/** 学员考试记录 */
-export interface ClassStudentExamRecordVO {
- /** 主键 */
- id?: string;
- /** 学员ID(后端 Long;前端按字符串保证精度) */
- studentId?: string;
- /** 学员名称 */
- studentName?: string;
- /** 所属班级ID(后端 Long;前端按字符串保证精度) */
- classId?: string;
- /** 试卷名称 */
- paperName?: string;
- /** 试卷id(后端 Long;前端按字符串保证精度) */
- paperId?: string;
- /** 得分 */
- score?: number;
- /** 是否通过(0-未通过,1-通过) */
- passed?: number;
- /** 错误题数 */
- wrongCount?: number;
- /** 正确率(百分比) */
- accuracy?: number;
- /** 考试开始时间 */
- startTime?: string;
- /** 考试结束时间 */
- endTime?: string;
- /** app: 班级名称 */
- className?: string;
- /** app: 考试时长分钟 */
- examDurationMinutes?: number;
-}
-
-/** 响应体 */
-export interface PageResponseClassStudentExamRecordVO {
- success?: boolean;
- code?: string;
- message?: string;
- errMessage?: string;
- data?: ClassStudentExamRecordVO[];
- total?: number;
-}
diff --git a/.api/safetyEval-classStudentLearningRecord-page-get/spec.json b/.api/safetyEval-classStudentLearningRecord-page-get/spec.json
deleted file mode 100644
index 7903268..0000000
--- a/.api/safetyEval-classStudentLearningRecord-page-get/spec.json
+++ /dev/null
@@ -1,122 +0,0 @@
-{
- "openapi": "3.0.1",
- "info": {
- "title": "分页查询学员学习记录",
- "description": "同步自 Apifox(学员学习记录),int64 主键按前端精度规范落为 string",
- "version": "1.0.0"
- },
- "paths": {
- "/safetyEval/classStudentLearningRecord/page": {
- "get": {
- "summary": "分页查询学员学习记录",
- "tags": ["学员学习记录"],
- "parameters": [
- {
- "name": "current",
- "in": "query",
- "description": "当前页(默认1)",
- "required": false,
- "schema": { "type": "integer", "default": 1 }
- },
- {
- "name": "size",
- "in": "query",
- "description": "每页条数(默认10)",
- "required": false,
- "schema": { "type": "integer", "default": 10 }
- },
- {
- "name": "classId",
- "in": "query",
- "description": "所属班级ID(后端 Long;前端按字符串保证精度)",
- "required": false,
- "schema": { "type": "string" }
- },
- {
- "name": "studentId",
- "in": "query",
- "description": "学员ID(后端 Long;前端按字符串保证精度)",
- "required": false,
- "schema": { "type": "string" }
- },
- {
- "name": "courseId",
- "in": "query",
- "description": "课程ID(后端 Long;前端按字符串保证精度)",
- "required": false,
- "schema": { "type": "string" }
- },
- {
- "name": "studyStatus",
- "in": "query",
- "description": "学习状态:0-未学习,1-学习中,2-已完成",
- "required": false,
- "schema": { "type": "integer" }
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/PageResponseClassStudentLearningRecordVO"
- }
- }
- }
- }
- }
- }
- }
- },
- "components": {
- "schemas": {
- "PageResponseClassStudentLearningRecordVO": {
- "type": "object",
- "properties": {
- "success": { "type": "boolean", "description": "是否成功" },
- "code": { "type": "string", "description": "响应码" },
- "message": { "type": "string", "description": "响应消息" },
- "errMessage": { "type": "string", "description": "错误响应消息" },
- "data": {
- "type": "array",
- "description": "响应数据",
- "items": {
- "$ref": "#/components/schemas/ClassStudentLearningRecordVO"
- }
- },
- "total": { "type": "integer", "description": "总条数" }
- }
- },
- "ClassStudentLearningRecordVO": {
- "type": "object",
- "description": "学员学习记录(节点级)",
- "properties": {
- "id": { "type": "string", "description": "主键" },
- "studentId": {
- "type": "string",
- "description": "学员ID(后端 Long;前端按字符串保证精度)"
- },
- "classId": {
- "type": "string",
- "description": "所属班级ID(后端 Long;前端按字符串保证精度)"
- },
- "courseId": {
- "type": "string",
- "description": "课程ID(后端 Long;前端按字符串保证精度)"
- },
- "courseName": { "type": "string", "description": "课程名称" },
- "coursewareName": { "type": "string", "description": "小节点名称" },
- "studyStatus": {
- "type": "integer",
- "description": "学习状态:0-未学习,1-学习中,2-已完成"
- },
- "learningProgress": { "type": "string", "description": "学习情况" },
- "startTime": { "type": "string", "description": "开始学习时间" },
- "endTime": { "type": "string", "description": "完成时间" },
- "lastWatchTime": { "type": "string", "description": "最近观看时间" }
- }
- }
- }
- }
-}
diff --git a/.api/safetyEval-classStudentLearningRecord-page-get/type.d.ts b/.api/safetyEval-classStudentLearningRecord-page-get/type.d.ts
deleted file mode 100644
index e61c157..0000000
--- a/.api/safetyEval-classStudentLearningRecord-page-get/type.d.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * GET /safetyEval/classStudentLearningRecord/page —— 分页查询学员学习记录
- * 契约见同目录 spec.json
- */
-
-/** 分页查询入参 */
-export interface ClassStudentLearningRecordPageQuery {
- /** 当前页(默认1) */
- current?: number;
- /** 每页条数(默认10) */
- size?: number;
- /** 所属班级ID(后端 Long;前端按字符串保证精度) */
- classId?: string;
- /** 学员ID(后端 Long;前端按字符串保证精度) */
- studentId?: string;
- /** 课程ID(后端 Long;前端按字符串保证精度) */
- courseId?: string;
- /** 学习状态:0-未学习,1-学习中,2-已完成 */
- studyStatus?: number;
-}
-
-/** 学员学习记录(节点级) */
-export interface ClassStudentLearningRecordVO {
- /** 主键 */
- id?: string;
- /** 学员ID(后端 Long;前端按字符串保证精度) */
- studentId?: string;
- /** 所属班级ID(后端 Long;前端按字符串保证精度) */
- classId?: string;
- /** 课程ID(后端 Long;前端按字符串保证精度) */
- courseId?: string;
- /** 课程名称 */
- courseName?: string;
- /** 小节点名称 */
- coursewareName?: string;
- /** 学习状态:0-未学习,1-学习中,2-已完成 */
- studyStatus?: number;
- /** 学习情况 */
- learningProgress?: string;
- /** 开始学习时间 */
- startTime?: string;
- /** 完成时间 */
- endTime?: string;
- /** 最近观看时间 */
- lastWatchTime?: string;
-}
-
-/** 分页响应体 */
-export interface PageResponseClassStudentLearningRecordVO {
- success?: boolean;
- code?: string;
- message?: string;
- errMessage?: string;
- data?: ClassStudentLearningRecordVO[];
- total?: number;
-}
diff --git a/src/api/courseware/index.js b/src/api/courseware/index.js
index d5d615f..2297818 100644
--- a/src/api/courseware/index.js
+++ b/src/api/courseware/index.js
@@ -210,3 +210,9 @@ export const classStudentExamRecordPage = declareRequest(
"Get > /safetyEval/classStudentExamRecord/page",
"examRecordList: [] | res.data || [] & examRecordTotal: 0 | res.total || 0",
);
+
+/** 考试试卷信息查询(按考试记录id,含试题列表及参考答案) */
+export const studentExamPaperInfo = declareRequest(
+ "studentExamPaperLoading",
+ "Get > /safetyEval/paperExam/exam/info",
+);
diff --git a/src/enumerate/constant/index.js b/src/enumerate/constant/index.js
index cf13b9f..1dd61db 100644
--- a/src/enumerate/constant/index.js
+++ b/src/enumerate/constant/index.js
@@ -710,8 +710,8 @@ export const CLASS_STUDENT_FACE_AUTH_MAP = {
export const CLASS_STUDENT_STUDY_STATUS_OPTIONS = [
{ label: "未学习", value: 0 },
{ label: "学习中", value: 1 },
- { label: "已学完", value: 2 },
- { label: "已完成", value: 3 },
+
+ { label: "已完成", value: 2 },
];
export const CLASS_STUDENT_STUDY_STATUS_MAP = CLASS_STUDENT_STUDY_STATUS_OPTIONS.reduce(
@@ -743,7 +743,7 @@ export const CLASS_STUDENT_EXAM_STATUS_OPTIONS = [
{ label: "待考试", value: 1 },
{ label: "考试未通过", value: 2 },
{ label: "考试通过", value: 3 },
- { label: "未参加", value: 4 },
+
];
export const CLASS_STUDENT_EXAM_STATUS_MAP = CLASS_STUDENT_EXAM_STATUS_OPTIONS.reduce(
diff --git a/src/pages/Container/EduTraining/ClassManage/Add/StudentTab.js b/src/pages/Container/EduTraining/ClassManage/Add/StudentTab.js
index 42df093..79806d8 100644
--- a/src/pages/Container/EduTraining/ClassManage/Add/StudentTab.js
+++ b/src/pages/Container/EduTraining/ClassManage/Add/StudentTab.js
@@ -5,6 +5,7 @@ import SearchForm from "~/components/SearchForm";
import TableAction from "@cqsjjb/jjb-react-admin-component/TableAction";
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { NS_COURSEWARE } from "~/enumerate/namespace";
+
import StaffViewModal from "~/components/StaffViewModal";
import {
CLASS_STUDENT_EXAM_STATUS_OPTIONS,
@@ -32,7 +33,7 @@ const buildQuery = (value) => {
/** 班级详情 — 学员 Tab:班级学员查询 */
function ClassStudentTab(props) {
- const { classId } = props;
+ const { classId, form } = props;
const [searchForm] = Form.useForm();
const [query, setQuery] = useState({ current: 1, size: 10 });
const [selectOpen, setSelectOpen] = useState(false);
@@ -228,7 +229,7 @@ function ClassStudentTab(props) {
rowKey="id"
columns={columns}
dataSource={tableSource}
- scroll={{ x: 1400 }}
+ scroll={{ x: 1400, y: 400 }}
loading={loading}
pagination={{
total,
@@ -265,6 +266,7 @@ function ClassStudentTab(props) {
studentName: userName,
department: deptName,
phone: account,
+ examStatus: form.getFieldValue("openExam"),
studentId: studentId || id,
fileNumber: fileNumber|| id,
unitName: unitName,
@@ -395,4 +397,4 @@ function StudentSelectModal({
);
}
-export default Connect([NS_COURSEWARE], true)(ClassStudentTab);
+export default Connect([NS_COURSEWARE], true)((ClassStudentTab) );
diff --git a/src/pages/Container/EduTraining/ClassManage/Add/index.js b/src/pages/Container/EduTraining/ClassManage/Add/index.js
index b9f2875..459a6c4 100644
--- a/src/pages/Container/EduTraining/ClassManage/Add/index.js
+++ b/src/pages/Container/EduTraining/ClassManage/Add/index.js
@@ -297,7 +297,7 @@ function ClassAddPage(props) {
label: "学员",
disabled: !unlocked,
children: unlocked ? (
-