ant-design, 实现Table单击行变色

首先定义要引入的scss, 并且在页面引入

定义样式

.clickRowStyl{
  background-color : #00b4ed;
}
.ant-table-tbody>.clickRowStyl:hover>td {
  background-color : #00b4ed;
}

引入样式

import tdSelectStyle from "./transaction-struct.scss"
定义Table
                <Table
                  bordered
                  rowKey="id"
                  columns={tableColumns}
                  pagination={tablePagination}
                  dataSource={tableData}
                  scroll={{ x: 600 }}
                  onRow={(record) => ({
                    onClick: () => this.onTableClick(record),
                  })}
                  rowClassName={this.setRowClassName}
                />
onRow和rowClassName
                  onRow={(record) => ({
                    onClick: () => this.onTableClick(record),
                  })}

这个表示点击的时候执行 onTableClick

  onTableClick = (record) => {
    this.setState({ tableId: record.id });
  };

把点击的本行的 id 存储到 state

  setRowClassName = (record) => {
    const {tableId} = this.state;
    return record.id === tableId ? `${tdSelectStyle.clickRowStyl}` : '';
  };

setRowClassName 标识设置每行的 class , 要求返回是一个 String,
这里表示当本行的id 等于刚刚存储在state的 tableId, 那么就表示这一行是选中的行, 返回刚刚定义的样式, 修改背景色

效果

在这里插入图片描述
参考 : https://blog.csdn.net/zm_miner/article/details/83026968

Ant Design Vue中,Table组件通常用于展示数据列表,并且支持通过点击某一插入一个新的详情。这通常涉及到表格的“编辑”或“详情查看”功能,可以分为以下几个步骤: 1. 安装依赖:首先确保已经安装了`@ant-design/vue-table`库。 2. 设置表头:在`<a-table>`标签内配置列定义,包括是否显示编辑按钮(如操作列),例如添加`editable`属性。 ```html <a-table :columns="columns" :data="tableData" :editable="{ type: 'cell', onCell: handleEditCell }"> ... </a-table> ``` 3. 编辑函数:定义`handleEditCell`函数,当用户点击编辑按钮时,会在这个函数里处理细节操作,比如打开新的模态框展示详情或允许用户输入新数据。 ```javascript methods: { handleEditCell(record) { // 打开编辑模态或跳转到详情页面 this.$router.push({ name: 'detail', params: { id: record.id } }); } } ``` 4. 插入详情页:创建一个新的路由组件`Detail.vue`或弹出式模态组件,用于显示或编辑详细的记录信息。 5. 返回或保存编辑:在详情页或模态中完成编辑后,用户可以选择返回并更新原数据,这时需要将修改的数据传递回`tableData`数组。 请注意,以上代码示例简略,实际项目中可能还需要处理更多复杂情况,例如使用Form组件收集用户输入、校验数据等。如果你需要在插入详情后立即显示,可以考虑在`handleEditCell`中直接合并数据,而不是新开页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值