feat: 完善工作台展示场景 - 新增 Modal/Toast 组件、EmptyState 使用、确认弹窗、筛选分页
- 新增 Modal 确认弹窗组件和 Toast 消息提示组件 - 在 SkillsPage、LogsPage、TasksPage、ProjectsPage 使用 EmptyState - 为删除任务、取消订阅、移除成员、技能订阅添加确认弹窗 - 丰富聊天场景:代码展示、表格数据、多轮对话、错误提示 - 优化 ChatPage 布局,修复对话区域滚动问题 - 为 ProjectsPage 添加筛选卡片和分页组件 - 添加表单校验错误状态展示 - 同步 specs 到主目录
This commit is contained in:
@@ -2,7 +2,7 @@ schema: spec-driven
|
||||
|
||||
context: |
|
||||
- 交流、文档、注释、提交信息使用中文,代码命名使用英文
|
||||
- 纯前端原型项目,无后端交互,供内部开发人员参考UI界面使用,目标在于展示页面布局、样式和组件能力
|
||||
- 纯前端展示原型项目(非功能原型),无后端交互,供内部开发人员参考UI界面使用,目标在于展示页面布局、样式和组件能力
|
||||
- 允许轻量级交互展示(如表单验证、弹框),状态展示策略:不重叠的状态通过静态数据驱动展示,重叠/覆盖类状态(弹框、下拉、抽屉等)允许简单交互切换
|
||||
- 示例数据应精心设计,展示不同的页面元素状态
|
||||
- 不引入UI库,使用当前SCSS样式方案
|
||||
|
||||
33
openspec/specs/chat-scenarios/spec.md
Normal file
33
openspec/specs/chat-scenarios/spec.md
Normal file
@@ -0,0 +1,33 @@
|
||||
## Purpose
|
||||
|
||||
定义聊天界面中各类对话场景的展示规范。
|
||||
|
||||
## Requirements
|
||||
|
||||
### Requirement: 代码展示场景
|
||||
系统 SHALL 在聊天界面展示包含代码高亮的对话场景。
|
||||
|
||||
#### Scenario: 代码生成对话
|
||||
- **WHEN** 用户在对话列表中选择"代码生成"场景
|
||||
- **THEN** 页面展示包含代码块的对话内容,代码块具有语法高亮样式
|
||||
|
||||
### Requirement: 表格数据场景
|
||||
系统 SHALL 在聊天界面展示包含表格数据的对话场景。
|
||||
|
||||
#### Scenario: 数据查询对话
|
||||
- **WHEN** 用户在对话列表中选择"数据查询"场景
|
||||
- **THEN** 页面展示包含表格的对话内容,表格清晰展示查询结果
|
||||
|
||||
### Requirement: 多轮对话场景
|
||||
系统 SHALL 在聊天界面展示多轮连续对话场景。
|
||||
|
||||
#### Scenario: 连续问答对话
|
||||
- **WHEN** 用户在对话列表中选择"多轮对话"场景
|
||||
- **THEN** 页面展示至少 3 轮用户与助手的交替对话
|
||||
|
||||
### Requirement: 错误提示场景
|
||||
系统 SHALL 在聊天界面展示包含错误提示的对话场景。
|
||||
|
||||
#### Scenario: 请求失败对话
|
||||
- **WHEN** 用户在对话列表中选择"请求失败"场景
|
||||
- **THEN** 页面展示助手返回错误提示的对话内容
|
||||
37
openspec/specs/empty-state-display/spec.md
Normal file
37
openspec/specs/empty-state-display/spec.md
Normal file
@@ -0,0 +1,37 @@
|
||||
## Purpose
|
||||
|
||||
定义工作台各页面空状态的展示规范。
|
||||
|
||||
## Requirements
|
||||
|
||||
### Requirement: 技能市场空状态展示
|
||||
当技能市场无搜索结果时,系统 SHALL 展示 EmptyState 组件。
|
||||
|
||||
#### Scenario: 搜索无结果
|
||||
- **WHEN** 用户在技能市场搜索框输入关键词后点击查询
|
||||
- **THEN** 页面展示 EmptyState 组件,显示"暂无匹配技能"提示
|
||||
|
||||
### Requirement: 日志查询空状态展示
|
||||
当日志查询无匹配结果时,系统 SHALL 展示 EmptyState 组件。
|
||||
|
||||
#### Scenario: 筛选无结果
|
||||
- **WHEN** 用户选择筛选条件后点击查询按钮
|
||||
- **THEN** 页面展示 EmptyState 组件,显示"暂无匹配日志"提示
|
||||
|
||||
### Requirement: 定时任务空状态展示
|
||||
当定时任务列表为空时,系统 SHALL 展示 EmptyState 组件。
|
||||
|
||||
#### Scenario: 无任务
|
||||
- **WHEN** 用户进入定时任务页面
|
||||
- **THEN** 页面展示 EmptyState 组件,显示"暂无定时任务"提示
|
||||
|
||||
### Requirement: 项目管理空状态展示
|
||||
当项目成员列表为空或筛选无结果时,系统 SHALL 展示 EmptyState 组件。
|
||||
|
||||
#### Scenario: 无成员
|
||||
- **WHEN** 用户进入项目管理页面且没有成员
|
||||
- **THEN** 页面展示 EmptyState 组件,显示"暂无匹配成员"提示
|
||||
|
||||
#### Scenario: 筛选无结果
|
||||
- **WHEN** 用户选择筛选条件后点击查询按钮
|
||||
- **THEN** 页面展示 EmptyState 组件,显示"暂无匹配成员"提示
|
||||
39
openspec/specs/feedback-display/spec.md
Normal file
39
openspec/specs/feedback-display/spec.md
Normal file
@@ -0,0 +1,39 @@
|
||||
## Purpose
|
||||
|
||||
定义确认弹窗(Modal)和消息提示(Toast)的展示规范。
|
||||
|
||||
## Requirements
|
||||
|
||||
### Requirement: 确认弹窗展示
|
||||
系统 SHALL 提供 Modal 组件用于展示确认弹窗。
|
||||
|
||||
#### Scenario: 删除任务确认
|
||||
- **WHEN** 用户点击定时任务的"删除"按钮
|
||||
- **THEN** 页面展示确认弹窗,标题为"确认删除",内容为"确定要删除这个任务吗?"
|
||||
|
||||
#### Scenario: 取消订阅确认
|
||||
- **WHEN** 用户点击技能详情页的"取消订阅"按钮
|
||||
- **THEN** 页面展示确认弹窗,标题为"确认取消订阅",内容为"确定要取消订阅该技能吗?"
|
||||
|
||||
#### Scenario: 移除成员确认
|
||||
- **WHEN** 用户点击项目成员的"移除"按钮
|
||||
- **THEN** 页面展示确认弹窗,标题为"确认移除",内容为"确定要将该成员移出项目吗?"
|
||||
|
||||
#### Scenario: 技能市场订阅确认
|
||||
- **WHEN** 用户点击技能卡片的"订阅"按钮
|
||||
- **THEN** 页面展示确认弹窗,标题为"确认订阅",内容为"确定要订阅该技能吗?"
|
||||
|
||||
#### Scenario: 技能市场取消订阅确认
|
||||
- **WHEN** 用户点击技能卡片的"已订阅"按钮
|
||||
- **THEN** 页面展示确认弹窗,标题为"确认取消订阅",内容为"确定要取消订阅该技能吗?取消后将无法使用该技能。"
|
||||
|
||||
### Requirement: 消息提示展示
|
||||
系统 SHALL 提供 Toast 组件用于展示操作结果提示。
|
||||
|
||||
#### Scenario: 保存成功提示
|
||||
- **WHEN** 用户在账号管理页面点击"保存修改"按钮
|
||||
- **THEN** 页面顶部展示绿色成功提示"保存成功"
|
||||
|
||||
#### Scenario: 操作失败提示
|
||||
- **WHEN** 用户执行操作失败
|
||||
- **THEN** 页面顶部展示红色错误提示"操作失败,请重试"
|
||||
20
openspec/specs/form-validation-display/spec.md
Normal file
20
openspec/specs/form-validation-display/spec.md
Normal file
@@ -0,0 +1,20 @@
|
||||
## Purpose
|
||||
|
||||
定义表单校验错误状态的展示规范。
|
||||
|
||||
## Requirements
|
||||
|
||||
### Requirement: 表单校验错误状态展示
|
||||
系统 SHALL 在表单中展示校验错误状态。
|
||||
|
||||
#### Scenario: 必填项为空
|
||||
- **WHEN** 用户在修改密码表单中不输入当前密码直接点击"更新密码"
|
||||
- **THEN** 当前密码输入框边框变红,下方显示"请输入当前密码"错误提示
|
||||
|
||||
#### Scenario: 邮箱格式错误
|
||||
- **WHEN** 用户在个人信息表单中输入无效邮箱格式
|
||||
- **THEN** 邮箱输入框边框变红,下方显示"请输入有效的邮箱地址"错误提示
|
||||
|
||||
#### Scenario: 密码不一致
|
||||
- **WHEN** 用户在修改密码表单中输入两次不同的新密码
|
||||
- **THEN** 确认密码输入框边框变红,下方显示"两次输入的密码不一致"错误提示
|
||||
Reference in New Issue
Block a user