169 lines
6.7 KiB
HTML
169 lines
6.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,user-scalable=no,minimal-ui">
|
|
<title>菩提阁</title>
|
|
<link rel="icon" href="./../images/favico.ico">
|
|
<!--不同屏幕尺寸根字体设置-->
|
|
<script src="./../js/base.js"></script>
|
|
<!--element-ui的样式-->
|
|
<link rel="stylesheet" href="../../backend/plugins/element-ui/index.css" />
|
|
<!-- 引入样式 -->
|
|
<link rel="stylesheet" href="../styles/index.css" />
|
|
<!--引入vant样式-->
|
|
<link rel="stylesheet" href="../styles/vant.min.css"/>
|
|
<!--本页面内容的样式-->
|
|
<link rel="stylesheet" href="./../styles/order.css" />
|
|
</head>
|
|
<body>
|
|
<div id="order" class="app">
|
|
<div class="divHead">
|
|
<div class="divTitle">
|
|
<i class="el-icon-arrow-left" @click="goBack"></i>菩提阁
|
|
</div>
|
|
</div>
|
|
<div class="divBody" v-if="orderList.length > 0">
|
|
<van-list
|
|
v-model="loading"
|
|
:finished="finished"
|
|
finished-text="没有更多了"
|
|
@load="getList"
|
|
>
|
|
<van-cell v-for="(order,index) in orderList" :key="index" class="item">
|
|
<div class="timeStatus">
|
|
<span>{{order.orderTime}}</span>
|
|
<span>{{getStatus(order.status)}}</span>
|
|
<!-- <span>正在派送</span> -->
|
|
</div>
|
|
<div class="dishList">
|
|
<div v-for="(item,index) in order.orderDetails" :key="index" class="item">
|
|
<span>{{item.name}}</span>
|
|
<span>x{{item.number}}</span>
|
|
</div>
|
|
</div>
|
|
<div class="result">
|
|
<span>共{{order.sumNum}} 件商品,实付</span><span class="price">¥{{order.amount}}</span>
|
|
</div>
|
|
<div class="btn" v-if="order.status === 4">
|
|
<div class="btnAgain" @click="addOrderAgain(order)">再来一单</div>
|
|
</div>
|
|
</van-cell>
|
|
</van-list>
|
|
</div>
|
|
<div class="divNoData" v-else>
|
|
<div class="divContainer">
|
|
<img src="./../images/no_order.png"/>
|
|
<div>暂无订单</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
|
|
<script src="../../backend/plugins/vue/vue.js"></script>
|
|
<!-- 引入组件库 -->
|
|
<script src="../../backend/plugins/element-ui/index.js"></script>
|
|
<!-- 引入vant组件 -->
|
|
<script src="./../js/vant.min.js"></script>
|
|
<!-- 引入axios -->
|
|
<script src="../../backend/plugins/axios/axios.min.js"></script>
|
|
<script src="./../js/request.js"></script>
|
|
<script src="./../api/order.js"></script>
|
|
<script>
|
|
new Vue({
|
|
el:"#order",
|
|
data(){
|
|
return {
|
|
paging:{
|
|
page:1,
|
|
pageSize:5
|
|
},
|
|
orderList:[],
|
|
loading:false,
|
|
finished:false
|
|
}
|
|
},
|
|
computed:{},
|
|
created(){
|
|
this.initData()
|
|
},
|
|
mounted(){},
|
|
methods:{
|
|
goBack(){
|
|
const url = document.referrer
|
|
//表示是从订单页面跳转过来的
|
|
if(url.includes('success')){
|
|
window.requestAnimationFrame(()=>{
|
|
window.location.href= '/front/index.html'
|
|
})
|
|
}else{
|
|
history.go(-1)
|
|
}
|
|
},
|
|
initData(){
|
|
this.getList()
|
|
},
|
|
async getList(){
|
|
if(this.finished){
|
|
this.loading = false;
|
|
return
|
|
}
|
|
const res = await orderPagingApi(this.paging)
|
|
if(res.code === 1){
|
|
this.orderList.push(...res.data.records)
|
|
let records = res.data.records
|
|
if(records && Array.isArray(records)){
|
|
records.forEach(item=>{
|
|
let number = 0
|
|
item.orderDetails.forEach(ele=>{
|
|
number += ele.number
|
|
})
|
|
item.sumNum = number
|
|
})
|
|
}
|
|
this.loading = false;
|
|
if(this.paging.page >= res.data.pages){
|
|
this.finished = true;
|
|
}
|
|
this.paging.page = this.paging.page + 1
|
|
}else{
|
|
this.$notify({ type:'warning', message:res.msg});
|
|
}
|
|
},
|
|
async addOrderAgain(order){
|
|
const res = await orderAgainApi({id:order.id})
|
|
if(res.code === 1){
|
|
window.requestAnimationFrame(()=>{
|
|
window.location.href= '/front/index.html'
|
|
})
|
|
}else{
|
|
this.$notify({ type:'warning', message:res.msg});
|
|
}
|
|
},
|
|
getStatus(status){
|
|
let str = ''
|
|
switch(status){
|
|
case 1:
|
|
str = '待付款'
|
|
break;
|
|
case 2:
|
|
str = '正在派送'
|
|
break;
|
|
case 3:
|
|
str = '已派送'
|
|
break;
|
|
case 4:
|
|
str = '已完成'
|
|
break;
|
|
case 5:
|
|
str = '已取消'
|
|
break;
|
|
|
|
}
|
|
return str
|
|
}
|
|
}
|
|
})
|
|
</script>
|
|
</body>
|
|
</html> |