Commit Graph

174 Commits

Author SHA1 Message Date
shaw
3077c3d789 docs: codex配置说明优化 2025-09-28 10:53:57 +08:00
shaw
e197fbdf80 Merge branch 'pr-485' into dev 2025-09-28 09:45:03 +08:00
shaw
e675c5878e style: 仪表板组件样式优化 2025-09-27 23:07:39 +08:00
shaw
ea28222c71 feat: 支持账号维度的数据统计 2025-09-27 22:55:06 +08:00
shaw
5e730db7f9 fix: Google icon问题修复 2025-09-27 20:02:55 +08:00
shaw
0b46eff4ed style: 优化apikeys进度条显示 2025-09-27 19:40:55 +08:00
shaw
774343d9e2 feta: apikeys页面支持专属绑定账号筛选 2025-09-27 18:08:40 +08:00
shaw
89829d7e57 feat: 账户管理增加分页和搜索 2025-09-27 17:26:49 +08:00
yaogdu
d1bbc71796 feat: 🎸 export csv from web and support hourly TTL of key 2025-09-27 14:11:54 +08:00
shaw
c142cbf9ea style: oai会话窗口样式优化 2025-09-26 17:16:22 +08:00
shaw
fe3d94648d fix: 优化codex使用量样式 2025-09-25 17:50:29 +08:00
shaw
4ceaa80cbe feat: 适配codex用量数据-前端格式问题 2025-09-25 17:28:45 +08:00
shaw
c15ef0b6ae feat: 适配codex用量数据 2025-09-25 17:23:52 +08:00
Feeei
01dfb49d5b feat(admin-spa): 优化分页组件逻辑与可读性
将分页组件中的硬编码条件替换为更具可读性的计算属性,
包括 shouldShowFirstPage、shouldShowLastPage、
showLeadingEllipsis 和 showTrailingEllipsis,
以更清晰地控制分页按钮和省略号的显示逻辑。
2025-09-24 18:59:56 +08:00
shaw
0ba048aced feat: 优化专属账号删除逻辑 2025-09-23 15:48:38 +08:00
shaw
f9c397cc1f feat: api-stats页面增加周限总限查询 2025-09-21 14:22:34 +08:00
shaw
588b181eb9 fix: 修复服务账户数量少了response账户 2025-09-20 22:03:43 +08:00
shaw
f70c3babc9 fix: 修复编辑oai账号是代理IP被错误保存的问题 2025-09-18 10:22:41 +08:00
wfunc
f2dc834bba feat: 新增 telegram 通知 2025-09-16 11:44:39 +08:00
shaw
ae4bbe8253 docs: 更新codex默认模型示例 2025-09-16 10:40:58 +08:00
shaw
158a9b9a31 feat: 优化API Key批量创建和账户限流状态显示
- 添加 bedrockAccountId 和 rateLimitCost 字段到批量创建 API Key 功能
- 格式化 claudeAccountService 中的日志输出
- 改进账户视图中会话进度条样式,限流状态显示红色

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-14 11:59:09 +08:00
shaw
9c4dc714f8 Revert "Merge pull request #424 from Wangnov/feat/i18n"
This reverts commit 1d915d8327, reversing
changes made to 009f7c84f6.
2025-09-12 09:21:53 +08:00
Wangnov
99d72516ae feat: 完成 AccountForm.vue 组件的国际化文本替换
- 将多个文本替换为 i18n 语言包中的键,以提升多语言支持和一致性。
- 更新了模型支持描述、用户代理描述、凭证文件描述等文本内容。
- 通过引入 i18n 键,增强了用户界面的可读性和可维护性。
2025-09-12 00:04:11 +08:00
Wangnov
5ea3623736 feat: 更新 DashboardView.vue 中的系统状态文本为 i18n 语言包中的键
- 将系统状态文本替换为动态获取的 i18n 键,以提升多语言支持和一致性。
2025-09-12 00:04:11 +08:00
Wangnov
e36bacfd6b feat: 完成多个组件的国际化支持与文本替换
- 更新 AccountForm.vue 中的占位符文本为 i18n 语言包中的键
- 修改 ConfirmModal.vue 中的确认和取消按钮文本为 i18n 语言包中的键
- 更新 CustomDropdown.vue 中的占位符文本为 i18n 语言包中的键
- 修改 app.js 中的应用标题为英文版本
- 更新 router/index.js 中的日志输出为英文
- 在 accounts.js 和 apiKeys.js 中的错误处理信息中引入 i18n 键以提升多语言一致性
- 更新 dashboard.js 中的系统状态和错误日志为 i18n 键
- 在 DashboardView.vue 中的多个文本替换为 i18n 语言包中的键
2025-09-12 00:04:11 +08:00
Wangnov
97b94eeff9 feat: 完成web/admin-spa/src/components/apikeys的国际化并修复语法错误和警告 2025-09-12 00:03:05 +08:00
Wangnov
27034997a6 feat: 完成用户相关组件的完整国际化支持
* 扩展语言文件新增用户功能翻译键
  - 新增 user.dashboard、user.login、user.management 翻译组
  - 涵盖三语言支持(zh-cn/zh-tw/en)
  - 包含120+翻译键covering用户仪表板、登录、管理功能

* UserDashboardView.vue 完整国际化
  - 集成useI18n composable
  - 国际化导航标签、统计卡片、账户信息
  - 响应式翻译Toast消息和错误处理

* UserLoginView.vue 完整国际化
  - 国际化登录表单标签、占位符、按钮文本
  - 响应式验证消息和状态提示
  - 支持动态语言切换

* UserManagementView.vue 完整国际化
  - 国际化用户列表、搜索过滤器、操作按钮
  - 响应式确认对话框和Toast通知
  - 支持参数化翻译消息(用户名、数量等)

Technical implementation:
- 遵循Vue 3 Composition API最佳实践
- 保持响应式设计和暗黑模式兼容性
- 统一错误处理和用户体验
2025-09-12 00:03:02 +08:00
Wangnov
24ad052d02 feat: 完成SettingsView页面完整国际化支持
- 扩展三个语言文件,添加198个settings翻译键,支持中英繁三语言
- 完成SettingsView.vue所有1604行的系统化国际化处理:
  * 完整国际化HTML模板:页面标题、导航标签、品牌设置、Webhook设置等
  * 完整国际化JavaScript功能:Toast消息、确认对话框、表单验证、错误处理
  * 集成Vue i18n:添加useI18n composable,实现响应式翻译支持
  * 转换静态函数为响应式翻译,支持语言切换时实时更新

- 主要功能模块全面国际化:
  * 品牌设置:网站名称、图标管理、管理入口配置完全国际化
  * Webhook通知:7种平台类型、通知类型、高级设置完全国际化
  * 模态框:复杂的平台添加/编辑表单完全国际化
  * 响应式布局:桌面端表格和移动端卡片视图完全适配
  * 错误处理:37个Toast消息、确认对话框、表单验证完全国际化

现在SettingsView完全支持多语言切换,与其他页面保持一致的国际化标准
2025-09-12 00:03:02 +08:00
Wangnov
19ca374527 feat: 完成ApiKeysView页面完整国际化支持
- 扩展三个语言文件,添加167个apiKeys翻译键,支持中英繁三语言
- 完成ApiKeysView.vue所有2869行的系统化国际化处理:
  * 完整国际化HTML模板:页面标题、Tab导航、表格标题、筛选器、状态指示等
  * 完整国际化JavaScript功能:Toast消息、确认对话框、错误处理、时间格式化
  * 集成Vue i18n:添加useI18n composable,实现响应式翻译支持
  * 转换静态选项为计算属性,支持语言切换时实时更新

- 主要功能模块全面国际化:
  * 主界面:标题描述、Tab导航、工具栏按钮完全国际化
  * 数据表格:表头、状态标签、统计信息、操作按钮全面适配
  * 移动端视图:卡片布局、统计展示、操作按钮完全国际化
  * 已删除管理:已删除API Keys的表格和操作完全国际化
  * 确认对话框:所有删除、恢复、清空操作的确认信息国际化
  * 错误处理:统一的错误消息和成功提示国际化

现在ApiKeysView完全支持多语言切换,与AccountsView保持一致的国际化标准
2025-09-12 00:03:02 +08:00
Wangnov
27c0804219 feat: 完成AccountsView页面完整国际化
- 添加useI18n导入并替换100+硬编码中文文本
- 扩展三种语言文件的accounts翻译键(150+条)
- 更新下拉选项为响应式计算属性支持动态翻译
- 国际化页面标题、表格列头、筛选器和操作按钮
- 处理状态文本、错误消息和工具提示
- 更新JavaScript函数返回值使用翻译键
- 完整支持桌面端和移动端视图的国际化
- 修正货币符号和时间格式化的参数化翻译

涵盖组件:
- 账户管理主界面(标题、描述、筛选器)
- 桌面端表格视图(列头、状态、操作按钮)
- 移动端卡片视图(标签、按钮、状态)
- 错误处理和确认对话框
- 时间和数值格式化函数
2025-09-12 00:03:02 +08:00
Wangnov
cd7959f3bf feat: 实现DashboardView.vue完整国际化支持
- 完成DashboardView.vue全面国际化
  * 主要统计卡片:总API Keys、服务账户、今日请求、系统状态全部多语言化
  * Token统计模块:今日Token、总消耗量、实时RPM/TPM指标完整国际化
  * 实时性能监控:请求数/Token数每分钟指标、历史数据标识多语言化
  * 图表组件完整国际化:饼图、趋势图、API Keys使用趋势图
  * 交互控件全面支持:日期选择器、粒度切换、自动刷新等

- 图表系统深度国际化
  * Chart.js图表标签完全多语言化:Token使用趋势、模型分布等
  * 工具提示和坐标轴标签支持动态语言切换
  * 表格头部和数据展示完整国际化支持

- 扩展三语言dashboard翻译组
  * zh-cn.js: 简体中文专业术语翻译
  * zh-tw.js: 繁体中文技术翻译(快取、即時等台湾用词)
  * en.js: 英文专业技术术语标准翻译
  * 总计90+个翻译键值,涵盖所有用户可见文本

- 平台账户工具提示国际化
  * Claude/Console/Gemini/Bedrock/OpenAI/Azure OpenAI账户状态
  * 支持参数化翻译,动态显示账户数量和状态

- 提升复杂业务场景多语言体验
  * 管理后台核心数据可视化页面完全国际化
  * 60+个硬编码中文字符串全部替换
  * 确保不同语言环境下数据展示的专业性
2025-09-12 00:03:02 +08:00
Wangnov
e88e97b485 feat: 实现AppHeader和LoginView完整国际化支持
- 完成AppHeader.vue全面国际化
  * 版本检查和更新通知系统多语言支持
  * 用户菜单和账户信息修改模态框国际化
  * 退出登录确认流程多语言化
  * 总计替换30+个硬编码中文字符串

- 实现LoginView.vue完整国际化
  * 登录表单所有文本支持多语言
  * 添加语言切换组件到登录页面
  * 确保用户可在登录前选择语言

- 扩展三语言翻译文件
  * zh-cn.js: 简体中文标准翻译
  * zh-tw.js: 繁体中文专业化翻译
  * en.js: 英文技术术语标准翻译
  * 新增header和login完整翻译组

- 提升用户体验
  * 登录页面右上角工具栏(语言+主题切换)
  * 响应式布局适配多设备
  * 完整的首次访问多语言体验
2025-09-12 00:03:02 +08:00
Wangnov
c7e1a3429d feat: 完善教程系统国际化架构并完成英文教程翻译
- 创建分离式多语言教程组件架构
  - TutorialView-zh-cn.vue (简体中文教程)
  - TutorialView-zh-tw.vue (繁体中文教程,统一台湾语言习惯)
  - TutorialView-en.vue (英文教程,全面翻译用户界面和技术文档)

- 重构教程路由系统
  - 新的TutorialView.vue作为国际化代理组件
  - 根据用户语言设置动态选择合适的教程组件
  - 保持/tutorial路径可访问性,提升用户体验

- 完成英文教程完整翻译
  - Windows/macOS/Linux安装教程全英文化
  - 环境变量配置说明英文化
  - 故障排除章节英文化
  - JavaScript注释和用户界面文本英文化

- 优化国际化架构
  - ApiStatsView使用新的分离式教程组件
  - 统一的语言选择逻辑和组件复用
  - 更清晰的代码组织和维护性
2025-09-12 00:03:02 +08:00
Wangnov
1eadc94592 feat: 实现ApiStatsView页面完整国际化
- 集成vue-i18n到ApiStatsView,支持动态语言切换
- 国际化所有用户界面文本:页面标题、按钮、Tab标签、时间选择器
- 实现LogoTitle动态subtitle,根据当前tab显示对应语言的标题
- 添加语言切换组件到页面header,与主题切换并列显示
- 实现教程内容的整体替换机制,支持基于语言的动态组件选择
- 确保用户登录、管理后台、统计查询等核心功能完全本地化
2025-09-12 00:03:02 +08:00
shaw
02989a7588 fix: 修复CCR账户表单验证和平台分组逻辑
- 修复CCR账户创建时的表单字段验证
- 统一CCR与Claude Console的处理逻辑
- 修复账户删除前的API Key绑定检查
- 修复Claude Console账户绑定的API Key计数
- 优化平台分组判断逻辑

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-11 11:54:27 +08:00
shaw
7712d5516c merge: 合并远程 dev 分支,整合 CCR 和 OpenAI-Responses 功能
## 合并内容
- 成功合并远程 dev 分支的 CCR (Claude Connector) 功能
- 保留本地的 OpenAI-Responses 账户管理功能
- 解决所有合并冲突,保留双方功能

## UI 调整
- 将 CCR 平台归类到 Claude 分组中
- 保留新的平台分组选择器设计
- 支持所有平台类型:Claude、CCR、OpenAI、OpenAI-Responses、Gemini、Azure OpenAI、Bedrock

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 15:49:52 +08:00
shaw
08946c67ea feat: 新增 OpenAI-Responses 账户管理功能和独立自动停止标记机制
## 功能新增
- 实现 OpenAI-Responses 账户服务(openaiResponsesAccountService.js)
  - 支持使用账户内置 API Key 进行请求转发
  - 实现每日额度管理和重置机制
  - 支持代理配置和优先级设置
- 实现 OpenAI-Responses 中继服务(openaiResponsesRelayService.js)
  - 处理请求转发和响应流处理
  - 自动记录使用统计信息
  - 支持流式和非流式响应
- 新增管理界面的 OpenAI-Responses 账户管理功能
  - 完整的 CRUD 操作支持
  - 实时额度监控和状态管理
  - 支持手动重置限流和每日额度

## 架构改进
- 引入独立的自动停止标记机制,区分不同原因的自动停止
  - rateLimitAutoStopped: 限流自动停止
  - fiveHourAutoStopped: 5小时限制自动停止
  - tempErrorAutoStopped: 临时错误自动停止
  - quotaAutoStopped: 额度耗尽自动停止
- 修复手动修改调度状态时自动恢复的问题
- 统一清理逻辑,防止状态冲突

## 其他优化
- getAccountUsageStats 支持不同账户类型参数
- 统一调度器支持 OpenAI-Responses 账户类型
- WebHook 通知增强,支持新账户类型的事件

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 15:41:52 +08:00
sususu98
5938180583 Merge branch 'Wei-Shaw:dev' into dev 2025-09-10 14:40:46 +08:00
Wesley Liddick
3c5068866c Revert "合并所有新功能到Wei-Shaw仓库(排除ApiStatsView.vue)" 2025-09-10 14:37:52 +08:00
sususu98
c0059c68eb Merge branch 'Wei-Shaw:dev' into dev 2025-09-10 14:22:45 +08:00
sususu98
7f9869ae20 feat: 添加 CCR (Claude Code Router) 账户类型支持
实现通过供应商前缀语法进行 CCR 后端路由的完整支持。
用户现在可以在 Claude Code 中使用 `/model ccr,model_name` 将请求路由到 CCR 后端。
暂时没有实现`/v1/messages/count_tokens`,因为这需要在CCR后端支持。
CCR类型的账户也暂时没有考虑模型的支持情况

## 核心实现

### 供应商前缀路由

- 添加 modelHelper 工具用于解析模型名称中的 `ccr,` 供应商前缀
- 检测到前缀时自动路由到 CCR 账户池
- 转发到 CCR 后端前移除供应商前缀

### 账户管理

- 创建 ccrAccountService 实现 CCR 账户的完整 CRUD 操作
- 支持账户属性:名称、API URL、API Key、代理、优先级、配额
- 实现账户状态:active、rate_limited、unauthorized、overloaded
- 支持模型映射和支持模型配置

### 请求转发

- 实现 ccrRelayService 处理 CCR 后端通信
- 支持流式和非流式请求
- 从 SSE 流中解析和捕获使用数据
- 支持 Bearer 和 x-api-key 两种认证格式

### 统一调度

- 将 CCR 账户集成到 unifiedClaudeScheduler
- 添加 \_selectCcrAccount 方法用于 CCR 特定账户选择
- 支持 CCR 账户的会话粘性
- 防止跨类型会话映射(CCR 会话仅用于 CCR 请求)

### 错误处理

- 实现全面的错误状态管理
- 处理 401(未授权)、429(速率限制)、529(过载)错误
- 成功请求后自动从错误状态恢复
- 支持可配置的速率限制持续时间

### Web 管理界面

- 添加 CcrAccountForm 组件用于创建/编辑 CCR 账户
- 将 CCR 账户集成到 AccountsView 中,提供完整管理功能
- 支持账户切换、重置和使用统计
- 在界面中显示账户状态和错误信息

### API 端点

- POST /admin/ccr-accounts - 创建 CCR 账户
- GET /admin/ccr-accounts - 列出所有 CCR 账户
- PUT /admin/ccr-accounts/:id - 更新 CCR 账户
- DELETE /admin/ccr-accounts/:id - 删除 CCR 账户
- PUT /admin/ccr-accounts/:id/toggle - 切换账户启用状态
- PUT /admin/ccr-accounts/:id/toggle-schedulable - 切换可调度状态
- POST /admin/ccr-accounts/:id/reset-usage - 重置每日使用量
- POST /admin/ccr-accounts/:id/reset-status - 重置错误状态

## 技术细节

- CCR 账户使用 'ccr' 作为 accountType 标识符
- 带有 `ccr,` 前缀的请求绕过普通账户池
- 转发到 CCR 后端前清理模型名称内的`ccr,`
- 从流式和非流式响应中捕获使用数据
- 支持缓存令牌跟踪(创建和读取)
2025-09-10 14:21:48 +08:00
Wesley Liddick
27fe3b6853 Merge branch 'dev' into main 2025-09-10 14:04:27 +08:00
DuanNaiSheQu
af3d688e98 合并所有新功能到Wei-Shaw仓库(排除ApiStatsView.vue)
 新增功能:
- GPT-5 High推理级别费用追踪和限制
- API Key图标上传功能
- 优化的进度条显示组件
- 暗黑模式UI兼容
- 完整的前后端集成

🔥 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-10 13:38:27 +08:00
iaineng
929852a881 fix(ui): correct table row striping in API Keys view
Fixed second row appearing white due to invalid Tailwind CSS class bg-gray-850.
Replaced with valid bg-gray-700/30 for odd rows and kept bg-gray-800/40 for even rows
to enhance dark mode contrast.
2025-09-09 13:52:38 +08:00
Wesley Liddick
da744528bc Merge pull request #383 from Edric-Li/feature/smtp-notification
feat: 添加SMTP邮件通知功能
2025-09-09 12:19:26 +08:00
Edric Li
5d677b4f17 fix: 优化UI文案和修复SMTP测试问题
- 修复SMTP平台测试按钮传递必要字段
- 添加"测试通知"类型的友好显示文本和描述
- 简化标题:"启用 Webhook 通知" → "启用通知"
2025-09-09 04:09:51 +08:00
Edric Li
268a262281 fix: 修复SMTP平台测试按钮缺少必要字段的问题
- 在testPlatform函数中添加SMTP平台的完整字段传递
- 确保测试时包含host, port, user, pass, to等必填字段
2025-09-09 04:02:13 +08:00
Edric Li
283362acd0 feat: 添加SMTP邮件通知功能
新增功能:
- 支持SMTP邮件通知平台,可通过邮件接收系统通知
- 支持配置SMTP服务器、端口、用户名、密码、发件人和收件人
- 支持TLS/SSL加密连接
- 提供美观的HTML邮件模板和纯文本备用格式

代码优化:
- 重构邮件格式化逻辑,提取buildNotificationDetails减少重复代码
- 优化前端表单验证逻辑,提取validatePlatformForm统一验证
- 清理UI中的冗余提示信息和配置项

UI改进:
- 移除SMTP配置说明文字
- 移除超时设置和忽略TLS证书验证选项
- 简化测试成功提示消息
- SMTP平台显示收件人邮箱而非URL

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-09 04:00:35 +08:00
Gemini Wen
97da7d44ba ui: improve group tags layout in AccountsView
- Add vertical margin and flex-wrap for better multi-line display
- Remove left margin to align properly with container

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-08 22:55:56 +08:00
Wesley Liddick
86ed5c6344 Merge pull request #377 from f3n9/dev-um-8
用户自助管理页面顶部增加链接,用于展示配置教程
2025-09-08 22:14:34 +08:00