可以在对象的列表页和记录详情页配置自定义按钮,并通过编写 Javascript 脚本的方式,处理个性化的业务需求。
要在对象设置界面配置自定义操作按钮,请点开设置应用并进入“对象设置→对象”选择一个对象,然后在对象详细页面中找到“操作按钮”子表并点击其右上角新建按钮即可新建一个自定义操作按钮。
其中执行的脚本需要按照以下格式要求填写脚本代码,所有脚本都应该写入一个
function
函数体内。
function(object_name, record_id){
// 在这里补充按钮点击事件业务需求脚本。
}
要用代码开发对象上自定义操作按钮,需要先在对象元数据文件夹中新建buttons
文件夹用于放置操作按钮相关元数据,以下示例描述了给会议对象开发一个“会后评分”操作按钮的简易过程。
请在steedos-app/main/default/objects/meeting__c/buttons/
文件夹中分别新建对应的yml和js文件。
name: scoring
is_enable: true
label: 会后评分
'on': record_only
visible: true
其中on
参数表示按钮要放在什么位置,以下是可选参数:
module.exports = {
scoring: function (object_name, record_id) {
$(document.body).addClass('loading');
let url = `api/meeting/scoring/application`;
let options = {
type: 'post',
async: true,
data: JSON.stringify({ meetingId: record_id }),
success: function (data) {
toastr.success('已发起会议评分申请。');
FlowRouter.reload();
$(document.body).removeClass('loading');
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
toastr.error(t(XMLHttpRequest.responseJSON.message))
$(document.body).removeClass('loading');
}
};
Steedos.authRequest(url, options);
},
scoringVisible: function (object_name, record_id, permissions, record) {
return record.type__c === '领导会议'; // 领导会议 显示会议评分按钮
}
}
该文件导出两个函数,分别定义按钮事件和按钮显示规则。
Visible
后缀。object_name, record_id
表示对象api名称和记录ID值。点击按钮时会触发该函数,其内可以通过Steedos.authRequest
调用华炎魔方API接口。当按钮显示记录详细页,可以调用 this.record
、Creator.getObjectRecord()
获取当前记录信息; 当按钮显示在列表上,可以调用 gridRef.current.api.getSelectedRows()
获取当前选中的记录。object_name, record_id, permissions, record
表示对象api名称、记录ID值、当前用户对该记录权限及当前记录信息。只有该函数返回值为true
才会显示按钮。{button_name}Visible
函数的返回值会覆盖{button_name}.button.yml
文件中定义的visible
属性值。在按钮要执行的脚本中可以调用华炎魔方前端内核函数实现各种功能,比如可以调用 SteedosUI.showModal
函数来弹出表单或表格窗口,
请查阅文档 前端函数索引了解目前可供调用的内核函数说明。