跳转到内容

表格列更新

表格列更新是表格列数据发生变更后执行的逻辑,如果更新的表格列上绑定了表格列更新,则执行对应脚本代码。脚本代码为异步脚本,根据返回值更新表格行数据。

参数

名称类型描述
contextIApiContext当前视图上下文
paramsIApiParams当前视图参数
dataIApiData当前业务数据
targetNamestring部件名称
viewIApiViewController当前视图
ctrlIApiControlController当前部件
dataArgIApiData当前数据参数
documentDocument当前文档对象
selector(className: string) => HTMLCollectionOf<Element>元素选择器
envIEnvironment当前环境对象
appSessionIApiData当前应用会话对象
topViewSessionIApiData当前顶级视图会话对象
viewSessionIApiData当前视图会话对象
viewParamIApiParams
appIApiAppHubController当前应用
topViewIApiViewController当前顶级视图
parentViewIApiViewController | undefined当前父视图
parentIApiViewController | 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 {};
未来已来,立即拥抱应用融合的力量
Released under the MIT License.