学成在线--26.课程图片管理(图片删除)
文章目录
- 一. 需求分析
- 二. 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.课程图片管理(图片删除)相关推荐
- 学成在线--21.课程信息修改
文章目录 一.需求分析 二.课程管理导航页面 1.定义course_manage.vue为课程管理页面 2.创建各个信息管理页面 3.创建路由 三.服务端 1.Api接口 1)根据课程ID查询课程信息 ...
- 学成在线--23.课程图片管理(上传图片)
文章目录 一. 需求分析 1). 需求分析 2). 图片上传流程 二. 创建文件系统服务工程 1). 工程目录结构 2). 项目依赖pom.xml 3). 配置文件application.yml 三. ...
- 学成在线--15.课程计划查询
文章目录 一.需求分析 二.页面原型 1.tree组件介绍 2.webstorm配置jsx 三.API接口 1.数据模型 2.自定义模型类 3.接口定义 四.sql语句 五.服务器端 1.Dao 1) ...
- 学成在线-修改课程计划名称
文章目录 前言 一.解决思路 二.代码实现 1.vue前端 (1)course_plan.vue给修改按钮增加弹框 (2)course.js修改计划名称的请求 2.Java服务端 (1)课程管理con ...
- 学成在线--22.课程营销
文章目录 一.需求分析 二.数据模型 三.服务端 1.Api接口 1)查询课程营销信息 2)更新课程营销信息 2.Dao 3.Service 4.Controller 四.前端 1.Api 方法 2. ...
- 学成在线--6.CMS页面管理开发(删除页面)
文章目录 0.删除用户逻辑 1.删除页面接口定义 2.后端开发--Dao 3.后端开发--Service 4.后端开发--controller 5.前端开发--page_list.vue添加删除按钮 ...
- 学成在线首页pnf素材
学成在线首页已整理的图片素材,供大家学习. 阿里云盘链接:阿里云盘分享 提取码:4h3u
- 学成在线-第19天-讲义-分布式事务
1订单与选课需求分析 1.1订单支付流程 学成在线的课程分为免费和收费两种.对于收费课程,用户需提交订单并完成支付方可在线学习. 提交订单及支付流程如下: 1.用户提交订单需要先登录系统 2.提交订单 ...
- 学成在线--媒资管理模块
完整版请移步至我的个人博客查看:https://cyborg2077.github.io/ 学成在线–项目环境搭建 学成在线–内容管理模块 学成在线–媒资管理模块 学成在线–课程发布模块 学成在线–认 ...
最新文章
- 美国要求台积电、三星45天内主动交出商业数据,不配合将采取必要行动
- ubuntu19.10安装codeblocks20.03
- 天刀服务器维护时间,6月3日服务器例行维护公告(已完成)
- winform TopMost
- linux后台执行脚本(产生日志和不产生日志)(大神请留言)
- ashx获取input file 文件_通过Ajax方式上传文件(input file),使用FormData进行Ajax请求...
- Android音频框架笔记 - 上篇
- noip 2010 引水入城(dfs + 贪心)
- 快手小视频批量下载高清无水印软件 快手短视频批量下载高清无水印软件
- 使用Mousetrap处理键盘快捷键(keypress.js和jQuery.hotkeys.js的使用)
- 简单好用的Mac截图工具:FinalShot
- mui赋值_mui input用法
- linux图形界面和dos界面切换
- 在vue中_this和this的区别
- python英文文本分析和提取_英文文本挖掘预处理流程总结
- 有趣的歌单昵称_好听的歌单名称
- 1011: 圆柱体表面积 Java
- 关于app2sd、a2sd、data2sd、a2sd+的区别的解释
- 高等数学:第三章 微分中值定理与导数的应用(4)函数的单调性
- 成功解决错误The kernel appears to have died. It will restart automatically
热门文章
- java输入正数和负数并计算个数
- 度量术语之二:应用类和开发类生产率(实际度量案例)
- 谷歌地图VS苹果地图:大数据领域竞争
- 使用Cygwin实现vlc 1.0.5的wince移植
- 使用 nohup 设置后台进程
- The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
- 事务相关、不可重复读与幻读的区别
- [蓝桥杯]ALGO-188.算法训练_P0504
- Mac 10.12彻底关闭Dashboard
- ajax传递数组:属性traditional设置