1.概要
在表单方案中,目前有一些现在定义的按钮,用户可以自己编写按钮事件响应代码。用户还可以自定义自己的按钮,那么本文介绍一下目前的按钮功能和开发自己的按钮。
2.按钮定义
我们以打开表单的按钮定义为例,在平台中按钮定义如下:
{
name:"打印",
method:"openCustomForm",
style:"default",
idx_: 3,
needConfig:false,
type:"openCustomForm",
config:{formAlias:"",formName:"",formConfig:"",boDefId:""},
preDef:true,
default:true}
说明
名称 | 说明 |
---|---|
name | 按钮名称 |
method | 按钮方法名称 |
style | 按钮样式 |
needConfig | 是否需要配置 ,为 true 打开表单需要做配置,为false,比如启动流程,这个就不需要定义什么参数 |
config | 按钮的配置,这个需要根据具体的情况而定,这些配置在点击按钮的时候进行使用 |
preDef | 预定义,表示方法名称不能更改 |
如果 needConfig 为true,那么程序就会显示配置按钮。
点击配置按钮处理方法如下:
configButton(row){
let type=row.type;
let key="func_" + type;
if(!this[key]){
let msg=`请定义[${key}]方法`
this.$message.warning(msg);
return;
}
this[key](row);
}
我们可以看到点击配置按钮时,他会在实例中去查找 func_类型名称的方法
,比如:
func_custom(row){
let config=row.config;
let oldBoDefId=this.form.getFieldValue("bodefId");
let conf = {curVm: this, widthHeight: ['800px', '550px'],data:{action:config.action,boDefId:oldBoDefId}};
DialogBox.openButtonFunConfig(conf,function(data){
config.action=data.action;
})
}
row.config 存放配置数据。
3.在表单方案中按钮响应代码如下
在表单方案中,我们可以看到:
<a-button-group>
<a-button :type="btn.type"
:ref="btn.method"
v-for="btn in buttons"
@click="handMethod(btn)" :loading="btn.loading"
:key="btn.name">{{ btn.name }}
</a-button>
</a-button-group>
其中点击响应代码如下:
handMethod(btn) {
//表单方法
if(btn.type=="formMethod"){
var method = "func_" + btn.method;
var formVm = this.$refs.rxForm.formVm;
if (formVm && formVm[method]) {
formVm[method](formVm);
}
return;
}
//自定义方法
if(btn.type=="custom"){
this["func_" + btn.method] = function () {
let formJson = this.$refs.rxForm.getData();
let rxAjax = this.$refs.rxForm.rxAjax;
let config=btn.config;
eval(config.action);
};
this["func_" + btn.method]();
return;
}
//调用预定义方法。
this[btn.method](btn);
}
在这里我们可以看到:
1.按钮可以调用表单定义的方法。
http://doc.redxun.cn/docs/jpaas/btnCustomFunction
2.编写自定义按钮方法。
http://doc.redxun.cn/docs/jpaas/btnDev
3.按钮调用预定义方法。
文档更新时间: 2021-10-08 10:09 作者:zyg