diff --git a/apps/admin/src/pages/Deposits/deposit-student-option.integration.test.ts b/apps/admin/src/pages/Deposits/deposit-student-option.integration.test.ts index b876ebe..92041e8 100644 --- a/apps/admin/src/pages/Deposits/deposit-student-option.integration.test.ts +++ b/apps/admin/src/pages/Deposits/deposit-student-option.integration.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest'; -import { buildDepositStudentOption } from './deposit-student-option'; +import { buildDepositStudentOption, buildDepositStudentOptions } from './deposit-student-option'; describe('deposit student option', () => { it('uses the student number as the non-sensitive identifier', () => { @@ -17,4 +17,13 @@ describe('deposit student option', () => { label: '张三 (#23)', }); }); + + it('uses lookup rows without requiring a status field', () => { + expect(buildDepositStudentOptions([{ id: 23, name: '张三', studentNo: 'S2026001' }])).toEqual([ + { + value: 23, + label: '张三 (S2026001)', + }, + ]); + }); }); diff --git a/apps/admin/src/pages/Deposits/deposit-student-option.ts b/apps/admin/src/pages/Deposits/deposit-student-option.ts index 732d6b2..3346453 100644 --- a/apps/admin/src/pages/Deposits/deposit-student-option.ts +++ b/apps/admin/src/pages/Deposits/deposit-student-option.ts @@ -8,3 +8,6 @@ export const buildDepositStudentOption = (student: DepositStudentLookup) => ({ value: student.id, label: `${student.name} (${student.studentNo || `#${student.id}`})`, }); + +export const buildDepositStudentOptions = (students: DepositStudentLookup[]) => + students.map(buildDepositStudentOption); diff --git a/apps/admin/src/pages/Deposits/index.tsx b/apps/admin/src/pages/Deposits/index.tsx index bc37853..b1911e7 100644 --- a/apps/admin/src/pages/Deposits/index.tsx +++ b/apps/admin/src/pages/Deposits/index.tsx @@ -19,7 +19,7 @@ import dayjs from 'dayjs'; import api from '../../api'; import PermissionButton from '../../components/PermissionButton'; import { message } from '../../ui/app-message'; -import { buildDepositStudentOption } from './deposit-student-option'; +import { buildDepositStudentOptions } from './deposit-student-option'; const statusMap: Record = { paid: { text: '已缴', color: 'green' }, @@ -86,10 +86,7 @@ const DepositsPage: React.FC = () => { }, [data, searchText, filterStatus]); const studentOptions = useMemo( - () => - students - .filter((s: any) => s.status === 'active') - .map(buildDepositStudentOption), + () => buildDepositStudentOptions(students), [students], );