表格列更新
表格列更新是表格列数据发生变更后执行的逻辑,如果更新的表格列上绑定了表格列更新,则执行对应脚本代码。脚本代码为异步脚本,根据返回值更新表格行数据。
参数
名称 | 类型 | 描述 |
---|---|---|
context | IApiContext | 当前视图上下文 |
params | IApiParams | 当前视图参数 |
data | IApiData | 当前业务数据 |
targetName | string | 部件名称 |
view | IApiViewController | 当前视图 |
ctrl | IApiControlController | 当前部件 |
dataArg | IApiData | 当前数据参数 |
document | Document | 当前文档对象 |
selector | (className: string) => HTMLCollectionOf<Element> | 元素选择器 |
env | IEnvironment | 当前环境对象 |
appSession | IApiData | 当前应用会话对象 |
topViewSession | IApiData | 当前顶级视图会话对象 |
viewSession | IApiData | 当前视图会话对象 |
viewParam | IApiParams | |
app | IApiAppHubController | 当前应用 |
topView | IApiViewController | 当前顶级视图 |
parentView | IApiViewController | undefined | 当前父视图 |
parent | IApiViewController | undefined | 当前父视图 |
util | { message: IApiMessageUtil, notification: IApiNotificationUtil,modal: IApiModalUtil,confirm: IApiConfirmUtil,openView: IApiOpenViewUtil} | 工具集 |
附加调用示例
基于当前业务数据填充其它列数据
如果姓名列数据发生变更,根据姓名数据加载数据并填充到指定的表格数据项上
typescript
// 方式1,直接操作更新列的数据
const columnName = 'xm';
const row = ctrl.findRowState(data);
if (
row &&
row.data[columnName] &&
row.oldData[columnName] !== row.data[columnName]
) {
ibiz.hub
.getApp(context.srfappid)
.deService.exec('research_base', 'get', {
...context,
research_base: row.data[data.name],
})
.then(res => {
if (res.ok && res.data) {
const item = res.data
Object.assign(row.data, {
jsjf: item.jd_jf,
lx: item.jd_lx,
dw: item.jd_zgdw,
fzr: item.jd_fzr,
fzrgh: item.jd_fzrgh,
clny: item.jd_clny,
jxpgqk: item.jd_pgqk,
})
}
});
}
// 方式2,返回需要更新的数据,由表格列更新后续逻辑处理
const columnName = 'xm';
const row = ctrl.findRowState(data);
if (
row &&
row.data[columnName] &&
row.oldData[columnName] !== row.data[columnName]
) {
const app = ibiz.hub.getApp(context.srfappid);
const res = await app.deService.exec('research_base', 'get', {
...context,
research_base: row.data[data.name],
});
if (res.ok && res.data) {
const item = res.data;
retrun {
jsjf: item.jd_jf,
lx: item.jd_lx,
dw: item.jd_zgdw,
fzr: item.jd_fzr,
fzrgh: item.jd_fzrgh,
clny: item.jd_clny,
jxpgqk: item.jd_pgqk,
};
}
}
return {};