123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- <!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>
|