微信小程序商城订单上拉加载更点击切换订单状态(接口)

摘要:
实现功能:如图html所示(如果需要选项卡组件,请查看博客)˂viewclass

实现功能:如图

微信小程序商城订单上拉加载更点击切换订单状态(接口)第1张

html (tab组件 需要的话请查看博客)

<Tab tabList="{{tabList}}"bindtabsItemChange="tabsItemChange">

    <view class="order"wx:for="{{orderList}}"wx:for-index="index"wx:key="index">
        <view class="order_content">
            <view class="order_content_header"bindtap="toOrderDetail"data-index="{{index}}">
                <view class="left">订单:
                    <text>{{item.order_no}}</text>
                </view>
                <view class="right"wx:if="{{item.status==0}}">待支付</view>
                <view class="right"wx:if="{{item.status==1}}"style="color: #1F95DA;">待接单</view>
                <view class="right"wx:if="{{item.status==2}}"style="color: #1FDAC1;">进行中</view>
                <view class="right"wx:if="{{item.status==3}}"style="color: #1a1a1a;">已完成</view>
                <view class="right"wx:if="{{item.status==4}}"style="color: #999999;">已取消</view>
                <view class="right"wx:if="{{item.status==5}}">已拒单</view>
                <view class="right"wx:if="{{item.status==6}}">已退单</view>
            </view>
            <view class="order_item"bindtap="toOrderDetail"data-index="{{index}}">
                <view class="order_item_left">
                    <view class="order_item_header">帮我取</view>
                    <view class="order_item_content">{{item.product[0].pro_name}}</view>
                </view>
                <view class="red">¥{{item.money}}</view>
            </view>
            <view class="order_time">
                <view class="flex">
                    <image src="../../static/icon/shijian.png"mode="widthFix" />
                    <view class="data">{{item.createtime}}
                    </view>
                </view>
                <view class="flex"wx:if="{{item.status==0}}">
                    <view class="quxiao">取消订单
                    </view>
                    <view class="zhifu"bindtap="toOrderPay"data-index="{{index}}">立即支付
                    </view>
                </view>
                <view class="flex"wx:if="{{item.status==1}}">
                    <view class="quxiao">取消订单
                    </view>
                </view>
            </view>
        </view>
    </view>
</Tab>

js(request组件是封装过的)

var app =getApp();
Page({
  data: {
    orderList:'',//订单列表
    tabList:[ //tab切换栏
      {
        id:0,
        value:'全部订单',
        isActive:true},
      
      {
        id:1,
        value:'待支付',
        isActive:false},
      {
        id:2,
        value:'待接单',
        isActive:false},
      {
        id:3,
        value:'进行中',
        isActive:false},
      {
        id:4,
        value:'已完成',
        isActive:false},
      {
        id:5,
        value:'已取消',
        isActive:false},
    ],page: 1,//当前页码
    status:'99',//订单状态 (后台约定,99显示全部订单,0:待支付  1:待接单  2:进行中   3:已完成  4:已取消)
    hasMoreData:false,//下拉判断是否还有数据
  },//根据标题索引来激活选中 标题数组
changeTitleByIndex(index){
    let {tabList}=this.data
    tabList.forEach((v,i) => i===index? v.isActive = true:v.isActive = false);
    this.setData({
      tabList
    })
  },
  tabsItemChange(e){
    //1 获取被点击的标题索引
    const {index}=e.detail//获取索引
    this.changeTitleByIndex(index)
    if (index==0) {
      this.setData({
        status:'99'})
    }
    if (index==1) {
      this.setData({
        status:'0'})
    }
    if (index==2) {
      this.setData({
        status:'1'})
    }
    if (index==3) {
      this.setData({
        status:'2'})
    }
    if (index==4) {
      this.setData({
        status:'3'})
    }
    if (index==5) {
      this.setData({
        status:'4'})
    }
    this.data.page=1 //当tab切换时当前页码变为1
    this.tabOrderList(this.data.status); //调用tabOrderList方法 this.data.status为tab切换对应的订单状态
  },

  //跳转到订单详情页
toOrderDetail(e){
    //console.log(e.currentTarget.dataset.index);
    let {index}=e.currentTarget.dataset
    let orderDetail = JSON.stringify(this.data.orderList[index])
    wx.navigateTo({
      url: '/pages/orderDetail/orderDetail?orderDetail='+orderDetail
    })
  },
//页面加载 onShow:
function(e) { this.data.page=1 this.tabOrderList(this.data.status); },
tabOrderList(){ wx.showLoading({ title:
'加载中', }); let url = app.globalData.URL + 'api接口'; let data ={ status:this.data.status,//传给后台的订单状态 page:this.data.page //传给后台当前页面的页码 } app.wxRequest('POST', url, data, (res) =>{ if(res.code==1){ wx.hideLoading(); this.setData({ orderList:res.data //将后台拿到的订单列表赋值给data }) }else{ wx.showToast({ title: res.msg, icon: 'none', }); } }, (err) =>{ console.log(err) }) },
//下拉加载更多 onReachBottom:
function(){ this.data.hasMoreData=true; if (this.data.hasMoreData) { wx.showLoading({ title: '加载中', }); let url = app.globalData.URL + 'api接口';//这两个接口用改是一样的本人调用了两次 let data ={ status:this.data.status, //同上 page:this.data.page } app.wxRequest('POST', url, data, (res) =>{ console.log(res); if(res.code==1){ if (res.data.length>0) {//判断获取到的数据长度>0再次请求数据直到请求到的数据长度<0证明没有数据 wx.hideLoading(); if (this.data.page == 1) { //清空数组 this.data.orderList=[] } this.setData({ orderList:this.data.orderList.concat(res.data),//旧数组和新获取的数组进行拼接 hasMoreData:true,//改为true证明它还有下一页 page:this.data.page+1//当前页码加一}) }else{ this.setData({ orderList:this.data.orderList.concat(res.data),//没有更多数据,也要进行拼接数组的操作 }) wx.showToast({ title: '没有更多数据了', icon: 'success', });} }else{ wx.showToast({ title: res.msg, icon: 'none', }); } }, (err) =>{ console.log(err) }) } } })

如果要实现下拉刷新功能自己添加就好

tab组件翻一翻博客吧

css代码就不贴出来了 ,要是有需要的评论处见

request请求是自己封装的有需要封装的也评论处见吧

免责声明:文章转载自《微信小程序商城订单上拉加载更点击切换订单状态(接口)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇winform 中 MessageBox 用法大全非框架, 纯原生JS “商品详情跳转到商品列表,并记录高度“ 的写法思路下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

VUE+Flask登录的初探--前端(Vue+element+axios)+后端(Flask+FlaskLogin+JWT)

0.前端部分依然基于VueCLI (https://cli.vuejs.org/zh/) 1.创建hello-login文件夹,然后再此文件夹内执行 vue create front-end ,一顿狂回车后,如下图所示:  2.安装elementUI,axios,js-cookie,qs  2.1  npm i element-ui -S  (https...

primary库新增数据文件后,standby库无法创建文件并终止数据同步

主库是RAC环境,使用asm存放数据文件,备库是操作系统本地文件系统存放数据文件。在主库执行以下操作: SQL> alter tablespace ysdv add datafile '+data' size 1024m autoextend on next 100m maxsize 10240m; 备库的alert日志报以下错误: Mon Ju...

Android_照相机Camera_调用系统照相机返回data为空

本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/16916279 1.调用系统照相机 [java] view plaincopy   //实例化一个intent,并指定action   Intent intent = new Intent(MediaStore.ACT...

链表的基础操作1

1.链表的重要操作 我们知道,链表的基础单位是一个个节点,那么第一步便是创建节点。 struct node{ typename data; //typename data 这里是数据域 node* next ; //指针域 }; 有一点要注意的是在C++中,是可以直接使用node的,而在C语言中,则需要使用struct node 不然会显示...

ExtJs之Ext.data.Store

因为上次用过Ext.data.Store,觉得挺重要的,  故转载了一篇http://blog.csdn.net/davidxj/archive/2009/04/23/4103647.aspx Ext.data.Store的基本用法在使用之前,首先要创建一个Ext.data.Store的实例,如下面的代码所示。 var data = [      ...

CentOS7安装部署Redis5.0.9并配置开机自启动

(1)下载Redis5.0.9.tar.gz安装包 下载地址:https://download.redis.io/releases/redis-5.0.9.tar.gz wget http://download.redis.io/releases/redis-5.0.9.tar.gz (2)将安装包上传至服务器/data目录下,如没有该目录请先创建 mkd...