# 订单系统 - 简化更新 ## 更新说明 根据需求,订单系统已简化,移除了订单详情表功能。 --- ## 变更内容 ### 前端变更 #### 1. 创建订单弹窗简化 - ❌ 移除了订单详情管理表格 - ❌ 移除了"添加订单项"功能 - ✅ 保留了基本信息:患者、订单类型、金额、备注 #### 2. 订单详情弹窗简化 - ❌ 移除了订单详情项表格 - ✅ 保留了订单基本信息展示 #### 3. 移除的函数 - `addOrderDetail()` - 添加订单项 - `removeOrderDetail()` - 删除订单项 - `updateDetailTotal()` - 更新订单项总价 - `getRelatedTypeText()` - 获取关联类型文本 #### 4. 简化的数据结构 ```javascript // 之前 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 请求示例 ```bash 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 删除: ```sql DROP TABLE IF EXISTS `la_order_detail`; ``` ### API - 创建订单 API 不再接受 `details` 参数 - 订单详情 API 不再返回 `details` 字段 --- ## 迁移指南 ### 如果已有订单数据 #### 1. 保留现有数据 ```sql -- 保留 la_order_detail 表,但不再使用 -- 现有数据不受影响 ``` #### 2. 清理订单详情表 ```sql -- 可选:删除订单详情表 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 - **更新类型**: 功能简化 - **状态**: ✅ 完成 --- **更新完成** ✅