AI辅助制作标识
该文章由丸子引导AI辅助制作生成,如有改进意见,欢迎评论区留言。引言
在许多企业级应用中,我们常常需要对流程待办事项进行筛选,以便用户能够更快速地找到需要处理的任务。本文将介绍如何为Table表格增加筛选功能,特别是针对流程待办筛选当前节点的实现方法。
代码实现
下面的代码示例展示了如何通过ecodeSDK.overwritePropsFnQueueMapSet
方法,为Table表格增加筛选功能:
ecodeSDK.overwritePropsFnQueueMapSet('Table', {
fn: (newProps) => {
// 日志输出,检查组件定位是否成功
console.log('!找到组件啦!!!!!!');
// 检查当前路径是否正确
if (!ecodeSDK.checkLPath('/wui/index.html#/main/workflow/listDoing?menuIds=1,13')) return;
console.log("路径识别正确!", newProps);
// 创建一个 Map 来存储 unique 的 currentnodeid 和 currentnodeidspan
const uniqueNodes = new Map();
// 遍历 newProps.datas 数组,获取 unique 的 currentnodeid 和 currentnodeidspan
newProps.datas.forEach(data => {
if (!uniqueNodes.has(data.currentnodeid)) {
uniqueNodes.set(data.currentnodeid, data.currentnodeidspan);
}
});
// 构建 filters 数组
const filters = Array.from(uniqueNodes.entries()).map(([value, text]) => ({
text,
value
}));
// 遍历 newProps.columns 数组,找到 dataIndex 为 'currentnodeid' 的对象
newProps.columns.forEach(column => {
if (column.dataIndex === 'currentnodeid') {
// 修改 title 为 '当前节点1'
column.title = '当前节点1';
// 设置动态 filters
column.filters = filters;
// 增加 onFilter 函数
column.onFilter = (value, record) => record.currentnodeid === value;
}
});
// 输出修改后的 columns 数组
console.log("修改后的 columns:", newProps.columns);
},
});
组件定位
首先,我们通过日志输出检查组件是否定位成功:
console.log('!找到组件啦!!!!!!');
路径检查
接着,我们验证当前路径是否正确:
if (!ecodeSDK.checkLPath('/wui/index.html#/main/workflow/listDoing?menuIds=1,13')) return;
console.log("路径识别正确!", newProps);
数据筛选
然后,我们创建一个Map来存储唯一的currentnodeid和currentnodeidspan,并构建filters数组:
const uniqueNodes = new Map();
newProps.datas.forEach(data => {
if (!uniqueNodes.has(data.currentnodeid)) {
uniqueNodes.set(data.currentnodeid, data.currentnodeidspan);
}
});
const filters = Array.from(uniqueNodes.entries()).map(([value, text]) => ({
text,
value
}));
动态过滤器
最后,我们遍历newProps.columns数组,找到dataIndex为'currentnodeid'的对象,修改其title、设置动态filters并增加onFilter函数:
newProps.columns.forEach(column => {
if (column.dataIndex === 'currentnodeid') {
column.title = '当前节点1';
column.filters = filters;
column.onFilter = (value, record) => record.currentnodeid === value;
}
});
实际应用
本地模式
上述代码示例为本地模式下的数据筛选功能。在本地测试时,可以通过模拟数据来验证筛选功能是否正常工作。
远程加载数据
在实际应用中,我们需要结合“远程加载数据”来实现更为复杂的筛选功能。具体实现方式将根据实际需求和环境进行调整。
提示:远程加载数据时,需注意网络延迟和数据同步问题,确保用户体验流畅。
结论
通过以上步骤,我们成功为Table表格增加了筛选功能,特别是针对流程待办筛选当前节点的实现。这种方法不仅提升了用户体验,也为后续的功能扩展提供了良好的基础。
成功实现了为Table表格增加筛选功能!
如有任何问题或改进建议,欢迎在评论区留言与我们交流。
代码折叠
请点击此处查看完整代码。
希望这篇文章能帮助你更好地理解和实现Table表格的筛选功能。如果有任何疑问,欢迎在评论区留言讨论!
[泛微ecode] 为Table表格增加筛选功能(流程待办筛选当前节点) by https://oneszhang.com/archives/86.html
哇,这个思路很nice,学到了~,之前有客户跟我提,我都没想起来用这个方案~@(玫瑰)
能不能对流程里面的明细表进行复写,试了几次没找到组件
不行哦,流程展示的表单是一个画布,不能直接重写明细,只能重写明细内的单个小组件
这就有点难受了,公司想改内部的组件,以及添加某个列的筛选功能。。。我最后自己给他整个去除,添加了个新的table组件。。。。所有列重写组件,然后使用临时表来传值给原明细表的sql表单