diff --git a/playground/src/api/service/org/classroom-monitor.ts b/playground/src/api/service/org/classroom-monitor.ts index e05c1d7..79ef29a 100644 --- a/playground/src/api/service/org/classroom-monitor.ts +++ b/playground/src/api/service/org/classroom-monitor.ts @@ -150,6 +150,31 @@ class ClassroomMonitorService { `/school/classMonitor/heartbeat?classId=${encodeURIComponent(String(classId))}`, ) } + + /** 教师共享屏幕测试:开启 */ + async startTeacherShareScreen( + classId: number | string, + ip: string, + port: number, + ) { + return await post('/school/teacherScreenShare/startTeacherShareScreen', { + classId, + ip, + port, + }) + } + + /** 教师共享屏幕测试:结束 */ + async stopTeacherShareScreen(classId: number | string) { + return await post('/school/teacherScreenShare/stopTeacherShareScreen', { + classId, + }) + } + + /** 教师共享屏幕测试:心跳(建议每 60 秒) */ + async teacherShareScreenHeartbeat(classId: number | string) { + return await post('/school/teacherScreenShare/heartbeat', { classId }) + } } export const classroomMonitorService = new ClassroomMonitorService() diff --git a/playground/src/types/global.d.ts b/playground/src/types/global.d.ts index 1bdbbe3..2e1348b 100644 --- a/playground/src/types/global.d.ts +++ b/playground/src/types/global.d.ts @@ -8,15 +8,17 @@ interface Window { teacherApi?: { startSfu: () => Promise<{ port: number; already?: boolean }> stopSfu: () => Promise - /** 可选传入班级学员列表与班级名称;名称用于教师端共享窗口标题「{名称} - 屏幕共享」。 */ + /** 可选传入班级学员列表、班级名称与班级 id;名称用于教师端共享窗口标题「{名称} - 屏幕共享」,id 用于教师端业务与心跳。 */ openScreenShareWindow: ( classStudentRows?: unknown[], className?: string, + classId?: string | number, ) => Promise - /** 打开学员屏幕监控独立窗口(teacher-electron) */ + /** 打开学员屏幕监控独立窗口(teacher-electron);名称用于窗口标题,班级 id 下发至监控页。 */ openStudentScreenMonitorWindow?: ( classStudentRows?: unknown[], className?: string, + classId?: string | number, ) => Promise setShareClassStudentsListener?: ( cb: ((rows: unknown[]) => void) | null, diff --git a/playground/src/views/org/classroom-monitor/home.vue b/playground/src/views/org/classroom-monitor/home.vue index 4bbab19..667f08a 100644 --- a/playground/src/views/org/classroom-monitor/home.vue +++ b/playground/src/views/org/classroom-monitor/home.vue @@ -45,6 +45,7 @@ const studentSnapshotPreviewList = computed(() => { }) const SNAPSHOT_REFRESH_INTERVAL = 5000 const MONITOR_HEARTBEAT_INTERVAL = 60 * 1000 + let snapshotRefreshTimer: ReturnType | undefined let heartbeatTimer: ReturnType | undefined @@ -273,10 +274,10 @@ async function openTeacherScreenShareWindow(item: ClassroomItem) { classId: item.id, }) const rows = (page as any)?.data?.rows ?? page?.rows ?? [] - await api.openScreenShareWindow(rows, item.name ?? '') - } catch (e) { - console.error(e) - throw e + await api.openScreenShareWindow(rows, item.name ?? '', item.id) + } catch (error) { + console.error(error) + throw error } }, error: async () => { @@ -300,10 +301,10 @@ async function openStudentScreenMonitorWindow(item: ClassroomItem) { classId: item.id, }) const rows = (page as any)?.data?.rows ?? page?.rows ?? [] - await openMon(rows, item.name ?? '') - } catch (e) { - console.error(e) - throw e + await openMon(rows, item.name ?? '', item.id) + } catch (error) { + console.error(error) + throw error } }, error: async () => { diff --git a/playground/vite.config.mts b/playground/vite.config.mts index c95546e..45c9570 100644 --- a/playground/vite.config.mts +++ b/playground/vite.config.mts @@ -33,8 +33,8 @@ export default defineConfig(async () => { open: true, proxy: { '/api': { - target: 'http://43.136.52.196:9053', - // target: 'https://admin.lingxixue.com', + // target: 'http://43.136.52.196:9053', + target: 'https://tiku.lingxixue.com', changeOrigin: true, }, },