数据处理 - 跨分页批量选择过滤解决方案

数据处理 - 跨分页批量选择过滤解决方案

需求

ex:total=100

  1. 批次选择框勾选 = 100
  2. 列表全选选择框勾选 = 15
  3. 批次选择框勾选,取消某几页某几项 index: 0-20,29-50,52-99
    1. 用于大数据量避免前端需要查询全部页面数据

解决方案

核心

避免获取所有数据id,接口直接传筛选条件

  • !!!NOTICE 跨分页批量选择过滤实现
  • 用于大数据量

参数:

{
chooseArray:[caseId1,caseId2], // 选择项
filterArray:[], // 排除项
chooseSection:'10-25', // 选择区间
filterSection:'', // 排除区间
[filterRule]: '' // 其他筛选条件
// [......]:''
}
参数名 必选 类型 说明 默认值
chooseArray Array 选择项 null
filterArray Array 排除项 null
chooseSection String 选择区间 null
filterSection String 排除区间 null
[filterRule] String 其他筛选条件 null

notice:

  1. 字段必选类型可根据需求灵活规定
  2. 所有筛选字段null:可根据需求规定检索结果为全部
    1. 根据需求规定值为id/index=数组下标/ 序号=index+1
    2. 如id无顺序关系,则不能作为区间
  3. 避免字段冲突:
// example
// !!! error
{
chooseArray:[caseId1,caseId2], // 选择项
filterArray:[caseId1], // 排除项
chooseSection:'100-250', // 选择区间
filterSection:'120-300', // 排除区间
}
// 如无法避免,可`根据需求`规定`权重优先顺序`解决
  1. 功能组合:可根据需求灵活组合功能。(交集/并集/补集关系)
    1. chooseArray
    2. filterRule && chooseArray
    3. chooseArray + filterRule && chooseSectionchooseArray不受filterRule限制
    4. filterRule && chooseArray + filterRule && chooseSection
    5. filterRule&&filterSection:跨分页除filterSection全选
    6. ......
posted @   zc-lee  阅读(226)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示