*
{
path: '/orderAdd',
name: '添加订单',
component: () => import('../views/OrderAdd.vue')
}
<template>
<div>
<table border="1">
<tr>
<td>编号</td>
<td>
<!-- 使用 v-model 进行表单元素的双向绑定 -->
<input type="text" v-model="order.oid">
</td>
</tr>
<tr>
<td>价格</td>
<td>
<input type="text" v-model="order.price">
</td>
</tr>
<tr>
<td>所属用户</td>
<td>
<input type="text" v-model="order.userId">
</td>
</tr>
<tr>
<td></td>
<td>
<!-- @click 点击事件 -->
<input type="submit" value="添加" @click="addOrder">
</td>
</tr>
</table>
{{order}}
</div>
</template>
<script>
export default {
data() {
return {
order: { //用于表单元素数据绑定对象
}
}
},
methods: {
async addOrder() {
// 发送ajax
let {data} = await this.$http.post('/order', this.order )
// 根据结果提示
//console.info(data)
alert(data)
//跳转到列表页面
this.$router.push('/orderList')
}
},
}
</script>
<style>
</style>
<router-link :to="'/orderUpdate?oid='+order.oid">修改</router-link>
编写路由
xxxxxxxxxx { path: '/orderUpdate', name: '修改订单', component: () => import('../views/OrderUpdate.vue') }
创建路由对应的vue页面
编写修改功能:先通过id查询详情,并回显到表单,修改内容后,提交表单
<template>
<div>
<!-- 2.2 表单数据绑定 -->
<table border="1">
<tr>
<td>编号</td>
<td>
<!-- 使用 v-model 进行表单元素的双向绑定 -->
<!-- <input type="text" v-model="order.oid"> -->
{{order.oid}}
</td>
</tr>
<tr>
<td>价格</td>
<td>
<input type="text" v-model="order.price">
</td>
</tr>
<tr>
<td>所属用户</td>
<td>
<input type="text" v-model="order.userId">
</td>
</tr>
<tr>
<td></td>
<td>
<!-- 3 点击,并进行更新 -->
<input type="submit" value="修改" @click="updateOrder">
</td>
</tr>
</table>
{{order}}
</div>
</template>
<script>
export default {
data() {
return {
oid: '', //1.1 订单id
order: { //2.1 用于表单元素数据绑定对象
}
}
},
methods: {
async selectOrderById() {
// 发送ajax
let { data } = await this.$http.get(`/order/${this.oid}`)
// 将查询结果存放
this.order = data
},
async updateOrder() {
//发送ajax
let { data } = await this.$http.put('/order', this.order)
//提示
alert(data)
//跳转
this.$router.push('/orderList')
}
},
mounted() { //页面加载成功
// 1.2 获得查询的id
// console.info(this.$route)
this.oid = this.$route.query.oid
// 1.3 通过id查询
this.selectOrderById()
},
}
</script>
<style>
</style>
<a href="" @click.prevent="deleteOrderById(order.oid)">删除</a>
删除操作
async deleteOrderById(oid) {
// 需确认是否删除
if(confirm("您确认要删除么?")) {
// ajax删除
let { data } = await this.$http.delete(`/order/${oid}`)
// 提示
alert(data)
// 刷新结果:重新查询
this.selectAllOrder()
}
}
列表页面的完整代码
<template>
<div>
<table border="1">
<tr>
<td>编号</td>
<td>价格</td>
<td>所属用户名</td>
<td>操作</td>
</tr>
<tr v-for="(order,index) in orderList" :key="index">
<td>{{order.oid}}</td>
<td>{{order.price}}</td>
<td>{{order.user !=null ? order.user.username : '无所属用户'}}</td>
<td>
<router-link :to="'/orderUpdate?oid='+order.oid">修改</router-link> |
<a href="" @click.prevent="deleteOrderById(order.oid)">删除</a>
</td>
</tr>
</table>
<!-- 添加 -->
<router-link to="/orderAdd">添加订单</router-link>
</div>
</template>
<script>
export default {
data() {
return {
orderList: []
}
},
methods: {
async selectAllOrder() {
// let response = await this.$http.get("/order")
// this.orderList = response.data
let {data} = await this.$http.get("/order")
this.orderList = data
},
async deleteOrderById(oid) {
// 需确认是否删除
if(confirm("您确认要删除么?")) {
// ajax删除
let { data } = await this.$http.delete(`/order/${oid}`)
// 提示
alert(data)
// 刷新结果:重新查询
this.selectAllOrder()
}
}
},
mounted() { //页面加载成功
//查询所有订单
this.selectAllOrder()
},
}
</script>
<style>
</style>