3.8 KiB
3.8 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
项目概述
这是一个基于 React + Vite + TypeScript 的智慧农业生产管理系统,包含7个主要功能模块:
- 智能农机管理系统 (machinery)
- 地块管理系统 (field)
- 农事管理系统 (operation)
- 资产管理系统 (asset)
- AI模型系统 (ai-model)
- 灌溉控制系统 (irrigation)
- 配置管理系统 (config)
开发命令
基础命令
npm i- 安装依赖npm run dev- 启动开发服务器 (端口 3000)npm run build- 构建生产版本
包管理
- 使用 npm 作为包管理工具
- 建议使用 uv 管理 Python 环境(如果需要)
代码质量
- 使用 ruff 进行代码格式化
- 遵循 PEP 8 指南和 Python 最佳实践
- 提交信息需符合 Conventional Commits 规范
项目架构
技术栈
- 前端框架: React 18 + TypeScript
- 构建工具: Vite + SWC
- UI库: Radix UI + Tailwind CSS
- 状态管理: React Context (AuthContext)
- 路由: 自定义基于路径的路由系统
- 图表: Recharts
- 工具库: date-fns, clsx, lucide-react
目录结构
src/
├── components/ # 组件目录
│ ├── ui/ # 基础UI组件 (shadcn/ui)
│ ├── auth/ # 认证相关组件
│ ├── dashboard/ # 各模块主页面组件
│ ├── machinery/ # 农机管理组件
│ ├── field/ # 地块管理组件
│ └── ... # 其他业务模块组件
├── types/ # TypeScript 类型定义
│ ├── auth.ts # 认证相关类型
│ ├── navigation.ts # 导航菜单类型
│ └── ... # 其他业务类型
├── lib/ # 工具函数
│ └── authStorage.ts # 认证存储管理
├── App.tsx # 主应用组件
├── main.tsx # 应用入口
└── index.css # 全局样式
核心架构模式
路由系统
- 基于路径字符串的自定义路由系统
- 使用
activePath状态管理当前页面 - 路径格式:
/module/submodule/page
状态管理
- 认证状态: 通过 AuthContext 管理用户登录状态
- 页面状态: 每个模块组件接收
activePathprop 来渲染对应页面 - 导航状态: 通过
activeTab和activePath管理导航
组件结构
- 模块组件: 每个业务模块有一个主组件,根据
activePath渲染具体页面 - UI组件: 基于 shadcn/ui 的可复用组件库
- 业务组件: 封装具体业务逻辑的组件
类型系统
- 完整的 TypeScript 类型定义
- 按业务模块组织类型文件
- 严格的类型检查
认证系统
- 基于 JWT token 的认证机制
- 自动 token 刷新机制
- 支持默认管理员账号自动登录 (admin/admin123)
- 认证信息存储在 localStorage
菜单系统
- 层级化菜单结构,支持多级子菜单
- 菜单配置集中定义在
types/navigation.ts - 动态菜单渲染和权限控制
开发指南
添加新页面
- 在对应的模块组件中添加路径判断
- 创建页面组件文件
- 在
types/navigation.ts中添加菜单项
添加新模块
- 创建模块组件目录和文件
- 在
App.tsx中添加模块路由 - 在
types/navigation.ts中定义菜单结构 - 添加对应的类型定义
UI组件使用
- 优先使用
src/components/ui/中的组件 - 遵循 shadcn/ui 的设计规范
- 使用 Tailwind CSS 进行样式定制
状态管理
- 简单状态使用 React useState
- 复杂状态考虑使用 useReducer 或 Context
- 避免过度抽象
原始设计
项目基于 Figma 设计开发,原始设计文件:https://www.figma.com/design/8DbZHcVGcWEyLOjz1PF57B/智慧农业生产管理系统