Files
beabigegg 55f85d0d3c feat: implement soft delete, task editing fixes, and UI improvements
Backend:
- Add soft delete for spaces and projects (is_active flag)
- Add status_id and assignee_id to TaskUpdate schema
- Fix task PATCH endpoint to update status and assignee
- Add validation for assignee_id and status_id in task updates
- Fix health service to count tasks with "Blocked" status as blockers
- Filter out deleted spaces/projects from health dashboard
- Add workload cache invalidation on assignee changes

Frontend:
- Add delete confirmation dialogs for spaces and projects
- Fix UserSelect to display selected user name (valueName prop)
- Fix task detail modal to refresh data after save
- Enforce 2-level subtask depth limit in UI
- Fix timezone bug in date formatting (use local timezone)
- Convert NotificationBell from Tailwind to inline styles
- Add i18n translations for health, workload, settings pages
- Add parent_task_id to Task interface across components

OpenSpec:
- Archive add-delete-capability change

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 01:32:13 +08:00

107 lines
2.8 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"title": "專案健康度儀表板",
"subtitle": "監控所有專案的健康狀況與風險等級",
"overall": {
"title": "整體健康度",
"healthy": "健康",
"atRisk": "風險中",
"critical": "危急"
},
"summary": {
"totalProjects": "專案總數",
"healthy": "健康",
"atRisk": "風險中",
"highRisk": "高風險",
"critical": "危急",
"avgHealth": "平均健康度",
"withBlockers": "有阻擋問題",
"delayed": "延遲"
},
"calculation": {
"title": "健康度計算方式",
"formula": "起始分數 100 分,依據以下因素扣分:",
"blockers": "阻擋問題:每項 -10 分(最多 -30 分)",
"overdue": "逾期任務:每項 -5 分(最多 -30 分)",
"completion": "完成度不足:若低於 50%,最多 -20 分",
"thresholds": "風險等級閾值:",
"lowRisk": "低風險(健康):≥ 80 分",
"mediumRisk": "中風險60-79 分",
"highRiskLevel": "高風險40-59 分",
"criticalRisk": "危急:< 40 分"
},
"sort": {
"label": "排序方式",
"riskHigh": "風險:高到低",
"riskLow": "風險:低到高",
"healthHigh": "健康度:高到低",
"healthLow": "健康度:低到高",
"name": "名稱A 到 Z"
},
"metrics": {
"schedule": "進度",
"budget": "預算",
"scope": "範圍",
"quality": "品質",
"resources": "資源"
},
"status": {
"onTrack": "正常進行",
"delayed": "延遲",
"ahead": "超前",
"overBudget": "超支",
"underBudget": "低於預算",
"atRisk": "有風險"
},
"resourceStatus": {
"adequate": "充足",
"constrained": "受限",
"overloaded": "超載"
},
"card": {
"health": "健康度",
"schedule": "進度",
"resources": "資源",
"owner": "負責人",
"taskProgress": "任務進度",
"blockers": "阻擋問題",
"overdue": "逾期",
"complete": "完成"
},
"riskLevel": {
"low": "低風險",
"medium": "中風險",
"high": "高風險",
"critical": "危急"
},
"indicators": {
"title": "健康指標",
"taskCompletion": "任務完成率",
"onTimeDelivery": "準時交付率",
"blockedTasks": "阻擋任務數",
"overdueRate": "逾期率",
"velocityTrend": "速度趨勢"
},
"risks": {
"title": "風險",
"high": "高風險",
"medium": "中風險",
"low": "低風險",
"critical": "危急",
"mitigated": "已緩解"
},
"actions": {
"viewDetails": "查看詳情",
"exportReport": "匯出報告",
"setAlert": "設定警示",
"retry": "重試"
},
"projectCount": "{{count}} 個專案",
"empty": {
"title": "沒有專案",
"description": "建立專案以開始追蹤健康狀態"
},
"error": {
"loadFailed": "載入專案健康度資料失敗,請重試。"
}
}