2026-08-11-mobile-oa-form-sink-spike-notes.md 4.6 KB

OA 表单水槽 Spike 记录

  • 日期:2026-08-11
  • 环境:微信开发者工具 / 真机型号:待填
  • H5 地址:http://<局域网IP>:5178/oa-h5/oa-form-sink(mobile-h5/utils/config.js → OA_H5_ORIGIN)
  • 结果:_待真机验收_(通过 / 阻塞)
  • 工程状态:
    • mobile-oa-h5 水槽页 + 自研 type stub 已落地,npm run build 通过
    • 小程序首页「表单水槽测试」菜单 + 整页 web-view 已落地
    • 开发者工具 / 真机打开 web-view 无白屏
    • 基础字段可填、自研 stub 可见、校验按钮可用
  • 问题列表:
    1. (验收时填写)
  • 下一步:P1(dept/person)与套件;正式 /oa-start 联调

P0 真实组件(已落地)

  • money:数字输入 + 人民币大写
  • upload:van-uploader → /web/admin/attachment/upload(需 URL token)
  • receiveAccount:底部多选弹层 + options API
  • relatedApproval:关联列表 + 候选弹层(mine/done/cc)

P1 真实组件(已落地)

  • person / dept / post:底部选择弹层,值 { id, name }(部门展示全路径)
  • ownerPerson / ownerDept:单选封装,allowModify 控制可否改选

P2 套件(已落地)

  • leaveKit / overtimeKit / confirmationKit / resignationKit / tripKit:与 Web 相同为 slot 容器,子字段由 children 渲染
  • tripItinerary:行程多段编辑(交通/城市/日期时段)
  • 时长/天数/owner 默认值等运行时:已移植到 mobile-oa-h5/src/oa/kit/,在 /oa-start 同步(加班节假日走 /cn-holiday/range)

附件拍照(真机 / 微信 web-view)

  • 支持:van-uploader 在微信内打开图片时,系统选择器通常提供「拍照」和「从相册选择」
  • 默认不写死 capture="camera",以便同时保留相册;若业务只要拍照可传 props.capture = 'camera'
  • 非图片附件走文件选择;需 HTTPS 业务域名与有效 token

本地联调提示

  1. cd mobile-oa-h5 && npm run dev
  2. 将 OA_H5_ORIGIN 改为手机可达地址(不要用 127.0.0.1 给真机)
  3. 微信开发者工具可勾选「不校验合法域名」;体验版须配置业务域名
  4. 小程序首页 →「表单水槽测试」或「发起审批」

阶段二进度(2026-08-11)

  • H5 运行时 API(templates / flow-preview / drafts / instances)
  • schema 最小预处理 + /oa-start 正式页 + OaFlowPreview
  • 小程序模板列表 + web-view 发起页
  • GET /api/mini/menus + SQL 种子 docs/sql/mobile_menu_oa_start.sql + 首页拉菜单(失败时 fallback)
  • Task 8 套件运行时(请假/加班/出差/转正/离职/owner 默认值)已移植并接入 /oa-start
  • Task 9 静态核对:oa_form_type_stats.py(2026-08-11)已发布模板 27 个;CUSTOM type 均与 register-components.js 对齐,无缺口
  • 测试库执行 SQL 并在角色中勾选「发起审批」
  • 真机:列表 → 填写 → 草稿/提交 全链路
  • 真机:含套件模板与 Web 对照回归

阶段二验收清单(Task 9)

# 项 状态 说明
1 首页菜单 代码就绪 / 待库授权 SQL + /api/mini/menus + 首页;需执行种子并勾角色
2 模板列表 代码就绪 / 待真机 pages/oa/start/index
3 打开填写 代码就绪 / 待真机 web-view → /oa-start + token
4 动态表单 代码就绪 / 待真机 自研 type 已注册;库内 CUSTOM 无未注册
5 审批流 代码就绪 / 待真机 OaFlowPreview + initiator_select
6 暂存 代码就绪 / 待真机 drafts API
7 提交 代码就绪 / 待真机 instances + navigateBack
8 部署 配置已写 / 待发布验证 Nginx /oa-h5/;OA_H5_ORIGIN=https://www.chengyantek.cn/oa-h5

type 统计摘要(zkxw-sc,published_latest_apps=27):
CUSTOM 出现:upload(31) money(13) relatedApproval(11) receiveAccount(7) dept(5) person(3) overtimeKit(2) + 各套件/owner/post/trip 各 1。
H5 已注册:money/upload/receiveAccount/relatedApproval/person/dept/post/owner*/leaveKit/overtimeKit/confirmationKit/resignationKit/tripKit/tripItinerary/inputNumber。

真机验收最小步骤:

  1. 执行 docs/sql/mobile_menu_oa_start.sql,角色勾选「发起审批」,重启后端
  2. 部署 mobile-oa-h5 dist → /root/zkxw/static/oa-h5(或本地 npm run dev + 可达 OA_H5_ORIGIN)
  3. 小程序:首页 → 发起审批 → 选模板 → 填表 → 暂存 → 再开草稿 → 提交
  4. 选含请假/加班的模板,改开始/结束时间,对照 Web 核对时长