当前位置: 首页 > news >正文

比较有趣的网站中英 网站模板 带手机版

比较有趣的网站,中英 网站模板 带手机版,腾讯社交广告平台,杭州市滨江区建设局网站订单列表 本章节为课堂作业 01. 封装订单列表接口 API 思路分析: 为了方便后续进行商品管理模块的开发,我们在这一节将商品管理所有的接口封装成接口 API 函数 落地代码: ➡️ api/orderpay.js /*** description 获取订单列表* returns …

订单列表

本章节为课堂作业

01. 封装订单列表接口 API

思路分析:

为了方便后续进行商品管理模块的开发,我们在这一节将商品管理所有的接口封装成接口 API 函数

落地代码:

➡️ api/orderpay.js

/*** @description 获取订单列表* @returns Promise*/
export const reqOrderList = (page, limit) => {return http.get(`/order/order/${page}/${limit}`)
}

02. 获取订单列表数据并渲染

思路分析:

当用户从个人中心页面点击进入订单中心的时候,就需要获取到订单中心的数据。

在页面调用 API 函数获取订单列表的数据,

在获取到数据以后,使用后端返回的数据对页面进行渲染

落地代码:

➡️ modules/orderPayModule/pages/order/list/list.js

+ // 导入封装的接口 API 函数
+ import { reqOrderList } from '@/api/orderpay'Page({// 页面的初始数据data: {orderList: [1, 2, 3], // 订单列表
+     page: 1, // 页码
+     limit: 10, // 每页展示的条数
+     total: 0 // 订单列表总条数},+   // 获取订单列表
+   async getOrderList() {
+     // 解构获取数据
+     const { page, limit } = this.data
+     // 调用接口获取订单列表数据
+     const res = await reqOrderList(page, limit)
+ 
+     if (res.code === 200) {
+       this.setData({
+         orderList: res.data.records,
+         total: res.data.total
+       })
+     }
+   },+   // 生命周期函数--监听页面加载
+   onLoad() {
+     this.getOrderList()
+   }})

➡️ modules/orderPayModule/pages/order/list/list.wxml

<!--pages/order/list/index.wxml-->
<view class="order-container container">
+   <view class="order-list" wx:if="{{ orderList.length > 0 }}">
+     <view class="order-item" wx:for="{{ orderList }}" wx:key="index">
+       <view class="order-item-header list-flex"><view class="orderno">订单号<text class="no">{{ orderList.orderNo }}</text></view>
+         <view class="order-status {{ item.orderStatus === 1 ? 'order-active' : '' }}">
+           {{ item.orderStatus === 1 ? '已支付' : '未支付'}}
+         </view></view><viewclass="goods-item list-flex"
+         wx:for="{{ item.orderDetailList }}"
+         wx:key="id"
+         wx:for-item="goods"
+         wx:for-index="goodsIndex"><view class="left">
+           <image src="{{ goods.imageUrl }}" mode="widthFix" class="img" /></view><view class="mid">
+           <view class="goods-name">{{ goods.name }}</view>
+           <view class="goods-blessing">{{ goods.blessing }}</view></view><view class="right">
+           <view class="goods-price">¥{{ goods.price }}</view>
+           <view class="goods-count">x{{ goods.count }}</view></view></view><view class="order-item-footer"><view class="total-amount list-flex"><text class="text">实付</text>
+           <text class="price"><text>¥</text>{{ item.totalAmount }}</text></view></view></view></view><van-empty wx:else description="还没有购买商品,快去购买吧~" />
</view>

03. 订单列表上拉加载更多

思路分析:

当用户进行了上拉操作时,需要在 .js 文件中声明 onReachBottom 方法,用来监听页面的上拉触底行为

当用户上拉时,需要对 page 参数进行加 1 即可,

当参数发生改变后,需要重新发送请求,拿最新的 page 向服务器要数据

在下一页的商品数据返回以后,需要将下一页的数据和之前的数据进行合并

落地代码:

➡️ modules/orderPayModule/pages/order/list/list.js

// 导入封装的接口 API 函数
import { reqOrderList } from '@/api/orderpay'Page({// 页面的初始数据data: {orderList: [1, 2, 3], // 订单列表page: 1, // 页码limit: 10, // 每页展示的条数total: 0 // 订单列表总条数},// 获取订单列表async getOrderList() {// 解构获取数据const { page, limit } = this.data// 调用接口获取订单列表数据const res = await reqOrderList(page, limit)if (res.code === 200) {this.setData({
+         orderList: [...this.data.orderList, ...res.data.records],total: res.data.total})}},+   // 页面上拉触底事件的处理函数
+   onReachBottom() {
+     // 解构数据
+     const { page } = this.data
+ 
+     // 更新 page
+     this.setData({
+       page: page + 1
+     })
+ 
+     // 重新发送请求
+     this.getOrderList()
+   },// 生命周期函数--监听页面加载onLoad() {this.getOrderList()}
})

04. 判断数据是否加载完毕

思路分析:

如何判断数据是否加载完成 ❓

可以使用后端返回的 totalgoodsList 进行对比,如果 total 大于 goodsList ,说明订单中心数据没有加载完,可以继续上拉加载更多。

目前还没有接收 total,需要先将后台返回的 total 进行赋值到 data 中,然后使用 onReachBottom 中进行判断

落地代码:

➡️ modules/orderPayModule/pages/order/list/list.js

// 页面上拉触底事件的处理函数
onReachBottom() {
+   // 解构数据
+   const { page, total, orderList } = this.data
+ 
+   // 数据总条数 和 订单列表长度进行对比
+   if (total === orderList.length) {
+     return wx.toast({ title: '数据加载完毕' })
+   }// 更新 pagethis.setData({page: page + 1})// 重新发送请求this.getOrderList()
}

05. 节流阀进行列表节流

在用户网速很慢的情况下,如果用户在距离底部来回的进行多次滑动,可能会发送一些无意义的请求、造成请求浪费的情况,因此需要给上拉加载添加节流功能。

我们使用节流阀来给订单列表添加节流功能。

data 中定义节流阀状态 isLoading,默认值是 false

在请求发送之前,将 isLoading 设置为 true,表示请求正在发送。

在请求结束以后,将 isLoading 设置为 false,表示请求已经完成。

onReachBottom 事件监听函数中,对 isLoading 进行判断,如果数据正在请求中,不请求下一页的数据。

落地代码:

➡️ modules/orderPayModule/pages/order/list/list.js

// 导入封装的接口 API 函数
import { reqOrderList } from '@/api/orderpay'Page({// 页面的初始数据data: {orderList: [1, 2, 3], // 订单列表page: 1, // 页码limit: 10, // 每页展示的条数total: 0, // 订单列表总条数
+     isLoading: false // 判断数据是否记载完毕},// 获取订单列表async getOrderList() {// 解构获取数据const { page, limit } = this.data+     // 数据正在请求中
+     this.data.isLoading = true// 调用接口获取订单列表数据const res = await reqOrderList(page, limit)+     // 数据加载完毕
+     this.data.isLoading = falseif (res.code === 200) {this.setData({orderList: [...this.data.orderList, ...res.data.records],total: res.data.total})}},// 页面上拉触底事件的处理函数onReachBottom() {
+     // 解构数据
+     const { page, total, orderList, isLoading } = this.data+     // 判断是否加载完毕,如果 isLoading 等于 true
+     // 说明数据还没有加载完毕,不加载下一页数据
+     if (isLoading) return// 数据总条数 和 订单列表长度进行对比if (total === orderList.length) {return wx.toast({ title: '数据加载完毕' })}// 更新 pagethis.setData({page: page + 1})// 重新发送请求this.getOrderList()},// 生命周期函数--监听页面加载onLoad() {this.getOrderList()}
})
http://www.yayakq.cn/news/446458/

相关文章:

  • 做网站需要懂什么在线教育网站建设
  • 电商网站开发常用代码网站开发保密协议
  • 织梦 一键更新后网站空白开锁做网站哪个好
  • 郑州公司建网站百度应用商店
  • 做网站运营的职业生涯规划惠州seo快速排名
  • 餐饮网站建设的模板策划平台
  • 做ppt的软件怎么下载网站做网站搜索如何显示官网
  • 网站免费优化青州网站设计公司
  • 怎么把网站设置为信任网站湖南益阳网站建设
  • 建设网站赚钱的方法网站文章添加
  • 安卓做网站专做婚纱店设计网站
  • 长沙做网站找哪家好贵阳网站备案
  • 做辅食网站做一个招聘信息的网站_用什么做网站的软件
  • 可视化网站建设谷歌商店paypal三件套
  • 网站建设申请报告怎么写石家庄住房和城乡建设厅网站
  • 贸易网站设计wordpress安装包下载失败
  • 门户网站建设构架山西大型网络营销设计
  • 怎么做的网站怎么放上网网站设计 导航条
  • 招聘工作的网站有哪些建设信用卡购物网站
  • 网站建设的教程企业模板网站vue
  • 用wordpress仿一个网站做医药行业找药的网站
  • 做网站推广怎么找客户设计图网址
  • 在哪里自己建设网站美工培训哪个机构好
  • 网站备案链接直接查看旅游网站建设策划书范文
  • 金湖网站设计wordpress d9
  • 自己制作网页链接的软件谷歌seo视频教程
  • 制作文件的软件seo网站优化培训怎么做
  • 长沙哪家网站设计好网站栏目划分怎么做
  • UltraEdit做网站教程鞍山抖音seo新闻
  • 手机怎么做电子书下载网站单位网站建设情况