From eab086a8744022741831f9b7aacb0c68c4ecd35f Mon Sep 17 00:00:00 2001
From: tangjie <122778500@qq.com>
Date: Mon, 24 Aug 2026 11:46:24 +0800
Subject: [PATCH] feat
---
.../EduTraining/ClassManage/Add/CourseTab.js | 4 +-
.../ClassManage/Add/PaperConfig.js | 62 ++++++++-----------
.../EduTraining/ClassManage/Add/StudentTab.js | 29 ++++++---
.../EduTraining/ClassManage/Add/index.js | 2 +-
4 files changed, 48 insertions(+), 49 deletions(-)
diff --git a/src/pages/Container/EduTraining/ClassManage/Add/CourseTab.js b/src/pages/Container/EduTraining/ClassManage/Add/CourseTab.js
index 2c3fc62..e379e29 100644
--- a/src/pages/Container/EduTraining/ClassManage/Add/CourseTab.js
+++ b/src/pages/Container/EduTraining/ClassManage/Add/CourseTab.js
@@ -17,7 +17,7 @@ const formatVideoDuration = (hours) => {
/** 班级详情 — 课程 Tab:班级课程查询 */
function ClassCourseTab(props) {
- const { classId } = props;
+ const { classId, history } = props;
const [searchForm] = Form.useForm();
const [query, setQuery] = useState({ current: 1, size: 10 });
const [selectOpen, setSelectOpen] = useState(false);
@@ -84,7 +84,7 @@ function ClassCourseTab(props) {
diff --git a/src/pages/Container/EduTraining/ClassManage/Add/PaperConfig.js b/src/pages/Container/EduTraining/ClassManage/Add/PaperConfig.js
index 44b4afa..402de11 100644
--- a/src/pages/Container/EduTraining/ClassManage/Add/PaperConfig.js
+++ b/src/pages/Container/EduTraining/ClassManage/Add/PaperConfig.js
@@ -68,6 +68,8 @@ function ClassPaperConfig(props) {
/** 班级已绑定的试卷 id(来自班级详情) */
const [paperId, setPaperId] = useState("");
const [configOpen, setConfigOpen] = useState(false);
+ /** 新增/编辑试卷弹窗开关 */
+ const [addOpen, setAddOpen] = useState(false);
/** 试卷详情/预览弹窗展示的试卷 id */
const [previewPaperId, setPreviewPaperId] = useState("");
@@ -95,18 +97,12 @@ function ClassPaperConfig(props) {
setPreviewPaperId(id)}
- onBound={loadClassPaper}
+ onAdd={() => setAddOpen(true)}
resetModelState={props.resetModelState}
onClose={() => setConfigOpen(false)}
/>
@@ -120,6 +116,25 @@ function ClassPaperConfig(props) {
resetModelState={props.resetModelState}
onClose={() => setPreviewPaperId("")}
/>
+
+ setPreviewPaperId(id)}
+ resetModelState={props.resetModelState}
+ onCancel={() => setAddOpen(false)}
+ onSuccess={() => {
+ setAddOpen(false);
+ loadClassPaper();
+ }}
+ />
>
);
}
@@ -127,28 +142,20 @@ function ClassPaperConfig(props) {
/** 配置试卷弹窗:已绑定时展示试卷信息(查看/编辑/下载),未绑定时提供新增 */
function PaperConfigModal({
open,
- classId,
paperId,
paper,
- courseware,
basicLoading,
fetchBasicInfo,
- paperPage,
- paperRuleGenerate,
- coursewarePage,
- classBindPaper,
onPreview,
- onBound,
+ onAdd,
resetModelState,
onClose,
}) {
const [basicInfo, setBasicInfo] = useState(null);
- const [addOpen, setAddOpen] = useState(false);
// 打开且有绑定试卷时才查询基本信息;paperId 变化(换绑)后重新查询
useEffect(() => {
if (!open) {
- setAddOpen(false);
resetModelState?.(NS_PAPER, { paperBasicLoading: false });
return;
}
@@ -187,7 +194,7 @@ function PaperConfigModal({
@@ -224,7 +231,7 @@ function PaperConfigModal({
type="primary"
icon={}
style={{ marginBottom: 12 }}
- onClick={() => setAddOpen(true)}
+ onClick={() => onAdd()}
>
新增
@@ -245,25 +252,6 @@ function PaperConfigModal({
),
}}
/>
-
- setAddOpen(false)}
- onSuccess={() => {
- setAddOpen(false);
- onBound();
- }}
- />
);
}
diff --git a/src/pages/Container/EduTraining/ClassManage/Add/StudentTab.js b/src/pages/Container/EduTraining/ClassManage/Add/StudentTab.js
index 41cdfa8..cfaf100 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,
CLASS_STUDENT_FACE_AUTH_MAP,
@@ -35,6 +36,7 @@ function ClassStudentTab(props) {
const [searchForm] = Form.useForm();
const [query, setQuery] = useState({ current: 1, size: 10 });
const [selectOpen, setSelectOpen] = useState(false);
+ const [viewId, setViewId] = useState("");
const {
classStudentList: dataSource,
classStudentTotal: total,
@@ -106,7 +108,7 @@ function ClassStudentTab(props) {
title: "操作人",
dataIndex: "createName",
width: 100,
-
+
},
{
title: "操作",
@@ -117,7 +119,9 @@ function ClassStudentTab(props) {
@@ -225,7 +229,11 @@ function ClassStudentTab(props) {
},
}}
/>
-
+ setViewId("")}
+ />
item.phone)}
+ tableSource={tableSource}
onOk={async (rows) => {
// 批量新增班级学员
const res = await props.classStudentBatchSave(
- rows.map(({ userName, deptName, account }) => ({
+ rows.map(({ userName, deptName, account, fileNumber, id }) => ({
classId,
studentName: userName,
department: deptName,
phone: account,
+ fileNumber: fileNumber|| id,
})),
);
if (res?.success === false) return;
@@ -263,19 +272,21 @@ function StudentSelectModal({
dataSource,
total,
requestPage,
- selectedPhones,
+ tableSource,
onOk,
onCancel,
}) {
const [query, setQuery] = useState({ current: 1, size: 10 });
const [keyword, setKeyword] = useState("");
const [selectedRows, setSelectedRows] = useState([]);
+ const ids= tableSource.map(item=>item.fileNumber);
+
const handleSearch = (params) => {
setQuery(params);
requestPage({
- ...params,
- employmentStatusCode: 1,
+ ...params,
+ employmentStatusCode: 1,
});
};
@@ -345,7 +356,7 @@ function StudentSelectModal({
preserveSelectedRowKeys: true,
selectedRowKeys: selectedRows.map((r) => r.id),
getCheckboxProps: (record) => ({
- disabled: selectedPhones.includes(record.account),
+ disabled: ids.includes(record.fileNumber || record.id),
}),
onChange: (_, rows) => setSelectedRows(rows),
}}
diff --git a/src/pages/Container/EduTraining/ClassManage/Add/index.js b/src/pages/Container/EduTraining/ClassManage/Add/index.js
index bf136db..db60bb1 100644
--- a/src/pages/Container/EduTraining/ClassManage/Add/index.js
+++ b/src/pages/Container/EduTraining/ClassManage/Add/index.js
@@ -275,7 +275,7 @@ function ClassAddPage(props) {
label: "课程",
disabled: !unlocked,
children: unlocked ? (
-
+
) : null,
},
]}