Files
LanMountainDesktop/.trae/specs/class-schedule-enhancement/spec.md
lincube bcf4be6d50 0.6.1
课表组件修复。加入最近文档组件。
2026-03-16 15:19:46 +08:00

2.6 KiB

课程表组件功能优化规格说明书

Why

当前课程表组件存在以下问题:

  1. 单双周课程解析逻辑存在缺陷,无法正确识别单周/双周/每周模式
  2. 课程无法动态移动,第一列始终显示进行中的课程,但存在无法正常移动的问题
  3. 缺少用户拖动交互功能
  4. 缺少拖动后的自动复位机制

What Changes

  • 修复 ClassIsland 课程单双周解析逻辑
  • 实现课程动态移动机制(当前课程结束自动上移)
  • 实现课程表上下拖动交互功能
  • 实现自动复位功能(课程结束后视图复位到最新进行中课程)

Impact

Affected specs

  • 课程表组件功能规范

Affected code

  • Services/ClassIslandScheduleDataService.cs - 课表解析服务
  • Views/Components/ClassScheduleWidget.axaml.cs - 课表组件

ADDED Requirements

Requirement: 单双周课程解析

系统 SHALL 能够正确解析包含单双周信息的课程数据。

Scenario: 单周课程

  • WHEN 课程设置为单周上课
  • THEN 课程仅在单周显示

Scenario: 双周课程

  • WHEN 课程设置为双周上课
  • THEN 课程仅在双周显示

Scenario: 每周课程

  • WHEN 课程设置为每周上课
  • THEN 课程在所有周显示

Requirement: 课程动态移动

系统 SHALL 实现课程的动态移动机制。

Scenario: 课程结束自动上移

  • WHEN 当前进行中的课程结束
  • THEN 课程列表自动向上移动
  • AND THEN 下一个进行中或即将开始的课程移至视图可见区域

Scenario: 新课程移入视图

  • WHEN 新的课程即将开始
  • THEN 该课程自动移至视图可见区域

Scenario: 当日课程全部结束

  • WHEN 当日所有课程已结束
  • THEN 自动显示次日课程表

Requirement: 拖动交互功能

系统 SHALL 提供课程表的上下拖动功能。

Scenario: 拖动查看课程

  • WHEN 用户在课程表区域进行上下拖动
  • THEN 课程列表随拖动方向滚动
  • AND THEN 拖动操作流畅、响应及时

Requirement: 自动复位功能

系统 SHALL 在用户手动拖动后自动复位到当前课程。

Scenario: 当前课程结束触发复位

  • WHEN 用户手动拖动课程表后,当前课程结束
  • THEN 视图自动复位到显示最新进行中课程的位置

MODIFIED Requirements

Requirement: 课程解析逻辑

当前: 单双周解析可能存在缺陷

修改后: 正确识别 WeekCountDiv 和 WeekCountDivTotal 参数,准确判断单周/双周/每周模式


REMOVED Requirements

(无)