当前位置:首页 > 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属性

<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>

样式优化

添加选中行高亮样式

.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实现表格多选效果

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

相关文章

css好看的表格制作

css好看的表格制作

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

vue实现动态用户表格

vue实现动态用户表格

Vue 动态用户表格实现方法 基础表格结构 使用<table>或第三方组件库(如Element UI的el-table)构建基础框架。静态数据示例: <template>…

vue element实现表格

vue element实现表格

Vue + Element UI 实现表格 Element UI 提供了强大的表格组件 el-table,结合 Vue 可以快速实现数据展示、排序、筛选等功能。 基础表格实现 安装 Element…

vue实现表格复选

vue实现表格复选

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

vue 实现表格单选

vue 实现表格单选

实现表格单选的基本思路 在Vue中实现表格单选功能,通常需要结合表格组件(如el-table)和数据绑定。核心逻辑是通过点击事件更新当前选中行的唯一标识(如id),并通过:class或:style绑定…

vue实现子表格

vue实现子表格

实现子表格的基本思路 在Vue中实现子表格通常需要结合组件化思想和动态渲染技术。常见的场景是在主表格的行内嵌套子表格,展开主表行时显示对应的子表数据。 使用el-table实现子表格(Element…