功能模块总结

订单模块

实现的功能有:
查询,重置,导出,查看详情,分页功能
首先查看接口文档,找到对应的数据,编写获取订单数据的api

//获取订单统计信息
export function GetOrdersStatic() {
  return request.get("/api/yp/orders/static");
}

创建orderlist页面并导入订单请求数据的接口

import {
    GetOrderList
} from '@/api/order.js'

运用element-ui进行基本的排版,用lelement-ui前先在main.js中全局引入

//导入el
import ElementUI from 'element-ui';
//导入css
import 'element-ui/lib/theme-chalk/index.css';
//使用el
Vue.use(ElementUI)

可以在网页中按F12打开开发者模式切换到网络,点击Fetch,点击预览就可以看到数据了
请添加图片描述
对数据排版,遍历和渲染

 <h1 class="list">订单列表</h1>
        <el-tabs v-model="searchObj.status" @tab-click="handleClick">
            <el-tab-pane :label="item.name + '(' + item.num + ')'" v-for="item in $store.state.order.ordersStatic"
                :name="item.name" :key="item.name"></el-tab-pane>
        </el-tabs>
        <!-- 配送方式 -->
        <el-form :inline="true" :model="searchObj" class="demo-form-inline" ref="searchForm">
            <el-form-item label="配送方式" prop="pickupInstore" style="margin:10px;">
                <el-radio-group v-model="searchObj.pickupInstore" @change="getOrderList()">
                    <el-radio :label="''">全部</el-radio>
                    <el-radio :label="0">自提</el-radio>
                    <el-radio :label="1">配送</el-radio>
                </el-radio-group>
                <div class="btn">
                    <el-link style="margin-right: 25px;width: 80px;height: 30px;border: 1px solid #ccc;"
                        @click="$refs.searchForm.resetFields(); getOrderList()">
                        重置</el-link>
                    <el-button @click="getOrderList()" style="width:80px;height:30px;padding: 0;">查询</el-button>
                </div>
            </el-form-item><br>
            <div style="background-color: #fff;margin-left: 20px;">
                <el-form-item label="订单编号" prop="orderNum">
                    <el-input v-model="searchObj.orderNum" placeholder="订单编号"></el-input>
                </el-form-item>
                <el-form-item label="商品编号" prop="ParentOrderID">
                    <el-input v-model="searchObj.ParentOrderID" placeholder="商品编号"></el-input>
                </el-form-item>
                <el-form-item label="所属门店" prop="shoppingAdd">
                    <el-input v-model="searchObj.shoppingAdd" placeholder="所属门店"></el-input>
                </el-form-item> <br />
                <el-form-item label="会员账号" prop="customerId">
                    <el-input v-model="searchObj.customerId" placeholder="用户账号"></el-input>
                </el-form-item>
                <el-form-item label="收货人" prop="consignee">
                    <el-input v-model="searchObj.consignee" placeholder="收货人"></el-input>
                </el-form-item>
                <el-form-item label="下单时间" prop="createStart">
                    <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="searchObj.createStart" type="datetime"
                        placeholder="选择开始时间">
                    </el-date-picker>
                </el-form-item>
                -
                <el-form-item label="" prop="createEnd">
                    <el-date-picker v-model="searchObj.createEnd" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
                        placeholder="选择截至时间">
                    </el-date-picker>
                </el-form-item>
            </div>

查询,重置,导出:先定义条件和方法,然后进行更新数据

import Vue from 'vue';
import JsonExcel from 'vue-json-excel'
Vue.component('downloadExcel', JsonExcel)
// 导入订单请求数据的接口
import {
    GetOrderList
} from '@/api/order.js'
 methods: {
        pageChange(e) {
            console.log(e);
            // 更新搜索条件的当前页
            this.searchObj.current = e;
            // 获取当前的订单
            this.getOrderList();
        },
        handleSelectionChange(val) {
            console.log("选择", val);
            // 更新导出的数据
            this.DetailsForm = val;
        },
        // 单击顶部tab栏重新获取订单信息
        handleClick(tab, event) {
            console.log(tab, event);
            this.getOrderList();
        },
        // 获取订单信息的方法
        getOrderList() {
            // 修正el的bug
            if (this.searchObj.status == 0 || this.searchObj.status == "全部") {
                this.searchObj.status = "";
            }
            GetOrderList(this.searchObj)
                .then(res => {
                    console.log("订单列表信息", res.data)
                    this.orderList = res.data.data;
                    this.pagnation = res.data.pagnation;
                    // 更新导出的数据
                    this.DetailsForm = res.data.data;
                    this.$refs.tab.toggleAllSelection();
                })
                .catch(err => {
                    console.log("获取订单信息失败", err)
                })
        }
    },
    data() {
        return {
            // 定义搜索条件
            searchObj: {
                current: 1,//当前页
                status: "",
                pickupInstore: "",
                orderNum: "",
                ParentOrderID: "",
                shoppingAdd: "",
                customerId: "",
                consignee: "",
                createStart: "",
                createEnd: "",
            },
            // 订单列表
            orderList: [],
            // 分页信息
            pagnation: {},
            //  导出表格的数据
            DetailsForm: [],
            // 导出的表头信息
            json_fields: {
                "订单状态": "status",
                "是否自提": {
                    field: "pickupInstore",
                    callback: (value) => {
                        console.log(value)
                        return value == "1" ? '是' : '否';
                    },
                },
            }
        }
    },
    created() {
        // 获取订单列表
        this.$store.dispatch("getOrdersStatic");
    },
    mounted() {
        this.getOrderList();
    },
    watch: {
        "searchObj": {
            // 监听seachObj变化,进行搜索
            handler() {
                this.getOrderList();
            },
            deep: true
        }
    }
}

总的来说,我的思路不是很清晰,这些数据的渲染也是在老师的一步步指导下才成功渲染出来,我的逻辑思路还在逐步形成,还在努力学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值