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
| <template>
| <v-scroll @load="load" :refresher-enabled="refresherEnabled" @ref="ref" ref="scroll">
| <slot name="box" v-bind="list">
| </slot>
| </v-scroll>
| </template>
| <script>
| export default {
| name:'paging',
| props: {
| data: {
| default() {
| return {};
| },
| type: Object,
| require: false,
| },
| refresherEnabled:{
| default:true,
| required:false,
| type:Boolean
| },
| ajax: {
| require: true,
| type: Function,
| },
| },
| data() {
| return {
| list: [],
| page: 0,
| };
| },
| methods: {
| load(over) {
| this.page++;
| this.getList(over);
| },
| ref(over) {
| this.page = 1;
| this.getList(over);
| },
| getList(over) {
| let data = Object.assign(
| {
| page: this.page
| },
| this.data
| );
| this.ajax(data).then((res) => {
| let queryVo = res.data;
| if (queryVo.current_page == 1) this.list = [];
| this.list = [...this.list, ...queryVo.data];
| over &&
| over({
| finished: queryVo.data.length < queryVo.per_page,
| });
| });
| },
| },
| created() {},
| };
| </script>
|
|