当前位置:首页 > 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实现考试多选功能 数据绑定与选项渲染 使用v-model绑定用户选择的答案数组,结合v-for循环渲染选项列表。示例代码: <template> <div>…

css表格制作表格

css表格制作表格

CSS 表格制作方法 基础表格结构 使用HTML的<table>标签创建表格框架,搭配<tr>(行)、<td>(单元格)和<th>(表头)标签: &l…

vue实现多选下拉

vue实现多选下拉

Vue 实现多选下拉 使用 Vue 实现多选下拉可以通过原生 HTML <select> 元素结合 Vue 的双向绑定,或者使用第三方组件库如 Element UI、Vuetify 等。以…

vue实现表格输出

vue实现表格输出

Vue 实现表格输出的方法 使用原生表格标签 在 Vue 模板中可以直接使用 HTML 原生表格标签(<table>、<tr>、<td>等)渲染数据。通过 v-fo…

vue实现表格序号

vue实现表格序号

实现表格序号的常见方法 在Vue中为表格添加序号列可以通过多种方式实现,以下是几种典型方案: 使用v-for索引 <template> <table> <…

vue实现表格搜索

vue实现表格搜索

实现表格搜索功能 在Vue中实现表格搜索功能,可以通过以下步骤完成: 数据绑定与搜索输入框 创建一个输入框用于接收用户输入的搜索关键词,使用v-model实现双向绑定。 <template…