Page Context
当前表单页面的上下文引用。
API
getActionBar()
通过这个方法获取表单页面的按钮区域。通过 actionBar
可以给页面假如自定义的动作按钮。
返回:ActionBar
目前,这个方法只针对 web 端表单和表单模式处于: "create", "edit", "copy" 时候有效,当表单处于 "view" 状态时候是无效的。
actionBar.addButton(...buttons)
参数:ButtonOptions[]
ButtonOptions
类型参数:
名称 | 类型 | 描述 |
---|---|---|
text | string | 按钮的标签文本。 |
key | string | 按钮的识别标识。 |
disabled | boolean | 按钮可用状态。 |
visible | boolean | 按钮可见状态。 |
onClick | Function | 点击按钮的执行程序。 |
menuItems | MenuItem[] | 按钮的菜单项。 |
MenuItem
类型参数:
名称 | 类型 | 描述 |
---|---|---|
text | string | 菜单项的标签文本 |
disabled | boolean | 菜单项可用状态 |
onClick | Function | 点击菜单项的执行程序。 |
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
// 给表单页面增加一个有两个菜单项的按钮。
// 第一个菜单项给子表增加行
// 第二个菜单项清空子表的所有行
ctx.getPageContext().getActionBar().addButton({
key: 'clickMe',
text: '点我',
menuItems: [
{
text: 'Append Rows',
onClick: () => {
form.getSubGrid('receiptItems').appendRow(); // one
form.getSubGrid('receiptItems').appendRow(); // two
},
},
{
text: 'Clear All Rows',
onClick: () => {
form.getSubGrid('receiptItems').removeAllRows(); // clear all rows
}
}
]
})
}
actionBar.removeButton(key)
在增加的自定义按钮中,找到 key 对应的按钮并且删除。
参数:
- key:
string
actionBar.disableButton(key, disabled)
在增加的自定义按钮中,找到 key 对应的按钮并且设置可用状态为 disabled
参数的值。
参数:
- key:
string
- disabled:
boolean
getToolBar()
通过这个方法获可以给智元平台中增加的自定义按钮绑定点击事件, 给设置隐藏显示
返回: ToolBar
toolbar.registerMenuOnClick(apiName, onClick)
给在智元平台中增加的表单右上区,左下区,右下区自定义按钮,注册onClick事件
参数
- apiName:
string
- onClick:
Function
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
ctx.getPageContext().getToolBar().registerMenuOnClick("csZidingyiAnniu", (event) => {
console.log(event);
})
}
toolbar.registerSubGridOnClick(subgridName, apiName, onClick)
给在智元平台中增加的子表列表按钮,注册onClick事件
参数
- subgridName:
string
- apiName:
string
- onClick:
Function
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
ctx.getPageContext().getToolBar().registerSubGridOnClick("arContractSubjectMatterItems", "csZiDingYiAnNiu3", (event) => {
console.log(event)
});
}
toolbar.registerSubGridRowOnClick(apiName, onClick)
给在智元平台中增加的子表行操作按钮,注册onClick事件
参数
- subgridName
string
- apiName:
string
- onClick:
Function
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
ctx.getPageContext().getToolBar().registerSubGridRowOnClick("arContractSubjectMatterItems", "csZiDingYiAnNiu4", (event) => {
console.log(event)
});
}
toolbar.setMenuVisible(apiName, visible)
给在智元平台中增加的表单右上区,左下区,右下区自定义按钮,设置隐藏显示
参数
- apiName:
string
- visible:
boolean
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
ctx.getPageContext().getToolBar().setMenuVisible("csZiDingYiAnNiu4", false)
}
toolbar.setSubGridVisible(subgridName, apiName, visible)
给在智元平台中增加的子表按钮, 设置隐藏显示
参数
- subgridName:
string
- apiName:
string
- visible:
boolean
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
ctx.getPageContext().getToolBar().setSubGridVisible("arContractSubjectMatterItems","csZiDingYiAnNiu4", false)
}
toolbar.setSubGridRowVisible(subgridName, rowIndex, apiName, visible)
给在智元平台中增加的表单右上区,左下区,右下区自定义按钮,设置隐藏显示
参数
- subgridName:
string
- rowIndex:
number
- apiName:
string
- visible:
boolean
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
// 给arContractSubjectMatterItems子表的第二行的csZiDingYiAnNiu4按钮隐藏
ctx.getPageContext().getToolBar().setSubGridRowVisible("arContractSubjectMatterItems", 1, "csZiDingYiAnNiu4", false)
// 给arContractSubjectMatterItems子表上所有的行的csZiDingYiAnNiu4按钮隐藏
ctx.getPageContext().getToolBar().setSubGridVisible("arContractSubjectMatterItems", "csZiDingYiAnNiu4", false)
}
graphql(gql)
通过这个方法直接将gql字符串传递给后端执行。
参数: 只有一个gql查询字符串
返回: Promise<ResponseData>
示例:
thisApp.formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
ctx.getPageContext().getActionBar().addButton({
key: 'clickMe',
text: '点我',
onClick: async () => {
const resp = await ctx.getPageContext().graphql(
`
{
data: Department(criteriaStr: "((isLeaf=true) AND (exists(select orgDept.id from OrgDepartmentView orgDept where orgDept.legalEntityOrgId in (select ownerLegalEntityOrgId from Organization where id in ('K4WUXS50JUD0011')) and orgDept.departmentId = m.id) ) AND ((disabledTime IS NULL OR TO_TIMESTAMP(1678291200) < disabledTime)) AND ((disabledTime IS NULL OR TO_TIMESTAMP(1678291200) < disabledTime)))", firstResult: 0, maxResult: 200, sorts: [{name: "code", isDesending: false}], actionId: "add", contextField: "department", contextDataScopeOrgIds: ["K4WUXS50JUD0011"], contextObject: "RevenueConfirmation", contextOrgIds: ["K4WUXS50JUD0011"], isDisabledOrgScope: true) {
id
name
code
idPath
parents {
id
name
}
parent {
code
name
id
idPath
}
isLeaf
disabledTime
character {
id
title
}
manager {
id
name
}
executive {
id
name
}
annualNumber
description
_ctrlViewMethod
_ctrlViewFields
}
count: AggregateQueryOne(entity: "Department", criteriaStr: "((isLeaf=true) AND (exists(select orgDept.id from OrgDepartmentView orgDept where orgDept.legalEntityOrgId in (select ownerLegalEntityOrgId from Organization where id in ('K4WUXS50JUD0011')) and orgDept.departmentId = m.id) ) AND ((disabledTime IS NULL OR TO_TIMESTAMP(1678291200) < disabledTime)) AND ((disabledTime IS NULL OR TO_TIMESTAMP(1678291200) < disabledTime)))", actionId: "add", contextField: "department", contextDataScopeOrgIds: ["K4WUXS50JUD0011"], contextObject: "RevenueConfirmation", contextOrgIds: ["K4WUXS50JUD0011"], isDisabledOrgScope: true) {
count: aggr(expr: "count(*)")
}
}
`
);
console.log('api: ',resp.data);
},
})
};
getPassParams()
通过这个方法可以获取通过 eo.dialogs
创建的表单页面中,调用方通过 passParams
传递的参数。