From 66aadfe3ffb9ec1cb18806ed924141a628b19417 Mon Sep 17 00:00:00 2001 From: wangziqi Date: Sun, 5 Jul 2026 20:31:53 +0800 Subject: [PATCH] fix: I2 add studentNo to class listing, I4 replace attendance edit placeholder with working edit modal --- apps/admin/src/pages/Attendance/index.tsx | 43 +++++++++++++++++++++- apps/server/src/classes/classes.service.ts | 1 + 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/apps/admin/src/pages/Attendance/index.tsx b/apps/admin/src/pages/Attendance/index.tsx index a8a69376..f247eb13 100644 --- a/apps/admin/src/pages/Attendance/index.tsx +++ b/apps/admin/src/pages/Attendance/index.tsx @@ -131,6 +131,31 @@ const AttendancePage: React.FC = () => { const [studentSearchResults, setStudentSearchResults] = useState<{ id: number; name: string }[]>([]); const [studentSearchLoading, setStudentSearchLoading] = useState(false); + // Edit modal + const [editModalOpen, setEditModalOpen] = useState(false); + const [editRecord, setEditRecord] = useState(null); + const [editForm] = Form.useForm(); + + + // ── Edit record ── + const handleEdit = (record: AttendanceRecordItem) => { + setEditRecord(record); + editForm.setFieldsValue({ session: record.session, status: record.status, remark: record.remark }); + setEditModalOpen(true); + }; + + const handleEditSubmit = async () => { + try { + const values = await editForm.validateFields(); + await api.put(`/attendance-records/${editRecord!.id}`, values); + message.success('更新成功'); + setEditModalOpen(false); + fetchRecords(); + } catch (e: any) { + message.error(e?.message || '更新失败'); + } + }; + // ── Fetch classes ── const fetchClasses = useCallback(async () => { try { @@ -343,7 +368,7 @@ const AttendancePage: React.FC = () => { width: 80, fixed: 'right' as const, render: (_: unknown, record: AttendanceRecordItem) => ( - message.info('编辑功能开发中')}> + handleEdit(record)}> 编辑 ), @@ -625,6 +650,22 @@ const AttendancePage: React.FC = () => { + + {/* ── Edit modal ── */} + setEditModalOpen(false)}> +
+ + + + + + +
+
+ ); }; diff --git a/apps/server/src/classes/classes.service.ts b/apps/server/src/classes/classes.service.ts index 0551541e..53ed306a 100644 --- a/apps/server/src/classes/classes.service.ts +++ b/apps/server/src/classes/classes.service.ts @@ -68,6 +68,7 @@ export class ClassesService { id: s.id, studentId: s.studentId, studentName: s.student?.name, + studentNo: s.student?.studentNo, joinDate: s.joinDate, leaveDate: s.leaveDate, status: s.status,