Files
zyt/admin/ORDER_SIMPLIFICATION_UPDATE.md
T
2026-03-11 14:33:49 +08:00

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 关联加载
  • 保留了 patientcreator 关联

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
  • 更新类型: 功能简化
  • 状态: 完成

更新完成