当前位置:首页 » 《随便一记》 » 正文

前端实现列表多条件查询/搜索功能

28 人参与  2024年09月09日 18:02  分类 : 《随便一记》  评论

点击全文阅读


在前端开发中,实现一个多条件查询功能是常见的需求,尤其是在处理表格数据时。下面我将通过一个简单的Vue组件示例,来展示如何实现一个多条件查询功能。

组件数据结构

首先,定义组件的数据结构,包括查询条件和过滤后的表格数据:

data() {  return {    // 列表搜索条件    cseAttributeData: {      parcelCode: "",      landType: "",      isIndexesCover: "",      toSellTaskState: "",      manageState: "",      signDownState: "",      withdrawalWay: ""    },    filterTableData: [], // 原始数据    tableData: [] // 过滤后的数据  };}

方法一:逐个条件过滤

此方法是通过遍历所有查询条件,然后对每个条件应用过滤函数。这种方法的好处是逻辑清晰,易于理解。

methods: {  // 图层属性列表查询按钮  cseAttributeDataSubmit() {    let arr = this.filterTableData;    // 通过遍历key值来循环处理    Object.keys(this.cseAttributeData).forEach(key => {      // 调用筛选方法      arr = this.filterFunc(this.cseAttributeData[key], key, arr);    });    // 为表格赋值    this.tableData = arr;  },  // 筛选方法  filterFunc(val, target, filterArr) {    // 参数不存在或为空时,返回全部数据    if (!val) return filterArr;    // 应用过滤条件    return filterArr.filter(item => item[target] && item[target].indexOf(val) > -1);  }}

方法二:一次性过滤所有条件

此方法是一次性过滤所有条件,这种方法可以减少遍历次数,提高效率。

methods: {  // 图层属性列表查询按钮  cseAttributeDataSubmit() {    this.tableData = this.filterTableData.filter(item => {      // 遍历所有查询条件      for (const [k, v] of Object.entries(this.cseAttributeData)) {        if (v) { // 如果条件不为空          if (!item[k] || !item[k].includes(v)) {            return false; // 如果当前项不包含查询条件,则过滤掉          }        }      }      return true; // 如果所有条件都满足,则保留    });  }}

总结

两种方法各有优缺点:

方法一逻辑清晰,易于理解,但可能效率略低。方法二效率更高,但逻辑稍微复杂一些。

在选择实现方法时,可以根据实际项目需求和数据量大小来决定使用哪种方法。如果数据量不大,推荐使用方法一,因为它更易于维护和理解。如果数据量较大,或者需要更高效的查询,可以考虑使用方法二。

注意事项

确保查询条件不为空时才进行过滤。根据实际数据类型,可能需要对查询条件和数据进行类型转换,比如toLowerCase()。考虑使用Vue的计算属性(computed)来自动更新表格数据,以提高性能。

点击全文阅读


本文链接:http://m.zhangshiyu.com/post/157500.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 热文推荐沈棠眠宋闻璟折寒枝簪起霜思小说大结局(折寒枝簪起霜思)书荒必看列表
  • 我的爱,逾期不候(沈书言江映月)全书免费_(沈书言江映月)我的爱,逾期不候后续(沈书言江映月)
  • 婆婆住豪宅开豪车,却直播卖惨说我逼她睡桥洞全书沈威许静在线
  • 情深错付,在回忆里溺亡林小满江叙白_情深错付,在回忆里溺亡林小满江叙白
  • 未婚驸马表妹骑马撞我驴,我直接取消赐婚知乎热门_王法赵大人火麒麟超长版_小说后续在线阅读_无删减免费完结_
  • 老婆将我价值千万的游艇,送给了她的男助理知乎热门_妹妹林以棠念念后续_小说后续在线阅读_无删减免费完结_
  • 家宴过后,我捉奸了庶妹和我老公后续+番外_庶妹老公侍卫读者推荐_小说后续在线阅读_无删减免费完结_
  • 首富老公为三姐妹点天灯挥金如土,我换嫁贺总轰动全国强推_胥淮岁岁过敏最新阅读_小说后续在线阅读_无删减免费完结_
  • 未婚夫和同事孕期领证,我转身嫁入豪门推荐_沈泽光安南拿泽光小编推荐_小说后续在线阅读_无删减免费完结_
  • 重回奥运种子选手陷害我的这天番茄热门_林子李梦冷笑在线看_小说后续在线阅读_无删减免费完结_
  • 知微向海完结全文_陆知衍纪瑶奶奶最新阅读_小说后续在线阅读_无删减免费完结_
  • 被污蔑送错外卖后,我杀疯了阅读_小徐胡闹阅读_小说后续在线阅读_无删减免费完结_

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1