element UI Table表格多选中通过row-click实现点击某一行的任意位置都能选择

在使用element UI Table表格的多选时,默认是点击复选框才能选中或取消选中,但希望不管点击这一行的哪个位置都能实现这个效果;

// el-table部分代码片段,主要是 @row-click="handle"
<template>
	<div>
		<el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%" @row-click="handle"
		 @selection-change="handleSelectionChange">
			<el-table-column type="selection" width="55">
			</el-table-column>
			<el-table-column prop="date" label="日期" width="120">
			</el-table-column>
			<el-table-column prop="name" label="姓名" width="120">
			</el-table-column>
			<el-table-column prop="address" label="地址">
			</el-table-column>
		</el-table>
		<p v-html="$options.filters.formatDate(1585929599000 )"></p>
	</div>
</template>

实现点击任意位置都能选择的方法 handle()

// 代码片段
<script>
	export default {
		data() {
			return {
				tableData: [{
					date: 1585929599000,
					id: 1,
					name: '王小虎',
					address: '上海市普陀区金沙江路 1518 弄'
				}, {
					id: 2,
					date: 1585929599000,
					name: '王小虎',
					address: '上海市普陀区金沙江路 1518 弄'
				}],
				list: []
			}
		},

		methods: {
			handle(row, column, event) {
				// list -- 已选的数据
				let index = this.list.findIndex(item => {
					// 判断已选数组中是否已存在该条数据
					return item.id == row.id
				})
				if (index == -1) {
					// 如果未存在,设置已选状态,并在list中添加这条数据
					this.$refs.multipleTable.toggleRowSelection(row, true); //设置复选框为选中状态
					this.list.push(row)
				} else {
					// 如果已存在,设置未选状态,并在list中删除这条数据
					this.$refs.multipleTable.toggleRowSelection(row, false); //设置复选框为未选状态
					this.list.splice(index, 1)
				}

			}
		}
	}
</script>
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,如果您使用 Element UI表格组件,您可以使用以下代码实现在鼠标点击表格的行时改变该行字体颜色以及默认选中一行: HTML代码: ``` <el-table ref="table" :data="tableData" @row-click="handleRowClick"> <el-table-column prop="name" label="名称"></el-table-column> <el-table-column prop="quantity" label="数量"></el-table-column> </el-table> ``` JavaScript代码: ``` export default { data() { return { tableData: [ { name: '苹果', quantity: 10 }, { name: '香蕉', quantity: 5 }, { name: '橙子', quantity: 8 } ] }; }, mounted() { // 默认选中一行 this.$refs.table.setCurrentRow(this.tableData[0]); }, methods: { handleRowClick(row) { // 将所有行的字体颜色设置为黑色 this.$refs.table.clearSelection(); // 将鼠标点击的行的字体颜色设置为红色 row.$el.style.color = 'red'; // 设置当前选中行 this.$refs.table.setCurrentRow(row); } } }; ``` 在这个例子中,我们首先在表格组件上添加了 `@row-click` 事件监听器,当用户点击表格中的某一行时,该监听器将会被调用。接着,在 `mounted` 钩子函数中,我们将第一行设置为当前选中行,表示默认选中一行。在 `handleRowClick` 方法中,我们将所有行的选中状态清除,然后将鼠标点击的行的字体颜色设置为红色,并将该行设置为当前选中行。这样,当用户点击一行时,该行的字体颜色就会改变为红色,表示该行被选中了。希望这可以帮助您解决问题!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值