• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

项目实战-点餐小程序-16 首页(热门推荐)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、实现思路

  1. 编写热门推荐的页面 home.wxml
  2. 美化热门推荐的显示 home.wxss
  3. 新建云函数getHotFood() 获取热门推荐菜品列表 home.js 
  4. 调用云函数获取热门推荐菜品 home.js 
  5. 将获取到的热门推荐菜品数据渲染到页面上 home.js + home.wxml
  6. 菜品名称字数过多的显示处理 home.wxss

 

二、代码实现

1.home.wxml

 1 <!-- 热门推荐 -->
 2 <view class="hotcommentsRoot">
 3 <!-- 热门推荐标题 -->
 4 <view class="hotcommentsTitle">
 5   <text class="title">热门推荐</text>
 6   <text class="more" bindtap="toClassifiedFood">更多></text>
 7 </view>
 8 <!-- 热门推荐菜品列表 -->
 9 <view class="hoeFoodRoot">
10   <view class="hotFoodItem" wx:for="{{hotFoodList}}" bindtap="toClassifiedFood">
11     <image src="{{item.icon}}"></image>
12     <view class="hotFoodText">
13       <view class="itemName">{{item.name}}</view>
14       <view class="itemSell">销量:{{item.sell}}</view>
15       <view class="itemPrice">{{item.price}}</view>
16     </view>
17   </view>
18 </view>
19 </view>

2.home.wxss

 1 /*热门推荐*/
 2 .hotcommentsTitle{
 3   color: #FF9966;
 4   margin: 20rpx;
 5   display: flex;
 6   justify-content: space-between;
 7   align-items: center;
 8 }
 9 .hotcommentsTitle .title{
10   font-size: 36rpx;
11 }
12 .hotcommentsTitle .more{
13   font-size: 30rpx;
14 }
15 /*热门推荐列表数据*/
16 .hotFoodItem{
17   display: flex;
18   margin: 20rpx;
19   border-bottom: 1rpx solid rgb(245, 245, 245);
20 }
21 .hotFoodItem image{
22   width: 120rpx;
23   height: 120rpx;
24   margin-right: 20rpx;
25   border-radius: 10rpx;
26   /*防止标题过长把图片挤走*/
27   min-width: 120rpx;
28 }
29 
30 .hotFoodItem .itemName{
31   font-size: 34rpx;
32   /*设置菜品名称超过一行时显示省略号*/
33   width: 500rpx;
34   white-space: nowrap;
35   text-overflow: ellipsis;
36   overflow: hidden;
37 }
38 .hotFoodItem .itemSell{
39   font-size: 30rpx;
40   color: gray;
41 }
42 
43 .hotFoodItem .itemPrice{
44   font-size: 32rpx;
45   color: #FF9966;
46 }
47 .hotFoodItem .itemPrice::before{
48   /*人民币符号*/
49   content: "¥";
50   color:#FF9966;
51 }

3.home.js

使用两种方法获取热门推荐菜品列表,推荐使用方法2(调用云函数)。

方法1:小程序端直接访问数据库
  //定义db
  const db = wx.cloud.database()
Page({
    data:{
    //自定义数组,存放热门推荐菜品
    hotFoodList:[]
    },

    onLoad: function (options) {
    //获取热门推荐列表(调用自定义方法)
    this.getHotCommentsList();
      },
    
    //获取热门推荐菜品列表(自定义)
    getHotCommentsList(){
    db.collection("food") 
    .where({
      status:"上架"   //查询条件:状态为上架
    })
    .orderBy("sell","desc") //根据销量降序
    .limit(5) //取前5个
    .get()
    .then(res=>{
      console.log("获取热门推荐成功",res);
    }).catch(err=>{
      console.log("获取热门推荐失败",err);
    })
}
})

 

方法2:调用云函数

第一步:创建云函数,命名为getHotFood

 1 // 云函数入口文件
 2 const cloud = require(\'wx-server-sdk\')
 3 
 4 cloud.init({
 5   env: cloud.DYNAMIC_CURRENT_ENV
 6 })
 7 const db = cloud.database()
 8 // 云函数入口函数
 9 exports.main = async (event, context) => {
10   return await db.collection("food") 
11   .where({
12     status:"上架"   //查询条件:状态为上架
13   })
14   .orderBy("sell","desc") //根据销量降序
15   .limit(5) //取前5个
16   .get()
17 }

第二步:调用云函数

 1 //定义db
 2   const db = wx.cloud.database()
 3 Page({
 4     data:{
 5     //自定义数组,存放热门推荐菜品
 6     hotFoodList:[]
 7     },
 8 
 9     onLoad: function (options) {
10     //获取热门推荐列表(调用自定义方法)
11     this.getHotCommentsList();
12       },
13     
14     //获取热门推荐菜品列表(自定义)
15     getHotCommentsList(){
16     //方法2:调用云函数
17         wx.cloud.callFunction({
18       name:"getHotFood"
19     }).then(res=>{
20         console.log("调用云函数获取热门推荐成功",res);
21         this.setData({
22           hotFoodList:res.result.data
23         })
24       }).catch(err=>{
25         console.log("调用云函数获取热门推荐失败",err);
26       })
27 }
28 })

 

三、效果展示

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序--点餐小程序随笔发布时间:2022-07-18
下一篇:
20171128-微信小程序之点餐发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap