为 new-api (LLM API 网关) 构建独立前端管理面板: - React 18 + TypeScript + Vite + Ant Design 5 前端 - Node.js + Express + better-sqlite3 BFF 后端 - 登录页: 站点选择器 + UserID + AccessToken 认证 - 仪表盘: 用户信息、额度环形图、7天趋势图、模型饼图、令牌概览、日志时间线 - 账单页: 筛选日志表格、模型消耗柱状图、充值记录、CSV/PDF 导出(HMAC签名) - 管理员站点管理: 站点 CRUD - API 代理: 多站点切换,会话管理 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
45 lines
1.1 KiB
JSON
45 lines
1.1 KiB
JSON
{
|
|
"name": "newapi-dashboard",
|
|
"private": true,
|
|
"version": "1.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc -b && vite build",
|
|
"preview": "vite preview",
|
|
"server": "tsx watch server/index.ts",
|
|
"start": "concurrently \"npm run server\" \"npm run dev\""
|
|
},
|
|
"dependencies": {
|
|
"react": "^18.3.1",
|
|
"react-dom": "^18.3.1",
|
|
"react-router-dom": "^6.28.0",
|
|
"antd": "^5.22.0",
|
|
"@ant-design/icons": "^5.5.0",
|
|
"@ant-design/charts": "^2.2.0",
|
|
"zustand": "^5.0.0",
|
|
"axios": "^1.7.0",
|
|
"dayjs": "^1.11.13",
|
|
"express": "^4.21.0",
|
|
"better-sqlite3": "^11.6.0",
|
|
"http-proxy-middleware": "^3.0.0",
|
|
"pdfkit": "^0.15.0",
|
|
"uuid": "^11.0.0",
|
|
"cors": "^2.8.5",
|
|
"concurrently": "^9.1.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/react": "^18.3.12",
|
|
"@types/react-dom": "^18.3.1",
|
|
"@types/express": "^5.0.0",
|
|
"@types/better-sqlite3": "^7.6.12",
|
|
"@types/cors": "^2.8.17",
|
|
"@types/uuid": "^10.0.0",
|
|
"@types/pdfkit": "^0.13.5",
|
|
"@vitejs/plugin-react": "^4.3.4",
|
|
"typescript": "^5.6.0",
|
|
"tsx": "^4.19.0",
|
|
"vite": "^6.0.0"
|
|
}
|
|
}
|