班级查询
需求:
绘制表单,数据绑定
页面加载成功发送请求查询所有班级
将班级数据赋值给classesList
前端:
代码语言:javascript复制<template>
<div>
<table border="1">
<tr>
<td>编号</td>
<td>班级名称</td>
<td>班级描述</td>
<td>操作</td>
</tr>
<tr v-for = "(classes, index) in classesList" :key = "index">
<td>{{ classes.cid }}</td>
<td>{{ classes.cname }}</td>
<td>{{ classes.desc }}</td>
<td>
修改 删除
</td>
</tr>
</table>
</div>
</template>
<script>
import axios from 'axios'
export default {
data() {
return {
classesList:[]
}
},
methods: {
async selectAllClasses(){
var url = "http://localhost:8888/classes";
let { data: baseResult } = await axios.get(url);
this.classesList = baseResult.data;
},
},
mounted() {
// 1.1 页面加载成功
// 1.2 查询所有班级
this.selectAllClasses()
},
}
</script>
<style>
</style>
添加班级
需求:
绘制表单,数据绑定
点击添加,发送ajax完成添加
成功,跳转到列表页面。失败,给出提示
前端:
代码语言:javascript复制<template>
<div>
<table border="1">
<tr>
<td>编号</td>
<td>
<input type="text" v-model = "classes.cid">
</td>
</tr>
<tr>
<td>班级名称</td>
<td>
<input type="text" v-model = "classes.cname">
</td>
</tr>
<tr>
<td>班级描述</td>
<td>
<textarea name="" id="" cols="30" rows="10" v-model = "classes.desc"></textarea>
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="添加班级" @click = "addClasses()">
</td>
<td></td>
</tr>
</table>
</div>
</template>
<script>
import axios from 'axios'
export default {
data() {
return {
classes:{}
}
},
methods:{
async addClasses(){
var url = "http://localhost:8888/classes";
let { data: baseResult } = await axios.post(url,this.classes);
if(baseResult.code == 20000){
this.$router.push('/classesList')
}else{
alert(baseResult.message)
}
}
},
}
</script>
<style>
</style>
修改班级
需求:
列表页面点击“修改”,切换到修改页面 classesEdit?cid=c001
页面加载成功时,通过id查询详情
回显:将查询结果绑定表单(添加已经完成,采用复制)
点击确定进行更新
前端:
代码语言:javascript复制<template>
<div>
<table border = "1">
<tr>
<td>编号</td>
<td>
{{ classes.cid }}
</td>
</tr>
<tr>
<td>班级名称</td>
<td>
<input type="text" v-model = "classes.cname">
</td>
</tr>
<tr>
<td>班级描述</td>
<td>
<textarea name="" id="" cols="30" rows="10" v-model = "classes.desc"></textarea>
</td>
</tr>
<tr>
<td colspan="2">
<input type="text" value = "修改" @click = "editClasses()">
</td>
</tr>
</table>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
classes:{},
cid:'',
};
},
methods:{
async selectClassesById(){
let url = `http://localhost:8888/classes/${this.cid}`;
let { data: baseResult } = await axios.get(url);
this.classes = baseResult.data
},
async editClasses(){
var url = `http://localhost:8888/classes`;
let { data: baseResult } = await axios.put(url,this.classes);
if(baseResult.code == 20000){
this.$router.push("/classesList");
}else{
alert(baseResult.message);
}
}
},
mounted(){
//获得cid
this.cid = this.$route.params.cid;
//根据id查询班级信息
this.selectClassesById();
}
}
</script>
<style>
</style>
删除班级
需求:
确定访问路径:delete /classes/c001
点击发送ajax进行删除(成功:刷新页面;失败:提示)
编写controller获得id
编写service通过id删除
前端:
代码语言:javascript复制<template>
<div>
<table border="1">
<tr>
<td>编号</td>
<td>班级名称</td>
<td>班级描述</td>
<td>操作</td>
</tr>
<tr v-for = "(classes, index) in classesList" :key = "index">
<td>{{ classes.cid }}</td>
<td>{{ classes.cname }}</td>
<td>{{ classes.desc }}</td>
<td>
<router-link :to="'/classesEdit/' classes.cid">修改</router-link>
<a href="" @click.prevent = "deleteClasses(classes.cid)">删除</a>
</td>
</tr>
</table>
</div>
</template>
<script>
import axios from 'axios'
export default {
data() {
return {
classesList:[]
}
},
methods: {
async selectAllClasses(){
var url = "http://localhost:8888/classes";
let { data: baseResult } = await axios.get(url);
this.classesList = baseResult.data;
},
async deleteClasses(cid){
if(!confirm('您确定要删除么?')){
return
}
var url = `http://localhost:8888/classes/${cid}`
let { data: baseResult } = await axios.delete(url)
alert(baseResult.code)
if(baseResult.code == 20000){
this.selectAllClasses();
}else{
alert(baseResult.message)
}
}
},
mounted() {
// 1.1 页面加载成功
// 1.2 查询所有班级
this.selectAllClasses()
},
}
</script>
<style>
</style>
后端
链接:https://pan.baidu.com/s/1032Wkr58iZfPJ7baJSsqiw 提取码:2002