Files
ops2/.workbuddy/memory/2026-04-13.md
T
2026-04-13 20:37:09 +08:00

33 lines
2.0 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.
# 2026-04-13
## ops2 项目采购模块改造
为采购订单增加状态管理功能,涉及前后端多处改动:
### 后端改动
- `TabPurchaseOrder` 新增 `OrderStatus` 字段(pending/ordered/arrived/received),默认 pending
- `TabPurchaseOrder` 新增 `UpdatedAt` 字段(GORM autoUpdateTime
- `TabPurchaseCosts` 新增 `CurrencyType`1-CNY 2-MOP 3-HKD 4-USD)和 `CostType`1-单价 2-运费)
- 新表 `TabPurchaseCommit`:记录每次状态变更(Action: create/create_status)、旧状态、新状态、评论、操作IP
- `CostItem` 前端结构体 `CurrencyType``Type` 从 string 改为 int(与数据库一致)
- `/purchase/getorder` 新增返回 `commits`(状态变更记录列表)
- `/purchase/updatestatus` 新接口:更新订单状态,可选附带 comment,写入 TabPurchaseCommit + TabPurchaseLog
- `addorder` 创建时自动写入第一条 commit(状态 pending
- 状态值白名单校验:只允许 pending/ordered/arrived/received
### 前端改动
- `api/purchase.js` 新增 `updateOrderStatus(id, status, comment)` 方法
- `PurchaseList.vue` 列表页去掉假数据列,显示真实标题/备注/创建时间,状态用彩色标签(黄-待处理、蓝-已下单、紫-已到达、绿-已收件)
- `ShowOrder.vue` 详情页新增:状态快捷切换按钮(四个状态一键切换)、状态变更 commit 历史时间线(竖排列表,含状态标签+时间+评论)
- i18n 同步新增 8 个翻译 key
### 新增:状态变更弹窗(含备注输入)
- `ShowOrder.vue` 中状态按钮不再直接变更,改为弹出确认框
- 弹窗包含:目标状态标签 + 备注 textarea(支持 Ctrl+Enter 快捷确认)
- 备注内容通过 `updateOrderStatus(id, status, comment)` 提交
- `message.save_success` 已补充到中英 i18n 文件
### 注意事项
- 重启后端后 GORM AutoMigrate 会自动新增字段和表,无需手动 SQL
- 前端 `CostItem` 的 CurrencyType/Type 改为 int,与后端一致