<template> <view class="loading-footer flex row-center" :style="'color: ' + color"> <view v-if="status === 'loading' " class="loading flex"> <u-loading :color="color" :size="40" mode="flower"></u-loading> <text class="m-l-20" :style="'color: ' + color">{{loadingText}}</text> </view> <view v-if="status === 'finished'" class="finished">{{ finishedText }}</view> <view v-if="status === 'error'" @click="onRefresh">{{ errorText }}</view> <view v-if="status === 'empty'" class="empty"> <text v-if="!slotEmpty">暂无数据</text> <slot name="empty" v-else></slot> </view> </view> </template> <script> export default { data() { return {}; }, components: { }, props: { status: { type: String, default: 'loading' }, errorText: { type: String, default: '加载失败,点击重新加载' }, loadingText: { type: String, default: '加载中...' }, finishedText: { type: String, default: '我可是有底线的~' }, slotEmpty: { type: Boolean, default: false }, color: { type: String, default: "#666" } }, methods: { onRefresh() { this.$emit('refresh'); } } }; </script> <style> .loading-footer { padding: 30rpx 0; color: #666; } </style>