From f83a0c47c1e2f37a663b63b1f0348d89423d3702 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Tue, 11 Aug 2026 11:41:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 23 +++++++++++++++++------ README.md | 4 ++-- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 67cfaae..b47c4f1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,10 +6,10 @@ - README 记录的登录、箱号选择、扫码、整单或部分拣货、异常原因和完成提交是当前静态原型范围;项目使用 uni-app Vue 3,业务页面采用 Vue 3 兼容的 Options API。 - 本项目负责现场执行体验,不承担管理后台的订单配置、客户工作台或通用库存管理能力。 -## 当前阶段门禁 +## 开发与发布边界 - 当前已有 uni-app Vue 3 静态原型和 `uni_modules/`,没有项目根级依赖清单或可核实的 HBuilderX/Android 构建命令;现有 Node.js 内置测试仅覆盖页面契约与本地状态规则。 -- Android 硬件扫描已确认使用广播模式并已接入:Action=`android.intent.action.SCANRESULT`、字符串 Extra=`value`。目标 PDA 型号、Android 版本、打包发布方式和真实设备验收仍待确认;继续通过设备适配层接入,不绑定单一厂商 SDK。 +- PDA 采用 uni-app 开发并支持在线更新;Android 硬件扫描已确认使用广播模式并已接入:Action=`android.intent.action.SCANRESULT`、字符串 Extra=`value`。设备型号不构成开发、发布或验收门禁;继续通过设备适配层接入,不绑定单一厂商 SDK。 - 正式作业已确认为在线模式:断网不能开始正式拣货、提交、完成任务或推进 `LOADED`,不实现离线业务提交队列;恢复网络后提示员工刷新重试。 - 明确使用的工具链和发布流程后,补充准确的依赖版本、安装、调试、测试和打包命令,并同步更新 `README.md` 与本文件。 @@ -39,14 +39,25 @@ - 状态转换、扫码分类与页面契约使用 `node --test tests/*.test.mjs` 验证;新增本地行为时继续补充对应自动化测试。 - 当前原型没有可核实的 HBuilderX/Android 构建命令,不得声称打包或真机检查已通过;交付说明应明确实际验证方式、设备、系统版本和仍未覆盖的风险。 -## 一期/二期/三期快速索引 +## 页面与能力快速查询 + +| 目标 | 入口 | 继续查询 | +|---|---|---| +| 页面注册与启动 | `pages.json`、`main.js`、`App.vue` | 全局样式和应用生命周期 | +| 登录与会话 | `pages/login/`、`stores/session.js` | 远程鉴权适配和会话清理 | +| 工作台与模块入口 | `pages/home/`、`pages/module/`、`pages/operation/` | `data/demo-data.js` 与页面禁用规则 | +| 拣货任务与扫码 | `pages/picking/`、`stores/picking.js` | `api/pda-loading.js`、`utils/scan-broadcast.js`、`components/ScanTargetInput.vue` | +| 扫描诊断 | `pages/scanner-test/` | `utils/scan-broadcast.js` 与广播 Action/Extra | +| 作业记录与人员 | `pages/history/`、`pages/profile/` | session 与本地敏感数据清理 | + +## 分期范围索引 按阶段处理 PDA 任务时,先核对阶段文档,再从 `pages.json` 定位页面,沿页面 → `stores/` → `utils/` → 设备适配层检查;本表只描述 PDA 作业端,不代表后台或 Client 已具备对应能力。 -| 阶段 | 当前状态与边界 | PDA 入口 | 开始前核对 | +| 阶段 | PDA 范围边界 | 代码入口 | 开发首读 | |---|---|---|---| | 一期:头程订单基础闭环 | PDA 仅保留静态登录、工作台和出库拣货原型;是否与一期头程订单/仓库任务同步上线尚未确认,不得将本地状态当作服务端闭环。 | `pages/login/`、`pages/home/`、`pages/picking/`、`stores/session.js`、`stores/picking.js`;页面注册见 `pages.json`。 | `../../docs/一期/README.md`、`../../docs/一期/一期头程订单闭环设计.md`、`README.md`;确认设备、同步范围、鉴权和服务端任务契约后再接 API。 | | 二期:到仓与计费 | 不在二期实现 PDA 到仓测量、称重、托盘/库位或费用确认;这些能力由 Admin/Client/Backend 完成,PDA 继续维持静态原型。 | 现有 `pages/picking/` 不扩展二期业务;扫码适配保持在 `utils/scan-broadcast.js` 与 `components/ScanTargetInput.vue`。 | `../../docs/二期/README.md`、`../../docs/二期/二期需求优化版-v2-测量计费入库主流程.md`;确认二期终点 `WAIT_SPLIT + APPROVED + CONFIRMED`,不得提前接入分柜。 | -| 三期:国内出仓 | PDA 承接分柜后拣货和装柜证据。在线作业、进入即开始、持久化草稿、批量提交、异常阻断、轻量幂等/版本和五类多图规则已确认;一柜多人、换班释放、最终 `LOADED` 触发和设备发布仍待确认。 | 复用 `pages/picking/`、`stores/picking.js`、`utils/scan-broadcast.js` 和远程 API 适配;当前内存草稿、单类型照片替换等实现不得作为最终契约。 | `../../docs/三期/README.md`、`../../docs/三期/三期开发规划.md`、`../../docs/三期/三期需求确认表.md`、`README.md`;按已确认子规则继续开发,待定项保持可扩展,不自行固定。 | +| 三期:国内出仓 | PDA 承接分柜后拣货和装柜证据。在线作业、进入即开始、持久化草稿、批量提交、异常阻断、轻量幂等/版本、五类多图和单柜次单作业员均已确认;`LOADED` 由服务端统一门禁推进。PDA 采用 uni-app 开发并支持在线更新。 | 复用 `pages/picking/`、`stores/picking.js`、`utils/scan-broadcast.js` 和远程 API 适配;当前内存草稿、单类型照片替换等实现不得作为最终契约。 | `../../docs/三期/README.md`、`../../docs/三期/三期开工门禁.md`、`../../docs/三期/三期开发规划.md`、`../../docs/三期/三期需求确认表.md`、`README.md`;按已确认子规则继续开发,扫描适配保持厂商无关。 | -阶段边界:PDA 不承担客户工作台或后台配置;一期仅验证原型与同步范围,二期不提前引入 PDA/分柜/装柜。三期已确认的 PDA 子规则可进入开发和契约测试,仍待确认的多人协作、完成触发和真机发布不得自行定稿。 +阶段边界:PDA 不承担客户工作台或后台配置;一期仅验证原型与同步范围,二期不提前引入 PDA/分柜/装柜。三期不支持多人协作、任务接管或换班释放;发布采用既定 uni-app 在线更新安排。 diff --git a/README.md b/README.md index 27e1dc0..c8636e1 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ 正式 PDA 作业必须联网。断网时不能开始正式拣货、提交、完成任务或推进 `LOADED`;网络恢复后由员工刷新并重试。提交使用对员工不可见的轻量幂等键和服务端版本:重复提交返回原结果,版本冲突提示刷新。项目不建设离线业务提交队列。 -拣货页面和本地交互以 `../../docs/悦/PDA拣货/pda-picking.html` 为依据。Android App 端已按广播模式接入:Action=`android.intent.action.SCANRESULT`,字符串 Extra=`value`;拣货页的扫码框仅显示广播值和当前接收目标样式,不获取输入焦点或弹出软键盘,页面隐藏或销毁时会注销接收器。当前保留演示任务,同时已有三期拣货、装柜证据和完成操作的远程接口适配;只有会话包含真实 Token、客户标识和入仓单标识时才会请求服务端,不会把缺少契约字段的本地操作模拟为远程成功。具体 PDA 型号、Android 版本、正式鉴权、任务领取、打包发布流程和目标设备真机验收仍待完成。 +拣货页面和本地交互以 `../../docs/悦/PDA拣货/pda-picking.html` 为依据。PDA 采用 uni-app 开发并支持在线更新;Android App 端已按广播模式接入:Action=`android.intent.action.SCANRESULT`,字符串 Extra=`value`;拣货页的扫码框仅显示广播值和当前接收目标样式,不获取输入焦点或弹出软键盘,页面隐藏或销毁时会注销接收器。当前保留演示任务,同时已有三期拣货、装柜证据和完成操作的远程接口适配;只有会话包含真实 Token、客户标识和入仓单标识时才会请求服务端,不会把缺少契约字段的本地操作模拟为远程成功。设备型号不构成开发、发布或验收门禁;正式鉴权和任务领取按服务端契约接入。 扫码输入统一使用 `components/ScanTargetInput.vue` 展示和选择目标,组件本身不注册广播。每个业务页面只在 `onShow` 注册一次广播、在 `onHide`/`onUnload` 注销,并通过页面内的 `activeScanField` 将广播值路由到当前选中的字段。多输入框页面应由用户点击切换蓝色“当前扫码”目标,避免多个输入框或隐藏页面同时消费同一次扫描。 @@ -58,7 +58,7 @@ node --test tests/*.test.mjs - 提交真实批量拣货明细,并覆盖幂等重放、版本冲突刷新和异常挂起。 - 将五类证据从单槽位模型改为多图追加,补错误记录作废及 Admin 人工上传。 - 在目标 Android PDA 上验证状态栏、导航栏、软键盘避让、连续扫描、重复码、低电量和前后台切换。 -- 确认具体设备型号、Android 版本、HBuilderX/Android 打包和正式发布流程。 +- 按既定 uni-app 在线更新安排完成正式发布,并在目标设备验证扫描、网络和前后台行为。 ## 仍待产品确认