45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
import { unwrapVehiclePayload } from './vehiclePayload'
|
|
|
|
/**
|
|
* 规范 query_data 单项,供 BaseReport 使用:{ data: { apiID, data: 业务体 } }
|
|
*/
|
|
export function normalizeVehicleReportItem(item) {
|
|
if (!item || typeof item !== 'object')
|
|
return item
|
|
|
|
const outer = item.data
|
|
if (outer == null)
|
|
return item
|
|
|
|
let apiID = ''
|
|
let payload = outer
|
|
|
|
if (typeof outer === 'object' && !Array.isArray(outer)) {
|
|
apiID = String(outer.apiID ?? outer.apiId ?? '')
|
|
if ('data' in outer)
|
|
payload = outer.data
|
|
}
|
|
|
|
payload = unwrapVehiclePayload(payload)
|
|
|
|
if (!apiID && payload && typeof payload === 'object' && !Array.isArray(payload)) {
|
|
apiID = String(payload.apiID ?? payload.apiId ?? '')
|
|
if (apiID && 'data' in payload)
|
|
payload = unwrapVehiclePayload(payload.data)
|
|
}
|
|
|
|
return {
|
|
...item,
|
|
data: {
|
|
apiID: apiID || '',
|
|
data: payload,
|
|
},
|
|
}
|
|
}
|
|
|
|
export function normalizeVehicleReportData(items) {
|
|
if (!Array.isArray(items))
|
|
return []
|
|
return items.map(normalizeVehicleReportItem)
|
|
}
|