145 lines
5.6 KiB
JSON
145 lines
5.6 KiB
JSON
{
|
||
"state": "COMPLETE",
|
||
"requirement": "重做后台管理系统和用户端个人中心,核心改动如下:\n\n1. 计量单位变更:将所有「调用次数」改为「生成秒数」。用户每次生成视频消耗的是秒数,不是次数。后端数据模型、API、前端展示都需要对应调整。\n\n2. 后台管理系统重做(必须按模块拆分路由,使用左侧 Sidebar 导航):\n - 仪表盘页面(/admin/dashboard):核心指标卡片(总用户、今日新增、今日消费秒数、本月消费秒数)+ 消费趋势折线图(近30天,使用 ECharts)+ 用户消费排行柱状图\n - 用户管理页面(/admin/users):用户列表(分页、搜索、筛选状态)+ 每个用户可编辑配额(日限额秒数、月限额秒数)+ 启用/禁用用户 + 查看用户详情和消费记录\n - 消费记录页面(/admin/records):所有用户的消费明细列表(时间、用户名、消费秒数、生成内容、状态)+ 时间范围筛选 + 导出功能\n - 系统设置页面(/admin/settings):全局默认配额设置、系统公告管理\n\n3. 用户端个人中心(/profile):\n - 消费概览:已用秒数/总额度(环形进度条)+ 今日已用/日限额 + 本月已用/月限额\n - 消费记录列表:每条记录显示时间、消费秒数、生成的视频描述、状态\n - 消费趋势迷你图(近7天/30天 Sparkline)\n\n4. 设计要求:\n - 管理后台使用深色主题(参考 Linear/Vercel Dashboard 风格)\n - 必须使用 ECharts 或 Recharts 图表库,图表要有真实 Mock 数据\n - 页面切换有过渡动画\n - 数据加载使用骨架屏\n - 如果项目用了 Arco Design,优先使用 Arco 组件\n\n5. 后端 API 需要新增/修改:\n - GET /api/v1/admin/stats — 返回仪表盘统计数据(含趋势数据)\n - GET /api/v1/admin/users — 用户列表(分页、搜索、排序)\n - GET /api/v1/admin/users/:id — 用户详情+消费记录\n - PUT /api/v1/admin/users/:id/quota — 修改用户配额(改为秒数)\n - PATCH /api/v1/admin/users/:id/status — 启用/禁用用户\n - GET /api/v1/admin/records — 消费记录列表(分页、筛选)\n - GET /api/v1/profile/overview — 用户个人消费概览\n - GET /api/v1/profile/records — 用户个人消费记录\n\n数据库连接信息保持不变:DB_NAME=video_auto, DB_USER=ai_video, DB_PASSWORD=JogNQdtrd3WY8CBCAiYfYEGx, DB_HOST=rm-7xv1uaw910558p1788o.mysql.rds.aliyuncs.com, DB_PORT=3306",
|
||
"designReviewRounds": 1,
|
||
"bugFixRounds": 1,
|
||
"designBugRounds": 0,
|
||
"requirementBugRounds": 0,
|
||
"startedAt": 1773297329874,
|
||
"lastTransitionAt": 1773308839611,
|
||
"history": [
|
||
{
|
||
"from": "INIT",
|
||
"to": "PLANNING",
|
||
"trigger": "user_requirement",
|
||
"timestamp": 1773297329875
|
||
},
|
||
{
|
||
"from": "PLANNING",
|
||
"to": "DESIGNING",
|
||
"trigger": "prd_ready",
|
||
"timestamp": 1773297604388
|
||
},
|
||
{
|
||
"from": "DESIGNING",
|
||
"to": "DESIGN_REVIEW",
|
||
"trigger": "prototype_ready",
|
||
"timestamp": 1773297640509
|
||
},
|
||
{
|
||
"from": "DESIGN_REVIEW",
|
||
"to": "DESIGNING",
|
||
"trigger": "revision_needed",
|
||
"timestamp": 1773297978455
|
||
},
|
||
{
|
||
"from": "DESIGNING",
|
||
"to": "DESIGN_REVIEW",
|
||
"trigger": "prototype_ready",
|
||
"timestamp": 1773298005748
|
||
},
|
||
{
|
||
"from": "DESIGN_REVIEW",
|
||
"to": "DESIGNING",
|
||
"trigger": "revision_needed",
|
||
"timestamp": 1773298184164
|
||
},
|
||
{
|
||
"from": "DESIGNING",
|
||
"to": "DESIGN_REVIEW",
|
||
"trigger": "prototype_ready",
|
||
"timestamp": 1773298217956
|
||
},
|
||
{
|
||
"from": "DESIGN_REVIEW",
|
||
"to": "DEVELOPING",
|
||
"trigger": "design_approved",
|
||
"timestamp": 1773298545453
|
||
},
|
||
{
|
||
"from": "DEVELOPING",
|
||
"to": "TESTING",
|
||
"trigger": "code_ready",
|
||
"timestamp": 1773299937481
|
||
},
|
||
{
|
||
"from": "TESTING",
|
||
"to": "BUG_FIXING",
|
||
"trigger": "code_bugs_found",
|
||
"timestamp": 1773301071320
|
||
},
|
||
{
|
||
"from": "BUG_FIXING",
|
||
"to": "TESTING",
|
||
"trigger": "bugfix_done",
|
||
"timestamp": 1773301133293
|
||
},
|
||
{
|
||
"from": "TESTING",
|
||
"to": "COMPLETE",
|
||
"trigger": "all_done",
|
||
"timestamp": 1773301590105
|
||
},
|
||
{
|
||
"from": "COMPLETE",
|
||
"to": "PLANNING",
|
||
"trigger": "new_requirement_after_complete",
|
||
"timestamp": 1773303420196
|
||
},
|
||
{
|
||
"from": "PLANNING",
|
||
"to": "DESIGNING",
|
||
"trigger": "prd_ready",
|
||
"timestamp": 1773304593012
|
||
},
|
||
{
|
||
"from": "DESIGNING",
|
||
"to": "DESIGN_REVIEW",
|
||
"trigger": "prototype_ready",
|
||
"timestamp": 1773304619775
|
||
},
|
||
{
|
||
"from": "DESIGN_REVIEW",
|
||
"to": "DESIGNING",
|
||
"trigger": "revision_needed",
|
||
"timestamp": 1773304947125
|
||
},
|
||
{
|
||
"from": "DESIGNING",
|
||
"to": "DESIGN_REVIEW",
|
||
"trigger": "prototype_ready",
|
||
"timestamp": 1773304977065
|
||
},
|
||
{
|
||
"from": "PLANNING",
|
||
"to": "DESIGNING",
|
||
"trigger": "prd_ready",
|
||
"timestamp": 1773305280422
|
||
},
|
||
{
|
||
"from": "DESIGNING",
|
||
"to": "DESIGN_REVIEW",
|
||
"trigger": "prototype_ready",
|
||
"timestamp": 1773305969599
|
||
},
|
||
{
|
||
"from": "DESIGN_REVIEW",
|
||
"to": "DEVELOPING",
|
||
"trigger": "design_approved",
|
||
"timestamp": 1773306393389
|
||
},
|
||
{
|
||
"from": "DEVELOPING",
|
||
"to": "TESTING",
|
||
"trigger": "code_ready",
|
||
"timestamp": 1773307571362
|
||
},
|
||
{
|
||
"from": "TESTING",
|
||
"to": "COMPLETE",
|
||
"trigger": "all_done",
|
||
"timestamp": 1773308839611
|
||
}
|
||
],
|
||
"totalCostUsd": 0
|
||
} |