-
一场SOUL的创业实验场
-
© 2025 卡若 · 每日直播 06:00-09:00
+
+
+ {/* 分隔线 */}
+
+
+
+ {/* Logo/品牌 */}
+
+
+ {/* 信息 */}
+
+ 每日直播 06:00-09:00 · Soul派对房
+
+
+ {/* 链接 */}
+
+
+ {/* 版权 */}
+
+ © {new Date().getFullYear()} 卡若 · All rights reserved
+
+
)
diff --git a/components/payment-modal.tsx b/components/payment-modal.tsx
index dacd836..24d7bf3 100644
--- a/components/payment-modal.tsx
+++ b/components/payment-modal.tsx
@@ -2,8 +2,7 @@
import type React from "react"
import { useState, useEffect } from "react"
-import { X, CheckCircle, Bitcoin, Globe, Copy, Check, QrCode } from "lucide-react"
-import { Button } from "@/components/ui/button"
+import { X, CheckCircle, Bitcoin, Globe, Copy, Check, QrCode, Shield, Users } from "lucide-react"
import { useStore } from "@/lib/store"
const WechatIcon = () => (
@@ -65,10 +64,8 @@ export function PaymentModal({ isOpen, onClose, type, sectionId, sectionTitle, a
}
const handlePayment = async () => {
- // 直接显示支付二维码/详情页面
setShowQRCode(true)
- // 如果有跳转链接,尝试打开
if (paymentMethod === "wechat" && paymentConfig.wechat?.qrCode) {
const link = paymentConfig.wechat.qrCode
if (link.startsWith("http") || link.startsWith("weixin://")) {
@@ -98,7 +95,6 @@ export function PaymentModal({ isOpen, onClose, type, sectionId, sectionTitle, a
if (success) {
setIsSuccess(true)
- // 支付成功后跳转微信群
const groupUrl = paymentConfig.wechat?.groupQrCode
if (groupUrl) {
setTimeout(() => {
@@ -122,6 +118,7 @@ export function PaymentModal({ isOpen, onClose, type, sectionId, sectionTitle, a
name: string
icon: React.ReactNode
color: string
+ iconBg: string
enabled: boolean
extra?: string
}[] = [
@@ -129,21 +126,24 @@ export function PaymentModal({ isOpen, onClose, type, sectionId, sectionTitle, a
id: "wechat",
name: "微信支付",
icon:
,
- color: "bg-[#07C160]",
+ color: "#07C160",
+ iconBg: "rgba(7, 193, 96, 0.15)",
enabled: paymentConfig.wechat?.enabled ?? true,
},
{
id: "alipay",
name: "支付宝",
icon:
,
- color: "bg-[#1677FF]",
+ color: "#1677FF",
+ iconBg: "rgba(22, 119, 255, 0.15)",
enabled: paymentConfig.alipay?.enabled ?? true,
},
{
id: "usdt",
name: `USDT (${paymentConfig.usdt?.network || "TRC20"})`,
icon:
,
- color: "bg-[#26A17B]",
+ color: "#26A17B",
+ iconBg: "rgba(38, 161, 123, 0.15)",
enabled: paymentConfig.usdt?.enabled ?? true,
extra: `≈ $${usdtAmount}`,
},
@@ -151,7 +151,8 @@ export function PaymentModal({ isOpen, onClose, type, sectionId, sectionTitle, a
id: "paypal",
name: "PayPal",
icon:
,
- color: "bg-[#003087]",
+ color: "#003087",
+ iconBg: "rgba(0, 48, 135, 0.15)",
enabled: paymentConfig.paypal?.enabled ?? false,
extra: `≈ $${paypalAmount}`,
},
@@ -159,7 +160,7 @@ export function PaymentModal({ isOpen, onClose, type, sectionId, sectionTitle, a
const availableMethods = paymentMethods.filter((m) => m.enabled)
- // 二维码/详情页面
+ // 二维码/详情页面 - iOS毛玻璃风格
if (showQRCode) {
const isCrypto = paymentMethod === "usdt"
const isPaypal = paymentMethod === "paypal"
@@ -169,7 +170,7 @@ export function PaymentModal({ isOpen, onClose, type, sectionId, sectionTitle, a
let address = ""
let displayAmount = `¥${amount.toFixed(2)}`
let title = "扫码支付"
- let hint = "支付完成后,请点击下方已完成支付按钮"
+ let hint = "支付完成后,请点击下方按钮确认"
let qrCodeUrl = ""
if (isCrypto) {
@@ -193,87 +194,110 @@ export function PaymentModal({ isOpen, onClose, type, sectionId, sectionTitle, a
}
return (
-
-
-
-
-
+
+
+
+ {/* 顶部把手 - 仅移动端 */}
+
+
+
+
-
+
{/* 标题 */}
-
{title}
-
+
{title}
+
{/* 金额显示 */}
-
{displayAmount}
+
{displayAmount}
{/* QR Code Display */}
{(isWechat || isAlipay) && (
-
+
{qrCodeUrl ? (
) : (
- 请在后台配置收款码
+ 请在后台配置收款码
)}
-
{hint}
+
{hint}
)}
{/* Crypto/PayPal Address */}
{(isCrypto || isPaypal) && (
-
-
+
+
{isCrypto ? `收款地址 (${paymentConfig.usdt?.network})` : "PayPal账户"}
-
{address || "请在后台配置收款地址"}
+
+ {address || "请在后台配置收款地址"}
+
{address && (
handleCopyAddress(address)}
- className="text-[#38bdac] hover:text-[#4fd4c4]"
+ className="w-10 h-10 rounded-xl bg-[var(--app-brand-light)] flex items-center justify-center text-[var(--app-brand)] touch-feedback"
>
{copied ? : }
)}
-
{hint}
+
{hint}
)}
{/* 提示信息 */}
-
-
支付完成后,系统将自动开通阅读权限
+
+
+
+
+
+
+ 支付完成后,系统将自动开通阅读权限
+
+
{/* Action Buttons */}
-
setShowQRCode(false)}
- variant="outline"
- className="flex-1 border-gray-600 text-white hover:bg-gray-700/50 bg-transparent"
+ className="btn-ios-secondary flex-1"
>
返回
-
-
+
- {isProcessing ? "处理中..." : "已完成支付"}
-
+ {isProcessing ? (
+
+ ) : (
+ "已完成支付"
+ )}
+
@@ -285,98 +309,133 @@ export function PaymentModal({ isOpen, onClose, type, sectionId, sectionTitle, a
if (isSuccess) {
return (
-
-
+
+
-
-
+ {/* 成功动画 */}
+
+
-
支付成功
-
{type === "fullbook" ? "您已解锁全部内容" : "您已解锁本节内容"}
- {paymentConfig.wechat?.groupQrCode &&
正在跳转到微信群...
}
+
支付成功
+
+ {type === "fullbook" ? "您已解锁全部内容" : "您已解锁本节内容"}
+
+ {paymentConfig.wechat?.groupQrCode && (
+
+ )}
)
}
- // 主支付选择页面
+ // 主支付选择页面 - iOS风格
return (
-
-
-
+
+
+
+ {/* 顶部把手 - 仅移动端 */}
+
+
-
+
{/* Header */}
-
-
确认支付
-
+
+
确认支付
+
{type === "fullbook" ? "购买整本书,解锁全部内容" : `购买: ${sectionTitle}`}
{/* Amount */}
-
-
支付金额
-
¥{amount.toFixed(2)}
+
+
支付金额
+
¥{amount.toFixed(2)}
{(paymentMethod === "usdt" || paymentMethod === "paypal") && (
-
≈ ${paymentMethod === "usdt" ? usdtAmount : paypalAmount} USD
+
+ ≈ ${paymentMethod === "usdt" ? usdtAmount : paypalAmount} USD
+
)}
{user?.referredBy && (
-
- 通过邀请注册,{settings?.distributorShare || 90}%将返还给推荐人
-
+
+
+
+ 推荐人将获得 {settings?.distributorShare || 90}% 返佣
+
+
)}
{/* Payment Methods */}
-
-
选择支付方式
- {availableMethods.map((method) => (
-
setPaymentMethod(method.id)}
- className={`w-full p-4 rounded-xl border flex items-center gap-4 transition-all ${
- paymentMethod === method.id
- ? "border-[#38bdac] bg-[#38bdac]/10"
- : "border-gray-700 hover:border-gray-600 hover:bg-[#162840]"
- }`}
- >
-
- {method.icon}
-
-
- {method.name}
- {method.extra && {method.extra} }
-
- {paymentMethod === method.id && }
-
- ))}
- {availableMethods.length === 0 &&
暂无可用支付方式
}
+
+
选择支付方式
+
+ {availableMethods.map((method) => (
+
setPaymentMethod(method.id)}
+ className={`w-full p-4 rounded-xl flex items-center gap-4 transition-all touch-feedback ${
+ paymentMethod === method.id
+ ? "glass-card-light border-[var(--app-brand)]/30"
+ : "glass-card hover:border-[var(--glass-border-light)]"
+ }`}
+ >
+
+ {method.icon}
+
+
+ {method.name}
+ {method.extra && (
+ {method.extra}
+ )}
+
+ {paymentMethod === method.id && (
+
+
+
+ )}
+
+ ))}
+ {availableMethods.length === 0 && (
+
暂无可用支付方式
+ )}
+
{/* Submit Button */}
-
{isProcessing ? (
-
+
) : (
`确认支付 ¥${amount.toFixed(2)}`
)}
-
-
支付即表示同意《用户协议》和《隐私政策》
+
+
+ 支付即表示同意《用户协议》和《隐私政策》
+
diff --git a/components/purchase-section.tsx b/components/purchase-section.tsx
index d2cb5e7..386e0d9 100644
--- a/components/purchase-section.tsx
+++ b/components/purchase-section.tsx
@@ -1,8 +1,7 @@
"use client"
import { useState, useEffect } from "react"
-import { Button } from "@/components/ui/button"
-import { Zap, BookOpen } from "lucide-react"
+import { Zap, BookOpen, Check, TrendingUp } from "lucide-react"
import { getFullBookPrice, getAllSections } from "@/lib/book-data"
import { useStore } from "@/lib/store"
import { AuthModal } from "./modules/auth/auth-modal"
@@ -30,57 +29,111 @@ export function PurchaseSection() {
}
return (
-
-
- {/* Pricing cards - stacked on mobile */}
-
- {/* Single section */}
-
+
+
+ {/* 区域标题 */}
+
+
+ {/* 定价卡片 */}
+
+ {/* 单节购买 */}
+
-
-
+
+
+
+
-
单节购买
-
按兴趣选择
+
单节购买
+
按兴趣选择章节
- {/* Full book - highlighted */}
-
-
- 推荐
-
-
-
-
-
-
-
整本购买
-
全部{sectionsCount}节 · 后续更新免费
+ {/* 整本购买 - 推荐 */}
+
+ {/* 推荐标签 */}
+
+
+
+ 最划算
+
+
+
+
+ {/* 背景光效 */}
+
+
+
+
+
+
+
+
+
+
整本购买
+
+ 全部 {sectionsCount} 节内容
+
+
+
+
+
¥{fullBookPrice.toFixed(1)}
+
¥{sectionsCount}
+
-
-
-
¥{fullBookPrice.toFixed(1)}
+
+ {/* 权益列表 */}
+
+ {[
+ "解锁全部 " + sectionsCount + " 节商业案例",
+ "后续更新内容免费阅读",
+ "专属读者社群入群资格",
+ "分销返佣最高90%"
+ ].map((benefit, idx) => (
+
+ ))}
+
+
+ {/* 购买按钮 */}
+
+ 立即购买
+
-
-
- 立即购买
-
- {/* Dynamic pricing note */}
-
动态定价: 每新增一章节,整本价格+¥1
+ {/* 动态定价说明 */}
+
+
+
+
+
+
+
动态定价机制
+
+ 每新增一章节,整本价格 +¥1,早买早优惠
+
+
+
+
setIsAuthOpen(false)} />
diff --git a/components/table-of-contents.tsx b/components/table-of-contents.tsx
index 5a45b7f..835c2ef 100644
--- a/components/table-of-contents.tsx
+++ b/components/table-of-contents.tsx
@@ -1,7 +1,7 @@
"use client"
import Link from "next/link"
-import { ChevronRight } from "lucide-react"
+import { ChevronRight, BookOpen, FileText } from "lucide-react"
import { Part } from "@/lib/book-data"
interface TableOfContentsProps {
@@ -10,54 +10,79 @@ interface TableOfContentsProps {
export function TableOfContents({ parts }: TableOfContentsProps) {
return (
-
+
- {/* Section title */}
-
全书 {parts.length} 篇
+ {/* 区域标题 */}
+
+
+ 全书目录
+
+
+ 共 {parts.length} 篇
+
+
- {/* Parts list */}
-
- {parts.map((part) => (
-
-
-
-
-
{part.number}
-
-
- {part.title}
-
-
{part.subtitle}
-
- {part.chapters.length} 章 · {part.chapters.reduce((acc, c) => acc + c.sections.length, 0)} 节
-
-
+ {/* 章节列表 - iOS列表风格 */}
+
+ {parts.map((part, index) => (
+
+
+
+ {/* 序号标识 */}
+
+ {part.number}
+
+
+ {/* 内容 */}
+
+
+ {part.title}
+
+
+ {part.subtitle}
+
+
+ {part.chapters.length} 章 · {part.chapters.reduce((acc, c) => acc + c.sections.length, 0)} 节
+
-
+
+ {/* 箭头 */}
+
))}
- {/* Additional content */}
-
-
-
-
-
序言
-
- 为什么我每天早上6点在Soul开播?
-
+ {/* 附加内容 - 序言和尾声 */}
+
+
+
+
+
+ 序言
-
-
-
-
尾声
-
努力不是关键,选择才是
+
+ 为什么我每天早上6点在Soul开播?
+
+
+
+
+
+
+
+ 努力不是关键,选择才是
+
+
+
diff --git a/记忆.md b/记忆.md
index 4462632..0fd6365 100644
--- a/记忆.md
+++ b/记忆.md
@@ -69,7 +69,7 @@
- **独创模式**:「云阿米巴」(核心心法:①分不属于对方的钱;②按创造价值分钱;③用稳定流量+便捷私域体系绑定合作方;拒绝分股份,现金激励更有效)。
### **人脉与联系方式**
-- **关键人脉**:夏茜、杨红、王诚鹏、章卫国、陈佳亮、李冰(木子)、慧娟(拉多)、陈裕彬、陈雪融、王路、黄鹭、庄建忠(庄老师)、吉咪宇(小吉)、李长俊、陈华宇(樊登陈总)、骆剑峰、陈鹭明(明哥)、李嘉柔(嘉柔)、天行、婼瑄(小吉或阿猫)。
+- **关键人脉**:夏茜、王诚鹏、章卫国、陈佳亮、李冰(木子)、慧娟(拉多)、陈裕彬、陈雪融、王路、黄鹭、庄建忠(庄老师)、吉咪宇(小吉)、李长俊、陈华宇(樊登陈总)、骆剑峰、陈鹭明(明哥)、李嘉柔(嘉柔)、天行、婼瑄(小吉或阿猫)。
- **联系方式**:电话15880802661;微信28533368。
### **技术与数据信息**(仅限内部使用)
@@ -124,6 +124,6 @@
- 融资计划:Pre-A轮融资300万,用于流量投放(60%)、系统升级(30%)、团队扩张(10%)。
### **卡若风格文章要求**
-- **结构**:开头自问自答→主体故事/反思(含具体数据,如“30个抖音号日播放量1万+”“10家企业月均分润1.2万”)→结尾行动指引(例:“现在扫码加微信,领取《私域云阿米巴操作手册》”)。
+- **结构**:开头自问自答→主体故事/反思(含具体数据,如“”“10家企业月均分润1.2万”)→结尾行动指引(例:“现在扫码加微信,领取《私域云阿米巴操作手册》”)。
- **语言**:简洁直接(例:“别等了!流量不会自己来,现在行动才是关键!”);挑战传统(例:“别再求合作方签对赌协议,分现钱比占股更实在!”)。
- **字数**:不低于2000字,数据需引用官方报告(如艾瑞咨询、企业后台数据)或聊天记录,避免臆造。