文章目录

  • 前台代码
  • 绑定单击事件
  • 调用的方法
  • 弹出确认操作提示
  • 发送请求
  • 后台代码
  • Controller
  • 服务接口
  • 服务实现类
  • Dao接口
  • Mapper映射文件

1:前台代码
(1):绑定删除单击事件
(2):弹出确认操作提示(在ElementUI中查找)
(3):发送ajax请求,执行删除
2:后台代码
(1)TravelItemController.java
(2)TravelItemService.java(服务接口)
(3)TravelItemServiceImpl.java(服务实现类)
(4)TravelItemDao.java(Dao接口)
(5)TravelItemDao.xml(Mapper映射文件)

前台代码

为了防止用户误操作,点击删除按钮时需要弹出确认删除的提示,用户点击取消则不做任何操作,用户点击确定按钮再提交删除请求。

绑定单击事件

需要为删除按钮绑定单击事件,并且将当前行数据作为参数传递给处理函数

<el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>

调用的方法

// 删除
handleDelete(row) {alert(row.id);
}

弹出确认操作提示

用户点击删除按钮会执行handleDelete方法,此处需要完善handleDelete方法,弹出确认提示信息。ElementUI提供了$confirm方法来实现确认提示信息弹框效果

// 删除
handleDelete(row) {// alert(row.id);this.$confirm("确认删除当前选中记录吗?","提示",{type:'warning'}).then(()=>{//点击确定按钮时只需此处代码alert('用户点击的是确定按钮');});
}

发送请求

如果用户点击确定按钮就需要发送ajax请求,并且将当前自由行的id作为参数提交到后台进行删除操作

// 删除
handleDelete(row) {// alert(row.id);this.$confirm("确认删除当前选中记录吗?","提示",{type:'warning'}).then(()=>{//点击确定按钮时只需此处代码// alert('用户点击的是确定按钮');axios.get("/travelItem/delete.do?id=" + row.id).then((res)=> {if(res.data.flag){//删除成功this.$message({message: res.data.message,type: 'success'});//调用分页,获取最新分页数据this.findPage();}else{//删除失败 直接调用函数的写法this.$message.error(res.data.message);}});});
}

后台代码

Controller

在 TravelItemController 中增加删除方法

package com.atguigu.controller;import com.alibaba.dubbo.config.annotation.Reference;
import com.atguigu.constant.MessageConstant;
import com.atguigu.entity.PageResult;
import com.atguigu.entity.QueryPageBean;
import com.atguigu.entity.Result;
import com.atguigu.pojo.TravelItem;
import com.atguigu.service.TravelItemService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RequestMapping("/travel")
@RestController
public class TravelItemController {@Referenceprivate TravelItemService travelItemService;@RequestMapping("/delete")public Result delete(Integer id){try {travelItemService.deleteById(id);return new Result(true,MessageConstant.DELETE_TRAVELITEM_SUCCESS);}catch (RuntimeException e){// 运行时异常,表示自由行和跟团游的关联表中存在数据return new Result(false,e.getMessage());}catch (Exception e) {e.printStackTrace();return new Result(false,MessageConstant.DELETE_TRAVELITEM_FAIL);}}

服务接口

在 TravelItemService 服务接口中扩展删除方法

package com.atguigu.service;import com.atguigu.entity.PageResult;
import com.atguigu.pojo.TravelItem;public interface TravelItemService {void deleteById(Integer id);
}

服务实现类

注意:不能直接删除,需要判断当前自由行是否和跟团游关联,如果已经和跟团游进行了关联则不允许删除

package com.atguigu.service.impl;import com.alibaba.dubbo.config.annotation.Service;
import com.atguigu.dao.TravelItemDao;
import com.atguigu.entity.PageResult;
import com.atguigu.pojo.TravelItem;
import com.atguigu.service.TravelItemService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;@Service(interfaceClass = TravelItemService.class)
@Transactional
public class TravelItemServiceImpl implements TravelItemService {@Autowiredprivate TravelItemDao travelItemDao;@Overridepublic void deleteById(Integer id) {// 在删除自由行之前,先判断自由行的id,在中间表中是否存在数据long count =  travelItemDao.findCountByTravelItemItemId(id);// 中间表如果有数据,不要往后面执行,直接抛出异常// 如果非要删除也可以:delete from t_travelgroup_travelitem where travelitem_id = 1if (count > 0){throw new RuntimeException("不允许删除");}// 使用自由行的id进行删除travelItemDao.deleteById(id);}

Dao接口

在 TravelItemDao 接口中扩展方法 findCountByTravelItemItemId和 deleteById

package com.atguigu.dao;import com.atguigu.pojo.TravelItem;
import com.github.pagehelper.Page;public interface TravelItemDao {void deleteById(Integer id);long findCountByTravelItemItemId(Integer id);
}

Mapper映射文件

在 TravelItemDao.xml 中扩展SQL语句

<!--根据自由行id查询中间关系表--><select id="findCountByTravelItemItemId" parameterType="int" resultType="long">select count(*) from t_travelgroup_travelitem where travelitem_id =#{id}
</select>
<!--删除-->
<delete id="deleteById" parameterType="int">delete from t_travelitem where id=#{id}
</delete>

美年旅游_自由行_删除自由行相关推荐

  1. 美年旅游_自由行_编辑自由行

    文章目录 前台代码 绑定单击事件 弹出编辑窗口回显数据 发送请求更改数据 后台代码 Controller 服务接口 服务实现类 Dao接口 Mapper映射文件 功能分为两个部分来做 1:编辑自由行( ...

  2. 美年旅游_套餐管理_定时任务组件Quartz

    文章目录 补充上前面没有的配置 先配置这些 2.4. 完善文件上传,Redis存储图片名称 美年旅游_套餐管理_定时任务组件Quartz 4.1. Quartz介绍 Quartz 入门案例 4.2. ...

  3. 计算机会计课程试题及答案,计算机会计第2次作业_报表_附答案

    计算机会计第2次作业_报表_附答案 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 . . . . .<计算机会计>课程作业 ...

  4. [JS 分析] 天_眼_查 字体文件

    0. 参考 js分析 猫_眼_电_影 字体文件 @font-face 1. 分析 1.1 定位目标元素 1.2 查看网页源代码 1.3 requests 请求提取得到大量错误信息 对比猫_眼_电_影抓 ...

  5. 复习Collection_迭代器使用细节_泛型_综合案例

    Collection_迭代器使用细节_泛型_综合案例 主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 集合:集合是java中提供的一种 ...

  6. Day06_动态组件_插槽_自定义指令_tabbar案例

    Day06_动态组件_插槽_自定义指令_tabbar案例 文章目录 Day06_动态组件_插槽_自定义指令_tabbar案例 知识点自测 今日学习目标 1. 组件进阶 1.0 组件进阶 - 动态组件 ...

  7. oracle数据库_实例_用户_表空间之间的关系

    oracle数据库_实例_用户_表空间之间的关系 基础概念:Oracle数据库.实例.用户.表空间.表之间的关系 数据库: Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制 ...

  8. 超鸿蒙是什么意思,帝垣的组词_拼音_意思_近反义词(造句)

    下面为大家详细介绍帝垣的拼音_组词_造句_意思_反义词(近义词),内容主要包含垣的组词, 帝垣是什么意思, 帝垣的拼音_怎么读, 帝垣的造句_造句大全, 帝的组词, 开头是帝的词语_成语, 结尾是垣的 ...

  9. java通讯录课程设计_java课程设计_通讯录_通讯簿.doc

    java课程设计_通讯录_通讯簿.doc 还剩 45页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: impor ...

最新文章

  1. 信息检索报告_iFixR:缺陷报告驱动程序修复
  2. [reference]-ARM缩写
  3. Asp.net创建伪静态页面
  4. DHL出台货运新方案
  5. SpringBoot项目瘦身指南,大厂如何面试看出你的水平
  6. [转载] python中@property和property函数使用
  7. 利用jsoup 如何从网页中下载图片
  8. dell网卡linux驱动,Dell R720上安装linux网卡驱动
  9. R语言深度学习GPU版本的下载
  10. 计算机主机进水无法启动,笔记本电脑进水后出现不能正常开机启动
  11. xboxone硬盘坏的表现_详解硬盘常见的故障及解决方法
  12. ecshop小京东后台首次上传商品不能上传相册的解决办法
  13. 无法给变量添加属性导致出问题
  14. Excel 2010 VBA 入门 086 数据处理之获取交叉查询结果表
  15. 抖音主页位置怎么自己创建服务器,抖音个人主页在哪?怎么设置?
  16. python:实现辗转相除
  17. LeetCode——883. 三维形体投影面积
  18. win7升级win10方法
  19. CentOS7 搭建php环境
  20. C#中为控件添加事件时提示“ dataGridView1_CellValidating”没有与委托“DataGridViewCellEventHandler”匹配的重载

热门文章

  1. 表格边框样式设置,实现两列变成伪一列;灰白相间效果设置
  2. OpenSSL s_client
  3. NAS:Windows10 连 Nas 映射网络驱动器,开机时显示红叉解决方法
  4. Java multiplechoice,雅思听力八大题型之Multiple Choice题型篇
  5. 考研常识|夏令营和预推免有什么区别?
  6. Java集合体系总结
  7. 苹果平板如何截屏_原来苹果手机自带长截屏功能!以前一直不知道,真让人相见恨晚...
  8. openssl:Can‘t load /home/test/.rnd into RNG
  9. PCDViewer 3.2 Linux 版(Ubuntu)
  10. [Untiy]贪吃蛇大作战(四)——游戏主界面