- Fix checkbox binding using :model-value instead of :checked - Change selectedIds from Set to reactive array for proper Vue reactivity - Move batch refresh/delete buttons to top bar (matching CardKeysPage layout) - Buttons show selection count like 'Refresh (2)' when items selected - Swap position of 'Add Team' and 'Random Invite' buttons - Remove unused isIndeterminate computed property
GPT Team Manager
一个用于管理 ChatGPT Team 账号的全栈应用,支持多账号管理、卡密系统和团队邀请功能。
技术栈
后端
- Go - 后端语言
- PostgreSQL - 数据库
- JWT - 身份认证
前端
- Vue 3 - 前端框架
- TypeScript - 类型安全
- Vite - 构建工具
- Pinia - 状态管理
- shadcn-vue - UI 组件库
- TailwindCSS - 样式框架
功能特性
- 🔐 管理员认证 - JWT 登录
- 👥 账号管理 - 管理多个 ChatGPT Team 账号
- 🔑 卡密系统 - 创建、批量生成、导出卡密
- 📨 团队邀请 - 通过卡密邀请用户加入团队
- 🌙 暗色模式 - 自动切换主题
快速开始
环境要求
- Go 1.21+
- Node.js 18+
- pnpm
- PostgreSQL 14+
后端配置
cd backend
# 复制环境变量模板
cp .env.example .env
# 编辑 .env 配置数据库连接
# DATABASE_URL=postgresql://user:password@localhost:5432/gpt_manager
# 运行
go run ./cmd/main.go
前端配置
cd frontend
# 安装依赖
pnpm install
# 复制环境变量模板
cp .env.example .env
# 开发模式运行
pnpm run dev
# 生产构建
pnpm run build
项目结构
GPT_Management/
├── backend/ # Go 后端
│ ├── cmd/ # 入口文件
│ ├── internal/
│ │ ├── auth/ # JWT 认证
│ │ ├── config/ # 配置
│ │ ├── db/ # 数据库
│ │ ├── handler/ # HTTP 处理器
│ │ ├── middleware/ # 中间件
│ │ ├── models/ # 数据模型
│ │ ├── repository/ # 数据仓库
│ │ ├── router/ # 路由
│ │ └── service/ # 业务服务
│ └── go.mod
├── frontend/ # Vue 前端
│ ├── src/
│ │ ├── api/ # API 接口
│ │ ├── components/ # 组件
│ │ ├── layouts/ # 布局
│ │ ├── router/ # 路由
│ │ ├── stores/ # 状态管理
│ │ └── views/ # 页面
│ └── package.json
└── README.md
API 接口
认证
POST /api/login- 管理员登录GET /api/profile- 获取当前用户信息
卡密管理
GET /api/cardkeys- 获取卡密列表POST /api/cardkeys- 创建单个卡密POST /api/cardkeys/batch- 批量创建卡密DELETE /api/cardkeys/delete- 删除卡密DELETE /api/cardkeys/batch- 批量删除卡密POST /api/cardkeys/toggle- 切换卡密状态
账号管理
GET /api/accounts- 获取账号列表POST /api/accounts- 添加账号DELETE /api/accounts/:id- 删除账号
许可证
MIT License
Description
Languages
Vue
49.9%
Go
38.2%
TypeScript
9.6%
CSS
1.8%
Dockerfile
0.3%
Other
0.2%