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

news/2024/7/9 23:49:25 标签: 前端, vue, elementui, javascript, vue.js

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>javascript">
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>

http://www.niftyadmin.cn/n/3183.html

相关文章

内网搭建图片网站:软件安装配置 1-3

现代的手机功能越来越强大&#xff0c;也让我们能随时随地抓拍有趣瞬间。而照片越来越多&#xff0c;全都存放在手机上并不现实&#xff0c;存在云端又有安全隐患&#xff0c;只能存放在自己的电脑上。而这又带来难以随时与他人分享的问题。不过&#xff0c;我们完全可以在自己…

从零开始学习opencv——在虚拟环境下安装opencv环境

毕设准备做cv相关项目&#xff0c;今天开始学习cv基础知识&#xff0c;课程为B站“【不要再看那些过时的OpenCV老教程了】2022巨献&#xff0c;OpenCV零基础小白最新版全套教程(人工智能机器视觉教程)” 1.在windows系统中某文件夹下安装虚拟环境&#xff1a; pip install vir…

专访乐凯撒CTO黄道泳:看一盒披萨背后的技术之路

当一盒热腾腾的披萨端到你的面前&#xff0c;你是否想过&#xff0c;背后会有怎样一段耐人寻味的技术故事&#xff1f;一块“数字化”披萨是如何诞生的&#xff1f;一家餐饮企业又是怎样做到核心系统完全自研&#xff1f;带着这些问题&#xff0c;TVP技术指针栏目&#xff0c;专…

大模型系统和应用——基于大模型的文本理解与生成

引言 最近在公众号中了解到了刘知远团队退出的视频课程《大模型交叉研讨课》&#xff0c;看了目录觉得不错&#xff0c;因此拜读一下。 观看地址&#xff1a; https://www.bilibili.com/video/BV1UG411p7zv 目录&#xff1a; 自然语言处理&大模型基础神经网络基础Transf…

基于JAVA学生公寓管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署

基于JAVA学生公寓管理系统计算机毕业设计源码系统mysql数据库lw文档部署 基于JAVA学生公寓管理系统计算机毕业设计源码系统mysql数据库lw文档部署本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&#xff1a;idea eclipse 前…

【面试题】移除数组删除重复项合并数组

1️⃣ 原地移除数组中所有的元素val 【OJ链接】 2️⃣ 删除排序数组中的重复项 【OJ链接】 3️⃣ 合并两个有序数组 【OJ链接】 1️⃣ 原地移除数组中所有的元素val 题目要求是要在数组中&#xff0c;把指定的数字全部去除&#xff0c;题目中也是强调了空间复杂度要求为O(1)&am…

装了我这 10 个 IDEA 神级插件后,同事也开始情不自禁的嘚瑟了

CSDN 的小伙伴&#xff0c;大家好&#xff0c;我是二哥呀。 昨天&#xff0c;有读者私信发我一篇 CSDN 上的文章&#xff08;就是这篇&#x1f602;&#xff09;&#xff0c;说里面提到的 Intellij IDEA 插件真心不错&#xff0c;基本上可以一站式开发了&#xff0c;希望能分享…

Kubectl

目录 一、资源管理 1.kubernetes集群管理 2.kubectl 3.kubectl 的命令 (1)查看版本信息 (2)查看资源对象简写信息 (3)查看集群信息 (4)配置kubectl自动补全 (5)node节点查看日志 (6)K8s核心组件日志 二、基本信息查看 1.查看master节点状态 2.查看命令空间 3.查看…