Docs: 新增 Web 端改版修改记录 readmeupdate.md
分前端、后端说明本次改版的全部改动与目的,并列出与设计稿的差异和待确认事项。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+275
@@ -0,0 +1,275 @@
|
|||||||
|
# 智链云枢 Web 端改版 · 修改记录
|
||||||
|
|
||||||
|
本文记录在提交 `80a71b4`(添加前后端筛选导出excel按钮权限)之后所做、**尚未提交**的全部改动,说明每项改了什么、为什么改。
|
||||||
|
|
||||||
|
- **改动范围**:后端 `shierfeng-fastapi-backend`、前端 `shierfeng-fastapi-frontend`。
|
||||||
|
- **未改动**:小程序 `shierfeng-fastapi-app`、登录页 `src/views/login.vue` 及 Logo 资源、`shierfeng-fastapi-backend/.env.dev`(该文件的改动是原有的,不属于本次工作)。
|
||||||
|
- **总原则**:后端只新增只读查询、扩展列表和详情的返回字段;**所有写接口、托盘状态机和幂等键规则都没有改**。新增的关联查询都沿用原接口的数据范围(仓库 / 现场授权),并受同一测试批次范围约束。没有新增权限标识,也不需要改菜单。
|
||||||
|
- **规模**:已跟踪文件 85 个改动(约 +14,400 / −2,500 行),新增文件 37 个(不含本文件)。
|
||||||
|
|
||||||
|
改动分几轮完成,顺序如下:
|
||||||
|
|
||||||
|
| 轮次 | 内容 |
|
||||||
|
|---|---|
|
||||||
|
| 1 | 全局外壳与导航、工作台、托盘档案、各页统一页头 |
|
||||||
|
| 2 | 发货出库页、侧边栏用户卡片、托盘追溯入口 |
|
||||||
|
| 3 | 基础资料维护:托盘、客户、仓库、导入、分配用户,以及菌种、现场、产线、隧道 |
|
||||||
|
| 4 | 客户、仓库指标条;7 个新增 / 编辑对话框 |
|
||||||
|
| 5 | 业务管理:共用部分(第 0 步)、仓库入库 |
|
||||||
|
| 6 | 退回仓库 |
|
||||||
|
| 7 | 工厂装填(同时修复入库页扫码反馈不显示的问题) |
|
||||||
|
| 8 | 客户现场使用 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、后端(shierfeng-fastapi-backend)
|
||||||
|
|
||||||
|
### 1. 新增接口一览
|
||||||
|
|
||||||
|
全部为 GET、只读。
|
||||||
|
|
||||||
|
| 接口 | 权限 | 用途 |
|
||||||
|
|---|---|---|
|
||||||
|
| `/master/site/customer-options` | `master:site:list` | 新增 / 编辑现场时选择所属客户 |
|
||||||
|
| `/master/line/site-options` | `master:line:list` | 新增 / 编辑产线时选择所属现场 |
|
||||||
|
| `/master/tunnel/site-options` | `master:tunnel:list` | 新增 / 编辑隧道时选择所属现场 |
|
||||||
|
| `/business/inbound/summary` | `business:inbound:list` | 入库页指标:草稿单数与托数、本月入库、待首次入库托盘、各仓库空托盘 |
|
||||||
|
| `/business/return/summary` | `business:return:list` | 退回页指标:待核对单数与托数、退回中带料托数与包数、本月确认与回仓去向、平均确认耗时 |
|
||||||
|
| `/business/return/site-options` | `business:return:list` | 退回页的来源现场筛选与名称显示 |
|
||||||
|
| `/business/filling/summary` | `business:filling:list` | 装填页指标:今日与本月装填、可装填空托盘、14 天内到期仍在仓的托盘 |
|
||||||
|
| `/business/filling/batches` | `business:filling:list` | 按「菌种 + 生产批次」汇总装填(分页,最近装填的在前) |
|
||||||
|
| `/business/filling/batches/detail` | `business:filling:query` | 批次详情:托盘当前去向分布与最近 10 条装填 |
|
||||||
|
| `/business/usage/site-options` | `business:usage:list` | 现场使用页的现场选择器(附隧道数、产线数) |
|
||||||
|
| `/business/usage/site-board?siteId=` | `business:usage:query` | 现场看板:库存、今日用量、隧道在用情况、跳过先到次数(不返回内部溯源号) |
|
||||||
|
| `/business/usage-fifo/queue?siteId=` | `business:usage:query` | 现场待使用托盘按菌种分组,顺序与先到先用建议一致 |
|
||||||
|
|
||||||
|
另外,基础资料的各个导入接口新增参数 `preview=true`,表示「只校验、不写入」,权限不变。
|
||||||
|
|
||||||
|
### 2. 扩展的已有接口
|
||||||
|
|
||||||
|
返回结构只增加字段,不删除、不改名。
|
||||||
|
|
||||||
|
| 接口 | 新增内容 | 目的 |
|
||||||
|
|---|---|---|
|
||||||
|
| 基础资料各列表(菌种 / 客户 / 现场 / 产线 / 隧道 / 仓库 / 托盘) | 名称、统计数、分配用户等汇总字段 | 页面显示名称而不是 ID,并提供指标数字 |
|
||||||
|
| 客户详情 | 现场树:产线、隧道、各状态托盘数、分配用户 | 客户页右侧详情面板 |
|
||||||
|
| 托盘列表 | `flowGroup` 参数(未入库 / 仓库 / 在途 / 现场 / 退回中);托盘号参数同时精确匹配二维码标识 | 托盘页的状态页签,以及扫码枪搜索 |
|
||||||
|
| 托盘详情 | 最近流转记录 | 托盘侧边面板 |
|
||||||
|
| 发货列表 | `keyword`、`receiptState` 参数;仓库、现场、客户、创建人名称,托盘数、包数、菌种构成 | 发货页的统一搜索、状态页签和路线显示 |
|
||||||
|
| 发货详情 | 明细补托盘号、菌种、批次 | 详情面板;也修复了编辑对话框只显示 `#123` 的问题 |
|
||||||
|
| 入库列表 / 详情 | 仓库、创建人、确认人名称,托盘数;明细补托盘号和当前状态 | 入库页列表与详情面板 |
|
||||||
|
| 退回列表 / 详情 | `keyword` 参数(单号、托盘号、现场、客户、仓库);来源现场、客户、目标仓库、申请人、确认人名称,托盘数、余量包数、带料托数;明细补托盘号和隧道名称 | 退回页列表、详情和到仓核对 |
|
||||||
|
| 装填列表 | `keyword` 参数(装填单号、托盘号、批次);托盘号、仓库、操作人名称 | 装填明细视图 |
|
||||||
|
| 使用记录列表 | `keyword`(记录号、托盘号)、`fifoSkipped` 参数;托盘、现场、隧道、产线、操作人名称,以及**被跳过的先到托盘号**(取自写入时已保存的先到先用快照) | 使用记录表和「只看跳过先到」开关 |
|
||||||
|
|
||||||
|
### 3. 按文件说明
|
||||||
|
|
||||||
|
**新增文件**
|
||||||
|
|
||||||
|
| 文件 | 说明 |
|
||||||
|
|---|---|
|
||||||
|
| `dao/master_summary_dao.py`、`service/master_summary_service.py`、`entity/vo/master_summary_vo.py` | 基础资料列表汇总、客户现场树、托盘最近流转、上级资料选项、导入预览模型 |
|
||||||
|
| `dao/shipment_summary_dao.py` | 发货列表名称、托盘数、包数与菌种构成 |
|
||||||
|
| `dao/inbound_summary_dao.py` | 入库列表名称与托盘数、明细托盘号与状态、页面概况 |
|
||||||
|
| `dao/return_summary_dao.py` | 退回列表汇总、明细托盘号与隧道、来源现场选项、页面概况 |
|
||||||
|
| `dao/filling_summary_dao.py` | 装填列表名称、批次汇总与详情、页面概况 |
|
||||||
|
| `dao/usage_summary_dao.py` | 使用记录名称、现场选项、现场看板 |
|
||||||
|
|
||||||
|
**修改文件**
|
||||||
|
|
||||||
|
| 文件 | 修改内容 |
|
||||||
|
|---|---|
|
||||||
|
| `controller/*_controller.py`(菌种、客户、现场、产线、隧道、仓库、托盘) | 列表和详情改用带汇总的返回模型;现场、产线、隧道新增上级选项路由,单独注册并排在 `/{id}` 详情路由之前,避免被详情路由误匹配 |
|
||||||
|
| `controller/master_excel_controller.py`、`service/master_excel_service.py` | 导入支持 `preview`:执行与真实导入相同的校验后整体回滚,返回逐行的新增 / 更新 / 跳过 / 错误结果 |
|
||||||
|
| `dao/master_dao.py`、`entity/vo/master_vo.py` | 托盘列表的 `flowGroup` 过滤与二维码精确匹配 |
|
||||||
|
| `controller/shipment_controller.py`、`service/shipment_service.py` | 发货列表汇总与筛选、详情明细补充字段 |
|
||||||
|
| `controller/inbound_controller.py`、`service/inbound_service.py` | 入库列表与详情补充字段,新增 `/summary` |
|
||||||
|
| `controller/return_controller.py`、`service/return_service.py` | 退回列表与详情补充字段,新增 `/summary`、`/site-options` |
|
||||||
|
| `controller/filling_controller.py`、`service/filling_service.py` | 装填列表补充字段,新增 `/summary`、`/batches`、`/batches/detail` |
|
||||||
|
| `controller/usage_controller.py`、`service/usage_service.py` | 使用记录列表补充字段,新增 `/site-options`、`/site-board` |
|
||||||
|
| `controller/usage_fifo_controller.py`、`service/usage_fifo_service.py` | 新增 `/queue`。原来权限写在路由组上,现改为每个接口各自声明(同为 `business:usage:query`),以符合「每个接口一个权限声明」的契约测试,实际效果不变 |
|
||||||
|
| `dao/usage_fifo_dao.py` | 把先到先用的候选条件、关联和排序抽成公共方法,供建议和队列共用,保证两边顺序一致。已逐条比对:改动前后建议查询(含写入时的加锁复核)在 12 种参数组合下生成的 SQL 完全相同 |
|
||||||
|
| `dao/operation_dao.py` | 发货、退回、装填、使用记录列表的 `keyword` 等筛选条件。原排序(按 ID 从旧到新)未改 |
|
||||||
|
| `entity/vo/operation_vo.py`、`entity/vo/usage_fifo_vo.py` | 上述列表行、概况、看板、队列等新模型;查询模型新增 `keyword`、`fifoSkipped` 等字段 |
|
||||||
|
|
||||||
|
### 4. 测试(`tests/module_business`)
|
||||||
|
|
||||||
|
- **新增**:`test_master_summary.py`、`test_shipment_list_summary.py`、`test_inbound_summary.py`、`test_return_summary.py`、`test_filling_summary.py`、`test_usage_summary.py`;另在 `test_usage_fifo.py` 增加 3 条待使用队列测试(内存数据库,实际执行查询)。覆盖内容为数据范围、测试批次隔离、SQL 条件,以及返回字段的驼峰命名。
|
||||||
|
- **同步更新**(接口变更是有意为之):
|
||||||
|
- `test_api_permission_contract.py`:登记新路由、权限映射、静态路由在详情路由之前、查询参数,路由权限条目从 119 条增至 131 条;
|
||||||
|
- `test_vo_contract.py`:新模型和新字段;
|
||||||
|
- 各 `test_*_service.py`:路由列表、返回模型,以及对新汇总查询的模拟。
|
||||||
|
- **结果**:`PYTHONPATH=. python -m unittest` 运行 `tests/module_business` 下全部用例,共 843 条,全部通过(2 条跳过)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、前端(shierfeng-fastapi-frontend)
|
||||||
|
|
||||||
|
### 1. 全局外壳与导航
|
||||||
|
|
||||||
|
| 文件 | 修改内容与目的 |
|
||||||
|
|---|---|
|
||||||
|
| `layout/index.vue`、`layout/components/AppMain.vue`、`Navbar.vue`、`TagsView/index.vue` | 新版外壳:内容区为白色内嵌面板,顶栏更简洁;手机宽度可用 |
|
||||||
|
| `layout/components/Sidebar/index.vue`、`SidebarItem.vue`、`Logo.vue` | 浅色侧边栏、分组菜单、统一图标,使用官方 Sylvan Logo |
|
||||||
|
| `layout/components/Sidebar/UserCard.vue`(新增) | 侧边栏左下角显示当前用户的头像、姓名、部门 · 角色,点击打开 个人中心 / 布局设置 / 退出登录;侧边栏折叠时只显示头像 |
|
||||||
|
| `layout/components/CommandPalette/index.vue`(新增) | Ctrl / ⌘K 搜索面板:输入页面名称直接跳转,输入托盘号打开托盘档案 |
|
||||||
|
| `layout/components/TestModeBanner/index.vue`(新增) | 测试数据模式下页面顶部显示琥珀色提示条,可直接退出测试批次 |
|
||||||
|
| `assets/styles/sf-shell.scss`(新增)、`index.scss`、`sidebar.scss`、`variables.module.scss` | 设计令牌(颜色、圆角、阴影),深色模式有单独配色;全屏作业区、分段切换、批量操作栏等共用样式 |
|
||||||
|
| `settings.js` | 默认浅色侧边栏、默认关闭页签栏。已保存过「布局设置」的用户仍沿用自己的设置 |
|
||||||
|
| `store/modules/user.js` | 读取部门名和角色名,供用户卡片使用 |
|
||||||
|
| `router/index.js`、`components/Breadcrumb/index.vue` | 「首页」改称「工作台」;新增托盘档案路由 `/pallet/passport`,需要托盘追溯权限 |
|
||||||
|
| `main.js` | 全局注册 `PageHeader`、`PalletCodeLink`、`DocNo` |
|
||||||
|
|
||||||
|
### 2. 新增的共用组件与工具
|
||||||
|
|
||||||
|
| 文件 | 用途 |
|
||||||
|
|---|---|
|
||||||
|
| `components/PageHeader`(含 `descriptions.js`) | 统一页头:标题、页面说明、右侧操作区;业务页用 `flow` 属性显示托盘流程条 |
|
||||||
|
| `components/FlowStepper` | 托盘流程 1 入库 → 2 装填 → 3 发货 → 4 现场使用 → 5 退回,高亮当前环节;没有菜单权限的环节只显示、不能点 |
|
||||||
|
| `components/ScanFeedback` | 扫码结果条,分成功、提醒、拒绝、等待等状态,屏幕阅读器会播报 |
|
||||||
|
| `components/DocNo`、`utils/docNo.js` | 长单号缩短显示(如 `SH-9F2C…E41B`),鼠标悬停显示完整单号 |
|
||||||
|
| `components/PalletCodeLink` | 托盘号链接到托盘档案;没有权限时显示为纯文本 |
|
||||||
|
| `components/SfIcon`(含 `icons.js`) | 统一线性图标,路径只取自本地常量表 |
|
||||||
|
| `components/MasterRefSelect` | 可搜索的上级资料选择框(所属客户 / 所属现场) |
|
||||||
|
| `assets/styles/sf-master.scss` | 指标条、状态页签、筛选行、列表加详情面板、时间线、状态胶囊等样式,基础资料页和业务页共用 |
|
||||||
|
| `utils/masterDisplay.js` | 数字格式化、天数计算、状态胶囊样式、按路由末段查找菜单路径 |
|
||||||
|
| `utils/masterRouteIntent.js` | 基础资料页之间的跳转意图(如从客户详情跳到现场页并带上所属客户);一次性意图处理后从地址栏移除,刷新不会重复触发 |
|
||||||
|
| `utils/palletPassport.js` | 托盘流转状态的中文名称与阶段分组 |
|
||||||
|
| `utils/palletRanges.js` | 把连续托盘号合并成编号段;解析批量粘贴的内容,支持 `10512-10518` 这类区间写法 |
|
||||||
|
|
||||||
|
### 3. 工作台、托盘档案、托盘追溯
|
||||||
|
|
||||||
|
- **`views/dashboard/index.vue` 工作台**:扫码 / 搜索栏、4 个关键指标、托盘 8 种状态的流转看板(点击某个状态可查看托盘)、装填与发货对比图、待办、临期托盘、仓库库存、最近动态。全部数据来自已有接口。同时修复了「最近出库单」实际显示的是最早单据的问题(后端列表按从旧到新排序)。
|
||||||
|
- **`views/pallet/passport/index.vue` 托盘档案**(新增):当前状态、位置、余量、有效期,本轮流转进度条,所有变动的时间线(往轮折叠),以及同一溯源号的其他托盘。
|
||||||
|
- **`views/report/palletTrace/index.vue` 托盘追溯**:顶部新增「查看单个托盘档案」入口,下方保留原来的跨托盘流转明细查询。
|
||||||
|
- **其余 5 个报表页**:加统一页头,托盘号可点击打开托盘档案;查询逻辑没变。
|
||||||
|
|
||||||
|
### 4. 基础资料维护页
|
||||||
|
|
||||||
|
| 页面 | 修改内容 |
|
||||||
|
|---|---|
|
||||||
|
| 托盘资料 `master/pallet` | 指标条;状态页签带数量;搜索框也支持扫码;每行显示当前位置、余量和周转次数;侧边面板含二维码标签、最近流转、打印 / 编辑 / 停用;勾选多行后可批量打印标签或停用 |
|
||||||
|
| 客户资料 `master/customer` | 客户列表加详情面板,每个现场展开后显示产线、隧道、各状态托盘数和分配用户;「新增现场 / 分配」等按钮跳到对应页面并带好上级 |
|
||||||
|
| 仓库资料 `master/warehouse` | 卡片 / 列表切换;显示库存、今日装填与发货、待处理单据、7 天内到期托盘、分配用户 |
|
||||||
|
| 菌种、现场、产线、隧道 | 显示名称而不是 ID,加指标条(多数指标只统计当前页,会标「本页」)和近期使用情况 |
|
||||||
|
| 7 个新增 / 编辑对话框 | 统一布局;状态做成两张说明卡,写明选择后的影响(已与后端校验逐条核对);所属客户 / 现场改为可搜索列表,只列启用的上级,加载失败时退回原来的 ID 输入;托盘容量固定显示 100 包;编辑托盘时托盘号和二维码标识只读 |
|
||||||
|
| `components/MasterExcelActions` 批量导入 | 改为三步:选择文件 → 校验预览(逐行显示新增 / 更新 / 跳过 / 错误,错误行可下载 CSV)→ 正式导入。导入请求现在会带上测试批次请求头(原来的上传绕开了统一请求层,不会带) |
|
||||||
|
| `components/BusinessUserAssignDialog` 分配用户 | 支持筛选和头像,用户旁标注「将新增 / 将移除」,并汇总本次变化 |
|
||||||
|
| `api/master/site.js`、`line.js`、`tunnel.js` | 新增上级选项接口的调用 |
|
||||||
|
|
||||||
|
### 5. 业务管理页
|
||||||
|
|
||||||
|
各页都只改界面和读取方式。**写入流程原样保留**:提交前的复核、幂等键、防串单的请求代次、确认前重新读取详情等。
|
||||||
|
|
||||||
|
**发货出库 `business/shipment`**
|
||||||
|
- 状态页签带数量:全部 / 草稿 / 待收货 / 已收货 / 历史单据。
|
||||||
|
- 一个搜索框覆盖单号、仓库、客户和现场,另加创建时间筛选;原来的仓库ID、现场ID 输入框去掉。
|
||||||
|
- 列表显示路线名称(`成品一仓 → 金禾菌业 · 南厂`)、托盘数与包数、菌种构成,超过 48 小时未收货会标出。
|
||||||
|
- 点一行打开详情面板:打印标签、编辑、确认发货,以及 创建 → 确认 → 收货核对 的进度线。
|
||||||
|
- 「发货单 / 收货核对」改为页头切换;扫码在全屏作业区进行。
|
||||||
|
|
||||||
|
**仓库入库 `business/inbound`**
|
||||||
|
- 指标条,全部 / 草稿 / 已确认 页签,按仓库和创建时间筛选,草稿等待 2 天以上会标出。
|
||||||
|
- 详情面板:时间线、编号段、托盘当前状态。
|
||||||
|
- 批量确认:逐张确认,每张用自己的幂等键,中途失败就停下。
|
||||||
|
- 作业区可切换「逐个扫码 / 批量粘贴」,粘贴支持区间写法,按编号段汇总便于核对实物,被拒托盘写明原因;确认后显示结果和「去工厂装填」链接。
|
||||||
|
- 修复:作业区扫码反馈条之前一直不显示(见下方「测试脚本」中的说明)。
|
||||||
|
|
||||||
|
**工厂装填 `business/filling`**
|
||||||
|
- 指标条;「按生产批次 / 装填明细」两种视图。
|
||||||
|
- 批次视图显示有效期剩余天数;批次面板显示托盘去向分布、最近装填,可「沿用此批参数继续装填」,有效期剩余不超过 14 天时禁用。
|
||||||
|
- 全屏装填工位:
|
||||||
|
- 先填写并锁定本批参数,锁定后才能扫码;有效期提供 +30 / +45 / +60 天快捷按钮,每托固定 100 包;
|
||||||
|
- 「扫码后确认 / 扫码即装填」两种模式;
|
||||||
|
- 「本班装填」列表和未装填的扫码记录;结束本班后显示结果和「去发货出库」链接。
|
||||||
|
- 每次扫码都先清空上一托的提交内容和幂等键,锁定的批次参数另外保存,扫码成功后再带入。
|
||||||
|
|
||||||
|
**客户现场使用 `business/usage`**
|
||||||
|
- 页头:现场选择器(按账号记住上次选择,只在主动切换时保存)和「开始现场作业」按钮。
|
||||||
|
- 看板:4 个指标;隧道卡片(点击按隧道筛选记录,再点取消);按菌种分页签的待使用队列,第一托标「建议优先」,并注明未登记到场时间的托数。
|
||||||
|
- 记录表:按关键字、隧道、产线、时间筛选,有「只看跳过先到」开关;显示被跳过的托盘号和原因;原来的现场ID、隧道ID、产线ID 输入框去掉。
|
||||||
|
- 全屏作业区分 4 步:扫码 → 确认托盘 · 入隧 → 登记用量 → 完成。
|
||||||
|
- 第 2 步:有更早到场的托盘时可一键「改用」它,或选择跳过原因快捷项再补充说明;隧道用卡片选择。
|
||||||
|
- 第 3 步:快捷包数 10 / 20 / 50 / 全部,实时显示提交后余量;托盘已绑定产线时产线锁定。
|
||||||
|
- 完成后可扫描下一托或继续使用这一托;托盘用完时给出退回仓库的链接。
|
||||||
|
- 有未确认的操作时,第 1 步显示恢复卡片并锁住扫码,页顶横幅也保留。
|
||||||
|
- 步骤只是从现有状态推导出来的。原有 34 个函数中 33 个一字未改,只有 `resetQuery` 增加了清空日期筛选。待确认记录的本机存储键和格式、恢复重试、人工解除、先到先用拒绝的处理都保持原样。
|
||||||
|
- 页面不显示内部溯源号:原有测试规定作业页不能出现溯源号,溯源号只在托盘追溯报表里查看。
|
||||||
|
|
||||||
|
**退回仓库 `business/return`**
|
||||||
|
- 去掉页面顶部的两张操作卡。页头放「发起退回申请」,待确认的行和详情面板放「到仓核对」。
|
||||||
|
- 指标条,全部 / 待确认 / 已确认 页签,按关键字、来源现场、目标仓库、申请时间筛选。
|
||||||
|
- 列表显示「现场 → 仓库」和「托数 · 余量」;详情面板显示确认后去向(几托带料回有料库存、几托成为空托)。
|
||||||
|
- 到仓核对作业区:进度 n/N、方块网格(扫到一托亮一格,可撤销),非本单托盘单独列出;全部对上之前「确认退回」按钮不能点。
|
||||||
|
- 发起申请作业区:来源现场由第一个托盘锁定并显示名称;被拒托盘写明后端原因。
|
||||||
|
|
||||||
|
**业务 API**:`api/business/inbound.js`、`return.js`、`filling.js`、`usage.js` 增加上述新接口的调用。
|
||||||
|
|
||||||
|
### 6. 测试脚本(`scripts/`)
|
||||||
|
|
||||||
|
- **新增**:`pallet-ranges.test.mjs`(8 条)、`return-behavior.test.mjs`(7 条)、`filling-behavior.test.mjs`(7 条)。后两个在 Node 中加载真实页面,只替换网络层。
|
||||||
|
- **`usage-behavior.test.mjs`**:
|
||||||
|
- 补充新组件的替身和新只读接口的默认响应。看板默认不带隧道,避免它的隧道名称让摘要断言白白通过。
|
||||||
|
- 新增 6 条测试:现场偏好、看板权限、隧道筛选、作业步骤、快捷包数、先到先用快捷原因。
|
||||||
|
- 有一条原断言用「最后一个请求」去找扫码请求;页面启动后还会读看板,所以改为按路径取最近一次扫码请求,对编码后地址的精确比对没变。
|
||||||
|
- **`filling-dates.test.mjs`**:只为页面启动时新增的读取接口补了替身,断言没动。
|
||||||
|
- **`verify-business-contract.mjs`**:
|
||||||
|
- 登记新接口,请求总数 74 → 86,并更新各页的 API 名称清单;
|
||||||
|
- 新增检查「导入的组件不被同名状态变量遮蔽」。原因:入库页曾有变量 `scanFeedback` 与组件 `ScanFeedback` 同名,模板编译时选中了变量,导致扫码反馈条一直不显示。这个问题已修复,此检查防止再出现。
|
||||||
|
- **`verify-dashboard-contract.mjs`**:工作台文案变了,更新了必需文案列表;接口和路由检查不变。
|
||||||
|
- **`package.json`**:`test:business` 加入 `pallet-ranges.test.mjs`。
|
||||||
|
- **结果**:`npm run test:business` 共 278 条,通过 260 条。失败的 18 条在本次改动之前就存在,与本次无关:
|
||||||
|
- 17 条是小程序测试,`shierfeng-fastapi-app` 未安装依赖,报找不到 `vue`;
|
||||||
|
- 1 条版权检查要求公司名为 "Shierfeng",而已提交的 `settings.js` 中是 "Sylvan"。
|
||||||
|
- `npm run build:prod`(即 `vite build`)通过。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、其他
|
||||||
|
|
||||||
|
### 开发库演示数据(不在代码仓库内)
|
||||||
|
|
||||||
|
为便于查看页面效果,在开发库中写入了一批演示数据:
|
||||||
|
|
||||||
|
- **数据性质**:正式数据(`test_batch_id` 为空),切换模式后也能直接看到。
|
||||||
|
- **生成方式**:调用真实业务服务生成,模拟时间为 2026-09-01 至 2026-10-17。
|
||||||
|
- **主数据**:
|
||||||
|
- 菌种 6 个(T09 停用);
|
||||||
|
- 仓库 3 个:成品一仓、成品二仓、周转仓;
|
||||||
|
- 客户 4 个,现场 4 个:金禾菌业 南厂、北厂,绿源农业 一号基地,丰登食用菌合作社 东区;
|
||||||
|
- 产线 9 条,隧道 12 条;
|
||||||
|
- 托盘 `TP-10401`–`TP-10720`(`TP-10720` 停用)。
|
||||||
|
- **业务单据**:
|
||||||
|
- 入库单 8 张(6 张已确认、2 张草稿);
|
||||||
|
- 装填记录 309 条,分属 15 个批次;
|
||||||
|
- 发货单 14 张:11 张已收货、2 张在途、1 张草稿;
|
||||||
|
- 入隧 152 次,使用记录 496 条,其中 13 条跳过先到;
|
||||||
|
- 退回单 8 张:5 张已确认、3 张待确认。
|
||||||
|
- **账号授权调整**:
|
||||||
|
- niangao(id 2):成品一仓、成品二仓、南厂、北厂;
|
||||||
|
- test(id 102):成品二仓、周转仓、一号基地、东区。
|
||||||
|
- **注意**:生成脚本放在临时目录,不在仓库中,**重复运行会重复生成业务单据**;如需清除,只能手工执行 SQL。
|
||||||
|
|
||||||
|
### 设计稿
|
||||||
|
|
||||||
|
各页面的设计稿在:https://claude.ai/artifact/2aJi4pKkw9vMnepsNLFax9
|
||||||
|
|
||||||
|
### 与设计稿或计划不同之处
|
||||||
|
|
||||||
|
- **导出按钮**:业务页都没有「导出 Excel」,因为契约测试不允许业务页出现导入 / 导出按钮。
|
||||||
|
- **现场使用页的溯源号**:不显示,原因见上文。
|
||||||
|
- **新建的入库草稿不能在作业区一步确认**:新增接口不返回单据 ID。目前是保存后在草稿页签里确认;编辑已有草稿时有「保存并确认」。
|
||||||
|
- **装填**:本班列表不显示装填单号(新增接口不返回);沿用批次只带入参数,不自动锁定。
|
||||||
|
- **待使用队列**:只按 `siteId` 查询,一次返回该现场所有菌种的分组。
|
||||||
|
- **字体**:使用系统字体。Geist 字体包未安装(当时无法访问 npm 源),以后安装 `@fontsource-variable/geist` 即可生效。
|
||||||
|
|
||||||
|
### 待确认事项
|
||||||
|
|
||||||
|
1. **入库新增接口是否返回新单据 ID**:返回后新建草稿就能一步确认,但这需要改写接口。
|
||||||
|
2. **列表排序是否改为新的在前**:入库、退回、装填明细、使用记录等列表目前从旧到新排列,新单据会落在最后一页。
|
||||||
|
3. **手工验收**:页面只用自动化测试和本地模拟接口验证过,尚未用真实账号在浏览器里逐页走查。建议走查:
|
||||||
|
- 草稿到确认;
|
||||||
|
- 扫码被拒;
|
||||||
|
- 断网后重试不重复扣减(装填、现场使用、退回确认);
|
||||||
|
- 测试批次数据隔离;
|
||||||
|
- 无权限账号看不到对应按钮。
|
||||||
Reference in New Issue
Block a user