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