feat(frontend): add four-quadrant kanban task management system

- Add KanbanPanel component with four-quadrant task layout
- Add KanbanDetail component for task configuration modal
- Add "待办" (Todo) module to sidebar collapsed icon rail
- Click TODAY'S STATUS card or sidebar icon to open kanban drawer
- Click quadrant check icon to open detail modal with Teleport to body
- Apply blur effect to sidebar and chat area when detail modal is open
- Import ListTodo icon from lucide-vue-next
- Update sidebar labels to English for consistency
This commit is contained in:
2026-04-06 23:48:52 +08:00
parent 3cf8762b96
commit 3bff9b3b93
5 changed files with 954 additions and 17 deletions

View File

@@ -1,5 +1,5 @@
import { computed, onMounted, ref, watch } from 'vue'
import { CornerDownLeft, Database, Sparkles, Sun } from 'lucide-vue-next'
import { CornerDownLeft, Database, Sparkles, Sun, ListTodo } from 'lucide-vue-next'
import { scheduleCenterApi, type ScheduleCenterDateResponse, type ScheduleCenterDaySummary } from '@/api/scheduleCenter'
export interface SidebarFocusItem {
@@ -13,6 +13,7 @@ export const sidebarCollapsedModules = [
{ id: 'calendar', label: '日历', icon: Sun },
{ id: 'status', label: '计划', icon: Database },
{ id: 'focus', label: '重点', icon: Sparkles },
{ id: 'kanban', label: '待办', icon: ListTodo },
{ id: 'review', label: '复盘', icon: CornerDownLeft },
]
@@ -111,10 +112,10 @@ export function useSidebarPlan(clientTimeRef: { value: Date }, loadDailyDigestFn
))
const sidebarStatusBreakdown = computed(() => [
{ key: 'done', label: '已完成', value: todayPlanCounters.value.done, tone: 'done' },
{ key: 'doing', label: '进行中', value: todayPlanCounters.value.doing, tone: 'doing' },
{ key: 'pending', label: '未开始', value: todayPlanCounters.value.pending, tone: 'pending' },
{ key: 'total', label: '今日合计', value: todayPlanCounters.value.total, tone: 'total' },
{ key: 'done', label: 'Completed', value: todayPlanCounters.value.done, tone: 'done' },
{ key: 'doing', label: 'In Progress', value: todayPlanCounters.value.doing, tone: 'doing' },
{ key: 'pending', label: 'Pending', value: todayPlanCounters.value.pending, tone: 'pending' },
{ key: 'total', label: 'Total', value: todayPlanCounters.value.total, tone: 'total' },
])
// 模拟数据 - 用于测试滑动条