cshenfu
2024-06-27 58aa6e282bb343503be3cb198948328ea3ed7b79
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<!-- [z-paging]上拉加载更多view -->
 
<template>
    <view class="zp-l-container" :style="[zConfig.customStyle]">
        <text v-if="zConfig.showNoMoreLine&&finalStatus===2" :class="zConfig.defaultThemeStyle==='white'?'zp-l-line zp-l-line-white':'zp-l-line zp-l-line-black'"
            :style="[zConfig.noMoreLineCustomStyle]" />
        <!-- #ifndef APP-NVUE -->
        <image v-if="finalStatus===1&&zConfig.loadingIconCustomImage.length"
            :src="zConfig.loadingIconCustomImage" :class="{'zp-l-line-loading-custom-image':true,'zp-l-line-loading-custom-image-animated':zConfig.loadingAnimated}" />
        <image v-if="finalStatus===1&&zConfig.loadingIconType==='flower'&&!zConfig.loadingIconCustomImage.length"
            class="zp-line-loading-image" :style="[zConfig.iconCustomStyle]" :src="zConfig.defaultThemeStyle==='white'?base64FlowerWhite:base64Flower" />
        <!-- #endif -->
        <!-- #ifdef APP-NVUE -->
        <view>
            <loading-indicator v-if="finalStatus===1" class="zp-line-loading-image" :style="[{color:zConfig.defaultThemeStyle==='white'?'white':'#777777'}]" animating />
        </view>
        <!-- #endif -->
        <text v-if="finalStatus===1&&zConfig.loadingIconType==='circle'&&!zConfig.loadingIconCustomImage.length"
            :class="zConfig.defaultThemeStyle==='white'?'zp-l-line-loading-view zp-l-line-loading-view-white':'zp-l-line-loading-view zp-l-line-loading-view-black'" :style="[zConfig.iconCustomStyle]" />
        <text :class="zConfig.defaultThemeStyle==='white'?'zp-l-text zp-l-text-white':'zp-l-text zp-l-text-black'" :style="[zConfig.titleCustomStyle]">{{ownLoadingMoreText}}</text>
        <text v-if="zConfig.showNoMoreLine&&finalStatus===2" :class="zConfig.defaultThemeStyle==='white'?'zp-l-line zp-l-line-white':'zp-l-line zp-l-line-black'" :style="[zConfig.noMoreLineCustomStyle]" />
    </view>
</template>
<script>
    import zStatic from '../js/z-paging-static'
    export default {
        name: 'z-paging-load-more',
        data() {
            return {
                base64Arrow: zStatic.base64Arrow,
                base64Flower: zStatic.base64Flower,
                base64FlowerWhite: zStatic.base64FlowerWhite,
            };
        },
        props: ['zConfig'],
        computed: {
            ownLoadingMoreText() {
                return this.statusTextArr[this.finalStatus];
            },
            statusTextArr() {
                return [this.zConfig.defaultText,this.zConfig.loadingText,this.zConfig.noMoreText,this.zConfig.failText];
            },
            finalStatus() {
                if (this.zConfig.defaultAsLoading && this.zConfig.status === 0) return 1;
                return this.zConfig.status;
            }
        }
    }
</script>
 
<style scoped>
    @import "../css/z-paging-static.css";
 
    .zp-l-container {
        height: 80rpx;
        font-size: 27rpx;
        /* #ifndef APP-NVUE */
        clear: both;
        display: flex;
        /* #endif */
        flex-direction: row;
        align-items: center;
        justify-content: center;
    }
 
    .zp-l-line-loading-custom-image {
        color: #a4a4a4;
        margin-right: 8rpx;
        width: 28rpx;
        height: 28rpx;
    }
    
    .zp-l-line-loading-custom-image-animated{
        /* #ifndef APP-NVUE */
        animation: loading-circle 1s linear infinite;
        /* #endif */
    }
 
    .zp-l-line-loading-view {
        margin-right: 8rpx;
        width: 22rpx;
        height: 23rpx;
        border: 3rpx solid #dddddd;
        border-radius: 50%;
        /* #ifndef APP-NVUE */
        animation: loading-circle 1s linear infinite;
        /* #endif */
    }
 
    .zp-l-line-loading-view-black {
        border-color: #c8c8c8;
        border-top-color: #444444;
    }
 
    .zp-l-line-loading-view-white {
        border-color: #aaaaaa;
        border-top-color: #ffffff;
    }
 
    .zp-l-text {
        /* #ifdef APP-NVUE */
        font-size: 30rpx;
        margin: 0rpx 10rpx;
        /* #endif */
    }
 
    .zp-l-text-black {
        color: #a4a4a4;
    }
 
    .zp-l-text-white {
        color: #efefef;
    }
 
    .zp-l-line {
        height: 1px;
        width: 100rpx;
        margin: 0rpx 10rpx;
    }
 
    .zp-l-line-black {
        background-color: #eeeeee;
    }
 
    .zp-l-line-white {
        background-color: #efefef;
    }
 
    @keyframes loading-circle {
        0% {
            -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
        }
        100% {
            -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
        }
    }
</style>