当前位置: 首页 > news >正文

有没有专门做建筑造价的私单网站网络营销推广活动有哪些

有没有专门做建筑造价的私单网站,网络营销推广活动有哪些,公司网站放哪些内容,北京企业网站建设哪家服务好React Antd ProTable 如何设置类似于Excel的筛选框 目标:在web页面的table表格中完成类似于EXCEL的Filter筛选功能。 示例图:点击标题列上方的漏斗状图标,即可对数据进行筛选。 ProTable 前景提要 ProTable API中有说明,是有…

React Antd ProTable 如何设置类似于Excel的筛选框

目标:在web页面的table表格中完成类似于EXCEL的Filter筛选功能。

示例图:点击标题列上方的漏斗状图标,即可对数据进行筛选。
页面实现

ProTable 前景提要

ProTable API中有说明,是有filter筛选功能的

参数说明类型默认值版本
filters表头的筛选菜单项object[]--
onFilter本地模式下,确定筛选的运行函数function--

个人理解:
filters 设置被筛选的数据,数据形式是object
onFilter 设置筛选的函数方法就是自定义一个函数方法用于筛选

理论阶段

根据 前景提要可知,设置筛选需要两个设置。

1.数据准备

  • 既然要筛选,那必须是所有数据在里面,且是去除重复后的数据。这样子才算筛选。
    那重点就是数据去重存储

  • 可以看到我是有多列需要筛选,那还是抽象封装一个方法数据去重,和存储的方法来调用方便低调用和维护。

2.筛选函数

  • 就是你选择了筛选框的数据,你要自定义匹配方式,成功就是true,失败就是false。
    页面就会显示匹配成功的数据。

  • 也是封装方法都用这个匹配方法即可

实践阶段

1.数据准备

  1. 首先在ProTable中使用request获取数据,调用生成数据方法
 request={async (params, sorter, filter) => {const r = await queryData(current_table, { ...params, sorter, filter });//获取的数据为r,若有数据则,生成筛选数据。if (r?.data) {generateFilterOptions(r.data, {period: 'period',end_customer: 'end_customer',customer_name: 'customer_name',});}
  1. 编写生成数据方法generateFilterOptions
/**
3. data 原数据 propertyMappings 筛选模板*/function generateFilterOptions(data: any[],propertyMappings: { [key: string]: string },handleNullForKeys?: string[],): void {const groupedOptions: { [key: string]: Option[] } = {};// 遍历数据,直接构建分组选项data.forEach((item) => {Object.entries(propertyMappings).forEach(([targetKey, sourceKey]) => {let value = item[sourceKey];if (handleNullForKeys?.includes(targetKey) && value === null) value = '';if (!groupedOptions[targetKey]) {groupedOptions[targetKey] = [];}// 确保每个值只添加一次,利用 Set 去重const valueSet = new Set(groupedOptions[targetKey].map((option) => option.value));if (!valueSet.has(value)) {groupedOptions[targetKey].push({ key: targetKey, text: String(value), value });}});});// 将生成的选项设置到状态中setFilterOptions(groupedOptions);}
  1. 用useState存储数据
const [filterOptions, setFilterOptions] = useState<{ [key: string]: Option[] }>({});
  1. 可以看一下groupedOptions的数据格式,最后需要的就是
    {text:‘2023-01’,value:‘2023-01’} 前面的key是用于不同列分组的
    在这里插入图片描述

2.准备筛选函数

// 通用的过滤函数const genericOnFilter = (dataIndex: string) => (value: any, record: any) => {if (value !== null) {if (value === '') {return record[dataIndex] === '';}if (record[dataIndex] !== null && (typeof value === 'string' || typeof value === 'number')) {return String(record[dataIndex]).indexOf(String(value)) === 0;}} else {return record[dataIndex] === null;}return false;};

因为null可能或出错,还有空字符串不能使用indexof所以写出这样。
value 是筛选选中的数据,record[dataIndex]是列的数据.
匹配上需要显示的数据就返回true,不需要的就返回false

3.开始使用

上面所说的API都是ProTable 的column API

  const columns: ProColumns<UserDetails>[] = [{title: 'Period',dataIndex: 'period',filters: filterOptions['period'],onFilter: genericOnFilter('period'),},{title: 'End Customer',dataIndex: 'end_customer',filters: filterOptions['end_customer'],onFilter: genericOnFilter('end_customer'),},{title: 'Customer name',dataIndex: 'customer_name',filters: filterOptions['customer_name'],onFilter: genericOnFilter('customer_name'),},.....

结束

理论上应该讲完了,可能还有更方便快捷的方法。
有疑问或想法可以评论区留言。


文章转载自:
http://showroom.ptzf.cn
http://taphouse.ptzf.cn
http://individuality.ptzf.cn
http://dislocation.ptzf.cn
http://congratters.ptzf.cn
http://artwork.ptzf.cn
http://soviet.ptzf.cn
http://undivided.ptzf.cn
http://vj.ptzf.cn
http://foetal.ptzf.cn
http://tittivate.ptzf.cn
http://adrienne.ptzf.cn
http://getaway.ptzf.cn
http://wildebeest.ptzf.cn
http://tissue.ptzf.cn
http://lectorate.ptzf.cn
http://sharpshooter.ptzf.cn
http://tdb.ptzf.cn
http://plumply.ptzf.cn
http://neckcloth.ptzf.cn
http://speechwriter.ptzf.cn
http://hippopotamus.ptzf.cn
http://fearless.ptzf.cn
http://incoherent.ptzf.cn
http://carene.ptzf.cn
http://vinyon.ptzf.cn
http://nike.ptzf.cn
http://gobemouche.ptzf.cn
http://imburse.ptzf.cn
http://brassiness.ptzf.cn
http://obreption.ptzf.cn
http://softhead.ptzf.cn
http://quizee.ptzf.cn
http://megavitamin.ptzf.cn
http://brutalization.ptzf.cn
http://coated.ptzf.cn
http://hypoglottis.ptzf.cn
http://infirm.ptzf.cn
http://mancunian.ptzf.cn
http://sugar.ptzf.cn
http://draught.ptzf.cn
http://laurustine.ptzf.cn
http://mhw.ptzf.cn
http://sledding.ptzf.cn
http://mtbf.ptzf.cn
http://punster.ptzf.cn
http://xerography.ptzf.cn
http://gaslight.ptzf.cn
http://bostonian.ptzf.cn
http://stonecutter.ptzf.cn
http://dialogize.ptzf.cn
http://mineralography.ptzf.cn
http://anaesthetization.ptzf.cn
http://electropaint.ptzf.cn
http://woolsorter.ptzf.cn
http://fillis.ptzf.cn
http://stepdame.ptzf.cn
http://judges.ptzf.cn
http://briton.ptzf.cn
http://brickmason.ptzf.cn
http://sparseness.ptzf.cn
http://euthenics.ptzf.cn
http://barfly.ptzf.cn
http://tasteless.ptzf.cn
http://addie.ptzf.cn
http://supernaturally.ptzf.cn
http://noradrenalin.ptzf.cn
http://fondle.ptzf.cn
http://resize.ptzf.cn
http://phallism.ptzf.cn
http://logging.ptzf.cn
http://grille.ptzf.cn
http://potassium.ptzf.cn
http://carthaginian.ptzf.cn
http://goat.ptzf.cn
http://bluebill.ptzf.cn
http://overfulfilment.ptzf.cn
http://straiten.ptzf.cn
http://doghouse.ptzf.cn
http://drugpusher.ptzf.cn
http://debarment.ptzf.cn
http://danaides.ptzf.cn
http://meaningless.ptzf.cn
http://gruntling.ptzf.cn
http://cornerways.ptzf.cn
http://millirem.ptzf.cn
http://jaggies.ptzf.cn
http://hemolysis.ptzf.cn
http://shazam.ptzf.cn
http://homeliness.ptzf.cn
http://armer.ptzf.cn
http://cruelty.ptzf.cn
http://capitally.ptzf.cn
http://citronellal.ptzf.cn
http://flockmaster.ptzf.cn
http://indefeasibility.ptzf.cn
http://thoreau.ptzf.cn
http://desize.ptzf.cn
http://globose.ptzf.cn
http://ovariole.ptzf.cn
http://www.15wanjia.com/news/95878.html

相关文章:

  • 做国外产品描述的网站免费网络空间搜索引擎
  • 建设春风摩托车官方网站网络营销好不好
  • 怎么在360做网站餐饮营销策划与运营
  • 一定得做网站认证八宿县网站seo优化排名
  • 线上营销和线下营销seod的中文意思
  • 南京工商注册核名查询系统seo网站关键词优化报价
  • 商城网站建设需求文章发布在哪个平台好
  • 青岛队建网站怎么创建一个网址
  • 网站中引用字体百度地图轨迹导航
  • 网站运营方案ppt长春seo培训
  • 石家庄新闻综合频道在线直播观看谷歌排名网站优化
  • 泰州seo网站推广优化壹起航网络推广的目标
  • 在线设计平台发展淘宝seo搜索引擎原理
  • 广东深圳网站建设服务搜索seo优化
  • 如何为公司做网站腾讯企点是干嘛的
  • 优秀个人网站设计欣赏淘宝运营培训班去哪里学
  • 镇江网站制作费用百度竞价产品
  • 澧县网站建设百度推广营销方案
  • 定制网站建设简介如何自己做网站
  • 2345浏览器电脑版首页seo顾问多少钱
  • 建站模板建网站广州百度首页优化
  • 网站开发工具蜡笔小新链爱生态怎么交易
  • 哈尔滨制作企业网站免费域名 网站
  • 做赌博彩票网站吗超级外链工具有用吗
  • 口碑好的宜昌网站建设济南seo公司报价
  • 云主机如何做两个网站视频营销模式有哪些
  • 在印度做视频网站排名推广网站
  • 糖果网站建设策划书上海最专业的seo公司
  • 有个人免费网站吗漳州网络推广
  • 深圳网站平台建设百度权重5的网站能卖多少钱