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

《仿盒马》app开发技术分享-- 待发货兑换订单列表(76)

技术栈

Appgallery connect

开发准备

上一节我们实现了兑换订单展示页面的框架,这一节我们要进行兑换订单的展示,在兑换订单提交后,默认的状态是待发货状态,我们用列表的方式展示出来

功能分析

进入页面时我们就要通过用户的userid去查询对应的订单,获取到订单返回的列表数据后通过list展示到tabcontent中

代码实现

进入页面后先获取用户信息

 const value = await StorageUtils.getAll('user');if (value != "") {this.user = JSON.parse(value)}

根据用户的userid查询出对应的兑换订单列表

  @State pointsList:PointsOrderInfo[]=[]async aboutToAppear(): Promise<void> {const value = await StorageUtils.getAll('user');if (value != "") {this.user = JSON.parse(value)if (this.user != null) {let databaseZone = cloudDatabase.zone('default');let condition = new cloudDatabase.DatabaseQuery(points_order_info);condition.equalTo("user_id", this.user?.user_id)let listData = await databaseZone.query(condition);let json = JSON.stringify(listData)let data: PointsOrderInfo[] = JSON.parse(json)this.pointsList=datahilog.error(0x0000, 'testTag', `Failed to query data, code: ${data}`);}}}

条目展示

import { PointsOrderInfo } from '../../../entity/PointsOrderInfo'@Component
export struct  PointsItem{@Link orderList:PointsOrderInfo[]build() {Column(){List({space:10}){ForEach(this.orderList,(item:PointsOrderInfo,index:number)=>{ListItem(){Column({space:10}){Row(){Text("订单编号:"+item.order_code).fontColor(Color.Black).fontSize(14)Text("待取件").fontColor(Color.Black).fontSize(14)}.justifyContent(FlexAlign.SpaceBetween).width('100%')Row({space:10}){Image($r('app.media.duihuan')).height(40).width(40).borderRadius(5)Column({space:10}){Text("商品类型  积分兑换").fontColor(Color.Black).fontSize(14)Text("兑换时间  "+item.crete_time).fontColor(Color.Black).fontSize(14)Text("联系方式  "+item.phone).fontColor(Color.Black).fontSize(14)Text("取件地址  "+item.address).fontColor(Color.Black).fontSize(14)}.alignItems(HorizontalAlign.Start)}.margin({top:10}).alignItems(VerticalAlign.Top).width('100%').justifyContent(FlexAlign.Start)Row({space:10}){Text()Blank()Text("确认揽收").fontColor(Color.Black).fontSize(12).padding(5).borderRadius(10).backgroundColor(Color.Pink)Text("取消预约").fontColor(Color.Black).fontSize(12).padding(5).borderRadius(10).border({width:1,color:Color.Grey})}.width('100%')}.padding(10).backgroundColor(Color.White).borderRadius(10).width('100%').justifyContent(FlexAlign.SpaceBetween).onClick(()=>{})}})}.padding(10)}}
}

在tabcontent中引用自定义组件传入刚才查询出的列表

 TabContent() {Column(){PointsItem({orderList:this.pointsList})}.width('100%').height('100%')}.tabBar(this.tabBuilder(0, '待发货'))

在确认兑换成功后跳转到兑换订单展示页

 router.replaceUrl({url:"pages/recycle/points/PointsOrderListPage"})

积分展示页新增列表展示入口

.onClick(()=>{switch (item.name) {case "积分等级":router.pushUrl({url:''})break;case "兑换订单":router.pushUrl({url:'pages/recycle/points/PointsOrderListPage'})break;case "积分兑换":router.pushUrl({url:'pages/recycle/points/PointsProductPage'})break;default:break;}})

到这里我们就实现了待取件订单列表

http://www.lryc.cn/news/575289.html

相关文章:

  • 使用EasyExcel处理动态表头数据导入
  • Aurora MySQL 3.05/3.06/3.07版本即将停用,全局数据库升级实战指南
  • 鸿蒙ArkUI---基础组件Tabs(Tabbar)
  • 日本生活:日语语言学校-日语作文-沟通无国界(5)-题目:我的一天
  • Boss:攻击
  • ChaCha20加密解密技术
  • 使用 Netty 实现 TCP 私有协议(解决粘包/拆包)
  • 三步实现B站缓存视频转MP4格式
  • WeakAuras Lua Script [ICC BOSS 12 - The Lich King]
  • 【笔记——李沐动手学深度学习】2.3 线性代数
  • PyTorch RNN实战:快速上手教程
  • MySQL之存储过程详解
  • IoT/HCIP实验-5/基于NB-IoT的智慧农业实验(平台侧开发+端侧编码+基础调试分析)
  • 重置 MySQL root 密码
  • python接口测试参数multipart/form-data格式不能有多余的空格或 tab 缩进
  • 计算机网络-----详解HTTPS协议
  • 可商用,可离线运行,可API接口调用的开源AI数字人项目Heygem,喂饭级安装教程
  • 专题:2025医疗AI应用研究报告|附200+份报告PDF汇总下载
  • Android14音频子系统 - 系统框架概述
  • 用户体验驱动的3D设计:从功能实现到情感共鸣的设计升级
  • Wpf的Binding
  • Deepoc大模型:精密制造智能化的“数字孪生引擎”
  • RabbitMq中使用自定义的线程池
  • 多个 Job 并发运行时共享配置文件导致上下文污染,固化 Jenkins Job 上下文
  • 联邦学习差分隐私系统的参与角色、密钥分发及攻击分析
  • 爽提配送:以专业守护校园,用匠心重塑安全
  • 理论加案例,一文读懂数据分析中的分类建模
  • 科技筑防线 智慧守平安——中物九联携硬核科技亮相四川防灾减灾盛会
  • 【MySQL】12. C语言与数据库的连接
  • 区间求最值问题高效解决方法