137.(前端)订单管理显示物流信息——前端利用axios调用后端接口并且使用timeline时间线效果展示

1.流程概述

上篇文章,我们已经实现了如何去从后端获取数据,这一次,我们主要有两部分内容需要实现。

  1. 我们编写一个函数,利用axios去调用后端接口获取数据,放到我们已经实现好的dialog弹窗中。但是,此时我们的数据是一个列表结果,是不利于查看的
  2. 我们使用 时间线,去对物流信息数据根据时间的顺序排列下来,进行前端的展示

2.最终效果展示

在这里插入图片描述

3.代码展示

<!-- src/components/order/Order.vue -->
<template>
    <div>
        <!-- 面包屑使用 -->
        <el-breadcrumb separator-class="el-icon-arrow-right">
            <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
            <el-breadcrumb-item>订单管理</el-breadcrumb-item>
            <el-breadcrumb-item>订单列表</el-breadcrumb-item>
        </el-breadcrumb>
        <!-- 内容 -->
        <el-card>
            <!-- 内容1 -->
            <el-row>
                <!-- 搜索框 -->
                <el-col :span="8">
                    <el-input v-model="qid" placeholder="请输入搜索名称" clearable @clear="getOrderList">
                        <!-- 绑定发送请求的函数getGoodsList -->
                        <el-button slot="append" icon="el-icon-search" @click="getOrderList"></el-button>
                    </el-input>
                </el-col>
            </el-row>
            <!-- 内容2 -->
            <el-row>
                <el-table :data="orderList" border>
                    <el-table-column type="index"></el-table-column>
                    <el-table-column prop="id" label="id"></el-table-column>
                    <el-table-column prop="uname" label="订单用户"></el-table-column>
                    <el-table-column prop="price" label="金额"></el-table-column>
                    <el-table-column prop="pay_status" label="是否支付">
                        <template slot-scope="scope">
                            <el-tag v-if="scope.row.pay_status === 0" type="success">未支付</el-tag>
                            <el-tag v-else type="danger">已支付</el-tag>
                        </template>
                    </el-table-column>
                    <el-table-column prop="is_send" label="是否发件">
                        <template slot-scope="scope">
                            <el-tag v-if="scope.row.is_send === 0" type="success">未发货</el-tag>
                            <el-tag v-else type="danger">已发货</el-tag>
                        </template>
                    </el-table-column>
                    <el-table-column prop="操作" width="200px">
                        <template slot-scope="scope">
                            <el-button size="mini" type="primary" icon="el-icon-s-tools">地址</el-button>
                            <el-button size="mini" type="success" icon="el-icon-location" @click="showExpress(scope.row.id)">物流</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </el-row>
        </el-card>
        <el-dialog title="物流信息" :visible.sync="expressVisible">
            <el-timeline :reverse="reverse">
                <el-timeline-item v-for="(activity, index) in expressList" :key="index" :timestamp="activity.updatetime">
                    {{activity.content}}
                </el-timeline-item>
            </el-timeline>
        </el-dialog>
    </div>
    
        
</template>

<script>
export default {
    data() {
        return{
            qid: '',
            orderList:'',
            expressVisible: false,
            expressList: [],
            reverse: true
        }
    },
    created(){
        this.getOrderList()
    },
    methods: {
        // 发送请求获取订单列表
        async getOrderList() {
            const { data: res } = await this.$axios.get('/api/order_list')
            if (res.status !== 200) return this.$msg.error(res.msg)
            // console.log(res.data);
            this.$msg.success(res.msg)
            this.orderList = res.data
        },
        showExpress(oid) {
            this.expressVisible = true
            this.getExpressList(oid)
        },
        async getExpressList(oid){
            const {data: resp } = await this.$axios.get('/api/express',{params: {oid: oid}})
            if (resp.status !== 200) return this.$msg.error(resp.msg)
            console.log(resp.data);
            this.expressList = resp.data
        }
    }

}
</script>

<style>
.el-table{
    margin-top: 10px;
}
</style>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为数据分析师的开发工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值