2.0 KiB
2.0 KiB
2026-04-13
ops2 项目采购模块改造
为采购订单增加状态管理功能,涉及前后端多处改动:
后端改动
TabPurchaseOrder新增OrderStatus字段(pending/ordered/arrived/received),默认 pendingTabPurchaseOrder新增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 + TabPurchaseLogaddorder创建时自动写入第一条 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,与后端一致