《仿盒马》app开发技术分享-- 回收金查询页面(48)

简介: 上一节我们实现了查看当前账号下的预收益,以及当下收益,并且展示了已完成订单的列表,现在我们可以针对收益来做更多的内容了,在之前的开发中我们在个人中心页面实现了一个静态的金额展示,后续我们将会在这里展示当前账号的总金额,点击当前账号金额进入回收金查询页面,在这个页面我们将会对该账号的回收金进行一系列的操作

技术栈

Appgallery connect

开发准备

上一节我们实现了查看当前账号下的预收益,以及当下收益,并且展示了已完成订单的列表,现在我们可以针对收益来做更多的内容了,在之前的开发中我们在个人中心页面实现了一个静态的金额展示,后续我们将会在这里展示当前账号的总金额,点击当前账号金额进入回收金查询页面,在这个页面我们将会对该账号的回收金进行一系列的操作

功能分析

要想实现回收金页面,首先我么要在首页进行一个入口进入的点击事件添加,然后我们需要有一个金额展示的页面,同时添加关闭金额展示的功能,后续我们要实现回收金的体现,所以提前添加一个提现状态的展示位置,在这个页面我们还需要添加若干入口,进入我们的付款码、提现、商品分类页选购商品

代码实现

这个页面我们因为模块比较多,并且关联性不强,我们使用自定义组件的形式实现
首先实现回收金的展示和隐藏,以及提现金额的展示,我们先创建页面

 build() {
   
    Column() {
   
      CommonTopBar({
    title: "我的回收金", alpha: 0, titleAlignment: TextAlign.Center ,backButton:true})
      Stack(){
   
        Column(){
   
          Column(){
   
            Row(){
   
              Text(this.isClose?"¥****":"¥"+this.amount.toString())
                .fontSize(30)
                .fontColor("#333333")
                .fontWeight(FontWeight.Bold)
              Image(this.isClose?$r('app.media.ic_psd_hide'):$r('app.media.ic_psd_show'))
                .width(28)
                .height(28)
                .objectFit(ImageFit.Contain)
                .interpolation(ImageInterpolation.High)
                .margin({
   left:12})
                .onClick(()=>{
   
                  if (this.isClose==false) {
   
                    this.isClose=true
                  }else {
   
                    this.isClose=false
                  }

                })
            }

            Row(){
   
              Text(this.isClose?"可用****":"可用"+this.availableAmount)
                .margin({
   right:9})
                .fontColor(Color.Black)
                .fontSize(15)

              Text(this.isClose?"提现中****":"提现中"+this.useAmount)
                .fontColor(Color.Black)

                .fontSize(15)
            }
            .padding(5)
          }
        }
      }
      .height(190)
      .width('100%')



    }
    .backgroundColor("#f7f7f7")
  }

实现之后我们在中间实现我们的三个入口模块,我们创建自定义组件,然后引入


import router from '@ohos.router'

@Component
export struct CenterImageButton {
   
  iconList:ESObject[]=[{
   
    icon:$r('app.media.fukuanma'),
    name:"付款码"
  },{
   
    icon:$r('app.media.qutixian'),
    name:"去提现"
  },{
   
    icon:$r('app.media.qugouwu'),
    name:"去购物"
  }]
  @Builder
  IconBar(){
   
    Row(){
   
      ForEach(this.iconList,(item:ESObject,index)=>{
   
        this.IconButton(item,index)
      })
    }
    .IconBarBg()
    .height(80)
    .borderRadius(10)
    .width('100%')
    .padding({
   left:50,right:50})
    .justifyContent(FlexAlign.SpaceBetween)
  }
  @Builder
  IconButton(item:ESObject,index:number){
   
    Column(){
   
      Image(item.icon)
        .height(20)
        .width(20)
        .objectFit(ImageFit.Contain)
        .interpolation(ImageInterpolation.High)
      Text(item.name)
        .margin({
   top:6})
        .fontColor("#000000")
        .fontSize(14)
    }
    .onClick(()=>{
   
      switch (item.name) {
   
        case "付款码":
          router.pushUrl({url:''})
          break;
        case "去提现":
          router.pushUrl({url:''})

          break;
        case "使用回收金":
          router.pushUrl({url:''})
          break;

        default:
          break;
      }

    })
  }

  build() {
   
    Row() {
   
      this.IconBar()
    }
    .padding({
   left:12,right:12})
    .margin({
   top:14})
    .width(
      '100%'
    )
  }
}

//样式
@Extend(Row) function IconBarBg(){
   
  .linearGradient({
   
    angle: 180,
    colors: [[0xff0000, 0], [0xff6666, 0.5], [0xffffff, 1]]

  })
}

这样我们的入口模块就实现了,最后我们在这里加上收入支出的列表展示

@Builder TabBuilder(index: number, name: string) {
   
    Column() {
   
      Text(name)
        .fontColor(this.currentIndex === index ? this.fontColor : this.fontColor)
        .fontSize(this.currentIndex === index ? 16:15)
        .fontWeight(this.currentIndex === index ? FontWeight.Bold : FontWeight.Normal)
        .lineHeight(22)
      Divider()
        .strokeWidth(3)
        .width(30)
        .color(0xff0000)
        .opacity(this.currentIndex === index ? 1 : 0)
        .margin({
   top:2})
    }
    .height(50)
    .width('100%')
    .justifyContent(FlexAlign.Center)
  }



  Tabs({
    barPosition: BarPosition.Start, controller: this.controller }) {
   
        ForEach(this.arr,(item:string,index)=>{
   
          TabContent() {
   
            Column(){
   
              if (item=='全部') {
   
              }
              if (item=='收入') {
   
              }
              if (item=='支出') {
   
              }
            }
          }

          .tabBar(this.TabBuilder(index, item))
          .borderRadius(10)
          .backgroundColor(Color.White)
        })
      }
      .vertical(false)
      .barMode(BarMode.Fixed)
      .barWidth('100%')
      .barHeight(50)
      .backgroundColor(Color.White)
      .animationDuration(300)
      .onChange((index: number) => {
   
        this.currentIndex = index
      })
      .width('100%')
      .height('100%')
      .layoutWeight(1)
      .margin({
    top: 10 })
相关文章
|
6月前
《仿盒马》app开发技术分享-- 确认订单页(数据展示)(29)
上一节我们实现了地址的添加,那么有了地址之后我们接下来的重点就可以放到订单生成上了,我们在购物车页面,点击结算会跳转到一个 订单确认页面,在这个页面我们需要有地址选择、加购列表展示、价格计算、优惠计算、商品数量展示等信息。
190 3
|
6月前
|
存储
《仿盒马》app开发技术分享-- 订单结合优惠券结算(60)
上一节我们已经实现了优惠券的选择,并且成功的把券后的价格也展示给用户,不能使用的优惠券我们也用友好的方式告知用户,这一节我们来实现优惠券内容的下一步,优惠券内容结合订单进行结算提交
145 13
|
6月前
|
存储
《仿盒马》app开发技术分享-- 优惠券展示页(57)
上一节我们实现了优惠券的领取功能,并且在云端已经成功查询出优惠券信息,那么我们需要来实现一个优惠券展示的页面来向用户展示当前账号下的优惠券信息,辅助用户更好的去购买需要的商品,因为优惠券会有多种状态,在展示时也要注意不同状态的区分如何处理
141 9
|
6月前
|
安全 数据安全/隐私保护
《仿盒马》app开发技术分享-- 设置安全锁(51)
上一节我们实现了提现页面以及部分组件的业务逻辑,那么我们在提现这一步为了更多的安全层面的考虑,设置了一个安全锁,用户只要开启了安全锁,那么每次的提现,都需要把本地的密码提交到云端核对安全锁的内容才可以执行后续的提现步骤,如果不能解锁,那么后续的内容都无法实现,这更好的保护了用户的财产安全
134 4
|
6月前
|
JSON 数据挖掘 数据格式
《仿盒马》app开发技术分享-- 分类左侧列表(17)
上一节我们实现了分类页面的顶部导航栏全选弹窗列表,并实现了跟顶部列表的点击选中联动效果,这一节我们要实现的功能是,分类模块的左侧列表,它同样也需要跟弹窗列表的点击,顶部列表的点击有联动的效果
118 4
|
6月前
|
定位技术 API
《仿盒马》app开发技术分享-- 原生地图展示(26)
上一节我们实现了获取当前用户的位置,并且成功的拿到了经纬度,这一节我们就要根据拿到的经纬度,结合我们其他的知识点来实现地图的展示。
169 4
|
6月前
|
数据库
《仿盒马》app开发技术分享-- 回收订单页功能完善(45)
上一节我们实现了订单的待取件、已取消状态展示,并且成功实现了修改订单状态后的列表刷新,实现了云端数据的修改,这一节我们来实现订单页剩下的两个板块的业务逻辑,分别是运输中、已完成状态下的列表展示以及订单状态的修改
142 1
|
6月前
《仿盒马》app开发技术分享-- 兑换商品数据插入(67)
上一节我们实现了积分列表的展示,我们可以更直观的查看当前用户积分的收支情况,但是现在我们只有积分收入并没有消费的地方,所以现在我们开始着手积分兑换相关的内容。这一节我们来实现积分兑换商品的内容
99 0
|
6月前
《仿盒马》app开发技术分享-- 兑换商品确认揽收&待收货列表展示(78)
上一节我们实现了订单取消功能,实现了tabs切换时的数据刷新,实现了已取消订单的列表展示。这一节我们要实现揽收功能,并且实现待收货的列表展示功能
152 0
|
6月前
《伴时匣》app开发技术分享--表单提交准备(4)
上一节我们实现了用户登录功能,现在我们进入首页,可以开始准备着手发布我们的日期计划了,在这之前我们先实现信息表的创建。在首页实现一个标题栏,一个悬浮的按钮。
138 0