Skip to main content

Form Context

表单上下文 (formContext) 提供对表单的引用。

API

form

返回:FormNode 表单的表单数据对象。

const formOnLoad = async (ctx) => {
const form = ctx.getFormContext().form;
// 给 businessDate 字段设置初始值
const businessDate = form.getField('businessDate');
businessDate.value = new Date();
}

mode

mode 描述了表单的模式,表单有以下几种模式:

create新增一个空白的表单
copy从一个存在的表单复制的新的表单
edit编辑一个已存在的表单
view查看一个已存在的表单

返回:string

thisApp.formOnLoad = async (ctx) => {
const mode = ctx.getFormContext().mode;
console.log('mode', mode);
}

runInAction(action: () => void): void;

表单(可观察数据)批量操作(如表单字段赋值时), 可以提升处理性能


thisApp.formOnLoad = async (ctx) => {
const runInAction = ctx.getFormContext().runInAction;
runInAction(() => {
form.getSubGrid('detail').rows.forEach((row) => {
row.getField('price') = 100;
})
});
}



entityQuery(entityName)

返回:创建一个可以查询 entityName 对应业务对象数据的查询。

thisApp.formOnLoad = async (ctx) => {
const projectQuery = ctx.getFormContext().entityQuery('Project');

const projects = await projectQuery.findMany({
select: {
code: true,
name: true,
customer: true,
}
});

const projectCount = await projectQuery.aggregate({
count: {
id: true
}
});

console.log('projectCount', projectCount);
console.log('projects', projects);
}