import { http } from "@/api/http"; import { ModuleTypeEnum, RequestHttpEnum } from "@/enums/httpEnum"; import { ProjectDetail } from "@/api/path/project"; import { getLocalStorage, httpErrorHandle } from "@/utils"; import { RequestDataSourceConfig } from '@/store/modules/chartEditStore/chartEditStore.d' import { StorageEnum } from "@/enums/storageEnum"; import { SystemStoreEnum } from '@/store/modules/systemStore/systemStore.d' import { SelectDataSourceTypeAPIObj } from "@/enums/dataSourceEnum"; /* * 获取站点 */ export const fetchDataSite = async (data: object) => { try { return await http(RequestHttpEnum.GET)(`${ModuleTypeEnum.DATA}/get-site`) } catch { httpErrorHandle() } } /* * 获取设备 * @param data { * siteId // 站点 * } */ export const fetchDataDevice = async (data: object) => { try { return await http(RequestHttpEnum.GET)(`${ModuleTypeEnum.DATA}/get-entity`,data) } catch { httpErrorHandle() } } /* * 获取点位 * @param data { * siteId // 站点 * entityId // 设备 * } */ export const fetchDataPoint = async (data: object) => { try { return await http(RequestHttpEnum.GET)(`${ModuleTypeEnum.DATA}/get-point`, data) } catch { httpErrorHandle() } } // { // "queryType": 2, // "site": "53", // "width": "1d", // "tenantId": 169, // "interval":"1h", // "points":[] // } /* * 收益参数 * @param params { * queryType = 2 * siteId // 站点 * entityId // 设备 * width = 1d * tenantId * interval * points = [] * } */ export async function test (){ // const params = { // "queryType": 1, // "site": 56, // "with": 30, // "deviceSn": 454, // "points": [ // 4, // 7 // ], // "tenantId": 169 // } const params = { "queryType": 2, "site": 56, "with": "6h", "interval": "20m", "points": [], "tenantId": 169 } try { return await http(RequestHttpEnum.POST)(`${ModuleTypeEnum.DATA}/get-by-iot`, params) } catch { httpErrorHandle() } } function getPointParams(requestSource: RequestDataSourceConfig) { let params:any = { queryType: SelectDataSourceTypeAPIObj[requestSource.dataSourceType], site: requestSource.station, width: requestSource.recentTimeRange, deviceSn: requestSource.device.split('|')[0], deviceType: requestSource.device.split('|')[1], points: requestSource.points, tenantId: getToken() } return params } function getEarningParams(requestSource: RequestDataSourceConfig) { let params: any = { queryType: SelectDataSourceTypeAPIObj[requestSource.dataSourceType], site: requestSource.station, width: requestSource.recentTimeRange, interval: '20m', points: [], tenantId: getToken() } return params } export const fetchDataByIot = async (requestSource: RequestDataSourceConfig) => { if (!requestSource.station) return let params:any = {} if(requestSource.dataSourceType === 'point') { params = getPointParams(requestSource) } else if(requestSource.dataSourceType === 'earning') { params = getEarningParams(requestSource) } try { const res = await http(RequestHttpEnum.POST)(`${ModuleTypeEnum.DATA}/get-by-iot`, params) as any let keyMap: any = [] if (requestSource.dataSourceType === 'point') { keyMap = Object.fromEntries( requestSource.pointsInfo.map(p => [p.columnName, p.nameCn]) ) } else if(requestSource.dataSourceType === 'earning'){ keyMap = { 'sum(earning)': '收益' } } res.data.dimensions = res.data.dimensions.map((key:string) => keyMap[key] || key) res.data.source = res.data.source.map((item:any) => { const newItem: Record = {} for (const key in item) { newItem[keyMap[key] || key] = item[key] } return newItem }) ?? [] return res // await specialCustomizeHttp({ // url: `${ModuleTypeEnum.DATA}/get-by-iot`, // method: 'POST', // params // }) } catch { // httpErrorHandle() } } function getToken() { const info = getLocalStorage(StorageEnum.GO_SYSTEM_STORE) return info ? info[SystemStoreEnum.TENANT_INFO]['tenantId'] : undefined }