前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年11月 微信小程序-优购电商项目-订单列表页面

【愚公系列】2022年11月 微信小程序-优购电商项目-订单列表页面

作者头像
愚公搬代码
发布2022-11-16 15:41:27
2890
发布2022-11-16 15:41:27
举报
文章被收录于专栏:历史专栏历史专栏

文章目录


前言

订单列表页面对于用户来说具备以下两个方面的作用:

1.交易凭证:售后、维权、发票都有据可循;针对买卖双方的争议,提供一条依据。

2.状态跟踪:交易链条较长的订单有跟踪订单状态的需求,譬如通过淘宝购买一件产品,长时间未收到货物,用户希望能看到订单及物流状态。如,待下单、待支付、运输中(相关物流信息查询)待收货、待评价等等。

一、订单列表页面

1. 业务逻辑

  1. 根据不同的的状态去加载不同的订单数据
  2. 点击标题紧挨着对应数据

2.涉及的接口数据

  1. 查询订单数据

3. 关键技术

  • ⼩程序 ⾃定义组件的 传参 ⽗向⼦动态传参 this.selectComponent(“#tabs”);
  • 时间戳 格式化处理

二、订单列表页面代码

1.页面代码

代码语言:javascript
复制
<Tabs tabs="{{tabs}}" bindtabsItemChange="handleTabsItemChange" >

  <view class="order_main">
    <view 
    wx:for="{{orders}}"
    wx:key="order_id"
     class="order_item">

     <view class="order_no_row">
       <view class="order_no_text">订单编号</view>
       <view class="order_no_value">{{item.order_number}}</view>
     </view>
     <view class="order_price_row">
       <view class="order_price_text">订单价格</view>
       <view class="order_price_value">¥{{item.order_price}}</view>
     </view>
     <view class="order_time_row">
       <view class="order_time_text">订单日期</view>
       <view class="order_time_value">{{item.create_time_cn}}</view>
     </view>

    </view>
  </view>
</Tabs>
代码语言:javascript
复制
import { request } from "../../request/index.js";

Page({

  /**
   * 页面的初始数据
   */
  data: {
    orders: [],
    tabs: [
      {
        id: 0,
        value: "全部",
        isActive: true
      },
      {
        id: 1,
        value: "待付款",
        isActive: false
      },
      {
        id: 2,
        value: "待发货",
        isActive: false
      },
      {
        id: 3,
        value: "退款/退货",
        isActive: false
      }
    ]
  },

  onShow(options) {
    const token = wx.getStorageSync("token");
    if (!token) {
      wx.navigateTo({
        url: '/pages/auth/index'
      });
      return;
    }



    // 1 获取当前的小程序的页面栈-数组 长度最大是10页面 
    let pages = getCurrentPages();
    // 2 数组中 索引最大的页面就是当前页面
    let currentPage = pages[pages.length - 1];
    // 3 获取url上的type参数
    const { type } = currentPage.options;
    // 4 激活选中页面标题 当 type=1 index=0 
    this.changeTitleByIndex(type-1);
    this.getOrders(type);
  },
  // 获取订单列表的方法
  async getOrders(type) {
    const res = await request({ url: "/my/orders/all", data: { type } });
    this.setData({
      orders: res.orders.map(v=>({...v,create_time_cn:(new Date(v.create_time*1000).toLocaleString())}))
    })
  },
  // 根据标题索引来激活选中 标题数组
  changeTitleByIndex(index) {
    // 2 修改源数组
    let { tabs } = this.data;
    tabs.forEach((v, i) => i === index ? v.isActive = true : v.isActive = false);
    // 3 赋值到data中
    this.setData({
      tabs
    })
  },
  handleTabsItemChange(e) {
    // 1 获取被点击的标题索引
    const { index } = e.detail;
    this.changeTitleByIndex(index);
    // 2 重新发送请求 type=1 index=0
    this.getOrders(index+1);
  }
})
代码语言:javascript
复制
.order_main .order_item {
  padding: 20rpx;
  border-bottom: 1rpx solid #ccc;
  color: #666;
}
.order_main .order_item .order_no_row {
  display: flex;
  padding: 10rpx 0;
  justify-content: space-between;
}
.order_main .order_item .order_price_row {
  display: flex;
  padding: 10rpx 0;
  justify-content: space-between;
}
.order_main .order_item .order_price_row .order_price_value {
  color: var(--themeColor);
  font-size: 32rpx;
}
.order_main .order_item .order_time_row {
  display: flex;
  padding: 10rpx 0;
  justify-content: space-between;
}

2.效果

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、订单列表页面
    • 1. 业务逻辑
      • 2.涉及的接口数据
        • 3. 关键技术
        • 二、订单列表页面代码
          • 1.页面代码
            • 2.效果
            相关产品与服务
            云开发 CloudBase
            云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档