2026-05-08 16:24:42 +08:00

448 lines
8.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

page {
height: 100%;
background: #f5f6f8;
}
.page-home {
box-sizing: border-box;
height: 100%;
padding: 0 20rpx;
padding-top: 24rpx;
background: #f5f6f8;
}
/* 单页滚动容器:内部 sticky 吸顶(基础库 2.10.3+) */
.home-scroll {
height: 100%;
box-sizing: border-box;
/* padding-bottom: calc( env(safe-area-inset-bottom)); */
}
.banner {
width: 100%;
height: 300rpx;
border-radius: 16rpx;
overflow: hidden;
background: #e8e8e8;
}
.banner-item {
width: 100%;
height: 300rpx;
}
.banner-image {
width: 100%;
height: 100%;
}
.sticky-header {
position: sticky;
top: 0;
z-index: 100;
margin-top: 20rpx;
padding-bottom: 16rpx;
background: #f5f6f8;
/* box-shadow: 0 8rpx 20rpx rgba(0, 0, 0, 0.06); */
}
.search-wrap {
display: flex;
align-items: center;
gap: 16rpx;
background-color: #fff;
border-radius: 38rpx;
border: 2rpx solid #e1e3e6;
}
.search-input {
flex: 1;
height: 70rpx;
line-height: 76rpx;
padding: 0 4rpx;
background: #ffffff;
border-radius: 38rpx;
font-size: 24rpx;
color: #323233;
}
.search-ph {
color: #c8c9cc;
}
.search-img{
width: 80rpx;
height: 36rpx;
margin: 0 10rpx 0 38rpx;
}
.search-btn {
flex-shrink: 0;
min-width: 120rpx;
height: 70rpx;
line-height: 76rpx;
padding: 0 28rpx;
text-align: center;
font-size: 28rpx;
color: #ffffff;
/* background: linear-gradient(135deg, #3d8dff 0%, #1677ff 100%); */
background-color: #1a57b2;
border-radius: 38rpx;
box-shadow: 0 6rpx 16rpx rgba(22, 119, 255, 0.35);
display: flex;
align-items: center;
justify-content: center;
}
.search-btn-text {
margin-left: 10rpx;
}
.section-tab-img {
width: 80rpx;
height: 20rpx;
margin-top: 10rpx;
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: 6rpx;
z-index: -1;
}
.section-tabs {
margin-top: 28rpx;
display: flex;
justify-content: center;
gap: 80rpx;
}
.section-tab {
position: relative;
padding-bottom: 12rpx;
}
.section-tab-text {
font-size: 34rpx;
color: #969799;
font-weight: 500;
}
.section-tab.is-active .section-tab-text {
color: #111;
font-weight: 700;
}
.section-tab-line {
position: absolute;
left: 50%;
bottom: 0;
transform: translateX(-50%);
width: 88rpx;
height: 10rpx;
border-radius: 8rpx;
background: linear-gradient(
90deg,
rgba(61, 141, 255, 0.15) 0%,
#1677ff 45%,
#1677ff 55%,
rgba(61, 141, 255, 0.15) 100%
);
box-shadow: 0 2rpx 8rpx rgba(22, 119, 255, 0.35);
}
.status-filters {
margin-top: 40rpx;
display: flex;
gap: 50rpx;
padding: 0 60rpx;
}
.status-pill {
flex: 1;
text-align: center;
padding: 6rpx 0;
font-size: 26rpx;
color: #646566;
background: #ffffff;
border: 2rpx solid #e1e3e6;
border-radius: 8rpx;
}
.status-pill.is-on {
color: #ffffff;
font-weight: 600;
background: rgba(0, 96, 216, 1);
border-color: transparent;
box-shadow: 0 4rpx 12rpx rgba(22, 119, 255, 0.28);
}
.status-pill.is-1 {
color: #ffffff;
font-weight: 600;
background: rgba(0, 181, 109, 1);
border-color: transparent;
box-shadow: 0 4rpx 12rpx rgba(0, 181, 109, 0.28);
}
.status-pill.is-2 {
color: #ffffff;
font-weight: 600;
background: rgba(230, 6, 11, 1);
border-color: transparent;
box-shadow: 0 4rpx 12rpx rgba(230, 6, 11, 0.28);
}
.list-section {
margin-top: 20rpx;
padding-bottom: 120rpx;
}
.login-hint {
margin: 80rpx 8rpx;
padding: 48rpx 32rpx;
background: #ffffff;
border-radius: 20rpx;
text-align: center;
box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.04);
}
.login-hint-text {
display: block;
color: #646566;
font-size: 28rpx;
margin-bottom: 28rpx;
}
.login-hint-btn {
width: 280rpx !important;
background: linear-gradient(135deg, #1a57b2 0%, #1a57b2 100%) !important;
border: none !important;
color: #fff !important;
border-radius: 999rpx !important;
height: 80rpx !important;
font-size: 32rpx !important;
}
.empty {
padding: 80rpx 0;
text-align: center;
color: #969799;
font-size: 28rpx;
}
.event-card {
margin-bottom: 24rpx;
background: #ffffff;
border-radius: 20rpx;
overflow: hidden;
box-shadow: 0 8rpx 28rpx rgba(0, 0, 0, 0.06);
}
.event-card-media {
position: relative;
width: 100%;
height: 320rpx;
background: #fff;
padding: 12rpx;
box-sizing: border-box;
}
.event-card-cover {
width: 100%;
height: 100%;
display: block;
border-radius: 16rpx;
}
.addr-pill {
position: absolute;
top: 30rpx;
left: 22px;
max-width: calc(100% - 160rpx);
padding:4rpx 12rpx;
font-size: 22rpx;
color: #323233;
background: rgba(255, 255, 255, 1);
border-radius: 999rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
/* box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.06); */
}
.status-pill-top {
position: absolute;
top: 30rpx;
right: 12rpx;
padding: 8rpx 10rpx;
font-size: 22rpx;
color: #fff;
background: linear-gradient(135deg, rgba(0, 181, 109, 0) 30%, rgba(0, 181, 109, 1) 80% , rgba(0, 181, 109, 1) 100%) ;
/* box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.06); */
}
.status-pill-top-1 {
background: linear-gradient(135deg, rgba(0, 181, 109, 0) 20%, rgba(0, 96, 216, 1) 80% , rgba(0, 96, 216, 1) 100%) ;
}
.status-pill-top-3 {
background: linear-gradient(135deg, rgba(0, 181, 109, 0) 20%, rgba(0, 181, 109, 1) 80% , rgba(0, 181, 109, 1) 100%) ;
}
.status-pill-top-4 {
background: linear-gradient(135deg, rgba(0, 181, 109, 0) 20%, rgba(230, 6, 11, 1)80% , rgba(230, 6, 11, 1)100%) ;
}
.event-card-body {
padding: 22rpx 20rpx 26rpx;
}
.card-actions {
display: flex;
gap: 16rpx;
padding: 0 20rpx 22rpx;
flex-wrap: nowrap;
}
.action-btn {
flex: 1;
height: 50rpx;
line-height: 50rpx;
text-align: center;
font-size: 22rpx;
border-radius: 10rpx;
border: 2rpx solid #e1e3e6;
background: #fff;
color: #323233;
box-sizing: border-box;
}
.action-btn--ghost {
background: #fff;
color: #323233;
}
.action-btn--danger {
border-color: #e6060b;
color: #e6060b;
background: #fff;
}
.action-btn--disabled {
border-color: #c8c9cc;
color: #c8c9cc;
background: #f7f8fa;
}
.action-btn--paid {
border-color: #00b56d;
background: rgba(0, 181, 109, 0.12);
color: #00b56d;
font-weight: 700;
}
.title-row {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
gap: 12rpx;
margin-bottom: 16rpx;
}
.event-title {
flex: 1;
min-width: 0;
font-size: 28rpx;
font-weight: 800;
color: #111;
line-height: 1.45;
}
.format-tag {
flex-shrink: 0;
padding: 4rpx 14rpx;
font-size: 22rpx;
font-weight: 600;
color: #ffffff;
background: linear-gradient(135deg, #3d8dff 0%, #1677ff 100%);
border-radius: 8rpx;
}
.meta-line {
font-size: 24rpx;
color: #969799;
line-height: 1.55;
margin-top: 6rpx;
}
.loading {
display: flex;
justify-content: center;
align-items: center;
color: #969799;
font-size: 26rpx;
padding: 32rpx 0 48rpx;
}
/* ===== 三点加载动画 ===== */
.loading-dots {
display: flex;
align-items: center;
gap: 12rpx;
}
.loading-dot {
width: 14rpx;
height: 14rpx;
border-radius: 50%;
background: #1a56db;
animation: dot-bounce 2.8s infinite ease-in-out;
}
.loading-dot:nth-child(1) { animation-delay: 0s; }
.loading-dot:nth-child(2) { animation-delay: 0.2s; }
.loading-dot:nth-child(3) { animation-delay: 0.4s; }
@keyframes dot-bounce {
0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }
40% { transform: scale(1); opacity: 1; }
}
/* ===== 首屏骨架屏 ===== */
.skeleton-card {
background: #fff;
border-radius: 20rpx;
overflow: hidden;
margin-bottom: 24rpx;
}
.skeleton-cover {
width: 100%;
height: 300rpx;
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
background-size: 200% 100%;
animation: skeleton-shimmer 1.4s infinite;
}
.skeleton-body {
padding: 24rpx 28rpx 28rpx;
display: flex;
flex-direction: column;
gap: 16rpx;
}
.skeleton-line {
height: 24rpx;
border-radius: 8rpx;
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
background-size: 200% 100%;
animation: skeleton-shimmer 1.4s infinite;
}
.skeleton-line--long { width: 80%; }
.skeleton-line--mid { width: 60%; }
.skeleton-line--short { width: 40%; }
@keyframes skeleton-shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}