Commit Graph
19 Commits
Author SHA1 Message Date
abingyyds 8a6f957843 Revert "feat: 分站货币符号切换功能(¥/$ 可配置,默认人民币)"
This reverts commit 30fb22b9bc29180ee48f1531cffe6293731e2065.
2026-03-21 23:17:45 +09:00
abingyydsandClaude Sonnet 4.6 7a4cbb60d3 feat: 分站货币符号切换功能(¥/$ 可配置,默认人民币)
后端:
- Distributor 模型新增 CurrencySymbol 字段 (default: ¥)
- /api/dist/site/info 响应中返回 currency_symbol
- PUT /api/distributor/self 支持更新 currency_symbol

分站管理后台 (web):
- DistributorSettings 新增货币符号切换 (¥ CNY / $ USD)
- 添加 i18n 翻译 (en/zh/ja/fr/ru/vi)

分站前端 (dist-site):
- Dashboard: 余额、已用额度使用动态符号
- Packages: 套餐价格、原价、订阅余额使用动态符号
- Pricing: 模型输入/输出价格使用动态符号
- Topup: 预设金额、支付金额、历史记录使用动态符号
- 7 个主题 Home 页: 套餐价格展示使用动态符号
- 所有页面通过 useSite().currency_symbol 读取,统一 fallback ¥

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 23:09:46 +09:00
abingyydsandClaude Sonnet 4.6 3ed0f67be0 feat: 分站配置导出器模型搜索功能 + i18n 补全
ConfigExporter 模型下拉改为可搜索的自定义 combobox,
新增 config.searchModel / config.noModelMatch i18n 键。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 23:05:07 +09:00
abingyydsandClaude Sonnet 4.6 782439995f feat: 分站 API Key 支持随时查看复制 + 配置文件导出器
- 后端:DistTokenList 去掉 Clean(),返回完整 key 供前端显示
- 前端:Token 列表每行显示完整 key 和复制按钮
- 新增 ConfigExporter 组件,支持 7 种工具配置生成
  (Claude Code / OpenClaw / OpenCode / Cursor / cURL / Python / Anthropic SDK)
- 自动使用分站域名作为 API Base URL
- 中英文 i18n 翻译

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 22:54:52 +09:00
abingyydsandClaude Sonnet 4.6 172a588afe fix: 修复 clean/corporate 主题低对比度文本颜色 + 补充 i18n 翻译
- clean 主题 Home 页: text-gray-400 → text-gray-500 (统计标签、价格、时长)
- corporate 主题 Home 页: text-slate-400 → text-slate-500 (价格划线、时长)
- 补充 en/fr/ja/ru/vi 多语言翻译

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 18:22:12 +09:00
abingyydsandClaude Sonnet 4.6 6e99c12292 feat: 管理员"充值记录"改为"订单记录",新增分站订单查看
- 管理员侧边栏标签从"充值记录"改为"订单记录"
- 新增 Tab 切换:充值订单 / 分站订单
- 后端新增 GET /api/user/dist_orders 管理员接口
- 分站订单表格显示订单类型、金额、折扣比例、站点名称等
- 完善 6 语言 i18n 翻译
- 包含其他 Agent 的 dist-site 样式改动

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 18:08:48 +09:00
abingyydsandClaude Sonnet 4.6 aa7bbb3f56 chore: 提交其他 Agent 的未推送改动
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 17:22:17 +09:00
abingyydsandClaude Sonnet 4.6 6fc1a5b93c feat: enhance themes with react-bits components & add Claude theme
- Clean theme: added ShinyText badge, BlurText hero, SpotlightCard
  feature cards, StarBorder dashboard button
- Corporate theme: added GradientText hero, ShinyText badge,
  SpotlightCard feature cards and pricing cards
- New 'claude' theme: warm terracotta/coral (#D97757) color scheme
  with cream backgrounds, GradientText, BlurText, ShinyText,
  SpotlightCard, StarBorder - Claude's signature design language
- All themes include full nav with topup, LanguageSwitch, mobile menu

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 17:18:33 +09:00
abingyydsandClaude Sonnet 4.6 a570ecbbcd feat: add clean and corporate white-style theme templates
Add two new white-background themes with distinct design languages:
- Clean: soft blue accents, rounded cards, gradient CTA section
- Corporate: slate/professional palette, sharp borders, structured layout

Both themes include full nav (with topup), LanguageSwitch, FadeContent
animations, model grid, package cards, and responsive mobile menu.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 17:04:01 +09:00
abingyydsandClaude Sonnet 4.6 914ddf0a26 fix: 套餐购买系统修复 - 事务安全、购买记录、前端错误处理
- 新增 PackageOrder 模型,记录每次套餐购买的详细信息
- 将套餐扣费和充值操作改为数据库事务(原子操作),防止部分失败导致数据不一致
- 使用行级锁(FOR UPDATE)确保并发安全
- 添加 ErrInsufficientQuota 哨兵错误,提升错误处理可靠性
- 购买成功后记录操作日志(RecordLog)
- 前端 Packages.jsx 增加失败时的错误提示
- 分站模型管理和设置页面小幅修正

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 16:47:29 +09:00
abingyydsandClaude Sonnet 4.6 41d199625f fix: 分站支付跳转和回调问题
- EPay/Stripe: 前端传 return_url (window.location.origin + '/topup')
- 后端优先用 return_url,回退到 Origin/Referer 头
- Stripe: 分站自己实现下单,跳过 ValidateRedirectURL 验证
- 增加分站支付日志便于排查

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 16:09:49 +09:00
abingyydsandClaude Sonnet 4.6 1428aa2895 fix: 修复分站充值页面所有支付按钮不可用的问题
- EPay: 改用隐藏表单POST提交(与主站一致),修复参数缺失错误
- Stripe: 修正响应字段为 data.pay_link,使用 window.open 打开
- Crypto: 新增链(TRON/ETH/BSC)和代币(USDT/USDC)选择器,发送完整参数
- Creem: 改为产品模式,展示产品卡片,发送 product_id 而非 amount
- 新增相关 i18n 翻译键

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 15:35:54 +09:00
abingyydsandClaude Sonnet 4.6 e981315543 feat: 分站在线充值功能
- 新增 dist_topup.go 控制器,支持易支付/Stripe/Creem/加密货币充值
- 分站模型新增 enable_topup 字段
- 分站前端新增充值页面和导航入口
- 分站设置页新增充值开关
- 添加中英文 i18n 翻译

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 15:21:45 +09:00
abingyydsandClaude Sonnet 4.6 a512c4c344 fix: replace TiltedCard with SpotlightCard in default theme features
TiltedCard requires an imageSrc prop (renders <img>), but was used as
a children container, causing broken image icons. Replaced with
SpotlightCard which properly supports children content.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 14:59:57 +09:00
abingyydsandClaude Sonnet 4.6 662685cc97 feat: add language switch button and optimize theme visuals
- Add LanguageSwitch component to all 4 theme layouts (starter/default/dark/minimal)
- Import Noto Sans SC for proper Chinese font rendering
- Fix theme flash on refresh by blocking render until site info loads
- Optimize default theme: violet/blue/cyan palette, SVG icons instead of emoji
- Optimize dark theme: unified emerald accent, reduced particle count, backdrop-blur
- Add Tailwind safelist for dark theme dynamic class names
- Prioritize localStorage in i18n detection so manual language choice persists

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 10:19:38 +09:00
abingyydsandClaude Opus 4.6 9a18cf2215 chore: remove old dist-site Layout.jsx (replaced by themed templates)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 09:06:35 +09:00
abingyydsandClaude Sonnet 4.6 01405ca8cf feat: dist-site 多主题模板 + 中英双语 i18n
- 新增 4 套主题模板:starter/default/dark/minimal
  - Starter: 毛玻璃 + GradientText + SpotlightCard (原有风格)
  - Default: Aurora 极光背景 + SplitText + TiltedCard
  - Dark: Particles 粒子 + DecryptedText 赛博朋克风格
  - Minimal: 极简优雅 + FadeContent 淡入动画
- 新增 i18n 中英双语支持 (i18next + browser-languagedetector)
- 新增 ThemeProvider 运行时主题切换 (根据 theme_template 字段)
- 新增 11 个 react-bits 动画组件
- 所有页面文案国际化 (Login/Register/Dashboard/Tokens/Pricing/Packages)
- 新增 README.md + README.zh.md 含主题切换指南

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 09:04:25 +09:00
abingyydsandClaude Sonnet 4.6 cc9a8bcc0e fix: 分站价格单位改为每1M tokens + 移除所有SubRouter主站标识
- 价格表单位从 "per 1K tokens" 改为 "per 1M tokens"(价格×1000显示)
- 移除 footer "Powered by SubRouter" 字样
- 默认站名从 "SubRouter" 改为 "AI Platform"
- HTML title 从 "SubRouter Dist Site" 改为 "AI Platform"
- 分站不再包含任何主站品牌标识

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 06:01:43 +09:00
abingyydsandClaude Sonnet 4.6 9dfc5e79bc feat: 完整分销系统 — 后端 + 主站管理 + 分站前端模板
分销商后端:
- 分销商注册/审核/CRUD API
- 分站用户注册/登录/登出 (session cookie auth)
- 分站 Token CRUD、充值兑换、套餐订阅
- 分站域名/子域名自动识别中间件 (DistIdentify)
- 分销商收益异步记账 + markup 加价计费
- 模型价格快照、渠道路由配置
- 管理员审核/管理分销商

主站前端 (web/):
- 分销商注册申请、设置、客户管理(分页)、套餐管理(含速率限制)
- 收益管理(含汇总卡片+分页列表)、模型管理
- 管理员分销商审核面板
- DistributorLayout 标签页布局 + 路由

分站前端模板 (dist-site/):
- React + Vite + Tailwind 暗色主题 glassmorphism 设计
- react-bits 动画组件 (GradientText, BlurText, CountUp, SpotlightCard 等)
- Session cookie 认证 + New-Api-User header
- 首页/登录/注册/Dashboard/API Keys/定价/套餐 7 个页面
- Token 创建后一次性密钥展示、余额检查订阅确认

Bug 修复:
- 修复 DistUserRegister 密码双重哈希导致用户无法登录
- 修复 401 响应不清除 React user 状态
- 修复订阅确认弹窗不显示余额且提前关闭
- 修复 Home 页 Subscribe 按钮跳转错误 (/dashboard → /packages)
- 修复 Login/Register 组件卸载后 setState 警告
- 修复 DistributorEarnings 引用不存在的 username 字段
- 修复 DistributorCustomers 引用不存在的 created_at 字段

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 04:23:13 +09:00