提交1 bmad搭建与项目启动 - ok
This commit is contained in:
217
src/types/field.ts
Normal file
217
src/types/field.ts
Normal file
@@ -0,0 +1,217 @@
|
||||
// 地块信息管理系统类型定义
|
||||
|
||||
// 地块基本信息
|
||||
export interface Field {
|
||||
id: string;
|
||||
code: string; // 地块编号
|
||||
name: string; // 地块名称
|
||||
area: number; // 面积(亩)
|
||||
perimeter: number; // 周长(米)
|
||||
|
||||
// 位置信息
|
||||
location: string; // 所在位置
|
||||
coordinates: GeoCoordinate[]; // 边界坐标点
|
||||
centerPoint: {
|
||||
lat: number;
|
||||
lng: number;
|
||||
};
|
||||
|
||||
// 土地属性
|
||||
soilType: SoilType; // 土壤类型
|
||||
landUseType: LandUseType; // 土地利用类型
|
||||
plantingMode: PlantingMode; // 种植模式
|
||||
irrigationType: IrrigationType; // 灌溉方式
|
||||
|
||||
// 权属信息
|
||||
owner: string; // 权属人
|
||||
ownerPhone?: string; // 联系电话
|
||||
contractStartDate?: string; // 承包开始日期
|
||||
contractEndDate?: string; // 承包结束日期
|
||||
contractPeriod?: number; // 承包期限(年)
|
||||
certificateNumber?: string; // 确权证号
|
||||
|
||||
// 标签和分类
|
||||
tags: string[]; // 标签
|
||||
category?: string; // 分类
|
||||
|
||||
// 附件
|
||||
photos: string[]; // 照片
|
||||
documents: FieldDocument[]; // 文档(合同扫描件等)
|
||||
|
||||
// 状态
|
||||
status: 'active' | 'inactive' | 'pending'; // 使用状态
|
||||
|
||||
// 元数据
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
createdBy: string;
|
||||
currentVersion: number; // 当前版本号
|
||||
|
||||
// 额外属性
|
||||
elevation?: number; // 海拔(米)
|
||||
slope?: number; // 坡度(度)
|
||||
aspect?: string; // 坡向
|
||||
waterSource?: string; // 水源情况
|
||||
remarks?: string; // 备注
|
||||
}
|
||||
|
||||
// 地理坐标
|
||||
export interface GeoCoordinate {
|
||||
lat: number;
|
||||
lng: number;
|
||||
}
|
||||
|
||||
// 土壤类型
|
||||
export type SoilType =
|
||||
| 'sandy' // 沙土
|
||||
| 'loamy' // 壤土
|
||||
| 'clay' // 粘土
|
||||
| 'silt' // 淤泥土
|
||||
| 'peat' // 泥炭土
|
||||
| 'saline' // 盐碱土
|
||||
| 'other'; // 其他
|
||||
|
||||
// 土地利用类型
|
||||
export type LandUseType =
|
||||
| 'farmland' // 耕地
|
||||
| 'garden' // 园地
|
||||
| 'forestland' // 林地
|
||||
| 'grassland' // 草地
|
||||
| 'other'; // 其他
|
||||
|
||||
// 种植模式
|
||||
export type PlantingMode =
|
||||
| 'open-field' // 露地
|
||||
| 'greenhouse' // 大棚
|
||||
| 'orchard' // 果园
|
||||
| 'paddy' // 水田
|
||||
| 'dryland'; // 旱地
|
||||
|
||||
// 灌溉方式
|
||||
export type IrrigationType =
|
||||
| 'drip' // 滴灌
|
||||
| 'sprinkler' // 喷灌
|
||||
| 'flood' // 漫灌
|
||||
| 'micro-sprinkler' // 微喷
|
||||
| 'none'; // 无灌溉
|
||||
|
||||
// 地块文档
|
||||
export interface FieldDocument {
|
||||
id: string;
|
||||
name: string;
|
||||
type: 'contract' | 'certificate' | 'permit' | 'other'; // 文档类型
|
||||
url: string;
|
||||
size: number; // 文件大小(字节)
|
||||
uploadedAt: string;
|
||||
uploadedBy: string;
|
||||
}
|
||||
|
||||
// 地块版本历史
|
||||
export interface FieldVersion {
|
||||
id: string;
|
||||
fieldId: string;
|
||||
version: number;
|
||||
changeType: 'create' | 'update-boundary' | 'update-attributes' | 'merge' | 'split';
|
||||
changes: FieldVersionChange[];
|
||||
coordinates?: GeoCoordinate[]; // 历史边界
|
||||
attributes?: Partial<Field>; // 历史属性
|
||||
changedBy: string;
|
||||
changedAt: string;
|
||||
remarks?: string;
|
||||
}
|
||||
|
||||
// 版本变更详情
|
||||
export interface FieldVersionChange {
|
||||
field: string; // 字段名
|
||||
oldValue: any;
|
||||
newValue: any;
|
||||
}
|
||||
|
||||
// 地块标签
|
||||
export interface FieldTag {
|
||||
id: string;
|
||||
name: string;
|
||||
color: string;
|
||||
category?: string; // 标签分类
|
||||
description?: string;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
// 地块分类
|
||||
export interface FieldCategory {
|
||||
id: string;
|
||||
name: string;
|
||||
parentId?: string;
|
||||
children?: FieldCategory[];
|
||||
icon?: string;
|
||||
color?: string;
|
||||
}
|
||||
|
||||
// 地图图层类型
|
||||
export type MapLayerType =
|
||||
| 'satellite' // 卫星影像
|
||||
| 'street' // 电子地图
|
||||
| 'terrain' // 地形图
|
||||
| 'hybrid'; // 混合
|
||||
|
||||
// 绘制工具类型
|
||||
export type DrawToolType =
|
||||
| 'none' // 无
|
||||
| 'point' // 点
|
||||
| 'line' // 线
|
||||
| 'polygon' // 多边形
|
||||
| 'rectangle' // 矩形
|
||||
| 'circle'; // 圆形
|
||||
|
||||
// 编辑模式
|
||||
export type EditMode =
|
||||
| 'view' // 查看
|
||||
| 'draw' // 绘制
|
||||
| 'edit' // 编辑
|
||||
| 'split' // 分割
|
||||
| 'merge'; // 合并
|
||||
|
||||
// GIS文件格式
|
||||
export type GISFileFormat = 'kml' | 'shp' | 'geojson' | 'gpx';
|
||||
|
||||
// 空间查询类型
|
||||
export type SpatialQueryType =
|
||||
| 'point-in-polygon' // 点在面内
|
||||
| 'polygon-intersect' // 面相交
|
||||
| 'polygon-adjacent' // 面相邻
|
||||
| 'buffer'; // 缓冲区
|
||||
|
||||
// 遥感影像数据
|
||||
export interface SatelliteImage {
|
||||
id: string;
|
||||
fieldId: string;
|
||||
date: string; // 影像日期
|
||||
source: string; // 数据源(如Landsat, Sentinel等)
|
||||
cloudCover: number; // 云量百分比
|
||||
resolution: number; // 分辨率(米)
|
||||
url: string; // 影像URL
|
||||
thumbnail?: string; // 缩略图
|
||||
ndvi?: number; // 归一化植被指数
|
||||
evi?: number; // 增强型植被指数
|
||||
}
|
||||
|
||||
// 地块统计查询条件
|
||||
export interface FieldQueryCondition {
|
||||
soilType?: SoilType[];
|
||||
plantingMode?: PlantingMode[];
|
||||
minArea?: number;
|
||||
maxArea?: number;
|
||||
tags?: string[];
|
||||
owner?: string;
|
||||
status?: Field['status'][];
|
||||
}
|
||||
|
||||
// 地块统计结果
|
||||
export interface FieldStatistics {
|
||||
totalCount: number;
|
||||
totalArea: number;
|
||||
averageArea: number;
|
||||
bySoilType: Record<SoilType, number>;
|
||||
byPlantingMode: Record<PlantingMode, number>;
|
||||
byStatus: Record<Field['status'], number>;
|
||||
}
|
||||
Reference in New Issue
Block a user