目录
一、表单验证
二、增删改
步骤:
①、将以下拷入Articles.vue中分页条下面
拷入后会报错,将title和editFormVisible、editForm赋值
title: '',
editFormVisible: false,
editForm: {
title: '',
body: '',
id: 0
},
然后先加入一个方法closeDialog
closeDialog() {
// 关闭窗体
}
②、 写一个方法 handleEdit
handleEdit(index, row) {
// 展示新增文章的表单窗体
this.editFormVisible = true;
}
效果:
③、将以下代码拷入
rules: {
title: [{
required: true,
message: '请输入请输入文章标题',
trigger: 'blur'
},
{
min: 5,
max: 10,
message: '长度在 5 到 10 个字符',
trigger: 'blur'
}
],
body: [{
required: true,
message: '请输入文章内容',
trigger: 'blur'
}],
}
④、将以下代码拷入
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert('submit!');
} else {
console.log('error submit!!');
return false;
}
});
},
效果:
步骤总结:
1、拷入表单组件 el-from
2、通过点击 新增/编辑将表单对应窗口弹出
3、给表单设置规则 rules
4、当表单提交事件要校验规则
写个方法:clearData
clearData() {
// 清除编辑窗体的缓存数据
this.editForm.title = '';
this.editForm.id = 0;
this.editForm.body = '';
this.title = '';
this.editFormVisible = false;
}
在关闭窗体方法中加入以下代码
this.clearData();
handleEdit方法中加入以下代码
this.clearData();
// 展示新增文章的表单窗体
this.editFormVisible = true;
if (row) {
// 编辑
this.title = '编辑窗体';
this.editForm.id = row.id;
this.editForm.title = row.title;
this.editForm.body = row.body;
} else {
// 新增
this.title = '新增窗体';
}
写入以下代码
clearData() {
// 清除编辑窗体的缓存数据
this.editForm.title = '';
this.editForm.id = 0;
this.editForm.body = '';
this.title = '';
this.editFormVisible = false;
}
关闭窗体方法和handleEdit中调用以上该方法
this.clearData();
对submitForm方法进行优化
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
let url;
if (this.editForm.id == 0) {
// 新增
url = this.axios.urls.SYSTEM_ARTICLE_ADD;
} else {
url = this.axios.urls.SYSTEM_ARTICLE_EDIT;
}
this.axios.post(url, this.editForm).then(r => {
// 新增成功 1.关闭窗体-清空数据 2.重新查询
this.$message({
message: r.data.msg,
type: 'success'
});
this.clearData();
this.search();
}).catch(e => {
});
} else {
console.log('error submit!!');
return false;
}
});
}
然后更改doSearch中的以下代码,改成第二个代码
this.formInline = resp.data.pageBean;
this.formInline.total = resp.data.pageBean.total;
最后写个删除方法
deleteUser(index, row) {
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let url = this.axios.urls.SYSTEM_ARTICLE_DEL;
this.axios.post(url, {id:row.id}).then(r => {
// 新增成功 1.关闭窗体-清空数据 2.重新查询
this.$message({
message: r.data.msg,
type: 'success'
});
this.clearData();
this.search();
}).catch(e => {
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}
整个页面代码
搜索
添加
编辑
删除
效果: