feat: PLANNING体系首版(00路线图/02任务总表/03执行协议/I-03/I-04/registry42口径)+M1止血交付
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# Checklist
|
||||
|
||||
## 桌面端收藏按钮位置验证
|
||||
|
||||
- [x] JsonFormatter:收藏按钮位于英雄区标题旁,使用 variant="hero",urlPath="/utility/json-formatter"
|
||||
- [x] Base64Tool:收藏按钮位于英雄区标题旁,使用 variant="hero",urlPath="/utility/base64"
|
||||
- [x] EncodingConverter:收藏按钮位于英雄区标题旁,使用 variant="hero",urlPath="/utility/encoding-converter"
|
||||
- [x] CodeFormatter:收藏按钮位于英雄区标题旁,使用 variant="hero",urlPath="/utility/code-formatter"
|
||||
- [x] RegexTool:收藏按钮位于英雄区标题旁,使用 variant="hero",urlPath="/utility/regex-tool"
|
||||
- [x] TextDiff:收藏按钮位于英雄区标题旁,使用 variant="hero",urlPath="/utility/text-diff"
|
||||
- [x] TimestampTool:收藏按钮位于英雄区标题旁,使用 variant="hero",urlPath="/utility/timestamp"
|
||||
- [x] QRCodeGenerator:收藏按钮位于英雄区标题旁,使用 variant="hero",urlPath="/qrcode-generator"
|
||||
- [x] ColorConverter:收藏按钮位于英雄区标题旁,使用 variant="hero",urlPath="/utility/color-converter"
|
||||
- [x] ImageCompressor:收藏按钮位于英雄区标题旁,使用 variant="hero",urlPath="/utility/image-compressor"
|
||||
- [x] BaiduTranslate:收藏按钮位于英雄区,使用 variant="hero",urlPath="/utility/baidu-translator"
|
||||
|
||||
## 移动端收藏按钮验证
|
||||
|
||||
- [x] CalculatorMobile:已添加收藏按钮,位于英雄区标题旁,urlPath="/utility/calculator"
|
||||
- [x] Base64ToolMobile:已添加收藏按钮,位于英雄区标题旁,urlPath="/utility/base64"
|
||||
- [x] CharsetConverterMobile:已添加收藏按钮,位于英雄区标题旁,urlPath="/utility/charset-converter"
|
||||
- [x] CodeFormatterMobile:已添加收藏按钮,位于英雄区标题旁,urlPath="/utility/code-formatter"
|
||||
- [x] ColorConverterMobile:已添加收藏按钮,位于英雄区标题旁,urlPath="/utility/color-converter"
|
||||
- [x] EncodingConverterMobile:已添加收藏按钮,位于英雄区标题旁,urlPath="/utility/encoding-converter"
|
||||
- [x] ImageCompressorMobile:已添加收藏按钮,位于英雄区标题旁,urlPath="/utility/image-compressor"
|
||||
- [x] JsonFormatterMobile:已添加收藏按钮,位于英雄区标题旁,urlPath="/utility/json-formatter"
|
||||
- [x] TextDiffMobile:已添加收藏按钮,位于英雄区标题旁,urlPath="/utility/text-diff"
|
||||
|
||||
## ID 使用验证
|
||||
|
||||
- [x] 所有页面使用 urlPath 动态查找,无硬编码 toolId
|
||||
- [x] BaiduTranslate:已改为 urlPath="/utility/baidu-translator"
|
||||
|
||||
## 功能验证
|
||||
|
||||
- [x] 未登录用户点击收藏按钮,显示登录弹窗(调用 openLoginModal)
|
||||
- [x] 已登录用户点击未收藏按钮,按钮变为实心金色星标,显示"已收藏"
|
||||
- [x] 已登录用户点击已收藏按钮,按钮变为空心星标,显示"收藏"
|
||||
- [x] 收藏计数正确增减(通过 API 响应更新)
|
||||
|
||||
## 样式验证
|
||||
|
||||
- [x] 英雄区内的收藏按钮使用毛玻璃效果(背景半透明、backdrop-filter)
|
||||
- [x] 收藏按钮悬停效果正常(transform: translateY(-1px)、box-shadow)
|
||||
- [x] 暗色模式下收藏按钮样式正常([data-theme="dark"] 选择器)
|
||||
- [x] 移动端收藏按钮响应式显示正常(移动端独立组件)
|
||||
@@ -0,0 +1,80 @@
|
||||
# 收藏按钮功能验证与统一 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 动态查找
|
||||
@@ -0,0 +1,110 @@
|
||||
# Tasks
|
||||
|
||||
## 桌面端收藏按钮位置统一
|
||||
|
||||
- [ ] Task 1: 调整 JsonFormatter 收藏按钮位置
|
||||
- [ ] 将 ToolFavoriteButton 从工具栏移至英雄区标题旁
|
||||
- [ ] 改用 variant="hero" 样式
|
||||
- [ ] 将硬编码 toolId={1} 改为 urlPath="/utility/json-formatter"
|
||||
|
||||
- [ ] Task 2: 调整 Base64Tool 收藏按钮位置
|
||||
- [ ] 将 ToolFavoriteButton 从工具栏移至英雄区标题旁
|
||||
- [ ] 改用 variant="hero" 样式
|
||||
- [ ] 将硬编码 toolId={3} 改为 urlPath="/utility/base64"
|
||||
|
||||
- [ ] Task 3: 调整 EncodingConverter 收藏按钮位置
|
||||
- [ ] 将 ToolFavoriteButton 从工具栏移至英雄区标题旁
|
||||
- [ ] 改用 variant="hero" 样式
|
||||
- [ ] 将硬编码 toolId={4} 改为 urlPath="/utility/encoding-converter"
|
||||
|
||||
- [ ] Task 4: 调整 CodeFormatter 收藏按钮位置
|
||||
- [ ] 将 ToolFavoriteButton 从工具栏移至英雄区标题旁
|
||||
- [ ] 改用 variant="hero" 样式
|
||||
- [ ] 将硬编码 toolId={16} 改为 urlPath="/utility/code-formatter"
|
||||
|
||||
- [ ] Task 5: 调整 RegexTool 收藏按钮位置
|
||||
- [ ] 将 ToolFavoriteButton 从工具栏移至英雄区标题旁
|
||||
- [ ] 改用 variant="hero" 样式
|
||||
- [ ] 将硬编码 toolId={5} 改为 urlPath="/utility/regex-tool"
|
||||
|
||||
- [x] Task 6: 调整 TextDiff 收藏按钮位置
|
||||
- [x] 将 ToolFavoriteButton 添加至英雄区标题旁
|
||||
- [x] 使用 variant="hero" 样式
|
||||
- [x] 使用 urlPath="/utility/text-diff"
|
||||
|
||||
- [ ] Task 7: 调整 TimestampTool 收藏按钮位置
|
||||
- [ ] 将 ToolFavoriteButton 从工具栏移至英雄区标题旁
|
||||
- [ ] 改用 variant="hero" 样式
|
||||
- [ ] 将硬编码 toolId={2} 改为 urlPath="/utility/timestamp"
|
||||
|
||||
- [ ] Task 8: 调整 QRCodeGenerator 收藏按钮位置
|
||||
- [ ] 将 ToolFavoriteButton 从工具栏移至英雄区标题旁
|
||||
- [ ] 改用 variant="hero" 样式
|
||||
|
||||
- [ ] Task 9: 调整 ColorConverter 收藏按钮位置
|
||||
- [ ] 将 ToolFavoriteButton 从工具栏移至英雄区标题旁
|
||||
- [ ] 改用 variant="hero" 样式
|
||||
|
||||
- [ ] Task 10: 调整 ImageCompressor 收藏按钮位置
|
||||
- [ ] 将 ToolFavoriteButton 从工具栏移至英雄区标题旁
|
||||
- [ ] 改用 variant="hero" 样式
|
||||
|
||||
## 移动端收藏按钮补全
|
||||
|
||||
- [ ] Task 11: 为 CalculatorMobile 添加收藏按钮
|
||||
- [ ] 导入 ToolFavoriteButton 组件
|
||||
- [ ] 在英雄区标题旁添加收藏按钮
|
||||
- [ ] 使用 urlPath="/utility/calculator" variant="hero"
|
||||
|
||||
- [ ] Task 12: 为 Base64ToolMobile 添加收藏按钮
|
||||
- [ ] 导入 ToolFavoriteButton 组件
|
||||
- [ ] 在英雄区标题旁添加收藏按钮
|
||||
- [ ] 使用 urlPath="/utility/base64" variant="hero"
|
||||
|
||||
- [ ] Task 13: 为 CharsetConverterMobile 添加收藏按钮
|
||||
- [ ] 导入 ToolFavoriteButton 组件
|
||||
- [ ] 在英雄区标题旁添加收藏按钮
|
||||
- [ ] 使用 urlPath="/utility/charset-converter" variant="hero"
|
||||
|
||||
- [ ] Task 14: 为 CodeFormatterMobile 添加收藏按钮
|
||||
- [ ] 导入 ToolFavoriteButton 组件
|
||||
- [ ] 在英雄区标题旁添加收藏按钮
|
||||
- [ ] 使用 urlPath="/utility/code-formatter" variant="hero"
|
||||
|
||||
- [ ] Task 15: 为 ColorConverterMobile 添加收藏按钮
|
||||
- [ ] 导入 ToolFavoriteButton 组件
|
||||
- [ ] 在英雄区标题旁添加收藏按钮
|
||||
- [ ] 使用 urlPath="/utility/color-converter" variant="hero"
|
||||
|
||||
- [ ] Task 16: 为 EncodingConverterMobile 添加收藏按钮
|
||||
- [ ] 导入 ToolFavoriteButton 组件
|
||||
- [ ] 在英雄区标题旁添加收藏按钮
|
||||
- [ ] 使用 urlPath="/utility/encoding-converter" variant="hero"
|
||||
|
||||
- [ ] Task 17: 为 ImageCompressorMobile 添加收藏按钮
|
||||
- [ ] 导入 ToolFavoriteButton 组件
|
||||
- [ ] 在英雄区标题旁添加收藏按钮
|
||||
- [ ] 使用 urlPath="/utility/image-compressor" variant="hero"
|
||||
|
||||
- [ ] Task 18: 为 JsonFormatterMobile 添加收藏按钮
|
||||
- [ ] 导入 ToolFavoriteButton 组件
|
||||
- [ ] 在英雄区标题旁添加收藏按钮
|
||||
- [ ] 使用 urlPath="/utility/json-formatter" variant="hero"
|
||||
|
||||
- [ ] Task 19: 为 TextDiffMobile 添加收藏按钮
|
||||
- [ ] 导入 ToolFavoriteButton 组件
|
||||
- [ ] 在英雄区标题旁添加收藏按钮
|
||||
- [ ] 使用 urlPath="/utility/text-diff" variant="hero"
|
||||
|
||||
## BaiduTranslate 调整
|
||||
|
||||
- [x] Task 20: 调整 BaiduTranslate 收藏按钮
|
||||
- [x] 将硬编码 toolId={9} 改为 urlPath="/utility/baidu-translator"
|
||||
- [x] 将 size="small" 改为 variant="hero"
|
||||
- [x] 移除 className="hero-favorite-btn"(variant="hero" 已包含样式)
|
||||
- [x] 确认位置在英雄区标题旁
|
||||
|
||||
# Task Dependencies
|
||||
- Task 1-10(桌面端)相互独立,可并行执行
|
||||
- Task 11-19(移动端)相互独立,可并行执行
|
||||
- Task 20 独立执行
|
||||
Reference in New Issue
Block a user