更新小程序配置,重构页面结构,删除不再使用的地址管理和章节页面,优化项目结构以提升可维护性;调整全局样式,增强组件的可复用性和一致性。

This commit is contained in:
2026-02-03 11:35:38 +08:00
parent d74410cfb5
commit a7d781a25b
79 changed files with 10610 additions and 3518 deletions

View File

@@ -1,49 +0,0 @@
const app = getApp()
Page({
data: {
statusBarHeight: 44,
navBarHeight: 88,
authorInfo: {
name: '卡若',
description: '连续创业者,私域运营专家',
liveTime: '06:00-09:00',
platform: 'Soul派对房'
},
authorInitial: '卡',
stats: [
{ value: '55+', label: '真实案例', icon: '📖' },
{ value: '10000+', label: '派对房听众', icon: '👥' },
{ value: '15年', label: '创业经验', icon: '🏆' },
{ value: '3000万', label: '最高年流水', icon: '📈' }
],
milestones: [
{ year: '2007-2014', event: '游戏电竞创业历程,从魔兽世界代练起步' },
{ year: '2015', event: '转型电商,做天猫虚拟充值' },
{ year: '2016-2019', event: '深耕电商领域团队扩张到200人年流水3000万' },
{ year: '2019-2020', event: '公司变故,重整旗鼓' },
{ year: '2020-2025', event: '电竞、地摊、大健康、私域多领域探索' },
{ year: '2025.10.15', event: '在Soul派对房开启每日分享记录真实商业案例' }
]
},
onLoad() {
const statusBarHeight = app.globalData.statusBarHeight || 44
const navBarHeight = app.globalData.navBarHeight || (statusBarHeight + 44)
const authorInfo = this.data.authorInfo
const authorInitial = authorInfo.name ? authorInfo.name.charAt(0) : '卡'
this.setData({ statusBarHeight, navBarHeight, authorInitial })
},
goBack() {
wx.navigateBack({ fail: () => wx.switchTab({ url: '/pages/index/index' }) })
},
onJoinParty() {
wx.showToast({
title: '请关注小程序或联系客服加入派对群',
icon: 'none',
duration: 2500
})
}
})

View File

@@ -1,4 +0,0 @@
{
"navigationBarTitleText": "关于作者",
"usingComponents": {}
}

View File

@@ -1,54 +0,0 @@
<view class="page">
<view class="nav-bar" style="height: {{navBarHeight || (statusBarHeight + 44)}}px; padding-top: {{statusBarHeight || 44}}px; box-sizing: border-box;">
<view class="nav-inner safe-header-right">
<view class="nav-back" bindtap="goBack">← 返回</view>
<text class="nav-title">关于作者</text>
</view>
</view>
<view class="main">
<view class="card author-card">
<view class="author-avatar">{{authorInitial}}</view>
<text class="author-name">{{authorInfo.name}}</text>
<text class="author-desc">{{authorInfo.description}}</text>
<view class="author-tags">
<text class="tag brand">🕐 每日 {{authorInfo.liveTime}}</text>
<text class="tag">💬 {{authorInfo.platform}}</text>
</view>
</view>
<view class="stats">
<view class="stat-item" wx:for="{{stats}}" wx:key="label">
<text class="stat-icon">{{item.icon}}</text>
<text class="stat-value">{{item.value}}</text>
<text class="stat-label">{{item.label}}</text>
</view>
</view>
<view class="card section">
<text class="section-title">关于这本书</text>
<view class="section-paras">
<text class="section-para">"这不是一本教你成功的鸡汤书。"</text>
<text class="section-para">这是我每天早上6点到9点在Soul派对房和几百个陌生人分享的真实故事。</text>
<text class="section-para brand">"社会不是靠努力,是靠洞察与选择。"</text>
</view>
</view>
<view class="card section">
<text class="section-title">创业历程</text>
<view class="timeline">
<view class="timeline-item" wx:for="{{milestones}}" wx:key="year">
<view class="timeline-dot-wrap">
<view class="timeline-dot"></view>
<view class="timeline-line" wx:if="{{index < milestones.length - 1}}"></view>
</view>
<view class="timeline-content">
<text class="milestone-year">{{item.year}}</text>
<text class="milestone-event">{{item.event}}</text>
</view>
</view>
</view>
</view>
<view class="card join-card">
<text class="join-title">想听更多真实故事?</text>
<text class="join-desc">每天早上6-9点卡若在Soul派对房免费分享</text>
<view class="btn-join" bindtap="onJoinParty">💬 加入派对群</view>
</view>
</view>
</view>

View File

@@ -1,35 +0,0 @@
.page { min-height: 100vh; background: #000; padding-bottom: 80rpx; }
.nav-bar { background: rgba(0,0,0,0.9); border-bottom: 2rpx solid rgba(255,255,255,0.05); box-sizing: border-box; display: flex; flex-direction: column; justify-content: flex-end; }
.nav-inner { display: flex; align-items: center; padding: 0 24rpx; height: 88rpx; min-height: 44px; flex-shrink: 0; }
.nav-back { font-size: 32rpx; color: #00CED1; padding: 16rpx 0; }
.nav-title { flex: 1; text-align: center; font-size: 34rpx; color: #00CED1; }
.main { padding: 32rpx; }
.card { border-radius: 32rpx; padding: 40rpx; margin-bottom: 24rpx; background: linear-gradient(135deg, #1c1c1e 0%, #2c2c2e 100%); border: 2rpx solid rgba(0,206,209,0.2); }
.author-card { display: flex; flex-direction: column; align-items: center; text-align: center; }
.author-avatar { width: 160rpx; height: 160rpx; border-radius: 50%; background: linear-gradient(135deg, #00CED1 0%, #20B2AA 100%); display: flex; align-items: center; justify-content: center; font-size: 60rpx; font-weight: 700; color: #fff; margin-bottom: 24rpx; }
.author-name { font-size: 40rpx; font-weight: 700; color: #fff; display: block; }
.author-desc { font-size: 28rpx; color: rgba(255,255,255,0.5); margin-top: 8rpx; display: block; }
.author-tags { display: flex; gap: 16rpx; margin-top: 24rpx; justify-content: center; flex-wrap: wrap; }
.tag { font-size: 22rpx; padding: 12rpx 24rpx; border-radius: 32rpx; background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.5); }
.tag.brand { background: rgba(0,206,209,0.1); color: #00CED1; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16rpx; margin-bottom: 24rpx; }
.stat-item { padding: 24rpx; border-radius: 24rpx; background: #1c1c1e; border: 2rpx solid rgba(255,255,255,0.05); text-align: center; }
.stat-icon { font-size: 40rpx; display: block; margin-bottom: 12rpx; opacity: 0.9; }
.stat-value { font-size: 32rpx; font-weight: 700; color: #fff; display: block; }
.stat-label { font-size: 20rpx; color: rgba(255,255,255,0.4); }
.section-title { font-size: 32rpx; font-weight: 600; color: #fff; display: block; margin-bottom: 16rpx; }
.section-paras { }
.section-para { font-size: 28rpx; color: rgba(255,255,255,0.8); line-height: 1.7; display: block; margin-bottom: 16rpx; }
.section-para.brand { color: #00CED1; font-weight: 500; }
.timeline { }
.timeline-item { display: flex; gap: 24rpx; }
.timeline-dot-wrap { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; }
.timeline-dot { width: 16rpx; height: 16rpx; border-radius: 50%; background: #00CED1; }
.timeline-line { width: 4rpx; flex: 1; min-height: 24rpx; background: rgba(255,255,255,0.2); margin-top: 8rpx; }
.timeline-content { flex: 1; padding-bottom: 24rpx; }
.milestone-year { font-size: 28rpx; color: #00CED1; font-weight: 600; display: block; margin-bottom: 8rpx; }
.milestone-event { font-size: 26rpx; color: rgba(255,255,255,0.7); display: block; line-height: 1.5; }
.join-card { background: linear-gradient(90deg, rgba(0,206,209,0.1) 0%, rgba(32,178,170,0.05) 100%); border-color: rgba(0,206,209,0.2); text-align: center; }
.join-title { font-size: 32rpx; font-weight: 600; color: #fff; display: block; margin-bottom: 8rpx; }
.join-desc { font-size: 28rpx; color: rgba(255,255,255,0.5); display: block; margin-bottom: 24rpx; }
.btn-join { width: 100%; padding: 24rpx; border-radius: 24rpx; background: #00CED1; color: #fff; font-size: 30rpx; font-weight: 500; text-align: center; }