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

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

需求

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 @ 2022-01-13 11:46  zc-lee  阅读(203)  评论(0编辑  收藏  举报