217 lines
4.6 KiB
Markdown
217 lines
4.6 KiB
Markdown
# 订单系统 - 简化更新
|
|
|
|
## 更新说明
|
|
|
|
根据需求,订单系统已简化,移除了订单详情表功能。
|
|
|
|
---
|
|
|
|
## 变更内容
|
|
|
|
### 前端变更
|
|
|
|
#### 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
|
|
- **更新类型**: 功能简化
|
|
- **状态**: ✅ 完成
|
|
|
|
---
|
|
|
|
**更新完成** ✅
|