Commit Graph

19 Commits

Author SHA1 Message Date
d0c8ff4e47 refactor(meeting): 优化学生详情查询接口并修复数据库字段映射
- 将返回类型从 StudentListResponseDto 改为直接返回 StudentDetailResponseDto 数组
- 移除不必要的包装对象,简化数据结构
- 修复数据库表 meeting_user 中的字段名映射,统一使用下划线命名规范
- 更新 SQL 查询中的字段引用以匹配正确的数据库列名
- 简化服务层的数据处理逻辑,提高查询效率
2026-03-14 18:19:08 +08:00
3686bf1c1f feat(meeting): 添加学生列表排序功能
- 实现学生列表拖拽排序并保存到 Redis
- 添加 WebSocket 消息类型支持学生排序变更
- 在教师端界面添加学生列表排序按钮和对话框
- 修改数据传输方式以支持排序信息同步
- 更新 API 接口以传递房间 ID 获取排序数据
- 添加 Redis 存储学生排序顺序的功能
2026-03-14 18:11:31 +08:00
ff6dde5f4d feat(meeting): 添加通过作业ID查询学生详细信息功能
- 在MeetingController中新增getStudentDetails方法,支持通过作业ID查询学生信息
- 添加StudentDetailResponseDto和StudentListResponseDto数据传输对象
- 实现getStudentDetailsByHomeworkId服务方法,支持长短ID映射和自动分配
- 优化SQL查询逻辑,支持批量插入缺失的短ID
- 添加相应的API文档注解和参数验证
2026-03-14 14:52:18 +08:00
b04877be8d chore(lint): 禁用 TypeScript 类型构成排序规则
- 添加 '@typescript-eslint/sort-type-constituents': 'off' 配置
- 允许类型定义中的成员按需排列而不强制排序
- 避免因类型排序导致的代码风格冲突
2026-03-14 14:25:53 +08:00
36ae77d9f0 refactor(entities): 移除多个实体类定义
- 移除了 IcrBookarticle 实体类及其数据库表结构定义
- 移除了 IcrBookassigntask 实体类及其数据库表结构定义
- 移除了 IcrBookcatalog 实体类及其数据库表结构定义
- 移除了 IcrBookcategory 实体类及其数据库表结构定义
- 移除了 IcrBookpage 实体类及其数据库表结构定义
- 移除了 IcrBookpagearea 实体类及其数据库表结构定义
- 移除了 IcrBookpagequestion 实体类及其数据库表结构定义
- 移除了 IcrBooks 实体类及其数据库表结构定义
- 移除了 IcrClasscourse 实体类及其数据库表结构定义
- 移除了 IcrClassdatacollect 实体类及其数据库表结构定义
- 移除了 IcrClassrelationtemplate 实体类及其数据库表结构定义
- 移除了 IcrClassrelationtemplatedetail 实体类及其数据库表结构定义
- 移除了 IcrClassroomansweringresult 实体类及其数据库表结构定义
- 移除了 IcrClassroomcourse 实体类及其数据库表结构定义
- 移除了 IcrClassroomcourseplan 实体类及其数据库表结构定义
- 移除了 IcrClassroomcoursequestion 实体类及其数据库表结构定义
- 移除了 IcrClassroomquestion 实体类及其数据库表结构定义
- 移除了 IcrClassroomquestionpackage 实体类及其数据库表结构定义
- 移除了 IcrClassroomquestionpackageitem 实体类及其数据库表结构定义
2026-03-14 14:24:39 +08:00
0150dc3ccb feat(database): 配置 MikroORM 实体生成器处理 bigint 类型
- 导入 EntityMetadata 和 Platform 类型定义
- 添加 entityGenerator 配置选项
- 实现 onProcessedMetadata 回调函数
- 将数据库 bigint 类型转换为 TypeScript number 类型
- 保留原始列类型信息用于数据库操作
2026-03-14 14:24:09 +08:00
c59a3c798d refactor(entities): 更新 mikro-orm 配置文件位置和命令参数
- 将 mikro-orm.config.ts 移动到 src 目录下
- 更新 generate-entities 命令的配置文件路径参数
- 移除废弃的 migrate 和 mikro-orm 命令脚本
- 修改 tsconfig.json 中的 include 配置以包含新的配置文件位置
2026-03-14 13:20:00 +08:00
bd97919256 feat(entities): 集成 MikroORM 并配置实体文件规则
- 添加 MikroORM CLI 和实体生成器依赖包
- 配置 ESLint 规则以适配 MikroORM 生成的实体文件
- 添加 mikro-orm 和 generate-entities 命令脚本
- 更新 pnpm 锁定文件包含新依赖项
- 移除手动创建的 meeting-user 实体文件,改用 ORM 自动生成
2026-03-14 13:02:51 +08:00
b4ef771a39 fix(meeting): 修复会议室学生网格布局计算逻辑
- 修正 gridRows 和 gridCols 计算函数的命名与逻辑错误
- 调整学生人数与网格行列数的对应关系
- 添加 16:9 宽高比设置以统一视频显示比例
- 优化控制台日志输出的代码格式
- 修复加入会议时对已存在用户的处理逻辑
2026-03-14 12:29:12 +08:00
f5963f3203 fix(meeting): 解决学生端加入会议时已存在用户视频未播放问题
- 加入会议后检查已存在的远程用户列表
- 为已存在的每个用户调用视频播放确保函数
- 添加调试日志显示已存在用户的 UID 信息
- 确保主次视频窗口及所有远程用户视频正常播放
2026-03-14 11:23:09 +08:00
726a8026be fix(meeting): 解决会议房间学生端事件监听器内存泄漏问题
- 在离开房间时移除 socket 的 message 事件监听器
- 添加声网客户端事件监听器的清理逻辑
- 确保在房间切换和组件卸载时完全清理所有事件监听器
- 避免重复创建声网客户端实例时保留旧监听器
- 修复了可能造成内存泄漏的事件监听器残留问题
2026-03-14 11:19:11 +08:00
1c64968b5e chore(deps): 更新项目依赖包版本
- 升级 webpack-cli 从 6.0.1 到 7.0.0 版本
- 更新 @discoveryjs/json-ext 从 0.6.3 到 1.0.0 版本
- 升级 commander 从 12.1.0 到 14.0.3 版本
- 更新 stylelint-order 从 8.0.0 到 8.1.0 版本
- 升级 vite-plugin-vue-devtools 从 8.0.7 到 8.1.0 版本
- 更新 @vue/devtools-core 从 8.0.7 到 8.1.0 版本
- 升级 @vue/devtools-kit 和 @vue/devtools-shared 到 8.1.0 版本
- 更新 @vue/shared 从 3.5.29 到 3.5.30 版本
- 优化会议房间学生端视频播放逻辑,添加 nextTick 等待 DOM 更新
- 重构声网会议初始化逻辑,清理旧客户端监听器防止重复注册
- 修改远程视频播放策略,移除自动播放改为业务层手动控制
2026-03-14 11:11:36 +08:00
69fa8df1ad fix(meeting-room): 修复本地视频未正确播放的问题并改进控制栏样式
修复本地视频流在特定条件下未正确渲染到播放器元素的问题,通过添加 ensureLocalVideoPlaying 函数并在 selfWindowUid 变化时调用。
同时重构控制栏样式,将其改为绝对定位并更新颜色、间距和悬停效果,以提升视觉一致性和用户体验。
2026-03-13 18:02:33 +08:00
3ac83f1b94 feat(meeting): 支持房间结束时间管理及投屏双流模式
- 新增房间结束时间字段,支持老师端设置和续期
- 实现投屏双流模式,老师可同时展示摄像头和屏幕共享
- 学生端支持切换主画面显示摄像头或投屏内容
- 优化屏幕共享实现,使用独立声网客户端避免轨道冲突
- 增加设备冲突检测逻辑,区分教室端、监控端和学生端入口
2026-03-13 17:45:51 +08:00
d09d3645ea feat: 支持监控端进入并优化登录态验证
- 允许教师从加入页面选择进入监控端或课堂端
- 修改登录态验证逻辑,仅检查 Redis 中是否存在 token 而非严格相等,以支持同一账号多端登录
- 监控端默认不发布本地音视频轨道,但可通过配置动态启用
- 优化 WebSocket 鉴权失败处理,自动跳转登录页
2026-03-13 14:45:01 +08:00
bd31d23bda feat(meeting): 新增学生端和监控端会议页面
- 在路由中新增学生端和监控端页面路由
- 修改加入会议逻辑,根据角色跳转到不同页面
- 新增监控端页面,支持多学生画面宫格布局
- 新增学生端页面,支持主画面显示和本地视频小窗拖拽
- 扩展 useAgoraMeeting hook 支持禁用本地音视频轨道
- 更新悬浮列表窗口的会议和字幕创建函数参数
- 添加课程和评讲信息的存储常量
2026-03-13 13:08:30 +08:00
745dc0e8fa feat: 新增浮动列表窗口和弹出窗口功能
添加浮动列表窗口,支持拖拽、吸附和折叠功能,包含课程互动和辅导工具菜单
新增弹出窗口,提供主窗口、画板和退出等快捷操作
优化窗口创建逻辑,添加日志记录和焦点设置
2026-03-13 11:32:05 +08:00
3d215110fa chore: 添加图标图片资源
添加用于界面交互的返回、非全屏和全屏图标图片。
2026-03-13 11:05:00 +08:00
78af453fe1 chore: 初始化项目基础结构和资源文件
- 添加项目图标文件(app-icon.png、各平台图标)
- 配置开发环境文件(.env、.nvmrc、.npmrc)
- 添加静态资源文件(背景图片、字体、音频)
- 初始化Tauri后端结构(build.rs、main.rs、模块文件)
- 配置前端项目结构(TypeScript、Vue组件、样式)
- 添加Node.js API服务基础结构
- 配置构建和开发工具(vite、prettier、gitignore)
2026-03-13 10:03:05 +08:00