当前位置:首页 > VUE

vue实现批量删除

2026-01-14 08:10:21VUE

实现批量删除功能

在Vue中实现批量删除通常需要结合表格多选功能和API调用。以下是一个完整的实现方案:

表格多选功能实现

使用Element UI的表格组件实现多选功能:

<template>
  <el-table
    :data="tableData"
    @selection-change="handleSelectionChange"
    ref="multipleTable"
  >
    <el-table-column type="selection" width="55"></el-table-column>
    <!-- 其他列 -->
  </el-table>
  <el-button @click="batchDelete">批量删除</el-button>
</template>

处理选中项

在methods中定义选择变化处理函数:

data() {
  return {
    tableData: [],
    multipleSelection: []
  }
},
methods: {
  handleSelectionChange(val) {
    this.multipleSelection = val
  }
}

批量删除方法实现

实现批量删除的核心方法:

methods: {
  batchDelete() {
    if (this.multipleSelection.length === 0) {
      this.$message.warning('请至少选择一项')
      return
    }

    const ids = this.multipleSelection.map(item => item.id)
    this.$confirm('确认删除选中的项吗?', '提示', {
      type: 'warning'
    }).then(() => {
      this.$api.deleteItems(ids).then(res => {
        this.$message.success('删除成功')
        this.getTableData() // 重新获取数据
      })
    })
  }
}

API调用示例

在api.js中定义删除接口:

export function deleteItems(ids) {
  return request({
    url: '/items',
    method: 'delete',
    data: { ids }
  })
}

注意事项

  • 后端接口需要支持接收数组形式的ID进行批量删除
  • 删除成功后需要刷新表格数据
  • 添加适当的用户提示和确认对话框
  • 考虑添加加载状态防止重复提交

完整组件示例

<template>
  <div>
    <el-table
      :data="tableData"
      @selection-change="handleSelectionChange"
      ref="multipleTable"
      v-loading="loading"
    >
      <el-table-column type="selection" width="55"></el-table-column>
      <el-table-column prop="name" label="名称"></el-table-column>
    </el-table>

    <el-button 
      type="danger" 
      @click="batchDelete"
      :disabled="multipleSelection.length === 0"
    >
      批量删除({{ multipleSelection.length }})
    </el-button>
  </div>
</template>

<script>
import { deleteItems, getItems } from '@/api'

export default {
  data() {
    return {
      tableData: [],
      multipleSelection: [],
      loading: false
    }
  },
  created() {
    this.getTableData()
  },
  methods: {
    handleSelectionChange(val) {
      this.multipleSelection = val
    },
    getTableData() {
      this.loading = true
      getItems().then(res => {
        this.tableData = res.data
      }).finally(() => {
        this.loading = false
      })
    },
    batchDelete() {
      this.$confirm('确认删除选中的项吗?', '提示', {
        type: 'warning'
      }).then(() => {
        const ids = this.multipleSelection.map(item => item.id)
        deleteItems(ids).then(() => {
          this.$message.success('删除成功')
          this.getTableData()
        })
      })
    }
  }
}
</script>

vue实现批量删除

标签: 批量vue
分享给朋友:

相关文章

vue怎么实现文件树

vue怎么实现文件树

Vue 实现文件树的方法 使用递归组件 递归组件是处理嵌套数据结构的理想方式。文件树通常包含文件夹和文件的嵌套结构,适合用递归组件实现。 <template> <ul>…

vue前端实现打印功能

vue前端实现打印功能

使用Vue实现前端打印功能 在Vue项目中实现打印功能可以通过多种方式完成,以下是几种常见的方法: 使用window.print()方法 这是最简单的打印方式,直接调用浏览器的打印功能。 meth…

vue中登陆实现逻辑

vue中登陆实现逻辑

Vue 中登录实现逻辑 前端实现逻辑 表单验证 使用 Vue 的表单验证库(如 VeeValidate)或自定义验证规则,确保用户输入的账号和密码符合要求。例如,检查邮箱格式、密码长度等。 发送登…

vue调用接口实现退出

vue调用接口实现退出

实现Vue退出功能的步骤 在Vue中调用接口实现退出功能通常需要与后端API交互,以下是实现方法: 前端实现 创建退出方法,调用后端API接口: methods: { logout() {…

vue实现文章锚点定位

vue实现文章锚点定位

实现文章锚点定位的方法 在Vue中实现文章锚点定位可以通过多种方式完成,以下是几种常见的方法: 使用原生HTML锚点 通过HTML的id属性和<a>标签的href属性实现锚点跳转。在V…

实现vue

实现vue

安装Vue.js 通过npm安装Vue.js是最常见的方式。确保已安装Node.js和npm,运行以下命令: npm install vue 或者使用CDN直接引入: <script src…