vue中异步批量删除列表数据

业务:设备列表,根据选中的复选框批量删除数据

vue中template里面代码:

javascript 复制代码
 <!-- 设备列表 -->
    <el-table :data="eTableData" style="width: 100%;" border  @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center"></el-table-column>
      <el-table-column prop="equipmentName" label="设备名称" sortable align="center"></el-table-column>
      <el-table-column prop="equipmentId" label="设备编号" sortable align="center"></el-table-column>
      <el-table-column prop="typeSpecification" label="型号规格" sortable align="center"></el-table-column>
      <el-table-column prop="categoryId" label="类目编号" sortable align="center"></el-table-column>
      <el-table-column prop="addressId" label="所在区域" sortable align="center">
        <template slot-scope="scope">
          {{ scope.row.addressId === 4 ? '办公区 ':''}}
          {{ scope.row.addressId === 5 ? '休息区 ':''}}
        </template>
      </el-table-column>
      <el-table-column prop="manufacturerNum" label="厂家编号" sortable align="center"></el-table-column>
      <el-table-column prop="manufacturerType" label="厂家型号" sortable align="center"></el-table-column>
      <el-table-column prop="price" label="价格" sortable align="center"></el-table-column>
      <el-table-column prop="buyTime" label="购置日期" sortable align="center"></el-table-column>

      <el-table-column label="操作" width="190" align="center">
        <template slot-scope="scope">
          <el-button type="primary" size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
          <el-button type="primary" size="mini" @click="handleDelete(scope.$index, scope.row)">查看</el-button>
        </template>
      </el-table-column>
    </el-table>

javaScript代码

javascript 复制代码
data() {
    return {
      eTableData:[],//列表数据来源
      selectedRows:[],//用于存储选中的行
      selectedRowIds:[],//用于存储选中的ID
    }
  },

methods: {

      //处理选中的行
    handleSelectionChange(selected){
      this.selectedRows = selected; // 更新选中的行
      this.selectedRowIds = this.selectedRows.map(row => row.id); // 获取 ID 数组
    },
 async deleteSelectedRows(){
      if (this.selectedRowIds.length === 0) {
        this.$message.warning("请先选择要删除的项");
        return;
      }
      try {
        // 调用 eDelete 方法并传入选中的 ID
        await eDelete(this.selectedRowIds);

        // 更新表格数据,移除已删除的行
        this.eTableData = this.eTableData.filter(item => !this.selectedRowIds.includes(item.id));

        // 清空选中状态
        this.selectedRows = [];
        this.selectedRowIds = [];

        this.$message.success("删除成功");
      } catch (error) {
        console.error("删除失败:", error);
        this.$message.error("删除失败,请稍后再试");
      }
    },
    
},

api包下的 js 代码

javascript 复制代码
// 根据选中行ID删除
export function eDelete(ids) {
  return request({
    data: ids,
    method: 'delete',
    url: '/dms/eDelete'
  })
}

后台控制层:

java 复制代码
    /**
     * 功能:设备删除
     */
    @DeleteMapping("/eDelete")
    public R eDelete(@RequestBody List<String> ids) {
        eService.eDelete(ids);
        return R.ok();
    }

Service:

java 复制代码
void eDelete(List<String> ids);

ServiceImpl:

java 复制代码
    @Override
    public void eDelete(List<String> ids) {
        esMapper.eDelete(ids);
    }

Mapper:

java 复制代码
void eDelete(@Param("ids") List<String> ids);

Mapper.xml:

java 复制代码
    <delete id="eDelete" parameterType="java.util.List">
        DELETE FROM t_equipment
        WHERE id IN
        <foreach item="id" collection="ids" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
相关推荐
sbjdhjd7 小时前
Redis 主从复制、哨兵高可用与 Cluster 集群部署实验手册
运维·前端·redis·云原生·开源·bootstrap·html
乐兮创想 小林8 小时前
企业官网移动端性能优化实战:从 Core Web Vitals 到图片/CDN/响应式的工程清单
前端·性能优化·网站建设·北京网站建设公司
疯狂SQL8 小时前
JWT 在线解码、验签、生成一篇讲透:附前端实现、工具架构与在线体验地址
javascript·jwt·编解码·jwt测试
前端一小卒8 小时前
不手写代码的第 30 天,我才明白前端这个岗位还剩什么
前端·javascript·ai编程
Ajie'Blog8 小时前
Copilot Agent Tasks API 开放:AI 编程开始进入后台任务时代
服务器·前端·javascript·人工智能·copilot·ai编程
老毛肚9 小时前
jeecgboot vue TS & 模板化 04
前端·javascript·vue.js
晓13139 小时前
【Cocos Creator 2.x】篇——第二章 入门
javascript·游戏引擎
AI_零食10 小时前
鸿蒙PC Electron跨平台应用开发:24时区时间表应用详解
前端·华为·electron·开源·harmonyos·鸿蒙
Electrolux11 小时前
[onlyoffice-v9]纯前端怎么实现编辑预览office
前端·javascript·github
VidDown11 小时前
Webhook 调试器:让第三方回调“原形毕露”
java·开发语言·javascript·编辑器·postman