弹窗组件
在设计器中,您可以创建和管理弹窗组件,以便在表单中按需打开和使用。弹窗可用于展示额外信息、接受用户输入或进行其他交互操作。

数据结构
打开弹窗
使用 api.open 方法可以打开指定的弹窗。id 为弹窗的ID,formData 可选,用于设置弹窗中的默认表单值。
ts
type Open = (id: string, formData?: Object, onSubmit?: (formData: Object, api: Api) => void) => void;关闭弹窗
使用 api.close 方法可以关闭指定的弹窗。
ts
type Close = (id: string) => void;打开弹窗
在组件的事件中调用 api.open 方法即可打开弹窗。例如:
js
function onChange($inject) {
$inject.api.open('ref_F2vulxvqc841dac');
}手动关闭弹窗
在组件的事件中调用 api.close 方法即可关闭弹窗。例如:
js
function onChange($inject) {
$inject.api.close('ref_F2vulxvqc841dac');
}打开弹窗并设置表单默认值
api.open 方法的第二个参数可以设置弹窗表单的默认值。例如:
js
function change($inject) {
$inject.api.open('ref_F2vulxvqc841dac', {
name: 'name'
});
}监听弹窗表单的提交事件
api.open 方法的第三个参数可以设置表单提交回调。例如:
js
$inject.api.open('ref_F2vulxvqc841dac', {
name: 'name'
}, (formData, api) => {
// todo
});获取弹窗中表单数据
通过弹窗组件的 fapi 可以操作子表单。例如:
js
const api = $inject.api.top.el('ref_F2vulxvqc841dac').fapi;
const formData = api.formData();注意: 必须在弹窗渲染后才可以获取
提交表单
通过弹窗组件的 submit 事件可以提交表单。例如:
js
function submit($inject) {
//todo 提交表单
}在弹窗中触发最外层表单的提交
使用 api.top.submit 方法可以手动触发最外层表单的提交。例如:
js
function confirm($inject) {
$inject.api.top.submit();
}Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| formData | Object | - | 表单数据对象 |
| options | Object | { submitBtn: false, resetBtn: false } | 表单配置选项 |
| rule | Array | - | 表单生成规则 |
| autoClose | Boolean | true | 是否自动关闭对话框 |
| footer | Boolean | true | 是否显示底部按钮 |
| preview | Boolean | - | 是否为预览模式 |
| disabled | Boolean | - | 是否禁用表单 |
| modelValue | Object | - | 双向绑定的表单数据 |
| formCreateInject | Object | - | FormCreate注入对象 |
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| confirm | fapi | 确认按钮点击事件 |
| submit | formData, fapi, close | 表单提交成功事件 |
| validateFail | e, fapi | 表单验证失败事件 |
| update:modelValue | formData | 表单数据更新事件 |
Methods
| 方法名 | 参数 | 说明 | 返回值 |
|---|---|---|---|
| formChange | - | 表单数据变化处理 | - |
| open | formData, handleSubmit | 打开对话框 | - |
| close | - | 关闭对话框 | - |
| handleConfirm | - | 确认按钮点击处理 | - |
Data
| 数据名 | 初始值 | 说明 |
|---|---|---|
| visible | false | 对话框显示状态 |
| max | false` | 是否最大化 |
| fapi | {} | 表单API实例 |
| value | {} | 表单数据值 |
| formRule | [] | 表单规则 |
| handleSubmit | undefined | 提交处理函数 |
| Form | markRaw(formCreateInject.form.$form()) | Form组件实例 |


