Ver código fonte

fix:店铺列表的下拉刷新

sunshine1130 4 anos atrás
pai
commit
f03a940771

+ 6 - 0
app.wxss

@@ -5,6 +5,12 @@ Page{
 
 }
 
+.comments-end {
+  text-align: center;
+  padding: 10rpx;
+  background-color: #F7F7F7;
+}
+
 .c-e40360{
   color: #e40360;
 }

+ 7 - 0
componets/shop/index.js

@@ -10,6 +10,12 @@ Component({
     methods: {
         getLocation: function(res){
             this.triggerEvent('getLocation', { });
+        },
+        gotoShopInfo:function (e){
+            let id = e.currentTarget.dataset.id;
+            wx.navigateTo({
+              url: '../../pages/shopinfo/shopinfo?id='+id,
+            })
         }
     },
     created: function(){
@@ -27,4 +33,5 @@ Component({
     detached: function(){
 
     },
+   
 });

+ 3 - 3
componets/shop/index.wxml

@@ -1,5 +1,5 @@
-    <navigator url="../../pages/shopinfo/shopinfo?id={{item.id}}" wx:for="{{shops}}" wx:key="id" hover-class="none">
-        <view class="shop-info" >
+    <block  wx:for="{{shops}}" wx:key="id" >
+        <view class="shop-info" bindtap = "gotoShopInfo" data-id="{{item.id}}">
             <view class="shopimg">
                 <image src="{{item.logo}}" mode="aspectFill" lazy-load="false" class="img">
 
@@ -38,4 +38,4 @@
 
         </view>
       
-    </navigator>
+    </block>

+ 0 - 5
pages/comments/comments.wxss

@@ -1,6 +1 @@
 /* pages/comments/comments.wxss */
-.comments-end {
-    text-align: center;
-    padding: 10rpx;
-    background-color: #F7F7F7;
-}

+ 41 - 11
pages/shop/shop.js

@@ -9,26 +9,29 @@ Page({
    * 页面的初始数据
    */
   data: {
-    shopList: []
+    shopList: [],
+    pageNo: 1,
+    pageSum: 0,
+    loadingEnd: false
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
   onLoad: async function (options) {
-    
-    
+
+
     wx.getSetting({
       success: async (res) => {
         let authSetting = res.authSetting
         if (authSetting['scope.userLocation']) {
           console.log('已授权地理位置')
           let lon = wx.getStorageSync('lon')
-          let lat =   wx.getStorageSync('lat')
-          let rs = await storeApi.getStoreList(1, 5,`&lon=${lon}&lat=${lat}`);
+          let lat = wx.getStorageSync('lat')
+          let rs = await storeApi.getStoreList(1, 10, `&lon=${lon}&lat=${lat}`);
           this.setData({
             shopList: rs.list,
-            
+            pageSum: rs.pageCount
           })
           // 已授权
         } else {
@@ -48,10 +51,11 @@ Page({
                 locationFlag: true,
                 storeInfo: rs.info
               })
-              let shopList = await storeApi.getStoreList(1, 5,`&lon=${longitude}&lat=${latitude}`);
+              let shopList = await storeApi.getStoreList(1, 10, `&lon=${longitude}&lat=${latitude}`);
               this.setData({
-                shopList: shopList.shopList,
-                
+                shopList: shopList.list,
+                pageSum: shopList.pageCount
+
               })
             }
           })
@@ -59,7 +63,22 @@ Page({
       }
     })
   },
- 
+  getShopList: async function () {
+    let longitude = wx.getStorageSync('lon')
+    let latitude = wx.getStorageSync('lat')
+    let pageNo = this.data.pageNo;
+    let shopList = this.data.shopList;
+    let sList = await storeApi.getStoreList(pageNo, 10, `&lon=${longitude}&lat=${latitude}`);
+    let list = sList.list;
+    list.forEach((item)=>{
+      shopList.push(item)
+    })
+    this.setData({
+      shopList,
+      pageSum: shopList.pageCount
+    })
+  },
+
   /**
    * 生命周期函数--监听页面初次渲染完成
    */
@@ -99,7 +118,18 @@ Page({
    * 页面上拉触底事件的处理函数
    */
   onReachBottom: function () {
-
+    let pageNo = this.data.pageNo;
+    pageNo++;
+    this.setData({
+      pageNo
+    })
+    if (this.data.pageNo <= this.data.pageSum) {
+      this.getShopList()
+      return
+    }
+    this.setData({
+      loadingEnd: true
+    })
   },
 
   /**

+ 4 - 0
pages/shop/shop.wxml

@@ -1,4 +1,8 @@
 <!--pages/shop/shop.wxml-->
 <view class="container">
     <shop shops="{{shopList}}" ></shop>
+
+    <view class="comments-end c-707070 f14" wx:if="{{loadingEnd}}">
+         已经到底啦
+      </view>
 </view>

+ 1 - 5
pages/shopinfo/shopinfo.scss

@@ -116,11 +116,7 @@
 
     .comments {
         margin-bottom: 10rpx;
-        >.comments-end {
-            text-align: center;
-            padding: 10rpx;
-            background-color: #F7F7F7;
-        }
+        
     }
 }
 

+ 0 - 6
pages/shopinfo/shopinfo.wxss

@@ -108,12 +108,6 @@
   margin-bottom: 10rpx;
 }
 
-.container .comments > .comments-end {
-  text-align: center;
-  padding: 10rpx;
-  background-color: #F7F7F7;
-}
-
 .padding40 {
   padding-left: 40rpx;
 }