# 装车信息表单自动填充功能实现

## 功能概述

已成功实现装车信息表单的自动填充功能，可以根据API返回的数据自动映射并填充表单字段。

## 实现的功能

### 1. 数据映射字段

根据提供的API响应数据，实现了以下字段的自动映射：

#### 基础信息
- `deliveryId` ← `id`
- `estimatedDeliveryTime` ← `estimatedDeliveryTime`
- `serverDeviceSn` ← `serverDeviceId`

#### 重量信息
- `emptyWeight` ← `emptyWeight`
- `entruckWeight` ← `entruckWeight`
- `landingEntruckWeight` ← `landingEntruckWeight`

#### 照片URL
- `quarantineTickeyUrl` ← `quarantineTickeyUrl`
- `poundListImg` ← `poundListImg`
- `emptyVehicleFrontPhoto` ← `emptyVehicleFrontPhoto`
- `loadedVehicleFrontPhoto` ← `loadedVehicleFrontPhoto`
- `loadedVehicleWeightPhoto` ← `loadedVehicleWeightPhoto`
- `driverIdCardPhoto` ← `driverIdCardPhoto`

#### 视频URL
- `entruckWeightVideo` ← `entruckWeightVideo`
- `emptyWeightVideo` ← `emptyWeightVideo`
- `entruckVideo` ← `entruckVideo`
- `controlSlotVideo` ← `controlSlotVideo`
- `cattleLoadingCircleVideo` ← `cattleLoadingCircleVideo`

### 2. 核心实现

#### 自动填充函数
```javascript
const autoFillFormData = (apiData) => {
    if (!apiData) return;
    
    // 基础信息映射
    ruleForm.deliveryId = apiData.id || '';
    ruleForm.estimatedDeliveryTime = apiData.estimatedDeliveryTime || '';
    ruleForm.serverDeviceSn = apiData.serverDeviceId || '';
    
    // 重量信息映射
    ruleForm.emptyWeight = apiData.emptyWeight || '';
    ruleForm.entruckWeight = apiData.entruckWeight || '';
    ruleForm.landingEntruckWeight = apiData.landingEntruckWeight || '';
    
    // 照片URL映射
    ruleForm.quarantineTickeyUrl = apiData.quarantineTickeyUrl || '';
    ruleForm.poundListImg = apiData.poundListImg || '';
    ruleForm.emptyVehicleFrontPhoto = apiData.emptyVehicleFrontPhoto || '';
    ruleForm.loadedVehicleFrontPhoto = apiData.loadedVehicleFrontPhoto || '';
    ruleForm.loadedVehicleWeightPhoto = apiData.loadedVehicleWeightPhoto || '';
    ruleForm.driverIdCardPhoto = apiData.driverIdCardPhoto || '';
    
    // 视频URL映射
    ruleForm.entruckWeightVideo = apiData.entruckWeightVideo || '';
    ruleForm.emptyWeightVideo = apiData.emptyWeightVideo || '';
    ruleForm.entruckVideo = apiData.entruckVideo || '';
    ruleForm.controlSlotVideo = apiData.controlSlotVideo || '';
    ruleForm.cattleLoadingCircleVideo = apiData.cattleLoadingCircleVideo || '';
    
    console.log('表单数据已自动填充:', ruleForm);
};
```

#### 更新后的对话框调用函数
```javascript
const onShowDialog = (row, apiData = null) => {
    data.dialogVisible = true;
    if (formDataRef.value) {
        formDataRef.value.resetFields();
    }
    if (row) {
        nextTick(() => {
            data.deliveryId = row.id;
            ruleForm.deliveryId = row.id;
            
            // 如果提供了API数据，直接填充表单
            if (apiData) {
                autoFillFormData(apiData);
            } else {
                // 否则从服务器获取详情
                getOrderDetail();
            }
            
            getHostList();
        });
    }
};
```

## 使用方法

### 方法1：直接传递API数据
```javascript
// 在调用装车对话框时，直接传递API响应数据
const loadClick = (row, apiData) => {
    if (LoadDialogRef.value) {
        LoadDialogRef.value.onShowDialog(row, apiData);
    }
};
```

### 方法2：在API响应中自动填充
当调用 `getOrderDetail()` 函数时，会自动调用 `autoFillFormData(res.data)` 来填充表单。

## 示例数据映射

基于提供的API响应数据：
```javascript
{
    id: 85,
    deliveryNumber: "ZC20251020105111",
    deliveryTitle: "1",
    estimatedDeliveryTime: "2025-10-31 00:00:00",
    emptyWeight: "1000.00",
    entruckWeight: "2000.00",
    quarantineTickeyUrl: "https://smart-1251449951.cos.ap-guangzhou.myqcloud.com/iotPlateform/2025/10/21/4c4e20251021100838.jpg",
    poundListImg: "https://smart-1251449951.cos.ap-guangzhou.myqcloud.com/iotPlateform/2025/10/21/cows20251021100841.jpg",
    emptyVehicleFrontPhoto: "https://smart-1251449951.cos.ap-guangzhou.myqcloud.com/iotPlateform/2025/10/21/4c4e20251021100847.jpg",
    loadedVehicleFrontPhoto: "https://smart-1251449951.cos.ap-guangzhou.myqcloud.com/iotPlateform/2025/10/21/cows20251021100849.jpg",
    loadedVehicleWeightPhoto: "https://smart-1251449951.cos.ap-guangzhou.myqcloud.com/iotPlateform/2025/10/21/4c4e20251021100854.jpg",
    driverIdCardPhoto: "https://smart-1251449951.cos.ap-guangzhou.myqcloud.com/iotPlateform/2025/10/21/cows20251021100857.jpg",
    entruckWeightVideo: "https://smart-1251449951.cos.ap-guangzhou.myqcloud.com/iotPlateform/2025/10/21/normal_video20251021100901.mp4",
    emptyWeightVideo: "https://smart-1251449951.cos.ap-guangzhou.myqcloud.com/iotPlateform/2025/10/21/normal_video20251021100904.mp4",
    entruckVideo: "https://smart-1251449951.cos.ap-guangzhou.myqcloud.com/iotPlateform/2025/10/21/normal_video20251021101046.mp4",
    controlSlotVideo: "https://smart-1251449951.cos.ap-guangzhou.myqcloud.com/iotPlateform/2025/10/21/normal_video20251021101049.mp4",
    cattleLoadingCircleVideo: "https://smart-1251449951.cos.ap-guangzhou.myqcloud.com/iotPlateform/2025/10/21/normal_video20251021101052.mp4"
}
```

这些数据会自动映射到表单的相应字段中。

## 注意事项

1. **数据安全**：所有字段都使用了 `|| ''` 来确保空值安全
2. **向后兼容**：保持了原有的 `getOrderDetail()` 功能
3. **调试支持**：添加了 `console.log` 来帮助调试数据填充过程
4. **响应式更新**：使用 Vue 3 的 reactive 系统确保数据变化时UI自动更新

## 文件修改

- `pc-cattle-transportation/src/views/shipping/loadDialog.vue`
  - 添加了 `landingEntruckWeight` 字段
  - 实现了 `autoFillFormData` 函数
  - 更新了 `onShowDialog` 函数支持API数据参数
  - 在 `getOrderDetail` 中集成了自动填充功能
