fix(mobile): 修复协议单保存前项目校验异常 #79

Merged
cykj merged 1 commits from codex/issue-78-protocol-save into V2.0 2026-11-10 01:24:11 +00:00
Owner

Summary

小程序市场专员、地区经理的协议表单将循环中的项目组件引用当作单实例,保存前抛出 TypeError,API 未被调用。函数 ref 保持单实例并保留项目校验。

 保存 → 项目校验
- 数组.validate() → 异常中断,无请求
+ 组件.validate() → 正常提示或发送保存请求

范围:mobile-oa-h5 协议单新增/编辑。关联工单 #78。

Evidence

  • Before: node --test mobile-oa-h5/src/market/protocol-save-ref.test.js:10/10 失败,projectAssignment.value?.validate is not a function。
  • After: 同一命令 10/10 通过;node --test mobile-oa-h5/src/market/*.test.js:326/326 通过。覆盖两角色新增、编辑及项目必选/加载/失败提示。
  • npm --prefix mobile-oa-h5 run build 通过(已有大分块警告);微信 WebView 真机及线上运行尚未验收。服务未启停、未部署。
  • 测试提交 f343f126,目标基线 10326313。

Merge Danger

Door: two-way

Blast Radius: mobile

仅修改组件 ref 绑定,无接口、数据库、布局变化。线上发布后需两角色验证新增保存。

## Summary 小程序市场专员、地区经理的协议表单将循环中的项目组件引用当作单实例,保存前抛出 TypeError,API 未被调用。函数 ref 保持单实例并保留项目校验。 ```diff 保存 → 项目校验 - 数组.validate() → 异常中断,无请求 + 组件.validate() → 正常提示或发送保存请求 ``` 范围:mobile-oa-h5 协议单新增/编辑。关联工单 #78。 ## Evidence - **Before:** `node --test mobile-oa-h5/src/market/protocol-save-ref.test.js`:10/10 失败,`projectAssignment.value?.validate is not a function`。 - **After:** 同一命令 10/10 通过;`node --test mobile-oa-h5/src/market/*.test.js`:326/326 通过。覆盖两角色新增、编辑及项目必选/加载/失败提示。 - `npm --prefix mobile-oa-h5 run build` 通过(已有大分块警告);微信 WebView 真机及线上运行尚未验收。服务未启停、未部署。 - 测试提交 f343f126,目标基线 10326313。 ## Merge Danger **Door:** two-way **Blast Radius:** mobile 仅修改组件 ref 绑定,无接口、数据库、布局变化。线上发布后需两角色验证新增保存。
cykj added 1 commit 2026-11-10 01:21:55 +00:00
循环模板内字符串 ref 被 Vue 收集为数组,调用 validate 时在请求前抛错。改用函数 ref 保持单组件实例,并覆盖两角色新增、编辑及项目校验提示。关联工单 #78。
cykj merged commit e06f89dcf6 into V2.0 2026-11-10 01:24:11 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cykj/zkxw#79