# FarmingOperation 模块页面结构示例 基于 navigation.ts 中的 operationMenus,为 FarmingOperation 模块创建完整的页面目录结构。 ## 1. 农事计划 (OperationPlanning) 模块 ### 1.1 计划制定 (PlanCreation) ``` pages/FarmingOperation/Planning/PlanCreation/ ├── 📄 index.jsx # 主组件 ├── 📄 index.css # 主样式文件 ├── 📄 index.types.ts # 类型定义 ├── 📂 hooks/ # 页面专用Hooks │ ├── 📄 usePageData.js # 数据管理Hook │ ├── 📄 usePageActions.js # 操作Hook │ ├── 📄 usePlanCreation.js # 计划创建Hook │ └── 📄 usePlanTemplate.js # 计划模板Hook ├── 📂 utils/ # 工具函数 │ ├── 📄 pageHelpers.js # 页面工具函数 │ ├── 📄 planUtils.js # 计划工具函数 │ ├── 📄 dateUtils.js # 日期工具函数 │ └── 📄 validators.js # 验证函数 ├── 📂 constants.js # 常量定义 └── 📂 components/ # 子组件目录 ├── 📂 PlanForm/ # 计划表单组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 PlanList/ # 计划列表组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 PlanWizard/ # 计划向导组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 CropSelection/ # 作物选择组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 FieldSelection/ # 地块选择组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 TimelinePlanner/ # 时间线规划组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 ResourceAllocation/ # 资源分配组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 PlanPreview/ # 计划预览组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts └── 📂 PlanTemplate/ # 计划模板组件 ├── 📄 index.jsx ├── 📄 index.css └── 📄 types.ts ``` ### 1.2 资源分配规划 (ResourceAllocation) ``` pages/FarmingOperation/Planning/ResourceAllocation/ ├── 📄 index.jsx ├── 📄 index.css ├── 📄 index.types.ts ├── 📂 hooks/ │ ├── 📄 usePageData.js │ ├── 📄 usePageActions.js │ ├── 📄 useResourceAllocation.js │ └── 📄 useResourceOptimizer.js ├── 📂 utils/ │ ├── 📄 pageHelpers.js │ ├── 📄 resourceUtils.js │ ├── 📄 allocationUtils.js │ └── 📄 optimizationUtils.js ├── 📂 constants.js └── 📂 components/ ├── 📂 ResourceDashboard/ # 资源仪表板组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 MachineryAllocation/ # 农机分配组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 PersonnelAllocation/ # 人员分配组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 MaterialAllocation/ # 农资分配组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 AllocationMatrix/ # 分配矩阵组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 ConflictDetector/ # 冲突检测组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 OptimizationSuggestion/ # 优化建议组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts └── 📂 AllocationReport/ # 分配报告组件 ├── 📄 index.jsx ├── 📄 index.css └── 📄 types.ts ``` ### 1.3 计划进度跟踪 (ProgressTracking) ``` pages/FarmingOperation/Planning/ProgressTracking/ ├── 📄 index.jsx ├── 📄 index.css ├── 📄 index.types.ts ├── 📂 hooks/ │ ├── 📄 usePageData.js │ ├── 📄 usePageActions.js │ ├── 📄 useProgressTracking.js │ └── 📄 useProgressAnalytics.js ├── 📂 utils/ │ ├── 📄 pageHelpers.js │ ├── 📄 progressUtils.js │ ├── 📄 analyticsUtils.js │ └── 📄 calculationUtils.js ├── 📂 constants.js └── 📂 components/ ├── 📂 ProgressDashboard/ # 进度仪表板组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 GanttChart/ # 甘特图组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 ProgressCard/ # 进度卡片组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 MilestoneTracker/ # 里程碑跟踪组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 DelayWarning/ # 延误预警组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 ProgressAnalysis/ # 进度分析组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 ComparisonChart/ # 对比图表组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts └── 📄 ProgressReport/ # 进度报告组件 ├── 📄 index.jsx ├── 📄 index.css └── 📄 types.ts ``` ## 2. 农事任务 (OperationTask) 模块 ### 2.1 任务管理 (TaskManagement) ``` pages/FarmingOperation/Task/TaskManagement/ ├── 📄 index.jsx ├── 📄 index.css ├── 📄 index.types.ts ├── 📂 hooks/ │ ├── 📄 usePageData.js │ ├── 📄 usePageActions.js │ ├── 📄 useTaskManagement.js │ └── 📄 useTaskFilters.js ├── 📂 utils/ │ ├── 📄 pageHelpers.js │ ├── 📄 taskUtils.js │ ├── 📄 filterUtils.js │ └── 📄 statusUtils.js ├── 📂 constants.js └── 📂 components/ ├── 📂 TaskList/ # 任务列表组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 TaskForm/ # 任务表单组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 TaskTable/ # 任务表格组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 TaskCard/ # 任务卡片组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 TaskFilter/ # 任务筛选组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 TaskStatus/ # 任务状态组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 TaskPriority/ # 任务优先级组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 TaskSearch/ # 任务搜索组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts └── 📂 BatchActions/ # 批量操作组件 ├── 📄 index.jsx ├── 📄 index.css └── 📄 types.ts ``` ### 2.2 任务分配与派发 (TaskAssignment) ``` pages/FarmingOperation/Task/TaskAssignment/ ├── 📄 index.jsx ├── 📄 index.css ├── 📄 index.types.ts ├── 📂 hooks/ │ ├── 📄 usePageData.js │ ├── 📄 usePageActions.js │ ├── 📄 useTaskAssignment.js │ └── 📄 useAutoAssignment.js ├── 📂 utils/ │ ├── 📄 pageHelpers.js │ ├── 📄 assignmentUtils.js │ ├── 📄 matchingUtils.js │ └── 📄 notificationUtils.js ├── 📂 constants.js └── 📂 components/ ├── 📂 AssignmentBoard/ # 分配看板组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 TaskAssignmentForm/ # 任务分配表单 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 PersonnelSelector/ # 人员选择器组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 MachinerySelector/ # 农机选择器组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 AvailabilityChecker/ # 可用性检查组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 SkillMatcher/ # 技能匹配组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 AssignmentCalendar/ # 分配日历组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 ConflictResolver/ # 冲突解决组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts └── 📄 AssignmentNotification/ # 分配通知组件 ├── 📄 index.jsx ├── 📄 index.css └── 📄 types.ts ``` ### 2.3 任务状态监控 (TaskMonitoring) ``` pages/FarmingOperation/Task/TaskMonitoring/ ├── 📄 index.jsx ├── 📄 index.css ├── 📄 index.types.ts ├── 📂 hooks/ │ ├── 📄 usePageData.js │ ├── 📄 usePageActions.js │ ├── 📄 useTaskMonitoring.js │ ├── 📄 useRealtimeUpdate.js │ └── 📄 useWebSocket.js ├── 📂 utils/ │ ├── 📄 pageHelpers.js │ ├── 📄 monitoringUtils.js │ ├── 📄 statusUtils.js │ └── 📄 alertUtils.js ├── 📂 constants.js └── 📂 components/ ├── 📂 MonitoringDashboard/ # 监控仪表板组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 TaskMap/ # 任务地图组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 StatusOverview/ # 状态概览组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 LiveTracking/ # 实时跟踪组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 ProgressIndicator/ # 进度指示器组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 AlertCenter/ # 告警中心组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 PerformanceMetrics/ # 性能指标组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 ResourceUtilization/ # 资源利用率组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts └── 📄 MonitoringReport/ # 监控报告组件 ├── 📄 index.jsx ├── 📄 index.css └── 📄 types.ts ``` ### 2.4 历史与统计 (TaskStatistics) ``` pages/FarmingOperation/Task/TaskStatistics/ ├── 📄 index.jsx ├── 📄 index.css ├── 📄 index.types.ts ├── 📂 hooks/ │ ├── 📄 usePageData.js │ ├── 📄 usePageActions.js │ ├── 📄 useTaskStatistics.js │ └── 📄 useHistoricalData.js ├── 📂 utils/ │ ├── 📄 pageHelpers.js │ ├── 📄 statisticsUtils.js │ ├── 📄 chartUtils.js │ └── 📄 reportUtils.js ├── 📂 constants.js └── 📂 components/ ├── 📂 StatisticsDashboard/ # 统计仪表板组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 TaskHistory/ # 任务历史组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 PerformanceChart/ # 性能图表组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 TrendAnalysis/ # 趋势分析组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 ComparisonAnalysis/ # 对比分析组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 EfficiencyMetrics/ # 效率指标组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 QualityMetrics/ # 质量指标组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 CostAnalysis/ # 成本分析组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts └── 📂 StatisticalReport/ # 统计报告组件 ├── 📄 index.jsx ├── 📄 index.css └── 📄 types.ts ``` ## 3. 农事执行 (OperationExecution) 模块 ### 3.1 农事类型 (OperationType) ``` pages/FarmingOperation/Execution/OperationType/ ├── 📄 index.jsx ├── 📄 index.css ├── 📄 index.types.ts ├── 📂 hooks/ │ ├── 📄 usePageData.js │ ├── 📄 usePageActions.js │ ├── 📄 useOperationTypes.js │ └── 📄 useTypeManagement.js ├── 📂 utils/ │ ├── 📄 pageHelpers.js │ ├── 📄 typeUtils.js │ ├── 📄 categoryUtils.js │ └── 📄 validationUtils.js ├── 📂 constants.js └── 📂 components/ ├── 📂 TypeList/ # 类型列表组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 TypeForm/ # 类型表单组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 TypeCategory/ # 类型分类组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 TypeTemplate/ # 类型模板组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 StandardProcedure/ # 标准流程组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 QualityStandard/ # 质量标准组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 SafetyGuidelines/ # 安全指南组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts └── 📄 TypeHierarchy/ # 类型层级组件 ├── 📄 index.jsx ├── 📄 index.css └── 📄 types.ts ``` ### 3.2 操作录入 (OperationRecord) ``` pages/FarmingOperation/Execution/OperationRecord/ ├── 📄 index.jsx ├── 📄 index.css ├── 📄 index.types.ts ├── 📂 hooks/ │ ├── 📄 usePageData.js │ ├── 📄 usePageActions.js │ ├── 📄 useOperationRecord.js │ └── 📄 useFieldData.js ├── 📂 utils/ │ ├── 📄 pageHelpers.js │ ├── 📄 recordUtils.js │ ├── 📄 dataUtils.js │ └── 📄 validationUtils.js ├── 📂 constants.js └── 📂 components/ ├── 📂 RecordForm/ # 录入表单组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 FieldSelector/ # 地块选择器组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 OperationSelector/ # 操作选择器组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 DataInput/ # 数据输入组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 PhotoUpload/ # 照片上传组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 WeatherInfo/ # 天气信息组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 MaterialUsage/ # 农资使用组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 QualityCheck/ # 质量检查组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts └── 📄 RecordHistory/ # 录入历史组件 ├── 📄 index.jsx ├── 📄 index.css └── 📄 types.ts ``` ### 3.3 日志多维查询 (OperationLog) ``` pages/FarmingOperation/Execution/OperationLog/ ├── 📄 index.jsx ├── 📄 index.css ├── 📄 index.types.ts ├── 📂 hooks/ │ ├── 📄 usePageData.js │ ├── 📄 usePageActions.js │ ├── 📄 useOperationLog.js │ └── ├── 📄 useLogFilters.js ├── 📂 utils/ │ ├── 📄 pageHelpers.js │ ├── 📄 logUtils.js │ ├── 📄 filterUtils.js │ └── 📄 exportUtils.js ├── 📂 constants.js └── 📂 components/ ├── 📂 LogList/ # 日志列表组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 LogFilter/ # 日志筛选组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📂 LogDetails/ # 日志详情组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 MultiDimensionFilter/ # 多维筛选组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 LogExport/ # 日志导出组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 LogStatistics/ # 日志统计组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 LogTimeline/ # 日志时间线组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts ├── 📄 LogVisualization/ # 日志可视化组件 │ ├── 📄 index.jsx │ ├── 📄 index.css │ └── 📄 types.ts └── 📄 LogAudit/ # 日志审计组件 ├── 📄 index.jsx ├── 📄 index.css └── 📄 types.ts ``` ## 4. 主要类型定义示例 ### 4.1 农事计划类型 (PlanCreation/index.types.ts) ```typescript export interface FarmingPlan { id: string; name: string; description?: string; planType: PlanType; status: PlanStatus; priority: Priority; startDate: string; endDate: string; crops: Crop[]; fields: Field[]; tasks: PlanTask[]; resources: ResourceAllocation[]; budget?: Budget; createdBy: string; createdAt: string; updatedAt: string; } export type PlanType = 'annual' | 'seasonal' | 'monthly' | 'custom'; export type PlanStatus = 'draft' | 'approved' | 'active' | 'completed' | 'cancelled'; export type Priority = 'low' | 'medium' | 'high' | 'urgent'; export interface Crop { id: string; name: string; variety: string; plantingDate: string; expectedHarvestDate: string; expectedYield: number; area: number; } export interface Field { id: string; name: string; area: number; soilType: string; location: { latitude: number; longitude: number; }; } export interface PlanTask { id: string; name: string; type: TaskType; description?: string; plannedStartDate: string; plannedEndDate: string; actualStartDate?: string; actualEndDate?: string; status: TaskStatus; assignedTo?: string[]; requiredResources: ResourceRequirement[]; dependencies: string[]; estimatedCost?: number; actualCost?: number; } export type TaskType = | 'land_preparation' | 'planting' | 'fertilizing' | 'irrigation' | 'pest_control' | 'weeding' | 'harvesting' | 'post_harvest'; export type TaskStatus = | 'pending' | 'in_progress' | 'completed' | 'cancelled' | 'delayed'; export interface ResourceAllocation { id: string; type: ResourceType; resourceId: string; resourceName: string; quantity: number; unit: string; allocationPeriod: { start: string; end: string; }; cost?: number; } export type ResourceType = 'machinery' | 'personnel' | 'material' | 'equipment'; export interface ResourceRequirement { type: ResourceType; quantity: number; unit: string; specifications?: Record; } export interface Budget { totalAmount: number; currency: string; breakdown: BudgetBreakdown[]; actualSpent?: number; } export interface BudgetBreakdown { category: string; plannedAmount: number; actualAmount?: number; percentage: number; } export interface PlanFilters { name?: string; status?: PlanStatus; priority?: Priority; dateRange?: [string, string]; createdBy?: string; cropType?: string; } ``` ### 4.2 任务执行类型 (TaskMonitoring/index.types.ts) ```typescript export interface TaskExecution { id: string; taskId: string; taskName: string; status: ExecutionStatus; progress: number; startTime?: string; endTime?: string; estimatedEndTime?: string; assignedPersonnel: Personnel[]; assignedMachinery: Machinery[]; location: Location; actualResources: ResourceUsage[]; qualityMetrics?: QualityMetric[]; issues: TaskIssue[]; photos: TaskPhoto[]; notes?: string; } export type ExecutionStatus = | 'not_started' | 'in_progress' | 'paused' | 'completed' | 'failed' | 'cancelled'; export interface Personnel { id: string; name: string; role: string; skills: string[]; status: PersonnelStatus; currentLocation?: Location; workingHours?: WorkingHours; } export type PersonnelStatus = 'available' | 'busy' | 'off_duty' | 'unavailable'; export interface WorkingHours { start: string; end: string; breakDuration?: number; } export interface Machinery { id: string; name: string; type: string; model: string; status: MachineryStatus; currentLocation?: Location; fuelLevel?: number; operatingHours?: number; maintenanceStatus?: MaintenanceStatus; } export type MachineryStatus = | 'available' | 'in_use' | 'maintenance' | 'broken' | 'offline'; export type MaintenanceStatus = 'good' | 'due' | 'overdue' | 'unknown'; export interface Location { latitude: number; longitude: number; accuracy?: number; timestamp?: string; } export interface ResourceUsage { id: string; type: ResourceType; name: string; plannedQuantity: number; actualQuantity: number; unit: string; cost?: number; } export interface QualityMetric { id: string; name: string; value: number; unit: string; standard?: number; tolerance?: number; status: QualityStatus; measuredAt: string; measuredBy: string; } export type QualityStatus = 'excellent' | 'good' | 'acceptable' | 'poor' | 'failed'; export interface TaskIssue { id: string; type: IssueType; severity: Severity; description: string; reportedAt: string; reportedBy: string; status: IssueStatus; resolvedAt?: string; resolvedBy?: string; resolution?: string; } export type IssueType = | 'equipment_failure' | 'weather' | 'resource_shortage' | 'quality_issue' | 'safety_incident' | 'other'; export type Severity = 'low' | 'medium' | 'high' | 'critical'; export type IssueStatus = 'open' | 'in_progress' | 'resolved' | 'closed'; export interface TaskPhoto { id: string; url: string; thumbnail?: string; description?: string; takenAt: string; takenBy: string; location?: Location; tags?: string[]; } export interface TaskAlert { id: string; taskId: string; type: AlertType; severity: Severity; message: string; triggeredAt: string; acknowledgedAt?: string; acknowledgedBy?: string; resolvedAt?: string; resolvedBy?: string; } export type AlertType = | 'delay' | 'resource_shortage' | 'quality_issue' | 'safety_alert' | 'equipment_issue' | 'weather_warning'; ``` 这个结构为 FarmingOperation 模块提供了完整的页面组织架构,涵盖了农事计划、任务管理、执行监控等核心功能,每个页面都包含完整的组件拆分和类型定义。