Vue+springboot的批量删除功能

vue前台

<div style="margin-bottom: 10px">
        <el-button type="primary" plain @click="handleAdd">新增</el-button>
        <el-button  @click="delBatch" type="danger" plain style="margin-left: 5px">批量删除</el-button>
      </div>
        <el-table :data="data.tableData" style="width:100%" @selection-change="handleSelectionChange">
          <el-table-column type="selection" width="55" align="center"></el-table-column>
</el-table>

js

// 选择数据
const handleSelectionChange = (val) => {
  data.multipleSelection = val;
}
//批量删除
const delBatch = () => {
  const ids = data.multipleSelection.map(item => item.id)
  if (data.multipleSelection.length === 0) {
    ElMessage.warning('请选择要删除的数据')
    return
  }
  ElMessageBox.confirm('删除数据后无法恢复,您确认删除吗?', '删除确认', {type: 'warning'}).then(() => {
    request.request({
      ids:data.multipleSelection.map(item => item.id),
      url: '/ssCompany/delBatch?ids=' + ids.join(','), // 使用逗号分隔的 ID 字符串作为参数
      method: 'DELETE',
    }).then(res => {
      if (res.code === '200') {
        // 重新获取数据的过程(load() 方法的调用)应该在删除成功后执行
        ElMessage.success("操作成功")
        load()  // 重新获取数据
      } else {
        ElMessage.error(res.msg)
      }
    }).catch(err => {
      // 添加错误处理逻辑
      ElMessage.error('删除时发生错误: ' + err.message)
    })
  }).catch(() => {
    // 处理取消操作的逻辑
    ElMessage.info('取消操作')
  })
}

后台springboot

controller

  /**
     * 批量删除
     */
    @DeleteMapping("/delBatch")
    public Result delBatch(@RequestParam List<Integer> ids){
        for (Integer id : ids) {
            scManagerService.deleteById(id);
        }
        return Result.success();
    }

mapper

    //批量删除
    @Delete("DELETE FROM sc_manager WHERE id IN (#{id})")
    void deleteByIds(String id);

service

 //批量删除
    public void delBatch(List<Integer> ids) {
        scManagerMapper.delBatch(ids);
    }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<项目介绍> <项目介绍> 本系统是基于springbootvue-cli脚手架搭建的公司员工工资系统 目前功能: 用户、员工、部门、历史公司四表的数据库crud 导入导出xlsx文件 主页、管理与登录注册页面的跳转路由 批量删除 登录登出 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 -------- - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
以下是Vue+SpringBoot批量下载的实现方法: 1.前端Vue代码: ```html <template> <div> <el-button type="primary" @click="downloadAll">批量下载</el-button> </div> </template> <script> export default { methods: { downloadAll() { // 获取需要下载的文件路径列表 const paths = ['path1', 'path2', 'path3']; // 发送POST请求到后端下载接口 this.$axios.post('/downloadAll', paths, { responseType: 'blob' }).then(res => { // 将二进制流转换为文件并下载 const blob = new Blob([res.data], { type: 'application/zip' }); const fileName = 'download.zip'; if (window.navigator.msSaveOrOpenBlob) { navigator.msSaveBlob(blob, fileName); } else { const link = document.createElement('a'); link.href = window.URL.createObjectURL(blob); link.download = fileName; link.click(); window.URL.revokeObjectURL(link.href); } }); } } } </script> ``` 2.后端SpringBoot代码: ```java @RestController @RequestMapping("/download") public class DownloadController { @PostMapping("/downloadAll") public void downloadAll(@RequestBody List<String> paths, HttpServletResponse response) throws IOException { // 创建临时文件夹 File tempDir = new File(System.getProperty("java.io.tmpdir"), UUID.randomUUID().toString()); tempDir.mkdirs(); // 将需要下载的文件复制到临时文件夹中 for (String path : paths) { File file = new File(path); FileUtils.copyFileToDirectory(file, tempDir); } // 压缩临时文件夹中的文件 File zipFile = new File(System.getProperty("java.io.tmpdir"), "download.zip"); ZipUtil.pack(tempDir, zipFile); // 设置响应头 response.setContentType("application/zip"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(zipFile.getName(), "UTF-8")); // 将压缩后的文件写入响应流中 try (InputStream in = new FileInputStream(zipFile); OutputStream out = response.getOutputStream()) { IOUtils.copy(in, out); out.flush(); } // 删除临时文件夹和压缩文件 FileUtils.deleteDirectory(tempDir); FileUtils.deleteQuietly(zipFile); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值