test4-a
程序员文章站
2022-05-24 08:48:21
...
<script>
var vue = new Vue({
el: '#app',
data:{
pagination: {//分页相关模型数据
currentPage: 1,//当前页码
pageSize:3,//每页显示的记录数
total:0,//总记录数
queryString:null//查询条件
},
dataList: [],//当前页要展示的分页列表数据
formData: {},//表单数据
dialogFormVisible: false,//增加表单是否可见
dialogFormVisible4Edit:false,//编辑表单是否可见
rules: {//校验规则
code: [{ required: true, message: '项目编码为必填项', trigger: 'blur' }],
name: [{ required: true, message: '项目名称为必填项', trigger: 'blur' }]
}
},
//钩子函数,VUE对象初始化完成后自动执行
created() {
//VUE对象初始化完成之后调用分页方法完成初始化查询
this.findPage();
},
methods: {
//编辑
handleEdit() {
//进行表单校验
this.$refs['dataEditForm'].validate((valid)=>{
if(valid){
//表单校验通过,可以进行提交
axios.post("/checkitem/edit.do",this.formData).then((res)=>{
if(res.data.flag){
//弹出成功提示信息
this.$message({
type:'success',
message:res.data.message
});
}else{
//执行失败
this.$message.error(res.data.message);
}
//不管是更新成功还是更新失败,都需要关闭编辑窗口,刷新页面
}).finally(()=>{
//类似于java中的finally
//不管成功还是失败,都调用分页查询方法
this.findPage();
//隐藏编辑窗口
this.dialogFormVisible4Edit = false;
});
}else{
//表单校验不通过
this.$message.error("表单数据校验失败!");
return false;
}
});
},
//添加
handleAdd () {
//校验表单,.validate是回调函数
this.$refs['dataAddForm'].validate((valid)=>{
if(valid){//表单校验成功
console.log(this.formData);
//发送异步请求
//参数1:请求路径
//参数2:请求参数
//.then() :请求发送成功后执行的函数 .catch()请求服务器失败执行的方法
axios.post("/checkitem/add.do",this.formData).then((res)=>{
//关闭窗口
this.dialogFormVisible=false;
//获取服务器返回的数据进行处理
//res.data获取后台返回的数据
if(res.data.flag){
//新增成功后调用分页查询方法查询出最新的数据
this.findPage();
//弹出提示信息
this.$message({
message:res.data.message,
type:'success'
});
}else{//执行失败,弹出提示
this.$message.error(res.data.message);
}
})
}
else{//表单校验失败,弹出错误提示
this.$message.error("数据检验失败,请检查你的输入信息是否正确");
return false;
}
})
},
//分页查询
findPage() {
//修复在除了第一页之外的其他页在进行条件查询时无法查询出结果的bug
if(this.pagination.queryString!=null&&this.pagination.queryString!=''&&this.pagination.queryString.length>0){
this.pagination.currentPage=1
}
//发送ajax请求,提交分页相关请求参数:当前页码,每页显示记录数,查询条件
//参数1:请求路径
//参数2:请求参数
//.then():请求服务器成功调用的方法 .catch():请求服务器失败调用的方法
var parm = {
currentPage:this.pagination.currentPage,
pageSize:this.pagination.pageSize,
queryString:this.pagination.queryString
};
axios.post("/checkitem/findPage.do",parm).then((res)=>{
//解析Controller响应回来的数据,为模型数据赋值
this.pagination.total= res.data.total;
this.dataList = res.data.rows;
});
},
// 重置表单
resetForm() {
this.formData={};//重置数据
},
// 弹出添加窗口
handleCreate() {
this.dialogFormVisible=true;
this.resetForm();
},
// 弹出编辑窗口
handleUpdate(row) {
//弹出编辑窗口
this.dialogFormVisible4Edit=true;
//回显数据,发送ajax请求根据ID查询当前检查项数据
axios.get("/checkitem/findById.do?id="+row.id).then((res)=>{
if(res.data.flag){
//进行回显,基于VUE的数据绑定实现
this.formData=res.data.data;
}else{
//查询失败,弹出提示
this.$message.error(res.data.message);
}
});
},
//切换页码
handleCurrentChange(currentPage) {//这个方法会传过来一个currentPage参数,这些是ElementUI自带的
//设置最新的当前页
this.pagination.currentPage=currentPage;
this.findPage();
//重新调用分页查询方法findPage进行分页查询
},
// 删除
handleDelete(row) {
//alert(row.id);
this.$confirm("你确定要删除当前数据吗?","提示",{
type:'warning'
}).then(()=>{
//alert("用户点击了确定按钮");
//用户点击确定按钮,发送ajax请求,将检查项ID提交到Controller进行处理
axios.get("/checkitem/delete.do?id="+row.id).then((res)=>{
if(res.data.flag){
//执行成功
//弹出成功提示信息
this.$message({
type:'success',
message:res.data.message
});
//重新进行分页查询
this.findPage();
}else{
//执行失败
this.$message.error(res.data.message);
}
});
}).catch(()=>{//点击取消按钮,执行的操作
//alert("用户点击了取消按钮");
this.$message({
type:'info',
message:'操作已取消'
});
});
}
}
})
</script>
上一篇: 3.11-方格分割-深度优先搜索
下一篇: Proxool DataSource
推荐阅读