《仿盒马》app开发技术分享-- 兑换列表展示(68)

鸿蒙小林
• 阅读 3

技术栈

Appgallery connect

开发准备

上一节我们创建了积分相关的商品表,我们现在可以针对积分进行更多的操作了,我们首先添加了对应的数据到我们的云数据库中,这一节我们就要把我们存储的数据查询出来展示给用户

功能分析

首先我们需要在进入页面后进行数据查询,数据查出后我们定义对应的集合,然后我们新建一个瀑布流组件,把数据传递进去,进行数据的展示,在引用组件的地方我们传递数据

代码实现

我们首先在进入页面后查询数据

@State listProduct:PointsProduct[]=[]
  async aboutToAppear(): Promise<void> {
    let databaseZone = cloudDatabase.zone('default');
    let condition = new cloudDatabase.DatabaseQuery(points_product);
    let listData = await databaseZone.query(condition);
    let json = JSON.stringify(listData)
    let data: PointsProduct[] = JSON.parse(json)
    this.listProduct = data
    hilog.error(0x0000, 'testTag', `Failed to query data, code: ${data}`);
  }

然后我们新建一个自定义组件,先定义好一条数据的样式


  @Builder
  Item(item:PointsProduct){
    Column() {
      Image(item.url)
        .width('100%')
        .aspectRatio(1)
        .objectFit(ImageFit.Cover)
        .borderRadius({topLeft:10,topRight:10})

      Column() {
        Text(item.name)
          .fontSize(16)
          .fontColor('#333')
          .margin({ bottom: 4 })

        Text(item.text_message)
          .fontSize(12)
          .fontColor('#666')
          .margin({ bottom: 8 })




        Row() {
          Text(){
            Span("$")
              .fontColor(Color.Red)
              .fontSize(14)

            Span(String(item.points))
              .fontSize(16)
              .fontColor(Color.Red)
          }


          Blank()
          Column() {
            Image($r('app.media.cart'))
              .width(20)
              .height(20)
          }
          .justifyContent(FlexAlign.Center)
          .width(36)
          .height(36)
          .backgroundColor("#ff2bd2fa")
          .borderRadius(18)
        }
        .margin({top:10})
        .width('100%')
        .justifyContent(FlexAlign.SpaceBetween)



      }
      .alignItems(HorizontalAlign.Start)
      .padding(12)
    }
    .backgroundColor(Color.White)
    .borderRadius(12)
    .onClick(() => {

    })
  }

然后我们创建对应的布局,引入item


  build() {
    WaterFlow() {
      ForEach(this.goodsList, (item:PointsProduct, index) => {
        FlowItem() {
          this.Item(item)
        }
        .margin({ bottom: 12 })
      })
    }
    .padding(10)
    .columnsTemplate('1fr 1fr')
    .columnsGap(12)
    .onAreaChange((oldVal, newVal) => {
      this.columns = newVal.width > 600 ? 2 : 1
    })
  }

实现之后我们引入组件

  @State listProduct:PointsProduct[]=[]

 build() {
    Column() {
      CommonTopBar({ title: "积分兑换", alpha: 0, titleAlignment: TextAlign.Center ,backButton:true})
      ProductItem({goodsList:this.listProduct})

    }
    .backgroundColor(Color.White)
    .height('100%')
    .width('100%')
  }

到这里我们就实现了兑换列表的展示

点赞
收藏
评论区
推荐文章
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 旧物回收订单列表(43)
技术栈Appgalleryconnect开发准备上一节我们实现了订单的创建,并且成功吧数据提交到云数据库中,这一节我们实现的内容是展示我们提交的订单列表功能分析要实现订单列表的展示,首先我们要查询对应用户下的订单列表,查询出对应的订单列表后,展示出对应的数
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 积分页组件新增(64)
技术栈Appgalleryconnect开发准备上一节我们创建了积分页,给页面添加了标题栏和积分展示的组件。这一节我们继续丰富积分页的内容,添加引导栏,积分明细展示等区域功能分析因为页面的关联不强,我们采用组件引入的方式实现引导栏,同时,在下方继续添加对应
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 插入积分信息(65)
技术栈Appgalleryconnect开发准备上一节我们实现了积分页面的大概框架,那么现在我们开始进行数据的填充和查询,积分相关的内容现在之后当回收订单结算之后才会进行积分数据的添加,那我们想查询出对应的积分数据,还需要新增一张积分信息表功能分析现在积分
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 积分信息展示(66)
技术栈Appgalleryconnect开发准备上一节我们实现了数据的插入,现在我们需要在tabs中展示我们积分的详细情况了,现在我们只需要从云端进行数据的查询,在页面中拿到数据进行展示就能实现我们想要的效果功能分析数据的展示我们通过用自定义组件的方式实现
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 兑换商品数据插入(67)
技术栈Appgalleryconnect开发准备上一节我们实现了积分列表的展示,我们可以更直观的查看当前用户积分的收支情况,但是现在我们只有积分收入并没有消费的地方,所以现在我们开始着手积分兑换相关的内容。这一节我们来实现积分兑换商品的内容功能分析首先我们
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 兑换商品详情(69)
技术栈Appgalleryconnect开发准备上一节我们实现了兑换商品列表的展示,用户可以在回收之后通过积分页面进入兑换列表页查看当前能够兑换的商品了,我们距离一个完整的app又更近了一步,现在我们要实现的就是当用户点击列表条目的时候能够查看数据详情。功
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 兑换提交准备(72)
技术栈Appgalleryconnect开发准备上一节我们实现了地址的选择,商品数据的展示,我们页面中需要的提交的内容还有所欠缺,我们还需要新增一些展示兑换细节的组件,同时在提交之前还需要实现备注功能,我们还要在页面中展示一些积分相关的内容,告知用户积分的
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 兑换订单提交(73)
技术栈Appgalleryconnect开发准备上一节我们实现了兑换提交前的准备页面,向用户展示了兑换相关的所有信息,这一节我们就可以实现兑换订单的提交了功能分析订单提交我们需要创建对应的兑换商品订单提交信息表,我们需要把地址,商品信息,积分,备注,订单状
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 兑换订单列表框架(75)
技术栈Appgalleryconnect开发准备上一节我们针对订单兑换的业务逻辑进行了完善,成功的在兑换物品之后修改了用户信息的修改,新增了积分消费的记录。这一节我们实现订单创建之后进入的列表展示页框架。功能分析兑换商品的订单列表框架我们选择使用tabs,
鸿蒙小林 鸿蒙小林
6小时前
《仿盒马》app开发技术分享-- 待发货兑换订单列表(76)
技术栈Appgalleryconnect开发准备上一节我们实现了兑换订单展示页面的框架,这一节我们要进行兑换订单的展示,在兑换订单提交后,默认的状态是待发货状态,我们用列表的方式展示出来功能分析进入页面时我们就要通过用户的userid去查询对应的订单,获取