yuantianjiao 6 年前
父节点
当前提交
ecc89c7fc7
共有 3 个文件被更改,包括 25 次插入20 次删除
  1. 20
    14
      src/components/vue-load-more/index.vue
  2. 3
    4
      src/pages/user/mainPage/libraryIndex/index.vue
  3. 2
    2
      src/store/book/index.js

+ 20
- 14
src/components/vue-load-more/index.vue 查看文件

1
 <template>
1
 <template>
2
-  <div class="yo-scroll" :class="{'down':(state===0),'up':(state==1),refresh:(state===2),touch:touching}" @touchstart="touchStart($event)" @touchmove="touchMove($event)" @touchend="touchEnd($event)">
2
+  <div
3
+    class="yo-scroll"
4
+    :class="{'down':(state===0),'up':(state==1),refresh:(state===2),touch:touching}"
5
+    @touchstart="touchStart($event)"
6
+    @touchmove="touchMove($event)"
7
+    @touchend="touchEnd($event)"
8
+  >
3
     <section class="inner" :style="{ transform: 'translate3d(0, 0px, 0)' }">
9
     <section class="inner" :style="{ transform: 'translate3d(0, 0px, 0)' }">
4
       <header class="pull-refresh">
10
       <header class="pull-refresh">
5
         <slot name="pull-refresh">
11
         <slot name="pull-refresh">
8
           <span class="refresh-tip">加载中……</span>
14
           <span class="refresh-tip">加载中……</span>
9
         </slot>
15
         </slot>
10
       </header>
16
       </header>
11
-      <slot>
12
-      </slot>
17
+      <slot></slot>
13
       <footer class="load-more">
18
       <footer class="load-more">
14
         <slot name="load-more">
19
         <slot name="load-more">
15
           <span v-show="downFlag === false">上拉加载更多</span>
20
           <span v-show="downFlag === false">上拉加载更多</span>
34
     },
39
     },
35
     enableRefresh: { // 下拉刷新
40
     enableRefresh: { // 下拉刷新
36
       type: Boolean,
41
       type: Boolean,
37
-      default: true
42
+      default: false
38
     },
43
     },
39
     dataList: { // 数据列表
44
     dataList: { // 数据列表
40
-      default: false,
45
+      default: undefined,
41
       required: false
46
       required: false
42
     },
47
     },
43
     onRefresh: { // 加载方法
48
     onRefresh: { // 加载方法
63
     }
68
     }
64
   },
69
   },
65
   created () {
70
   created () {
66
-
71
+    console.log(this.dataList)
67
   },
72
   },
68
   methods: {
73
   methods: {
69
     touchStart (e) {
74
     touchStart (e) {
76
       this.$el.querySelector('.load-more').style.display = 'block'
81
       this.$el.querySelector('.load-more').style.display = 'block'
77
     },
82
     },
78
     touchMove (e) {
83
     touchMove (e) {
79
-      if (!this.enableRefresh || this.dataList.noFlag || !this.touching) {
84
+      if (this.dataList.noFlag || !this.touching) {
80
         return
85
         return
81
       }
86
       }
82
       let diff = e.targetTouches[0].pageY - this.startY - this.startScroll
87
       let diff = e.targetTouches[0].pageY - this.startY - this.startScroll
99
       }
104
       }
100
     },
105
     },
101
     touchEnd (e) {
106
     touchEnd (e) {
102
-      if (!this.enableRefresh) {
103
-        return
104
-      }
107
+      // if (!this.enableRefresh) {
108
+      //   return
109
+      // }
105
       this.touching = false
110
       this.touching = false
106
       if (this.state === 2) { // in refreshing
111
       if (this.state === 2) { // in refreshing
107
         this.state = 2
112
         this.state = 2
128
       }
133
       }
129
       // --------end--------
134
       // --------end--------
130
 
135
 
131
-      if (!this.enableInfinite || this.infiniteLoading) {
132
-        return
133
-      }
136
+      // if (!this.enableInfinite || this.infiniteLoading) {
137
+      //   return
138
+      // }
134
 
139
 
135
       let outerHeight = this.$el.clientHeight
140
       let outerHeight = this.$el.clientHeight
136
       let innerHeight = this.$el.querySelector('.inner').clientHeight
141
       let innerHeight = this.$el.querySelector('.inner').clientHeight
170
 
175
 
171
     infiniteDone () {
176
     infiniteDone () {
172
       this.infiniteLoading = false
177
       this.infiniteLoading = false
178
+      this.downFlag = false
173
     }
179
     }
174
   }
180
   }
175
 }
181
 }
228
     }
234
     }
229
     .up-tip:before,
235
     .up-tip:before,
230
     .refresh-tip:before {
236
     .refresh-tip:before {
231
-      content: "";
237
+      content: '';
232
       display: inline-block;
238
       display: inline-block;
233
       width: 1.6rem;
239
       width: 1.6rem;
234
       height: 0.7rem;
240
       height: 0.7rem;

+ 3
- 4
src/pages/user/mainPage/libraryIndex/index.vue 查看文件

86
       cases: [],
86
       cases: [],
87
       indexSearchKey: '',
87
       indexSearchKey: '',
88
       page: 0,
88
       page: 0,
89
-      pagesize: 4,
89
+      pagesize: 8,
90
       scrollData: {
90
       scrollData: {
91
         noFlag: false // 暂无更多数据显示
91
         noFlag: false // 暂无更多数据显示
92
       },
92
       },
178
         pagesize: this.pagesize,
178
         pagesize: this.pagesize,
179
       }).then((res) => {
179
       }).then((res) => {
180
         console.log(res)
180
         console.log(res)
181
+        res.list = res.list || []
181
         if (res.list.length < res.pageSize) {
182
         if (res.list.length < res.pageSize) {
182
-          console.log(more.style.display)
183
           more.style.display='none'// 隐藏加载条
183
           more.style.display='none'// 隐藏加载条
184
+          this.scrollData.noFlag = true
184
         } else {
185
         } else {
185
-          console.log(more.style.display)
186
           more.style.display='none'// 隐藏加载条
186
           more.style.display='none'// 隐藏加载条
187
-          this.scrollData.noFlag = true
188
         }
187
         }
189
       })
188
       })
190
       this.getMineBook({
189
       this.getMineBook({

+ 2
- 2
src/store/book/index.js 查看文件

16
       state.types = payload
16
       state.types = payload
17
     },
17
     },
18
     updateRecommendBooks (state, payload) {
18
     updateRecommendBooks (state, payload) {
19
-      state.recommends.list = state.recommends.list.concat(payload.list)
19
+      payload.list ? state.recommends.list = state.recommends.list.concat(payload.list) : null
20
     },
20
     },
21
     updateBookList (state, payload) {
21
     updateBookList (state, payload) {
22
       state.books = payload
22
       state.books = payload
105
         }).catch((err) => {
105
         }).catch((err) => {
106
           reject(err)
106
           reject(err)
107
         })
107
         })
108
-      }) 
108
+      })
109
     }
109
     }
110
   }
110
   }
111
 }
111
 }