黑马程序员技术交流社区

标题: 【郑州校区】传智健康项目讲义第二章七 [打印本页]

作者: 我是楠楠    时间: 2019-10-23 16:07
标题: 【郑州校区】传智健康项目讲义第二章七
【郑州校区】传智健康项目讲义第二章预约管理-检查项管理七


5. 删除检查项
5.1 完善页面
为了防止用户误操作,点击删除按钮时需要弹出确认删除的提示,用户点击取消则不做任何操作,用户点击确定按钮再提交删除请求。
5.1.1 绑定单击事件
需要为删除按钮绑定单击事件,并且将当前行数据作为参数传递给处理函数
[AppleScript] 纯文本查看 复制代码
<el‐button size="mini" type="danger" @click="handleDelete(scope.row)">删
除</el‐button>// 删除
handleDelete(row) {
alert(row.id);
}

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

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

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

[AppleScript] 纯文本查看 复制代码
// 删除
handleDelete(row) {
//alert(row.id);
this.$confirm("确认删除吗?","提示",{type:'warning'}).then(()=>{
//点击确定按钮时只需此处代码
//alert('用户点击的是确定按钮');
axios.get("/checkitem/delete.do?id=" + row.id).then((res)=> {
if(!res.data.flag){
//删除失败
this.$message.error(res.data.message);
}else{
//删除成功
this.$message({
message: res.data.message,
type: 'success'
});
//调用分页,获取最新分页数据
this.findPage();
}
});
});
}

5.2 后台代码
5.2.1 Controller
CheckItemController中增加删除方法

[AppleScript] 纯文本查看 复制代码
//删除
@RequestMapping("/delete")
public Result delete(Integer id){
try {
checkItemService.delete(id);
}catch (RuntimeException e){
return new Result(false,e.getMessage());
}catch (Exception e){
return new Result(false, MessageConstant.DELETE_CHECKITEM_FAIL);
}
return new Result(true,MessageConstant.DELETE_CHECKITEM_SUCCESS);
}

5.2.2 服务接口
CheckItemService服务接口中扩展删除方法

[AppleScript] 纯文本查看 复制代码
public void delete(Integer id); 

5.2.3 服务实现类
注意:不能直接删除,需要判断当前检查项是否和检查组关联,如果已经和检查组进行了关联则不允许删除

[AppleScript] 纯文本查看 复制代码
//删除
public void delete(Integer id) throws RuntimeException{
//查询当前检查项是否和检查组关联
long count = checkItemDao.findCountByCheckItemId(id);
if(count > 0){
//当前检查项被引用,不能删除
throw new RuntimeException("当前检查项被引用,不能删除");
}
checkItemDao.deleteById(id);
}

5.2.4 Dao接口
CheckItemDao接口中扩展方法findCountByCheckItemIddeleteById

[AppleScript] 纯文本查看 复制代码
public void deleteById(Integer id);
public long findCountByCheckItemId(Integer checkItemId);

5.2.5 Mapper映射文件
CheckItemDao.xml中扩展SQL语句
[AppleScript] 纯文本查看 复制代码
<!‐‐删除‐‐>
<delete id="deleteById" parameterType="int">
delete from t_checkitem where id = #{id}
</delete>
<!‐‐根据检查项id查询中间关系表‐‐>
<select id="findCountByCheckItemId" resultType="long"
parameterType="int">
select count(*) from t_checkgroup_checkitem where checkitem_id = #
{checkitem_id}
</select>








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2