FlowBusinessForm 流程业务表单路由
基于 formUrl prop 自动解析和加载业务表单组件的流程表单路由组件。使用 Vite 的 import.meta.glob 动态匹配 Vue SFC。
基本用法
vue
<template>
<FlowBusinessForm
:task-id="taskId"
:process-instance-id="processInstanceId"
form-url="/leave/LeaveApproveForm"
:variables="flowVariables"
:approval-policy="policy"
:read-only="isReadOnly"
@submit="handleSubmit"
/>
</template>
<script setup>
import { FlowBusinessForm } from '@/components/common'
</script>Props
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
taskId | String | null | 任务 ID |
businessKey | String | null | 业务键 |
processInstanceId | String | null | 流程实例 ID |
taskDefKey | String | null | 任务定义键 |
processDefKey | String | null | 流程定义键 |
formUrl | String | null | 表单组件相对路径,如 /leave/LeaveApproveForm |
variables | Object | {} | 流程变量对象 |
approvalPolicy | Object | {} | 审批操作权限和处置要求 |
initialTaskContext | Object | null | 父级预加载的业务表单上下文,避免重复请求 |
readOnly | Boolean | false | 只读模式(已完成任务/发起人查看) |
submitting | Boolean | false | 父级审批提交进行中状态 |
submittingAction | String | '' | 父级当前正在提交的审批操作 |
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
submit | data | 动态业务表单发出提交时向上传递 |
cancel | — | 动态业务表单发出取消时向上传递 |
Slots
| 插槽名 | 说明 |
|---|---|
actions | 自定义操作按钮,替代动态表单的 #actions 插槽 |
内部机制
- 通过
import.meta.glob('@/views/**/*.vue')扫描所有页面组件 - 将
formUrl映射到对应 SFC,大小写不敏感匹配 - 自动将所有流程上下文 props 传递给动态加载的组件
