zoukankan      html  css  js  c++  java
  • antd+table--->当你的表格数据需要改为树形展示

    效果:

     话不多说,直接上代码: 【不知道从哪搜罗来的改了改】

        // 处理数据
        const getData = list => {
            // 删除所有children
            list.forEach(item => {
                delete item.children;
            });
            // 将数据存储为 以 id 为 KEY 的 map 索引数据列
            const map = {};
            list.forEach(item => {
                map[item.id] = item;
            });
            const newList = [];
            list.forEach(item => {
                // 以当前遍历项的pid,去map对象中找到索引的id
                const parent = map[item.parentTaskId];
                // 如果找到索引,那么说明此项不在顶级当中,那么需要把此项添加到他对应的父级中
                if (parent) {
                    (parent.children || (parent.children = [])).push(item);
                } else {
                    // 如果没有在map中找到对应的索引ID,那么直接把当前的item添加到 val结果集中,作为顶级
                    newList.push(item);
                }
            });
            return newList;
        };
    

      

     <Table
                    loading={loading}
                    defaultExpandAllRows
                    columns={columns}
                    rowKey="id"
                    dataSource={data}
                    pagination={false}
                />
    

      

    ps:因为有一个标题过长需要隐藏的需求,所以column这边需要再做样式处理:

    {
                title: '任务名称',
                dataIndex: 'taskName',
                key: 'taskName',
                 '30%',
                render: (text, record) => (
                    <div
                        style={{
                            display: 'inline-block',
                             '70%',
                            overflow: 'hidden',
                            whiteSpace: 'nowrap',
                            textOverflow: 'ellipsis',
                            verticalAlign: ' text-bottom'
                        }}
                    >
                        <span
                            title={record.taskName}
                            style={{ color: '#ffa808', cursor: 'pointer' }}
                            onClick={() => {
                                router.push({
                                    pathname: '/personal/work/taskdetail',
                                    query: {
                                        id: record.id,
                                        activeKey: 'detailMsg'
                                    }
                                });
                            }}
                        >
                            {record.taskName}
                        </span>
                    </div>
                )
            },
    

      

    这样既不会影响前面的icon同一行展示,也不会换行啦

  • 相关阅读:
    网店推广之秘诀
    预言:“你被暴光了没有?” 将成为2010又一网络流行语
    已不联系好多年
    任道而重远
    从思南县看撤县建市对提升城市价值的影响
    我和三十有个约定
    浅谈小学生英语学习方法
    热烈祝贺IT诗人代腾飞官方网站开通啦
    爱情许愿砂
    “走远了” 2010又一网络流行语诞生
  • 原文地址:https://www.cnblogs.com/nangras/p/13220016.html
Copyright © 2011-2022 走看看