antd中tooltip换行_ant design 中实现表格头部可删除和添加
我是用antd pro做一个项目。有一个小需求是表格头部栏可操作。具体是表头的每一项都带一个“x”按钮,当不想展示这一栏的时候,直接点“x”,这一栏就不展示了。不展示的头部标签放一边,也可以随时加入到表格中。
先看图:
1.表头信息有个“x”,当点击了某一项,该项在表格中消失,并且该标签会在可添加表头上展示。
2.此时我“x”掉了序号,用户名两项,得到下面的效果。
3.此时我点击了 “+用户名” 标签,表格中再次展示了用户名,同时,可添加表头栏少了 “+用户名” 标签。
这项功能在ant design 上的表格组件是没有的,所以我自己在现有组件的基础上实现的。如果你想看懂下面的代码,你需要了解ant design 的表格组件的使用。
import React from 'react';import { connect } from 'dva';import GridContent from '@/components/PageHeaderWrapper/GridContent';import { Table, Card, Form, Input, Button, Tag, Select, Row, Col, DatePicker, message, Tooltip, Icon,} from 'antd';import { ABNORMAL_AUDIT_STATUS, ABNORMAL_AUDIT_STATUS_COLOR } from '@/constants';import moment from 'moment';const { Option } = Select;const { RangePicker } = DatePicker;const FormItem = Form.Item;const risk = ['无', '低', '中', '高', '严重'];@connect(({ riskEvent, abnormalList, loading }) => ({ riskEvent, abnormalList, loading: loading.models.abnormalList,}))@Form.create()class AbnormalList extends React.Component { constructor(props) { super(props); this.state = { selectedData: [], newCol: [], colKey: { id: 0, username: 1, riskLevel: 2, riskScene: 3, department: 4, createTime: 5, status: 6, baseInfo: 7, operatePlatform: 8, }, columns: [ { title: (
this.columsControl('id')}> {' '} 序号
), dataIndex: 'id', key: '序号', }, { title: (
this.columsControl('username')}> {' '} 用户名
), dataIndex: 'username', key: '用户名', }, { title: (
this.columsControl('riskLevel')}> {' '} 风险等级
), dataIndex: 'riskLevel', key: '风险等级', sorter: true, sortDirections: ['descend'], render: text => risk[text], }, { title: (
this.columsControl('riskScene')}> {' '} 风险场景
), dataIndex: 'riskScene', key: '风险场景', render: riskScene => { const isLong = riskScene.length > 10; return ( {isLong ? ( `${riskScene.slice(0, 10)}...` ) : ( {riskScene} )} ); }, }, { title: (
this.columsControl('department')}> {' '} 部门
), dataIndex: 'department', key: '部门', render: dep => { const isLong = dep.length > 10; return ( {isLong ? ( `${dep.slice(0, 10)}...` ) : ( {dep} )} ); }, }, { title: (
this.columsControl('createTime')}> {' '} 告警时间
), dataIndex: 'createTime', key: '告警时间', }, { title: (
this.columsControl('status')}> {' '} 状态
), dataIndex: 'status', key: '状态', render: status => ( {ABNORMAL_AUDIT_STATUS[status]} ), }, { title: (
this.columsControl('baseInfo')}> 文件名
), dataIndex: 'baseInfo', key: '文件名', render: text => { const jsonData = JSON.parse(text); const name = jsonData.filename; return name ? {name} : ''; }, }, { title: (
this.columsControl('operatePlatform')}> 操作平台
), dataIndex: 'operatePlatform', key: '操作平台', }, { title: '操作', fixed: 'right', width: 80, render: (_, record) => (
{record.status === 0 ? ( { this.roamId(record.id); }} > 流转 ) : ( 流转 )}
), }, ], }; } componentWillMount() { const { dispatch } = this.props; dispatch({ type: 'abnormalList/fetchList', payload: { page: 1, pageSize: 10, filter: [], }, }); } columsControl = str => { const { colKey, columns, newCol } = this.state; const id = colKey[str]; newCol.push(columns[id]); delete columns[id]; // 此处用delete方便后续添加某项表头的时候能回到最开始的位置 this.setState({ columns, newCol }); }; addCol = (one, str, i) => { const { colKey, columns, newCol } = this.state; const id = colKey[str]; columns.splice(id, 1, one); // 替换 newCol.splice(i, 1); // 删除 this.setState({ columns, newCol }); }; handleTableChange = (pagination, filters, sorter) => { const { current, pageSize } = pagination; const { dispatch, abnormalList: { filter }, } = this.props; dispatch({ type: 'abnormalList/fetchList', payload: { page: current, pageSize, filter, sorter, }, }); }; render() { const { abnormalList, loading } = this.props; const { selectedData, columns, newCol } = this.state; const { data, page, total } = abnormalList; const rowSelection = { onChange: (selectedRowKeys, selectedRows) => { console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows); this.setState({ selectedData: selectedRowKeys }); }, getCheckboxProps: record => ({ disabled: record.name === 'Disabled User', // Column configuration not to be checked name: record.name, }), }; return (
可添加表头: {newCol.map((item, index) => ( { this.addCol(item, item.dataIndex, index); }} > +{item.key} ))}
); }}export default AbnormalList;
主要是在columns 中的title中添加点击事件。columsControl,addCol两个函数是实现的关键。
antd中tooltip换行_ant design 中实现表格头部可删除和添加相关推荐
- antd表格显示分页怎么取消_react + Ant Design 实现table表格分页和删除
首先下载 antd: npm install antd --save引入:import {Table,Tag,Space,Button } from "antd";在回调函数里定义 ...
- Ant Design Vue 修改表格头部样式
在网上搜了好多修改表格头部样式的,最后自己摸索出来,分享给大家,最后附上完整代码. 首先用到的是customHeaderRow这个API,类型是一个函数 1.HTML部分 <a-table si ...
- html5中折叠面板,Ant Design中折叠面板Collapse
这段时间做react项目遇到一些平常并不会去在意的问题,但解决的时候又需要思考一番.这次开发用到了蚂蚁金服的UI框架Ant Design.项目中有一个模块的样式和功能用到了折叠面板Collapse组件 ...
- linux文件中的换行符,Linux中的换行符
说明:本文仅供学习交流,转载请标明出处,欢迎转载! 将windows下编写的一个txt文件在Linux下打开的时候发现每行行末都会多出^M,而将Linux编写的一个txt文件在windows下打开时发 ...
- poi XWPFDocument 实现word中内容换行
poi实现word表格中内容换行 实现效果图如下: 表格内容: String str = "(1)第一行\n(2)第二行"; 工具类: //获取文档docXWPFDocument ...
- html 换行特殊符号,html中的换行符号
html中的换行符号: Word中向下的箭头↓符号怎么删除?手动换行符删除方法,缺失:html中的换行符号12244/11 以下是的一些我们精选的Word中向下的箭头↓符号怎么删除?手动换行符删除方法 ...
- python中的换行符是哪个键_对Python字符串中的换行符和制表符介绍
对Python字符串中的换行符和制表符介绍 有关换行的问题 首先提一个问题,如下. python程序代码如下: print("I'm Bob. What's your name?" ...
- vue 怎么在html显示为回车_vue.js中怎么换行?
vue.js中怎么换行?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 在页面中经常会遇到自定义文本,如果文本过长就需要换行,在HTML中可以通过 标签换 ...
- flex中toolTip汇总
1.toolTip换行符 <mx:Button id="btn1" toolTip="在工具条提示中 使用换行符"/> 2.设定工 ...
最新文章
- 美国韩国科学家纷纷开发出电子机器人“皮肤”,据称具有比人类更好的触觉...
- 错误 Failed to load module “canberra-gtk-module“ 解决方案
- 推荐一个优化分页查询的办法(分页数很大的情况)
- maven下载包慢解决
- MyBatis_1	简介
- python的代码在哪写_python代码在哪里编写
- Pytorch中RNN入门思想及实现
- idea base64encoder没有jar包_老师,免费版的IDEA为啥不能使用Tomcat?
- 第十三章 对文本进行排序、单一和重复操作:sort命令、uniq命令
- 我的世界linux服务器乱码,我的世界服务器控制台使用上箭头乱码解决办法
- 登量子位“AI领航企业榜单”,联想用实力说话
- java 降低jdk版本_jdk1.7降级到1.6 | 学步园
- 向CentOS6.6服务器安装confluence5.4.4
- kubernetes 查看日志方法
- chmod和chown命令的用法
- 图数据库实战 AWS Neptune Gremlin CloudFormation
- IIS中间件渗透总结
- 电脑系统重装篇6:使用微PE工具箱制作U盘启动盘并重装系统(WePE)
- 数据库存储时间时区UTC,如何转换为北京时区
- Performs recursive(递归) glob(全局) with given suffix and rootdir,使用os.walk(rootdir)和filename.endswith(s
热门文章
- C++类占字节数讲解
- Linux网络协议栈:一个TCP链接的耗时
- Linux环境编程:fork系统调用及其陷阱 - 内存复用,文件不复用
- FD.io VPP官方邮件列表
- 基于Linux内核红黑树的TR069参数解析工具:树形结构+CPE RPC支持
- diolog js_js组件-js插件-jquery插件-dialog对话框弹层
- 越狱后必装软件_iOS 13全系统越狱详细教程疑难解答
- Hadoop单机和伪分布式环境搭建
- jitpack第三方依赖库使用
- html给box加超链接,java – 如何使用pdfbox在pdf中添加超链接