文章目录

  • 一. 需求分析
  • 二. API
  • 三. 服务端开发
    • 1. Dao
    • 2. Service
    • 3. Controller
  • 四. 前端开发
    • 1. API方法
    • 2. 页面
      • 1.before-remove钩子方法
      • 2.handleRemove钩子方法

一. 需求分析

课程图片上传成功后,可以重新上传,方法是先删除现有图片再上传新图片;

注意:此删除只删除课程数据库的课程图片信息,不去删除文件数据库的文件信息及文件系统服务器上的文件;

由于课程图片来源于该用户的文件数据库,所以此图片可能存在多个地方共用的情况,所以要删除文件系统中的文件需要到图片库由用户确认后再删除。

二. API

在课程管理服务添加删除课程图片api:

文件位置:xcEduService01\xc-service-api\src\main\java\com\xuecheng\api\course\CourseControllerApi.java

@ApiOperation("删除课程图片")
public ResponseResult deleteCoursePic(String courseId);

三. 服务端开发

1. Dao

文件位置:xcEduService01\xc-service-manage-course\src\main\java\com\xuecheng\manage_course\dao\ CoursePicRepository.java

public interface CoursePicRepository extends JpaRepository<CoursePic,String> {//当返回值大于0,表示删除成功的记录数long deleteByCourseid(String courseId);
}

2. Service

文件位置:xcEduService01\xc-service-manage-course\src\main\java\com\xuecheng\manage_course\service\ CourseService.java

//删除课程图片
@Transactional
public ResponseResult deleteCoursePic(String courseId) {//执行删除long result = coursePicRepository.deleteByCourseid(courseId);if(result>0){return new ResponseResult(CommonCode.SUCCESS);}return new ResponseResult(CommonCode.FAIL);
}

3. Controller

文件位置:xcEduService01\xc-service-manage-course\src\main\java\com\xuecheng\manage_course\controller\ CourseController.java

@Override
@DeleteMapping("/coursepic/delete")
public ResponseResult deleteCoursePic(@RequestParam("courseId") String courseId) {return courseService.deleteCoursePic(courseId);
}

四. 前端开发

1. API方法

文件位置:xc-ui-pc-teach\src\module\course\api\course.js

//删除课程图片
export const deleteCoursePic= courseId => {return http.requestDelete(apiUrl+'/course/coursepic/delete?courseId='+courseId)
}

2. 页面

文件位置:xc-ui-pc-teach\src\module\course\page\course_manage\course_picture.vue

1.before-remove钩子方法

在upload组件的before-remove钩子方法 中实现删除动作。

<template><div><el-uploadaction="/api/filesystem/upload"list-type="picture-card":before-upload="setuploaddata":on-success="handleSuccess":file-list="fileList":limit="picmax":on-exceed="rejectupload":before-remove="handleRemove":data="uploadval"name="multipartFile"><i class="el-icon-plus"></i></el-upload></div>
</template>

2.handleRemove钩子方法

      //删除图片handleRemove(file, fileList) {console.log(file)return new Promise((resolve,reject)=>{courseApi.deleteCoursePic(this.courseid).then(res=>{if(res.success){//成功resolve();}else{this.$message.error("删除失败");//失败reject();}})})//调用服务端去删除课程图片信息,如果返回false,前端停止删除//异步调用
/*        return new Promise((resolve,rejct)=>{courseApi.deleteCoursePic(this.courseid).then(res=>{if(res.success){//成功resolve()}else{this.$message.error("删除失败");//失败rejct()}})})*/},

学成在线--26.课程图片管理(图片删除)相关推荐

  1. 学成在线--21.课程信息修改

    文章目录 一.需求分析 二.课程管理导航页面 1.定义course_manage.vue为课程管理页面 2.创建各个信息管理页面 3.创建路由 三.服务端 1.Api接口 1)根据课程ID查询课程信息 ...

  2. 学成在线--23.课程图片管理(上传图片)

    文章目录 一. 需求分析 1). 需求分析 2). 图片上传流程 二. 创建文件系统服务工程 1). 工程目录结构 2). 项目依赖pom.xml 3). 配置文件application.yml 三. ...

  3. 学成在线--15.课程计划查询

    文章目录 一.需求分析 二.页面原型 1.tree组件介绍 2.webstorm配置jsx 三.API接口 1.数据模型 2.自定义模型类 3.接口定义 四.sql语句 五.服务器端 1.Dao 1) ...

  4. 学成在线-修改课程计划名称

    文章目录 前言 一.解决思路 二.代码实现 1.vue前端 (1)course_plan.vue给修改按钮增加弹框 (2)course.js修改计划名称的请求 2.Java服务端 (1)课程管理con ...

  5. 学成在线--22.课程营销

    文章目录 一.需求分析 二.数据模型 三.服务端 1.Api接口 1)查询课程营销信息 2)更新课程营销信息 2.Dao 3.Service 4.Controller 四.前端 1.Api 方法 2. ...

  6. 学成在线--6.CMS页面管理开发(删除页面)

    文章目录 0.删除用户逻辑 1.删除页面接口定义 2.后端开发--Dao 3.后端开发--Service 4.后端开发--controller 5.前端开发--page_list.vue添加删除按钮 ...

  7. 学成在线首页pnf素材

    学成在线首页已整理的图片素材,供大家学习. 阿里云盘链接:阿里云盘分享 提取码:4h3u

  8. 学成在线-第19天-讲义-分布式事务

    1订单与选课需求分析 1.1订单支付流程 学成在线的课程分为免费和收费两种.对于收费课程,用户需提交订单并完成支付方可在线学习. 提交订单及支付流程如下: 1.用户提交订单需要先登录系统 2.提交订单 ...

  9. 学成在线--媒资管理模块

    完整版请移步至我的个人博客查看:https://cyborg2077.github.io/ 学成在线–项目环境搭建 学成在线–内容管理模块 学成在线–媒资管理模块 学成在线–课程发布模块 学成在线–认 ...

最新文章

  1. 美国要求台积电、三星45天内主动交出商业数据,不配合将采取必要行动
  2. ubuntu19.10安装codeblocks20.03
  3. 天刀服务器维护时间,6月3日服务器例行维护公告(已完成)
  4. winform TopMost
  5. linux后台执行脚本(产生日志和不产生日志)(大神请留言)
  6. ashx获取input file 文件_通过Ajax方式上传文件(input file),使用FormData进行Ajax请求...
  7. Android音频框架笔记 - 上篇
  8. noip 2010 引水入城(dfs + 贪心)
  9. 快手小视频批量下载高清无水印软件 快手短视频批量下载高清无水印软件
  10. 使用Mousetrap处理键盘快捷键(keypress.js和jQuery.hotkeys.js的使用)
  11. 简单好用的Mac截图工具:FinalShot
  12. mui赋值_mui input用法
  13. linux图形界面和dos界面切换
  14. 在vue中_this和this的区别
  15. python英文文本分析和提取_英文文本挖掘预处理流程总结
  16. 有趣的歌单昵称_好听的歌单名称
  17. 1011: 圆柱体表面积 Java
  18. 关于app2sd、a2sd、data2sd、a2sd+的区别的解释
  19. 高等数学:第三章 微分中值定理与导数的应用(4)函数的单调性
  20. 成功解决错误The kernel appears to have died. It will restart automatically

热门文章

  1. java输入正数和负数并计算个数
  2. 度量术语之二:应用类和开发类生产率(实际度量案例)
  3. 谷歌地图VS苹果地图:大数据领域竞争
  4. 使用Cygwin实现vlc 1.0.5的wince移植
  5. 使用 nohup 设置后台进程
  6. The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
  7. 事务相关、不可重复读与幻读的区别
  8. [蓝桥杯]ALGO-188.算法训练_P0504
  9. Mac 10.12彻底关闭Dashboard
  10. ajax传递数组:属性traditional设置