# 地块版本历史示例数据指南

## 概述

为了更好地演示地块版本管理功能，系统会自动为前3个地块生成示例版本历史数据。

## 示例数据内容

每个地块将生成 **8个版本记录**，展示了地块从创建到完善的完整生命周期：

### 版本1：创建地块
- **变更类型**：创建
- **操作人**：系统管理员
- **说明**：初始创建地块，录入基本信息和边界

### 版本2：更新基本信息
- **变更类型**：属性更新
- **操作人**：王芳
- **变更内容**：
  - 更新实测面积：15.5亩 → 16.2亩
  - 完善权属人信息：张三 → 张三（已确权）
  - 添加确权证号：JX202401001
- **说明**：完善权属信息，更新实测面积

### 版本3：添加标签
- **变更类型**：属性更新
- **操作人**：李明
- **变更内容**：
  - 添加标签：优质地块 → 优质地块、高产田、水源充足
- **说明**：根据实地考察添加标签

### 版本4：调整边界
- **变更类型**：边界更新
- **操作人**：测绘组-赵强
- **变更内容**：
  - 边界点数量：4个 → 5个
  - 面积：16.2亩 → 16.8亩
  - 周长：520米 → 545米
- **说明**：使用RTK重新测绘，边界更精确

### 版本5：更新土壤信息
- **变更类型**：属性更新
- **操作人**：农技员-孙莉
- **变更内容**：
  - 土壤类型：壤土 → 粘土
  - 添加海拔：45米
  - 添加坡度：3.5度
- **说明**：土壤检测后更新土壤类型，补充地形数据

### 版本6：更改种植模式
- **变更类型**：属性更新
- **操作人**：张三
- **变更内容**：
  - 种植模式：露地 → 大棚
  - 添加水源情况：水渠灌溉
- **说明**：建设温室大棚，改变种植模式

### 版本7：补充坡向信息
- **变更类型**：属性更新
- **操作人**：农技员-孙莉
- **变更内容**：
  - 添加坡向：东南
  - 添加备注：光照条件良好，适合蔬菜种植
- **说明**：完善地块基础信息

### 版本8：更新联系方式
- **变更类型**：属性更新
- **操作人**：系统管理员
- **变更内容**：
  - 联系电话：13800138001 → 13900139001
- **说明**：应权属人要求更新联系电话

## 如何查看版本历史

1. 打开 **地块信息管理 → 地块档案管理**
2. 在地块列表中，点击任意地块右侧的 **版本历史** 按钮（蓝色图标）
3. 在弹出的对话框中查看完整的版本历史

## 功能特性

### 版本列表展示
- ✅ 按时间倒序显示所有版本
- ✅ 每个版本显示版本号、变更类型、操作人、时间
- ✅ 变更类型使用不同颜色的徽章区分：
  - 创建（绿色）
  - 属性更新（蓝色）
  - 边界更新（紫色）
  - 合并（橙色）
  - 拆分（红色）

### 版本详情
- ✅ 点击"查看详情"展开显示变更内容
- ✅ 以表格形式展示每个字段的变更
- ✅ 清晰对比变更前后的值
- ✅ 中文字段名显示

### 统计信息
- ✅ 显示总版本数
- ✅ 显示当前版本号
- ✅ 显示最后更新时间
- ✅ 按变更类型统计

## 自动初始化

系统会在以下情况下自动初始化示例数据：

1. **首次加载地块列表**：自动为前3个地块生成示例版本
2. **已有数据跳过**：如果地块已有版本数据，则不会重复生成

## 开发者工具

在浏览器控制台可以使用以下命令：

### 初始化示例数据
```javascript
// 为所有地块（最多前3个）初始化版本历史
import { initializeMultipleFieldVersions } from './lib/fieldVersionSamples';
initializeMultipleFieldVersions();
```

### 为单个地块初始化
```javascript
import { initializeSampleVersions } from './lib/fieldVersionSamples';
initializeSampleVersions('地块ID', '地块编号');
```

### 清除版本数据
```javascript
import { clearAllVersions } from './lib/fieldVersionSamples';
clearAllVersions(); // 清除所有地块的版本数据
```

```javascript
import { clearSampleVersions } from './lib/fieldVersionSamples';
clearSampleVersions('地块ID'); // 清除指定地块的版本数据
```

## 数据存储

- 版本历史数据存储在 `localStorage` 中
- 存储键格式：`field_versions_{地块ID}`
- 每个地块的版本历史独立存储

## 真实使用场景

版本管理功能适用于：

1. **地块边界调整**：测绘更新、纠错等
2. **权属变更**：承包人变化、证书更新
3. **属性完善**：补充土壤、地形等信息
4. **用途变更**：改变种植模式、土地用途
5. **质量追溯**：查看历史变更，追溯问题源头
6. **审计需求**：记录所有变更操作，满足合规要求

## 注意事项

1. 示例数据仅用于演示，生产环境中应使用真实数据
2. 版本历史自动记录，无需手动创建
3. 删除地块时，版本历史也会被删除
4. 版本号从1开始，每次变更递增

## 技术实现

- **版本管理工具**：`/lib/fieldVersionManager.ts`
- **示例数据生成**：`/lib/fieldVersionSamples.ts`
- **UI组件**：`/components/field/FieldVersionHistory.tsx`
- **数据类型**：`/types/field.ts` 中的 `FieldVersion` 接口
