Skip to content

feat:解决文档需求 - #13

Merged
heathcetide merged 29 commits into
LingByte:mainfrom
1628755394:main
Sep 7, 2026
Merged

heathcetide merged 29 commits into
LingByte:mainfrom
1628755394:main

Conversation

@1628755394

Copy link
Copy Markdown

No description provided.

17793426456 and others added 29 commits September 3, 2026 10:46
按节次网格 + 单双周 + 起止周过滤实现仿学习通课表:
- CSS Grid 节次网格,课程色块跨行渲染
- 周切换、回到本周、点击空白格快速新增
- 课程增删改查弹窗,含校验
- localStorage 持久化,仓储抽象层预留后端 HTTP 实现
- 导出 Excel(xlsx 动态导入拆 chunk)、打印
- 中英 i18n、侧栏/底栏导航入口

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
将 /lesson-prep(备课)原 CoachingSchedulePanel 时间轴排课替换为
节次网格课表,撤掉上一提交新增的独立 /timetable 路由与导航项,
避免重复入口。备课导航即课表入口。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
将 CoachingSchedulePanel 的时间轴周历改为学习通式节次网格:
- 左侧节次 1-12,课程/预约色块跨节渲染(CSS Grid)
- 后端教练预约按 startTime/endTime 自动映射到节次
- localStorage 自定义课程与后端预约合并显示在同一网格
- 点后端预约块走原弹窗(上下课/删除),点自定义课程块走编辑弹窗
- 点空白格新增自定义课程,点表头仍跳转创建排课
- 周切换保持真实日历周,保留全部排课/上下课功能

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
为表头、节次标签和空白单元格指定显式网格行列,避免课程色块占位后触发 CSS Grid 自动布局,导致第 4 节及之后的节次标签跑到其他星期列。同步使用明确的预约状态颜色映射。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
降低手机端课表的最小宽度、节次行高、表头与课程文字尺寸,并收紧周切换控件,让七天课表尽量在手机屏幕内完整展示,减少横向滚动和过大的视觉占用。桌面端布局保持不变。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
将备课页课表容器最大宽度从 1200px 调整为 1600px,使大屏环境下课表充分利用可用空间,减少右侧空白并提升整体可读性;移动端布局保持不变。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
增加移动端内容底部安全空间,压缩固定操作栏间距并适配安全区,同时上移提交悬浮按钮,避免底栏遮挡单词卡和按钮重叠。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- CoachingSchedulePanel 增加当前周高亮、冲突检测、空状态提示

- 课程项增加类型标签和状态标签

- 新增 schedule_hint、schedule_type、empty_schedule 等文案

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 每个复习任务卡片右侧增加开始复习按钮

- 复用 practice.start_review 文案,与课后检测一致

- 无可复习单词时按钮禁用

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 时间方块从 pt-1 顶部对齐改为 items-center 垂直居中

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- AntiForgetting: 时间方块从 justify-end 改为 justify-center,水平垂直居中

- PreTrainingCheck: 手机端 ✓× 按钮通过 justify-end 靠右对齐

- PreTrainingCheck: 桌面端底部间距从 pb-24 改为 pb-20 sm:pb-24,消除多余空隙

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 时间方块使用固定 w-12 并启用 flex justify-center

- 保持时间文字在方块和时间列中水平居中

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 时间方块向右平移半个自身宽度

- 使方块中心与左侧时间轴竖线水平对齐

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 点击色块进入拼写输入

- 点击单词卡片空白区域切换中文显示与隐藏

- 保留拓展按钮事件,避免空白区域逻辑影响拓展功能

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 在相邻复习任务之间增加 border-border/50 淡色底线

- 覆盖同一时间段和不同时间段之间的复习项

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 将复习项之间的分隔线提高为 2px 实色主题边框

- 提升相邻复习任务的视觉区分度

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 抵消时间轴容器的水平内边距

- 保持内容位置不变,让分隔线贴近卡片左右边界

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 同日同节次重叠课程自动分栏显示,避免色块堆叠

- 已完成和过去课程改用彩色状态色,不再使用灰色背景

- 提高课程背景和边框颜色的可见度

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 将开始复习按钮移至整条记录右侧并垂直居中

- 增加复习记录悬停背景反馈

- 增加按钮 hover 变深和 active 按下反馈

- 为内容预留按钮空间,避免信息重叠

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 增加复习记录上下留白,改善时间轴内容密度

- 分割线、竖线、连接线和时间方块统一使用主题 primary 色

- 调整日期卡片边框和背景,增强整体层次

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
将标题改为「抗遗忘时间设置」,移除冗长的介绍段落,仅保留学员信息。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
移除「曲线:…」文本及相关未使用的导入与变量。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 后端:StudySession 新增 BilledMinutes 字段用于幂等控制
- 后端:handleStudySessionComplete 完成训后检测时扣减 60 分钟(1课时)
- 后端:coachingCompleteAppointment 不再扣减学员额度,仅保留老师计费
- 前端(web):学员额度展示从分钟改为课时(÷60),新增 formatLessons
- 前端(admin):额度面板展示改为课时,输入按课时×60换算
- i18n:学员管理相关文案从"分钟"改为"课时"
- 同时提交此前未提交的课堂评价精简改动

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
/review/today 在非今日日期过滤时,anchor 口径与 /review/books-by-date 不一致:
列表侧使用 first_learned_at → practiceStartedAt → dueAt,
而取词侧仅使用 first_learned_at → dueAt,缺少 practiceStartedAt 回退。
当 first_learned_at 为空时,两侧曲线投影到不同日期,导致列表显示 10 词但点开 0 词。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 进行中(in_progress):只显示「21:00-」,不再默认显示计划结束时间
- 已完成(completed):显示 session.endedAt 的实际结束时间
- 已排定(scheduled):保持显示计划时段

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
将 selectedCount 替换为从 words 派生的 wrongCount,
右下角数量只显示标记为❌的单词数,不再把✓也计入。

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 后端:下课(coachingCompleteAppointment)时按实际分钟扣减学员额度
- 后端:移除训后检测完成时扣1课时的逻辑
- 后端:移除 StudySession.BilledMinutes 字段
- 后端:简化 review.go 的 due 锚点计算,移除 practiceStartedAt 联查
- 前端/admin:额度显示从「课时」改回「分钟」
- 前端:移除 formatLessons/lessonsToMinutes/minutesToLessons 工具函数
- i18n:更新课时相关文案为分钟

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
合并上游 LingByte/CloudSteps 最新代码,解决以下冲突:
- internal/handlers/study_session_report.go:保留上游丰富的 label 格式与 DTO,同时保留简化的课堂评价 prompt
- web/src/pages/PreTrainingCheck.tsx:采用上游的 shrink-0 布局
- web/src/pages/PostTrainingCheck.tsx:保留 openSpellFromBlock 拼写交互逻辑

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@heathcetide
heathcetide merged commit 27b1fb1 into LingByte:main Sep 7, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants