提交1 bmad搭建与项目启动 - ok

This commit is contained in:
2025-10-17 17:24:56 +08:00
commit ec58562661
686 changed files with 149750 additions and 0 deletions

View File

@@ -0,0 +1,588 @@
# LandInformation 模块页面结构示例
基于 navigation.ts 中的 fieldMenus为 LandInformation 模块创建完整的页面目录结构。
## 1. 地块档案管理 (FieldArchive) 模块
### 1.1 地块信息录入与维护 (FieldEntryMaintenance)
```
pages/LandInformation/Archive/FieldEntryMaintenance/
├── 📄 index.jsx # 主组件
├── 📄 index.css # 主样式文件
├── 📄 index.types.ts # 类型定义
├── 📂 hooks/ # 页面专用Hooks
│ ├── 📄 usePageData.tsx # 数据管理Hook
│ ├── 📄 usePageActions.tsx # 操作Hook
│ └── 📄 useFieldForm.tsx # 地块表单Hook
├── 📂 utils/ # 工具函数
│ ├── 📄 pageHelpers.tsx # 页面工具函数
│ ├── 📄 coordinateUtils.tsx # 坐标处理工具
│ ├── 📄 areaCalculators.tsx # 面积计算工具
│ └── 📄 validators.tsx # 验证函数
├── 📄 constants.tsx # 常量定义
└── 📂 components/ # 子组件目录
├── 📂 FieldForm/ # 地块表单组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 FieldList/ # 地块列表组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 FieldTable/ # 地块表格组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 FieldMap/ # 地块地图组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 CoordinateInput/ # 坐标输入组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 AreaDisplay/ # 面积显示组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 SoilInfo/ # 土壤信息组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 FieldFilter/ # 地块筛选组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
└── 📂 FieldDetails/ # 地块详情组件
├── 📄 index.jsx
├── 📄 index.css
└── 📄 types.ts
```
### 1.2 地块分类与标签管理 (FieldClassificationTags)
```
pages/LandInformation/Archive/FieldClassificationTags/
├── 📄 index.jsx
├── 📄 index.css
├── 📄 index.types.ts
├── 📂 hooks/
│ ├── 📄 usePageData.js
│ ├── 📄 usePageActions.js
│ └── 📄 useClassification.js
├── 📂 utils/
│ ├── 📄 pageHelpers.js
│ └── 📄 categoryHelpers.js
├── 📂 constants.js
└── 📂 components/
├── 📂 FieldCategoryTree/ # 地块分类树组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 FieldTagManager/ # 地块标签管理组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 CategoryForm/ # 分类表单组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 TagForm/ # 标签表单组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 FieldTagSelector/ # 地块标签选择器
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
└── 📂 CategoryStats/ # 分类统计组件
├── 📄 index.jsx
├── 📄 index.css
└── 📄 types.ts
```
## 2. 地块数字化与地图管理 (FieldMap) 模块
### 2.1 GIS地图管理 (FieldGISMap)
```
pages/LandInformation/Map/GISMap/
├── 📄 index.jsx
├── 📄 index.css
├── 📄 index.types.ts
├── 📂 hooks/
│ ├── 📄 usePageData.js
│ ├── 📄 usePageActions.js
│ ├── 📄 useGISMap.js
│ └── 📄 useMapLayers.js
├── 📂 utils/
│ ├── 📄 pageHelpers.js
│ ├── 📄 mapUtils.js
│ ├── 📄 layerUtils.js
│ └── 📄 coordinateTransform.js
├── 📂 constants.js
└── 📂 components/
├── 📂 GISMapView/ # GIS地图视图组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 LayerControl/ # 图层控制组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 MapToolbar/ # 地图工具栏组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 LayerManager/ # 图层管理器组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 BaseMapSelector/ # 底图选择器组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 MapScale/ # 地图比例尺组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
└── 📂 MapOverview/ # 地图鹰眼组件
├── 📄 index.jsx
├── 📄 index.css
└── 📄 types.ts
```
### 2.2 数字化绘制与编辑 (FieldDrawEdit)
```
pages/LandInformation/Map/DrawEdit/
├── 📄 index.jsx
├── 📄 index.css
├── 📄 index.types.ts
├── 📂 hooks/
│ ├── 📄 usePageData.js
│ ├── 📄 usePageActions.js
│ ├── 📄 useDrawTools.js
│ └── 📄 useGeometryEditor.js
├── 📂 utils/
│ ├── 📄 pageHelpers.js
│ ├── 📄 drawUtils.js
│ ├── 📄 geometryUtils.js
│ └── 📄 editUtils.js
├── 📂 constants.js
└── 📂 components/
├── 📂 DrawTools/ # 绘制工具组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 EditTools/ # 编辑工具组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 GeometryEditor/ # 几何编辑器组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 VertexEditor/ # 顶点编辑器组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 StyleEditor/ # 样式编辑器组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 AttributeEditor/ # 属性编辑器组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
└── 📂 DrawPreview/ # 绘制预览组件
├── 📄 index.jsx
├── 📄 index.css
└── 📄 types.ts
```
### 2.3 空间数据管理 (FieldSpatialQuery)
```
pages/LandInformation/Map/SpatialQuery/
├── 📄 index.jsx
├── 📄 index.css
├── 📄 index.types.ts
├── 📂 hooks/
│ ├── 📄 usePageData.js
│ ├── 📄 usePageActions.js
│ ├── 📄 useSpatialQuery.js
│ └── 📄 useDataLayers.js
├── 📂 utils/
│ ├── 📄 pageHelpers.js
│ ├── 📄 spatialUtils.js
│ ├── 📄 queryUtils.js
│ └── 📄 dataUtils.js
├── 📂 constants.js
└── 📂 components/
├── 📂 SpatialQueryBuilder/ # 空间查询构建器
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 QueryResult/ # 查询结果组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 DataLayerManager/ # 数据图层管理器
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 AttributeQuery/ # 属性查询组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 BufferAnalysis/ # 缓冲区分析组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 OverlayAnalysis/ # 叠加分析组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
└── 📂 SpatialStatistics/ # 空间统计组件
├── 📄 index.jsx
├── 📄 index.css
└── 📄 types.ts
```
### 2.4 地块影像 (FieldSatellite)
```
pages/LandInformation/Map/Satellite/
├── 📄 index.jsx
├── 📄 index.css
├── 📄 index.types.ts
├── 📂 hooks/
│ ├── 📄 usePageData.js
│ ├── 📄 usePageActions.js
│ ├── 📄 useSatelliteImage.js
│ └── 📄 useImageAnalysis.js
├── 📂 utils/
│ ├── 📄 pageHelpers.js
│ ├── 📄 imageUtils.js
│ ├── 📄 rasterUtils.js
│ └── 📄 analysisUtils.js
├── 📂 constants.js
└── 📂 components/
├── 📂 SatelliteViewer/ # 卫星影像查看器
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 ImageTimeline/ # 影像时间轴组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 ImageLayerControl/ # 影像图层控制
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 ImageComparison/ # 影像对比组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 NDVIAnalysis/ # 植被指数分析组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 ImageExport/ # 影像导出组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
└── 📄 ImageMetadata/ # 影像元数据组件
├── 📄 index.jsx
├── 📄 index.css
└── 📄 types.ts
```
## 3. 空间分析与决策支持 (FieldAnalysis) 模块
### 3.1 土壤基础数据 (SoilData)
```
pages/LandInformation/Analysis/SoilData/
├── 📄 index.jsx
├── 📄 index.css
├── 📄 index.types.ts
├── 📂 hooks/
│ ├── 📄 usePageData.js
│ ├── 📄 usePageActions.js
│ ├── 📄 useSoilData.js
│ └── 📄 useSoilAnalysis.js
├── 📂 utils/
│ ├── 📄 pageHelpers.js
│ ├── 📄 soilUtils.js
│ ├── 📄 analysisUtils.js
│ └── 📄 formatters.js
├── 📂 constants.js
└── 📂 components/
├── 📂 SoilDataForm/ # 土壤数据表单组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 SoilDataTable/ # 土壤数据表格组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 SoilMap/ # 土壤地图组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 SoilChart/ # 土壤图表组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 NutrientAnalysis/ # 养分分析组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 PhAnalysis/ # pH值分析组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
└── 📄 TextureAnalysis/ # 质地分析组件
├── 📄 index.jsx
├── 📄 index.css
└── 📄 types.ts
```
### 3.2 分层采样分析 (LayerSampling)
```
pages/LandInformation/Analysis/LayerSampling/
├── 📄 index.jsx
├── 📄 index.css
├── 📄 index.types.ts
├── 📂 hooks/
│ ├── 📄 usePageData.js
│ ├── 📄 usePageActions.js
│ ├── 📄 useSampling.js
│ └── 📄 useLayerAnalysis.js
├── 📂 utils/
│ ├── 📄 pageHelpers.js
│ ├── 📄 samplingUtils.js
│ ├── 📄 layerUtils.js
│ └── 📄 statisticsUtils.js
├── 📂 constants.js
└── 📂 components/
├── 📂 SamplingPlan/ # 采样计划组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 SamplingPoints/ # 采样点组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📂 LayerDataForm/ # 分层数据表单
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 LayerProfile/ # 土层剖面组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 LayerComparison/ # 土层对比组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 SamplingReport/ # 采样报告组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
└── 📄 LayerStatistics/ # 土层统计组件
├── 📄 index.jsx
├── 📄 index.css
└── 📄 types.ts
```
### 3.3 土壤质量评价 (SoilQuality)
```
pages/LandInformation/Analysis/SoilQuality/
├── 📄 index.jsx
├── 📄 index.css
├── 📄 index.types.ts
├── 📂 hooks/
│ ├── 📄 usePageData.js
│ ├── 📄 usePageActions.js
│ ├── 📄 useQualityEvaluation.js
│ └── 📄 useQualityModels.js
├── 📂 utils/
│ ├── 📄 pageHelpers.js
│ ├── 📄 qualityUtils.js
│ ├── 📄 evaluationUtils.js
│ └── 📄 indicatorUtils.js
├── 📂 constants.js
└── 📂 components/
├── 📂 QualityIndicators/ # 质量指标组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 EvaluationModel/ # 评价模型组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 QualityScore/ # 质量评分组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 QualityMap/ # 质量地图组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 QualityTrend/ # 质量趋势组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
├── 📄 ImprovementSuggestions/ # 改进建议组件
│ ├── 📄 index.jsx
│ ├── 📄 index.css
│ └── 📄 types.ts
└── 📄 QualityReport/ # 质量报告组件
├── 📄 index.jsx
├── 📄 index.css
└── 📄 types.ts
```
## 4. 主要类型定义示例
### 4.1 地块基础类型 (FieldEntryMaintenance/index.types.ts)
```typescript
export interface FieldRecord {
id: string;
name: string;
code: string;
area: number;
areaUnit: AreaUnit;
coordinates: Coordinate[];
soilType: SoilType;
landUse: LandUseType;
status: FieldStatus;
owner: string;
description?: string;
createdAt: string;
updatedAt: string;
// ... 其他字段
}
export type AreaUnit = 'mu' | 'hectare' | 'square_meter';
export type SoilType = 'sandy' | 'clay' | 'loam' | 'silt';
export type LandUseType = 'cultivated' | 'forest' | 'grassland' | 'water';
export type FieldStatus = 'active' | 'inactive' | 'leased' | 'reserved';
export interface Coordinate {
longitude: number;
latitude: number;
altitude?: number;
}
export interface SoilInfo {
ph: number;
organicMatter: number;
nitrogen: number;
phosphorus: number;
potassium: number;
texture: string;
drainage: DrainageType;
}
export type DrainageType = 'good' | 'moderate' | 'poor';
export interface FieldFilters {
name?: string;
code?: string;
soilType?: SoilType;
landUse?: LandUseType;
status?: FieldStatus;
owner?: string;
areaRange?: [number, number];
}
```
### 4.2 空间分析类型 (FieldSpatialQuery/index.types.ts)
```typescript
export interface SpatialQuery {
id: string;
name: string;
type: QueryType;
geometry: Geometry;
attributes?: AttributeQuery[];
layers: string[];
createdAt: string;
}
export type QueryType = 'point' | 'line' | 'polygon' | 'buffer' | 'intersection' | 'union';
export interface Geometry {
type: 'Point' | 'LineString' | 'Polygon';
coordinates: number[] | number[][] | number[][][];
}
export interface AttributeQuery {
field: string;
operator: '=' | '!=' | '>' | '<' | '>=' | '<=' | 'like' | 'in';
value: any;
logicalOperator?: 'AND' | 'OR';
}
export interface QueryResult {
id: string;
queryId: string;
features: Feature[];
totalCount: number;
executionTime: number;
createdAt: string;
}
export interface Feature {
id: string;
geometry: Geometry;
properties: Record<string, any>;
layerName: string;
}
export interface DataLayer {
id: string;
name: string;
type: LayerType;
url?: string;
visible: boolean;
opacity: number;
style: LayerStyle;
metadata: LayerMetadata;
}
export type LayerType = 'vector' | 'raster' | 'wms' | 'wmts' | 'xyz';
export interface LayerStyle {
fillColor?: string;
strokeColor?: string;
strokeWidth?: number;
fillOpacity?: number;
strokeOpacity?: number;
}
export interface LayerMetadata {
description?: string;
source?: string;
crs?: string;
fields?: FieldInfo[];
createdAt?: string;
updatedAt?: string;
}
export interface FieldInfo {
name: string;
type: 'string' | 'number' | 'date' | 'boolean';
description?: string;
}
```
这个结构为 LandInformation 模块提供了完整的页面组织架构每个页面都包含主组件、样式文件、类型定义、专用Hooks、工具函数和拆分后的子组件严格遵循了开发规范。