二级分类的修改和删除功能,开搞。
在这里加两个按钮:
代码
<span><i class="el-icon-edit" @click="open2levelWin2(item)"></i></span>
<span><i class="el-icon-delete" @click="deleteType(item)"></i></span>
对应的css:
.el-icon-edit:hover {
color:orange;
}
.el-icon-delete:hover {
color:red;
}
修改的逻辑和保存是一样的,后台是不用动的,没错JPA就是这么好用。
//修改二级分类
open2levelWin2: function(item){
this.resetForm('typeForm2'); //重置表单
var that = this;
that.layerId = layer.open({
type : 1,
area : [ '600px', '400px' ],
content : $('#typebox2')
});
this.typeForm2 = item;
},
核心代码就是这一句:
this.typeForm2 = item;
我们把要修改的type直接赋值给typeForm2 ,到时候页面上的数据就直接被覆盖了,保存也会带上ID值。
只需要改改页面,修改功能就完成了。接下来是删除功能,删除是一个很敏感的操作,我们需要让用户再三确认。
核心代码:
//删除分类
deleteType: function(item){
var that = this;
layer.confirm('确认要删除吗?', {
btn : [ '确定', '取消' ]//按钮
}, function(index) {
layer.close(index);
//此处请求后台程序,下方是成功后的前台处理……
var index = layer.load(0,{shade: [0.7, '#393D49']}, {shadeClose: true}); //0代表加载的风格,支持0-2
$.post("${basePath}/type/delete",item,function(data){
if(data.code < 0){
layer.alert('天啦撸,竟然提交失败了:' + data.msg, {
icon: 5,
title: "提示"
});
return;
}
layer.close(index);
layer.msg("删除类型成功了~");
that.clickMenu(that.indexLevel1); //重新加载当前分类
});
});
},
后台逻辑:
@RequestMapping("/delete")
@ResponseBody
public Map<String,Object> delete(Type type){
Map<String,Object> result = new HashMap<>();
result.put("code",0);
//查询下面有没有子节点
List<Type> subNodes = typeDao.findByPid(type.getId());
if(subNodes.size() > 0){
result.put("code",-1);
result.put("msg",type.getTypeName() + "下面还有子节点,不允许删除!");
return result;
}
typeDao.delete(type.getId());
return result;
}