Просмотр исходного кода

feat(speaking): add types for class answer panel

jimmylee 2 месяцев назад
Родитель
Сommit
fe51ab211b
1 измененных файлов с 31 добавлено и 0 удалено
  1. 31 0
      src/views/Student/components/SpeakingClassPanel/types.ts

+ 31 - 0
src/views/Student/components/SpeakingClassPanel/types.ts

@@ -0,0 +1,31 @@
+import type { ClassSessionSummary } from '@/services/speaking'
+
+/** 班级花名册中的一条学生信息(来自 PPT 后端 selectWorksStudent) */
+export interface ClassStudent {
+  userid: string
+  name: string
+  classid?: string
+}
+
+/** 三态 UI 状态 */
+export type ClassStudentStatus = 'submitted' | 'unsubmitted' | 'not_started'
+
+/** 学生卡片渲染所需的合并数据 */
+export interface ClassStudentSummary {
+  userId: string
+  name: string
+  status: ClassStudentStatus
+  /** 仅 submitted 状态有效 */
+  overallScore: number | null
+  /** 用于点击下钻;未开始为 null */
+  sessionId: string | null
+  /** 用于排序时间正/倒序 */
+  createdAt: string | null
+  completedAt: string | null
+  /** 后端原始 session 状态(用于 modal 内分支) */
+  rawStatus: ClassSessionSummary['status'] | null
+  /** 报告就绪状态 */
+  overallStatus: ClassSessionSummary['overallStatus']
+}
+
+export type Locale = 'zh' | 'en' | 'hk'