From b0229cb264a86f4da4878de62d9d718f3d06a0b6 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Fri, 3 Oct 2025 02:03:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E9=A2=98=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 17 +++++ package.json | 1 + src/admin/problem/list.vue | 5 +- src/oj/api.ts | 13 ++-- src/oj/contest/list.vue | 7 +- .../problem/components/ProblemSubmission.vue | 4 +- src/oj/problem/list.vue | 72 +++++++++++-------- src/oj/submission/list.vue | 30 ++++---- src/shared/components/Hitokoto.vue | 4 +- 9 files changed, 95 insertions(+), 58 deletions(-) diff --git a/package-lock.json b/package-lock.json index 804fa8b..870d74e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@codemirror/lang-cpp": "^6.0.3", "@codemirror/lang-python": "^6.2.1", "@vueuse/core": "^13.9.0", + "@vueuse/router": "^13.9.0", "@wangeditor-next/editor": "^5.6.46", "@wangeditor-next/editor-for-vue": "^5.1.14", "axios": "^1.12.2", @@ -1530,6 +1531,22 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/@vueuse/router": { + "version": "13.9.0", + "resolved": "https://registry.npmmirror.com/@vueuse/router/-/router-13.9.0.tgz", + "integrity": "sha512-7AYay8Pv/0fC4D0eygbIyZuLyVs+9D7dsnO5D8aqat9qcOz91v/XFWR667WE1+p+OkU0ib+FjQUdnTVBNoIw8g==", + "license": "MIT", + "dependencies": { + "@vueuse/shared": "13.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0", + "vue-router": "^4.0.0" + } + }, "node_modules/@vueuse/shared": { "version": "13.9.0", "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.9.0.tgz", diff --git a/package.json b/package.json index 06cad14..f32fdec 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "@codemirror/lang-cpp": "^6.0.3", "@codemirror/lang-python": "^6.2.1", "@vueuse/core": "^13.9.0", + "@vueuse/router": "^13.9.0", "@wangeditor-next/editor": "^5.6.46", "@wangeditor-next/editor-for-vue": "^5.1.14", "axios": "^1.12.2", diff --git a/src/admin/problem/list.vue b/src/admin/problem/list.vue index ce02838..336deb2 100644 --- a/src/admin/problem/list.vue +++ b/src/admin/problem/list.vue @@ -7,6 +7,7 @@ import { AdminProblemFiltered } from "~/utils/types" import { getProblemList, toggleProblemVisible } from "../api" import Actions from "./components/Actions.vue" import Modal from "./components/Modal.vue" +import { useRouteQuery } from "@vueuse/router" interface Props { contestID?: string @@ -38,7 +39,7 @@ interface ProblemQuery { // 使用分页 composable const { query, clearQuery } = usePagination({ - keyword: "", + keyword: useRouteQuery("keyword", "").value, }) const columns: DataTableColumn[] = [ @@ -152,7 +153,7 @@ watch( 从题库中选择
- +
diff --git a/src/oj/api.ts b/src/oj/api.ts index b99e08e..8ae8543 100644 --- a/src/oj/api.ts +++ b/src/oj/api.ts @@ -56,6 +56,10 @@ export async function getProblemList( } } +export function getAuthors() { + return http.get("problem/author") +} + export function getRandomProblemID() { return http.get("pickone") } @@ -84,7 +88,7 @@ export function submitCode(data: SubmitCodePayload) { return http.post("submission", data) } -export function getSubmissions(params: SubmissionListPayload) { +export function getSubmissions(params: Partial) { const endpoint = !!params.contest_id ? "contest_submissions" : "submissions" return http.get(endpoint, { params }) } @@ -249,13 +253,10 @@ export function getAIDetailData(start: string, end: string) { return http.get("ai/detail", { params: { start, end } }) } -export function getAIWeeklyData( - end: string, - duration: string, -) { +export function getAIWeeklyData(end: string, duration: string) { return http.get("ai/weekly", { params: { end, duration } }) } export function getAIHeatmapData() { return http.get("ai/heatmap") -} \ No newline at end of file +} diff --git a/src/oj/contest/list.vue b/src/oj/contest/list.vue index cf2269e..47d529a 100644 --- a/src/oj/contest/list.vue +++ b/src/oj/contest/list.vue @@ -1,4 +1,5 @@