Skip to content

ui更改 - #8

Merged
heathcetide merged 68 commits into
LingByte:mainfrom
1628755394:main
Aug 31, 2026
Merged

ui更改#8
heathcetide merged 68 commits into
LingByte:mainfrom
1628755394:main

Conversation

@1628755394

Copy link
Copy Markdown

No description provided.

17793426456 and others added 30 commits August 30, 2026 22:00
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 后端新增 UserQuota 和 UserCheckIn 模型
- 注册赠送 180 分钟额度,每日签到赠送 60 分钟
- 新增 GET /quota 和 POST /quota/check-in 接口
- 前端个人中心页面新增额度展示与签到按钮

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

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 解决 internal/app/database.go、internal/models/users.go、web/src/pages/CoachCenter.tsx 冲突
- 移除自定义 UserQuota/UserCheckIn 模型和 quota handler,改用上游 TeacherCheckIn
- 安装 xlsx 依赖以支持上游自定义词库功能

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

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- CreateAntiForgetting 页面移除抗遗忘次数选择(3/5/7/10次)
- 改为根据当前曲线预设展示各次复习的具体日期(月/日 周X)
- 提示用户如需调整次数请前往学员管理页面
- StudentDetail 页面已有抗遗忘次数设置,无需新增

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

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
- 后端 review/today 新增 all=true 参数:忽略日期,返回所有已学待复习单词
- 前端 review API getReviewToday 新增 all 选项
- ReviewWordList 支持 all=1 查询参数,limit 提升至 500
- WordTraining 开始复习按钮改为 all=1,复习所有已学单词
- 后端 completeReviewSession 已有逻辑:✓ 推进一个格子(stage+1),✗ 不推进(同stage重新排期)

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

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
问题:编辑已有文字时,Leafer Text 元素在 textarea 后面仍可见,
删除文字后按 Enter,背后的旧文字还在显示,点击其他地方才消失。

修复:
- startTextEditing 时隐藏背后的 Leafer Text 元素 (visible=false)
- finishTextEditing 时:
  - 有内容 → 更新文字并恢复显示 (visible=true)
  - 空内容 → 直接 remove 并 forceUpdate,立即从画布消失
- 不再依赖 updateTextContent/removeTextElement 间接调用
visible=false 在 Leafer 中可能不生效,改为直接清空 Text 的 text 内容,
编辑时背后不显示任何旧文字,保存时再写回新内容。
1. 文字不可拖动:
   - createTextElement 中 draggable: false
   - 工具切换时跳过 Text 元素,不设置 draggable

2. 输入像文档:
   - 回车键插入换行
   - 用 Ctrl/Cmd+Enter 或点击外部/ESC 结束编辑
   - 移除 rows={1},textarea 支持多行
   - whiteSpace: pre-wrap 允许自动换行
1. 文字区域占满面板宽度:
   - 添加 TEXT_MARGIN / TEXT_FIRST_ROW 常量
   - 新增 getTextWidth() 计算容器宽度 - 边距
   - 文字 X 固定在 8,宽度占满

2. Leafer Text 启用 textWrap: "break",自动在宽度边界换行

3. textarea 固定宽度 textOverlay.width,并设置 wordBreak: break-word

4. 新建/编辑文字都从第一行、左边界开始
- TEXT_MARGIN 从 8 改为 0
- 文字从 x=0 开始
- 宽度为容器完整 clientWidth
- getTextWidth 改用 getBoundingClientRect().width 获取实际渲染宽度
- textarea width 改为 100%,确保始终占满画板
- 移除固定像素宽度限制
- finishTextEditing 保存时重新调用 getTextWidth() 获取当前宽度
- 新建/编辑文字都重新对齐到 x=0,宽度占满
- 编辑已有文字时 y 保持原位置,x 移到 0,宽度更新为当前画板宽
- 拆分边距:TEXT_LEFT_MARGIN = 48(避开蓝色活页环)
- TEXT_RIGHT_MARGIN = 8
- 文字从 x=48 开始,宽度 = 画板宽 - 48 - 8
- textarea 宽度恢复为 textOverlay.width(跟随计算)
- 把 ■■■ 分散方块改成单个连续 bg-[#4ECDC4] 色块
- 宽度按原来字数比例计算,整段连在一起
- 拉取 LingByte/CloudSteps 最新代码(公众号图文管理、雪花ID、i18n等)
- 本地修改的文件(LeaferCanvas、StudyNotePanel、PostTrainingCheck等)保留本地版本
- 单词卡片小屏下改为垂直堆叠布局
- 操作按钮小屏下缩小为 32px
- 笔记按钮在小屏下仅显示图标
- 底部工具栏小屏紧凑排列并隐藏部分文字
- FlashReview、PreTrainingCheck、ListenIdentify、WordPractice、ReviewWordList、ReviewCheck 删除每个单词卡片上的 StudyNoteLauncher
- 以上页面完成手机端响应式布局(垂直堆叠、小按钮、紧凑工具栏)
- 统一操作按钮尺寸 size-8/9 和图标大小 18
- 每段从0升到end,再从end-1降到1
- 去掉旧算法中重复的0,0和末尾多余的0
- 仅最后一段(end=wordCount-1)回退到0,其余段降到1
- FlashReview、ListenIdentify、WordPractice 的下一页右箭头按钮
- 小屏下 fixed 定位,大屏保持 absolute
- 手机端隐藏底部工具栏中的前进按钮
- 新增固定右下角的前进箭头按钮
- WordPractice、ListenIdentify、FlashReview、PostTrainingCheck、PreTrainingCheck、ReviewCheck、ReviewWordList
- 浮动箭头按钮从 bottom-20 调整为 bottom-16
- ReviewCheck 修复 JSX 片段结构
- NoteSplitLayout/StudyNoteSplitLayout: 添加 mt-6,min-h 调整为 calc(100dvh-11rem)
- WordPractice/ReviewWordList: min-h 调整为 calc(100dvh-11rem)
- VocabularyTest/Result/Testing: py-* 改为 mt-6
- WordTraining: mt-8/mt-16/pt-2 统一为 mt-6
- ClozePractice/GrammarAnalysis/ReadingComprehension: py-3/py-6 改为 mt-6
@heathcetide
heathcetide merged commit 8eb9e50 into LingByte:main Aug 31, 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