React Ant-Table Resizable 实现对Table表格的列的宽度调整_react-resizable table中使用-程序员宅基地

技术标签: Ant Design  React  

import React from "react";
import {
     Widget } from "erpcore";
import {
     Table } from 'antd';
import "./index.less";
import {
     Resizable } from 'react-resizable';
import 'react-resizable/css/styles.css';


const WidgetOfBase = Widget.WidgetOfBase;
const ResizeableTitle = (props) => {
    
    const {
     onResize, width, ...restProps } = props;
    if (!width) {
    
        return <th {
    ...restProps} />
    }
    return (
        <Resizable
            width={
    width} height={
    0} onResize={
    onResize}>
            <th {
    ...restProps} />
        </ Resizable >
    )
};

class ReactTable extends WidgetOfBase {
    
    constructor(props) {
    
        super(props);
        this.state.columns = props.rcColumns;
    };

    components = {
    
        header: {
    
            cell: ResizeableTitle,
        },
    };

    handleResize = index => (e, {
     size }) => {
    
        const {
     tableKey } = this.props;
        this.setState(({
     columns }) => {
    
            const nextColumns = [...columns];
            nextColumns[index] = {
    
                ...nextColumns[index],
                // width: (size.width < 50) ? 50 : size.width,
                width: size.width,
            };
            console.log(nextColumns)
            if (tableKey) {
    
                localStorage.setItem(tableKey, JSON.stringify(nextColumns))
            }

            return {
     columns: nextColumns };
        });
    };

    renderOnMobile = () => {
    
        const {
     dataSource, pagination, selectedRowKeys, onSelectChange } = this.props;
        const columns = this.state.columns.map((col, index) => ({
    
            ...col,
            onHeaderCell: (column) => ({
    
                width: column.width,
                onResize: this.handleResize(index),
            }),
        }));
        const rowSelection = {
    
            selectedRowKeys,
            onChange: onSelectChange,
        };
        return (
            <div className="rc_table">
                <Table
                    columns={
    columns}
                    components={
    this.components}
                    dataSource={
    dataSource}
                    pagination={
    pagination}
                    size="middle"
                    rowSelection={
    rowSelection}
                    scroll={
    {
     x: true }}
                />
            </div>
        )
    }
}

export default ReactTable;


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40958876/article/details/116756905

智能推荐

基于SpringBoot+Vue的小徐影城管理系统的设计与实现(源码+lw+部署文档+讲解等)-程序员宅基地

文章浏览阅读728次,点赞23次,收藏16次。博主介绍:全网粉丝15W+,CSDN特邀作者、211毕业、高级全栈开发程序员、大厂多年工作经验、码云/掘金/华为云/阿里云/InfoQ/StackOverflow/github等平台优质作者、专注于Java、小程序技术领域和毕业项目实战,以及程序定制化开发、全栈讲解、就业辅导精彩专栏 推荐订阅2023-2024年最值得选的微信小程序毕业设计选题大全:100个热门选题推荐2023-2024年最值得选的Java毕业设计选题大全:500个热门选题推荐Java精品实战案例《500套》

RDD编程实验_rdd编程中计算班级人数-程序员宅基地

文章浏览阅读5.7k次,点赞5次,收藏69次。RDD编程初级实践基于《Spark编程基础(Scala版)》目录RDD编程初级实践前言一、实验目的二、实验内容和要求三、实验步骤1.spark-shell交互式编程(1)该系总共有多少学生;(2)该系共开设了多少门课程;(3)Tom同学的总成绩平均分是多少;(4)求每名同学的选修的课程门数;(5)该系DataBase课程共有多少人选修;(6)各门课程的平均分是多少;(7)使用累加器计算共有多少人选了DataBase这门课。总结前言前面已经基于docker搭建好spark集群,集群为一台mast_rdd编程中计算班级人数

Log4j2AsyncAppender形式做异步日志_日志<async>-程序员宅基地

文章浏览阅读198次。Log4j2AsyncAppender形式做异步日志_日志

html特效文本框,各种html文本框input特效-程序员宅基地

文章浏览阅读291次。输入框景背景透明:鼠标划过输入框,输入框背景色变色:TYPE="text" SIZE="29"onmouseover="this.style.borderColor='black';this.style.backgroundColor='plum'"style="width: 106; height: 21"onmouseout="this.style.borderColor='black';th..._ios html input 特效

docker上启动部署好的ES方法_如何确认docker启动的es是否成功-程序员宅基地

文章浏览阅读2k次。1.查看镜像文件有哪些docker images2.启动3.查看是否成功在浏览器输入:http://192.168.150.101:9200 可以判断es是否部署成功http://192.168.150.101:5601 可以判断kibana是否部署成功**注意:**需要修改成自己虚拟机的ip地址查看ip地址的方法:ip addr或者ifconfig..._如何确认docker启动的es是否成功

ADVANCE.AI寿栋:面对高度竞争的国际市场 中国出海企业的机会在哪?_advance.ai出海遇到的问题-程序员宅基地

文章浏览阅读190次。据悉,『细分·增长2022新兴市场品牌出海线上峰会』是一次专为企业出海新兴市场打造的行业级跨境盛会,峰会集结了包括猫王音响、森马、Y.O.U、重力星球、挪客、Yeelight等在内的多家各领域全球化品牌,旨在为跨境行业揭示不确定性下的新兴市场机遇,探寻基于海外用户需求洞察形成的细分品类增长策略。..._advance.ai出海遇到的问题

随便推点

java计算机毕业设计springboot+vue超时代停车场管理平台系统_githubspringboot vue停车管理系统-程序员宅基地

文章浏览阅读126次。随着计算机信息技术的发展,越来越多的用户使用管理系统,各种信息化应用出现在停车管理中,特别是超时代停车场拥有大量的用户群,使用管理平台可以为人们的生活提供便利。本文先提出了开发基于Spring Boot的超时代停车场管理平台的背景意义,然后通过功能性和非功能性分析阐述本系统的需求,然后从功能设计和数据库设计两方面进行系统的设计建模。服务器管理端需要通过权限认证后进行登录,功能包括停车场管理、车辆信息的管理、公告信息的管理、停车记录、用户管理、停车位查看、财务收入统计。后端框架:springboot。_githubspringboot vue停车管理系统

人工智能导论实验——KNN_knn算法实验-程序员宅基地

文章浏览阅读648次。k近邻法(k-nearest neighbor,k-NN)是一种基本的分类和回归方法,是监督学习方法里的一种常用方法。分类时,对新的实例,根据其k个最近邻的训练实例类别,通过多数表决等方式进行预测。k近邻法三要素:距离度量、k值的选择和分类决策规则。k值的选择反映了对近似误差与估计误差之间的权衡,通常由交叉验证选择最优的k。分类决策规则往往是多数表决,即由输入实例的k个邻近输入实例中的多数类决定输入实例的类。模型训练时间快,上面说到KNN算法是惰性的,这里也就不再过多讲述。1) 了解KNN的基本概念;_knn算法实验

python常用转义字符串总结:各种字符转义的不同、如何取消转义字符效果?-程序员宅基地

文章浏览阅读573次,点赞13次,收藏20次。我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。print(‘v 的转义效果是:\v Python 集中营’)

Linux下手动安装screen_screen预编译二进制文件下载-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏9次。简单说来就是自己用screen源码编译安装第一步:下载screen源码并解压下载地址:http://ftp.gnu.org/gnu/screen/第二步:运行配置程序,生成Makefile文件运行源码目录下的./configure,运行成功会得到如下提示:Now please check the pathnames in the Makefile and in the ..._screen预编译二进制文件下载

OpenCV图像处理知识_opencv中为了更好的对图像进行区分、识别,通常使用()来衡量图像之间的差异。-程序员宅基地

文章浏览阅读863次。OpenCV图像处理知识OpenCV图像处理参考博客_opencv中为了更好的对图像进行区分、识别,通常使用()来衡量图像之间的差异。

微信公众平台测试账号:redirect_uri参数错误_redirect_uri 参数错误-程序员宅基地

文章浏览阅读2.6k次,点赞21次,收藏10次。本文记录了微信公众平台测试账号:redirect_uri参数错误的解决办法。_redirect_uri 参数错误