1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
  | <template> 
 |      <!-- #ifdef APP-NVUE --> 
 |      <refresh :display="display" @refresh="onrefresh" @pullingdown="onpullingdown"> 
 |          <slot /> 
 |      </refresh> 
 |      <!-- #endif --> 
 |      <!-- #ifndef APP-NVUE --> 
 |      <view ref="uni-refresh" class="uni-refresh" v-show="isShow"> 
 |          <slot /> 
 |      </view> 
 |      <!-- #endif --> 
 |  </template> 
 |    
 |  <script> 
 |      export default { 
 |          name: 'UniRefresh', 
 |          props: { 
 |              display: { 
 |                  type: [String], 
 |                  default: "hide" 
 |              } 
 |          }, 
 |          data() { 
 |              return { 
 |                  pulling: false 
 |              } 
 |          }, 
 |          computed: { 
 |              isShow() { 
 |                  if (this.display === "show" || this.pulling === true) { 
 |                      return true; 
 |                  } 
 |                  return false; 
 |              } 
 |          }, 
 |          created() {}, 
 |          methods: { 
 |              onchange(value) { 
 |                  this.pulling = value; 
 |              }, 
 |              onrefresh(e) { 
 |                  this.$emit("refresh", e); 
 |              }, 
 |              onpullingdown(e) { 
 |                  // #ifdef APP-NVUE 
 |                  this.$emit("pullingdown", e); 
 |                  // #endif 
 |                  // #ifndef APP-NVUE 
 |                  var detail = { 
 |                      viewHeight: 90, 
 |                      pullingDistance: e.height 
 |                  } 
 |                  this.$emit("pullingdown", detail); 
 |                  // #endif 
 |              } 
 |          } 
 |      } 
 |  </script> 
 |    
 |  <style> 
 |      .uni-refresh { 
 |          height: 0; 
 |          overflow: hidden; 
 |      } 
 |  </style> 
 |  
  |