chore: 完成提醒模块样式优化和归档功能

- 优化提醒卡片样式,统一黑白灰配色
- 添加checkbox勾选动画和过期提醒淡出效果
- 修复过期检测逻辑(精确到时间点而非仅日期)
- 完善归档页功能(恢复/删除已过期完成提醒)
- 更新PRD文档,添加实施状态追踪和后续开发计划

Co-Authored-By: Claude (MiniMax-M2.1) <noreply@anthropic.com>
This commit is contained in:
ddshi 2026-02-03 14:10:32 +08:00
parent 83a6acd1e5
commit 1559830024
8 changed files with 195 additions and 2 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

View File

@ -4,9 +4,10 @@
| 项目 | 内容 |
|-----|------|
| **版本号** | v1.0.0 |
| **状态** | 待评审 |
| **版本号** | v1.0.1 |
| **状态** | 开发中 |
| **创建日期** | 2026-01-28 |
| **最近更新** | 2026-02-03 |
| **目标用户** | 需要管理纪念日、提醒任务的普通用户 |
| **产品定位** | 轻便、灵活的倒数日和提醒App专注提醒功能 |
@ -1574,3 +1575,145 @@ Home页面采用三栏布局总宽度1200px居中显示。
| 版本 | 日期 | 修改内容 | 修改人 |
|------|------|----------|--------|
| v1.0.0 | 2026-01-28 | 初稿完成 | 产品经理 |
| v1.0.1 | 2026-02-03 | 完善提醒模块,实现归档页、设置页、优化样式 | 产品经理 |
---
## 10 实施状态追踪
### 10.1 功能实现状态
| 模块 | 功能点 | 状态 | 备注 |
|------|--------|------|------|
| **认证模块** | 用户注册 | ✅ 已完成 | 邮箱密码认证 |
| | 用户登录 | ✅ 已完成 | JWT登录态 |
| | 登录态保持 | ✅ 已完成 | localStorage 30天 |
| | 登出功能 | ✅ 已完成 | |
| **纪念日模块** | 查看列表 | ✅ 已完成 | 倒计时显示 |
| | 添加纪念日 | ✅ 已完成 | AI+手动添加 |
| | 编辑纪念日 | ✅ 已完成 | 详情弹窗 |
| | 删除纪念日 | ✅ 已完成 | |
| | 内置节假日 | ✅ 已完成 | 农历转换修复 |
| | 倒计时计算 | ✅ 已完成 | |
| **提醒模块** | 查看列表 | ✅ 已完成 | 分组显示 |
| | 添加提醒 | ✅ 已完成 | AI+手动添加 |
| | 编辑提醒 | ✅ 已完成 | 详情弹窗 |
| | 删除提醒 | ✅ 已完成 | |
| | 标记完成 | ✅ 已完成 | checkbox交互 |
| | 过期检测 | ✅ 已完成 | 精确到时间点 |
| | 已过期分组 | ✅ 已完成 | 红色高亮 |
| | 归档功能 | ✅ 已完成 | 独立归档页 |
| **便签模块** | 查看便签 | ✅ 已完成 | |
| | 编辑便签 | ✅ 已完成 | Markdown支持 |
| | 自动保存 | ✅ 已完成 | |
| **AI对话** | 自然语言解析 | ✅ 已完成 | |
| | 解析确认 | ✅ 已完成 | |
| | 创建纪念日/提醒 | ✅ 已完成 | |
| **设置** | 显示设置 | ✅ 已完成 | 节假日显示开关 |
| **其他** | 归档页 | ✅ 已完成 | 恢复/删除功能 |
| | 设置页 | ✅ 已完成 | 基础框架 |
### 10.2 提醒模块当前实现详情
#### 10.2.1 分组逻辑
```
提醒按以下规则分组显示:
- 今天eventDate < tomorrow (今晚24点前)
- 明天tomorrow <= eventDate < dayAfterTomorrow
- 更久之后eventDate >= dayAfterTomorrow
- 已错过eventDate < now (精确到时间点不只是日期)
```
#### 10.2.2 状态样式
| 状态 | 边框 | 背景 | 文字颜色 | 时间颜色 |
|------|------|------|----------|----------|
| 默认 | 浅灰 | 透明 | #1a1a1a | #666 |
| 已过期 | 浅红(左边框3px) | 浅红 | #666 | #c41c1c |
| 已完成 | 浅灰 | 透明 | #999 | #bbb |
#### 10.2.3 交互效果
- **checkbox点击**:切换完成状态,已过期提醒有淡出动画
- **卡片点击**:打开编辑弹窗
- **悬停效果**:卡片轻微上浮,更多按钮渐显
- **勾选动画**checkbox 脉冲动画
### 10.3 技术优化项
| 项目 | 状态 | 说明 |
|------|------|------|
| 乐观更新 | ✅ 已完成 | UI即时响应失败回滚 |
| 状态持久化 | ✅ 已完成 | localStorage + 后端 |
| API数据覆盖 | ✅ 已修复 | 避免undefined覆盖有效值 |
| 后端is_completed | ✅ 已修复 | zod schema添加字段 |
---
## 11 后续开发计划
### 11.1 短期计划v1.0.2- 核心体验优化
**目标**:打磨核心功能,提升用户体验稳定性
| 优先级 | 功能 | 描述 | 预估工时 |
|--------|------|------|----------|
| P0 | 提醒弹窗完善 | 添加日期时间选择器、表单验证 | 0.5天 |
| P0 | 纪念日弹窗完善 | 添加农历选择、重复方式下拉 | 0.5天 |
| P1 | 节日显示开关 | 设置页控制是否显示法定节假日 | 0.25天 |
| P1 | 移动端适配 | 响应式布局优化 | 0.5天 |
| P2 | 加载状态优化 | 添加骨架屏、loading动画 | 0.25天 |
| P2 | 错误提示优化 | 统一错误处理和提示样式 | 0.25天 |
### 11.2 中期计划v1.1.0- 功能增强
**目标**:增强核心功能,添加辅助功能
| 优先级 | 功能 | 描述 | 预估工时 |
|--------|------|------|----------|
| P1 | 浏览器通知 | 纪念日/提醒通知权限和发送 | 1天 |
| P1 | AI对话优化 | 解析结果编辑、多轮对话 | 1天 |
| P2 | 数据导出 | 导出纪念日/提醒为JSON/CSV | 0.5天 |
| P2 | 批量操作 | 批量删除、批量完成 | 0.5天 |
| P3 | 搜索功能 | 搜索纪念日和提醒 | 0.5天 |
### 11.3 长期计划v1.2.0+- 生态扩展
**目标**:扩展使用场景,提升产品价值
| 功能 | 描述 | 预估工时 |
|------|------|----------|
| 微信小程序 | 跨平台覆盖,方便移动端使用 | 3天 |
| 数据统计 | 纪念日统计、提醒完成率 | 1天 |
| 主题切换 | 浅色/深色/主题色 | 0.5天 |
| 分享功能 | 分享纪念日卡片 | 0.5天 |
| 重复规则增强 | 自定义重复周期、结束日期 | 1天 |
### 11.4 技术债
| 项目 | 描述 | 优先级 |
|------|------|--------|
| 代码规范 | ESLint/Prettier配置完善 | P2 |
| 单元测试 | 核心函数测试覆盖 | P3 |
| 性能优化 | 大数据量场景优化 | P3 |
| 文档完善 | API文档、开发者文档 | P2 |
### 11.5 里程碑更新
| 版本 | 内容 | 状态 | 预计完成 |
|------|------|------|----------|
| v1.0.0 | MVP基础功能 | ✅ 已完成 | 2026-01-28 |
| v1.0.1 | 提醒模块完善、归档页 | ✅ 已完成 | 2026-02-03 |
| v1.0.2 | 核心体验优化 | 进行中 | 待定 |
| v1.1.0 | 功能增强 | 计划中 | 待定 |
| v1.2.0 | 生态扩展 | 计划中 | 待定 |
---
### C. 修改记录
| 版本 | 日期 | 修改内容 | 修改人 |
|------|------|----------|--------|
| v1.0.0 | 2026-01-28 | 初稿完成 | 产品经理 |
| v1.0.1 | 2026-02-03 | 完善提醒模块,实现归档页、设置页、优化样式 | 产品经理 |

50
restart.bat Normal file
View File

@ -0,0 +1,50 @@
@echo off
chcp 65001 >nul
echo ========================================
echo 掐日子 - 服务重启脚本
echo ========================================
echo.
echo [1/4] 检查并终止占用端口的进程...
:: 查找占用 3000 端口的进程
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :3000 ^| findstr LISTEN') do (
echo 终止占用 3000 端口的进程 (PID: %%a)
taskkill /PID %%a /F >nul 2>&1
)
:: 查找占用 5173 端口的进程
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :5173 ^| findstr LISTEN') do (
echo 终止占用 5173 端口的进程 (PID: %%a)
taskkill /PID %%a /F >nul 2>&1
)
echo.
echo [2/4] 清理临时文件...
cd /d "%~dp0"
if exist client\nul rmdir /s /q client\tmpclaude-* 2>nul
if exist server\nul rmdir /s /q server\tmpclaude-* 2>nul
echo 清理完成
echo.
echo [3/4] 启动后端服务...
cd server
start "Qia Server" cmd /c "npm run dev"
cd ..
echo 等待后端启动...
timeout /t 3 /nobreak >nul
echo.
echo [4/4] 启动前端服务...
cd client
start "Qia Client" cmd /c "npm run dev"
cd ..
echo.
echo ========================================
echo 服务已启动!
echo 后端: http://localhost:3000
echo 前端: http://localhost:5173
echo ========================================
pause