前后端分离基础入门(6) 实现修改删除功能
实现修改功能
后端操作
实现接口 mapper
void updateBook(Book book);
<select id="updateBook" parameterType="Book">
update book set name=#{name},author=#{author} where id=#{id};
</select>
@PostMapping("/update")
public void update(@RequestBody Book book){
bookMapper.updateBook(book);
}
前端操作
通过ele的语法
提交时绑定一个事件,可以获得当前ID选择表单对象信息
<template slot-scope="scope">
<el-button @click="edit(scope.row)" type="text" size="small">修改</el-button>
<el-button @click="deleteBook(scope.row)" type="text" size="small">删除</el-button>
</template>
提交事件代码:
跳转到修改页面 并吧id传过去
edit(row) {
console.log(row.id)
this.$router.push({
path:'/update',
query:{
id:row.id
}
})
},
修改页面代码:
在创建时 调用后端获得当前ID对应的图书数据,点击提交按钮后调用后端的更新功能
<template>
<div>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="图书ID" v-show="false">
<el-input v-model="ruleForm.id" readonly></el-input>
</el-form-item>
<el-form-item label="图书名称" prop="name">
<el-input v-model="ruleForm.name"></el-input>
</el-form-item>
<el-form-item label="作者" prop="author">
<el-input v-model="ruleForm.author"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('ruleForm')">修改</el-button>
<el-button @click="resetForm('ruleForm')">重置</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
data() {
return {
ruleForm: {
id: '',
name: '',
author: '',
},
rules: {
id: [
{ required: true, message: '请输入id', trigger: 'blur' },
],
name: [
{ required: true, message: '请输入图书名称', trigger: 'blur' },
],
author: [
{ required: true, message: '请输入作者', trigger: 'blur' }
],
}
};
},
methods: {
submitForm(formName) {
this.$refs[formName].validate((valid) => {
const _this=this
if (valid) {
axios.post('http://localhost:8181/book/update',this.ruleForm).then(function (resp){
})
} else {
return false;
}
});
},
resetForm(formName) {
this.$refs[formName].resetFields();
},
},
created(){
const _this=this
axios.get('http://localhost:8181/book/getBook/'+this.$route.query.id).then(function (resp){
console.log(resp)
_this.ruleForm=resp.data
})
}
}
</script>
实现删除功能
后端操作
写接口和mapper controller 完全一样不说了
前端操作
也比较简单,点击时互动后端即可
deleteBook(row){
axios.get('http://localhost:8181/book/deleteBook/'+row.id).then(function (resp){
location. reload()
})
}
总结
主要还是先搞明白了前后端分离基础实现,一些比较复杂的操作并没有去实现 后续还需学习

浙公网安备 33010602011771号