taskflow-ai
Version:
TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具
156 lines (155 loc) • 3.38 kB
TypeScript
/**
* TaskFlow AI 任务可视化模块
* 负责生成各种任务可视化图表
*/
import { TaskPlan } from '../../types/task';
import { Logger } from '../../infra/logger';
/**
* 可视化类型枚举
*/
export declare enum VisualizationType {
GANTT = "gantt",
DEPENDENCY = "dependency",
KANBAN = "kanban",
TIMELINE = "timeline",
PROGRESS = "progress"
}
/**
* 可视化选项
*/
export interface VisualizationOptions {
type: VisualizationType;
format?: 'mermaid' | 'json' | 'html';
includeSubtasks?: boolean;
showProgress?: boolean;
groupBy?: 'type' | 'assignee' | 'priority';
timeUnit?: 'days' | 'hours';
}
/**
* 甘特图数据
*/
export interface GanttData {
title: string;
tasks: GanttTask[];
}
export interface GanttTask {
id: string;
name: string;
start: string;
duration: number;
dependencies?: string[];
progress?: number;
assignee?: string;
}
/**
* 依赖关系图数据
*/
export interface DependencyGraph {
nodes: DependencyNode[];
edges: DependencyEdge[];
}
export interface DependencyNode {
id: string;
label: string;
type: string;
status: string;
priority: string;
}
export interface DependencyEdge {
from: string;
to: string;
type: 'dependency';
}
/**
* 看板数据
*/
export interface KanbanData {
columns: KanbanColumn[];
}
export interface KanbanColumn {
id: string;
title: string;
tasks: KanbanTask[];
}
export interface KanbanTask {
id: string;
title: string;
description: string;
priority: string;
assignee?: string;
tags: string[];
}
/**
* 任务可视化器类
*/
export declare class TaskVisualizer {
private logger;
constructor(logger: Logger);
/**
* 生成可视化数据
* @param taskPlan 任务计划
* @param options 可视化选项
*/
generateVisualization(taskPlan: TaskPlan, options: VisualizationOptions): Record<string, unknown>;
/**
* 生成甘特图
* @param taskPlan 任务计划
* @param options 选项
*/
private generateGanttChart;
/**
* 生成Mermaid格式的甘特图
* @param ganttData 甘特图数据
*/
private generateMermaidGantt;
/**
* 生成依赖关系图
* @param taskPlan 任务计划
* @param options 选项
*/
private generateDependencyGraph;
/**
* 生成Mermaid格式的依赖关系图
* @param graph 依赖关系图数据
*/
private generateMermaidDependencyGraph;
/**
* 获取节点形状
* @param status 任务状态
*/
private getNodeShape;
/**
* 获取节点样式
* @param priority 优先级
*/
private getNodeStyle;
/**
* 生成看板
* @param taskPlan 任务计划
* @param options 选项
*/
private generateKanbanBoard;
/**
* 生成时间线
* @param taskPlan 任务计划
* @param options 选项
*/
private generateTimeline;
/**
* 生成进度图表
* @param taskPlan 任务计划
* @param options 选项
*/
private generateProgressChart;
/**
* 格式化日期
* @param date 日期
*/
private formatDate;
/**
* 计算任务开始日期
* @param task 任务
* @param index 索引
*/
private calculateTaskStartDate;
}