element plus table表格复选框实现单选效果

欢迎点击领取 -《前端开发面试题进阶秘籍》:前端登顶之巅-最全面的前端知识点梳理总结

分享一个使用比较久的🪜

框架vue3 + vite4.4.2 + element plus;需求背景:数据列表展示内容-复选框支持单选;我们都知道element的table ui组件type = selection,是一个复选框多选的状态,要支持单选有多种方式选择,而我们的项目对列表组件进行了二次封装,不在是模版标签的书写;方案:1. 模版标签式的写法,添加Radio单选标签进行渲染单元格,通过数据层唯一字段控制;2. 控制原有的复选框让其变更成单选,不增加多余逻辑代码和循环。这里我们使用的是方案2,简单便捷

element plus table列表复选框支持单选操作视频

方案2实现过程:
// TableList是封装的组件-在trap-ui内,这块大家可以替换成element plus的table标签,实现逻辑js通用
<template>
	<TableList
      size="small"
      ref="multipleTableRefs"
      :is-footer-extend="false"
      :httpRequest="httpRequest"
      :columns="[]"
      @select="handleSelectClick"
      @selection-change="handleSelectionChange"
    />
</template>
<script lang="ts" setup>
import { ref, reactive, onMounted } from 'vue'

const multipleTableRefs = ref(null)

const selectionChecked = ref<string[]>([])

// 获取选中当前行数据
const handleSelectionChange = (checked) => {
  selectionChecked.value = checked
}

// 复选框点击触发动作,长度大于1,我们进行取前一个元素,并设置前一个元素的选中状态,那么当前的元素就是可选的一个状态了
const handleSelectClick = (selection) => {
  if (selection.length > 1) {
    const del_row = selection.shift()
    // toggleRowSelection属性的第二个元素接受的是一个选中状态的布尔值,false不选中,true选中;
   // 注意直接使用element的table没有.element;multipleTableRefs.value.toggleRowSelection(del_row, false)
    multipleTableRefs.value.element.toggleRowSelection(del_row, false)
  }
}
</script>

// 通过隐藏表头复选框,进行样式覆盖
<style lang="scss" scoped>
:deep(.el-table__header-wrapper .el-table__header .el-checkbox) {
  display: none;
}
</style>

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Element Plus表格单选框可以通过修改复选框的行为来实现。在给定的引用中,方案2展示了如何将Element Plus的复选框转变为单选框。具体步骤如下: 1. 首先,确保你已经引入了Element Plus库,并正确地使用了表格组件。 2. 在表格组件内部,你可以使用`@selection-change`事件来监听复选框的变化。通过添加`@selection-change="handleSelectionChange"`来绑定事件处理函数。 3. 在`handleSelectionChange`函数中,你可以通过获取选中的行数据,来控制单选框的状态。在给定的示例中,使用了`selectionChecked`来保存选中行的数据。 4. 接下来,你可以通过`@select`事件来处理单选框的点击动作。在给定的示例中,使用了`handleSelectClick`函数来处理事件。在该函数中,首先判断选中的行数是否大于1,如果是的话,将第一个元素移除,并设置第一个元素的选中状态为false。这样就实现单选效果。 5. 最后,将表格组件中的复选框改为单选框即可。在给定的示例中,使用了`toggleRowSelection`方法来切换行的选中状态。 通过以上步骤,你可以实现Element Plus表格单选框功能。请注意,具体实现方式可能会因你的项目结构和需求而有所差异。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [element plus table表格复选框实现单选效果](https://blog.csdn.net/weixin_43624724/article/details/131676701)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [elementUI 设置input的只读或禁用的方法](https://download.csdn.net/download/weixin_38506138/14904265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SunnyRun!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值