mirror of
https://gitee.com/dromara/go-view.git
synced 2025-10-13 22:12:11 +08:00
155 lines
5.5 KiB
TypeScript
155 lines
5.5 KiB
TypeScript
import moment from "moment";
|
|
import { httpErrorHandle } from "@/utils";
|
|
import { publicInterface } from '@/api/path/business.api'
|
|
import { EchartsDataType } from '@/packages/index.d'
|
|
|
|
import {
|
|
RequestBodyEnum,
|
|
RequestHttpEnum,
|
|
RequestHttpIntervalEnum,
|
|
RequestParams, RequestParamsObjType,
|
|
RequestParamsTypeEnum
|
|
} from "@/enums/httpEnum";
|
|
import { getToken } from '@/api/path/business.api'
|
|
|
|
// export const getData = async () => {
|
|
// try {
|
|
// const methodArr = 'handle'.split('_')
|
|
// const queryNodeFlowParam = {
|
|
// types: ['rec'],
|
|
// start_time: moment(new Date(new Date().getTime() - 10 * 60 * 1000)).format('YYYY-MM-DD HH:mm:ss'),
|
|
// end_time: moment().format('YYYY-MM-DD HH:mm:ss'),
|
|
// duration: 15,
|
|
// query_type: ''
|
|
// }
|
|
// queryNodeFlowParam.types = [methodArr[0]]
|
|
// queryNodeFlowParam.query_type = methodArr[1] || ''
|
|
// const start_time = moment().subtract(10, 'm').format('YYYY-MM-DD HH:mm:ss')
|
|
// const end_time = moment().format('YYYY-MM-DD HH:mm:ss')
|
|
// queryNodeFlowParam.start_time = start_time
|
|
// queryNodeFlowParam.end_time = end_time
|
|
// const res = await publicInterface('/dcim/dems/statistic', 'get_point_realtime_data_echarts', queryNodeFlowParam)
|
|
// const obj:EchartsDataType = {
|
|
// dimensions: [],
|
|
// source: []
|
|
// }
|
|
// if(res && res.errcode === '00000') {
|
|
// interface SeriesItemType {
|
|
// data: Array<any>
|
|
// }
|
|
// const x = res.data.echarts.xAxis.data.slice(-10)
|
|
// const v = res.data.echarts.series.map((_:SeriesItemType) => _.data.slice(-10))
|
|
// let xAxisName = ''
|
|
// if(queryNodeFlowParam.query_type === '') xAxisName = '速率(测点/s)'
|
|
// else xAxisName = '测点总数'
|
|
// obj.dimensions = ['product', ...Array(v.length).fill({}).map((_, i) => `${xAxisName}_${i + 1}`)]
|
|
// obj.source = x.map((_:any) => ({product: _}))
|
|
// obj.dimensions.slice(1).forEach((key, vi) => {
|
|
// obj.source.forEach((item, i) => {
|
|
// item[key] = v[vi][i]
|
|
// })
|
|
// })
|
|
// }
|
|
// return obj
|
|
// } catch {
|
|
// httpErrorHandle()
|
|
// }
|
|
// }
|
|
|
|
const methodArr = 'handle'.split('_')
|
|
const queryNodeFlowParam = {
|
|
types: ['rec'],
|
|
start_time: moment(new Date(new Date().getTime() - 10 * 60 * 1000)).format('YYYY-MM-DD HH:mm:ss'),
|
|
end_time: moment().format('YYYY-MM-DD HH:mm:ss'),
|
|
duration: 15,
|
|
query_type: ''
|
|
}
|
|
queryNodeFlowParam.types = [methodArr[0]]
|
|
queryNodeFlowParam.query_type = methodArr[1] || ''
|
|
const start_time = moment().subtract(10, 'm').format('YYYY-MM-DD HH:mm:ss')
|
|
const end_time = moment().format('YYYY-MM-DD HH:mm:ss')
|
|
queryNodeFlowParam.start_time = start_time
|
|
queryNodeFlowParam.end_time = end_time
|
|
|
|
function requestBodyJSONPreHandler(global:any) {
|
|
const methodArr = 'handle'.split('_')
|
|
const obj = {
|
|
access_token: global.getToken(),
|
|
type: 'get_point_realtime_data_echarts',
|
|
data: {
|
|
types: [methodArr[0]],
|
|
start_time: global.moment().subtract(10, 'm').format('YYYY-MM-DD HH:mm:ss'),
|
|
end_time: global.moment().format('YYYY-MM-DD HH:mm:ss'),
|
|
duration: 15,
|
|
query_type: methodArr[1] || ''
|
|
}
|
|
}
|
|
return obj
|
|
}
|
|
const requestBodyJSONPreHandlerStr = requestBodyJSONPreHandler.toString().replace(/^function[\s\S]*?\{/m, '').replace(/\}$/, '')
|
|
|
|
export const requestConfig = {
|
|
"requestDataType": 1,
|
|
"requestHttpType": RequestHttpEnum.POST,
|
|
"requestUrl": "/api/goview/dcim/dems/statistic",
|
|
"requestInterval": 5,
|
|
"requestIntervalUnit": RequestHttpIntervalEnum.SECOND,
|
|
"requestContentType": 0,
|
|
"requestParamsBodyType": RequestBodyEnum.JSON,
|
|
"requestSQLContent": {
|
|
"sql":"select * from where"
|
|
},
|
|
"requestParams": {
|
|
[RequestParamsTypeEnum.BODY]: {
|
|
[RequestBodyEnum.JSON]: JSON.stringify({
|
|
access_token: getToken(),
|
|
type: 'get_point_realtime_data_echarts',
|
|
data: queryNodeFlowParam
|
|
}, null, 2)
|
|
}
|
|
} as RequestParams,
|
|
"requestBodyJSONPre": {
|
|
enable: true,
|
|
handler: requestBodyJSONPreHandlerStr
|
|
}
|
|
}
|
|
|
|
// js代码配置filter 后面会转成string 忽略ts检查
|
|
|
|
// @ts-ignore
|
|
function filterFn(data) {
|
|
const obj = {}
|
|
const x = data.echarts.xAxis.data.slice(-10)
|
|
// @ts-ignore
|
|
const v = data.echarts.series.map((_) => _.data.slice(-10))
|
|
// @ts-ignore
|
|
obj.dimensions = ['product', ...Array(v.length).fill({}).map((_, i) => `测点总数_${i + 1}`)]
|
|
// @ts-ignore
|
|
obj.source = x.map((_) => ({product: _}))
|
|
// @ts-ignore
|
|
obj.dimensions.slice(1).forEach((key, vi) => {
|
|
// @ts-ignore
|
|
obj.source.forEach((item, i) => {
|
|
item[key] = v[vi][i]
|
|
})
|
|
})
|
|
return obj
|
|
}
|
|
|
|
export const filterConfig = filterFn.toString().replace(/^function[\s\S]*?\{/m, '').replace(/\}$/, '')
|
|
|
|
// export const requestConfig = {
|
|
// "requestDataType": 1,
|
|
// "requestHttpType": RequestHttpEnum.GET,
|
|
// "requestUrl": "/api/leftBottom",
|
|
// "requestInterval": 5,
|
|
// "requestIntervalUnit": RequestHttpIntervalEnum.SECOND,
|
|
// "requestContentType": 0,
|
|
// "requestParamsBodyType": RequestBodyEnum.NONE,
|
|
// "requestSQLContent": {
|
|
// "sql":"select * from where"
|
|
// },
|
|
// "requestParams": {} as RequestParams
|
|
// }
|
|
|