第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

《仿盒馬》app開發(fā)技術(shù)分享-- 首頁商品流(7)

標簽:
鴻蒙 HarmonyOS

技术栈

Appgallery connect

开发准备

上一节我们实现了首页banner模块的功能,现在我们的首页还需要添加商品列表,作为一个购物类应用,商品列表是非常重要的一个模块,所以我们尽量把它设计的足够完善,参数能更好的支持我们后期复杂的逻辑,它需要有图片的展示,适配的优惠券列表,限购,立减,划线价等,但他实际的参数还要更多,因为我们的列表是比较紧凑的,更多的数据需要从点击后的商品详情页展示出来。

代码实现
创建商品表
{
“objectTypeName”: “home_product_list”,
“fields”: [
{“fieldName”: “id”, “fieldType”: “Integer”, “notNull”: true, “belongPrimaryKey”: true},
{“fieldName”: “goods_list_id”, “fieldType”: “Integer”, “notNull”: true, “defaultValue”: 0},
{“fieldName”: “url”, “fieldType”: “String”},
{“fieldName”: “name”, “fieldType”: “Text”},
{“fieldName”: “price”, “fieldType”: “Double”},
{“fieldName”: “original_price”, “fieldType”: “Double”},
{“fieldName”: “amount”, “fieldType”: “Integer”},
{“fieldName”: “text_message”, “fieldType”: “String”},
{“fieldName”: “parameter”, “fieldType”: “String”},
{“fieldName”: “delivery_time”, “fieldType”: “String”},
{“fieldName”: “endTime”, “fieldType”: “String”},
{“fieldName”: “sales_volume”, “fieldType”: “Integer”},
{“fieldName”: “space_id”, “fieldType”: “Integer”},
{“fieldName”: “max_loop_amount”, “fieldType”: “Integer”},
{“fieldName”: “promotion_spread_price”, “fieldType”: “Double”},
{“fieldName”: “coupon_id”, “fieldType”: “Integer”}
],
“indexes”: [
{“indexName”: “field1IndexId”, “indexList”: [{“fieldName”:“id”,“sortType”:“ASC”}]}
],
“permissions”: [
{“role”: “World”, “rights”: [“Read”]},
{“role”: “Authenticated”, “rights”: [“Read”, “Upsert”]},
{“role”: “Creator”, “rights”: [“Read”, “Upsert”, “Delete”]},
{“role”: “Administrator”, “rights”: [“Read”, “Upsert”, “Delete”]}
]
}

填充数据

{
“cloudDBZoneName”: “default”,
“objectTypeName”: “home_product_list”,
“objects”: [
{
“id”: 10,
“goods_list_id”: 1,
“url”: “在线图片链接”,
“name”: “红颜草莓”,
“price”: 10.5,
“original_price”: 18.5,
“amount”: 10,
“text_message”: “特价”,
“parameter”: “冷藏”,
“delivery_time”: “付款后24小时内发货”,
“endTime”: “直降 | 结束时间2025年5月18日 10:00”,
“sales_volume”: 9812,
“space_id”: 10,
“max_loop_amount”: 10,
“promotion_spread_price”: 5,
“coupon_id”: 10
},
{
“id”: 20,
“goods_list_id”: 1,
“url”: “在线图片链接”,
“name”: “麒麟瓜”,
“price”: 2.8,
“original_price”: 5.9,
“amount”: 1,
“text_message”: “当季新品”,
“parameter”: “冷藏”,
“delivery_time”: “付款后24小时内发货”,
“endTime”: “直降 | 结束时间2025年5月18日 10:00”,
“sales_volume”: 9812,
“space_id”: 11,
“max_loop_amount”: 10,
“promotion_spread_price”: 0,
“coupon_id”: 10
}
]
}

我们接下来进行数据的查询
@State homeProduct:HomeProductList[]=[]//商品流数据

  let databaseZone = cloudDatabase.zone('default');
  let home_product=new cloudDatabase.DatabaseQuery(home_product_list);
  let list7 = await databaseZone.query(home_product);
  let json7 = JSON.stringify(list7)
  let data7:HomeProductList[]= JSON.parse(json7)
  this.homeProduct=data7

数据查出完成后,完善商品流的页面

import { HomeProductList } from “…/entity/home_product_list”

@Component
@Preview
export struct WaterFlowGoods {
@Link goodsList: Array

@State columns: number = 2

build() {
WaterFlow() {
ForEach(this.goodsList, (item:HomeProductList, index) => {
FlowItem() {
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 })


          Text("最高立减"+item.promotion_spread_price)
            .fontSize(12)
            .fontColor('#ffffff')
            .visibility(item.promotion_spread_price>0?Visibility.Visible:Visibility.None)
            .margin({ bottom: 8 })
            .padding({left:5,right:5,top:2,bottom:2})
            .linearGradient({
              angle:90,
              colors: [[0xff0000, 0], [0xff6666, 0.2], [0xff6666, 1]]
            })

          Row(){
            Text("限购")
              .width(40)
              .fontSize(12)
              .borderRadius(20)
              .backgroundColor("#FB424C")
              .padding(3)
              .textAlign(TextAlign.Center)
              Text("每人限购"+item.max_loop_amount+"件")
                .margin({left:5})
                .fontSize(12)
                .fontColor("#FB424C")
          }
          .borderRadius(20)
          .padding({top:2,bottom:2,right:10})
          .backgroundColor("#FEE3E3")
          .visibility(item.amount>0?Visibility.Visible:Visibility.None)

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

              Span(String(item.price))
                .fontSize(16)
                .fontColor(Color.Red)
            }
            Text(String(item.original_price))
              .fontSize(12)
              .fontColor('#999')
              .decoration({
                type: TextDecorationType.LineThrough,
                color: Color.Gray
              })
              .margin({left:10})


             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(() => {
      })
    }
    .margin({ bottom: 12 })
  })
}
.padding(10)
.columnsTemplate('1fr 1fr')
.columnsGap(12)
.onAreaChange((oldVal, newVal) => {
  this.columns = newVal.width > 600 ? 2 : 1
})

}
}
然后在首页调用,传入参数
WaterFlowGoods({goodsList:this.homeProduct})
到这里我们就实现了首页商品列表的内容

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消