60ff42d0ce0b64b2eda707d492d91d8147cb07f7
柏悦物流海外版 PDA
独立的 uni-app Vue 3 App 工程,正式产品形态是安装在海外仓手持 PDA 上的 App。工程不依赖国内 PDA 源码或仓库外共享目录,可独立安装依赖、运行、编译和发布;H5 只用于浏览器调试和编译门禁,不是最终交付形态。
首版工作台按四期边界提供柜号级真实入仓作业,以及库内作业、换标作业和现场查询原型。登录使用国内 Auth 统一签发的双 Token;海外入仓请求统一经 gateway-overseas,不得请求国内 Firstleg/Warehouse 业务接口。
本地运行与检查
Node.js 22 环境:
npm install
npm test
npm run dev:h5
开发环境可在不提交的 .env.local 中配置 VITE_PDA_DEV_USERNAME、VITE_PDA_DEV_PASSWORD,登录页会自动预填;生产 App 构建始终忽略这两个值,账号必须具备 WAREHOUSE_PICKER、lastleg:pda:operate 和有效海外仓绑定。
生产编译:
npm run build:h5
npm run build:app
build:h5生成浏览器调试资源,用于页面和模板编译检查;build:app生成正式 App 的离线打包资源;- 生成可安装 APK/IPA 需使用 HBuilderX App 开发版执行云打包或配置原生离线打包环境。
正式 App 打包前必填
- 使用海外版所属的 DCloud 账号为本应用获取独立 AppID,写入
src/manifest.json的appid;不得复用国内版 AppID。 - 确认 Android 包名
com.baiyuelogistics.pda.overseas,如公司已有正式命名规范,在首次正式签名前修改。 - 配置海外版独立 Android 签名证书;证书、密码和账号信息不得提交仓库。
- 复制
.env.example为本机.env.local,配置 Auth 与海外网关地址;环境文件不提交仓库。 - 在目标海外 PDA 上验证扫描广播 Action=
android.intent.action.SCANRESULT、Extra=value。
当前实现边界
- 已复用并内置:登录壳、PDA 样式、扫码广播、声音反馈、导航、网络检测、图标及
uni_modules。 - 已隔离:国内集装箱拣货、装柜证据、国内 Firstleg API、国内任务状态和国内本地草稿。
- 入仓页面已接待卸柜候选、柜详情与账号锁柜、三类角色照片签收、current 恢复、SKU/箱唛与既有物理托盘解析、FBA 按 SKU 和箱数收货、OVERSEAS 逐箱收货、逐入仓码核平及整柜完成的真实 API;409 会引导返回当前柜,错误会保留业务码、requestId 与 traceId。
- 入仓请求不手填客户、计划、分配、仓库或库位标识;身份与当前柜范围由 Token、Gateway 和服务端会话确定。页面同时支持 PDA 广播扫码与 H5 人工输入。
- 登录、恢复和刷新会 fail-closed 校验国内/海外双 Token 的同一平台操作主体、
WAREHOUSE_PICKER、lastleg:pda:operate及同一冻结海外仓;并发海外 401 共享一次国内 refresh,校验完成后原子替换双 Token并将原请求或照片上传重放一次。 - 库存盘点、商品移库、托盘管理、换标收货/执行/复核以及库存/库位/托盘查询当前缺少海外 PDA 专用 Controller、权限和 Token 冻结仓库范围契约,入口已禁用;不会调用平台、客户或内部接口,也不会模拟成功。
- 本地契约测试与 H5/App 资源编译不等于真实开发环境 HTTP 或 PDA 真机验收。
Languages
Vue
60.5%
JavaScript
34.5%
SCSS
3.9%
TypeScript
0.6%
CSS
0.5%