taskflow-ai
Version:
TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具
189 lines (188 loc) • 4.85 kB
TypeScript
/**
* 仪表板生成器 - 创建综合性的项目仪表板
* 整合多个图表和指标,提供全面的项目视图
*/
import { Logger } from '../../infra/logger';
import { TaskPlan } from '../../types/task';
import { OrchestrationResult } from '../ai/intelligent-orchestrator';
import { ChartType, GeneratedChart } from './chart-generator';
/**
* 仪表板类型枚举
*/
export declare enum DashboardType {
EXECUTIVE = "executive",// 高管仪表板
PROJECT_MANAGER = "project_manager",// 项目经理仪表板
DEVELOPER = "developer",// 开发者仪表板
TEAM_LEAD = "team_lead",// 团队负责人仪表板
STAKEHOLDER = "stakeholder",// 利益相关者仪表板
CUSTOM = "custom"
}
/**
* 仪表板布局类型
*/
export declare enum DashboardLayout {
GRID = "grid",// 网格布局
MASONRY = "masonry",// 瀑布流布局
TABS = "tabs",// 标签页布局
ACCORDION = "accordion",// 手风琴布局
SIDEBAR = "sidebar"
}
/**
* 仪表板组件接口
*/
export interface DashboardWidget {
id: string;
type: 'chart' | 'metric' | 'table' | 'text' | 'custom';
title: string;
description?: string;
position: {
x: number;
y: number;
width: number;
height: number;
};
data?: unknown;
config?: Record<string, unknown>;
refreshInterval?: number;
visible?: boolean;
permissions?: string[];
}
/**
* 仪表板配置接口
*/
export interface DashboardConfig {
type: DashboardType;
layout: DashboardLayout;
title: string;
description?: string;
theme: 'light' | 'dark' | 'auto';
refreshInterval: number;
autoRefresh: boolean;
responsive: boolean;
exportable: boolean;
shareable: boolean;
filters?: DashboardFilter[];
customCss?: string;
}
/**
* 仪表板过滤器接口
*/
export interface DashboardFilter {
id: string;
name: string;
type: 'select' | 'multiselect' | 'date' | 'daterange' | 'text' | 'number';
options?: Array<{
label: string;
value: string | number | boolean;
}>;
defaultValue?: string | number | boolean;
required?: boolean;
}
/**
* 生成的仪表板接口
*/
export interface GeneratedDashboard {
id: string;
config: DashboardConfig;
widgets: DashboardWidget[];
charts: GeneratedChart[];
metrics: DashboardMetric[];
metadata: {
generatedAt: Date;
dataSource: string;
version: string;
lastUpdated?: Date;
};
}
/**
* 仪表板指标接口
*/
export interface DashboardMetric {
id: string;
name: string;
value: number | string;
unit?: string;
trend?: {
direction: 'up' | 'down' | 'stable';
percentage: number;
period: string;
};
target?: number;
status: 'good' | 'warning' | 'critical';
description?: string;
category: string;
}
/**
* 仪表板生成器类
*/
export declare class DashboardGenerator {
private logger;
private chartGenerator;
constructor(logger: Logger);
/**
* 生成高管仪表板
* @param taskPlan 任务计划
* @param orchestrationResult 编排结果
*/
generateExecutiveDashboard(taskPlan: TaskPlan, orchestrationResult?: OrchestrationResult): GeneratedDashboard;
/**
* 生成项目经理仪表板
* @param taskPlan 任务计划
* @param orchestrationResult 编排结果
*/
generateProjectManagerDashboard(taskPlan: TaskPlan, orchestrationResult?: OrchestrationResult): GeneratedDashboard;
/**
* 生成开发者仪表板
* @param taskPlan 任务计划
* @param developerId 开发者ID
*/
generateDeveloperDashboard(taskPlan: TaskPlan, developerId: string): GeneratedDashboard;
/**
* 生成自定义仪表板
* @param taskPlan 任务计划
* @param customConfig 自定义配置
*/
generateCustomDashboard(taskPlan: TaskPlan, customConfig: {
title: string;
chartTypes: ChartType[];
layout: DashboardLayout;
theme: 'light' | 'dark' | 'auto';
filters?: DashboardFilter[];
}): GeneratedDashboard;
/**
* 生成仪表板ID
*/
private generateDashboardId;
/**
* 计算高管指标
*/
private calculateExecutiveMetrics;
/**
* 计算项目经理指标
*/
private calculateProjectManagerMetrics;
/**
* 计算开发者指标
*/
private calculateDeveloperMetrics;
/**
* 获取负责人选项
*/
private getAssigneeOptions;
/**
* 获取状态选项
*/
private getStatusOptions;
/**
* 格式化任务表格
*/
private formatTaskTable;
/**
* 自动布局组件
*/
private autoLayoutWidgets;
/**
* 计算组件位置
*/
private calculatePosition;
}