4.6 KiB
4.6 KiB
订单系统 - 简化更新
更新说明
根据需求,订单系统已简化,移除了订单详情表功能。
变更内容
前端变更
1. 创建订单弹窗简化
- ❌ 移除了订单详情管理表格
- ❌ 移除了"添加订单项"功能
- ✅ 保留了基本信息:患者、订单类型、金额、备注
2. 订单详情弹窗简化
- ❌ 移除了订单详情项表格
- ✅ 保留了订单基本信息展示
3. 移除的函数
addOrderDetail()- 添加订单项removeOrderDetail()- 删除订单项updateDetailTotal()- 更新订单项总价getRelatedTypeText()- 获取关联类型文本
4. 简化的数据结构
// 之前
createForm = {
patient_id: '',
order_type: '',
amount: 0,
remark: '',
details: [] // ❌ 移除
}
// 现在
createForm = {
patient_id: '',
order_type: '',
amount: 0,
remark: ''
}
后端变更
1. OrderLogic 简化
- ❌ 移除了事务处理(不再需要创建订单详情)
- ❌ 移除了订单详情的创建逻辑
- ❌ 移除了订单详情的删除逻辑
- ✅ 保留了订单的基本CRUD操作
2. OrderLists 简化
- ❌ 移除了
details关联加载 - ✅ 保留了
patient和creator关联
3. 数据库表
- ✅
la_order表保留(主表) - ⚠️
la_order_detail表可选(不再使用)
创建订单流程
简化后的流程
1. 用户点击"创建订单"
2. 打开创建订单弹窗
3. 搜索患者 → 调用 /tcm.diagnosis/searchPatient
4. 选择患者、类型、金额、备注
5. 提交 → 调用 /order.order/create
6. 后端创建订单
7. 返回成功,刷新列表
API 请求示例
POST /order.order/create
{
"patient_id": 1,
"order_type": 1,
"amount": 100.00,
"remark": "备注信息"
}
文件变更清单
前端文件
- ✅
admin/src/views/order/index.vue- 已更新 - ✅
admin/src/api/order.ts- 无需更改
后端文件
- ✅
server/app/adminapi/logic/order/OrderLogic.php- 已更新 - ✅
server/app/adminapi/lists/order/OrderLists.php- 已更新 - ✅
server/app/adminapi/controller/order/OrderController.php- 无需更改 - ✅
server/app/adminapi/validate/order/OrderValidate.php- 无需更改
数据库文件
- ⚠️
admin/order.sql- 可选更新(移除 la_order_detail 表)
代码质量
✅ 所有 TypeScript 类型检查通过
✅ 无编译错误
✅ 无运行时错误
✅ 所有未使用的变量已清理
向后兼容性
数据库
- 如果已创建
la_order_detail表,可以保留(不会被使用) - 或者执行以下 SQL 删除:
DROP TABLE IF EXISTS `la_order_detail`;
API
- 创建订单 API 不再接受
details参数 - 订单详情 API 不再返回
details字段
迁移指南
如果已有订单数据
1. 保留现有数据
-- 保留 la_order_detail 表,但不再使用
-- 现有数据不受影响
2. 清理订单详情表
-- 可选:删除订单详情表
DROP TABLE IF EXISTS `la_order_detail`;
3. 更新应用代码
- 部署新的前端代码
- 部署新的后端代码
- 清除浏览器缓存
功能对比
| 功能 | 简化前 | 简化后 |
|---|---|---|
| 创建订单 | ✅ 支持详情项 | ✅ 仅基本信息 |
| 查看详情 | ✅ 显示详情项 | ✅ 仅基本信息 |
| 支付订单 | ✅ | ✅ |
| 取消订单 | ✅ | ✅ |
| 退款订单 | ✅ | ✅ |
| 删除订单 | ✅ | ✅ |
| 导出订单 | ✅ | ✅ |
性能改进
- ⚡ 减少数据库查询(不需要加载订单详情)
- ⚡ 简化前端逻辑(减少状态管理)
- ⚡ 减少网络传输(更小的响应体)
测试清单
- ✅ 创建订单 - 仅包含基本信息
- ✅ 查看列表 - 正常显示
- ✅ 查看详情 - 不显示详情项
- ✅ 支付订单 - 正常工作
- ✅ 取消订单 - 正常工作
- ✅ 退款订单 - 正常工作
- ✅ 删除订单 - 正常工作
- ✅ 导出订单 - 正常工作
常见问题
Q: 为什么移除订单详情功能?
A: 根据需求简化系统,订单只需要记录基本信息(患者、类型、金额)。
Q: 现有的订单详情数据怎么办?
A: 可以保留 la_order_detail 表,但新系统不会使用。
Q: 能否恢复订单详情功能?
A: 可以,需要恢复相关代码和数据库表。
Q: 订单金额如何计算?
A: 直接输入,不再通过订单详情项自动计算。
版本信息
- 更新版本: 1.1.0
- 更新日期: 2026-03-10
- 更新类型: 功能简化
- 状态: ✅ 完成
更新完成 ✅