diff --git a/src/api/harmonic-boot/cockpit/cockpit.ts b/src/api/harmonic-boot/cockpit/cockpit.ts index acd50c5..1c664d8 100644 --- a/src/api/harmonic-boot/cockpit/cockpit.ts +++ b/src/api/harmonic-boot/cockpit/cockpit.ts @@ -3,7 +3,7 @@ import request from '@/utils/request' // 主要监测点列表查询>>分页 export function mainLineList(data: any) { return request({ - url: '/harmonic-boot/mainLine/list', + url: '/cs-harmonic-boot/mainLine/list', method: 'post', data: data }) @@ -11,7 +11,7 @@ export function mainLineList(data: any) { // 主要监测点指标越限详情 export function statLimitRateDetails(data: any) { return request({ - url: '/harmonic-boot/mainLine/statLimitRateDetails', + url: '/cs-harmonic-boot/mainLine/statLimitRateDetails', method: 'post', data: data }) @@ -38,7 +38,7 @@ export function trendData(data: any) { // 每日越限占比统计 export function totalLimitStatisticsDetails(data: any) { return request({ - url: '/harmonic-boot/totalLimitStatistics/details', + url: '/cs-harmonic-boot/totalLimitStatistics/details', method: 'post', data: data }) @@ -47,7 +47,7 @@ export function totalLimitStatisticsDetails(data: any) { // 总体指标越限统计列表 export function totalLimitStatisticsList(data: any) { return request({ - url: '/harmonic-boot/totalLimitStatistics/list', + url: '/cs-harmonic-boot/totalLimitStatistics/list', method: 'post', data: data }) @@ -56,7 +56,7 @@ export function totalLimitStatisticsList(data: any) { // 总体指标越限统计数据 export function totalLimitStatisticsData(data: any) { return request({ - url: '/harmonic-boot/totalLimitStatistics/data', + url: '/cs-harmonic-boot/totalLimitStatistics/data', method: 'post', data: data }) @@ -65,7 +65,7 @@ export function totalLimitStatisticsData(data: any) { // 指标越限程度数据 export function limitExtentData(data: any) { return request({ - url: '/harmonic-boot/limitRateDetailD/limitExtentData', + url: '/cs-harmonic-boot/limitRateDetailD/limitExtentData', method: 'post', data: data }) @@ -73,7 +73,7 @@ export function limitExtentData(data: any) { // 指标日趋势图数据 export function limitExtentDayData(data: any) { return request({ - url: '/harmonic-boot/limitRateDetailD/limitExtentDayData', + url: '/cs-harmonic-boot/limitRateDetailD/limitExtentDayData', method: 'post', data: data }) @@ -82,7 +82,7 @@ export function limitExtentDayData(data: any) { // 指标越限明细日历数据 export function limitCalendarData(data: any) { return request({ - url: '/harmonic-boot/limitRateDetailD/limitCalendarData', + url: '/cs-harmonic-boot/limitRateDetailD/limitCalendarData', method: 'post', data: data }) @@ -100,7 +100,7 @@ export function fittingData(data: any) { //指标越限时间概率分布 export function limitTimeProbabilityData(data: any) { return request({ - url: '/harmonic-boot/limitRateDetailD/limitTimeProbabilityData', + url: '/cs-harmonic-boot/limitRateDetailD/limitTimeProbabilityData', method: 'post', data: data }) @@ -109,7 +109,7 @@ export function limitTimeProbabilityData(data: any) { //指标越限程度概率分布 export function limitProbabilityData(data: any) { return request({ - url: '/harmonic-boot/limitRateDetailD/limitProbabilityData', + url: '/cs-harmonic-boot/limitRateDetailD/limitProbabilityData', method: 'post', data: data }) @@ -119,7 +119,7 @@ export function limitProbabilityData(data: any) { // 电网侧指标越限统计列表 export function gridSideLimitStatisticsList(data: any) { return request({ - url: '/harmonic-boot/gridSideLimitStatistics/list', + url: '/cs-harmonic-boot/gridSideLimitStatistics/list', method: 'post', data: data }) @@ -128,7 +128,7 @@ export function gridSideLimitStatisticsList(data: any) { // 电网侧指标越限统计数据 export function gridSideLimitStatisticsData(data: any) { return request({ - url: '/harmonic-boot/gridSideLimitStatistics/data', + url: '/cs-harmonic-boot/gridSideLimitStatistics/data', method: 'post', data: data }) @@ -252,4 +252,13 @@ export function analyseWave(data: any) { }) } +// 暂态监测点下拉框接口 +export function getSimpleLine() { + return request({ + url: '/cs-device-boot/csline/getSimpleLine', + method: 'get' + }) +} + + diff --git a/src/components/cockpit/F47Curve/index.vue b/src/components/cockpit/F47Curve/index.vue index e2e2818..3bf471b 100644 --- a/src/components/cockpit/F47Curve/index.vue +++ b/src/components/cockpit/F47Curve/index.vue @@ -34,12 +34,8 @@ import { ref, onMounted, provide, reactive, watch, h } from 'vue' import TableStore from '@/utils/tableStore' import MyEchart from '@/components/echarts/MyEchart.vue' -import { ElMessage, ElMessageBox } from 'element-plus' -import { getTimeOfTheMonth } from '@/utils/formatTime' import waveFormAnalysis from '@/views/govern/device/control/tabs/components/waveFormAnalysis.vue' import TableHeader from '@/components/table/header/index.vue' -import { useRoute } from 'vue-router' -import { useTimeCacheStore } from '@/stores/timeCache' import { analyseWave } from '@/api/common' const prop = defineProps({ @@ -76,7 +72,7 @@ const fullscreen = computed(() => { } }) -const echartList = ref({}) +const echartList = ref() const chartRef = ref() // 波形 @@ -112,7 +108,6 @@ const tableStore: any = new TableStore({ data.gs = tableStore.table.data.length data.krr = gongData.pointI.length data.bkrr = gongData.pointIun.length - // console.log(gongData,'789000') echartList.value = { title: { text: `F47曲线` @@ -262,8 +257,9 @@ function gongfunction(arr: any) { let yy = arr[i].eventValue let time = arr[i].time let eventId = arr[i].eventId + let lineName = arr[i].lineName // let index =arr[i].eventDetailIndex; - point = [xx, yy, time, eventId] + point = [xx, yy, time, eventId, lineName] if (xx <= 0.003) { let line = 0 @@ -430,15 +426,19 @@ const handleTolerableEventClick = async (row: any) => { nextTick(() => { if (waveFormAnalysisRef.value) { //waveFormAnalysisRef.value.setHeight(false, 360) - waveFormAnalysisRef.value.setHeight(999, 130, 1.6666666) + waveFormAnalysisRef.value.setHeight(999, 130, 1.6666666) } }) - await analyseWave(row.value[3]) + await analyseWave(row.value[3]) //eventId .then(res => { row.loading1 = false if (res != undefined) { - boxoList.value = row - boxoList.value.featureAmplitude = row.evtParamVVaDepth != '-' ? row.evtParamVVaDepth - 0 : null + boxoList.value = { + persistTime: row.value[0], //持续时间 + featureAmplitude: (row.value[1] / 100).toFixed(2), //残余电压 + startTime: row.value[2], //时间 + lineName: row.value[4] //监测点名称 + } boxoList.value.systemType = 'YPT' wp.value = res.data } diff --git a/src/components/cockpit/exceedanceLevel/index.vue b/src/components/cockpit/exceedanceLevel/index.vue index fac8fd7..883cc1c 100644 --- a/src/components/cockpit/exceedanceLevel/index.vue +++ b/src/components/cockpit/exceedanceLevel/index.vue @@ -66,7 +66,7 @@ const echartList = ref() const dailyTrendChartRef = ref() const tableStore: any = new TableStore({ - url: '/harmonic-boot/limitRateDetailD/limitExtentData', + url: '/cs-harmonic-boot/limitRateDetailD/limitExtentData', method: 'POST', showPage: false, diff --git a/src/components/cockpit/gridSideStatistics/components/overLimitDetails.vue b/src/components/cockpit/gridSideStatistics/components/overLimitDetails.vue index 9fb2560..23defb1 100644 --- a/src/components/cockpit/gridSideStatistics/components/overLimitDetails.vue +++ b/src/components/cockpit/gridSideStatistics/components/overLimitDetails.vue @@ -58,7 +58,7 @@ const loop50 = (key: string) => { return list } const tableStore: any = new TableStore({ - url: '/harmonic-boot/totalLimitStatistics/details', + url: '/cs-harmonic-boot/totalLimitStatistics/details', method: 'POST', publicHeight: 30, showPage: false, diff --git a/src/components/cockpit/gridSideStatistics/index.vue b/src/components/cockpit/gridSideStatistics/index.vue index 6f321bb..3cb3970 100644 --- a/src/components/cockpit/gridSideStatistics/index.vue +++ b/src/components/cockpit/gridSideStatistics/index.vue @@ -117,7 +117,7 @@ const initEcharts = () => { const OverLimitDetailsRef = ref() const tableStore: any = new TableStore({ - url: '/harmonic-boot/gridSideLimitStatistics/list', + url: '/cs-harmonic-boot/gridSideLimitStatistics/list', method: 'POST', showPage: false, diff --git a/src/components/cockpit/indicatorDetails/index.vue b/src/components/cockpit/indicatorDetails/index.vue index 633909c..483712b 100644 --- a/src/components/cockpit/indicatorDetails/index.vue +++ b/src/components/cockpit/indicatorDetails/index.vue @@ -91,7 +91,7 @@ const getTextForDate = (date: string) => { } const tableStore: any = new TableStore({ - url: '/harmonic-boot/limitRateDetailD/limitCalendarData', + url: '/cs-harmonic-boot/limitRateDetailD/limitCalendarData', method: 'POST', showPage: false, column: [], diff --git a/src/components/cockpit/indicatorDistribution/index.vue b/src/components/cockpit/indicatorDistribution/index.vue index ef5b38a..18946da 100644 --- a/src/components/cockpit/indicatorDistribution/index.vue +++ b/src/components/cockpit/indicatorDistribution/index.vue @@ -397,7 +397,7 @@ const initProbabilityData = () => { } const tableStore: any = new TableStore({ - url: '/harmonic-boot/limitRateDetailD/limitTimeProbabilityData', + url: '/cs-harmonic-boot/limitRateDetailD/limitTimeProbabilityData', method: 'POST', showPage: false, column: [], diff --git a/src/components/cockpit/indicatorFittingChart/components/overLimitDetails.vue b/src/components/cockpit/indicatorFittingChart/components/overLimitDetails.vue index 7e16821..0c2d208 100644 --- a/src/components/cockpit/indicatorFittingChart/components/overLimitDetails.vue +++ b/src/components/cockpit/indicatorFittingChart/components/overLimitDetails.vue @@ -63,7 +63,7 @@ const loop50 = (key: string) => { return list } const tableStore: any = new TableStore({ - url: '/harmonic-boot/mainLine/statLimitRateDetails', + url: '/cs-harmonic-boot/mainLine/statLimitRateDetails', method: 'POST', publicHeight: 30, showPage: false, diff --git a/src/components/cockpit/indicatorFittingChart/index.vue b/src/components/cockpit/indicatorFittingChart/index.vue index 35c53e2..49b9188 100644 --- a/src/components/cockpit/indicatorFittingChart/index.vue +++ b/src/components/cockpit/indicatorFittingChart/index.vue @@ -67,7 +67,7 @@ const selectChange = (showSelect: any, height: any, datePickerValue?: any) => { } const tableStore: any = new TableStore({ - url: '/harmonic-boot/mainLine/list', + url: '/cs-harmonic-boot/mainLine/list', method: 'POST', showPage: fullscreen.value ? true : false, exportName: '主要监测点列表', diff --git a/src/components/cockpit/monitoringPointList/components/overLimitDetails.vue b/src/components/cockpit/monitoringPointList/components/overLimitDetails.vue index 9fb2560..23defb1 100644 --- a/src/components/cockpit/monitoringPointList/components/overLimitDetails.vue +++ b/src/components/cockpit/monitoringPointList/components/overLimitDetails.vue @@ -58,7 +58,7 @@ const loop50 = (key: string) => { return list } const tableStore: any = new TableStore({ - url: '/harmonic-boot/totalLimitStatistics/details', + url: '/cs-harmonic-boot/totalLimitStatistics/details', method: 'POST', publicHeight: 30, showPage: false, diff --git a/src/components/cockpit/overLimitStatistics/components/overLimitDetails.vue b/src/components/cockpit/overLimitStatistics/components/overLimitDetails.vue index 61380a5..fe86f23 100644 --- a/src/components/cockpit/overLimitStatistics/components/overLimitDetails.vue +++ b/src/components/cockpit/overLimitStatistics/components/overLimitDetails.vue @@ -58,7 +58,7 @@ const loop50 = (key: string) => { return list } const tableStore: any = new TableStore({ - url: '/harmonic-boot/totalLimitStatistics/details', + url: '/cs-harmonic-boot/totalLimitStatistics/details', method: 'POST', publicHeight: 30, showPage: false, diff --git a/src/components/cockpit/overLimitStatistics/index.vue b/src/components/cockpit/overLimitStatistics/index.vue index 621d6c5..614d85e 100644 --- a/src/components/cockpit/overLimitStatistics/index.vue +++ b/src/components/cockpit/overLimitStatistics/index.vue @@ -120,7 +120,7 @@ const initEcharts = () => { const OverLimitDetailsRef = ref() const tableStore: any = new TableStore({ - url: '/harmonic-boot/totalLimitStatistics/list', + url: '/cs-harmonic-boot/totalLimitStatistics/list', method: 'POST', showPage: false, diff --git a/src/components/cockpit/transientDetails/components/transientList.vue b/src/components/cockpit/transientDetails/components/transientList.vue index 3e1b9fd..7048b12 100644 --- a/src/components/cockpit/transientDetails/components/transientList.vue +++ b/src/components/cockpit/transientDetails/components/transientList.vue @@ -1,15 +1,11 @@ @@ -30,21 +43,36 @@ import Table from '@/components/table/index.vue' import TableHeader from '@/components/table/header/index.vue' import TableStore from '@/utils/tableStore' import { mainHeight } from '@/utils/layout' +import waveFormAnalysis from '@/views/govern/device/control/tabs/components/waveFormAnalysis.vue' +import { analyseWave } from '@/api/common' +import { getSimpleLine } from '@/api/harmonic-boot/cockpit/cockpit' + const dialogVisible: any = ref(false) -const harmonicRatio‌Ref: any = ref(null) -const options = [ - { - value: '35kV进线', - label: '35kV进线' - } -] -const height = mainHeight(0, 2).height as any +const waveFormAnalysisRef: any = ref(null) +// 波形 +const isWaveCharts = ref(false) +const loading = ref(false) +const wp = ref({}) +const boxoList: any = ref({}) + +const tableHeaderRef = ref() + +const options = ref() +const heightRef = ref(mainHeight(168, 2.1).height) +const selectChange = (flag: boolean, h: any) => { + heightRef.value = mainHeight(h, 2.1).height +} + +const getSimpleLineList = async () => { + const res = await getSimpleLine() + options.value = res.data +} + const tableStore: any = new TableStore({ - url: '/user-boot/role/selectRoleDetail?id=0', + url: '/cs-harmonic-boot/event/pageEvent', method: 'POST', - publicHeight: 30, - showPage: false, - exportName: '主要监测点列表', + showPage: true, + exportName: '暂态事件详情', column: [ { field: 'index', @@ -56,76 +84,142 @@ const tableStore: any = new TableStore({ }, { title: '暂态时间', - field: 'time', + field: 'startTime', + minWidth: '150' }, { title: '测点名称', - field: 'name', + field: 'lineName', width: '150' }, { title: '暂态类型', - field: 'flicker', - width: '100', + field: 'tag', + width: '100' }, { title: '特征幅值(%)', - field: 'flicker', + field: 'amplitude', width: '100' }, { title: '暂降深度(%)', - field: 'flicker', - width: '100' + field: 'depth', + width: '100', + formatter: (row: any) => { + // 当暂态类型不是电压暂升时,计算暂降深度 = 100 - 特征幅值 + if (row.row.tag !== '电压暂升') { + const amplitude = parseFloat(row.row.amplitude) + if (!isNaN(amplitude)) { + return 100 - amplitude + } + return '-' + } else { + // 电压暂升时不显示暂降深度 + return '/' + } + } }, { title: '持续时间(S)', - field: 'flicker', + field: 'persistTime', width: '100' }, - { + { title: '严重度', - field: 'flicker', + field: 'severity', width: '80' }, + { + title: '波形', + width: '100', + render: 'buttons', + buttons: [ + { + name: 'edit', + text: '波形分析', + type: 'primary', + icon: 'el-icon-DataLine', + render: 'basicButton', + disabled: row => { + return !row.wavePath + }, + + click: async row => { + row.loading1 = true + loading.value = true + isWaveCharts.value = true + dialogVisible.value = false + // 在打开弹窗时立即设置高度 + nextTick(() => { + if (waveFormAnalysisRef.value) { + // waveFormAnalysisRef.value.setHeight(false, 360) + waveFormAnalysisRef.value.setHeight(999, 130, 1.6666666) + } + }) + await analyseWave(row.id) + .then(res => { + row.loading1 = false + if (res != undefined) { + boxoList.value = row + // boxoList.value = { + // ...row, + // duration: row.persistTime // 将 persistTime 值赋给 duration + // } + boxoList.value.featureAmplitude = + row.evtParamVVaDepth != '-' ? row.evtParamVVaDepth - 0 : null + boxoList.value.systemType = 'YPT' + wp.value = res.data + } + loading.value = false + }) + .catch(() => { + row.loading1 = false + loading.value = false + }) + + nextTick(() => { + waveFormAnalysisRef.value && + waveFormAnalysisRef.value.getWpData(wp.value, boxoList.value, true) + }) + } + }, + { + name: 'edit', + text: '暂无波形', + type: 'info', + icon: 'el-icon-DataLine', + render: 'basicButton', + disabled: row => { + return !!row.wavePath + } + } + ] + } ], beforeSearchFun: () => {}, - loadCallback: () => { - tableStore.table.data = [ - { - time: '2024-01-01 00:00:00', - name: '35kV进线', - flicker: '0' - }, - { - time: '2024-01-01 00:00:00', - name: '35kV进线', - flicker: '0' - }, - { - time: '2024-01-01 00:00:00', - name: '35kV进线', - flicker: '0' - } - ] - } + loadCallback: () => {} }) -tableStore.table.params.searchValue = '' provide('tableStore', tableStore) -const open = async (row: any) => { +const open = async (time: any) => { dialogVisible.value = true - tableStore.index() + getSimpleLineList() + tableStore.table.params.lineId = '' + nextTick(() => { + tableHeaderRef.value.setInterval(5) + tableHeaderRef.value.setTimeInterval([time, time]) + tableStore.table.params.searchBeginTime = time + tableStore.table.params.searchEndTime = time + tableStore.index() + }) } -// 点击行 -const cellClickEvent = ({ row, column }: any) => { - if (column.field != 'name') { - harmonicRatio‌Ref.value.openDialog(row) - } +const handleHideCharts = () => { + isWaveCharts.value = false + dialogVisible.value = true } - defineExpose({ open }) diff --git a/src/components/cockpit/transientDetails/index.vue b/src/components/cockpit/transientDetails/index.vue index 0a08a33..618bd90 100644 --- a/src/components/cockpit/transientDetails/index.vue +++ b/src/components/cockpit/transientDetails/index.vue @@ -41,8 +41,9 @@ style="text-decoration: underline" class="details" v-for="item in list?.filter((item:any) => item.name == data.day)" + @click="descentClick(item)" > -
电压暂降:{{ item.eventDown || 0 }}
+
电压暂降:{{ item.eventDown || 0 }}
电压中断:{{ item.eventOff || 0 }}
电压暂升:{{ item.eventUp || 0 }}
@@ -182,8 +183,8 @@ watch( ) // 电压暂降点击事件 -const descentClick = () => { - transientListRef.value.open() +const descentClick = (item:any) => { + transientListRef.value.open(item.name) }