From b09d4798930cfcc1b91b3d0c350de02ef2d4d752 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Tue, 3 Nov 2026 09:05:23 +0800 Subject: [PATCH] =?UTF-8?q?style(=E8=AF=BE=E5=A0=82=E4=BB=BB=E5=8A=A1):=20?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E5=88=97=E8=A1=A8=E5=88=86=E6=B8=85=E5=86=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E3=80=81=E5=85=88=E7=94=BB=E5=86=8D=E5=86=99?= =?UTF-8?q?=E3=80=81=E7=94=BB=E6=B5=81=E7=A8=8B=E5=9B=BE=EF=BC=8C=E8=83=BD?= =?UTF-8?q?=E6=8C=89=E5=81=9A=E6=B3=95=E7=AD=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原来写代码当默认值不写出来,只剩「C语言」「Python」,看着和别的分不开。 现在三种都用不同颜色的标签写出来,筛选多一个「做什么」。 Co-Authored-By: Claude Opus 5.5 --- apps/api/src/routes/admin/lesson.ts | 9 +++++-- apps/web/src/admin/api.ts | 4 +-- apps/web/src/admin/task/list.vue | 41 +++++++++++++++++++++-------- 3 files changed, 39 insertions(+), 15 deletions(-) diff --git a/apps/api/src/routes/admin/lesson.ts b/apps/api/src/routes/admin/lesson.ts index 67916a0..fe853ef 100644 --- a/apps/api/src/routes/admin/lesson.ts +++ b/apps/api/src/routes/admin/lesson.ts @@ -1,4 +1,4 @@ -import { adminLessonRequestSchema, STUDENT_ROLES, type AdminLessonList, type AdminLessonRequest } from '@oj2/contract' +import { adminLessonRequestSchema, lessonModeSchema, STUDENT_ROLES, type AdminLessonList, type AdminLessonRequest } from '@oj2/contract' import { and, count, desc, eq, inArray, sql } from 'drizzle-orm' import { Hono } from 'hono' @@ -24,7 +24,12 @@ adminLessonRoutes.get('/lessons', requireTeacher, async (c) => { const offset = queryInteger(c.req.query('offset'), 0, { min: 0 }) const className = c.req.query('className')?.trim() const teacherId = queryInteger(c.req.query('teacher'), 0, { min: 0 }) - const where = and(className ? eq(schema.classLesson.className, className) : undefined, teacherId ? eq(schema.classLesson.createdBy, teacherId) : undefined) + const mode = lessonModeSchema.safeParse(c.req.query('mode')).data + const where = and( + className ? eq(schema.classLesson.className, className) : undefined, + teacherId ? eq(schema.classLesson.createdBy, teacherId) : undefined, + mode ? eq(schema.classLesson.mode, mode) : undefined, + ) const [rows, [totalRow], teachers] = await Promise.all([ db diff --git a/apps/web/src/admin/api.ts b/apps/web/src/admin/api.ts index 02088c4..18a1179 100644 --- a/apps/web/src/admin/api.ts +++ b/apps/web/src/admin/api.ts @@ -786,9 +786,9 @@ export function deleteAchievement(id: number) { // ---------- 课堂任务(class_lesson) ---------- -export function getAdminLessons(offset: number, limit: number, filters: { className: string; teacher: number | null }) { +export function getAdminLessons(offset: number, limit: number, filters: { className: string; teacher: number | null; mode: string }) { return api.get('admin/lessons', { - params: { offset, limit, className: filters.className, teacher: filters.teacher ?? '' }, + params: { offset, limit, className: filters.className, teacher: filters.teacher ?? '', mode: filters.mode }, }) } diff --git a/apps/web/src/admin/task/list.vue b/apps/web/src/admin/task/list.vue index 99ad161..7890f23 100644 --- a/apps/web/src/admin/task/list.vue +++ b/apps/web/src/admin/task/list.vue @@ -1,8 +1,8 @@