50 lines
2.1 KiB
JSON
50 lines
2.1 KiB
JSON
{
|
|
"module": "kanban",
|
|
"version": "1.0",
|
|
"purpose": "Dashboard 'Kanban' tab 展示看板任务列表,支持按状态(Ready/In Progress/Blocked/Done)和负责人筛选,实时刷新。",
|
|
"ui_location": "主菜单 → Kanban tab",
|
|
|
|
"human_help": {
|
|
"title": "Kanban 看板",
|
|
"description": [
|
|
"本页面展示系统中的看板任务卡片,每个任务包含标题、状态标签、负责人和创建日期。",
|
|
"顶部筛选器可按状态和负责人过滤任务列表。",
|
|
"任务卡片可点击展开/收起详细描述。"
|
|
],
|
|
"usage": [
|
|
"1. 使用顶部筛选器(All Status / All)缩小任务范围",
|
|
"2. 点击任务卡片展开详情(支持 multi-line 描述)",
|
|
"3. 状态颜色标识:绿色=Ready、黄色=In Progress、红色=Blocked、灰色=Done",
|
|
"4. 页面每 15s 自动刷新任务列表"
|
|
],
|
|
"troubleshooting": [
|
|
"如果任务列表为空:检查 Kanban API 是否正常运行",
|
|
"如果筛选器无反应:页面自动刷新后会重置筛选状态 — 请确保在刷新间隔内操作"
|
|
],
|
|
"related": "G 规范定义开发流程和任务管理规范"
|
|
},
|
|
|
|
"ai_spec": {
|
|
"apis": [
|
|
{"method": "GET", "path": "/api/kanban", "returns": "{ok, tasks[{id,title,body,status,assignee,created_at}]}"}
|
|
],
|
|
"dependencies": [
|
|
"看板数据由 dashboard.py 从后端 Kanban 服务/数据库获取"
|
|
],
|
|
"constraints": [
|
|
"页面每 15s 轮询刷新 (setInterval(fK,15000))",
|
|
"筛选器状态通过 DOM 直接读取 (document.getElementById)",
|
|
"任务卡片展开使用 onclick 切换 expanded class — max-height 从 60px ↔ none 切换"
|
|
],
|
|
"tests": [
|
|
{"id": "KB01", "name": "/api/kanban 返回任务列表", "endpoint": "GET /api/kanban"},
|
|
{"id": "KB02", "name": "筛选器过滤正确", "endpoint": "n/a (frontend)"}
|
|
],
|
|
"related_files": [
|
|
"gateway/scripts/templates/dashboard.html — fK() 渲染函数",
|
|
"gateway/scripts/dashboard.py — /api/kanban 端点",
|
|
"gateway/scripts/specs/kanban.json — 本 spec 文件"
|
|
]
|
|
}
|
|
}
|