技术栈
Appgallery connect
开发准备
上一节我们实现了优惠券的领取功能,并且在云端已经成功查询出优惠券信息,那么我们需要来实现一个优惠券展示的页面来向用户展示当前账号下的优惠券信息,辅助用户更好的去购买需要的商品,因为优惠券会有多种状态,在展示时也要注意不同状态的区分如何处理
功能分析
要实现优惠券的展示我们首先要获取当前登录的用户,因为我们在领取优惠券的时候插入了领券用户的userid,所以在查询的时候也要根据userid进行查询,在进入页面时就要查询出云端对应的优惠券内容展示到list列表中。
代码实现
首先我们需要在新建的优惠券展示页面新增topbar
CommonTopBar({ title: "优惠券", alpha: 0, titleAlignment: TextAlign.Center ,backButton:true})
我们获取当前已存储的用户信息
@State user: User|null=null
const value = await StorageUtils.getAll('user');
if (value != "") {
this.user=JSON.parse(value)
}
根据当前用户id去查询对应的优惠券列表
@State couponList:CouponMall[]=[]
let databaseZone = cloudDatabase.zone('default');
let condition = new cloudDatabase.DatabaseQuery(coupon_mall);
condition.equalTo("user_id",this.user?.user_id)
let listData = await databaseZone.query(condition);
let json = JSON.stringify(listData)
let data:CouponMall[]= JSON.parse(json)
this.couponList=data
查询到数据之后,添加list组件
List({space:10}){
ForEach(this.couponList,(item:CouponMall,index:number)=>{
ListItem(){
}
})
}
.padding(10)
然后我们使用 @Builder 来实现条目的布局
@Builder
Item(item:CouponMall){
Column({space:10}){
Row({space:10}){
Column(){
Text("¥"+item.price)
.fontSize(30)
.fontColor(Color.Red)
.fontWeight(FontWeight.Bold)
Text("满"+item.limit_amount+"元可用")
.fontColor(Color.Red)
.fontWeight(FontWeight.Bold)
.fontSize(12)
}
Column({space:10}){
Text(item.type_str)
.fontColor(Color.Black)
.fontWeight(FontWeight.Bold)
.fontSize(16)
Text(item.txt)
.fontColor(Color.Grey)
.fontSize(12)
}
Blank()
Text("待使用")
.width(80)
.height(80)
.borderRadius(40)
.fontSize(14)
.textAlign(TextAlign.Center)
.fontColor(Color.White)
.backgroundColor(Color.Red)
}
.width('100%')
.justifyContent(FlexAlign.SpaceBetween)
Divider().width('100%').height(0.8)
.color("#e6e6e6")
Text("有效期至"+item.start_time+"至"+item.end_time)
.fontSize(12)
.fontColor(Color.Grey)
}.padding(10)
.backgroundColor(Color.White)
.borderRadius(10)
}
然后把条目布局引用到listitem中
List({space:10}){
ForEach(this.couponList,(item:CouponMall,index:number)=>{
ListItem(){
this.Item(item)
}
})
}
.padding(10)
执行代码查看当前优惠券列表的展示效果
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦