diff --git a/frontend/src/api/tools/waveform/index.ts b/frontend/src/api/tools/waveform/index.ts new file mode 100644 index 0000000..38e3023 --- /dev/null +++ b/frontend/src/api/tools/waveform/index.ts @@ -0,0 +1,13 @@ +import http from '@/api' +import type { Waveform } from './interface' + +export const parseComtradeApi = (params: Waveform.ParseComtradeParams) => { + const formData = new FormData() + + formData.append('cfgFile', params.cfgFile) + formData.append('datFile', params.datFile) + + return http.post(`/wave/parseComtrade`, formData, { + headers: { 'Content-Type': 'multipart/form-data' } + }) +} diff --git a/frontend/src/api/tools/waveform/interface/index.ts b/frontend/src/api/tools/waveform/interface/index.ts new file mode 100644 index 0000000..4a5386b --- /dev/null +++ b/frontend/src/api/tools/waveform/interface/index.ts @@ -0,0 +1,79 @@ +export namespace Waveform { + export interface ParseComtradeParams { + cfgFile: File + datFile: File + parseType?: number + ptType?: number + pt?: number + ct?: number + monitorName?: string + calculateRms?: boolean + buildDetails?: boolean + calculateEigenvalue?: boolean + dynamicThreshold?: boolean + } + + export interface WaveTrendData { + max?: number + min?: number + aValue?: number[][] + bValue?: number[][] + cValue?: number[][] + } + + export interface WaveDataDetail { + instantData?: WaveTrendData + rmsData?: WaveTrendData + a?: string + b?: string + c?: string + channelName?: string + unit?: string + isOpen?: boolean + title?: string + colors?: string[] + } + + export interface ComtradeCfgDTO { + nChannelNum?: number + nPhasic?: number + nAnalogNum?: number + nDigitalNum?: number + timeStart?: string + timeTrige?: string + nRates?: number + firstMs?: number + nPush?: number + finalSampleRate?: number + nAllWaveNum?: number + strBinType?: string + } + + export interface WaveDataDTO { + comtradeCfgDTO?: ComtradeCfgDTO + waveTitle?: string[] + channelNames?: string[] + listWaveData?: number[][] + listRmsData?: number[][] + listRmsMinData?: number[][] + iPhasic?: number + ptType?: number + pt?: number + ct?: number + time?: string + monitorName?: string + } + + export interface EigenvalueDTO { + amplitude?: number + residualVoltage?: number + ratedVoltage?: number + durationTime?: number + } + + export interface WaveComtradeResultVO { + waveData?: WaveDataDTO + waveDataDetails?: WaveDataDetail[] + eigenvalues?: EigenvalueDTO[] + } +} diff --git a/frontend/src/views/tools/index.vue b/frontend/src/views/tools/index.vue new file mode 100644 index 0000000..eabd4c5 --- /dev/null +++ b/frontend/src/views/tools/index.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/frontend/src/views/tools/mmsMapping/index.vue b/frontend/src/views/tools/mmsMapping/index.vue new file mode 100644 index 0000000..6d14010 --- /dev/null +++ b/frontend/src/views/tools/mmsMapping/index.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/frontend/src/views/tools/waveform/index.vue b/frontend/src/views/tools/waveform/index.vue new file mode 100644 index 0000000..8c959ca --- /dev/null +++ b/frontend/src/views/tools/waveform/index.vue @@ -0,0 +1,950 @@ + + + + + +