P0-1: 分类拖拽排序 - category-manage 添加拖拽 UI P1-1: 反馈回复展示 - 新增 GET /feedback/mine + 前端我的反馈Tab P1-2: 备份管理页面 - 新增下载端点 + backup-manage 页面 P2-1: 统计年度/周视图 - stats 支持 period 参数 + 前端维度切换器 P2-2: 数据导入 - 新增 POST /import 端点 + data-import 页面 P2-3: 数据导出服务端化 - 新增 GET /export 流式端点 P3-1: 健康检查展示 - health 移到 auth 前 + admin 状态卡片 P3-2~4: 交易标签系统 - tags CRUD + 交易关联 + 按标签筛选统计 后端: 新增 tag.ts/export.ts 路由, 改造 feedback/backup/transaction/stats 前端: 新增 DragSortList 组件, 3个新页面, 改造 7 个现有页面 QA 修复: 5个严重Bug + 4个潜在问题
54 lines
1.9 KiB
Plaintext
54 lines
1.9 KiB
Plaintext
sequenceDiagram
|
||
participant U as 用户
|
||
participant P as category-manage
|
||
participant D as DragSortList
|
||
participant S as categoryStore
|
||
participant A as sortCategories API
|
||
participant B as PUT /categories/sort
|
||
|
||
U->>P: 长按分类项进入排序模式
|
||
P->>P: showSortMode = true
|
||
P->>D: 渲染 DragSortList (items=currentCategories)
|
||
U->>D: touchstart (记录起始位置)
|
||
U->>D: touchmove (计算偏移, 交换元素位置)
|
||
D->>D: 实时更新 items 数组顺序
|
||
U->>D: touchend (拖拽结束)
|
||
D->>P: @change事件 (新顺序ids)
|
||
P->>S: sortCategories(newIds)
|
||
S->>A: sortCategories(ids)
|
||
A->>B: PUT /categories/sort { ids }
|
||
B-->>A: { code: 0 }
|
||
A-->>S: 成功
|
||
S->>S: fetchCategories() 刷新
|
||
|
||
%% 数据导入流程
|
||
|
||
U->>P2 as data-import: 选择 JSON 文件
|
||
P2->>P2: uni.chooseFile / 读取文件内容
|
||
P2->>P2: 解析 JSON,显示预览(条数、日期范围)
|
||
U->>P2: 确认导入
|
||
P2->>A2 as transaction API: importTransactions(items)
|
||
A2->>S2 as POST /transactions/import: POST { items }
|
||
S2->>S2: 校验每条记录格式
|
||
S2->>DB as MySQL: 查询已有记录 (去重比对)
|
||
S2->>DB: 批量 INSERT (每批100条)
|
||
S2->>DB: 写入 transaction_tags (如有 tag_names)
|
||
S2-->>A2: { total, imported, skipped, errors }
|
||
A2-->>P2: 导入结果
|
||
P2->>U: 显示导入结果(成功X条, 跳过Y条)
|
||
|
||
%% 标签关联交易流程
|
||
|
||
U->>P3 as add/index: 点击"添加标签"
|
||
P3->>P3: 显示标签选择面板(已有标签 + 新建入口)
|
||
U->>P3: 选择标签(最多5个)
|
||
P3->>P3: selectedTagIds 更新
|
||
U->>P3: 保存交易
|
||
P3->>A3 as transaction API: createTransaction({...data, tagIds})
|
||
A3->>S3 as POST /transactions: POST { amount, type, ..., tagIds }
|
||
S3->>S3: 校验 tagIds (≤5, 属于当前用户)
|
||
S3->>DB: INSERT INTO transactions
|
||
S3->>DB: INSERT INTO transaction_tags (批量)
|
||
S3-->>A3: { id }
|
||
A3-->>P3: 成功
|