feat(miniprogram): 用 karuo-316 替换小程序目录

- 从 github/karuo-316 覆盖 miniprogram/
- 排除 project.private.config.json 与 *.backup

Made-with: Cursor
This commit is contained in:
卡若
2026-03-17 18:25:24 +08:00
parent 982622368a
commit 34f7c7bbdc
34 changed files with 450 additions and 891 deletions

View File

@@ -77,14 +77,10 @@ Page({
_lastScrollTop: 0,
// 章节 mid扫码/海报分享用,便于分享 path 带 mid
sectionMid: null,
// 审核模式
auditMode: false
sectionMid: null
},
async onLoad(options) {
this.setData({ auditMode: app.globalData.auditMode })
wx.showShareMenu({ withShareTimeline: true })
// 预加载 linkTags、linkedMiniprograms、persons供 onLinkTagTap / onMentionTap 和内容自动匹配用)

View File

@@ -89,7 +89,7 @@
<text class="action-icon-small">📣</text>
<text class="action-text-small">分享给好友</text>
</button>
<view class="action-btn-inline btn-gift-inline" bindtap="handleGiftPay" wx:if="{{!auditMode}}">
<view class="action-btn-inline btn-gift-inline" bindtap="handleGiftPay">
<text class="action-icon-small">🎁</text>
<text class="action-text-small">代付分享</text>
</view>
@@ -98,7 +98,7 @@
<text class="action-text-small">生成海报</text>
</view>
</view>
<view class="share-tip-inline" wx:if="{{!auditMode}}">
<view class="share-tip-inline">
<text class="share-tip-text">分享后好友购买,你可获得 90% 收益</text>
</view>
</view>
@@ -169,18 +169,18 @@
<!-- 付费墙 - 已登录未购买 -->
<view class="paywall">
<view class="paywall-icon">🔒</view>
<text class="paywall-title" wx:if="{{!auditMode}}">解锁完整内容</text>
<text class="paywall-title" wx:else>完整内容即将开放</text>
<text class="paywall-desc" wx:if="{{!auditMode}}">已阅读50%,购买后继续阅读</text>
<text class="paywall-desc" wx:else>该内容正在准备中,敬请期待</text>
<text class="paywall-title">解锁完整内容</text>
<text class="paywall-desc">已阅读50%,购买后继续阅读</text>
<!-- 购买选项(审核模式隐藏) -->
<view class="purchase-options" wx:if="{{!auditMode}}">
<!-- 购买选项 -->
<view class="purchase-options">
<!-- 购买本章 - 直接调起支付 -->
<view class="purchase-btn purchase-section" bindtap="handlePurchaseSection">
<text class="btn-label">购买本章</text>
<text class="btn-price brand-color">¥{{section && section.price != null ? section.price : sectionPrice}}</text>
</view>
<!-- 解锁全书 - 只有购买超过3章才显示 -->
<view class="purchase-btn purchase-fullbook" bindtap="handlePurchaseFullBook" wx:if="{{purchasedCount >= 3}}">
<view class="btn-left">
<text class="btn-sparkle">✨</text>
@@ -193,7 +193,7 @@
</view>
</view>
<text class="paywall-tip" wx:if="{{!auditMode}}">分享给好友一起学习,还能赚取佣金</text>
<text class="paywall-tip">分享给好友一起学习,还能赚取佣金</text>
</view>
<!-- 章节导航 -->
@@ -250,7 +250,7 @@
</view>
<!-- 分享提示浮层阅读20%后下拉触发) -->
<view class="share-float-tip {{showShareTip ? 'show' : ''}}" wx:if="{{showShareTip && !auditMode}}">
<view class="share-float-tip {{showShareTip ? 'show' : ''}}" wx:if="{{showShareTip}}">
<text class="share-float-icon">💰</text>
<text class="share-float-text">分享给好友,好友购买你可获得 90% 收益</text>
<button class="share-float-btn" open-type="share">立即分享</button>

View File

@@ -348,20 +348,23 @@
display: flex;
gap: 24rpx;
margin-bottom: 48rpx;
width: 100%;
box-sizing: border-box;
overflow: hidden;
}
.nav-btn {
flex: 1 1 0;
flex: 1;
min-width: 0;
padding: 24rpx;
border-radius: 24rpx;
max-width: 48%;
box-sizing: border-box;
overflow: hidden;
}
.nav-btn-placeholder {
flex: 1 1 0;
flex: 1;
min-width: 0;
max-width: 48%;
}
.nav-prev {
@@ -402,16 +405,12 @@
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
flex: 1;
min-width: 0;
}
.btn-row {
display: flex;
align-items: center;
justify-content: space-between;
min-width: 0;
overflow: hidden;
}
.btn-arrow {
@@ -439,6 +438,7 @@
.action-btn-inline {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 8rpx;
@@ -460,17 +460,23 @@
}
.btn-poster-inline {
background: rgba(255, 215, 0, 0.15);
border: 2rpx solid rgba(255, 215, 0, 0.3);
background: linear-gradient(135deg, #2d2d30 0%, #3d3d40 100%);
}
.btn-moments-inline {
background: linear-gradient(135deg, #1a4a2e, #0d3320);
border: 1px solid rgba(76, 175, 80, 0.3);
}
.btn-moments-inline:active {
opacity: 0.7;
}
.action-icon-small {
font-size: 28rpx;
font-size: 40rpx;
}
.action-text-small {
font-size: 24rpx;
font-size: 22rpx;
color: #ffffff;
font-weight: 500;
}
@@ -586,48 +592,6 @@
color: rgba(255, 255, 255, 0.6);
}
/* ===== 代付分享 ===== */
.btn-gift-inline {
/* 与 btn-share-inline 同风格 */
}
.gift-share-row {
display: flex;
align-items: center;
justify-content: center;
gap: 12rpx;
margin-top: 24rpx;
padding: 20rpx;
background: rgba(255, 215, 0, 0.08);
border-radius: 24rpx;
border: 1rpx solid rgba(255, 215, 0, 0.2);
}
.gift-share-icon { font-size: 32rpx; }
.gift-share-text { font-size: 28rpx; color: #FFD700; }
.share-modal-desc {
font-size: 28rpx;
color: rgba(255, 255, 255, 0.6);
display: block;
margin-bottom: 32rpx;
line-height: 1.5;
}
.share-modal-actions {
display: flex;
gap: 24rpx;
}
.share-modal-btn {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 16rpx;
padding: 32rpx 24rpx;
background: rgba(255, 255, 255, 0.06);
border-radius: 24rpx;
border: 1rpx solid rgba(255, 255, 255, 0.1);
}
.share-modal-btn .btn-icon { font-size: 48rpx; }
.share-modal-btn text:last-child { font-size: 26rpx; color: rgba(255, 255, 255, 0.8); }
/* ===== 分享弹窗 ===== */
.share-link-box {
padding: 32rpx;
@@ -1051,3 +1015,81 @@
display: block;
}
.fab-moments-icon {
font-size: 48rpx;
}
/* ===== 分享提示文字(底部导航上方) ===== */
.share-tip-inline {
text-align: center;
margin-top: 16rpx;
}
.share-tip-text {
font-size: 24rpx;
color: rgba(255, 255, 255, 0.5);
}
/* ===== 分享浮层提示阅读20%触发) ===== */
.share-float-tip {
position: fixed;
top: 180rpx;
left: 40rpx;
right: 40rpx;
background: linear-gradient(135deg, #1a3a4a 0%, #0d2533 100%);
border: 1rpx solid rgba(0, 206, 209, 0.3);
border-radius: 24rpx;
padding: 28rpx 32rpx;
display: flex;
align-items: center;
gap: 16rpx;
z-index: 10000;
box-shadow: 0 12rpx 48rpx rgba(0, 0, 0, 0.6);
opacity: 0;
transform: translateY(-40rpx);
transition: opacity 0.35s ease, transform 0.35s ease;
}
.share-float-tip.show {
opacity: 1;
transform: translateY(0);
}
.share-float-icon {
font-size: 40rpx;
flex-shrink: 0;
}
.share-float-text {
font-size: 26rpx;
color: rgba(255, 255, 255, 0.85);
flex: 1;
}
.share-float-btn {
background: linear-gradient(135deg, #00CED1, #20B2AA) !important;
color: #fff !important;
font-size: 24rpx;
padding: 10rpx 28rpx;
border-radius: 32rpx;
border: none;
flex-shrink: 0;
line-height: 1.5;
}
.share-float-btn::after {
border: none;
}
.share-float-close {
font-size: 28rpx;
color: rgba(255, 255, 255, 0.4);
padding: 8rpx;
flex-shrink: 0;
}
/* ===== 代付分享按钮 ===== */
.btn-gift-inline {
display: flex;
flex-direction: column;
align-items: center;
gap: 4rpx;
padding: 12rpx 24rpx;
border-radius: 16rpx;
background: rgba(255, 165, 0, 0.1);
border: 1rpx solid rgba(255, 165, 0, 0.3);
}