组件概述

  1. Container
  • Container 类负责处理项目的路由和状态管理。它使用 Redux 来管理项目的动作和工作流相关的动作。
  • 它包含了用于刷新页面、索引问题、创建、显示、获取选项等功能的方法。
  1. Blocks
  • Blocks 组件渲染甘特图中的任务块。它遍历任务集合,并为每个任务创建一个 BlockItem
  1. BlockItem
  • BlockItem 组件负责渲染单个任务块。它显示任务的状态、开始时间和结束时间,并提供一个弹出窗口来显示更多详细信息。
  1. Grids
  • Grids 组件渲染甘特图的网格部分。它根据当前滚动位置和屏幕宽度来决定哪些网格项应该被渲染。
  1. GridItem
  • GridItem 组件负责渲染单个网格项。它会根据今天的日期和标记的任务来设置不同的样式。
  1. GridEmptyItem
  • GridEmptyItem 组件用于填充空的网格项。
  1. Header
  • Header 组件提供了页面的头部功能,如创建新任务、保存过滤器、重置过滤器等。
  1. HzHeader
  • HzHeader 组件渲染水平方向的标题栏,显示月份和每天的日期。
  1. List
  • List 组件是甘特图的主要部分,它负责管理任务列表、处理任务的操作(如编辑、折叠)、设置日期范围等。
  1. VtHeader
  • VtHeader 组件渲染垂直方向的标题栏,显示任务的主题、编号、负责人、进度或状态等信息。
  1. VtHeaderItem
  • VtHeaderItem 组件负责渲染单个任务的垂直标题栏项。
  1. FilterContainer
  • FilterContainer 组件负责处理过滤器相关的工作,如获取过滤器选项、选择过滤器等。
  1. EditModal
  • EditModal 组件提供一个模态框来编辑任务的期望开始时间、结束时间和进度。

逻辑说明

  1. 任务数据管理
  • List 组件是核心组件,它管理任务列表,并负责处理任务的各种操作,如显示、编辑、折叠等。
  • 它从服务器获取任务数据,并根据这些数据计算甘特图的显示范围和布局。
  1. 任务块渲染
  • Blocks 组件接收任务集合,并为每个任务创建一个 BlockItem 组件。
  • BlockItem 组件显示任务的详细信息,并提供交互功能,如点击弹出详细信息。
  1. 网格渲染
  • Grids 组件负责渲染甘特图的网格部分。
  • GridItem 组件负责渲染单个网格项,并根据任务的开始和结束时间来设置宽度和位置。
  • GridEmptyItem 组件用于填充空的网格项。
  1. 头部显示
  • Header 组件提供了页面的头部功能,如创建新任务、保存过滤器等。
  • HzHeader 组件显示水平方向的日期信息。
  • VtHeader 组件显示垂直方向的任务信息。
  1. 过滤器管理
  • FilterContainer 组件处理过滤器相关的操作,如获取过滤器选项、选择过滤器等。
  1. 编辑任务
  • EditModal 组件提供一个模态框来编辑任务的期望开始时间、结束时间和进度。

协同工作

  • Container 组件负责整体的路由和状态管理。
  • List 组件是核心组件,负责管理任务列表。
  • BlocksBlockItem 组件负责渲染任务块。
  • GridsGridItemGridEmptyItem 组件负责渲染甘特图的网格。
  • HeaderHzHeaderVtHeader 组件负责渲染头部信息。
  • FilterContainer 组件负责处理过滤器相关的工作。
  • EditModal 组件提供编辑任务的功能。

这些组件通过 Redux 管理状态,并通过事件处理器(如点击事件)相互协作,实现了完整的甘特图功能。