Files
chunyu_prject_react/.trae/documents/timestamp-tool-mobile-fix.md
T
2026-08-05 23:59:22 +08:00

70 lines
2.4 KiB
Markdown

# 时间戳工具移动端适配方案
## 问题分析
时间戳工具(`/utility/timestamp`)当前仅有一个桌面端组件 `TimestampTool.tsx`,通过 CSS Media Query 适配移动端。存在的问题:
### 当前移动端问题
1. **DatePicker 组件不友好** - antd 的 `DatePicker` + `showTime` 在移动端弹窗体验差,日期选择不便
2. **双栏布局空间利用率低** - 两列面板在窄屏上内容拥挤
3. **时区 Select 下拉框难用** - 7 个选项的下拉选择器在移动端操作困难
4. **结果项溢出** - 复制按钮和长文本在小屏上布局错乱
5. **触控目标偏小** - 按钮和输入框未针对触摸优化
## 当前状态
| 项目 | 状态 |
|------|------|
| 桌面端组件 | `TimestampTool.tsx` (已有) |
| 移动端组件 | ❌ 不存在 |
| 路由配置 | App.tsx 未区分移动/桌面端 |
| 移动端样式 | 仅依赖 CSS Media Query |
## 实现方案
### 方案:创建独立移动端组件
遵循项目已有模式(如 `RegexToolMobile`、`JsonFormatterMobile`):
#### 新增文件
| 文件 | 说明 |
|------|------|
| `src/pages/TimestampTool/TimestampToolMobile.tsx` | 移动端专用组件 |
| `src/pages/TimestampTool/TimestampToolMobile.css` | 移动端专用样式 |
#### 修改文件
| 文件 | 修改内容 |
|------|----------|
| `src/App.tsx` | 添加 `TimestampToolMobile` 的懒加载和路由条件渲染 |
### 移动端组件设计要点
1. **单栏流式布局** - 上下排列,充分利用宽度
2. **原生日期选择** - 使用 `<input type="datetime-local">` 替代 antd DatePicker,移动端自动唤起原生选择器
3. **时区快速切换** - 使用按钮组/分段控制器替代 Select 下拉
4. **大号触控按钮** - 所有按钮最小 44px 高度
5. **结果卡片化** - 每个结果独立卡片,易于阅读和操作
6. **固定底部操作栏** - 获取当前时间、清空等常用操作固定在底部
### 核心功能保留
- 时间戳 → 日期转换(自动识别秒/毫秒)
- 日期 → 时间戳转换
- 时区切换
- 复制结果
- 获取当前时间
- 清空输入
## 验证步骤
1. 桌面端访问 `/utility/timestamp` 显示原组件
2. 移动端(≤768px)访问 `/utility/timestamp` 显示新移动端组件
3. 测试时间戳输入转换功能正常
4. 测试日期选择功能正常(原生日期选择器)
5. 测试时区切换功能正常
6. 测试复制功能正常
7. 测试暗色模式切换正常