# Batch 3: ERP 销售订单审批集成 - 前端修改文档
## 概述
本批次为 ERP 销售订单模块集成 BPM 流程审批功能,实现销售订单的审批流程化管理。与 Batch 2 采购订单审批集成类似。
## 涉及页面
- 修改页面:销售订单管理页面(新增提交审批、审批状态展示)
- 新增配置:BPM 流程模型配置
---
## API
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | /erp/sale-order/submit | 提交销售订单审批 |
**请求参数:**
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | Long | 是 | 销售订单编号 |
**响应:**
```json
{
"code": 0,
"data": true,
"msg": "操作成功"
}
```
---
## 前端修改点
### 1. 销售订单列表页面修改
**文件路径:** `src/views/erp/sale/order/index.vue`
#### 1.1 新增提交审批按钮
在操作列新增"提交审批"按钮,仅草稿状态可见:
```vue
编辑
提交审批
审批通过
删除
```
#### 1.2 新增提交审批方法
```typescript
/** 提交审批 */
const handleSubmit = async (id: number) => {
try {
await message.confirm('确认提交该销售订单进行审批?')
await SaleOrderApi.submitSaleOrder(id)
message.success('提交成功')
await getList()
} catch {}
}
```
#### 1.3 修改状态列显示
```vue
```
### 2. API 接口文件修改
**文件路径:** `src/api/erp/sale/order/index.ts`
新增提交审批接口:
```typescript
// 提交销售订单审批
export const submitSaleOrder = async (id: number) => {
return await request.post({ url: '/erp/sale-order/submit?id=' + id })
}
```
---
## BPM 流程模型配置
### 流程模型信息
在 BPM 管理后台创建流程模型:
| 配置项 | 值 |
|--------|-----|
| 流程标识(Key) | erp-sale-order-audit |
| 流程名称 | ERP 销售订单审批流程 |
| 流程分类 | 业务流程 |
### 流程设计建议
```
开始节点 → 销售主管审批 → 财务审批 → 结束节点
```
---
## 注意事项
1. 创建销售订单时,默认状态从"未审核"改为"草稿"
2. 只有草稿状态的订单才能提交审批
3. 审批中的订单不能编辑和删除
4. 审批不通过的订单可以重新编辑后再次提交
5. 需要先执行数据库脚本,再部署后端代码
6. 需要在 BPM 管理后台创建流程模型(Key: erp-sale-order-audit)
---
## 后端新增/修改文件清单
```
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/
├── enums/
│ └── ErrorCodeConstants.java (修改:新增错误码)
├── dal/dataobject/sale/
│ └── ErpSaleOrderDO.java (修改:新增 processInstanceId 字段)
├── service/sale/
│ ├── ErpSaleOrderService.java (修改:新增接口方法)
│ ├── ErpSaleOrderServiceImpl.java (修改:实现 BPM 集成)
│ └── listener/
│ └── ErpSaleOrderStatusListener.java (新增:审批状态监听器)
└── controller/admin/sale/
└── ErpSaleOrderController.java (修改:新增提交审批接口)
```
---
**文档版本**: v1.0
**创建日期**: 2026-06-26