Skip to main content

定制列表数据转换

如果列表页查询接口返回的数据不满足我们的实际展示需求,除了renderColumns的方式来修改展示列的渲染值之外,还可以通过transformDataList的方式来改变列表中每行数据的值来达到相同的效果。

使用方式

import appSetting from '@sinform/app-setting';

/**
* 列表数据转换
*/
const transformDataList = async (
currentUser: UserInfo,
_form: FormDesignSetting,
dataList: Record<string, any>[]
) => {
return dataList.map((item) => ({
...item,
currentUserDept: currentUser.deptId,
}));
};

appSetting.listPageConfig.transformDataList(
'*',
'ALL_LIST_PAGE',
transformDataList
);

参数说明:

  • formId。表单设计 id
  • listType。列表页类型
  • transformDataList。列表数据转换方法,返回新的列表数据
    • currentUser。当前登录用户
    • formDesignSetting。表单设计数据
    • dataList。原列表数据

transformDataListrenderColumns的对比

  • 两个方法都能够做到修改列表项展示值的效果
  • transformDataList 改变了列表查询接口的返回数据(如果有的功能涉及到了列表数据的操作,那么他们获取到的是修改后的数据); renderColumns 只专注于修改页面上列表项的展示效果,不会对数据产生影响。