Skip to content

Commit d6c0169

Browse files
author
CodeJudge
committed
feat: 提交记录按题目筛选
1 parent 6a7eff2 commit d6c0169

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

frontend/src/pages/Submissions.tsx

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ const PAGE_SIZE = 15;
4040
export default function Submissions() {
4141
const [statusFilter, setStatusFilter] = useState('');
4242
const [languageFilter, setLanguageFilter] = useState('');
43+
const [problemIdFilter, setProblemIdFilter] = useState('');
4344
const [page, setPage] = useState(1);
4445
const [data, setData] = useState<PaginatedResponse<SubmissionType> | null>(
4546
null
@@ -58,6 +59,7 @@ export default function Submissions() {
5859
};
5960
if (statusFilter) params.status = statusFilter;
6061
if (languageFilter) params.language = languageFilter;
62+
if (problemIdFilter) params.problem_id = Number(problemIdFilter);
6163
const res = await api.submissions.list(params);
6264
setData(res);
6365
} catch (err: any) {
@@ -67,7 +69,7 @@ export default function Submissions() {
6769
} finally {
6870
setLoading(false);
6971
}
70-
}, [page, statusFilter, languageFilter]);
72+
}, [page, statusFilter, languageFilter, problemIdFilter]);
7173

7274
useEffect(() => {
7375
fetchSubmissions();
@@ -150,6 +152,21 @@ export default function Submissions() {
150152
</button>
151153
</div>
152154

155+
{/* Problem ID filter */}
156+
<div className="flex gap-2 mb-4">
157+
<input
158+
type="number"
159+
min="1"
160+
value={problemIdFilter}
161+
onChange={e => {
162+
setProblemIdFilter(e.target.value);
163+
setPage(1);
164+
}}
165+
placeholder="按题目ID筛选..."
166+
className="input w-40 text-sm"
167+
/>
168+
</div>
169+
153170
{/* Status filter */}
154171
<div className="flex flex-wrap gap-1 mb-2">
155172
{STATUS_FILTERS.map((opt) => (

0 commit comments

Comments
 (0)