taskflow-ai
Version:
TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具
253 lines (252 loc) • 6.7 kB
TypeScript
/**
* 图表生成器 - 为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;
}