feat: 海报生成功能+推广优化

1. 阅读页:
   - 添加"生成海报"和"分享给好友"按钮
   - 海报包含章节摘要+邀请码+小程序码占位
   - 优化推广提示区域,添加推广中心入口

2. 分销中心:
   - 完善海报生成功能(推广海报)
   - 去掉"更多分享方式",改为"复制朋友圈文案"
   - 添加"分享给好友"小程序卡片按钮

3. 分享链接自动带分销ID
This commit is contained in:
卡若
2026-01-25 19:52:38 +08:00
parent 4dd2f9f4a7
commit a702cd9086
6 changed files with 551 additions and 56 deletions

View File

@@ -396,42 +396,123 @@
color: rgba(255, 255, 255, 0.6);
}
/* ===== 分享提示 ===== */
.share-tip {
/* ===== 分享操作区 ===== */
.action-section {
margin-top: 64rpx;
padding: 32rpx;
background: rgba(255, 255, 255, 0.03);
border-radius: 24rpx;
border: 2rpx solid rgba(255, 255, 255, 0.05);
}
.action-header {
margin-bottom: 24rpx;
}
.action-title {
font-size: 28rpx;
color: rgba(255, 255, 255, 0.6);
}
.action-buttons {
display: flex;
gap: 24rpx;
}
.action-btn {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
gap: 12rpx;
padding: 28rpx 24rpx;
border-radius: 20rpx;
border: none;
background: transparent;
line-height: normal;
}
.action-btn::after {
border: none;
}
.btn-share {
background: rgba(7, 193, 96, 0.15);
border: 2rpx solid rgba(7, 193, 96, 0.3);
}
.btn-poster {
background: rgba(255, 215, 0, 0.15);
border: 2rpx solid rgba(255, 215, 0, 0.3);
}
.action-icon {
font-size: 36rpx;
}
.action-text {
font-size: 28rpx;
color: #ffffff;
font-weight: 500;
}
/* ===== 推广提示区 ===== */
.promo-section {
margin-top: 32rpx;
}
.promo-card {
display: flex;
align-items: center;
justify-content: space-between;
padding: 32rpx;
background: linear-gradient(90deg, rgba(255, 215, 0, 0.1) 0%, transparent 100%);
background: linear-gradient(135deg, rgba(255, 215, 0, 0.1) 0%, rgba(255, 165, 0, 0.05) 100%);
border: 2rpx solid rgba(255, 215, 0, 0.2);
border-radius: 24rpx;
}
.tip-content {
.promo-left {
display: flex;
align-items: center;
gap: 20rpx;
}
.promo-icon {
width: 80rpx;
height: 80rpx;
background: rgba(255, 215, 0, 0.2);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 36rpx;
}
.promo-info {
flex: 1;
}
.tip-title {
font-size: 28rpx;
.promo-title {
font-size: 30rpx;
color: #ffffff;
font-weight: 500;
font-weight: 600;
display: block;
}
.tip-desc {
.promo-desc {
font-size: 24rpx;
color: rgba(255, 255, 255, 0.6);
color: rgba(255, 255, 255, 0.5);
display: block;
margin-top: 8rpx;
}
.tip-btn {
padding: 16rpx 32rpx;
background: #FFD700;
color: #000000;
font-size: 28rpx;
font-weight: 500;
border-radius: 16rpx;
.promo-right {
padding-left: 20rpx;
}
.promo-arrow {
font-size: 32rpx;
color: #FFD700;
}
/* ===== 弹窗 ===== */
@@ -792,3 +873,56 @@
font-size: 28rpx;
color: rgba(255, 255, 255, 0.8);
}
/* ===== 海报弹窗 ===== */
.poster-modal {
padding-bottom: calc(64rpx + env(safe-area-inset-bottom));
}
.poster-preview {
display: flex;
justify-content: center;
margin: 32rpx 0;
padding: 24rpx;
background: rgba(0, 0, 0, 0.3);
border-radius: 24rpx;
}
.poster-canvas {
border-radius: 16rpx;
box-shadow: 0 16rpx 48rpx rgba(0, 0, 0, 0.5);
}
.poster-actions {
display: flex;
gap: 24rpx;
margin-bottom: 24rpx;
}
.poster-btn {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
gap: 12rpx;
padding: 28rpx;
border-radius: 24rpx;
font-size: 30rpx;
font-weight: 500;
}
.btn-save {
background: linear-gradient(135deg, #00CED1 0%, #20B2AA 100%);
color: #ffffff;
}
.btn-icon {
font-size: 32rpx;
}
.poster-tip {
font-size: 24rpx;
color: rgba(255, 255, 255, 0.4);
text-align: center;
display: block;
}