Files
shanxia2.0/openspec/changes/dibang-migration/specs/dibang-frontend/spec.md
T
2026-06-10 22:59:34 +08:00

3.6 KiB
Raw Blame History

ADDED Requirements

Requirement: 地磅管理菜单与五模块页面

web-admin SHALL 提供「地磅管理」菜单及五个页面:仪表盘、计划管理、出入库管理、地磅单管理、车牌管理。页面 SHALL 遵循 docs/web-admin-ui-spec-fresh-mint.md 与 ui-conventions 模板页约定。

Scenario: 菜单可见

  • WHEN 已授权用户登录 web-admin
  • THEN 侧栏可见「地磅管理」及上述五个子菜单项

Requirement: 列表页布局规范

计划管理、出入库管理、地磅单管理列表页 SHALL 采用复杂业务列表模式(参照 /#/demo/order):筛选区、工具栏、表格、同容器分页;操作列 fixed="right";状态类字段用 <el-tag> 展示。

Scenario: 计划列表操作列

  • WHEN 用户打开计划管理列表
  • THEN 操作列固定右侧且按钮不换行

Requirement: 车牌管理标准列表

车牌管理页 SHALL 参照 /#/demo/unit 标准列表:分页 CRUD、软删除、Fresh Mint 筛选与弹窗表单(label-position="top")。

Scenario: 车牌新增弹窗

  • WHEN 用户点击新增车牌
  • THEN 弹出两列表单弹窗,底栏取消/确定带图标

Requirement: 主数据下拉集成 CRM

计划、地磅、出入库表单中产品与客户字段 SHALL 使用远程搜索下拉,数据源为 CRM 产品/客户 API;选中后 SHALL 将名称写入表单字段(不展示或提交 CRM id 作为业务主键)。

Scenario: 地磅单选择客户

  • WHEN 用户在地磅单表单搜索并选择客户
  • THEN supplier 或 consignee 字段填入 customer_name 文本

Requirement: 磅单二维码弹窗业务例外

出入库列表「磅单二维码」弹窗 SHALL 保留现场扫码展示样式(深色遮罩、车牌黄底卡片、磅单摘要 + QR 码),作为地磅业务 UI 例外;SHALL NOT 强制套用 SystemViewDialog 或 dialog-form-layout。样式类名:db-qrcode-dialog / db-qrcode-overlay / pound-slip-capture-inline。

Scenario: 展示磅单二维码

  • WHEN 用户在出入库列表点击「磅单二维码」
  • THEN 弹出业务专用二维码弹窗,而非标准 Fresh Mint 查看弹窗

Requirement: 关联数据查看弹窗

计划、出入库、地磅单列表「查看关联数据」SHALL 使用 SystemViewDialog(P09),通过 DbRelatedViewDialog 展示分区 KV 字段;状态/类型字段 SHALL 使用 tagType 渲染 Tag。

Scenario: 计划页查看关联

  • WHEN 用户在计划列表点击「查看」
  • THEN 弹出 SystemViewDialog 风格弹窗,按时间倒序展示关联出入库单与地磅单分区

Requirement: 车牌下拉可选

地磅单、计划、出入库表单中车牌字段 SHALL 支持从 db_vehicle 列表选择或手工输入。

Scenario: 选择已有车牌

  • WHEN 用户从车牌下拉选择「皖A12345」
  • THEN 表单 vehicle_no 设为该车牌号

Requirement: 仪表盘页面

仪表盘页 SHALL 展示后端统计 API 返回的概览数据与图表,布局符合 Fresh Mint 面板规范。

Scenario: 加载仪表盘

  • WHEN 用户进入地磅仪表盘
  • THEN 页面请求 dashboard API 并渲染统计卡片/图表,loading 态正确

Requirement: API 层与类型定义

web-admin SHALL 在 src/api/db/ 提供与后端 db 子域对应的 TypeScript API 函数;列表请求 SHALL 传递筛选参数(参照 bx 规范:search() 传 filter,非空 refresh())。

Scenario: 计划列表筛选

  • WHEN 用户点击查询并填写计划号条件
  • THEN 前端调用 API 时携带该筛选参数且重置到第 1 页