Files
vscode-workbench/.trae/specs/tool-fav-button-verify/spec.md
T

81 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 收藏按钮功能验证与统一 Spec
## Why
当前实用工具页面的收藏按钮存在以下问题:
1. **移动端页面缺失收藏按钮**:CalculatorMobile、Base64ToolMobile、CharsetConverterMobile、CodeFormatterMobile、ColorConverterMobile、EncodingConverterMobile、ImageCompressorMobile、JsonFormatterMobile、TextDiffMobile 共 9 个移动端页面没有收藏按钮
2. **桌面端按钮位置不统一**:部分页面在工具栏顶层(返回按钮旁),部分在英雄区标题旁
3. **ID 使用不一致**:部分页面使用硬编码 toolId,部分使用 urlPath
4. **需要验证功能完整性**:确认未登录点击弹出登录弹窗,登录后实现收藏功能
## What Changes
### 位置统一(桌面端)
- 将所有桌面端工具页面的收藏按钮统一放置在英雄区标题旁边
- 统一使用 `variant="hero"` 样式(毛玻璃效果,适配渐变背景)
- 受影响页面:JsonFormatter、Base64Tool、EncodingConverter、CodeFormatter、RegexTool、TextDiff、TimestampTool、QRCodeGenerator、ColorConverter、ImageCompressor(共 10 个)
### 移动端补全
- 为 9 个移动端页面添加收藏按钮,放置在英雄区标题旁
- 受影响页面:CalculatorMobile、Base64ToolMobile、CharsetConverterMobile、CodeFormatterMobile、ColorConverterMobile、EncodingConverterMobile、ImageCompressorMobile、JsonFormatterMobile、TextDiffMobile
### ID 统一
- 将所有硬编码 toolId 改为 urlPath 动态查找
## Impact
- Affected specs: tool-fav-button-missing, tool-fav-button-layout
- Affected code:
- `src/pages/*/` 下 19 个页面组件
- 可能需要新增移动端英雄区样式
## ADDED Requirements
### Requirement: 移动端收藏按钮
所有移动端工具详情页 SHALL 在英雄区标题旁边提供收藏按钮。
#### Scenario: 移动端页面显示收藏按钮
- **WHEN** 用户访问移动端工具详情页(如 CalculatorMobile)
- **THEN** 收藏按钮显示在英雄区标题旁边,使用 hero variant 样式
### Requirement: 收藏按钮位置统一
所有工具详情页(含桌面端和移动端)的收藏按钮 SHALL 统一放置在英雄区标题旁边。
#### Scenario: 桌面端按钮位置
- **WHEN** 用户访问桌面端工具详情页
- **THEN** 收藏按钮位于英雄区标题旁边,与标题水平对齐
#### Scenario: 移动端按钮位置
- **WHEN** 用户访问移动端工具详情页
- **THEN** 收藏按钮位于英雄区标题旁边
### Requirement: ID 使用统一
所有收藏按钮 SHALL 使用 urlPath 动态查找 toolId,不再硬编码 toolId。
#### Scenario: urlPath 查找
- **WHEN** 页面加载收藏按钮
- **THEN** 通过 urlPath 从 API 获取 toolId 并缓存
## MODIFIED Requirements
### Requirement: 收藏按钮桌面端样式
收藏按钮在英雄区 SHALL 使用 `variant="hero"` 样式,提供毛玻璃效果,适配渐变背景。
#### Scenario: hero variant 样式
- **WHEN** 收藏按钮位于英雄区
- **THEN** 背景半透明白色,带毛玻璃模糊效果,边框半透明
### Requirement: 收藏功能验证
- **WHEN** 未登录用户点击收藏按钮
- **THEN** 显示提示"请先登录"(不弹出登录弹窗,仅提示消息)
- **WHEN** 已登录用户点击收藏按钮(未收藏状态)
- **THEN** 按钮变为实心金色星标,显示"已收藏",收藏数 +1,显示成功提示
- **WHEN** 已登录用户点击收藏按钮(已收藏状态)
- **THEN** 按钮变为空心星标,显示"收藏",收藏数 -1,显示取消提示
## REMOVED Requirements
### Requirement: 硬编码 toolId
**Reason**: 硬编码 toolId 维护困难,容易与后端数据不一致
**Migration**: 统一使用 urlPath 动态查找