wangzhibo
4 天以前 10595d8632f959d0954d1939243196f4eed02372
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
<template>
    <view class="cl-loadmore__wrap">
        <cl-divider
            :background-color="backgroundColor"
            :color="color"
            :width="divider ? '400rpx' : '0rpx'"
        >
            <view class="cl-loadmore">
                <cl-loading
                    :color="iconColor"
                    :theme="loadingTheme"
                    :size="40"
                    v-if="!finish && loading"
                />
                <text
                    class="cl-loadmore__text"
                    :style="{
                        color,
                    }"
                    v-if="message"
                    >{{ message }}</text
                >
            </view>
        </cl-divider>
    </view>
</template>
 
<script lang="ts">
import { computed, defineComponent } from "vue";
import { t } from "/@/locale";
 
export default defineComponent({
    name: "cl-loadmore",
 
    props: {
        // 是否加载中
        loading: Boolean,
        // 是否加载完成
        finish: Boolean,
        // 是否显示分割符
        divider: {
            type: Boolean,
            default: true,
        },
        // 字体颜色
        color: String,
        // 图标颜色
        iconColor: String,
        // 背景颜色
        backgroundColor: String,
        // 普通状态下显示内容
        text: {
            type: String,
            default: t("上拉加载更多"),
        },
        // 加载完成显示内容
 
        finishText: {
            type: String,
            default: t("没有更多了"),
        },
        // 加载中显示内容
 
        loadingText: {
            type: String,
            default: t("加载中"),
        },
        // 加载图标主题
        loadingTheme: String,
    },
 
    setup(props) {
        const message = computed(() => {
            return props.finish ? props.finishText : props.loading ? props.loadingText : props.text;
        });
 
        return {
            message,
        };
    },
});
</script>