利用antd 表格实现内容多选的效果

在这里插入图片描述
要求效果,鼠标悬停时有背景色,离开取消,原本表格是自带背景色的,不过是当前行的,这个不能要,取消掉,然后离开的时候取消掉,跟行的效果是一样的,再有就是点击的时候要把背景颜色停留上面

本来这种直接用下拉框最简单的事,但是产品为了好看设计成这样,只能忍了
首先 第一步,把行颜色取消

  /deep/ table tbody tr:hover td{ 
    background-color:#ffffff!important
  }

在这里插入图片描述
这样鼠标悬停上面就没有任何效果了,再就给加单项加上同样的效果
第二步

/deep/ table tbody tr td:hover{ 
    background-color:#cbe2ef!important
  }

在这里插入图片描述
第三步 点击加取消

 :customRow="customRow"

// 
    customRow(record){
      return {
        on: {
           click: (event) => {
             event.target.className === 'ant-table-item-active' ?  event.target.className = '':  event.target.className = 'ant-table-item-active'
           },  
        }
      }
    },

加上这个类名就行了,

  const vdom = document.querySelectorAll('.ant-table-item-active')
   let personalityTagValue = []
   vdom.forEach(dom => {
     personalityTagValue.push(dom.innerHTML) 
   })
   console.log('保存选项', personalityTagValue)

这样就能拿到所有的选项了
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
antd 表格中开启多选功能需要在 `columns` 中设置 `checkboxSelection: true`。同时,需要在 `Table` 组件中设置 `rowSelection` 属性来指定选择的行。 具体实现方式如下: ```jsx import React, { useState } from 'react'; import { Table } from 'antd'; const dataSource = [ { key: '1', name: 'John Brown', age: 32, address: 'New York No. 1 Lake Park', }, { key: '2', name: 'Jim Green', age: 42, address: 'London No. 1 Lake Park', }, { key: '3', name: 'Joe Black', age: 32, address: 'Sidney No. 1 Lake Park', }, ]; const columns = [ { title: 'Name', dataIndex: 'name', key: 'name', }, { title: 'Age', dataIndex: 'age', key: 'age', }, { title: 'Address', dataIndex: 'address', key: 'address', }, { title: 'Action', key: 'action', render: () => <a>Delete</a>, }, ]; const MultiSelectTable = () => { const [selectedRowKeys, setSelectedRowKeys] = useState([]); const onSelectChange = selectedRowKeys => { setSelectedRowKeys(selectedRowKeys); }; const rowSelection = { selectedRowKeys, onChange: onSelectChange, }; return ( <Table dataSource={dataSource} columns={columns} rowSelection={rowSelection} checkboxSelection /> ); }; export default MultiSelectTable; ``` 上面的代码中,我们定义了一个 `MultiSelectTable` 组件,其中包含一个 `Table` 组件,设置了 `dataSource` 和 `columns`。在 `Table` 组件中,开启了多选功能,同时指定了 `rowSelection` 属性来指定选择的行。我们还定义了一个 `selectedRowKeys` 状态,用于记录用户选择的行的 key 值,并通过 `onSelectChange` 函数来更新该状态。最后,将 `selectedRowKeys` 和 `onSelectChange` 传递给 `rowSelection` 属性,即可实现多选功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值