# v3.06.0 报账资料模块优化 PRD

---

## PRD文档修订记录

| 版本 | 日期 | 修订人 | 修订内容 |
|---|---|---|---|
| V1.0 | 2026-05-29 | caiqingpeng | 初稿 |
| V1.1 | 2026-05-29 | caiqingpeng | 新增：申请用印-PDF盖章关键字校验 |

---

## 1. 需求背景

当前"报账资料"模块仅支持**应收**场景：
- 《报账资料模板》的"适用需求类型"只能选"应收"，"应付"选项置灰
- 《报账资料用印》的"收付方向"仅有"应收"选项

运营需要对**应付**方向的账单同样走报账资料流程——维护应付模板、对应付账单申请用印。

### 影响范围

- 子系统：应收应付
- 涉及菜单：《报账资料模板》《报账资料用印》
- 外部依赖：无

---

## 2. 需求目标

1. 报账资料模板"适用需求类型"支持"应付"
2. 报账资料用印"收付方向"支持"应付"，关联金链账单弹窗根据所选方向过滤账单
3. 模板动态参数取值区分收付方向，确保生成内容时参数值从对应方向的账单数据中获取

---

## 3. 流程对比

### 当前流程（AS-IS）

```
模板：新增/编辑 → 适用需求类型 → 仅"应收"可选（"应付"置灰 + 提示文案）
用印：申请用印 → 收付方向 → 仅"应收"
```

### 目标流程（TO-BE）

```
模板：新增/编辑 → 适用需求类型 → "应收"/"应付"均可选
用印：申请用印 → 收付方向 → 选"应收"或"应付"
                              → 应付 → 关联账单弹窗仅查应付账单 → 模板动态参数取应付账单数据
                              → 应收 → 关联账单弹窗仅查应收账单 → 模板动态参数取应收账单数据
```

---

## 4. 功能清单

| 编号 | 功能点 | 页面位置 | 优先级 |
|---|---|---|---|
| F-001 | 模板"适用需求类型"开放"应付"选项，去除限制提示 | 模板编辑抽屉 | P0 |
| F-002 | 用印"收付方向"新增"应付"选项，关联账单弹窗按方向过滤 | 申请用印抽屉 + 关联账单弹窗 | P0 |
| F-003 | 模板动态参数取值区分收付方向 | 在线生成报账资料正文 | P0 |
| F-004 | PDF盖章关键字校验 | 申请用印抽屉 | P0 |

---

## 5. 功能详情

### F-001 模板 — 适用需求类型支持应付

**当前行为：**
- "适用需求类型"中"应付"选项置灰不可点击
- 表单底部显示提示："暂只支持维护应收报账资料模板"
- 若历史数据为"应付"类型，查看详情时会被强制显示为"应收"

**目标行为：**
- "应付"选项正常可选，与"应收"平级
- 不再显示"暂只支持维护应收报账资料模板"提示
- 详情加载时保留原有类型值，不做强制转换

**交互流程：**
```
新增模板 → 打开抽屉 → 适用需求类型 → 点选"应收"或"应付"
编辑模板 → 打开抽屉 → 回显原类型值（含应付）
```

---

### F-002 用印 — 收付方向支持应付

**当前行为：**
- "收付方向"仅显示"应收"一个选项
- 区块副标题提示"暂只支持应收场景下的报账资料申请用印"
- 无论选什么方向，关联账单弹窗始终查应收账单

**目标行为：**
- "收付方向"同时显示"应收"和"应付"两个选项
- 副标题移除"暂只支持应收场景下"前缀
- 关联账单弹窗的"方向"字段与收付方向联动：
  - 选"应付" → 弹窗方向锁定"应付"，仅查应付账单
  - 选"应收" → 弹窗方向锁定"应收"，仅查应收账单

**交互流程：**
```
申请用印 → 选择"应付" → 关联金链账单 → 去选择 → 弹窗方向=应付(不可改) → 列表仅应付账单
申请用印 → 选择"应收" → 关联金链账单 → 去选择 → 弹窗方向=应收(不可改) → 列表仅应收账单
```

**关联账单弹窗联动说明：**
弹窗打开时，"方向"筛选字段自动填入父级抽屉所选的收付方向，且字段置灰不可修改。弹窗列表仅展示对应方向的账单。

---

### F-003 模板动态参数 — 取值区分收付方向

**当前行为：**
- 在线生成报账资料正文时，模板中的动态参数统一按应收逻辑取值
- 应付场景下参数值可能取到错误数据（如账单金额取到应收账单的金额）

**目标行为：**
- 模板动态参数根据用户选择的收付方向，从对应方向的账单数据中取值
- 涉及方向敏感的参数包括但不限于：账单金额、账单期限、客商名称等与账单直接关联的字段
- 不区分方向的参数（如日期、用印主体名称等）保持不变

**交互流程：**
```
申请用印 → 选择"应付" → 在线生成 → 选模板 → 关联应付账单 → 系统用应付账单数据填充模板参数
申请用印 → 选择"应收" → 在线生成 → 选模板 → 关联应收账单 → 系统用应收账单数据填充模板参数
```

**参数取值规则：**

| 参数 | 取值来源 | 是否区分方向 |
|---|---|---|
| `${bill.billAmount}` | 关联账单的账单金额 | 是 — 取对应方向账单金额 |
| `${bill.billCycle}` | 关联账单的账单期限 | 是 — 取对应方向账单期限 |
| `${merchantName}` | 所选客商名称 | 否 |
| `${subjectName}` | 用印主体名称 | 否 |
| `${today}` | 当前日期 | 否 |

> 注：只有 `${bill.billAmount}` 和 `${bill.billCycle}` 需要区分收付方向，其余参数保持不变。

---

### F-004 申请用印 — PDF盖章关键字校验（V1.1 新增）

**位置：** 申请用印抽屉 → 本地上传 → PDF上传后

**触发条件：** 本地上传PDF文件完成

**校验规则：**
- 校验目标：文件中是否包含文字"[此处盖章]"
- 超时阈值：3秒
- 校验中展示loading动画 + "正在校验盖章关键字..."

**结果展示：**

| 结果 | 提示文案 | 样式 |
|---|---|---|
| 存在 | ✓ 文件中存在盖章关键字 | 绿色 |
| 不存在 | ✗ 文件不包含盖章关键字，请使用坐标定位盖章或重新上传文件 | 红色 |
| 超时 | ⚠ 文件页码较多。若使用关键字定位盖章，请自行确认是否包含盖章关键字 | 橙色 |

**重新上传：** 点击"重新上传"后，清除校验结果，恢复上传区域。

---

## 6. 验收标准

- [ ] **模板-新增：** 打开新增模板抽屉，"适用需求类型"可选"应收"或"应付"，无置灰项
- [ ] **模板-编辑：** 编辑一个"应付"类型的历史模板，类型字段正确回显"应付"
- [ ] **模板-提示：** 模板抽屉底部不再出现"暂只支持维护应收报账资料模板"文案
- [ ] **用印-方向：** 打开申请用印抽屉，"收付方向"同时显示"应收""应付"两个选项
- [ ] **用印-副标题：** 区块副标题不再包含"暂只支持应收场景下"文字
- [ ] **用印-应付联动：** 选择"应付"→ 点"关联金链账单"→"去选择"，弹窗方向为"应付"且不可改，列表仅应付账单
- [ ] **用印-应收联动：** 选择"应收"→ 同上操作，弹窗方向为"应收"且不可改，列表仅应收账单
- [ ] **用印-账单方向：** 弹窗中不出现与所选方向不一致的账单（应收弹窗不出现应付账单，反之亦然）
- [ ] **模板参数-应付：** 选择"应付"方向，在线生成报账资料正文，`${bill.billAmount}` 等账单相关参数取值为应付账单数据
- [ ] **模板参数-应收：** 选择"应收"方向，在线生成报账资料正文，账单相关参数取值为应收账单数据
- [ ] **模板参数-一致性：** 同一申请中，模板参数取值与所选收付方向始终保持一致
- [ ] **PDF盖章校验-触发：** PDF上传后自动触发校验，显示loading动画
- [ ] **PDF盖章校验-结果：** 最长3s内返回结果，分别展示3种提示文案
- [ ] **PDF盖章校验-重传：** 重新上传后清除旧结果，重新校验

---

## 7. 相关资料

- 原型：`versions/v3.06.0/prototype/index.html`
