# 农事日历功能完整指南

## 功能概述

农事日历是智慧农业生产管理系统中的核心模块，提供全方位的农事活动可视化管理和进度监控功能。

## 主要功能

### 1. 可视化视图（日历形式）

#### 核心特性
- **直观日历展示**: 以月历形式展示所有计划中和执行中的农事活动
- **拖拽调整**: 支持直接拖拽任务卡片到新日期，快速调整任务时间安排
- **颜色编码**: 不同任务类型使用不同颜色区分
  - 🟢 绿色 - 播种
  - 🟡 黄色 - 施肥  
  - 🔵 蓝色 - 灌溉
  - 🟣 紫色 - 除草
  - 🔴 红色 - 病虫害防治
  - 🟠 橙色 - 采收

#### 状态图标
- ⭕ 待开始
- ▶️ 进行中
- ✅ 已完成

#### 视图切换
- 月视图：查看整月的农事安排
- 周视图：聚焦一周的详细计划
- 日视图：查看单日的所有任务

#### 快捷操作
- 点击"今天"按钮快速回到当前日期
- 使用左右箭头在不同月份间导航

### 2. 甘特图视图

#### 核心特性
- **时间轴展示**: 横向时间轴直观展示任务的开始、结束和持续时间
- **进度可视化**: 任务条上显示实时进度百分比
- **任务关系**: 清晰展示不同地块、不同任务之间的时间关系
- **资源冲突检测**: 快速识别同一时间段的多个任务，避免资源冲突

#### 信息展示
- 左侧：任务名称、地块、状态
- 右侧：时间轴上的任务条，长度表示持续时间
- 鼠标悬停：显示具体开始和结束日期

### 3. 进度状态可视化

#### 地块分组展示
- 按地块分组展示所有农事任务
- 每个地块显示：
  - 地块名称和面积
  - 种植作物类型
  - 任务总数统计
  - 各状态任务数量（待开始、进行中、已完成）

#### 整体进度条
- 三段式进度条直观展示：
  - 🔵 蓝色：待开始任务比例
  - 🟢 绿色：进行中任务比例
  - ⚫ 灰色：已完成任务比例

#### 任务卡片
每个任务卡片显示：
- 任务类型和作物
- 任务状态标识
- 负责人信息
- 起止时间
- 完成度进度条

### 4. 多维筛选功能

支持按以下5个维度进行筛选：

#### 筛选维度
1. **作物**: 水稻、小麦、玉米等
2. **地块**: 东区1号地、西区2号地等
3. **负责人**: 张三、李四、王五等
4. **农事类型**: 播种、施肥、灌溉、除草、病虫害防治、采收
5. **任务状态**: 待开始、进行中、已完成

#### 筛选特性
- 支持多维度组合筛选
- 实时显示筛选结果数量
- 显示当前生效的筛选条件标签
- 一键重置所有筛选条件

### 5. 统计概览

顶部卡片显示关键指标：
- 📊 总任务数
- ⭕ 待开始任务数
- ▶️ 进行中任务数
- ✅ 已完成任务数

## 使用场景

### 场景1：计划制定
管理人员可通过日历视图查看整月的农事安排，合理规划各项农事活动的时间，避免时间冲突。

### 场景2：任务调整
当需要调整任务时间时，直接在日历视图中拖拽任务卡片到新日期即可，系统自动调整时间。

### 场景3：进度监控
通过进度状态可视化视图，管理层可快速掌握：
- 每块地的生产进度
- 哪些任务正在进行
- 哪些任务已经完成
- 哪些任务即将开始

### 场景4：资源协调
使用甘特图视图，可以：
- 识别同一时间段的多个任务
- 避免人力、机械资源冲突
- 优化资源调度安排

### 场景5：专项查询
需要查看特定维度的任务时：
- 查看某个负责人的所有任务
- 查看某种作物的农事安排
- 查看某块地的所有活动
- 查看特定类型的农事任务

## 数据示例

系统当前包含24个示例任务，覆盖10月-11月初的秋冬季农事周期：

### 任务分布
- **已完成任务**: 8个（10月1日-13日）
  - 秋季采收（水稻、玉米）、冬小麦播种、施底肥、灌溉、土壤改良等
- **进行中任务**: 4个（10月17日-22日）
  - 小麦播种、除草、灌溉等正在进行的农事活动
- **待开始任务**: 12个（10月23日-11月8日）
  - 涵盖追肥、除草、病虫害防治、灌溉等后续计划

### 覆盖范围
- **4个地块**: 东区1号地（小麦）、西区2号地（油菜）、南区3号地（小麦）、北区4号地（小麦）
- **2种作物**: 小麦（主要）、油菜
- **5位负责人**: 张三、李四、王五、赵六、陈七
- **6种农事类型**: 播种、施肥、灌溉、除草、病虫害防治、采收
- **3种任务状态**: 待开始、进行中、已完成

### 时间跨度
- 数据覆盖2025年10月1日至11月8日，共39天
- 包含完整的秋收冬种农事周期
- 展示从秋季作物采收到冬季作物播种、管理的全过程
- 每个地块都有多个不同阶段的农事任务
- 任务时间分布合理，便于查看时间冲突和资源调度

## 技术实现

### 核心技术
- React状态管理实现多维筛选
- HTML5 Drag & Drop API实现拖拽功能
- 响应式布局适配不同屏幕
- 动态计算甘特图任务条位置和宽度

### 数据结构
```typescript
interface CalendarTask {
  id: string;           // 任务ID
  name: string;         // 任务名称
  type: TaskType;       // 任务类型
  fieldId: string;      // 地块ID
  fieldName: string;    // 地块名称
  crop: string;         // 作物类型
  executor: string;     // 负责人
  startDate: string;    // 开始日期
  endDate: string;      // 结束日期
  status: TaskStatus;   // 任务状态
  progress: number;     // 完成进度
  color: string;        // 显示颜色
}
```

## 未来扩展

可考虑增加的功能：
- [ ] 任务详情查看和编辑
- [ ] 批量任务操作
- [ ] 导出农事日历报表
- [ ] 天气预报集成
- [ ] 任务提醒通知
- [ ] 移动端优化
- [ ] 打印功能
- [ ] 历史数据对比

## 访问路径

在系统中访问农事日历：
1. 登录系统
2. 点击顶部导航栏"农事管理"
3. 在左侧菜单选择"农事日历"
4. 默认显示"可视化视图"，可切换到"甘特图"或"进度状态可视化"

## 注意事项

1. 拖拽调整任务时间仅在日历视图中可用
2. 筛选条件会同时应用于所有三个视图
3. 任务颜色根据任务类型自动分配，不可手动修改
4. 进度百分比需要在任务执行过程中手动更新
5. 已完成的任务不建议再次拖拽调整时间

---

更新时间: 2025-10-20
版本: v1.0
