hook项目实例之原始数据形成ant design table表格 2

简介: hook项目实例之原始数据形成ant design table表格

总共可以看出是三层结构 所以要处理成对应的表头和表数据格式


数据处理过程

let arr: any = []
                    response.data && response.data.map((item: any, index: number) => {
                        item.t_base_style && item.t_base_style.map((item1: any, index1: any) => {
                            item1.t_base_part_region && item1.t_base_part_region.map((item2: any, index2: any) => {
                                if(item2.t_qc_reference_standard.length==0){
                                    arr.push({
                                        part: item2.name,
                                        styleNumber: item1.name,
                                        product: item.name,
                                        styleId: item1.id,
                                        partId: item2.id,
                                        flag: item2.qc_flag,
                                    })
                                }else{
                                    item2.t_qc_reference_standard&&item2.t_qc_reference_standard.map((item3:any,index3:any)=>{
                                        arr.push({
                                            part: item2.name,
                                            styleNumber: item1.name,
                                            product: item.name,
                                            styleId: item1.id,
                                            partId: item2.id,
                                            flag: item2.qc_flag,
                                            flagId:item3.id
                                        })
                                    })
                                }  
                            })
                        })

操作要点1 形成column和datasource格式

<BasicTable data={menuData} onChange={onTableChange} loading={loading}>
                <Table.Column<Menu> title="品类" dataIndex="product" align="center"></Table.Column>
                <Table.Column<Menu> title="款式" dataIndex="styleNumber" align="center"></Table.Column>
                <Table.Column<Menu> title="部件" dataIndex="part" align="center"></Table.Column>
                <Table.Column<Menu> title="是否维护" dataIndex="flag" align="center" render={(text, record, index) => (
                    <span>{text ? "已维护" : "未维护"}</span>
                )}></Table.Column>
                <Table.Column<Menu>
                    title="操作"
                    align="center"
                    render={(text, record, index) => (
                        <MenuButton index={index} record={record} onButtonClick={onButtonClick} />
                    )}
                ></Table.Column>
            </BasicTable>

操作要点2 查询数据

关键要有两份数据

setMenuData({
                        list: arr, page: {
                            dataTotal: arr.length,
                            pageTotal: arr.length,
                            size: response.size,
                            page: response.current
                        }
                    });
                    setMenuDataCopy({
                        list: arr, page: {
                            dataTotal: arr.length,
                            pageTotal: arr.length,
                            size: response.size,
                            page: response.current
                        }
                    });

重置和过滤逻辑

const onSearch =
        (params: any) => {
            if (Object.keys(params).length > 0) {
                let arr: any = []
                var data: any = JSON.parse(JSON.stringify(menuDataCopy))
                console.log(data, "datadata")
                arr = data.list.filter((item: any, index: any) => {
                    return item.styleNumber == params.styleNumber
                })
                console.log(arr)
                setMenuData({
                    list: arr, page: {
                        dataTotal: arr.length,
                        pageTotal: arr.length,
                    }
                });
            } else {
                setMenuData(menuDataCopy)
            }
        }

结果展示

image.png

相关文章
|
11月前
|
数据格式
hook项目实例之原始数据形成ant design table表格
hook项目实例之原始数据形成ant design table表格
37 0
|
11月前
|
前端开发
ant design table中增加按钮的两种方式
ant design table中增加按钮的两种方式
140 0
|
11月前
|
前端开发
【React工作记录九十】ant design table实现上下行拖拽功能(类组件)
【React工作记录九十】ant design table实现上下行拖拽功能(类组件)
155 0
|
11月前
Ant Design:表格如何使用?
Ant Design:表格如何使用?
|
11月前
|
索引
Ant Design:表格自定义渲染
Ant Design:表格自定义渲染
131 0
Ant Design表格列拖拽,部分源码 #44
Ant Design表格列拖拽,部分源码 #44
191 0
|
数据处理 数据格式
ant design table项目中遇到的数据处理实例
ant design table项目中遇到的数据处理实例
64 0
|
前端开发
#yyds干货盘点 ant design table实现上下行拖拽功能(类组件)
#yyds干货盘点 ant design table实现上下行拖拽功能(类组件)
160 0
|
前端开发
#yyds干货盘点 【React工作记录三十二】ant design table中增加按钮的两种方式
#yyds干货盘点 【React工作记录三十二】ant design table中增加按钮的两种方式
89 0
|
前端开发
【React工作记录六十四】ant design中rowKey的作用
【React工作记录六十四】ant design中rowKey的作用
144 0