refactor(vimp): 拆分站点模型为 VimpRawSite / VimpSite 并归一化 online 字段

- 将 VimpStation 重命名为 VimpSite,统一"站点"语义贯穿全模块
- 新增 VimpRawSite 表示 /catalog/allDevice 接口原样数据,online 字段可选
- 抽离 normalizeVimpSite 纯函数,集中处理 online 字段缺失时的默认值
- catalogAllDeviceApi 入参改为 VimpRawSite[],出参统一归一化为 VimpSite[] | null
- 下游 store、composable、树节点类型同步从 VimpStation 切换到 VimpSite
- 内部业务模型保持 online: boolean 必填,避免缺失字段沿调用链向下传播
This commit is contained in:
yangsy
2026-06-08 13:38:38 +08:00
parent 6fed499d78
commit 6f14370751
8 changed files with 36 additions and 24 deletions
@@ -1,11 +1,11 @@
import { unwrapVimpResponse, vimpClient } from '../client';
import type { VimpStation } from '../model';
import { normalizeVimpSite, type VimpRawSite } from '../model';
export const catalogAllDeviceApi = async (options?: { signal?: AbortSignal }) => {
const { signal } = options ?? {};
const client = vimpClient;
const endpoint = `/catalog/allDevice`;
const resp = await client.post<VimpStation[]>(endpoint, {}, { signal });
const resp = await client.post<VimpRawSite[]>(endpoint, {}, { signal });
const data = unwrapVimpResponse(resp);
return data;
return data?.map(normalizeVimpSite) ?? null;
};