ai-c/pages/activity-detail/activity-detail.wxss
2026-02-02 18:21:32 +08:00

816 lines
14 KiB
Plaintext

/* 活动详情页面样式 - 玫瑰紫版 v3.0 */
page {
background: linear-gradient(180deg, #E8C3D4 0%, #F5E6ED 100%);
}
.page-container {
min-height: 100vh;
background: linear-gradient(180deg, #E8C3D4 0%, #F5E6ED 100%);
padding-bottom: 180rpx;
}
/* 固定导航栏容器 */
.nav-container {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 999;
background: rgba(248, 249, 252, 0.75);
backdrop-filter: blur(20rpx) saturate(180%);
-webkit-backdrop-filter: blur(20rpx) saturate(180%);
}
/* 状态栏 */
.status-bar {
background: transparent;
}
/* 导航栏 */
.nav-bar {
display: flex;
align-items: center;
justify-content: center;
padding: 0 32rpx;
background: transparent;
position: relative;
}
.nav-back {
position: absolute;
left: 32rpx;
top: 50%;
transform: translateY(-50%);
width: 80rpx;
height: 80rpx;
display: flex;
align-items: center;
justify-content: center;
z-index: 10;
}
.back-icon {
width: 48rpx;
height: 48rpx;
}
.nav-title {
font-size: 36rpx;
font-weight: 700;
color: #1A1A1A;
line-height: 1;
}
.nav-share {
position: absolute;
right: 32rpx;
top: 50%;
transform: translateY(-50%);
width: 80rpx;
height: 80rpx;
display: flex;
align-items: center;
justify-content: center;
z-index: 10;
background: rgba(255, 255, 255, 0.9);
border-radius: 50%;
}
.share-icon {
width: 48rpx;
height: 48rpx;
opacity: 0.9;
}
/* 内容滚动区域 */
.content-scroll {
height: 100vh;
box-sizing: border-box;
}
/* 活动封面 - 梦幻渐变占位 */
.cover-section {
width: 100%;
height: 560rpx;
position: relative;
overflow: hidden;
background: linear-gradient(135deg, #F5E6ED 0%, #FAF5F8 100%);
}
.cover-image {
width: 100%;
height: 100%;
}
.status-badge {
position: absolute;
top: 32rpx;
right: 32rpx;
padding: 0 32rpx;
height: 72rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 100rpx;
backdrop-filter: blur(10px);
}
.status-badge.upcoming {
background: linear-gradient(135deg, #60A5FA 0%, #3B82F6 100%);
box-shadow: 0 4rpx 16rpx rgba(96, 165, 250, 0.35);
}
.status-badge.ongoing {
background: linear-gradient(135deg, #4ADE80 0%, #16A34A 100%);
box-shadow: 0 4rpx 16rpx rgba(74, 222, 128, 0.35);
}
.status-badge.ended {
background: linear-gradient(135deg, #9CA3AF 0%, #6B7280 100%);
box-shadow: 0 4rpx 16rpx rgba(156, 163, 175, 0.25);
}
.status-badge.full {
background: linear-gradient(135deg, #F97316 0%, #EA580C 100%);
box-shadow: 0 4rpx 16rpx rgba(249, 115, 22, 0.35);
}
.status-text {
font-size: 32rpx;
font-weight: 700;
color: #fff;
}
/* 基本信息区域 - 毛玻璃卡片 */
.info-section {
margin: 32rpx;
padding: 48rpx;
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(16rpx) saturate(150%);
border-radius: 48rpx;
border: 2rpx solid rgba(145, 69, 132, 0.2);
box-shadow: 0 4rpx 20rpx rgba(145, 69, 132, 0.12),
0 2rpx 8rpx rgba(145, 69, 132, 0.08);
}
.activity-title {
font-size: 56rpx;
font-weight: 700;
color: #1A1A1A;
line-height: 1.3;
margin-bottom: 32rpx;
}
/* 价格信息 */
.price-info {
display: flex;
align-items: center;
justify-content: space-between;
padding: 32rpx 0;
border-bottom: 2rpx solid rgba(145, 69, 132, 0.1);
margin-bottom: 32rpx;
}
.price-main {
display: flex;
align-items: baseline;
gap: 8rpx;
}
.price-label {
font-size: 48rpx;
font-weight: 700;
color: #4ADE80;
}
.price-symbol {
font-size: 40rpx;
font-weight: 700;
color: #F97316;
}
.price-value {
font-size: 64rpx;
font-weight: 700;
color: #F97316;
line-height: 1;
}
.price-unit {
font-size: 36rpx;
font-weight: 400;
color: #F97316;
}
.participants-info {
display: flex;
align-items: center;
gap: 12rpx;
padding: 0 24rpx;
height: 72rpx;
background: rgba(145, 69, 132, 0.1);
border-radius: 100rpx;
}
.participants-icon {
width: 40rpx;
height: 40rpx;
}
.participants-text {
font-size: 32rpx;
font-weight: 400;
color: #914584;
}
/* 信息列表 */
.info-list {
display: flex;
flex-direction: column;
gap: 32rpx;
}
.info-item {
display: flex;
align-items: flex-start;
gap: 24rpx;
}
.info-icon {
width: 48rpx;
height: 48rpx;
margin-top: 4rpx;
flex-shrink: 0;
}
.info-content {
flex: 1;
display: flex;
flex-direction: column;
gap: 8rpx;
}
.info-label {
font-size: 32rpx;
font-weight: 400;
color: #6A7282;
}
.info-value {
font-size: 36rpx;
font-weight: 400;
color: #1A1A1A;
line-height: 1.5;
}
.phone-link {
color: #914584;
text-decoration: underline;
}
/* 活动详情区域 - 毛玻璃卡片 */
.detail-section {
margin: 32rpx;
padding: 48rpx;
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(16rpx) saturate(150%);
border-radius: 48rpx;
border: 2rpx solid rgba(145, 69, 132, 0.2);
box-shadow: 0 4rpx 20rpx rgba(145, 69, 132, 0.12),
0 2rpx 8rpx rgba(145, 69, 132, 0.08);
}
.section-title {
font-size: 48rpx;
font-weight: 700;
color: #1A1A1A;
margin-bottom: 32rpx;
}
.detail-content {
margin-bottom: 32rpx;
}
.detail-text {
font-size: 36rpx;
font-weight: 400;
color: #4A5565;
line-height: 1.8;
white-space: pre-wrap;
}
/* rich-text 样式 */
.detail-rich-text-wrapper {
position: relative;
}
.detail-rich-text {
font-size: 36rpx;
line-height: 1.8;
color: #4A5565;
word-break: break-all;
overflow: hidden;
}
.detail-images {
display: flex;
flex-direction: column;
gap: 24rpx;
overflow: hidden;
}
.detail-image {
width: 100%;
max-width: 100%;
border-radius: 24rpx;
display: block;
}
/* 参与者区域 - 毛玻璃卡片 */
.participants-section {
margin: 32rpx;
padding: 48rpx;
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(16rpx) saturate(150%);
border-radius: 48rpx;
border: 2rpx solid rgba(145, 69, 132, 0.2);
box-shadow: 0 4rpx 20rpx rgba(145, 69, 132, 0.12),
0 2rpx 8rpx rgba(145, 69, 132, 0.08);
}
.section-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 32rpx;
}
.view-all {
display: flex;
align-items: center;
gap: 8rpx;
}
.view-all-text {
font-size: 32rpx;
font-weight: 400;
color: #914584;
}
.view-all-icon {
width: 32rpx;
height: 32rpx;
}
.participants-list {
display: flex;
flex-direction: column;
gap: 24rpx;
}
.participant-item {
display: flex;
align-items: center;
gap: 24rpx;
}
.participant-avatar {
width: 96rpx;
height: 96rpx;
border-radius: 50%;
border: 2rpx solid rgba(145, 69, 132, 0.2);
background: linear-gradient(135deg, #F5E6ED 0%, #FAF5F8 100%);
}
.participant-info {
flex: 1;
display: flex;
flex-direction: column;
gap: 8rpx;
}
.participant-name {
font-size: 36rpx;
font-weight: 500;
color: #1A1A1A;
}
.participant-time {
font-size: 28rpx;
font-weight: 400;
color: #6A7282;
}
/* 推荐活动区域 - 毛玻璃卡片 */
.recommend-section {
margin: 32rpx;
padding: 48rpx;
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(16rpx) saturate(150%);
border-radius: 48rpx;
border: 2rpx solid rgba(145, 69, 132, 0.2);
box-shadow: 0 4rpx 20rpx rgba(145, 69, 132, 0.12),
0 2rpx 8rpx rgba(145, 69, 132, 0.08);
}
.recommend-list {
display: flex;
flex-wrap: wrap;
gap: 20rpx;
margin-top: 24rpx;
}
.recommend-item {
width: calc((100% - 20rpx) / 2);
background: rgba(245, 230, 237, 0.6);
backdrop-filter: blur(8rpx);
border-radius: 24rpx;
overflow: hidden;
border: 2rpx solid rgba(145, 69, 132, 0.15);
box-sizing: border-box;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
cursor: pointer;
}
.recommend-item:active {
transform: translateY(-2rpx) scale(0.98);
box-shadow: 0 2rpx 12rpx rgba(145, 69, 132, 0.15);
}
.recommend-image {
width: 100%;
height: 180rpx;
background: linear-gradient(135deg, #F5E6ED 0%, #FAF5F8 100%);
display: block;
}
.recommend-info {
padding: 16rpx;
display: flex;
flex-direction: column;
gap: 8rpx;
background: rgba(255, 255, 255, 0.9);
}
.recommend-title {
font-size: 26rpx;
font-weight: 500;
color: #1A1A1A;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
line-height: 1.4;
min-height: 72rpx;
word-break: break-all;
}
.recommend-date {
font-size: 22rpx;
font-weight: 400;
color: #6A7282;
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* 底部占位 */
.bottom-placeholder {
height: 200rpx;
}
/* 底部操作栏 */
.bottom-bar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 198rpx;
background: #fff;
display: flex;
align-items: center;
padding: 0 32rpx;
padding-bottom: env(safe-area-inset-bottom);
box-shadow: 0 -8rpx 24rpx rgba(0, 0, 0, 0.04);
z-index: 100;
box-sizing: border-box;
}
.bar-left {
display: flex;
align-items: center;
gap: 12rpx;
}
.action-btn {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: transparent;
border: none;
padding: 0;
width: 80rpx;
}
.share-btn::after {
border: none;
}
.action-icon {
width: 48rpx;
height: 48rpx;
}
.action-text {
font-size: 22rpx;
font-weight: 400;
color: #64748b;
margin-top: 4rpx;
}
.bar-right {
flex: 1;
margin-left: 0rpx;
}
.signup-btn {
width: 100%;
height: 96rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 100rpx;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
cursor: pointer;
}
.signup-btn:active {
transform: scale(0.96);
}
.signup-btn.upcoming {
background: linear-gradient(135deg, #914584 0%, #7A3A6F 100%);
box-shadow: 0 6rpx 24rpx rgba(145, 69, 132, 0.4),
0 3rpx 12rpx rgba(145, 69, 132, 0.3);
}
.signup-btn.upcoming:active {
box-shadow: 0 4rpx 16rpx rgba(145, 69, 132, 0.45);
}
.signup-btn.ongoing {
background: linear-gradient(135deg, #4ADE80 0%, #16A34A 100%);
box-shadow: 0 6rpx 24rpx rgba(74, 222, 128, 0.35);
}
.signup-btn.ongoing:active {
box-shadow: 0 4rpx 16rpx rgba(74, 222, 128, 0.4);
}
.signup-btn.ended {
background: linear-gradient(135deg, #9CA3AF 0%, #6B7280 100%);
box-shadow: 0 4rpx 16rpx rgba(156, 163, 175, 0.25);
}
.signup-btn.full {
background: linear-gradient(135deg, #F97316 0%, #EA580C 100%);
box-shadow: 0 6rpx 24rpx rgba(249, 115, 22, 0.35);
}
.signup-btn.full:active {
box-shadow: 0 4rpx 16rpx rgba(249, 115, 22, 0.4);
}
.signup-text {
font-size: 32rpx;
font-weight: 700;
color: #fff;
white-space: nowrap;
}
/* 参与者列表弹窗 */
.participants-modal {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(26, 26, 26, 0.5);
z-index: 1000;
display: flex;
align-items: flex-end;
visibility: hidden;
transition: all 0.3s ease;
}
.participants-modal.show {
visibility: visible;
}
.participants-modal .modal-content {
width: 100%;
background: #fff;
border-radius: 32rpx 32rpx 0 0;
padding: 40rpx 32rpx;
transform: translateY(100%);
transition: all 0.3s ease;
}
.participants-modal.show .modal-content {
transform: translateY(0);
}
/* 二维码引导弹窗 */
.qrcode-modal {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 10000;
display: flex;
align-items: center;
justify-content: center;
visibility: hidden;
opacity: 0;
transition: all 0.3s ease;
}
.qrcode-modal.show {
visibility: visible;
opacity: 1;
}
.qrcode-modal .modal-mask {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.6);
backdrop-filter: blur(4rpx);
}
.qrcode-modal .modal-content {
position: relative;
width: 600rpx;
background: #FFFFFF;
border-radius: 48rpx;
padding: 60rpx 40rpx;
display: flex;
flex-direction: column;
align-items: center;
z-index: 1;
transform: scale(0.8);
transition: all 0.3s ease;
}
.qrcode-modal.show .modal-content {
transform: scale(1);
}
.qrcode-modal .close-btn {
position: absolute;
top: 30rpx;
right: 30rpx;
width: 60rpx;
height: 60rpx;
display: flex;
align-items: center;
justify-content: center;
}
.qrcode-modal .close-icon {
width: 32rpx;
height: 32rpx;
}
.qrcode-modal .modal-title {
font-size: 40rpx;
font-weight: bold;
color: #333;
margin-bottom: 12rpx;
}
.qrcode-modal .modal-subtitle {
font-size: 28rpx;
color: #666;
margin-bottom: 40rpx;
}
.qrcode-modal .qrcode-container {
width: 400rpx;
height: 400rpx;
background: #f9f9f9;
border: 2rpx solid #eee;
border-radius: 24rpx;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 24rpx;
overflow: hidden;
}
.qrcode-modal .qrcode-image {
width: 360rpx;
height: 360rpx;
}
.qrcode-modal .modal-tips {
font-size: 24rpx;
color: #999;
margin-bottom: 40rpx;
}
.qrcode-modal .save-btn {
width: 100%;
height: 88rpx;
background: #07C160;
color: #fff;
border-radius: 44rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
font-weight: bold;
}
.qrcode-modal .save-btn:active {
opacity: 0.8;
}
.modal-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 48rpx;
border-bottom: 2rpx solid rgba(145, 69, 132, 0.1);
}
.modal-title {
font-size: 48rpx;
font-weight: 700;
color: #1A1A1A;
}
.modal-close {
width: 80rpx;
height: 80rpx;
display: flex;
align-items: center;
justify-content: center;
}
.close-icon {
width: 48rpx;
height: 48rpx;
}
.modal-scroll {
flex: 1;
overflow-y: auto;
}
.modal-participants-list {
padding: 32rpx 48rpx;
display: flex;
flex-direction: column;
gap: 32rpx;
}
.modal-participant-item {
display: flex;
align-items: center;
gap: 24rpx;
}
.modal-participant-avatar {
width: 112rpx;
height: 112rpx;
border-radius: 50%;
border: 2rpx solid rgba(145, 69, 132, 0.2);
background: linear-gradient(135deg, #F5E6ED 0%, #FAF5F8 100%);
}
.modal-participant-info {
flex: 1;
display: flex;
flex-direction: column;
gap: 12rpx;
}
.modal-participant-name {
font-size: 40rpx;
font-weight: 500;
color: #1A1A1A;
}
.modal-participant-time {
font-size: 32rpx;
font-weight: 400;
color: #6A7282;
}