Commit Graph
26 Commits
Author SHA1 Message Date
abingyydsandClaude Sonnet 4.6 6b77f00396 fix: 分站套餐页额度显示改为人民币,优化文案
- 套餐卡片的每日额度从 $2.20 改为 ¥16.06 显示
- 确认弹窗的额度也改为人民币
- 翻译 key 里 $ 符号改为 ¥

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 00:36:44 +09:00
abingyydsandClaude Opus 4.6 91e673aabd fix: 分站加载动画跟随主题色
- 添加 --page-bg/--page-spinner CSS 变量,各主题定义自己的颜色
- body 背景改用 CSS 变量,不再硬编码黑色
- SiteContext 获取站点信息后立即应用主题类到 body
- localStorage 缓存主题类,刷新时在 React 加载前恢复,防止闪烁
- 浅色主题(clean/corporate/claude)加载时显示白色/米色背景+对应色 spinner

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 21:29:53 +09:00
abingyydsandClaude Sonnet 4.6 16c42412bc feat: 分站套餐价格改为人民币存储,额度输入简化为人民币金额
- 后端: DistributorPackage.Price/OriginalPrice 改为存 CNY
- 后端: SubscribePackage 购买时自动 CNY→USD 转换再算 quota
- 前端: 套餐表单额度从 quota 单位改为人民币金额输入
- dist-site: 7个主题 + Packages页面去掉 price*rate 转换

计费逻辑不变:CNY/汇率=USD,USD*QuotaPerUnit=quota

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 21:02:31 +09:00
abingyydsandClaude Opus 4.6 f087c0f978 feat: 分站用户调用日志页面
- 新增 DistUserGetLogs 后端接口,支持按模型/令牌筛选和分页
- 新增 dist-site Logs 页面,desktop 表格 + mobile 卡片布局
- 所有 7 个主题 Layout 添加日志导航项
- Dashboard 快捷入口替换为调用日志链接
- 添加中英文 i18n 翻译

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 21:34:56 +09:00
abingyydsandClaude Opus 4.6 23920eb635 fix: 自定义价格真正参与计费 + 修复价格显示翻倍
1. 计费核心改动 (relay/helper/price.go):
   - applyDistributorMarkup 新增自定义价格支持
   - 自定义价格转 USD 后与平台底价对比,计算等效加价倍率
   - 保底机制:自定义价格不得低于平台底价,防止平台亏损
   - 优先级:全站加价 > 自定义价格 > 单模型加价比例

2. 分站价格显示修复 (controller/dist_site.go):
   - 自定义价格跟随商家币种(CNY),发送前需转 USD
   - 修复 ¥6.8 显示为 ¥46.24 的翻倍问题

3. 管理页面改进 (DistributorModels.jsx):
   - 全站加价模式下展示含加价的价格
   - 自定义价格输入框显示正确的币种单位

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 17:53:22 +09:00
abingyydsandClaude Sonnet 4.6 31e4bd22e4 fix: 周期性套餐等价计算使用整个有效期的总额度
之前只用了单次周期的 quota 计算等价,导致每日重置套餐(如 $1/天 × 30天)
只显示 $45 等价,实际应该是 $30 总额度 × 45倍 = $1359 等价

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 20:34:15 +09:00
abingyydsandClaude Sonnet 4.6 b27fa4df53 fix: 修复官方等价对比 pattern 无法匹配后端 model_name 的问题
- Pattern 改为匹配后端实际格式(如 claude-opus-4-5 而非 claude-4.5-opus)
- 确保更具体的 pattern 排在前面,避免 Opus 4.5 误匹配到 Opus 4 的 $15 官方价
- 补充更多模型:GPT-4.1 Mini/Nano、Gemini Flash Lite、DeepSeek R1/V3 等

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 17:41:01 +09:00
abingyydsandClaude Sonnet 4.6 2109f2a7a0 fix: 官方等价轮播限制最多展示前 3 个模型
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 17:16:48 +09:00
abingyydsandClaude Sonnet 4.6 a6b962084d feat: 官方等价对比改为轮播动效,展示所有匹配模型
- 新增 RotatingEquiv 组件,3秒间隔淡入淡出切换
- calcOfficialEquivList 返回所有匹配模型(含 Gemini 系列)
- Packages 页面和 7 个 Home 模板全部适配轮播

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 17:10:31 +09:00
abingyydsandClaude Sonnet 4.6 3b8206284f feat: 所有模板 Home 页套餐卡片添加官方价格等价对比
提取 calcOfficialEquiv 为公共工具函数,7 个 Home 模板和
Packages 页面共用,自动选择折扣比例最大的模型展示等价额度。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 03:46:01 +09:00
abingyydsandClaude Sonnet 4.6 b33ef787a5 chore: update dist-site build output
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 03:33:51 +09:00
abingyydsandClaude Sonnet 4.6 6e5a4ff97e feat: 分站套餐卡片添加官方价格等价对比营销文案
在套餐卡片中展示与 Claude/GPT 官方价格对比的等价额度,
帮助用户直观理解套餐的性价比优势。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 03:33:38 +09:00
abingyyds 31dfed1a2e Revert "feat: 分站套餐页增加限时特惠标识"
This reverts commit 34dfa2099bc9f2f23e900583b268406d9422c738.
2026-03-22 23:12:04 +09:00
abingyydsandClaude Sonnet 4.6 d628477e4d feat: 分站套餐页增加限时特惠标识
- 页面顶部添加限时特惠横幅,提示当前为特价
- 每个套餐卡片增加"特惠价"徽章
- 价格区域增加折扣百分比标签和涨价提示
- 中英文 i18n 键补全

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 09:43:53 +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 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 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 3494a21838 build: rebuild dist-site with topup feature
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 15:24:29 +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 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