国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

泗陽做網(wǎng)站公司競價托管就選微競價

泗陽做網(wǎng)站公司,競價托管就選微競價,編程序可以做網(wǎng)站嗎,做內(nèi)衣批發(fā)的網(wǎng)站好React Antd ProTable 如何設(shè)置類似于Excel的篩選框 目標(biāo):在web頁面的table表格中完成類似于EXCEL的Filter篩選功能。 示例圖:點擊標(biāo)題列上方的漏斗狀圖標(biāo),即可對數(shù)據(jù)進(jìn)行篩選。 ProTable 前景提要 ProTable API中有說明,是有…

React Antd ProTable 如何設(shè)置類似于Excel的篩選框

目標(biāo):在web頁面的table表格中完成類似于EXCEL的Filter篩選功能。

示例圖:點擊標(biāo)題列上方的漏斗狀圖標(biāo),即可對數(shù)據(jù)進(jìn)行篩選。
頁面實現(xiàn)

ProTable 前景提要

ProTable API中有說明,是有filter篩選功能的

參數(shù)說明類型默認(rèn)值版本
filters表頭的篩選菜單項object[]--
onFilter本地模式下,確定篩選的運行函數(shù)function--

個人理解:
filters 設(shè)置被篩選的數(shù)據(jù),數(shù)據(jù)形式是object
onFilter 設(shè)置篩選的函數(shù)方法就是自定義一個函數(shù)方法用于篩選

理論階段

根據(jù) 前景提要可知,設(shè)置篩選需要兩個設(shè)置。

1.數(shù)據(jù)準(zhǔn)備

  • 既然要篩選,那必須是所有數(shù)據(jù)在里面,且是去除重復(fù)后的數(shù)據(jù)。這樣子才算篩選。
    那重點就是數(shù)據(jù)去重存儲

  • 可以看到我是有多列需要篩選,那還是抽象封裝一個方法數(shù)據(jù)去重,和存儲的方法來調(diào)用方便低調(diào)用和維護(hù)。

2.篩選函數(shù)

  • 就是你選擇了篩選框的數(shù)據(jù),你要自定義匹配方式,成功就是true,失敗就是false。
    頁面就會顯示匹配成功的數(shù)據(jù)。

  • 也是封裝方法都用這個匹配方法即可

實踐階段

1.數(shù)據(jù)準(zhǔn)備

  1. 首先在ProTable中使用request獲取數(shù)據(jù),調(diào)用生成數(shù)據(jù)方法
 request={async (params, sorter, filter) => {const r = await queryData(current_table, { ...params, sorter, filter });//獲取的數(shù)據(jù)為r,若有數(shù)據(jù)則,生成篩選數(shù)據(jù)。if (r?.data) {generateFilterOptions(r.data, {period: 'period',end_customer: 'end_customer',customer_name: 'customer_name',});}
  1. 編寫生成數(shù)據(jù)方法generateFilterOptions
/**
3. data 原數(shù)據(jù) propertyMappings 篩選模板*/function generateFilterOptions(data: any[],propertyMappings: { [key: string]: string },handleNullForKeys?: string[],): void {const groupedOptions: { [key: string]: Option[] } = {};// 遍歷數(shù)據(jù),直接構(gòu)建分組選項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 });}});});// 將生成的選項設(shè)置到狀態(tài)中setFilterOptions(groupedOptions);}
  1. 用useState存儲數(shù)據(jù)
const [filterOptions, setFilterOptions] = useState<{ [key: string]: Option[] }>({});
  1. 可以看一下groupedOptions的數(shù)據(jù)格式,最后需要的就是
    {text:‘2023-01’,value:‘2023-01’} 前面的key是用于不同列分組的
    在這里插入圖片描述

2.準(zhǔn)備篩選函數(shù)

// 通用的過濾函數(shù)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 是篩選選中的數(shù)據(jù),record[dataIndex]是列的數(shù)據(jù).
匹配上需要顯示的數(shù)據(jù)就返回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'),},.....

結(jié)束

理論上應(yīng)該講完了,可能還有更方便快捷的方法。
有疑問或想法可以評論區(qū)留言。

http://aloenet.com.cn/news/29723.html

相關(guān)文章:

  • 網(wǎng)站logo用什么做百度網(wǎng)站打不開
  • 網(wǎng)站批量做httpsseo優(yōu)化實訓(xùn)報告
  • 深圳租房建設(shè)局網(wǎng)站天天外鏈官網(wǎng)
  • 淮安建設(shè)工程協(xié)會網(wǎng)站查詢站長之家 seo查詢
  • 淄博網(wǎng)站制作seo優(yōu)化專員
  • 在什么網(wǎng)站可以自承包活來做搜索引擎入口
  • 廈門功夫廣告設(shè)計網(wǎng)站建設(shè)工作室網(wǎng)站優(yōu)化排名資源
  • 市總工會智慧網(wǎng)站建設(shè)總結(jié)奶茶的營銷推廣軟文
  • 綿陽 網(wǎng)站設(shè)計推廣引流哪個軟件最好
  • 新疆網(wǎng)站建設(shè)一條龍服務(wù)網(wǎng)絡(luò)營銷產(chǎn)品的首選產(chǎn)品
  • 做資訊網(wǎng)站要什么手續(xù)公司怎么推廣網(wǎng)絡(luò)營銷
  • 網(wǎng)站內(nèi)容注意事項福州關(guān)鍵詞排名優(yōu)化
  • 鄭州做網(wǎng)站公司msgg平臺推廣是做什么
  • 網(wǎng)絡(luò)營銷的特點主要有哪些seo軟件推薦
  • 律所網(wǎng)站建設(shè)方案書怎么寫怎么找推廣渠道
  • 公眾號做淘寶客接入手機(jī)網(wǎng)站免費私人網(wǎng)站建設(shè)
  • 幫別人做網(wǎng)站必須要開公司專門的網(wǎng)頁制作工具有
  • 查看小程序源碼百度搜索引擎優(yōu)化相關(guān)性評價
  • 精仿手表網(wǎng)站超級推薦的關(guān)鍵詞怎么優(yōu)化
  • 惠州網(wǎng)站設(shè)計哪家好天津網(wǎng)站制作系統(tǒng)
  • 如何做網(wǎng)站管理引流推廣的句子
  • 哪些網(wǎng)站可以做問卷調(diào)查賺錢5g網(wǎng)絡(luò)優(yōu)化培訓(xùn)
  • 網(wǎng)站建設(shè)規(guī)范好的競價托管公司
  • WordPress七牛防盜鏈如何做seo整站優(yōu)化
  • 太倉網(wǎng)站建設(shè)網(wǎng)站推廣安陽seo
  • 有沒有什么專業(yè)做美業(yè)的網(wǎng)站網(wǎng)絡(luò)營銷是指
  • 北京企業(yè)網(wǎng)站開發(fā)費用有什么平臺可以推廣信息
  • 深圳做網(wǎng)站推廣產(chǎn)品關(guān)鍵詞大全
  • 沈陽網(wǎng)站建設(shè)公司排名南昌企業(yè)網(wǎng)站建設(shè)
  • 網(wǎng)站源碼設(shè)計搜索詞分析