Files
smart-crop-ui/docs/架构分析与设计方案.md

971 lines
53 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 智慧农业系统架构分析与设计方案
## 1. 现有系统架构分析
### 1.1 技术栈概览
基于对现有代码的深入分析,当前系统采用以下技术栈:
**前端框架**
- React 18.3.1 + TypeScript
- Vite 6.3.5 + SWC 构建工具
- Tailwind CSS v4.1.3 样式框架
**UI组件库**
- Radix UI 原子组件(@radix-ui/*
- shadcn/ui 组件库
- Lucide React 图标库
- Sonner 通知系统
**状态管理**
- React Context (AuthContext)
- 本地 useState 管理组件状态
**数据处理**
- React Hook Form v7.55.0 表单处理
- date-fns 日期处理
- Recharts 图表库
- QRCode 生成库
### 1.2 项目结构分析
```
src/
├── components/
│ ├── ui/ # shadcn/ui 基础组件库
│ ├── auth/ # 认证相关组件
│ │ ├── AuthContext.tsx # 认证上下文管理
│ │ ├── Login.tsx # 登录页面
│ │ └── CaptchaInput.tsx # 验证码输入
│ ├── dashboard/ # 7大业务系统主组件
│ │ ├── MachineryManagement.tsx # 智能农机管理
│ │ ├── FieldManagement.tsx # 地块信息管理
│ │ ├── OperationManagement.tsx # 农事操作管理
│ │ ├── AssetManagement.tsx # 农业资产管理
│ │ ├── AIModelSystem.tsx # AI作物模型
│ │ ├── IrrigationControl.tsx # 水肥控制系统
│ │ └── ConfigManagement.tsx # 中心配置管理
│ ├── machinery/ # 农机管理子组件 (50+ 文件)
│ ├── field/ # 地块管理子组件
│ ├── operation/ # 农事操作子组件
│ ├── asset/ # 资产管理子组件
│ ├── ai-model/ # AI模型子组件
│ ├── irrigation/ # 灌溉控制子组件
│ └── config/ # 配置管理子组件
├── types/ # TypeScript 类型定义
│ ├── navigation.ts # 导航菜单类型
│ ├── machinery.ts # 农机数据类型
│ ├── auth.ts # 认证相关类型
│ └── ...
├── lib/
│ └── authStorage.ts # 认证存储管理
├── App.tsx # 主应用组件
├── main.tsx # 应用入口
└── index.css # 全局样式
```
### 1.3 路由系统分析
**当前路由机制:**
- 基于路径字符串的自定义路由系统
- 使用 `activeTab` 状态管理当前业务系统7个主标签
- 使用 `activePath` 状态管理当前页面路径
- 路径格式:`/module/submodule/page`
**路由流程:**
1. App.tsx 根据路径加载对应的业务系统组件
2. 业务系统组件根据 activePath 渲染具体页面
3. 导航组件处理系统间切换和页面跳转
**路由层级结构:**
```
/ (系统级)
├── /machinery/ (农机系统)
│ ├── /archive/entry (农机档案录入)
│ ├── /driver/info (驾驶员信息)
│ └── ...
├── /field/ (地块系统)
├── /operation/ (农事系统)
├── /asset/ (资产系统)
├── /ai-model/ (AI模型系统)
├── /irrigation/ (灌溉系统)
└── /config/ (配置系统)
```
### 1.4 认证系统分析
**认证流程:**
1. 基于 JWT token 的认证机制
2. 自动 token 刷新24小时有效期
3. 支持密码登录和手机验证码登录
4. 自动登录默认管理员账号admin/admin123
**认证组件:**
- AuthContext全局认证状态管理
- Login.tsx登录页面组件
- authStorage.ts认证存储和验证逻辑
**用户权限体系:**
- 企业租户隔离
- 基于角色的权限控制RBAC
- 细粒度权限配置
### 1.5 组件架构模式
**业务组件模式:**
1. **模块组件**:每个业务系统有一个主组件,负责路由分发
2. **页面组件**:具体的功能页面组件
3. **功能组件**:可复用的功能模块组件
4. **UI组件**shadcn/ui 基础组件
**数据流模式:**
- Props 自上而下传递
- 状态提升到父组件管理
- Mock 数据直接在组件中定义
**表单处理模式:**
- React Hook Form + Zod 验证
- 支持多标签页复杂表单
- 实时验证和错误提示
### 1.6 数据模型分析
**核心业务实体:**
1. **农机管理**MachineryRecord, Driver, Task, Maintenance
2. **地块管理**Field, SoilData, WeatherData, SpatialData
3. **农事操作**Operation, Crop, Planting, Harvesting
4. **资产管理**Asset, Equipment, Inventory, Procurement
5. **AI模型**Model, Prediction, Recommendation, Analysis
6. **灌溉控制**Irrigation, Fertilizer, Sensor, Control
7. **系统配置**User, Role, Permission, Enterprise, SystemConfig
**数据关系特点:**
- 农业业务逻辑复杂,实体关系紧密
- 支持多租户数据隔离
- 时间序列数据较多(监测数据)
### 1.7 UI/UX 设计系统
**设计主题:**
- 绿色农业主题green-600 主色调)
- 现代化扁平设计风格
- 99.5% 视觉一致性要求
**组件规范:**
- shadcn/ui + Tailwind CSS 组件系统
- 响应式设计(移动端优化)
- 深色/浅色主题支持
- 无障碍性合规WCAG AA
**交互模式:**
- 表格组件支持筛选、排序、搜索
- 复杂表单采用标签页组织
- 状态颜色编码(运行中/空闲/待维护/报废)
## 2. 现有系统架构优势与问题
### 2.1 架构优势
1. **技术栈现代化**React 18 + TypeScript + Vite开发体验良好
2. **组件库完善**shadcn/ui 提供了高质量的基础组件
3. **业务逻辑清晰**7大业务系统分工明确
4. **类型安全**:完整的 TypeScript 类型定义
5. **认证体系完善**:支持多种登录方式和权限控制
### 2.2 架构问题
1. **路由系统简陋**:缺乏专业路由库,路径硬编码
2. **状态管理混乱**:各组件独立管理状态,缺乏全局状态管理
3. **数据层缺失**没有统一的API请求层和数据管理
4. **代码组织混乱**:组件文件过多,缺乏清晰的分层架构
5. **测试缺失**:没有单元测试和集成测试
6. **构建优化不足**:缺乏代码分割和懒加载
7. **Mock数据固化**Mock数据与组件代码耦合
## 3. 新架构设计方案
### 3.1 设计原则
1. **功能一致性**:确保与原系统功能完全一致
2. **技术现代化**:采用最佳实践和成熟技术方案
3. **代码质量**:高内聚、低耦合,易于维护和扩展
4. **开发效率**:清晰的开发规范和工具链
5. **性能优化**:代码分割、懒加载、缓存策略
### 3.2 技术栈升级
**核心框架(保持稳定):**
- React 18.3.1 + TypeScript
- Vite + SWC 构建工具
- Tailwind CSS + shadcn/ui
**新增技术方案:**
- React Router v6专业路由管理
- Zustand轻量级状态管理
- TanStack Query数据获取和缓存
- MSWMock Service Worker 统一Mock管理
- Vitest + Testing Library测试框架
- ESLint + Prettier代码规范
### 3.3 新项目结构设计
基于路由系统重构方案,采用特性优先的现代化架构:
```
D:\code\repotest\smart-crop-x\ # 原项目(保留不变)
├── 📂 crop-x/ # 🆕 全新的重构项目
│ ├── 📂 config/ # 🆕 特性优先配置系统
│ │ ├── 📂 types/ # 配置类型定义
│ │ │ └── 📄 config.types.ts # 完整的配置类型系统
│ │ ├── 📂 environments/ # 环境配置
│ │ │ ├── 📄 development.ts # 开发环境配置
│ │ │ ├── 📄 test.ts # 测试环境配置
│ │ │ ├── 📄 uat.ts # 用户测试环境配置
│ │ │ ├── 📄 production.ts # 生产环境配置
│ │ │ └── 📄 index.ts # 环境配置入口
│ │ ├── 📂 features/ # 特性配置
│ │ │ ├── 📄 agricultural-machinery.ts # 农机管理特性配置
│ │ │ ├── 📄 land-information.ts # 地块信息特性配置
│ │ │ ├── 📄 farming-operation.ts # 农事操作特性配置
│ │ │ ├── 📄 agricultural-asset.ts # 农业资产特性配置
│ │ │ ├── 📄 ai-crop-model.ts # AI作物模型特性配置
│ │ │ ├── 📄 irrigation-control.ts # 灌溉控制特性配置
│ │ │ ├── 📄 central-config.ts # 配置管理特性配置
│ │ │ └── 📄 index.ts # 特性配置入口
│ │ ├── 📂 services/ # 服务配置(预留)
│ │ ├── 📂 build/ # 构建配置(预留)
│ │ ├── 📄 config-manager.ts # 配置管理器
│ │ ├── 📄 index.ts # 配置系统入口
│ │ └── 📄 README.md # 配置系统使用文档
│ ├── 📂 router/ # 🚀 路由管理核心
│ │ ├── 📄 agriculturalMachineryRoutes.js # 🚙 智能农机管理系统
│ │ ├── 📄 landInformationRoutes.js # 🌾 地块信息管理系统
│ │ ├── 📄 farmingOperationRoutes.js # 📋 农事操作管理系统
│ │ ├── 📄 agriculturalAssetRoutes.js # 📦 农业资产管理系统
│ │ ├── 📄 aiCropModelRoutes.js # 🤖 AI作物模型精准决策系统
│ │ ├── 📄 waterFertilizerControlRoutes.js # 💧 水肥一体化控制系统
│ │ ├── 📄 centralConfigRoutes.js # ⚙️ 中心配置管理系统
│ │ ├── 📄 index.js # 路由汇总和导出
│ │ └── 📄 guard.js # 路由守卫
│ ├── 📂 apis/ # 🆕 API管理系统
│ │ ├── 📄 index.js # API统一入口环境配置
│ │ ├── 📄 interceptor.js # 请求拦截器,认证处理
│ │ └── 📂 subModules/ # 7大业务模块API
│ │ ├── 📄 agriculturalMachinery.js # 🚙 农机系统API
│ │ ├── 📄 landInformation.js # 🌾 地块信息API
│ │ ├── 📄 farmingOperation.js # 📋 农事操作API
│ │ ├── 📄 agriculturalAsset.js # 📦 农业资产API
│ │ ├── 📄 aiCropModel.js # 🤖 AI作物模型API
│ │ ├── 📄 waterFertilizerControl.js # 💧 水肥控制API
│ │ └── 📄 centralConfig.js # ⚙️ 配置管理API
│ ├── 📂 stores/ # Zustand状态管理
│ │ ├── 📄 authStore.js # 认证状态管理
│ │ ├── 📂 agriculturalMachinery/ # 🚙 智能农机管理系统状态
│ │ │ ├── 📄 machineryStore.js # 农机档案状态
│ │ │ ├── 📄 driverStore.js # 驾驶员档案状态
│ │ │ ├── 📄 loadStore.js # 负载管理状态
│ │ │ ├── 📄 monitoringStore.js # 实时监控状态
│ │ │ ├── 📄 faultStore.js # 故障诊断状态
│ │ │ ├── 📄 operationStore.js # 精准作业状态
│ │ │ ├── 📄 analysisStore.js # 数据分析状态
│ │ │ ├── 📄 schedulingStore.js # 调度管理状态
│ │ │ └── 📄 securityStore.js # 安全安防状态
│ │ ├── 📂 landInformation/ # 🌾 地块信息管理系统状态
│ │ │ ├── 📄 fieldStore.js # 地块档案状态
│ │ │ ├── 📄 mapStore.js # 地图管理状态
│ │ │ ├── 📄 analysisStore.js # 空间分析状态
│ │ │ ├── 📄 monitoringStore.js # 环境监测状态
│ │ │ ├── 📄 suitabilityStore.js # 适宜性评价状态
│ │ │ ├── 📄 comparisonStore.js # 对比分析状态
│ │ │ └── 📄 riskStore.js # 风险预警状态
│ │ ├── 📂 farmingOperation/ # 📋 农事操作管理系统状态
│ │ │ ├── 📄 planningStore.js # 农事计划状态
│ │ │ ├── 📄 taskStore.js # 农事任务状态
│ │ │ ├── 📄 executionStore.js # 农事执行状态
│ │ │ ├── 📄 calendarStore.js # 农事日历状态
│ │ │ ├── 📄 archiveStore.js # 农事档案状态
│ │ │ ├── 📄 knowledgeStore.js # 知识库状态
│ │ │ ├── 📄 performanceStore.js # 绩效管理状态
│ │ │ └── 📄 issueStore.js # 问题协同状态
│ │ ├── 📂 agriculturalAsset/ # 📦 农业资产管理系统状态
│ │ │ ├── 📄 basicStore.js # 基础信息状态
│ │ │ ├── 📄 purchaseStore.js # 采购管理状态
│ │ │ ├── 📄 inventoryStore.js # 库存管理状态
│ │ │ ├── 📄 requisitionStore.js # 物资领用状态
│ │ │ ├── 📄 returnStore.js # 物资归还状态
│ │ │ ├── 📄 equipmentStore.js # 农资农具状态
│ │ │ └── 📄 reportStore.js # 可视化报表状态
│ │ ├── 📂 aiCropModel/ # 🤖 AI作物模型精准决策系统状态
│ │ │ ├── 📄 dataCenterStore.js # 数据感知中心状态
│ │ │ ├── 📄 modelIntegrationStore.js # 模型接入集成状态
│ │ │ ├── 📄 modelApplicationStore.js # 模型应用中心状态
│ │ │ ├── 📄 decisionStore.js # 智能决策生成状态
│ │ │ ├── 📄 supportStore.js # 智能决策支持状态
│ │ │ ├── 📄 applicationStore.js # 决策应用状态
│ │ │ ├── 📄 knowledgeStore.js # AI知识库状态
│ │ │ └── 📄 monitoringStore.js # 监控中心状态
│ │ ├── 📂 waterFertilizerControl/ # 💧 水肥一体化控制系统状态
│ │ │ ├── 📄 managementStore.js # 水肥机管理状态
│ │ │ ├── 📄 irrigationStore.js # 智能灌溉状态
│ │ │ ├── 📄 formulaStore.js # 施肥配方管理状态
│ │ │ ├── 📄 controlStore.js # 水肥控制状态
│ │ │ └── 📄 monitoringStore.js # 实时监测与预警状态
│ │ └── 📂 centralConfig/ # ⚙️ 中心配置管理系统状态
│ │ ├── 📄 tenantStore.js # 租户管理状态
│ │ ├── 📄 userStore.js # 用户管理状态
│ │ ├── 📄 systemStore.js # 系统参数状态
│ │ ├── 📄 monitorStore.js # 系统监控状态
│ │ └── 📄 messageStore.js # 消息中心状态
│ ├── 📂 pages/ # 🆕 页面组件 - 7大业务模块完整层级结构
│ │ ├── 📂 AgriculturalMachinery/ # 🚙 智能农机管理系统页面
│ │ │ ├── 📂 Archive/ # B级农机档案
│ │ │ │ ├── 📂 MachineryEntry/ # C级农机档案录入与维护
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 ClassificationManagement/ # C级农机分类与标签管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 QRCodeManagement/ # C级农机二维码管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 DriverArchive/ # B级驾驶员档案
│ │ │ │ ├── 📂 DriverInfoManagement/ # C级驾驶员信息管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 DriverTaskManagement/ # C级驾驶员任务管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 LoadManagement/ # B级负载管理
│ │ │ │ ├── 📂 LoadDeviceManagement/ # C级负载管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 LoadTypeManagement/ # C级负载类型
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 LoadParameterManagement/ # C级负载参数
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 Monitoring/ # B级设备实时监控与定位
│ │ │ │ ├── 📂 RealTimeLocationTracking/ # C级实时位置追踪
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 WorkStatusMonitoring/ # C级工作状态监控
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 OperationDataMonitoring/ # C级作业数据监控
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 FaultDiagnosis/ # B级远程诊断与故障预警
│ │ │ │ ├── 📂 FaultWarning/ # C级故障诊断与预警
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 HealthAssessment/ # C级健康评估
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 ParameterMonitoring/ # C级运行参数监测
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 PrecisionOperation/ # B级精准作业管理与支持
│ │ │ │ ├── 📂 OperationRecord/ # C级作业数据记录
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 RoutePlanning/ # C级作业路线规划
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 PlanDispatch/ # C级作业方案下发
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 DrivingCockpit/ # C级农机驾驶舱
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 DataAnalysis/ # B级数据管理与分析报告
│ │ │ │ ├── 📂 OperationAnalysis/ # C级作业数据分析
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 HistoricalDataComparison/ # C级历史数据查询与对比
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 Scheduling/ # B级农机管理与调度
│ │ │ │ ├── 📂 TaskAssignment/ # C级任务分配
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 RealTimeDispatch/ # C级实时调度监控
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 TrackPlayback/ # C级农机作业轨迹回放
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 Security/ # B级安全与安防
│ │ │ └── 📂 GeoFence/ # C级电子围栏
│ │ │ └── 📄 index.jsx
│ │ ├── 📂 LandInformation/ # 🌾 地块信息管理系统页面
│ │ │ ├── 📂 FieldManagement/ # B级地块档案管理
│ │ │ │ ├── 📂 FieldEntry/ # C级地块信息录入
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 ClassificationManagement/ # C级地块分类管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 BatchOperation/ # C级批量操作
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 MapManagement/ # B级地图管理
│ │ │ │ ├── 📂 GISData/ # C级GIS数据管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 DigitalDrawing/ # C级数字化绘制
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 SpatialQuery/ # C级空间查询
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 SatelliteImagery/ # C级卫星影像管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 SpatialAnalysis/ # B级空间分析
│ │ │ │ ├── 📂 SoilData/ # C级土壤数据分析
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 LayeredSampling/ # C级分层采样分析
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 QualityEvaluation/ # C级质量评价
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 EnvironmentalMonitoring/ # B级环境监测
│ │ │ │ ├── 📂 WeatherData/ # C级气象数据监测
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 SensorData/ # C级环境传感器数据
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 MonitoringHistory/ # C级监测历史记录
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 SuitabilityEvaluation/ # B级适宜性评价
│ │ │ │ ├── 📂 ComprehensiveEvaluation/ # C级综合评价分析
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 BatchAnalysis/ # C级批量分析
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 CropRecommendation/ # C级作物推荐分析
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 WeightConfiguration/ # C级权重配置管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 ComparativeAnalysis/ # B级对比分析
│ │ │ │ ├── 📂 MultiDimensionalMetrics/ # C级多维指标分析
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 ChartAnalysis/ # C级图表分析展示
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 ReportGeneration/ # C级报告生成管理
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 RiskWarning/ # B级风险预警
│ │ │ ├── 📂 RealTimeMonitoring/ # C级实时监测预警
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 EarlyWarningPush/ # C级预警信息推送
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 DisposalTracking/ # C级处置情况跟踪
│ │ │ └── 📄 index.jsx
│ │ ├── 📂 FarmingOperation/ # 📋 农事操作管理系统页面
│ │ │ ├── 📂 FarmPlanning/ # B级农事计划管理
│ │ │ │ ├── 📂 PlanFormulation/ # C级计划制定
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 ResourceAllocation/ # C级资源分配管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 ProgressTracking/ # C级进度跟踪管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 TaskManagement/ # B级农事任务管理
│ │ │ │ ├── 📂 TaskCreation/ # C级任务创建管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 TaskAssignment/ # C级任务分配派发
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 TaskStatusMonitoring/ # C级任务状态监控
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 TaskHistoryStatistics/ # C级任务历史统计
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 OperationExecution/ # B级农事执行管理
│ │ │ │ ├── 📂 OperationTypeManagement/ # C级操作类型管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 OperationRecording/ # C级操作记录管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 OperationLogQuery/ # C级操作日志查询
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 FarmingCalendar/ # B级农事日历管理
│ │ │ │ ├── 📂 CalendarVisualization/ # C级日历可视化视图
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 GanttChartManagement/ # C级甘特图管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 ProgressVisualization/ # C级进度可视化
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 OperationArchive/ # B级农事档案管理
│ │ │ │ ├── 📂 ArchiveGeneration/ # C级档案归集生成
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 FullDimensionView/ # C级全维视图管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 TraceabilityTracking/ # C级追踪溯源管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 KnowledgeBase/ # B级知识库管理
│ │ │ │ ├── 📂 ContentManagement/ # C级内容管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 ClassificationTagging/ # C级分类标签管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 IntelligentSearch/ # C级智能检索功能
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 PerformanceManagement/ # B级绩效管理
│ │ │ │ ├── 📂 PersonnelManagement/ # C级人员管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 WorkHourRecording/ # C级工时记录管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 StatisticalReports/ # C级统计报表管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 SchedulingManagement/ # C级排班管理
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 IssueCollaboration/ # B级问题协同管理
│ │ │ ├── 📂 IssueReporting/ # C级问题上报管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 ProcessingAssignment/ # C级处理分派管理
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 OnlineCollaboration/ # C级在线协作功能
│ │ │ └── 📄 index.jsx
│ │ ├── 📂 AgriculturalAsset/ # 📦 农业资产管理系统页面
│ │ │ ├── 📂 BasicInformation/ # B级基础信息管理
│ │ │ │ ├── 📂 AssetEntry/ # C级资产信息录入
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 AssetClassification/ # C级资产分类管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 AssetLabeling/ # C级资产标签管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 ProcurementManagement/ # B级采购管理
│ │ │ │ ├── 📂 ProcurementPlanning/ # C级采购计划制定
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 SupplierManagement/ # C级供应商管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 ProcurementTracking/ # C级采购跟踪管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 InventoryManagement/ # B级库存管理
│ │ │ │ ├── 📂 StockMonitoring/ # C级库存监控管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 StockAdjustment/ # C级库存调整管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 InventoryReport/ # C级库存报表管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 MaterialRequisition/ # B级物资领用管理
│ │ │ │ ├── 📂 RequisitionApplication/ # C级领用申请管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 ApprovalWorkflow/ # C级审批流程管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 RequisitionTracking/ # C级领用跟踪管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 MaterialReturn/ # B级物资归还管理
│ │ │ │ ├── 📂 ReturnApplication/ # C级归还申请管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 ReturnApproval/ # C级归还审批管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 ReturnTracking/ # C级归还跟踪管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 AgriculturalSupplies/ # B级农资农具管理
│ │ │ │ ├── 📂 ToolManagement/ # C级农具管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 MaterialManagement/ # C级农资管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 MaintenanceTracking/ # C级维护跟踪管理
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 VisualizationReports/ # B级可视化报表
│ │ │ ├── 📂 AssetStatement/ # C级资产报表管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 InventoryStatement/ # C级库存报表管理
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 CostAnalysis/ # C级成本分析管理
│ │ │ └── 📄 index.jsx
│ │ ├── 📂 AICropModel/ # 🤖 AI作物模型精准决策系统页面
│ │ │ ├── 📂 DataPerceptionCenter/ # B级数据感知中心
│ │ │ │ ├── 📂 RealTimeDataCollection/ # C级实时数据采集
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 HistoricalDataAnalysis/ # C级历史数据分析
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 MultiSourceDataFusion/ # C级多源数据融合
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 ModelIntegrationCenter/ # B级模型接入集成中心
│ │ │ │ ├── 📂 ModelAccessManagement/ # C级模型接入管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 ModelVersionControl/ # C级模型版本控制
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 APIServiceIntegration/ # C级API服务集成
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 ModelApplicationCenter/ # B级模型应用中心
│ │ │ │ ├── 📂 PredictionAnalysis/ # C级预测分析管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 OptimizationRecommendation/ # C级优化建议管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 ScenarioSimulation/ # C级场景模拟管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 IntelligentDecisionGeneration/ # B级智能决策生成
│ │ │ │ ├── 📂 DecisionEngine/ # C级决策引擎管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 RuleConfiguration/ # C级规则配置管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 DecisionOptimization/ # C级决策优化管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 IntelligentDecisionSupport/ # B级智能决策支持
│ │ │ │ ├── 📂 DecisionVisualization/ # C级决策可视化
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 ImpactAssessment/ # C级影响评估管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 DecisionTracking/ # C级决策跟踪管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 DecisionApplication/ # B级决策应用
│ │ │ │ ├── 📂 AutomaticExecution/ # C级自动执行管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 ManualAdjustment/ # C级手动调整管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 FeedbackCollection/ # C级反馈收集管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 AIKnowledgeBase/ # B级AI知识库
│ │ │ │ ├── 📂 ModelDocumentation/ # C级模型文档管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 CaseDatabase/ # C级案例数据库管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 ExpertSystem/ # C级专家系统管理
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 MonitoringCenter/ # B级监控中心
│ │ │ ├── 📂 ModelPerformance/ # C级模型性能监控
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 DecisionQuality/ # C级决策质量监控
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 SystemHealth/ # C级系统健康监控
│ │ │ └── 📄 index.jsx
│ │ ├── 📂 WaterFertilizerControl/ # 💧 水肥一体化控制系统页面
│ │ │ ├── 📂 IrrigationSystemManagement/ # B级水肥机管理
│ │ │ │ ├── 📂 DeviceRegistration/ # C级设备注册管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 StatusMonitoring/ # C级状态监控管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 MaintenanceManagement/ # C级维护管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 SmartIrrigation/ # B级智能灌溉
│ │ │ │ ├── 📂 IrrigationPlanning/ # C级灌溉计划管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 AutomatedControl/ # C级自动控制管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 IrrigationOptimization/ # C级灌溉优化管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 FertilizerFormulaManagement/ # B级施肥配方管理
│ │ │ │ ├── 📂 FormulaConfiguration/ # C级配方配置管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 CropSpecificFormulas/ # C级作物专用配方
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 FormulaOptimization/ # C级配方优化管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 IntegratedControl/ # B级水肥一体化控制
│ │ │ │ ├── 📂 SynchronizedControl/ # C级同步控制管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 PrecisionApplication/ # C级精准施用管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 RealTimeAdjustment/ # C级实时调整管理
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 RealTimeMonitoring/ # B级实时监测与预警
│ │ │ ├── 📂 ParameterDisplay/ # C级参数显示管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 WarningSystem/ # C级预警系统管理
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 HistoricalAnalysis/ # C级历史分析管理
│ │ │ └── 📄 index.jsx
│ │ ├── 📂 CentralConfig/ # ⚙️ 中心配置管理系统页面
│ │ │ ├── 📂 TenantManagement/ # B级租户管理
│ │ │ │ ├── 📂 TenantCreation/ # C级租户创建管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 TenantConfiguration/ # C级租户配置管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 TenantAuthorization/ # C级租户授权管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 UserManagement/ # B级用户管理
│ │ │ │ ├── 📂 UserAccountManagement/ # C级用户账号管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 RolePermissionManagement/ # C级角色权限管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 UserBehaviorTracking/ # C级用户行为跟踪
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 SystemParameters/ # B级系统参数
│ │ │ │ ├── 📂 BasicConfiguration/ # C级基础配置管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 BusinessRuleSettings/ # C级业务规则设置
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 InterfaceConfiguration/ # C级接口配置管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 SystemMonitoring/ # B级系统监控
│ │ │ │ ├── 📂 PerformanceMonitoring/ # C级性能监控管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ ├── 📂 LogManagement/ # C级日志管理
│ │ │ │ │ └── 📄 index.jsx
│ │ │ │ └── 📂 ExceptionHandling/ # C级异常处理管理
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 MessageCenter/ # B级消息中心
│ │ │ ├── 📂 MessagePushManagement/ # C级消息推送管理
│ │ │ │ └── 📄 index.jsx
│ │ │ ├── 📂 NotificationSettings/ # C级通知设置管理
│ │ │ │ └── 📄 index.jsx
│ │ │ └── 📂 FeedbackManagement/ # C级反馈管理
│ │ │ └── 📄 index.jsx
│ │ ├── 📂 Auth/ # 🔐 认证页面
│ │ │ ├── 📄 Login.jsx # 登录页面
│ │ │ └── 📄 Register.jsx # 注册页面
│ │ └── 📂 Error/ # 🚨 错误页面
│ │ └── 📄 NotFound404.jsx # 404页面
│ ├── 📂 components/ # 组件库
│ │ ├── 📂 ui/ # 基础UI组件(shadcn)
│ │ ├── 📂 layout/ # 布局组件
│ │ │ ├── 📄 Header.jsx # 顶部导航
│ │ │ ├── 📄 Sidebar.jsx # 侧边栏
│ │ │ └── 📄 Layout.jsx # 主布局
│ │ ├── 📂 common/ # 通用业务组件
│ │ └── 📂 business/ # 业务组件
│ ├── 📂 hooks/ # 自定义Hooks
│ │ ├── 📄 useAuth.js # 认证Hook
│ │ ├── 📄 usePermission.js # 权限Hook
│ │ └── 📄 useRouter.js # 路由Hook
│ ├── 📂 utils/ # 工具函数
│ │ ├── 📄 authUtils.js # 认证工具
│ │ ├── 📄 routeUtils.js # 路由工具
│ │ └── 📄 formatUtils.js # 格式化工具
│ ├── 📂 types/ # TypeScript类型
│ │ ├── 📄 auth.ts # 认证类型
│ │ ├── 📄 router.ts # 路由类型
│ │ └── 📄 business.ts # 业务类型
│ ├── 📂 public/ # 🆕 静态资源目录
│ │ ├── 📄 favicon.ico # 网站图标
│ │ ├── 📄 logo.png # 应用Logo
│ │ ├── 📄 manifest.json # PWA配置文件
│ │ └── 📂 images/ # 图片资源
│ ├── 📂 assets/ # 🆕 编译时静态资源
│ │ ├── 📂 images/ # 图片资源
│ │ ├── 📂 icons/ # 图标资源
│ │ ├── 📂 fonts/ # 字体文件
│ │ └── 📂 data/ # 静态数据文件
│ ├── 📂 styles/ # 样式文件
│ │ ├── 📄 globals.css # 全局样式
│ │ ├── 📄 components.css # 组件样式
│ │ └── 📄 variables.css # CSS变量
│ ├── 📂 viteEnv/ # 🆕 环境配置目录
│ │ ├── 📄 .env.development # 开发环境配置
│ │ ├── 📄 .env.test # 测试环境配置
│ │ ├── 📄 .env.uat # 用户测试环境配置
│ │ └── 📄 .env.production # 生产环境配置
│ ├── 📂 mocks/ # 🆕 Mock数据目录
│ │ ├── 📂 AgriculturalMachinery/ # 农机系统Mock数据
│ │ ├── 📂 LandInformation/ # 地块信息Mock数据
│ │ ├── 📂 FarmingOperation/ # 农事操作Mock数据
│ │ ├── 📂 AgriculturalAsset/ # 农业资产Mock数据
│ │ ├── 📂 AICropModel/ # AI模型Mock数据
│ │ ├── 📂 WaterFertilizerControl/ # 水肥控制Mock数据
│ │ ├── 📂 CentralConfig/ # 配置管理Mock数据
│ │ └── 📂 Auth/ # 认证Mock数据
│ ├── 📄 package.json # 项目配置
│ ├── 📄 vite.config.js # Vite配置
│ ├── 📄 tailwind.config.js # Tailwind配置
│ ├── 📄 tsconfig.json # TypeScript配置
│ ├── 📄 .eslintrc.js # ESLint配置
│ ├── 📄 .prettierrc # Prettier配置
│ ├── 📄 App.jsx # 主应用组件
│ ├── 📄 main.jsx # 应用入口
│ └── 📄 index.html # HTML模板
```
### 3.4 路由系统重设计
**路由架构:**
```typescript
// router/index.ts
import { createBrowserRouter, RouterProvider } from 'react-router-dom'
import { ProtectedRoute } from '../components/ProtectedRoute'
import { Layout } from '../components/layout/Layout'
export const router = createBrowserRouter([
{
path: '/login',
element: <LoginPage />
},
{
path: '/',
element: (
<ProtectedRoute>
<Layout />
</ProtectedRoute>
),
children: [
// 7大业务系统路由
{
path: 'machinery/*',
children: [
{ path: 'archive/entry', element: <MachineryEntry /> },
{ path: 'driver/list', element: <DriverList /> },
// ... 其他农机路由
]
},
{
path: 'field/*',
children: [
{ path: 'archive/entry', element: <FieldEntry /> },
// ... 其他地块路由
]
},
// ... 其他业务系统
]
}
])
```
**路由特性:**
- 嵌套路由支持层级结构
- 路由级别的权限控制
- 懒加载和代码分割
- 路由参数和查询字符串处理
### 3.5 状态管理架构
**Zustand Store 设计:**
```typescript
// stores/authStore.ts
interface AuthState {
user: User | null
token: string | null
isAuthenticated: boolean
login: (credentials: LoginCredentials) => Promise<void>
logout: () => void
refreshToken: () => Promise<void>
}
// stores/machineryStore.ts
interface MachineryState {
machinery: MachineryRecord[]
drivers: DriverRecord[]
loading: boolean
error: string | null
fetchMachinery: () => Promise<void>
createMachinery: (data: CreateMachineryDto) => Promise<void>
updateMachinery: (id: string, data: UpdateMachineryDto) => Promise<void>
deleteMachinery: (id: string) => Promise<void>
}
```
**状态管理原则:**
- 按业务领域拆分 Store
- 使用 TanStack Query 管理服务端状态
- 组件内状态用 useState 管理
- 避免过度抽象
### 3.6 数据层架构
**API 服务层:**
```typescript
// services/api/machineryApi.ts
export const machineryApi = {
getAll: (params?: MachineryQueryParams) =>
api.get<MachineryRecord[]>('/machinery', { params }),
getById: (id: string) =>
api.get<MachineryRecord>(`/machinery/${id}`),
create: (data: CreateMachineryDto) =>
api.post<MachineryRecord>('/machinery', data),
update: (id: string, data: UpdateMachineryDto) =>
api.put<MachineryRecord>(`/machinery/${id}`, data),
delete: (id: string) =>
api.delete(`/machinery/${id}`)
}
```
**Mock 数据管理:**
```typescript
// services/mock/handlers/machineryHandlers.ts
import { rest } from 'msw'
export const machineryHandlers = [
rest.get('/api/machinery', (req, res, ctx) => {
const page = Number(req.url.searchParams.get('page')) || 1
const limit = Number(req.url.searchParams.get('limit')) || 10
return res(
ctx.status(200),
ctx.json({
data: mockMachinery.slice((page - 1) * limit, page * limit),
total: mockMachinery.length,
page,
limit
})
)
}),
// ... 其他 handlers
]
```
### 3.7 组件架构重设计
**页面组件模式:**
```typescript
// pages/machinery/MachineryListPage.tsx
export function MachineryListPage() {
const { data: machinery, loading, error } = useQuery({
queryKey: ['machinery'],
queryFn: machineryApi.getAll
})
const { createMachinery } = useMachineryStore()
return (
<div className="container">
<PageHeader title="农机档案管理" />
<MachineryList
data={machinery || []}
loading={loading}
onCreate={createMachinery}
/>
</div>
)
}
```
**业务组件模式:**
```typescript
// components/business/MachineryCard.tsx
interface MachineryCardProps {
machinery: MachineryRecord
onEdit: (machinery: MachineryRecord) => void
onDelete: (id: string) => void
}
export function MachineryCard({ machinery, onEdit, onDelete }: MachineryCardProps) {
return (
<Card>
{/* 农机卡片内容 */}
</Card>
)
}
```
### 3.8 测试策略
**测试架构:**
- 单元测试Vitest + Testing Library
- 组件测试:重点测试业务组件
- 集成测试:关键业务流程测试
- Mock 测试MSW 一致性 Mock
**测试目录结构:**
```
tests/
├── __mocks__/ # 全局 Mock
├── fixtures/ # 测试数据
├── unit/ # 单元测试
├── integration/ # 集成测试
└── setup.ts # 测试配置
```
## 4. 实施计划
### 4.1 迁移策略
**分阶段实施:**
1. **阶段一**基础架构搭建路由、状态管理、API层
2. **阶段二**:核心组件迁移(农机管理模块)
3. **阶段三**:其他模块逐步迁移
4. **阶段四**:测试完善和性能优化
**风险控制:**
- 保持原系统运行,新系统并行开发
- 分模块验证,确保功能一致性
- 建立完善的测试覆盖
### 4.2 技术债务处理
1. **代码重构**:统一代码风格和架构模式
2. **类型完善**:补充完整的 TypeScript 类型
3. **错误处理**:建立统一的错误处理机制
4. **性能优化**:代码分割和懒加载
5. **可访问性**WCAG AA 合规性改进
### 4.3 质量保证
1. **代码规范**ESLint + Prettier 自动化
2. **类型检查**:严格 TypeScript 配置
3. **测试覆盖**:关键功能 80%+ 覆盖率
4. **代码审查**:强制 Code Review 流程
5. **CI/CD**:自动化构建和部署
## 5. 总结
本架构设计方案基于对现有系统的深入分析,在保持功能完整性的前提下,对技术架构进行全面现代化改造。新架构将显著提升代码质量、开发效率和系统性能,为智慧农业系统的长期发展奠定坚实基础。
**核心改进点:**
1. 专业路由系统替代简单路径匹配
2. Zustand + TanStack Query 现代化状态管理
3. 统一的 API 服务层和 Mock 数据管理
4. 清晰的分层架构和组件组织
5. 完善的测试体系和质量保证
**预期收益:**
1. 开发效率提升 40%+
2. 代码可维护性显著改善
3. 系统性能和用户体验优化
4. 技术债务大幅减少
5. 支持未来功能扩展需求