docs: add design for plan product fields required on arrange
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
81b1cb9b1d
commit
5fbb15611c
1 file changed
+64
@@ -0,0 +1,64 @@
|
||||
# 运输计划产品字段:安排前必填
|
||||
|
||||
**日期:** 2026-08-30
|
||||
**状态:** 已确认
|
||||
**范围:** `web-admin` 运输计划新增/编辑弹窗(装货/送货产品区)+ 运输安排提交校验
|
||||
|
||||
## 1. 背景
|
||||
|
||||
运输计划弹窗中,装货信息、送货信息下的产品行字段「单位、计划数量、包装规格、送货方式」当前可空。安排运输时若缺这些信息,下游单据/展示不完整。需要在安排链路硬拦,并在表单上给出必填提示。
|
||||
|
||||
## 2. 决策
|
||||
|
||||
| 项 | 决策 |
|
||||
|----|------|
|
||||
| 硬校验时机 | 仅「保存并安排」/「调整运输」(`saveAndArrange` / `rearrange`) |
|
||||
| 普通保存 | 不拦截,允许暂空 |
|
||||
| 后端 | 不改;仅前端拦(安排均走弹窗) |
|
||||
| 计划数量 `0` | 视为未填,拦截(须有限数字且 **> 0**) |
|
||||
| 列表预检 | 不扩展产品字段预检(仍打开弹窗后校验) |
|
||||
| UI 提示 | 四字段标签始终显示必填星号(提示用,不改保存行为) |
|
||||
|
||||
## 3. 校验范围与规则
|
||||
|
||||
### 3.1 覆盖行
|
||||
|
||||
- 装货产品:`loadForm.products` 每一行
|
||||
- 送货产品:各 `deliveryForms[i].products` 每一行
|
||||
|
||||
### 3.2 字段判定
|
||||
|
||||
| 字段 | 通过条件 |
|
||||
|------|----------|
|
||||
| 单位 `unit` | `String(value).trim()` 非空 |
|
||||
| 计划数量 `planQty` | `Number` 有限且 **> 0** |
|
||||
| 包装规格 `packageSpec` | `String(value).trim()` 非空 |
|
||||
| 送货方式 `deliveryMethod` | `String(value).trim()` 非空 |
|
||||
|
||||
### 3.3 提示文案
|
||||
|
||||
- 装货:`安排运输前请完善装货产品第N行:单位、计划数量`(只列缺失项)
|
||||
- 送货:`安排运输前请完善送货段#M产品第N行:包装规格、送货方式`
|
||||
- 遇第一处缺失即 `ElMessage.warning` 并中断(与现有安排前校验风格一致)
|
||||
|
||||
## 4. 实现落点
|
||||
|
||||
| 位置 | 改动 |
|
||||
|------|------|
|
||||
| `pl-plan-form-dialog/index.vue` | 新增 `validateStopProductsForArrange()`;在 `handleSubmit` 的安排分支中,于 `validateContractsForArrange` 之后调用 |
|
||||
| `pl-plan-stop-product-table/index.vue` | compact 与表格态:单位 / 计划数量 / 包装规格 / 送货方式标签加必填星号 |
|
||||
|
||||
对齐现有模式:`getArrangePrerequisiteGaps`、`validateContractsForArrange`、车辆必选。
|
||||
|
||||
## 5. 非目标
|
||||
|
||||
- 不改后端安排接口、schema、DB
|
||||
- 不在列表 `ensurePlanReadyForArrange` 增加产品字段检查
|
||||
- 不强制别名、品牌、备注、规格型号
|
||||
- 不改变「超可安排数量」仅提示、安排接口另拦的既有行为
|
||||
|
||||
## 6. 验收
|
||||
|
||||
1. 新建/编辑:四字段标签有必填星号;四项全空仍可「保存」成功。
|
||||
2. 点击「保存并安排」或「调整运输」:任一行缺单位/包装/送货方式,或计划数量为空/`0`,提示并拦截,不发起安排。
|
||||
3. 装货与各送货段产品均覆盖;填齐后安排可继续原有后续校验与提交。
|
||||
Reference in new issue
Block a user