当前位置:首页 > VUE

vue实现表格多选效果

2026-01-23 12:46:56VUE

Vue实现表格多选效果

基础实现方法

使用el-table组件结合type="selection"实现多选

<el-table
  ref="multipleTable"
  :data="tableData"
  @selection-change="handleSelectionChange">
  <el-table-column
    type="selection"
    width="55">
  </el-table-column>
  <!-- 其他列 -->
</el-table>

在Vue实例中定义相关数据和方法

data() {
  return {
    tableData: [...], // 表格数据
    multipleSelection: [] // 存储选中项
  }
},
methods: {
  handleSelectionChange(val) {
    this.multipleSelection = val;
  }
}

自定义选择逻辑

实现跨页选择记忆功能

data() {
  return {
    selectedRows: new Map() // 使用Map存储选中项
  }
},
methods: {
  handleSelectionChange(rows) {
    rows.forEach(row => {
      this.selectedRows.set(row.id, row)
    })
  },
  getRowKey(row) {
    return row.id // 确保每行有唯一标识
  }
}

在模板中添加row-key属性

vue实现表格多选效果

<el-table
  :row-key="getRowKey"
  @selection-change="handleSelectionChange">
</el-table>

全选与反选功能

添加全选按钮控制

methods: {
  toggleSelection(rows) {
    if (rows) {
      rows.forEach(row => {
        this.$refs.multipleTable.toggleRowSelection(row)
      })
    } else {
      this.$refs.multipleTable.clearSelection()
    }
  }
}

模板中添加控制按钮

<el-button @click="toggleSelection(tableData)">全选</el-button>
<el-button @click="toggleSelection()">取消选择</el-button>

样式优化

添加选中行高亮样式

vue实现表格多选效果

.el-table__body tr.current-row>td {
  background-color: #f0f7ff;
}
.el-table__body tr.hover-row.current-row>td {
  background-color: #e1f0ff;
}

高级功能实现

实现条件选择(只能选择符合特定条件的行)

methods: {
  selectable(row, index) {
    return row.status === 'active' // 只允许选择状态为active的行
  }
}

在模板中使用selectable属性

<el-table-column
  type="selection"
  :selectable="selectable"
  width="55">
</el-table-column>

性能优化

对于大数据量表格使用懒加载选择

data() {
  return {
    loadedSelections: new Set() // 存储已加载的选中项
  }
},
methods: {
  loadMoreSelections() {
    // 分批加载选中项逻辑
  }
}

标签: 多选表格
分享给朋友:

相关文章

vue表格实现单选框

vue表格实现单选框

实现单选框的基本思路 在Vue中实现表格单选框通常结合<input type="radio">或第三方组件库(如Element UI、Ant Design Vue等)。核心逻辑是通过v-m…

css好看的表格制作

css好看的表格制作

CSS表格美化方法 边框与间距优化 使用border-collapse合并边框,避免双线边框。设置padding增加单元格内边距,提升可读性。 table { border-collapse:…

vue实现表格复选

vue实现表格复选

实现表格复选的基本思路 在Vue中实现表格复选功能,通常需要结合v-model绑定选中状态,监听复选框变化事件,以及维护一个选中项的数组。以下是具体实现方法: 基础实现步骤 数据准备 定义表格数据和…

使用vue实现表格

使用vue实现表格

使用 Vue 实现表格 Vue.js 提供了灵活的方式来实现表格功能,可以通过组合 v-for 指令和动态数据绑定快速构建表格。以下是几种常见的实现方法: 基础表格实现 通过 v-for 遍历数组数…

vue循环实现多选

vue循环实现多选

Vue循环实现多选的方法 在Vue中实现多选功能,可以通过v-for循环渲染选项,结合v-model绑定数组来记录选中的值。以下是具体实现方式: 基础实现方案 数据准备 在组件的data中定义选项…

vue实现表格追加

vue实现表格追加

实现表格数据追加的方法 在Vue中实现表格数据追加可以通过多种方式完成,主要涉及数据绑定和数组操作。以下是几种常见的方法: 数据绑定与v-for指令 通过v-for指令渲染表格数据,利用数组的co…