UNPKG

taskflow-ai

Version:

TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具

253 lines (252 loc) 6.7 kB
/** * 图表生成器 - 为TaskFlow AI生成各种数据可视化图表 * 支持甘特图、燃尽图、依赖图、进度图表等多种可视化类型 */ import { Logger } from '../../infra/logger'; import { TaskPlan } from '../../types/task'; import { ExecutionPath } from '../ai/intelligent-orchestrator'; /** * 图表类型枚举 */ export declare enum ChartType { GANTT = "gantt",// 甘特图 BURNDOWN = "burndown",// 燃尽图 BURNUP = "burnup",// 燃起图 DEPENDENCY = "dependency",// 依赖关系图 PROGRESS = "progress",// 进度图 TIMELINE = "timeline",// 时间线 KANBAN = "kanban",// 看板 VELOCITY = "velocity",// 速度图 WORKLOAD = "workload",// 工作负载图 RISK_MATRIX = "risk_matrix",// 风险矩阵 RESOURCE_ALLOCATION = "resource_allocation",// 资源分配图 MILESTONE = "milestone",// 里程碑图 CUMULATIVE_FLOW = "cumulative_flow",// 累积流图 CYCLE_TIME = "cycle_time",// 周期时间图 LEAD_TIME = "lead_time" } /** * 图表配置接口 */ export interface ChartConfig { type: ChartType; title: string; width?: number; height?: number; theme?: 'light' | 'dark' | 'auto'; colors?: string[]; showLegend?: boolean; showGrid?: boolean; showTooltip?: boolean; interactive?: boolean; exportFormats?: ('png' | 'svg' | 'pdf' | 'json')[]; customOptions?: Record<string, unknown>; } /** * 图表数据点接口 */ export interface ChartDataPoint { x: string | number | Date; y: string | number | Date; label?: string; color?: string; size?: number; metadata?: Record<string, unknown>; } /** * 图表系列接口 */ export interface ChartSeries { name: string; data: ChartDataPoint[]; type?: string; color?: string; visible?: boolean; } /** * 图表数据接口 */ export interface ChartData { series: ChartSeries[]; categories?: string[]; xAxis?: { title: string; type: 'category' | 'datetime' | 'numeric'; min?: string | number | Date; max?: string | number | Date; }; yAxis?: { title: string; type: 'category' | 'datetime' | 'numeric'; min?: number | string | Date; max?: number | string | Date; }; annotations?: ChartAnnotation[]; } /** * 图表注释接口 */ export interface ChartAnnotation { type: 'line' | 'area' | 'point' | 'text'; x?: number | string | Date; y?: number | string | Date; x2?: number | string | Date; y2?: number | string | Date; text?: string; color?: string; style?: Record<string, unknown>; } /** * 生成的图表接口 */ export interface GeneratedChart { id: string; config: ChartConfig; data: ChartData; metadata: { generatedAt: Date; dataSource: string; recordCount: number; lastUpdated?: Date; }; renderOptions?: { format: string; content: string; }; } /** * 图表生成器类 */ export declare class ChartGenerator { private logger; private defaultTheme; private colorPalettes; constructor(logger: Logger); /** * 获取状态对应的颜色 */ private getStatusColor; /** * 生成甘特图 * @param taskPlan 任务计划 * @param config 图表配置 */ generateGanttChart(taskPlan: TaskPlan, config?: Partial<ChartConfig>): GeneratedChart; /** * 生成燃尽图 * @param taskPlan 任务计划 * @param config 图表配置 */ generateBurndownChart(taskPlan: TaskPlan, config?: Partial<ChartConfig>): GeneratedChart; /** * 生成依赖关系图 * @param taskPlan 任务计划 * @param config 图表配置 */ generateDependencyGraph(taskPlan: TaskPlan, config?: Partial<ChartConfig>): GeneratedChart; /** * 生成进度图表 * @param taskPlan 任务计划 * @param config 图表配置 */ generateProgressChart(taskPlan: TaskPlan, config?: Partial<ChartConfig>): GeneratedChart; /** * 生成工作负载图 * @param taskPlan 任务计划 * @param config 图表配置 */ generateWorkloadChart(taskPlan: TaskPlan, config?: Partial<ChartConfig>): GeneratedChart; /** * 生成风险矩阵图 * @param taskPlan 任务计划 * @param config 图表配置 */ generateRiskMatrix(taskPlan: TaskPlan, config?: Partial<ChartConfig>): GeneratedChart; /** * 生成速度图表 * @param taskPlan 任务计划 * @param config 图表配置 */ generateVelocityChart(taskPlan: TaskPlan, config?: Partial<ChartConfig>): GeneratedChart; /** * 生成里程碑图表 * @param executionPath 执行路径 * @param config 图表配置 */ generateMilestoneChart(executionPath: ExecutionPath, config?: Partial<ChartConfig>): GeneratedChart; /** * 生成累积流图 * @param taskPlan 任务计划 * @param config 图表配置 */ generateCumulativeFlowChart(taskPlan: TaskPlan, config?: Partial<ChartConfig>): GeneratedChart; /** * 批量生成图表 * @param taskPlan 任务计划 * @param executionPath 执行路径 * @param chartTypes 要生成的图表类型 */ generateChartSuite(taskPlan: TaskPlan, executionPath?: ExecutionPath, chartTypes?: ChartType[]): GeneratedChart[]; /** * 生成图表ID */ private generateChartId; /** * 获取任务颜色 * @param task 任务 */ private getTaskColor; /** * 获取任务大小 * @param task 任务 */ private getTaskSize; /** * 估算任务结束日期 * @param task 任务 * @param startDate 开始日期 */ private estimateEndDate; /** * 获取状态标签 * @param status 状态 */ private getStatusLabel; /** * 计算风险影响 * @param task 任务 */ private calculateRiskImpact; /** * 计算风险概率 * @param task 任务 */ private calculateRiskProbability; /** * 获取风险颜色 * @param impact 影响 * @param probability 概率 */ private getRiskColor; /** * 获取风险等级 * @param impact 影响 * @param probability 概率 */ private getRiskLevel; /** * 计算每周速度 * @param tasks 任务列表 */ private calculateWeeklyVelocity; /** * 获取里程碑颜色 * @param importance 重要性 */ private getMilestoneColor; /** * 计算每日流量 * @param tasks 任务列表 */ private calculateDailyFlow; }