515 Commits

Author SHA1 Message Date
shaw
eff796ed8e fix(admin-spa): 修复API Key创建成功后的弹窗显示问题
- 完全复刻原版的API Key成功弹窗样式
- 修复API Key字段读取问题,支持apiKey和key两种字段名
- 添加完整的显示/隐藏功能,默认隐藏API Key内容
- 实现与原版一致的警告提示和关闭确认
- 优化复制功能,添加降级方案
2025-07-29 18:36:35 +08:00
github-actions[bot]
7a9e04f169 chore: sync VERSION file with release v1.1.47 and rebuild frontend [skip ci] 2025-07-29 09:06:30 +00:00
shaw
a11e3909e0 fix(admin-spa): 修复版本号显示位置,使其与网站名称在同一行显示 2025-07-29 17:05:43 +08:00
github-actions[bot]
514d2f5377 chore: sync VERSION file with release v1.1.46 and rebuild frontend [skip ci] 2025-07-29 08:38:31 +00:00
shaw
5e3647aea8 fix(admin-spa): 修复API Key创建后直接消失的问题
- 修正NewApiKeyModal组件的prop名从apiKeyData改为apiKey
- 修正CreateApiKeyModal中emit的数据从result.apiKey改为result.data
- 补充创建和编辑API Key时缺失的enableModelRestriction和enableClientRestriction字段
- 确保所有字段名与旧版保持一致

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 16:37:44 +08:00
github-actions[bot]
31ccf48b00 chore: sync VERSION file with release v1.1.45 and rebuild frontend [skip ci] 2025-07-29 08:14:59 +00:00
shaw
03a5300b78 feat(admin-spa): 添加 API Key 标签管理功能
基于 PR #114 的功能需求,为新版 admin-spa 实现完整的标签系统:

后端改进:
- apiKeyService 支持标签的创建、查询和更新
- admin 路由添加标签验证和处理逻辑
- 标签以 JSON 数组形式存储在 Redis 中

前端功能:
- API Key 列表增加标签列,显示彩色标签徽章
- 添加标签筛选器,支持按标签过滤 API Keys
- 创建和编辑 API Key 时可添加/删除标签
- 标签输入支持 Enter 键快速添加
- 自动收集并排序所有可用标签

界面优化:
- 使用蓝色圆角标签样式,视觉清晰
- 无标签时显示"无标签"提示
- 标签管理操作流畅,支持即时添加删除

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 16:14:16 +08:00
github-actions[bot]
f23b9bd222 chore: sync VERSION file with release v1.1.44 and rebuild frontend [skip ci] 2025-07-29 07:50:00 +00:00
shaw
ff6a361720 fix(admin-spa): 完善账户管理代理信息显示功能
- 修复账户列表中代理信息显示,支持用户名密码部分隐藏
- 修复编辑账户时自动勾选代理设置并正确显示代理信息
- 改进代理密码输入框使用密码类型
- 将 admin-spa/dist 目录加入 .gitignore 并从版本控制中移除

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 15:49:15 +08:00
github-actions[bot]
5795e8cdef chore: sync VERSION file with release v1.1.43 and rebuild frontend [skip ci] 2025-07-29 07:12:23 +00:00
shaw
9e693d3d7f fix(admin-spa): 修复多个管理后台问题
- 修复代理设置导致页面卡死的问题(循环更新)
- 修复Gemini账号授权码自动提取功能
- 修复账户名称验证无错误提示的问题
- 修复网站图标只在settings页面显示的问题
- 修复删除账户使用自定义确认弹窗
- 修复账号添加成功提示重复显示的问题
- 修复代理配置字段格式与原版不一致的问题
- 添加.gitignore忽略旧版web/admin和web/apiStats目录

所有问题已按照原版逻辑完整修复,提升了用户体验。
2025-07-29 15:11:35 +08:00
github-actions[bot]
5a6740cce7 chore: sync VERSION file with release v1.1.42 and rebuild frontend [skip ci] 2025-07-29 06:23:07 +00:00
shaw
9225c9f2f5 chore(admin-spa): 移除yarn.lock文件避免包管理器混淆
- 项目使用npm作为包管理器,已有package-lock.json
- 避免同时存在两个锁文件导致的版本不一致问题
- 统一使用npm以确保CI/CD构建的一致性
2025-07-29 14:19:28 +08:00
shaw
bd9001bdbe build: 优化admin-spa构建配置和环境变量
- 添加 .env.production 配置文件,确保workflow构建时使用正确的基础路径
- 更新 .gitignore 规则,允许提交生产环境配置
- 调整环境变量配置,支持自动化构建流程

这些更改确保GitHub Actions构建的前端能正确配置路由和API路径

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 14:06:33 +08:00
shaw
7b81106949 feat: 将admin-spa构建迁移到GitHub Actions workflow
🔄 主要改进:
- 在自动发布流程中添加admin-spa前端构建步骤
- 仅在web/admin-spa目录有改动时才触发构建
- 构建后的dist目录会自动包含在版本发布中
- 移除手动提交的dist目录,避免安全风险

🐛 修复:
- 修复登录后用户名显示为默认"Admin"的问题
- 现在会正确从服务器获取并显示实际用户名

🔒 安全优化:
- 防止恶意代码通过dist目录注入
- 所有前端代码都会在CI环境中重新构建

现在开发者无需手动构建前端,workflow会自动处理

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 13:45:11 +08:00
shaw
19cab40b77 feat(admin-spa): 添加构建后的dist目录并更新.gitignore
- 添加 admin-spa 构建后的 dist 目录
- 从 .gitignore 中移除 dist 忽略规则
- 确保 /admin-next 路由可以正常访问

现在访问 /admin-next/api-stats 将能正确加载新版管理界面

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 12:48:15 +08:00
shaw
414856f152 feat: 全新的Vue3管理后台(admin-spa)和路由重构
🎨 新增功能:
- 使用Vue3 + Vite构建的全新管理后台界面
- 支持Tab切换的API统计页面(统计查询/使用教程)
- 优雅的胶囊式Tab切换设计
- 同步了PR #106的会话窗口管理功能
- 完整的响应式设计和骨架屏加载状态

🔧 路由调整:
- 新版管理后台部署在 /admin-next/ 路径
- 将根路径 / 重定向到 /admin-next/api-stats
- 将 /web 页面路由重定向到新版,保留 /web/auth/* 认证路由
- 将 /apiStats 页面路由重定向到新版,保留API端点

🗑️ 清理工作:
- 删除旧版 web/admin/ 静态文件
- 删除旧版 web/apiStats/ 静态文件
- 清理相关的文件服务代码

🐛 修复问题:
- 修复重定向循环问题
- 修复环境变量配置
- 修复路由404错误
- 优化构建配置

🚀 生成方式:使用 Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-29 12:40:51 +08:00
shaw
c98de2aca5 feat(admin-spa): 同步PR #106的会话窗口管理功能到新版管理后台
- 在账户管理表格中添加'会话窗口'列
- 显示Claude账户的会话窗口状态(进度条、时间范围、剩余时间)
- 添加formatSessionWindow和formatRemainingTime格式化函数
- 完整同步原版PR #106的前端功能到重构后的admin-spa
2025-07-29 11:11:25 +08:00
KevinLiao
718733b78b feat: 增加账号session窗口管理与显示。后续可以据此优化账号轮转逻辑。
scripts目录有相关管理脚本,请自行探索
2025-07-28 15:51:38 +08:00
Wesley Liddick
e2f5c32cc0 Merge branch 'main' into main 2025-07-28 09:01:23 +08:00
Edric Li
9193d64d2a feat: 添加 OEM 设置功能并统一 API 统计页面样式
- 添加 OEM 设置管理功能,支持自定义网站名称和图标
- 支持图标文件上传和 Base64 编码存储
- 实现动态更新网站标题和 favicon
- 统一 API 统计页面与管理页面的样式和布局
- 修复文本颜色显示问题,提升可读性
- 优化错误处理和默认值回退机制
- 移除测试文件和冗余代码

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 23:20:44 +08:00
KevinLiao
75b4919693 feat: 优化APIKey查询
1. 查询相关接口修改为APIKey的UUID
2. 输入APIKey查询后,自动查询API的UUID并添加浏览器地址参数,后续可以直接复制链接进行查询。同时保证了APIKey的安全性
2025-07-27 23:20:15 +08:00
KevinLiao
64a5e4c773 fix: APIKey查询页面顶部文字颜色修正 2025-07-27 21:01:12 +08:00
KevinLiao
2de9c9e843 fix: 修复新增编辑APIKeys时,填写Token限制报错 2025-07-27 20:05:26 +08:00
KevinLiao
bdf125e001 fix: APIKey查询页面数据不正确的情况 2025-07-27 19:51:37 +08:00
KevinLiao
dfabd77928 fix: 调整样式 2025-07-27 18:42:07 +08:00
KevinLiao
85a8cae5ab feat: 新增用户统计页面,并作为默认路由 2025-07-27 18:12:50 +08:00
KevinLiao
a04dd06be9 feat: 新增ApiKey查询页面 2025-07-27 17:38:12 +08:00
KevinLiao
ac1e367a69 feat: 增加每日费用限制 2025-07-27 14:47:59 +08:00
KevinLiao
375d70ee1f feat: APIKeys 列表,统计周期选项增加今日。 2025-07-27 12:03:22 +08:00
Gemini Wen
5ca568e693 feat: format numbers >= million with M suffix and remove billion k formatting
- Update formatNumber function to display numbers >= 1 million with 'M' suffix
- Remove previous billion formatting with 'k' suffix
- Example: 2,500,000 displays as '2M' for better readability
- Use Math.floor() to ensure no decimal points in formatted numbers

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 10:50:39 +08:00
Gemini Wen
2dbcb9d6f3 fix: remove decimal points from k-formatted numbers
- Use Math.floor() to display whole numbers for billion+ values
- Example: 2,500,123,456 displays as '2,500,123k' instead of '2,500,123.456k'
- Cleaner display for large token numbers

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 10:04:21 +08:00
Gemini Wen
53e9e421c8 feat: format numbers >= billion with k suffix
- Update formatNumber function to display numbers >= 1 billion with 'k' suffix
- Example: 2,500,000,000 displays as '2,500,000k' for better readability
- Improves token statistics display for large numbers

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 10:02:16 +08:00
Gemini Wen
c201a17cd4 feat: add flex-wrap to token display containers
- Add flex-wrap class to both today and total token stat containers
- Allows token numbers and costs to wrap on smaller screens
- Improves responsive layout for token statistics display

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 09:58:25 +08:00
Gemini Wen
e7940ea9f3 fix: stat-icons shrink behavior
- Fix missing space in flex-shrink-0 class for yellow stat-icon
- Add missing flex-shrink-0 to indigo stat-icon
- Ensures all stat icons have proper flex behavior

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-27 09:53:36 +08:00
Gemini Wen
ebccf2116d fix: improve spacing in Token statistics cards
- Add mr-8 right margin to flex-1 containers in Token cards
- Prevents overcrowding between cache data and card icons

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 22:38:14 +08:00
Wesley Liddick
383f33fa77 Merge pull request #72 from kevinconan/main
feat: 增加APIKey 客户端限制功能
2025-07-26 11:03:06 +08:00
Wesley Liddick
cf0eaf0534 Merge branch 'main' into main 2025-07-26 10:05:24 +08:00
kevinconan
441361f3b4 Merge branch 'Wei-Shaw:main' into main 2025-07-26 08:57:03 +08:00
csdbit
fb306242c2 给API Keys和账号管理列表增加关键字段排序 2025-07-26 01:53:23 +08:00
KevinLiao
b8c7c3e9f5 feat: 增加APIKey 客户端限制功能 2025-07-25 23:36:48 +08:00
leslie
1cf70a627f 添加claude账号维度计算token费用 2025-07-25 21:36:17 +08:00
KevinLiao
e8d795713a feat: API页面增加统计时间选择 2025-07-25 10:42:19 +08:00
breaker
6a22163d83 feat: 支持通过URL参数切换管理界面标签页
- 添加URL参数解析功能,支持 ?tab=apiKeys 等参数直接跳转到指定标签页
- 切换标签页时自动更新URL,方便分享和书签
- 支持浏览器前进后退按钮,保持标签页状态同步
- 默认dashboard标签页不显示URL参数,保持简洁
2025-07-25 09:53:28 +08:00
KevinLiao
f614d54ab5 fix: APIKey列表费用及Token显示不准确的问题,目前显示总数
feat: 增加APIKey过期设置,以及到期续期的能力
2025-07-25 09:53:16 +08:00
shaw
521ba99f48 refactor: 重构GitHub Actions发布流程和修复管理界面问题
- 删除旧的auto-release.yml工作流,避免循环触发问题
- 新增auto-version-bump.yml:自动同步VERSION文件与release版本
- 新增release-on-version.yml:基于VERSION文件变更自动创建release
- 更新docker-publish.yml:简化触发条件,仅在tag推送时构建
- 添加RELEASE_PROCESS.md文档:详细说明新的发布流程
- 修复web管理界面:解决OAuth账户token刷新和代理配置相关问题

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-24 11:30:54 +08:00
shaw
2f4730baba 优化: 替换第三方CDN资源以提升加载速度
- 将所有第三方资源从 bootcdn 迁移到 cdnjs.cloudflare.com
- 移除 SRI 完整性校验以避免哈希值不匹配问题
- 添加 DNS 预取和预连接以加速资源加载
- 调整脚本加载顺序,确保依赖关系正确
- 保持所有库版本号不变 (Vue 3.3.4, Element Plus 2.4.4, Chart.js 4.4.0)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 11:15:33 +08:00
shaw
e77945a3e3 fix: 修复 API Key 编辑时服务权限和 Gemini 专属账号字段不显示的问题
- 创建 API Key 时添加 permissions 和 geminiAccountId 字段发送到后端
- 编辑 API Key 时正确加载和保存 permissions 和 geminiAccountId 字段
- 更新 openEditApiKeyModal 函数以包含这两个字段
- 更新 updateApiKey 函数的请求体以发送这两个字段

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-22 17:10:04 +08:00
shaw
11318c22b0 feat: 优化 Gemini OAuth 授权流程,使用固定的 localhost 回调地址
- 将 Gemini OAuth 回调地址固定为 http://localhost:45462
- 更新前端提示文字为"复制oauth后的链接"
- 实现自动提取 localhost:45462 链接中的 code 参数功能
- 删除不再需要的 web/auth_gemini 路由
- 添加详细的用户操作说明和错误处理提示
- 支持两种输入方式:完整链接或仅授权码

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-22 11:42:54 +08:00
shaw
38c1fc4785 feat: 添加多模型支持和OpenAI兼容接口
- 新增 Gemini 模型支持和账户管理功能
- 实现 OpenAI 格式到 Claude/Gemini 的请求转换
- 添加自动 token 刷新服务,支持提前刷新策略
- 增强 Web 管理界面,支持 Gemini 账户管理
- 优化 token 显示,添加掩码功能
- 完善日志记录和错误处理

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-22 10:17:39 +08:00