表单设计器——VFormDesigner
属性(prop)
属性名称 | 属性值说明 | 默认值 |
---|---|---|
field-list-api | 配置获取后端字段列表接口对象 | 默认为null 接口对象格式为: { URL: ‘字段列表接口请求地址’, nameKey: ‘fieldName’, labelKey: ‘fieldLabel’ } 详情参见:字段接口文档 |
banned-widgets | 配置禁止设计器显示的组件 | 默认为[],数据格式为组件type名称的数组,比如: [‘table’, ‘rate’, ‘switch’] |
designer-config | 配置设计器初始化界面显示设置 | 默认值为: { //是否显示语言切换菜单 languageMenu: true, //是否显示GitHub、文档等外部链接 externalLink: true, //是否显示表单模板 formTemplates: true, //是否禁止修改唯一名称 widgetNameReadonly: false, //是否显示组件事件属性折叠面板 eventCollapse: true, //是否显示清空设计器按钮 clearDesignerButton: true, //是否显示预览表单按钮 previewFormButton: true, //是否显示导入JSON按钮 importJsonButton: true, //是否显示导出JSON器按钮 exportJsonButton: true, //是否显示导出代码按钮 exportCodeButton: true, //是否显示生成SFC按钮 generateSFCButton: true, //工具按钮栏最大宽度(单位px) //如新增按钮后不可见,请调大 //如右侧空白区域过大,请调小 toolbarMaxWidth: 420, //工具栏按钮最小宽度(单位px) //值必须小于toolbarMaxWidth toolbarMinWidth: 300, //表单设计器预设CSS代码 presetCssCode: ‘’, //表单设计器初始化自动清空内容 / 如设置为true,则刷新页面时也会清空设计器画布区域,慎用!/ resetFormJson: false, //设置自定义产品名称(仅Pro) productName: ‘’, //设置自定义产品标题(仅Pro) productTitle: ‘’, //是否显示顶部LOGO条(仅Pro) logoHeader: true, } |
global-dsv | 全局数据源变量(Pro版支持) dsv即Datasource Variables(数据源变量)缩写。 |
默认值为{},数据格式为: { “myTestURL”: “xxx”, “token”: “aabbcc”, “countLimit”: 600 //可以自由添加键值对 } 在数据源中可使用 DSV[“myTestURL”]、 DSV[“token”]、 DSV[“countLimit”] 获取上述变量值。 |
插槽
名称 | 说明 | |
---|---|---|
customToolButtons | 用于定制表单设计器的自定义工具按钮,位于默认工具按钮的右侧。 | |
原生事件
原生事件可以在Vue模板中用@事件名称或JS代码中调用Vue实例的$on添加事件处理方法。
事件名称 | 说明 | 回调参数 |
---|---|---|
暂无 |
交互事件
交互事件可在表单设计器中编写事件处理代码。
事件名称 | 说明 | 回调参数 |
---|---|---|
暂无 |
API方法
方法名 | 说明 | 参数 |
---|---|---|
changeLanguage | 修改界面显示语言 | string:’zh-CN’、’en-US’ |
setFormJson | 设置表单JSON对象 | string/object |
getFormJson | 获取表单JSON对象 | — |
clearDesigner | 清空设计器画布 | — |
refreshDesigner | 刷新设计器画布(几乎用不到) | — |
previewForm | 打开—预览表单—弹窗 | — |
importJson | 打开—导入表单JSON—弹窗 | — |
exportJson | 打开—导出表单JSON—弹窗 | — |
exportCode | 打开—导出Vue/HTML代码—弹窗 | — |
generateSFC | 打开—生成SFC组件代码—弹窗 | — |
getFieldWidgets | 获取表单JSON中的所有字段,返回对象数组,格式如下: [ { type: String, name: String, field: Object }, …, ] |
— 无参数 注意:该方法获取的是formJson中的字段JSON定义,并非渲染后的字段组件。 |
getContainerWidgets | 获取表单JSON中的所有容器,返回对象数组,格式如下: [ { type: String, name: String, container: Object }, …, ] |
— 无参数 注意:该方法获取的是formJson中的容器JSON定义,并非渲染后的容器组件。 |
getWidgetRef | 获取设计器组件实例 | (widgetName, showError): widgetName,组件名称 showError=true/false,如组件不存在是否显示错误 |
getSelectedWidgetRef | 获取设计器选中的组件实例 | — |
表单渲染器——VFormRender
属性(prop)
属性名称 | 属性值说明 | 默认值 |
---|---|---|
form-json | 表单对象JSON 注意:如表单Json是从后端接口异步获取到的,请使用下述的API方法——setFormJson()赋值,使用form-json属性传值则会导致表单校验异常或表单渲染不成功。 |
| 无默认值 |
| option-data | 表单radio、checkbox、select、cascader组件的选择项集合 | 默认值为空对象:{},
属性值格式如下:
{
‘gender’: [
{label: ‘男’, value: ‘1’},
{label: ‘女’, value: ‘2’}
],
‘paymentType’: [
{label: ‘支付宝’, value: ‘alipay’},
{label: ‘微信’, value: ‘wechat’}
]
} |
| form-data | 表单数据对象
注意:form-data属性通常用于表单初始化时给表单传递回显数据,如需多次修改表单数据或发现表单部分数据失去响应式更新,请调用下述的setFormData(formData)方法。 | 默认值为空对象:{},
属性值格式如下:
{
‘gender’: ‘2’,
‘paymentType’: ‘wechat’
‘subForm01’: [
{‘price’: ‘88.00’, ‘count’: ‘12’},
{‘price’: ‘199.00’, ‘count’: ‘16’}
]
} |
| global-dsv | 全局数据源变量(Pro版支持)
dsv即Datasource Variables(数据源变量)缩写。 | 默认值为{},数据格式为:
{
“myTestURL”: “xxx”,
“token”: “aabbcc”,
“countLimit”: 600
}
在数据源中可使用
DSV[“myTestURL”]、
DSV[“token”]、
DSV[“countLimit”]
获取上述变量值。 |
| | | |
原生事件
原生事件可以在Vue模板中用@事件名称或JS代码中调用Vue实例的$on添加事件处理方法。
事件名称 | 说明 | 回调参数 |
---|---|---|
buttonClick | button组件被点击时触发 注意:如果button组件的交互事件onClick属性不为空,则不会触发buttonClick原生事件,两者不会同时生效。 |
buttonWidget:被点击的按钮组件 |
appendButtonClick | input组件的附加按钮被点击时触发 | widget:input组件 |
formChange | 表单数据改变后触发 | (fieldName, newValue, oldValue, formModel, subFormName, subFormRowIndex): fieldName,触发本事件的字段名 newValue,字段新值 oldValue,字段旧值 formModel,表单数据对象 如果是子表单数据改变,则还会返回下述两个回调参数: subFormName, 子表单名称 subFormRowIndex, 子表单行索引 |
交互事件
交互事件可在表单设计器中编写事件处理代码。
事件名称 | 说明 | 回调参数 |
---|---|---|
onFormCreated | 表单创建后触发 | — |
onFormMounted | 表单挂载后触发 | — |
onFormDataChange | 表单数据改变后触发 | (fieldName, newValue, oldValue): fieldName,触发本事件的字段名 newValue,字段新值 oldValue,字段旧值 |
API方法
方法名 | 说明 | 参数 |
---|---|---|
changeLanguage | 修改界面显示语言 | string:’zh-CN’、’en-US’ |
setFormJson | 动态加载表单JSON对象 | string/object |
getWidgetRef | 获取容器或字段组件 | (widgetName, showError): widgetName,组件名称 showError=true/false,如组件不存在是否显示错误 |
getNativeForm | 获取内嵌的el-form组件 | — |
validateForm | 表单数据是否验证通过 | callback(valid),回调函数,接受valid参数(true/false) |
getFormData | 获取表单数据对象 | (needValidation = true),获取表单数据时是否开启表单校验,默认开启。 注意:开启表单校验,返回的是一个Promise对象,否则返回数据对象。 |
setFormData | 设置表单数据对象 | formData,表单数据JSON对象 |
getFieldValue | 获取表单单个字段值 | fieldName,字段名称 |
setFieldValue | 设置表单单个字段值 | (fieldName, fieldValue):字段键值对 |
reloadOptionData | 刷新选项类型字段的选项数据(选项数据是从option-data属性传入的) | widgetNames,组件名称,格式为字符串或字符串数组,不传该参数则刷新所有选项类型字段 |
getSubFormValues | 获取子表单数据对象 | subFormName,子表单名称 |
disableForm | 禁用表单编辑 | — |
enableForm | 启用表单编辑 | — |
resetForm | 重置表单数据,并清除校验状态 | — |
disableWidgets | 一个或多个组件禁用编辑 | widgetNames,组件名称,格式为字符串或字符串数组 |
enableWidgets | 一个或多个组件启用编辑 | widgetNames,组件名称,格式为字符串或字符串数组 |
hideWidgets | 隐藏一个或多个组件 | widgetNames,组件名称,格式为字符串或字符串数组 |
showWidgets | 显示一个或多个组件 | widgetNames,组件名称,格式为字符串或字符串数组 |
getFieldWidgets | 获取表单JSON中的所有字段,返回对象数组,格式如下: [ { type: String, name: String, field: Object }, …, ] |
— 无参数 注意:该方法获取的是formJson中的字段JSON定义,并非渲染后的字段组件,如需获取字段组件,需要进一步调用getWidgetRef()方法。 |
getContainerWidgets | 获取表单JSON中的所有容器,返回对象数组,格式如下: [ { type: String, name: String, container: Object }, …, ] |
— 无参数 注意:该方法获取的是formJson中的容器JSON定义,并非渲染后的容器组件,如需获取容器组件,需要进一步调用getWidgetRef()方法。 |
addEC | 增加外部组件实例引用,以便在VForm组件内部调用外部组件方法。 EC即external component(外部组件)缩写。 |
(componentName, externalComponent): componentName, 外部组件名称 externalComponent, 外部组件实例 |
hasEC | 判断是否存在外部组件实例 | componentName, 外部组件名称 |
getEC | 获取外部组件实例 | componentName, 外部组件名称 |
getGlobalDsv | 获取全局数据源变量(Pro版支持) | — 无参数 |