diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 2d75c7b..0000000 --- a/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -node_modules/ -.next/ -.env.local -.DS_Store -.trae/ -*.log diff --git a/.gitignore 2 b/.gitignore 2 deleted file mode 100644 index c2658d7..0000000 --- a/.gitignore 2 +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md deleted file mode 100644 index eac2e65..0000000 --- a/DEPLOYMENT.md +++ /dev/null @@ -1,90 +0,0 @@ -# 部署指南 - -## 生产环境部署步骤 - -### 1. Vercel部署 - -```bash -# 安装Vercel CLI -npm install -g vercel - -# 登录Vercel -vercel login - -# 部署项目 -vercel --prod -``` - -### 2. 环境变量配置 - -在Vercel项目设置中添加以下环境变量: - -**支付宝配置:** -- `ALIPAY_PARTNER_ID`: 2088511801157159 -- `ALIPAY_KEY`: lz6ey1h3kl9zqkgtjz3avb5gk37wzbrp -- `ALIPAY_APP_ID`: wx432c93e275548671 -- `ALIPAY_RETURN_URL`: https://your-domain.com/payment/success -- `ALIPAY_NOTIFY_URL`: https://your-domain.com/api/payment/alipay/notify - -**微信支付配置:** -- `WECHAT_APP_ID`: wx432c93e275548671 -- `WECHAT_APP_SECRET`: 25b7e7fdb7998e5107e242ebb6ddabd0 -- `WECHAT_MCH_ID`: 1318592501 -- `WECHAT_API_KEY`: wx3e31b068be59ddc131b068be59ddc2 -- `WECHAT_NOTIFY_URL`: https://your-domain.com/api/payment/wechat/notify - -**基础配置:** -- `NEXT_PUBLIC_BASE_URL`: https://your-domain.com - -### 3. 域名配置 - -1. 在Vercel项目设置中绑定自定义域名 -2. 配置DNS记录指向Vercel -3. 启用HTTPS(Vercel自动配置SSL证书) - -### 4. 支付回调配置 - -**支付宝配置:** -1. 登录支付宝开放平台 -2. 在应用详情中配置异步通知地址:`https://your-domain.com/api/payment/alipay/notify` -3. 配置同步返回地址:`https://your-domain.com/payment/success` - -**微信支付配置:** -1. 登录微信商户平台 -2. 在产品中心配置支付回调URL:`https://your-domain.com/api/payment/wechat/notify` -3. 添加支付授权域名:`your-domain.com` - -### 5. 测试流程 - -1. 创建测试订单 -2. 使用沙箱环境测试支付宝支付 -3. 使用微信开发者工具测试微信支付 -4. 验证回调接口正常接收 -5. 确认订单状态更新正确 -6. 验证内容解锁功能 - -### 6. 监控和日志 - -- 在Vercel Dashboard查看部署日志 -- 使用Vercel Analytics监控访问数据 -- 配置错误告警通知 - -## 本地开发 - -```bash -# 安装依赖 -npm install - -# 启动开发服务器 -npm run dev - -# 访问 http://localhost:3000 -``` - -## 注意事项 - -1. 生产环境必须使用HTTPS -2. 定期更新支付密钥 -3. 保护环境变量安全 -4. 备份用户数据 -5. 监控支付异常 diff --git a/README.md b/README.md deleted file mode 100644 index abb72cd..0000000 --- a/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# AI phone branding - -*Automatically synced with your [v0.app](https://v0.app) deployments* - -[![Deployed on Vercel](https://img.shields.io/badge/Deployed%20on-Vercel-black?style=for-the-badge&logo=vercel)](https://vercel.com/fnvtks-projects/v0--ap) -[![Built with v0](https://img.shields.io/badge/Built%20with-v0.app-black?style=for-the-badge)](https://v0.app/chat/tPF15XbLAKD) - -## Overview - -This repository will stay in sync with your deployed chats on [v0.app](https://v0.app). -Any changes you make to your deployed app will be automatically pushed to this repository from [v0.app](https://v0.app). - -## Deployment - -Your project is live at: - -**[https://vercel.com/fnvtks-projects/v0--ap](https://vercel.com/fnvtks-projects/v0--ap)** - -## Build your app - -Continue building your app on: - -**[https://v0.app/chat/tPF15XbLAKD](https://v0.app/chat/tPF15XbLAKD)** - -## How It Works - -1. Create and modify your project using [v0.app](https://v0.app) -2. Deploy your chats from the v0 interface -3. Changes are automatically pushed to this repository -4. Vercel deploys the latest version from this repository diff --git a/SYNC_LOG.md b/SYNC_LOG.md deleted file mode 100644 index 27097d7..0000000 --- a/SYNC_LOG.md +++ /dev/null @@ -1 +0,0 @@ -Mon Dec 29 18:11:24 CST 2025 diff --git a/addons/Universal_Payment_Module/1_核心设计_通用协议/API接口定义.md b/addons/Universal_Payment_Module/1_核心设计_通用协议/API接口定义.md deleted file mode 100644 index 1000824..0000000 --- a/addons/Universal_Payment_Module/1_核心设计_通用协议/API接口定义.md +++ /dev/null @@ -1,94 +0,0 @@ -# 通用支付模块 API 接口定义 (Universal Payment API) - -无论后端使用何种语言(Python/Node/Go),请严格实现以下 RESTful 接口。 - -## 1. 核心交易接口 (Core Transaction) - -### 1.1 创建订单 -* **URL**: `POST /api/payment/create_order` -* **Description**: 业务系统通知支付模块创建一个待支付订单。 -* **Request Body**: - \`\`\`json - { - "user_id": "u1001", // 用户ID - "title": "VIP Membership", // 订单标题 - "amount": 99.00, // 金额 (法币单位: 元 / 美元) - "currency": "CNY", // 币种: CNY, USD - "product_id": "vip_01", // 商品ID - "extra_params": {} // 扩展参数 - } - \`\`\` -* **Response**: - \`\`\`json - { - "code": 200, - "data": { - "order_sn": "202310270001", // 支付系统生成的唯一订单号 - "status": "created" - } - } - \`\`\` - -### 1.2 发起支付 (收银台) -* **URL**: `POST /api/payment/checkout` -* **Description**: 用户选择支付方式后,获取支付参数。 -* **Request Body**: - \`\`\`json - { - "order_sn": "202310270001", - "gateway": "alipay_qr", // 支付方式: alipay_qr, wechat_jsapi, paypal, usdt, stripe - "return_url": "https://...", // 支付成功后前端跳转地址 - "openid": "..." // 微信JSAPI支付必填 - } - \`\`\` -* **Response**: - \`\`\`json - { - "code": 200, - "data": { - "type": "url", // url (跳转), qrcode (扫码), json (SDK参数), address (USDT) - "payload": "https://...", // 具体内容 - "expiration": 1800 // 过期时间(秒) - } - } - \`\`\` - -### 1.3 查询订单状态 -* **URL**: `GET /api/payment/status/{order_sn}` -* **Description**: 前端轮询使用。 -* **Response**: - \`\`\`json - { - "code": 200, - "data": { - "status": "paid", // created, paying, paid, closed - "paid_amount": 99.00, - "paid_at": "2023-10-27 10:00:00" - } - } - \`\`\` - ---- - -## 2. 回调通知接口 (Webhook) - -### 2.1 统一回调入口 -* **URL**: `POST /api/payment/notify/{gateway}` -* **Description**: 接收第三方支付平台的异步通知。 -* **Path Params**: - * `gateway`: `alipay`, `wechat`, `paypal`, `stripe`, `nowpayments` -* **Logic**: - 1. 根据 gateway 加载对应驱动。 - 2. 验签 (Verify Signature)。 - 3. 幂等性检查 (Idempotency Check)。 - 4. 更新订单状态。 - 5. 返回平台所需的响应字符串 (e.g. `success`, `200 OK`). - ---- - -## 3. 辅助接口 - -### 3.1 获取汇率 -* **URL**: `GET /api/payment/exchange_rate` -* **Params**: `from=USD&to=CNY` -* **Response**: `{"rate": 7.21}` diff --git a/addons/Universal_Payment_Module/1_核心设计_通用协议/标准配置模板.yaml b/addons/Universal_Payment_Module/1_核心设计_通用协议/标准配置模板.yaml deleted file mode 100644 index 03dd6fe..0000000 --- a/addons/Universal_Payment_Module/1_核心设计_通用协议/标准配置模板.yaml +++ /dev/null @@ -1,70 +0,0 @@ -# 全球支付模块标准配置模板 (Standard Config) - -# 无论你使用 Python, Node.js, Go 还是 Java,请将此配置映射到你的环境(如 .env, config.py, config.js) - -# ------------------------------------------------------------------- -# 1. 基础环境 (Environment) -# ------------------------------------------------------------------- -APP_ENV: "production" # development / production -APP_URL: "https://your-site.com" # 你的网站域名 (用于回调) - -# ------------------------------------------------------------------- -# 2. 数据库 (Database) -# ------------------------------------------------------------------- -# 系统会自动生成 order 和 pay_trade 表 -DB_CONNECTION: "mysql" # mysql / postgres / sqlite -DB_HOST: "127.0.0.1" -DB_PORT: "3306" -DB_DATABASE: "payment_db" -DB_USERNAME: "root" -DB_PASSWORD: "password" - -# ------------------------------------------------------------------- -# 3. 支付宝 (Alipay) - CN -# ------------------------------------------------------------------- -ALIPAY_ENABLED: true -ALIPAY_APP_ID: "20210001..." -ALIPAY_PRIVATE_KEY: "MIIETv..." # 商户私钥 -ALIPAY_PUBLIC_KEY: "MIIBIj..." # 支付宝公钥 - -# ------------------------------------------------------------------- -# 4. 微信支付 (Wechat Pay) - CN -# ------------------------------------------------------------------- -WECHAT_ENABLED: true -WECHAT_APP_ID: "wx123456..." # 公众号/小程序 AppID -WECHAT_MCH_ID: "1234567890" # 商户号 -WECHAT_API_V3_KEY: "abcdef..." # APIv3 密钥 (32位) -WECHAT_CERT_SERIAL: "45F59C..." # 证书序列号 -WECHAT_PRIVATE_KEY_PATH: "./cert/apiclient_key.pem" -WECHAT_CERT_PATH: "./cert/apiclient_cert.pem" - -# ------------------------------------------------------------------- -# 5. PayPal - Global -# ------------------------------------------------------------------- -PAYPAL_ENABLED: true -PAYPAL_MODE: "live" # sandbox / live -PAYPAL_CLIENT_ID: "Af7s8..." -PAYPAL_CLIENT_SECRET: "EKd9..." - -# ------------------------------------------------------------------- -# 6. Stripe - Global -# ------------------------------------------------------------------- -STRIPE_ENABLED: true -STRIPE_PUBLIC_KEY: "pk_live_..." -STRIPE_SECRET_KEY: "sk_live_..." -STRIPE_WEBHOOK_SECRET: "whsec_..." - -# ------------------------------------------------------------------- -# 7. USDT (Crypto) - Web3 -# ------------------------------------------------------------------- -USDT_ENABLED: true -USDT_GATEWAY_TYPE: "nowpayments" # nowpayments / native (原生监听) - -# 选项 A: NOWPayments (第三方网关) -NOWPAYMENTS_API_KEY: "R1G..." -NOWPAYMENTS_IPN_SECRET: "secret..." - -# 选项 B: Native (原生监听 - TRC20) -TRON_NODE_API: "https://api.trongrid.io" -TRON_WALLET_ADDRESS: "T9yD14Nj9..." # 你的收款地址 -TRON_CHECK_INTERVAL: 60 # 轮询间隔 (秒) diff --git a/addons/Universal_Payment_Module/2_智能对接_AI指令/通用集成指令.md b/addons/Universal_Payment_Module/2_智能对接_AI指令/通用集成指令.md deleted file mode 100644 index f89dc28..0000000 --- a/addons/Universal_Payment_Module/2_智能对接_AI指令/通用集成指令.md +++ /dev/null @@ -1,44 +0,0 @@ -# 通用支付模块智能对接指令 (AI Integration Prompt) v3.0 - -**角色设定**: 你是一位精通全球支付架构(Alipay/Wechat/PayPal/Stripe/USDT)的资深全栈架构师。 - -**任务目标**: -我提供了一个**完全配置驱动 (Configuration-Driven)** 的通用支付模块设计。 -请你根据我的目标项目环境,将此支付功能无缝集成进去。 - -**核心资源 (Input)**: -1. **标准配置模板**: `1_核心设计_通用协议/标准配置模板.yaml` (所有支付参数的 Key) -2. **API 接口契约**: `1_核心设计_通用协议/API接口定义.md` (标准 RESTful 接口) -3. **核心业务模型**: `1_核心设计_通用协议/业务逻辑与模型.md` (数据库表结构) - -**集成模式 (选择一种)**: - -### 模式 A: 嵌入式集成 (Library Mode) - *推荐* -适用于将支付功能直接写在现有的后端项目中 (如 Django app, NestJS module)。 - -**步骤**: -1. **环境识别**: 检查我的项目语言 (Python/Node/Go/Java)。 -2. **依赖安装**: 根据语言推荐 SDK (e.g. `alipay-sdk-python`, `stripe`). -3. **配置加载**: 创建代码读取 `标准配置模板.yaml` 中的环境变量。 -4. **模型生成**: 根据 `业务逻辑与模型.md` 生成 ORM 代码 (User/Order/PayTrade)。 -5. **接口实现**: 严格按照 `API接口定义.md` 实现 Controller/View。 - * *要求*: 使用工厂模式 (`PaymentFactory`) 管理不同网关。 - -### 模式 B: 微服务集成 (Microservice Mode) -适用于将支付功能独立部署为一个 Docker 容器。 - -**步骤**: -1. **服务生成**: 用 Go (Gin) 或 Node.js (Express) 生成一个独立服务。 -2. **Docker化**: 编写 `Dockerfile` 和 `docker-compose.yml`。 -3. **网关代理**: 配置 Nginx 或 API Gateway 将 `/api/payment` 转发给此服务。 - ---- - -**给 AI 的执行指令 (Prompt)**: - -> "请读取 `Universal_Payment_Module` 目录下的所有设计文档。 -> 我的当前项目是基于 **[你的语言/框架]** 的。 -> 请采用 **[模式 A / 模式 B]** 为我集成支付功能。 -> 1. 首先生成依赖安装命令。 -> 2. 然后生成数据库模型代码。 -> 3. 最后实现符合 `API接口定义.md` 的核心接口代码。" diff --git a/addons/Universal_Payment_Module/3_逻辑参考_通用实现/前端收银台Demo.html b/addons/Universal_Payment_Module/3_逻辑参考_通用实现/前端收银台Demo.html deleted file mode 100644 index 3a68421..0000000 --- a/addons/Universal_Payment_Module/3_逻辑参考_通用实现/前端收银台Demo.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - 通用收银台 Demo - - - - -
-
-
订单支付
-
¥ 99.00
-
订单号: 202310270001
-
- -
- -
- 🔵 支付宝 (Alipay) - -
- -
- 🟢 微信支付 (Wechat) - -
- -
- 🅿️ PayPal (USD) - -
- -
- 🪙 USDT (TRC20) - -
-
- -
- QRCode -

请扫描二维码支付

-
- - -
- - - - - diff --git a/addons/Universal_Payment_Module/README.md b/addons/Universal_Payment_Module/README.md deleted file mode 100644 index 06c4ae2..0000000 --- a/addons/Universal_Payment_Module/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# 全球通用支付模块 (Universal Payment Module) v3.0 - -这是一个**配置驱动 (Configuration-Driven)**、**API 优先 (API-First)** 的全球支付解决方案包。 -它通过标准化的协议和 AI 指令,让任何语言的项目都能在 5 分钟内接入支付宝、微信、PayPal、Stripe 和 USDT。 - -## 📂 模块结构 (Directory Structure) - -\`\`\` -Universal_Payment_Module/ -├── 1_核心设计_通用协议/ # [灵魂] 定义了支付的“法律” -│ ├── 标准配置模板.yaml # [新增] 填空即可配置所有支付参数 -│ ├── API接口定义.md # [新增] 无论用什么语言,接口都长这样 -│ ├── 业务逻辑与模型.md # 数据库表结构设计 (Order/PayTrade) -│ └── 接口注册指南.md # 申请 Key 的教程 -│ -├── 2_智能对接_AI指令/ # [工具] AI 编译器 -│ └── 通用集成指令.md # 发给 AI,自动生成代码 -│ -├── 3_逻辑参考_通用实现/ # [参考] -│ ├── 前端收银台Demo.html # [新增] 原生 JS 实现的通用收银台 -│ ├── 后端源码/ # PHP 参考实现 -│ └── 前端模板/ # Twig 参考模板 -│ -└── README.md # 本说明文档 -\`\`\` - -## 🚀 极速对接 (Integration Guide) - -### 第一步:配置 (Config) -1. 打开 `1_核心设计_通用协议/标准配置模板.yaml`。 -2. 将文件内容复制到你项目的配置文件中(如 `.env` 或 `config.py`)。 -3. 填入你申请到的 `APP_ID`, `PRIVATE_KEY` 等参数。 - -### 第二步:生成代码 (Generate) -1. 复制 `2_智能对接_AI指令/通用集成指令.md` 的内容。 -2. 打开 AI 助手,发送指令: - > "我的项目是用 **Python FastAPI** 写的。请根据上述文档,采用 **模式 A (嵌入式)** 为我集成支付功能。" -3. AI 会为你生成: - * `pip install ...` 命令 - * `models.py` (数据库模型) - * `payment_router.py` (API 接口) - -### 第三步:前端接入 (Frontend) -1. 参考 `3_逻辑参考_通用实现/前端收银台Demo.html`。 -2. 将其中的 `API_BASE` 替换为你后端实际的 API 地址。 -3. 即可拥有一个支持 **扫码、跳转、加密货币支付** 的全功能收银台。 - -## 🌍 支持能力 -| 渠道 | 能力 | 适用场景 | -| :--- | :--- | :--- | -| **Alipay / Wechat** | 扫码 / H5 / APP | 中国市场 (CNY) | -| **PayPal / Stripe** | 信用卡 / 订阅 | 全球市场 (USD/EUR...) | -| **USDT (TRC20)** | 链上转账 / 监听 | Web3 / 抗审查支付 | - -## ✨ v3.0 优化亮点 -* **配置驱动**: 不再需要改代码里的硬编码,所有参数通过配置文件注入。 -* **API 契约**: 明确了输入输出格式,前后端对接不再扯皮。 -* **前端 Demo**: 提供了一个不依赖任何框架的原生 JS 收银台,复制即用。 diff --git a/app/about/page.tsx b/app/about/page.tsx deleted file mode 100644 index e8b129e..0000000 --- a/app/about/page.tsx +++ /dev/null @@ -1,152 +0,0 @@ -"use client" - -import Link from "next/link" -import { ChevronLeft, Clock, MessageCircle, BookOpen, Users, Award, TrendingUp } from "lucide-react" -import { Button } from "@/components/ui/button" -import { useState } from "react" -import { QRCodeModal } from "@/components/modules/marketing/qr-code-modal" -import { useStore } from "@/lib/store" - -export default function AboutPage() { - const [showQRModal, setShowQRModal] = useState(false) - const { settings } = useStore() - const authorInfo = settings?.authorInfo || { - name: "卡若", - description: "连续创业者,私域运营专家", - liveTime: "06:00-09:00", - platform: "Soul派对房", - } - - const milestones = [ - { year: "2012", event: "开始做游戏推广,从魔兽世界外挂代理起步" }, - { year: "2015", event: "转型电商,做天猫虚拟充值,月流水380万" }, - { year: "2017", event: "团队扩张到200人,年流水3000万" }, - { year: "2018", event: "公司破产,负债数百万,开始全国旅行反思" }, - { year: "2019", event: "重新出发,专注私域运营和个人IP" }, - { year: "2024", event: "在Soul派对房每日直播,分享真实商业故事" }, - ] - - const stats = [ - { icon: BookOpen, value: "55+", label: "真实案例" }, - { icon: Users, value: "10000+", label: "派对房听众" }, - { icon: Award, value: "15年", label: "创业经验" }, - { icon: TrendingUp, value: "3000万", label: "最高年流水" }, - ] - - return ( -
- {/* Header */} -
-
- - - 返回 - -

关于作者

-
-
-
- -
- {/* Author Card */} -
-
-
- {authorInfo.name.charAt(0)} -
-
-

{authorInfo.name}

-

{authorInfo.description}

-
- - - 每日 {authorInfo.liveTime} - - - - {authorInfo.platform} - -
-
- -
-
- - {/* Stats */} -
- {stats.map((stat, index) => ( -
- -

{stat.value}

-

{stat.label}

-
- ))} -
- - {/* Introduction */} -
-

关于这本书

-
-

"这不是一本教你成功的鸡汤书。"

-

- 这是我每天早上6点到9点,在Soul派对房和几百个陌生人分享的真实故事。 有人来找项目,有人来找钱,有人来找方向。 -

-

- 我见过凌晨四点还在撸运费险的年轻人,见过七十岁还在开滴滴做生意的老人, - 见过一个月赚七八块却拼命倒卖游戏金币的大学生。 -

-

"社会不是靠努力,是靠洞察与选择。"

-

- 这本书,就是把那些在派对房里讲过的、能让人清醒的故事,整理成文字。每个案例都真实发生过,每个教训都是用钱换来的。 -

-
-
- - {/* Timeline */} -
-

创业历程

-
- {milestones.map((item, index) => ( -
-
-
- {index < milestones.length - 1 &&
} -
-
-

{item.year}

-

{item.event}

-
-
- ))} -
-
- - {/* CTA */} -
-

想听更多真实故事?

-

每天早上6-9点,卡若在Soul派对房免费分享

-
- - - - -
-
-
- - setShowQRModal(false)} /> -
- ) -} diff --git a/app/admin/content/loading.tsx b/app/admin/content/loading.tsx deleted file mode 100644 index f15322a..0000000 --- a/app/admin/content/loading.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export default function Loading() { - return null -} diff --git a/app/admin/content/page.tsx b/app/admin/content/page.tsx deleted file mode 100644 index 2da17e9..0000000 --- a/app/admin/content/page.tsx +++ /dev/null @@ -1,335 +0,0 @@ -"use client" - -import { useState } from "react" -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" -import { Button } from "@/components/ui/button" -import { Input } from "@/components/ui/input" -import { Label } from "@/components/ui/label" -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" -import { Textarea } from "@/components/ui/textarea" -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" -import { Badge } from "@/components/ui/badge" -import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from "@/components/ui/dialog" -import { bookData } from "@/lib/book-data" -import { - FileText, - BookOpen, - Settings2, - ChevronRight, - CheckCircle, - Edit3, - Save, - X, - RefreshCw, - Link2, -} from "lucide-react" - -interface EditingSection { - id: string - title: string - price: number - content?: string -} - -export default function ContentPage() { - const [expandedParts, setExpandedParts] = useState(["part-1"]) - const [editingSection, setEditingSection] = useState(null) - const [isSyncing, setIsSyncing] = useState(false) - const [feishuDocUrl, setFeishuDocUrl] = useState("") - const [showFeishuModal, setShowFeishuModal] = useState(false) - - const togglePart = (partId: string) => { - setExpandedParts((prev) => (prev.includes(partId) ? prev.filter((id) => id !== partId) : [...prev, partId])) - } - - const totalSections = bookData.reduce( - (sum, part) => sum + part.chapters.reduce((cSum, ch) => cSum + ch.sections.length, 0), - 0, - ) - - const handleEditSection = (section: { id: string; title: string; price: number }) => { - setEditingSection({ - id: section.id, - title: section.title, - price: section.price, - content: "", - }) - } - - const handleSaveSection = () => { - if (editingSection) { - // 保存到本地存储或API - console.log("[v0] Saving section:", editingSection) - alert(`已保存章节: ${editingSection.title}`) - setEditingSection(null) - } - } - - const handleSyncFeishu = async () => { - if (!feishuDocUrl) { - alert("请输入飞书文档链接") - return - } - setIsSyncing(true) - // 模拟同步过程 - await new Promise((resolve) => setTimeout(resolve, 2000)) - setIsSyncing(false) - setShowFeishuModal(false) - alert("飞书文档同步成功!") - } - - return ( -
-
-
-

内容管理

-

- 共 {bookData.length} 篇 · {totalSections} 节内容 -

-
- -
- - {/* 飞书同步弹窗 */} - - - - - - 同步飞书文档 - - -
-
- - setFeishuDocUrl(e.target.value)} - /> -

请确保文档已开启公开访问权限

-
-
-

- 同步说明:系统将自动解析飞书文档结构,按照标题层级导入为章节内容。 -

-
-
- - - - -
-
- - {/* 章节编辑弹窗 */} - setEditingSection(null)}> - - - - - 编辑章节 - - - {editingSection && ( -
-
- - setEditingSection({ ...editingSection, title: e.target.value })} - /> -
-
- - setEditingSection({ ...editingSection, price: Number(e.target.value) })} - /> -
-
- -