# 移动 H5 开发约束 适用 `mobile-oa-h5/`,与[根规则](../AGENTS.md)同时生效。命令见 [README](README.md)。 ## 工程边界 - Vue 3、Vant、Vite、form-create;既有代码为 JavaScript。使用 npm 与 `package-lock.json`。 - 工程承载 OA 表单、审批详情和市场模块,不仅是 OA;入口 `src/main.js`,路由 `src/router.js`,市场子路由 `src/market/routes.js`。 - `vite.config.js` 的 base 为 `/oa-h5/`,使用 History 路由。修改必须同时核对 Nginx、Docker 与 uni-app WebView URL,不能只改前端路径。 - 宿主在 `../mobile-h5/`;Token、消息事件、关闭/返回、下载和平台差异需两端配套维护。 - 复用 `src/utils/` 的请求与附件工具、`src/market/` 的模块契约及表单逻辑、`src/oa/` 的审批运行组件,不能为同类模块复制另一套请求和权限逻辑。 ## UI 与契约 - 移动端与 Web 管理端分别遵循各自规范,不照搬 Element Plus、Web 自动导入规则或主色。 - [移动端规范](../docs/miniprogram-ui-spec-sanqiang.md)品牌绿为 `#0a9f6d`;`src/styles/tokens.css` 当前为 `#22c55e`,与 uni-app Token 对齐但与规范存在差异。涉及改色须先核对设计依据,本轮清理不改变色板。 - 保持 Vant 移动布局、安全区、44×44px 点击目标、附件与表单的既有交互;新增模式先明确移动规范,不使用 Web 弹窗规则替代。 - 字段、金额、状态、租户和数据权限与后端保持一致;隐藏控件不能替代后端鉴权。 - 样本编码及子行 ID 的稳定性遵循根规则,修改协议保存时核对跨端字段映射。 ## 验证与交付 - 运行受影响的 `src/**/*.test.js`,涉及 UI/路由/构建时执行 `npm run build`;单元测试不能替代 WebView 真机验收。 - Docker 会将此工程与 Web 管理端一起打包,通过 `/oa-h5/` 提供访问;`dist/` 为构建产物,不提交。 - 前端环境变量会进入客户端包,不放真实服务端密钥;测试不覆盖本地生产配置。