微信小程序——商品列表

微信小程序——商品列表_第1张图片

主页面


  

引入组件

{
  "usingComponents": {
    "googsList":"../components/goodsList/goodList"
  }
}
Page({
  data: {
    goodsClassList: [{
      categoryId: "0",
      categoryName: "全部",
      stock: 0
    }, {
      categoryId: "391",
      categoryName: "床"
    }, {
      categoryId: "392",
      categoryName: "沙发"
    }, {
      categoryId: "393",
      categoryName: "衣柜"
    }, {
      categoryId: "394",
      categoryName: "餐桌"
    }, {
      categoryId: "395",
      categoryName: "办公椅"
    }, {
      categoryId: "391",
      categoryName: "床"
    }, {
      categoryId: "392",
      categoryName: "沙发"
    }, {
      categoryId: "393",
      categoryName: "衣柜"
    }, {
      categoryId: "394",
      categoryName: "餐桌"
    }, {
      categoryId: "395",
      categoryName: "办公椅"
    }, {
      categoryId: "391",
      categoryName: "床"
    }, {
      categoryId: "392",
      categoryName: "沙发"
    }, {
      categoryId: "393",
      categoryName: "衣柜"
    }, {
      categoryId: "394",
      categoryName: "餐桌"
    }, {
      categoryId: "395",
      categoryName: "办公椅"
    }, {
      categoryId: "391",
      categoryName: "床"
    }, {
      categoryId: "392",
      categoryName: "沙发"
    }, {
      categoryId: "393",
      categoryName: "衣柜"
    }, {
      categoryId: "394",
      categoryName: "餐桌"
    }, {
      categoryId: "395",
      categoryName: "办公椅"
    }],
    goodsList: [{
      goodsId: 4179,
      goodsMainImg: "https://haiwaiu.oss-cn-hangzhou.aliyuncs.com/app/4c6f864f-912a-4601-8fc8-8021b8247ec1.jpg",
      goodsName: "卧室原木大床",
      goodsPrice: 2456,
      status: 1,
      stock: 0,
    }, {
      goodsId: 4180,
      goodsMainImg: "https://haiwaiu.oss-cn-hangzhou.aliyuncs.com/app/79212939-e8ad-40bb-abdf-89706c1ef9a8.jpg",
      goodsName: "实木沙发 黑胡桃木",
      goodsPrice: 1800,
      status: 1,
      stock: 28,
    }, {
      goodsId: 4190,
      goodsMainImg: "https://haiwaiu.oss-cn-hangzhou.aliyuncs.com/app/e0e394e0-3c30-4611-95f9-f244044dae68.jpg",
      goodsName: "实木餐桌 大尺寸餐桌 橡木 樱桃木 白蜡木",
      goodsPrice: 3888,
      status: 1,
      stock: 28,
    }, {
      goodsId: 4191,
      goodsMainImg: "https://haiwaiu.oss-cn-hangzhou.aliyuncs.com/app/36c39361-49d6-46e9-9926-2663377ae434.jpg",
      goodsName: "实木餐椅 软包餐椅 梳妆椅 书桌椅",
      goodsPrice: 3888,
      status: 1,
      stock: 99
    }, {
      goodsId: 4205,
      goodsMainImg: "https://haiwaiu.oss-cn-hangzhou.aliyuncs.com/app/14ef0704-f407-4db4-9533-5458bde955a5.png",
      goodsName: "实木沙发 橡木 全拆洗设计 软包多色可选",
      goodsPrice: 3888,
      status: 1,
      stock: 99
    }, {
      goodsId: 4207,
      goodsMainImg: "https://haiwaiu.oss-cn-hangzhou.aliyuncs.com/app/25369361-0a57-4d8d-8a73-59807a3daa0e.png",
      goodsName: "实木沙发 橡木 布艺沙发 科技布沙发 多色可选",
      goodsPrice: 3888,
      status: 1,
      stock: 92
    }, {
      goodsId: 4208,
      goodsMainImg: "https://haiwaiu.oss-cn-hangzhou.aliyuncs.com/app/08f33023-ec55-4b49-8d5a-297f09698e23.png",
      goodsName: "单人沙发椅 藤编休闲椅",
      goodsPrice: 3888,
      status: 1,
      stock: 99
    }, {
      goodsId: 4222,
      goodsMainImg: "https://haiwaiu.oss-cn-hangzhou.aliyuncs.com/app/c7198316-1dd6-4377-8f8c-ac5d4f7fe166.png",
      goodsName: " 边柜 橡木 小户型 藤编储物柜",
      goodsPrice: 3888,
      status: 1,
      stock: 99,
    }, {
      goodsId: 4223,
      goodsMainImg: "https://haiwaiu.oss-cn-hangzhou.aliyuncs.com/app/c6f45a76-cca8-4560-ae39-56b0a64dbcbc.png",
      goodsName: "实木沙发 橡木 藤编沙发 可拆洗",
      goodsPrice: 3888,
      status: 1,
      stock: 99
    }, {
      goodsId: 4226,
      goodsMainImg: "https://haiwaiu.oss-cn-hangzhou.aliyuncs.com/app/61ce745d-9e9b-4143-a1ae-9f5a2455e31f.png",
      goodsName: "单人沙发椅 侘寂风 藤编休闲椅",
      goodsPrice: 3888,
      status: 1,
      stock: 99
    }],
    categoryId: '', //栏目的id
    goodsId: '', //商品的id
    page: 1,
    limit: 10,
    noMore: false
  },
  //获取左边项目栏的id
  leftClick(e) {
    // console.log(e)
    // 调用接口获取商品列表
    this.setData({
      categoryId: e.detail.categoryId,
      goodsList: []
    })
  },
  // 获取商品列表
  getGoodsList() {
    // 调用接口返回的数据 
    let list = []
    if (list.length < this.data.limit) {
      this.data.noMore = true
    } else {
      this.data.noMore = false
    }
  },
  toDetails(e) {
    // console.log(e)
    // 调用接口获取商品的信息
    this.setData({
      goodsId: e.detail.goodsId,
    })
  },
  //分页查询
  scrolltolowerGooodsList() {
    // console.log("++++++++++")
    if (this.data.noMore) return
    this.data.page += 1
    this.getGoodsList()
  },

  // 获取商品栏目
  scrolltolowerGoodsClass() {
    // console.log("-----------")
  },
})

组件部分代码


    
    
        
            {{item.categoryName}}
        
    
    
    
        
            
            
                
                    {{item.goodsName}}
                
                
                    {{item.goodsPrice}}
                
                    库存 {{item.stock}}件
                
            
        
    
.goods-container {
    /*底部安全区域 */
    padding-bottom: env(safe-area-inset-bottom);
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: row;
    box-sizing: border-box;
    overflow: hidden;
  }
  
  /* 商品栏目样式 */
  .flex .goods-class-list {
    font-size: 32rpx;
    font-weight: 400;
    color: #666666;
    box-sizing: border-box;
  }
  
  .goods-class-list .goods-class-item {
    width: 100%;
    height: 100rpx;
    padding-left: 30rpx;
    line-height: 100rpx;
    border-bottom: 2rpx solid #EEEEEE;
  }
  
  .goods-class-list .goods-class-item.selected {
		background-color: #EFEFEF;
	}
  
  /* 商品列表样式 */
  .goods-list {
    flex: 1;
    padding: 20rpx 20rpx 0;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    flex-wrap: wrap;
    background-color: #EEEEEE;
    box-sizing: border-box;
  }
  
  .goods-list .goods-list-item {
    margin-bottom: 20rpx;
    padding: 12rpx;
    width: 250rpx;
    /* height: 350rpx; */
    background: #FFFFFF;
    border-radius: 8rpx 8rpx 8rpx 8rpx;
    overflow: hidden;
    /* 不被截断 */
    break-inside: avoid;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
  }
  
  .goods-list .goods-list-item .goods-img {
    width: 226rpx;
    height: 178rpx;
  }
  
  /* 缺货的样式 */
  .goods-list-item .goods-img.scarce-goods {
    position: relative;
  } 
  .goods-list-item .goods-img.scarce-goods::before {
    display: block;
    content: "缺货";
    width: 98rpx;
    height: 30rpx;
    background: #333333;
    border-radius: 30rpx 0rpx 0rpx 0rpx;
  
    font-size: 20rpx;
    font-weight: 300;
    color: #FFFFFF;
    text-align: center;
    line-height: 30rpx;
  
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 10;
  }
  
  
  .goods-list .goods-list-item .goods-info {
    padding: 12rpx 0rpx 0rpx;
    box-sizing: border-box;
  }
  
  .goods-list-item .goods-info .goods-title {
    font-size: 28rpx;
    font-weight: 400;
    color: #666666;
    display: -webkit-box !important;
    overflow: hidden;
    word-break: break-all;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    box-sizing: border-box;
  }
  
  .goods-list-item .goods-info .goods-price {
    margin-top: 4rpx;
    height: 28rpx;
    font-size: 20rpx;
    font-weight: 400;
    color: #FF3C00;
    line-height: 28rpx;
    display: flex;
    align-content: center;
    box-sizing: border-box;
  }
  
  .goods-list-item .goods-info .goods-price .text {
    margin-right: 8rpx;
    font-size: 28rpx;
    font-weight: bold;
  }
  
  .goods-list-item .goods-info .goods-stock {
    margin-top: 8rpx;
    font-size: 20rpx;
    font-weight: 400;
    color: #999999;
  }
  
  
  /* 去除滚动条样式 */
  ::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
    color: transparent;
  }
  
Component({
    /**
     * 组件的属性列表
     */
    properties: {
        goodsClassList: {
            type: Array,
            value: []
        },
        goodsList: {
            type: Array,
            value: []
        }
    },

    /**
     * 组件的初始数据
     */
    data: {
        activeIndex:0
    },

    /**
     * 组件的方法列表
     */
    methods: {
        leftClick(e) {
            let index=e.currentTarget.dataset.index
            let item=e.currentTarget.dataset.item
            this.setData({
                activeIndex : index
            })
            this.triggerEvent('leftClick', item)
        },
        toDetails(e) {
            let item=e.currentTarget.dataset.item
            this.triggerEvent('toDetails', item)
        },
        scrolltolowerGoodsClass(){
            this.triggerEvent('scrolltolowerGoodsClass')
        },
        scrolltolowerGooodsList(){
            this.triggerEvent('scrolltolowerGooodsList')
        }
    }
})

你可能感兴趣的:(微信小程序开发,前端)