《仿盒马》app开发技术分享-- 旧物回收页(静态)(40)

鸿蒙小林
• 阅读 3

技术栈

Appgallery connect

开发准备

上一节我们进行了购物车业务逻辑的优化,使我们的程序变得更加健壮,这一节我们将要开始电商业务以外的内容,旧物回收,这是一个全新的业务模块,我们将要在这里实现对应的,回收金,积分,回收业务相关内容

功能分析

要想实现旧物回收相关的内容,我们首先要搭建一个业务框架,我们这里我们要实现的内容有头部回收种类的展示模块,用户下单滚动提示模块,信息填充模块,以及后续的订单入口模块。我们先来进行页面的绘制

代码实现

首先是头部的回收种类展示模块

@State recycleTop:ESObject[]=[{"txt":"包包","img":$r('app.media.baobao')},{"txt":"裤子","img":$r('app.media.kuzi')},
    {"txt":"玩具","img":$r('app.media.wanju')},{"txt":"帽子","img":$r('app.media.maozi')},
    {"txt":"鞋子","img":$r('app.media.xiezi')},{"txt":"衣服","img":$r('app.media.yifu')}]

  Column({space:10}){
            Text("回收类别")
              .fontWeight(FontWeight.Bold)
              .fontColor(Color.Black)
              .fontSize(16)
            List({space:30}){
              ForEach(this.recycleTop,(item:ESObject,index:number)=>{
                ListItem(){
                  Column(){
                    Image(item.img)
                      .width(30)
                      .height(30)
                      .objectFit(ImageFit.Contain)
                    Text(item.txt)
                      .fontColor(Color.Black)
                      .fontSize(14)
                  }
                }
              })
            }
            .height(50)
            .listDirection(Axis.Horizontal)

            Text("每1kg回收物品奖励10元,可提现可消费")
              .width('100%')
              .fontColor(Color.Orange)
              .fontSize(14)
              .textAlign(TextAlign.Center)
          }
          .margin({top:20})
          .alignItems(HorizontalAlign.Start)
          .width('95%')
          .backgroundColor(Color.White)
          .borderRadius(10)
          .padding(10)

然后我们实现用户下单滚动模块,这里我们都先填充静态数据,上下的滚动我们用swiper组件去实现即可

 Swiper(this.swiperController){
              ForEach(this.recycleTop,(item:ESObject,index:number)=>{
                  Row({space:5}){
                    Image($r('app.media.laba'))
                      .width(10)
                      .height(10)

                    Image($r('app.media.yonghu'))
                      .width(10)
                      .height(10)

                    Text(item.txt+"123****12333 旧衣回收预约成功 06-08")
                      .fontColor(Color.Black)
                      .fontSize(12)


                  }
                  .padding({left:10})
                  .borderRadius(5)
                  .height(30)
                  .width("100%")
                  .backgroundColor(Color.White)
              })
          }
          .padding({left:12,right:12})
          .borderRadius(5)
          .disableSwipe(true)
          .autoPlay(true)
          .interval(2000)
          .vertical(true)
          .indicator(false)

然后是我们的用户信息填充模块,这里我们需要的关键信息就是地址,备注,用户下单的回收时间等

 Column({space:10}){
            Row(){
              Image($r('app.media.weizhi'))
                .width($r('app.float.size_17'))
                .height($r('app.float.size_17'))
                .objectFit(ImageFit.Contain)

              Flex({direction:FlexDirection.Column,alignItems:ItemAlign.Start}){
                Text("地址:")
                  .fontSize(16)
                  .fontWeight(FontWeight.Bold)
                  .fontColor($r('app.color.color_ff333'))
                Text("点击选择地址")
                  .fontSize(14)
                  .fontColor($r('app.color.color_999'))
                  .margin({top:$r('app.float.size_4')})
              }
              .margin({left:10})

              Blank()
              Image($r('app.media.back_right_recycle'))
                .width($r('app.float.size_16'))
                .height($r('app.float.size_16'))
                .objectFit(ImageFit.Contain)
            }
            .alignItems(VerticalAlign.Top)
            .padding({top:$r('app.float.size_16'),left:$r('app.float.size_10'),right:$r('app.float.size_10'),bottom:$r('app.float.size_10')})
            .width('100%')
            .height($r('app.float.size_80'))
            .backgroundColor(Color.White)
            .borderRadius($r('app.float.size_10'))
            Row(){
              Image($r('app.media.liuyan'))
                .width($r('app.float.size_17'))
                .height($r('app.float.size_17'))
                .objectFit(ImageFit.Contain)

              Flex({direction:FlexDirection.Column,alignItems:ItemAlign.Start}){
                Text("留言:")
                  .fontSize(16)
                  .fontWeight(FontWeight.Bold)
                  .fontColor($r('app.color.color_ff333'))
                Text("点击留言")
                  .fontSize(14)
                  .fontColor($r('app.color.color_999'))
                  .margin({top:$r('app.float.size_4')})
              }
              .margin({left:10})

              Blank()
              Image($r('app.media.back_right_recycle'))
                .width($r('app.float.size_16'))
                .height($r('app.float.size_16'))
                .objectFit(ImageFit.Contain)
            }
            .alignItems(VerticalAlign.Top)
            .padding({top:$r('app.float.size_16'),left:$r('app.float.size_10'),right:$r('app.float.size_10'),bottom:$r('app.float.size_10')})
            .width('100%')
            .height($r('app.float.size_80'))
            .backgroundColor(Color.White)
            .borderRadius($r('app.float.size_10'))


            Row(){
              Image($r('app.media.shijian'))
                .width($r('app.float.size_17'))
                .height($r('app.float.size_17'))
                .objectFit(ImageFit.Contain)

              Flex({direction:FlexDirection.Column,alignItems:ItemAlign.Start}){
                Text("取件时间:")
                  .fontSize(16)
                  .fontWeight(FontWeight.Bold)
                  .fontColor($r('app.color.color_ff333'))
                Text("点击选择时间")
                  .fontSize(14)
                  .fontColor($r('app.color.color_999'))
                  .margin({top:$r('app.float.size_4')})
              }
              .margin({left:10})

              Blank()
              Image($r('app.media.back_right_recycle'))
                .width($r('app.float.size_16'))
                .height($r('app.float.size_16'))
                .objectFit(ImageFit.Contain)
            }
            .alignItems(VerticalAlign.Top)
            .padding({top:$r('app.float.size_16'),left:$r('app.float.size_10'),right:$r('app.float.size_10'),bottom:$r('app.float.size_10')})
            .width('100%')
            .height($r('app.float.size_80'))
            .backgroundColor(Color.White)
            .borderRadius($r('app.float.size_10'))


          }
          .padding(12)

到这里我们就暂时实现了旧物回收的主要框架了

点赞
收藏
评论区
推荐文章
鸿蒙小林 鸿蒙小林
4小时前
《仿盒马》app开发技术分享-- 旧物回收页(业务逻辑)(41)
技术栈Appgalleryconnect开发准备上一节我们实现了旧物回收页的静态展示页,现在我们开始添加对应的模块逻辑,我们要实现的内容有,地址选择、留言、取件时间、重量选择这些模块功能分析1.地址选择要实现地址选择,我们首先要在跳转到地址列表选择页,传递
鸿蒙小林 鸿蒙小林
4小时前
《仿盒马》app开发技术分享-- 旧物回收页(提交云端)(42)
技术栈Appgalleryconnect开发准备上一节我们已经实现了地址,留言,取件时间的选择,以及静态的预估重量。现在我们需要把预估重量创建出来,从云端去获取,以应对后续的其他业务逻辑,以及回收订单的创建功能分析预估重量列表的实现首先需要创建对应的表和数
鸿蒙小林 鸿蒙小林
4小时前
《仿盒马》app开发技术分享-- 回收金收支查询(49)
技术栈Appgalleryconnect开发准备上一节我们实现了回收金页面的部分布局填充和内容展示,并且实现了当前订单收益总金额的展示,以及金额的隐藏,这一节我们来实现当前用户收支列表的展示,在这之前,我们先要修改一下我们recycleinfo表,我们把规
鸿蒙小林 鸿蒙小林
4小时前
《仿盒马》app开发技术分享-- 回收金提现准备页(50)
技术栈Appgalleryconnect开发准备上一节我们实现了回收金的收入、支出记录查询,并且在订单完成后成功创建对应的收支记录,但是我们暂时只有收入记录,并没有支出记录,这一节我们将要实现账号的回收金提现功能,从商业角度实现app应用的正向循环功能分析
鸿蒙小林 鸿蒙小林
4小时前
《仿盒马》app开发技术分享-- 回收金提现记录查询(54)
技术栈Appgalleryconnect开发准备上一节我们实现了回收金提现的功能,并且成功展示了当前账户的支出列表,但是我们的提现相关的记录并没有很好的给用户做出展示,用户只知道当前账户提现扣款,并不知道回收金的去向,这一节我们就要实现回收金记录的查询添加
鸿蒙小林 鸿蒙小林
4小时前
《仿盒马》app开发技术分享-- 回收金提现安全锁校验(55)
技术栈Appgalleryconnect开发准备上一节我们实现了回收金提现记录的展示功能,我们回收金相关的内容更加的丰富了,在之前的业务逻辑中我们添加了一个设置安全锁的功能,虽然我们成功设置了安全锁,也把对应的表信息提交到云端,但是我们并没有在提现的流程中
鸿蒙小林 鸿蒙小林
4小时前
《仿盒马》app开发技术分享-- 我的积分页(63)
技术栈Appgalleryconnect开发准备上一节我们实现了个人中心页面的业务逻辑优化,成功的在用户登陆退出状态下展示对应的组件内容,这一节我们来实现app中另外一个比较重要的模块积分模块。功能分析因为我们的回收订单是跟回收金积分是绑定的,我们在完成回
鸿蒙小林 鸿蒙小林
4小时前
《仿盒马》app开发技术分享-- 插入积分信息(65)
技术栈Appgalleryconnect开发准备上一节我们实现了积分页面的大概框架,那么现在我们开始进行数据的填充和查询,积分相关的内容现在之后当回收订单结算之后才会进行积分数据的添加,那我们想查询出对应的积分数据,还需要新增一张积分信息表功能分析现在积分
鸿蒙小林 鸿蒙小林
4小时前
《仿盒马》app开发技术分享-- 兑换订单列表框架(75)
技术栈Appgalleryconnect开发准备上一节我们针对订单兑换的业务逻辑进行了完善,成功的在兑换物品之后修改了用户信息的修改,新增了积分消费的记录。这一节我们实现订单创建之后进入的列表展示页框架。功能分析兑换商品的订单列表框架我们选择使用tabs,
鸿蒙小林 鸿蒙小林
4小时前
《仿盒马》app开发技术分享-- 逻辑优化第二弹(82)
技术栈Appgalleryconnect开发准备这一节我们继续对我们已有的业务逻辑进行优化,在积分兑换完商品后我们回到积分展示页面发现积分的数量并没有减少,而是重新进入才会发生变化,上一节我们实现商城订单的确认揽收之后继续在待收货页面实现确认揽收按钮的业务