根据讲师id查询数据显示
隐藏路由 路由中添加router.index.js中添加
{
path: 'edit/:id',
name: 'EduTeacherEdit',
component: () => import('@/views/edu/teacher/save'),
meta: { title: '编辑讲师', noCache: true },
hidden: true
}
edit/:id 相当于一个占位符,后面根讲师id
通过id跳转
list.vue中的路径要和index.js中的地址对应,后面加一个讲师id
修改
通过路由跳转到页面中
即点击修改的时页面有数据不是空白
//根据id查询讲师
getTeacherInfo(id){
return request({
url:`/eduservice/teacher/getTeacher/${id}`,
method: 'get'
})
}
//根据讲师id查询回显数据
getInfo(id){
teacherApi.getTeacherInfo(id)
.then(resp=>{
this.teacher=resp.data.teacher
})
}
因为添加和修改都使用save页面,区分是添加还是修改,只有修改时候查询数据回显
判断路径是否有讲师id值,如果有id值,则为修改,没有id值则是添加
created(){
//判断路径有id值,做修改
if(this.$route.params && this.$route.params.id) {
//从路径获取id值
const id = this.$route.params.id
//调用根据id查询的方法
this.getInfo(id)
}
}
①在api.teacher.js中定义修改方法的接口
//修改讲师
updateTeacher(teacher){
return request({
url:`/eduservice/teacher/updateTeacher`,
method: 'post',
data:teacher})
}
②在save.vue中定义修改讲师的方法
//修改讲师的方法
updateTeacher(){
teacherApi.updateTeacher(this.teacher)
.then(resp=>{
//提示信息
this.$message({
type: 'success',
message: '修改成功!'
});
//修改完成,跳转讲师列表页面,即路由跳转
this.$router.push({path:'/teacher/table'})
})
}
根据teacher是否有id判断,有id则是修改,没id则是添加,因为添加的时候id会自动生成
saveOrUpdate(){
//判断是修改还是添加
//根据是否有id判断,有则是修改,没有则是添加
if(!this.teacher.id){
this.saveTeacher()
}else{
this.updateTeacher()
}
}
解决方案,使用vue监听,当路由变化,此方法就会执行
watch:{//监听
$route(to,from){//路由变化的方式,当路由发送变化,此方法执行
this.init()
}
}
save.vue
讲师添加
保存
list.vue
讲师表单
查询
清空
{{ (page - 1) * limit + scope.$index + 1 }}
{{ scope.row.level===1?'高级讲师':'首席讲师' }}
修改
删除