<scroll-view class="page" bindscrolltolower="lower" scroll-y="true" style="height:100%" scroll-into-view="{{toView}}" upper-threshold="10" > <view class="section swiper-container"> <swiper indicator-dots="{{true}}" autoplay="{{true}}" interval="{{4000}}" duration="{{300}}"> <block wx:for="{{banners}}" wx:for-item="banner"> <swiper-item data-activity-id="{{banner.link_id}}" data-activity-type="{{banner.type}}" data-activity-url="{{banner.link_url}}" bindtap="navigateToActivity"> <image mode="aspectFill" src="{{banner.image_src}}" ></image> </swiper-item> </block> </swiper> </view> <view class="section activity-list"> <view class="activity" wx:for="{{activities}}" wx:for-item="activity" data-activity-id="{{activity.link_id}}" data-activity-type="{{activity.type}}" data-activity-url="{{activity.link_url}}" bindtap="navigateToActivity"> <image mode="aspectFill" src="{{activity.image_src}}"></image> <label>{{activity.title}}</label> </view> </view> <view class="section feature-list" > <view class="feature-header"> <icon><image class="header-img" src="./images/feature.png"></image></icon> <text>{{shop_info.index_recommend_title}}</text> </view> <block wx:for="{{features}}" wx:for-item="feature" > <view wx:if="{{feature.is_sold_out}}" class="feature clearfix" data-goods-id="{{feature.goods_id}}"> <image mode="aspectFill" src="{{feature.image_url}}"></image> <view class="sold-out-overlay"> <text class="sold-out-tag">已售罄</text> </view> <view class="title-wrapper"> <label class="title">{{feature.goods_name}}</label> </view> <label class="sold-out-price">¥ {{feature.goods_price}}</label> </view> <view wx:else class="feature clearfix" data-goods-id="{{feature.goods_id}}" bindtap="navigateToProduct"> <image mode="aspectFill" src="{{feature.image_url}}"></image> <view class="title-wrapper"> <label class="title">{{feature.goods_name}}</label> </view> <label class="price">¥ {{feature.goods_price}}</label> </view> </block> </view> </scroll-view> |
.page{ background-color: #f8f8f8 } .swiper-container { margin-top: 0; padding: 0; } .swiper-container swiper { height: 315.9rpx; } swiper-item image { width: 100%; height: 100%; } .activity-list { display: flex; flex-direction: row; background-color: white; padding: 0; } .activity { width: 25%; text-align: center; } .activity image { width: 117rpx; height: 117rpx; margin: 0 auto; margin-top: 28.08rpx; border-radius: 50%; } .activity label { display: block; line-height: 65.52rpx; font-size: 28.08rpx; } .feature-header { border-bottom: 1px solid #f8f8f8; height: 85rpx; } .feature-header text { margin: 0; font-weight: normal; font-size: .9rem; line-height: 1.6rem; display: inline; position: relative; top: -29rpx; } .feature { margin: 0 -16.38rpx; padding: 16.38rpx; border-bottom: 1px solid #f8f8f8; background-size: cover; position: relative; } .feature image { width: 100%; height: 315.9rpx; } .feature .title-wrapper { font-size: 28.08rpx; height: 70.2rpx; line-height: 70.2rpx; overflow: hidden; } .feature .price { display: block; color: #fc3151; float: right; font-size: 1rem; } .sold-out-tag{ display: block; width: 140rpx; height: 140rpx; border-radius: 50%; color: white; line-height: 140rpx; font-size: 35rpx; text-align: center; margin: 0 auto; margin-top: 100rpx; background-color: rgba(0, 0, 0, 0.5); } .sold-out-overlay { display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(255, 255, 255, 0.5); } .sold-out-price{ display: block; color: darkgray; float: right; } .clearfix:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } .header-img { width: 55rpx; height: 40rpx; margin-right: 20rpx; padding: 24rpx 0; } |
import Promise from '../../lib/promiseEs6Fix'; import request from '../../lib/request'; import resource from '../../lib/resource'; import serviceData from '../../data/config'; function homeSay(name) { console.log(`Hello ${name} !`); } module.exports.hSay = homeSay; var app = getApp(); Page({ data: { shop_id: app.globalData.shop_id, shop_info:[], banners: [], activities: [], features: [], currentPage: 1, }, navigateToProduct(event) { var productId = event.currentTarget.dataset.goodsId; wx.navigateTo({ url: '../products/products?id=' + productId }); }, navigateToActivity(event) { var activityType = event.currentTarget.dataset.activityType; var activityId = event.currentTarget.dataset.activityId; var activityTitle = event.currentTarget.dataset.activityTitle; var activityUrl; switch (activityType) { case 1: activityUrl = "../category-product/category-product?id=" + activityId + '&title=' + activityTitle; break; case 2: activityUrl = "../products/products?id=" + activityId; break; case 3: activityUrl = event.currentTarget.dataset.activityUrl; break; default: break; } console.log(activityUrl); wx.navigateTo({ url: activityUrl }); }, onLoad() { this.setData({ shop_info: app.globalData.shopInfo }); this.setData({banners: serviceData.bannerData, activities:serviceData.activityData, features:serviceData.featureData}); //发起多个请求 // const requests = ['/banners?shop_id=2' + this.data.shop_id, // '/activities', // '/features?shop_id=' + this.data.shop_id + '&per_page=5' // ] // .map(path => ( // request({ path }) // .then(response => response.data) // .catch(() => []) // )); // Promise.all(requests).then(([banners, activities, features]) => { // features.forEach(item => { // item.goods_price = item.goods_price.toFixed(2); // }) // this.setData({ banners, activities, features }); // console.log(23); // },([banners, activities, features]) => { // console.log([banners, activities, features]); // },([banners, activities, features]) => { // console.log([banners, activities, features]); // }); }, lower: function() { console.log('lower more features data'); wx.showNavigationBarLoading(); var that = this; setTimeout(() => { wx.hideNavigationBarLoading(); var nextPageData = new Object(); nextPageData.per_page = 5; nextPageData.page = this.data.currentPage + 1; nextPageData.shop_id = this.data.shop_id; var features = serviceData.featureData; if (features.length != 0) { this.setData({ currentPage: ++this.data.currentPage }); this.setData({ features: this.data.features.concat(features) }); //concat 拼接在一起 } // request({ path: '/features', data: nextPageData }).then(({ data: features }) => { // if (features.length != 0) { // this.setData({ currentPage: ++this.data.currentPage }); // this.setData({ features: this.data.features.concat(features) }); //concat 拼接在一起 // } // }); }, 1000); } }); |
模板简介:该模板名称为【微信小程序生鲜瓜果类商城首页样式模板制作设计下载】,大小是,文档格式为.,推荐使用打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【小程序教程】栏目查找您需要的精美模板。