# Coal Feeding DataList Refactor Design

## Scope

This change only refactors the `dataList` structure used in `src/views/coalFeeding.vue`.

`src/views/coalFeeding2.vue` and other views remain unchanged.

## Goal

Replace the flat timing and motor fields in `dataList` with a nested structure that models the top and bottom sections explicitly.

## New Data Shape

Each item in `dataList` will use this shape:

```ts
{
  team: string;
  unit: number;
  tempera1: number | string;
  tempera2: number | string;
  carNumber: number | string;
  tmljsjs: number | string;
  tmljsjx: number | string;
  statusAuto: boolean;
  team_top: {
    run_time_sec: number | string;
    top_time_sec: number | string;
    acc_time_sec: number | string;
    bl_time_sec: number | string;
    dianji: MotorItem[];
  };
  team_bottom: {
    run_time_sec: number | string;
    top_time_sec: number | string;
    acc_time_sec: number | string;
    bl_time_sec: number | string;
    dianji2: MotorItem[];
  };
}
```

## Template And Logic Updates

`coalFeeding.vue` will be updated so that:

- The upper parameter rows read and write `team_top`.
- The lower parameter rows read and write `team_bottom`.
- The upper motor grid reads `team_top.dianji`.
- The lower motor grid reads `team_bottom.dianji2`.
- Motor height calculations use the nested motor arrays.
- Local/remote checks and stop-state toggles use the nested motor arrays.

## Compatibility Decision

This refactor will not keep the old flat fields in parallel. `coalFeeding.vue` will use the new nested structure as the single source of truth.

## Risk Control

- Restrict all edits to `src/views/coalFeeding.vue`.
- Keep point binding, websocket updates, and page mapping behavior unchanged.
- Verify the view still type-checks and builds after migration.
