Files
hejiu/components/EmptyState.vue
T
cg fabbb167cf feat(circle): 添加酒友圈社交模块
- 新增酒友圈、圈子详情、发布动态、好友列表、活动创建等页面配置
- 添加酒友圈相关API接口,包括动态、评论、好友、活动等功能
- 实现模拟数据用于前端开发和测试
- 创建评论项、空状态、活动卡片、动态卡片、好友项等组件
- 编写酒友圈模块详细的接口文档,定义数据结构和业务规则
2026-07-20 22:53:04 +08:00

71 lines
1.4 KiB
Vue

<template>
<view class="empty-state">
<text class="empty-icon">{{ icon }}</text>
<text class="empty-title">{{ title }}</text>
<text class="empty-desc" v-if="desc">{{ desc }}</text>
<button v-if="actionText" class="empty-action" @click="$emit('action')">{{ actionText }}</button>
</view>
</template>
<script>
export default {
name: 'EmptyState',
props: {
icon: { type: String, default: '🍻' },
title: { type: String, default: '暂无内容' },
desc: { type: String, default: '' },
actionText: { type: String, default: '' }
}
}
</script>
<style lang="scss" scoped>
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 120rpx $sp-xl;
}
.empty-icon {
font-size: 96rpx;
margin-bottom: $sp-lg;
opacity: 0.6;
}
.empty-title {
font-size: $fs-base;
font-weight: $fw-medium;
color: $text-secondary;
margin-bottom: $sp-sm;
}
.empty-desc {
font-size: $fs-sm;
color: $text-tertiary;
text-align: center;
line-height: $lh-normal;
}
.empty-action {
margin-top: $sp-xl;
padding: $sp-md $sp-2xl;
background: linear-gradient(135deg, $amber, $amber-deep);
color: $text-on-amber;
font-size: $fs-base;
font-weight: $fw-bold;
border-radius: $radius-full;
border: none;
&::after {
border: none;
}
&:active {
opacity: 0.85;
transform: scale(0.96);
}
}
</style>