Skip to content

fix: 修复移动端转办动作崩溃并补齐 triggerFrontEvent 路径审批操作拦截器 - #47

Merged
xlorne merged 1 commit into
devfrom
feature/fix-mobile-transfer-props-and-interceptor
Aug 17, 2026
Merged

fix: 修复移动端转办动作崩溃并补齐 triggerFrontEvent 路径审批操作拦截器#47
xlorne merged 1 commit into
devfrom
feature/fix-mobile-transfer-props-and-interceptor

Conversation

@xlorne

@xlorne xlorne commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

背景

关联 issue:#46(修复 mobile 端转办选人崩溃并补齐 triggerFrontEvent 路径的审批操作拦截器)。本次按 TDD(先红后绿)落实两个问题。

问题一:含「转办」动作的流程在 mobile 端打开即崩溃

  • 根因:flow-mobile-approvaltransfer.tsx 渲染业务方覆盖视图时未透传 props(<ActionView />),仅转办缺失——add-audit.tsx / delegate.tsx / PC 端均传 {...props}
  • 影响:业务方 PersonSelectModal 收到 action={undefined},其 useEffect 依赖 [action.id] 求值崩溃。
  • 修复:transfer.tsx 渲染 ActionView 时补传 {...props}

问题二:移动端 triggerFrontEvent 自定义按钮绕过审批操作拦截器

  • 根因:该路径不调用 action(),移动端此前直接 emit,未执行拦截器(PC 端已处理)。
  • 修复:新增 dispatchApprovalFrontEvent(先 interceptAction,全部放行才 emit,任一拦截返回 false 则终止),并接入 flow-approval-actions.tsxhandlerAction 与 footer 按钮两处派发点,与 PC 语义对齐。

测试

  • 新增 4 个用例:转办覆盖视图透传 action(回归保护)+ 前端触发事件拦截器放行/拦截时的派发行为。
  • 全量跑 flow-mobile-approval 测试 12 个用例通过;rslib build 编译通过。
  • 附带 changeset(@coding-flow/flow-mobile-approval patch)。

Closes #46

🤖 Generated with Claude Code

问题一:转办动作选人弹框崩溃
- flow-mobile-approval 的 transfer.tsx 渲染业务方覆盖视图时未透传
  props,仅转办缺失(add-audit/delegate/PC 端均传 {...props}),
  导致覆盖视图 action=undefined,useEffect 依赖 [action.id] 求值崩溃。
- 修复:transfer.tsx 渲染 ActionView 时补传 {...props}。

问题二:triggerFrontEvent 自定义按钮绕过拦截器
- 该路径不调用 action(),移动端此前直接 emit,未执行审批操作拦截器
  (PC 端已处理)。新增 dispatchApprovalFrontEvent:全部拦截器放行后
  才派发事件,任一拦截返回 false 则终止,与 PC 语义对齐。
- 接入 flow-approval-actions.tsx 的 handlerAction 与 footer 按钮两处派发点。

均为 TDD 先行:新增 4 个用例覆盖 props 透传与拦截器放行/拦截行为。

GitHub: fix #46

Co-Authored-By: Claude <noreply@anthropic.com>
@xlorne
xlorne merged commit 858f1f6 into dev Aug 17, 2026
1 check passed
@xlorne
xlorne deleted the feature/fix-mobile-transfer-props-and-interceptor branch August 17, 2026 03:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant