原型图 | React + Tailwind
仓管发起报废申请的表单页,按资产类型动态切换表单内容。报废前提严格对齐 PRD:一物一码资产须为「库存中·故障」方可发起(滤芯除外,允许「库存中·可投放」直接发起);普通配件按数量,无状态约束。提交后设备/滤芯进入待审批(web25 审批),普通配件即时执行。
| 场景 | 表单字段 | 审批 | 拍照 |
|---|---|---|---|
| ① 设备/高价值配件 | 资产选择(弹窗含资产类型 Tab)+原因+仅设备配件处置方式+拍照 | 需审批 | 必填 |
| ② 滤芯 | 资产选择(弹窗含资产类型 Tab)+原因+拍照 | 需审批 | 必填 |
| ③ 普通配件 | 配件类型+数量+原因 | 直接执行 | 非必填 |
| 操作 | 校验 | 反馈 | 异常处理 | 行为 |
|---|---|---|---|---|
| 选择报废资产 | 扫码或从库存列表选择 | 资产卡显示状态/仓库 | - | 预选资产进入表单 |
| 设备/配件 可投放提交 | 资产状态≠故障 | 阻断提交 | 提示先标记故障 | 不提交(滤芯可投放允许) |
| 拍照(设备/滤芯) | 照片数=0 | 阻断提交 | 提示必填 | 不提交 |
| 提交(设备/滤芯) | 校验通过 | 待审批提示 | - | 生成待审批单→CG09 |
| 提交(普通配件) | 数量≤库存 | 即时执行提示 | 超量阻断 | 扣减库存→CG09 |
| 驳回重提预填 | resubmit=1 | 预填原单 | - | 含原照片回填 |
| 场景 | 展示 |
|---|---|
| 场景① 设备/高价值配件 | 资产选择(弹窗含设备/高价值配件/滤芯 Tab)+原因+仅选设备时配件处置方式(随设备一同发起报废/解除绑定回收至库存·可投放或故障)+拍照(必填) |
| 场景② 滤芯 | 资产选择(弹窗含资产类型 Tab)+原因+拍照(必填)(可投放/故障均可) |
| 场景③ 普通配件 | 配件类型+数量(≤库存)+原因(拍照非必填) |
CG10 发起报废 ├─ 资产选择(扫码 / 从库存列表选择)→ 预选资产(带 code/type/wh) ├─ 设备/配件提交:资产须 库存中·故障(可投放阻断,提示先标记故障) ├─ 滤芯提交:库存中·可投放 / 故障 均可(例外) ├─ 拍照(设备/滤芯必填;普通配件非必填) ├─ 提交:设备/滤芯 → 待审批(web25);普通配件 → 即时执行 ├─ 驳回重提入口:CG09 已驳回卡 → cg10.html?id=单号&resubmit=1(预填含原照片) ├─ 预选入口:CG11/CG12 详情、CG15 扫一扫 → 带 code/type/wh ├─ 提交成功 → 返回 CG09 报废列表 └─ 底部导航:已去除(单任务设计) 注:无独立详情页(CG16 已删);审批通过即终态,由 web25 执行。