From 9ef7af0dd14ea6053fd60e34f525280c8c6b909f Mon Sep 17 00:00:00 2001 From: liyy <18435186204@163.com> Date: Tue, 1 Sep 2026 14:59:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E9=A2=98=E5=BA=93?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/api/index.ts | 6 + client/src/views/questions/QuestionsView.vue | 1143 +++++++++++++++++- docs/checks/task-07.md | 93 ++ server/src/errors.ts | 4 + server/src/handlers/news.ts | 1 - server/src/handlers/questions.ts | 119 +- server/src/routes.ts | 6 + server/src/schemas/api.ts | 6 + server/src/server.ts | 11 + 9 files changed, 1381 insertions(+), 8 deletions(-) create mode 100644 docs/checks/task-07.md diff --git a/client/src/api/index.ts b/client/src/api/index.ts index bf49d01..42e21df 100644 --- a/client/src/api/index.ts +++ b/client/src/api/index.ts @@ -40,6 +40,11 @@ export type PlanReview = SuccessBody export type StudyPlanItem = SuccessBody['tasks'][number] export type NewsItem = SuccessBody['items'][number] export type ImportResult = SuccessBody +export type QuestionListItem = SuccessBody['items'][number] +export type QuestionListPage = SuccessBody +export type QuestionImportBody = BodyOf<'/api/questions/import', 'post'> +export type QuestionExport = SuccessBody +export type QuestionRefs = SuccessBody // ---- 数据中枢 ---- export const dashboardApi = { @@ -123,6 +128,7 @@ export const questionsApi = { importQuestions: (body: BodyOf<'/api/questions/import', 'post'>) => unwrap(apiClient.POST('/api/questions/import', { body })), exportQuestions: () => unwrap(apiClient.GET('/api/questions/export')), + refs: (id: string) => unwrap(apiClient.GET('/api/questions/{id}/refs', { params: { path: { id } } })), remove: (id: string) => unwrap(apiClient.DELETE('/api/questions/{id}', { params: { path: { id } } })) } diff --git a/client/src/views/questions/QuestionsView.vue b/client/src/views/questions/QuestionsView.vue index 553e1ca..4b077a4 100644 --- a/client/src/views/questions/QuestionsView.vue +++ b/client/src/views/questions/QuestionsView.vue @@ -1,7 +1,1146 @@