优化波形
This commit is contained in:
@@ -1,423 +1,423 @@
|
||||
<template>
|
||||
<div class="default-main">
|
||||
<TableHeader datePicker theCurrentTime area ref="header">
|
||||
<!-- <template v-slot:select>
|
||||
|
||||
</template> -->
|
||||
</TableHeader>
|
||||
<div v-loading="tableStore.table.loading">
|
||||
<el-row :gutter="10" class="pd10">
|
||||
<el-col :span="11" style="position: relative">
|
||||
<el-card>
|
||||
<el-radio-group
|
||||
v-model="tableStore.table.params.type"
|
||||
class="group"
|
||||
@change="tableStore.index()"
|
||||
>
|
||||
<el-radio-button label="风电场" value="1" />
|
||||
<el-radio-button label="光伏电站" value="2" />
|
||||
</el-radio-group>
|
||||
<MyEchartMap
|
||||
ref="EchartMap"
|
||||
:options="echartMapList"
|
||||
class="map"
|
||||
@eliminate="eliminate"
|
||||
@getRegionByRegion="getRegionByRegion"
|
||||
@clickMap="clickMap"
|
||||
/>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="13">
|
||||
<el-card>
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>暂降列表</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- <h3 class="mb10">暂降列表</h3> -->
|
||||
<div class="tall1">
|
||||
<vxe-table
|
||||
height="auto"
|
||||
auto-resize
|
||||
:data="distributionData"
|
||||
v-loading="loading"
|
||||
v-bind="defaultAttribute"
|
||||
>
|
||||
<vxe-column
|
||||
field="newStationName"
|
||||
title="新能源站名称"
|
||||
min-width="150px"
|
||||
show-overflow-tooltip
|
||||
></vxe-column>
|
||||
<vxe-column field="startTime" title="暂降发生时刻" min-width="150px"></vxe-column>
|
||||
<vxe-column
|
||||
field="featureAmplitude"
|
||||
title="暂降(骤升)幅值(%)"
|
||||
sortable
|
||||
min-width="150px"
|
||||
></vxe-column>
|
||||
<vxe-column
|
||||
field="advanceReason"
|
||||
title="暂降原因"
|
||||
sortable
|
||||
:formatter="formFilter"
|
||||
min-width="100px"
|
||||
></vxe-column>
|
||||
<vxe-column field="severity" title="严重度" min-width="100px" sortable></vxe-column>
|
||||
<vxe-column title="操作" width="80px">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
v-if="row.wavePath != null"
|
||||
size="small"
|
||||
link
|
||||
@click="boxi(row)"
|
||||
>
|
||||
查看波形
|
||||
</el-button>
|
||||
<el-button v-else disabled size="small" link>暂无波形</el-button>
|
||||
</template>
|
||||
</vxe-column>
|
||||
</vxe-table>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card class="mt10">
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>暂降波形</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="tall" v-loading="loading1">
|
||||
<!-- <h3 class="mb10">暂降波形</h3> -->
|
||||
<div v-if="wp != null">
|
||||
<rmsboxi :value="1" :height="height" :boxoList="boxoList" :wp="wp" />
|
||||
</div>
|
||||
<el-empty v-else description="暂无数据" class="custom-empty" />
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import TableHeader from '@/components/table/header/index.vue'
|
||||
|
||||
import { useDictData } from '@/stores/dictData'
|
||||
import { defaultAttribute } from '@/components/table/defaultAttribute'
|
||||
import MyEchartMap from '@/components/echarts/MyEchartMap.vue'
|
||||
import TableStore from '@/utils/tableStore'
|
||||
import { voltageRideThroughEventQueryPage } from '@/api/event-boot/highAndLowPressure'
|
||||
import { getMonitorEventAnalyseWave, getTransientDetailById } from '@/api/event-boot/transient'
|
||||
import rmsboxi from '@/components/echarts/rmsboxi.vue'
|
||||
import { ref, onMounted, provide } from 'vue'
|
||||
import { mainHeight } from '@/utils/layout'
|
||||
import { FormItem } from 'vxe-table'
|
||||
defineOptions({
|
||||
name: 'newEnergy/highAndLowPressure'
|
||||
})
|
||||
const EchartMap = ref()
|
||||
const dictData = useDictData()
|
||||
const reason = dictData.getBasicData('Event_Reason')
|
||||
const triggerType = dictData.getBasicData('Event_Statis')
|
||||
const echartMapList: any = ref({})
|
||||
const header = ref()
|
||||
const distributionData: any = ref([])
|
||||
const loading = ref(false)
|
||||
const loading1 = ref(false)
|
||||
const boxoList = ref(null)
|
||||
const wp = ref(null)
|
||||
const tableStore = new TableStore({
|
||||
url: '/event-boot/voltageRideThrough/view',
|
||||
method: 'POST',
|
||||
column: [],
|
||||
beforeSearchFun: () => {
|
||||
tableStore.table.params.areaId = tableStore.table.params.deptIndex
|
||||
},
|
||||
loadCallback: () => {
|
||||
// 处理地图数据
|
||||
map(tableStore.table.data)
|
||||
// tabulation(tableStore.table.data)
|
||||
EchartMap.value.GetEchar(header.value.areaRef.areaName)
|
||||
if (tableStore.table.data.length > 0) {
|
||||
tabulation({ data: tableStore.table.data[0], seriesName: '高压' })
|
||||
}
|
||||
}
|
||||
})
|
||||
const height = mainHeight(200, 2).height
|
||||
provide('tableStore', tableStore)
|
||||
tableStore.table.params.type = '1'
|
||||
|
||||
// 地图点击事件
|
||||
const getRegionByRegion = (list: any) => {
|
||||
tableStore.table.params.deptIndex = list.id
|
||||
tableStore.onTableAction('search', {})
|
||||
}
|
||||
// 消除点
|
||||
const eliminate = (name: string) => {
|
||||
echartMapList.value.options.series = []
|
||||
EchartMap.value.GetEchar(name)
|
||||
}
|
||||
|
||||
// 地图数处理
|
||||
const map = (res: any) => {
|
||||
echartMapList.value = {
|
||||
title: {
|
||||
text: '高/低电压穿越'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter: function (params) {
|
||||
if (params.seriesType == 'bar3D') {
|
||||
return [params.seriesName, params.name + ':' + params.value[2] + (params.value[3] || '')].join(
|
||||
'<br />'
|
||||
)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
legend: {
|
||||
selectedMode: false
|
||||
},
|
||||
geo3D: {
|
||||
show: true,
|
||||
// name: '浙江',
|
||||
itemStyle: {
|
||||
color: getComputedStyle(document.documentElement).getPropertyValue('--el-color-primary-light-3'),
|
||||
borderWidth: 1,
|
||||
borderColor: '#fff'
|
||||
},
|
||||
emphasis: {
|
||||
label: { show: true, fontSize: 16 },
|
||||
itemStyle: {
|
||||
color: getComputedStyle(document.documentElement).getPropertyValue('--el-color-primary-light-7')
|
||||
}
|
||||
},
|
||||
viewControl: {
|
||||
alpha: 60,
|
||||
distance: 120,
|
||||
panMouseButton: 'right', //平移操作使用的鼠标按键
|
||||
rotateMouseButton: 'left' //旋转操作使用的鼠标按键
|
||||
},
|
||||
label: {
|
||||
show: true,
|
||||
color: '#000',
|
||||
fontSize: 14,
|
||||
distance: 0,
|
||||
textStyle: {
|
||||
color: '#000',
|
||||
backgroundColor: '#000'
|
||||
}
|
||||
},
|
||||
|
||||
data: [
|
||||
{ name: '低压', field: 'lowPressure', unit: '次' },
|
||||
{ name: '高压', field: 'highPressure', unit: '次' }
|
||||
]
|
||||
},
|
||||
options: {
|
||||
series: [
|
||||
{
|
||||
name: '低压',
|
||||
type: 'bar3D',
|
||||
coordinateSystem: 'geo3D',
|
||||
shading: 'lambert',
|
||||
label: {
|
||||
show: true,
|
||||
position: 'top',
|
||||
formatter: params => {
|
||||
return params.value[2]
|
||||
}
|
||||
},
|
||||
|
||||
data:
|
||||
res.length == 0
|
||||
? []
|
||||
: res.map((item: any) => {
|
||||
return {
|
||||
...item,
|
||||
value: [item.lng, item.lat, item.lowPressure || 0]
|
||||
}
|
||||
}),
|
||||
// data:[],
|
||||
barSize: 1,
|
||||
minHeight: 1,
|
||||
itemStyle: {
|
||||
color: '#77DA63'
|
||||
},
|
||||
emphasis: {
|
||||
label: { show: true }
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '高压',
|
||||
type: 'bar3D',
|
||||
coordinateSystem: 'geo3D',
|
||||
shading: 'lambert',
|
||||
label: {
|
||||
show: true,
|
||||
// position: 'top',
|
||||
formatter: params => {
|
||||
return params.value[2]
|
||||
}
|
||||
},
|
||||
|
||||
data:
|
||||
res.length == 0
|
||||
? []
|
||||
: res.map((item: any) => {
|
||||
return {
|
||||
...item,
|
||||
value: [item.lng - 0.1, item.lat, item.highPressure || 0]
|
||||
}
|
||||
}),
|
||||
// [
|
||||
|
||||
// {
|
||||
// adcode: 330400,
|
||||
// name: '大连',
|
||||
|
||||
// wcs: 10,
|
||||
// mbs: 40,
|
||||
// wcl: 100,
|
||||
// value: [121.67391, 38.947468, 40, '']
|
||||
// }
|
||||
// ],
|
||||
barSize: 1,
|
||||
minHeight: 1,
|
||||
itemStyle: {
|
||||
color: '#FFBF00'
|
||||
},
|
||||
emphasis: {
|
||||
label: { show: true }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 点击地图
|
||||
const clickMap = (e: any) => {
|
||||
tabulation(e)
|
||||
}
|
||||
// 表格数据处理
|
||||
const tabulation = (e: any) => {
|
||||
console.log()
|
||||
|
||||
loading.value = true
|
||||
voltageRideThroughEventQueryPage({
|
||||
...tableStore.table.params,
|
||||
areaId: e.data.id,
|
||||
frequencyType:
|
||||
e.seriesName == '高压'
|
||||
? triggerType.filter(item => item.code == 'Voltage_Rise')[0].id
|
||||
: triggerType.filter(item => item.code == 'Voltage_Dip')[0].id
|
||||
})
|
||||
.then(res => {
|
||||
distributionData.value = res.data
|
||||
|
||||
for (let i = 0; i < res.data.length; i++) {
|
||||
if (res.data[i].wavePath != null) {
|
||||
boxi(res.data[i])
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// res.data.forEach((item: any) => {
|
||||
// if (item.wavePath != null) {
|
||||
// boxi(item)
|
||||
// return
|
||||
// }
|
||||
// })
|
||||
// 。wavePath
|
||||
loading.value = false
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
|
||||
const formFilter = (row: any) => {
|
||||
if (row.column.property == 'advanceReason') {
|
||||
let title = ''
|
||||
reason.forEach(item => {
|
||||
if (item.id == row.row.advanceReason) {
|
||||
title = item.name
|
||||
} else if (row.row.advanceReason == null || row.row.advanceReason == '') {
|
||||
title = '/'
|
||||
}
|
||||
})
|
||||
return title
|
||||
} else {
|
||||
return row.row[row.column.property]
|
||||
}
|
||||
}
|
||||
// 查看波形数据
|
||||
const boxi = async (row: any) => {
|
||||
loading1.value = true
|
||||
wp.value = null
|
||||
await getTransientDetailById({
|
||||
eventId: row.eventId,
|
||||
sysType: 0,
|
||||
smallType: 0
|
||||
}).then(res => {
|
||||
boxoList.value = res.data
|
||||
})
|
||||
|
||||
await getMonitorEventAnalyseWave({
|
||||
id: row.eventId,
|
||||
systemType: 0,
|
||||
type: 0
|
||||
}).then(res => {
|
||||
if (res != undefined) {
|
||||
wp.value = res.data
|
||||
}
|
||||
loading1.value = false
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
tableStore.index()
|
||||
})
|
||||
const layout = mainHeight(83) as any
|
||||
const layout1 = mainHeight(93) as any
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.map {
|
||||
height: calc(v-bind('layout1.height') - 30px);
|
||||
}
|
||||
.tall {
|
||||
height: calc((v-bind('layout1.height') - 100px) / 2);
|
||||
}
|
||||
.tall1 {
|
||||
height: calc((v-bind('layout1.height') - 100px) / 2 - 50px);
|
||||
}
|
||||
|
||||
.group {
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 20px;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
:deep(.el-card__body) {
|
||||
padding: 10px;
|
||||
}
|
||||
/* 自定义 el-empty 的样式 */
|
||||
:deep(.custom-empty) {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%; /* 调整高度 */
|
||||
padding: 20px; /* 调整内边距 */
|
||||
.el-empty__image {
|
||||
display: none; /* 隐藏默认图片 */
|
||||
}
|
||||
.el-empty__description {
|
||||
font-size: 14px; /* 调整字体大小 */
|
||||
color: var(--vxe-font-color);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<div class="default-main">
|
||||
<TableHeader datePicker theCurrentTime area ref="header">
|
||||
<!-- <template v-slot:select>
|
||||
|
||||
</template> -->
|
||||
</TableHeader>
|
||||
<div v-loading="tableStore.table.loading">
|
||||
<el-row :gutter="10" class="pd10">
|
||||
<el-col :span="11" style="position: relative">
|
||||
<el-card>
|
||||
<el-radio-group
|
||||
v-model="tableStore.table.params.type"
|
||||
class="group"
|
||||
@change="tableStore.index()"
|
||||
>
|
||||
<el-radio-button label="风电场" value="1" />
|
||||
<el-radio-button label="光伏电站" value="2" />
|
||||
</el-radio-group>
|
||||
<MyEchartMap
|
||||
ref="EchartMap"
|
||||
:options="echartMapList"
|
||||
class="map"
|
||||
@eliminate="eliminate"
|
||||
@getRegionByRegion="getRegionByRegion"
|
||||
@clickMap="clickMap"
|
||||
/>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="13">
|
||||
<el-card>
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>暂降列表</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- <h3 class="mb10">暂降列表</h3> -->
|
||||
<div class="tall1">
|
||||
<vxe-table
|
||||
height="auto"
|
||||
auto-resize
|
||||
:data="distributionData"
|
||||
v-loading="loading"
|
||||
v-bind="defaultAttribute"
|
||||
>
|
||||
<vxe-column
|
||||
field="newStationName"
|
||||
title="新能源站名称"
|
||||
min-width="150px"
|
||||
show-overflow-tooltip
|
||||
></vxe-column>
|
||||
<vxe-column field="startTime" title="暂降发生时刻" min-width="180px" sortable></vxe-column>
|
||||
<vxe-column
|
||||
field="featureAmplitude"
|
||||
title="暂降(骤升)幅值(%)"
|
||||
sortable
|
||||
min-width="160px"
|
||||
></vxe-column>
|
||||
<vxe-column
|
||||
field="advanceReason"
|
||||
title="暂降原因"
|
||||
sortable
|
||||
:formatter="formFilter"
|
||||
min-width="100px"
|
||||
></vxe-column>
|
||||
<vxe-column field="severity" title="严重度" min-width="100px" sortable></vxe-column>
|
||||
<vxe-column title="操作" width="80px">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
v-if="row.wavePath != null"
|
||||
size="small"
|
||||
link
|
||||
@click="boxi(row)"
|
||||
>
|
||||
查看波形
|
||||
</el-button>
|
||||
<el-button v-else disabled size="small" link>暂无波形</el-button>
|
||||
</template>
|
||||
</vxe-column>
|
||||
</vxe-table>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card class="mt10">
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>暂降波形</span>
|
||||
</div>
|
||||
</template>
|
||||
<div class="tall" v-loading="loading1">
|
||||
<!-- <h3 class="mb10">暂降波形</h3> -->
|
||||
<div v-if="wp != null">
|
||||
<rmsboxi :value="1" :height="height" :boxoList="boxoList" :wp="wp" />
|
||||
</div>
|
||||
<el-empty v-else description="暂无数据" class="custom-empty" />
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import TableHeader from '@/components/table/header/index.vue'
|
||||
|
||||
import { useDictData } from '@/stores/dictData'
|
||||
import { defaultAttribute } from '@/components/table/defaultAttribute'
|
||||
import MyEchartMap from '@/components/echarts/MyEchartMap.vue'
|
||||
import TableStore from '@/utils/tableStore'
|
||||
import { voltageRideThroughEventQueryPage } from '@/api/event-boot/highAndLowPressure'
|
||||
import { getMonitorEventAnalyseWave, getTransientDetailById } from '@/api/event-boot/transient'
|
||||
import rmsboxi from '@/components/echarts/rmsboxi.vue'
|
||||
import { ref, onMounted, provide } from 'vue'
|
||||
import { mainHeight } from '@/utils/layout'
|
||||
import { FormItem } from 'vxe-table'
|
||||
defineOptions({
|
||||
name: 'newEnergy/highAndLowPressure'
|
||||
})
|
||||
const EchartMap = ref()
|
||||
const dictData = useDictData()
|
||||
const reason = dictData.getBasicData('Event_Reason')
|
||||
const triggerType = dictData.getBasicData('Event_Statis')
|
||||
const echartMapList: any = ref({})
|
||||
const header = ref()
|
||||
const distributionData: any = ref([])
|
||||
const loading = ref(false)
|
||||
const loading1 = ref(false)
|
||||
const boxoList = ref(null)
|
||||
const wp = ref(null)
|
||||
const tableStore = new TableStore({
|
||||
url: '/event-boot/voltageRideThrough/view',
|
||||
method: 'POST',
|
||||
column: [],
|
||||
beforeSearchFun: () => {
|
||||
tableStore.table.params.areaId = tableStore.table.params.deptIndex
|
||||
},
|
||||
loadCallback: () => {
|
||||
// 处理地图数据
|
||||
map(tableStore.table.data)
|
||||
// tabulation(tableStore.table.data)
|
||||
EchartMap.value.GetEchar(header.value.areaRef.areaName)
|
||||
if (tableStore.table.data.length > 0) {
|
||||
tabulation({ data: tableStore.table.data[0], seriesName: '高压' })
|
||||
}
|
||||
}
|
||||
})
|
||||
const height = mainHeight(200, 2).height
|
||||
provide('tableStore', tableStore)
|
||||
tableStore.table.params.type = '1'
|
||||
|
||||
// 地图点击事件
|
||||
const getRegionByRegion = (list: any) => {
|
||||
tableStore.table.params.deptIndex = list.id
|
||||
tableStore.onTableAction('search', {})
|
||||
}
|
||||
// 消除点
|
||||
const eliminate = (name: string) => {
|
||||
echartMapList.value.options.series = []
|
||||
EchartMap.value.GetEchar(name)
|
||||
}
|
||||
|
||||
// 地图数处理
|
||||
const map = (res: any) => {
|
||||
echartMapList.value = {
|
||||
title: {
|
||||
text: '高/低电压穿越'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter: function (params) {
|
||||
if (params.seriesType == 'bar3D') {
|
||||
return [params.seriesName, params.name + ':' + params.value[2] + (params.value[3] || '')].join(
|
||||
'<br />'
|
||||
)
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
legend: {
|
||||
selectedMode: false
|
||||
},
|
||||
geo3D: {
|
||||
show: true,
|
||||
// name: '浙江',
|
||||
itemStyle: {
|
||||
color: getComputedStyle(document.documentElement).getPropertyValue('--el-color-primary-light-3'),
|
||||
borderWidth: 1,
|
||||
borderColor: '#fff'
|
||||
},
|
||||
emphasis: {
|
||||
label: { show: true, fontSize: 16 },
|
||||
itemStyle: {
|
||||
color: getComputedStyle(document.documentElement).getPropertyValue('--el-color-primary-light-7')
|
||||
}
|
||||
},
|
||||
viewControl: {
|
||||
alpha: 60,
|
||||
distance: 120,
|
||||
panMouseButton: 'right', //平移操作使用的鼠标按键
|
||||
rotateMouseButton: 'left' //旋转操作使用的鼠标按键
|
||||
},
|
||||
label: {
|
||||
show: true,
|
||||
color: '#000',
|
||||
fontSize: 14,
|
||||
distance: 0,
|
||||
textStyle: {
|
||||
color: '#000',
|
||||
backgroundColor: '#000'
|
||||
}
|
||||
},
|
||||
|
||||
data: [
|
||||
{ name: '低压', field: 'lowPressure', unit: '次' },
|
||||
{ name: '高压', field: 'highPressure', unit: '次' }
|
||||
]
|
||||
},
|
||||
options: {
|
||||
series: [
|
||||
{
|
||||
name: '低压',
|
||||
type: 'bar3D',
|
||||
coordinateSystem: 'geo3D',
|
||||
shading: 'lambert',
|
||||
label: {
|
||||
show: true,
|
||||
position: 'top',
|
||||
formatter: params => {
|
||||
return params.value[2]
|
||||
}
|
||||
},
|
||||
|
||||
data:
|
||||
res.length == 0
|
||||
? []
|
||||
: res.map((item: any) => {
|
||||
return {
|
||||
...item,
|
||||
value: [item.lng, item.lat, item.lowPressure || 0]
|
||||
}
|
||||
}),
|
||||
// data:[],
|
||||
barSize: 1,
|
||||
minHeight: 1,
|
||||
itemStyle: {
|
||||
color: '#77DA63'
|
||||
},
|
||||
emphasis: {
|
||||
label: { show: true }
|
||||
}
|
||||
},
|
||||
{
|
||||
name: '高压',
|
||||
type: 'bar3D',
|
||||
coordinateSystem: 'geo3D',
|
||||
shading: 'lambert',
|
||||
label: {
|
||||
show: true,
|
||||
// position: 'top',
|
||||
formatter: params => {
|
||||
return params.value[2]
|
||||
}
|
||||
},
|
||||
|
||||
data:
|
||||
res.length == 0
|
||||
? []
|
||||
: res.map((item: any) => {
|
||||
return {
|
||||
...item,
|
||||
value: [item.lng - 0.1, item.lat, item.highPressure || 0]
|
||||
}
|
||||
}),
|
||||
// [
|
||||
|
||||
// {
|
||||
// adcode: 330400,
|
||||
// name: '大连',
|
||||
|
||||
// wcs: 10,
|
||||
// mbs: 40,
|
||||
// wcl: 100,
|
||||
// value: [121.67391, 38.947468, 40, '']
|
||||
// }
|
||||
// ],
|
||||
barSize: 1,
|
||||
minHeight: 1,
|
||||
itemStyle: {
|
||||
color: '#FFBF00'
|
||||
},
|
||||
emphasis: {
|
||||
label: { show: true }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 点击地图
|
||||
const clickMap = (e: any) => {
|
||||
tabulation(e)
|
||||
}
|
||||
// 表格数据处理
|
||||
const tabulation = (e: any) => {
|
||||
console.log()
|
||||
|
||||
loading.value = true
|
||||
voltageRideThroughEventQueryPage({
|
||||
...tableStore.table.params,
|
||||
areaId: e.data.id,
|
||||
frequencyType:
|
||||
e.seriesName == '高压'
|
||||
? triggerType.filter(item => item.code == 'Voltage_Rise')[0].id
|
||||
: triggerType.filter(item => item.code == 'Voltage_Dip')[0].id
|
||||
})
|
||||
.then(res => {
|
||||
distributionData.value = res.data
|
||||
|
||||
for (let i = 0; i < res.data.length; i++) {
|
||||
if (res.data[i].wavePath != null) {
|
||||
boxi(res.data[i])
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// res.data.forEach((item: any) => {
|
||||
// if (item.wavePath != null) {
|
||||
// boxi(item)
|
||||
// return
|
||||
// }
|
||||
// })
|
||||
// 。wavePath
|
||||
loading.value = false
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
|
||||
const formFilter = (row: any) => {
|
||||
if (row.column.property == 'advanceReason') {
|
||||
let title = ''
|
||||
reason.forEach(item => {
|
||||
if (item.id == row.row.advanceReason) {
|
||||
title = item.name
|
||||
} else if (row.row.advanceReason == null || row.row.advanceReason == '') {
|
||||
title = '/'
|
||||
}
|
||||
})
|
||||
return title
|
||||
} else {
|
||||
return row.row[row.column.property]
|
||||
}
|
||||
}
|
||||
// 查看波形数据
|
||||
const boxi = async (row: any) => {
|
||||
loading1.value = true
|
||||
wp.value = null
|
||||
await getTransientDetailById({
|
||||
eventId: row.eventId,
|
||||
sysType: 0,
|
||||
smallType: 0
|
||||
}).then(res => {
|
||||
boxoList.value = res.data
|
||||
})
|
||||
|
||||
await getMonitorEventAnalyseWave({
|
||||
id: row.eventId,
|
||||
systemType: 0,
|
||||
type: 0
|
||||
}).then(res => {
|
||||
if (res != undefined) {
|
||||
wp.value = res.data
|
||||
}
|
||||
loading1.value = false
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
tableStore.index()
|
||||
})
|
||||
const layout = mainHeight(83) as any
|
||||
const layout1 = mainHeight(93) as any
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.map {
|
||||
height: calc(v-bind('layout1.height') - 30px);
|
||||
}
|
||||
.tall {
|
||||
height: calc((v-bind('layout1.height') - 100px) / 2);
|
||||
}
|
||||
.tall1 {
|
||||
height: calc((v-bind('layout1.height') - 100px) / 2 - 50px);
|
||||
}
|
||||
|
||||
.group {
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
right: 20px;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
:deep(.el-card__body) {
|
||||
padding: 10px;
|
||||
}
|
||||
/* 自定义 el-empty 的样式 */
|
||||
:deep(.custom-empty) {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%; /* 调整高度 */
|
||||
padding: 20px; /* 调整内边距 */
|
||||
.el-empty__image {
|
||||
display: none; /* 隐藏默认图片 */
|
||||
}
|
||||
.el-empty__description {
|
||||
font-size: 14px; /* 调整字体大小 */
|
||||
color: var(--vxe-font-color);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -79,7 +79,7 @@ onMounted(() => {
|
||||
})
|
||||
|
||||
const urlKey=ref('')
|
||||
const VITE_FLAG = import.meta.env.VITE_NAME == 'jibei'
|
||||
const VITE_FLAG = false//import.meta.env.VITE_NAME == 'jibei'
|
||||
const handleNodeClick = (data: any, node: any) => {
|
||||
// console.log("🚀 ~ handleNodeClick ~ data:", data)
|
||||
dotList.value = data
|
||||
|
||||
@@ -4,7 +4,13 @@
|
||||
<TableHeader datePicker area showExport>
|
||||
<template #select>
|
||||
<el-form-item label="筛选数据">
|
||||
<el-input v-model="tableStore.table.params.searchValue" placeholder="输入关键字筛选" clearable maxlength="32" show-word-limit/>
|
||||
<el-input
|
||||
v-model="tableStore.table.params.searchValue"
|
||||
placeholder="输入关键字筛选"
|
||||
clearable
|
||||
maxlength="32"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="统计类型">
|
||||
<el-select
|
||||
@@ -127,7 +133,7 @@ const tableStore = new TableStore({
|
||||
{ field: 'lineName', title: '监测点名称', minWidth: '180' },
|
||||
{ field: 'gdName', title: '供电公司', minWidth: '120' },
|
||||
{ field: 'subName', title: '变电站', minWidth: '150' },
|
||||
{ field: 'ip', title: '网络参数' ,width:'120px' },
|
||||
{ field: 'ip', title: '网络参数', width: '120px' },
|
||||
{ field: 'scale', title: '电压等级', minWidth: '110' },
|
||||
{
|
||||
field: 'advanceType',
|
||||
@@ -137,7 +143,7 @@ const tableStore = new TableStore({
|
||||
return row.cellValue || '其他'
|
||||
}
|
||||
},
|
||||
{
|
||||
{
|
||||
field: 'eventType',
|
||||
title: '触发类型',
|
||||
minWidth: '120',
|
||||
@@ -153,7 +159,7 @@ const tableStore = new TableStore({
|
||||
return row.cellValue || '其他'
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
// {
|
||||
// field: 'severity', title: '严重度', minWidth: "80", formatter: (row: any) => {
|
||||
// return row.cellValue.toFixed(2)
|
||||
@@ -180,7 +186,8 @@ const tableStore = new TableStore({
|
||||
{ field: 'duration', title: '持续时间(s)', minWidth: '100' },
|
||||
|
||||
{
|
||||
title: '操作',fixed: 'right',
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
width: '120',
|
||||
render: 'buttons',
|
||||
buttons: [
|
||||
@@ -278,6 +285,7 @@ const download = () => {
|
||||
document.body.appendChild(link)
|
||||
link.click() //执行下载
|
||||
document.body.removeChild(link) //释放标签
|
||||
ElMessage.success('波形下载成功')
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div class="default-main online">
|
||||
|
||||
<div class="online_header">
|
||||
<TableHeader date-picker ref="tableHeaderRef">
|
||||
<template #select>
|
||||
@@ -54,6 +55,14 @@
|
||||
:value="item"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="通讯状态">
|
||||
<el-select v-model="tableStore.table.params.comFlagStatus" clearable placeholder="请选择通讯状态"
|
||||
style="width: 100%" >
|
||||
<el-option label="正常" value="1" />
|
||||
<el-option label="中断" value="0" />
|
||||
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="筛选数据">
|
||||
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输入关键字"></el-input>
|
||||
</el-form-item>
|
||||
@@ -313,6 +322,7 @@ tableStore.table.params.statisticalType = []
|
||||
tableStore.table.params.scale = []
|
||||
tableStore.table.params.manufacturer = []
|
||||
tableStore.table.params.loadType = []
|
||||
tableStore.table.params.comFlagStatus=''
|
||||
provide('tableStore', tableStore)
|
||||
const tree2List = (list: any, id?: string) => {
|
||||
//存储结果的数组
|
||||
@@ -479,13 +489,13 @@ const socket = async (form: any) => {
|
||||
await dataSocket.socketServe.send(form)
|
||||
logList.value.push({
|
||||
type: '',
|
||||
time: formatDate(new Date(), 'YYYY-MM-DD hh:mm:ss'),
|
||||
time: formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss'),
|
||||
name: '开始补召,请稍等...',
|
||||
})
|
||||
await dataSocket.socketServe.registerCallBack('message', (res: any) => {
|
||||
logList.value.push({
|
||||
type: res.code == 500 ? 'error' : '',
|
||||
time: formatDate(new Date(), 'YYYY-MM-DD hh:mm:ss'),
|
||||
time: formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss'),
|
||||
name: res.message
|
||||
})
|
||||
|
||||
|
||||
@@ -10,39 +10,81 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="筛选数据">
|
||||
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="输入关键字筛选"
|
||||
style="width: 200px" maxlength="32" show-word-limit />
|
||||
<el-input
|
||||
v-model="tableStore.table.params.searchValue"
|
||||
clearable
|
||||
placeholder="输入关键字筛选"
|
||||
style="width: 200px"
|
||||
maxlength="32"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="触发类型">
|
||||
<el-select v-model="tableStore.table.params.waveType" placeholder="请选择触发类型" clearable multiple
|
||||
collapse-tags style="width: 100%">
|
||||
<el-option v-for="item in triggeroptions" :key="item.id" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
<el-select
|
||||
v-model="tableStore.table.params.waveType"
|
||||
placeholder="请选择触发类型"
|
||||
clearable
|
||||
multiple
|
||||
collapse-tags
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in triggeroptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否有波形">
|
||||
<el-select v-model="tableStore.table.params.fileFlag" placeholder="请选择是否存在波形" clearable
|
||||
style="width: 100%">
|
||||
<el-option v-for="item in wareaoptions" :key="item.id" :label="item.label"
|
||||
:value="item.id"></el-option>
|
||||
<el-select
|
||||
v-model="tableStore.table.params.fileFlag"
|
||||
placeholder="请选择是否存在波形"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in wareaoptions"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="暂态持续时间(s)">
|
||||
<el-input v-model="tableStore.table.params.persistMin" placeholder="请输入X秒"
|
||||
onkeyup="value=value.replace(/[^\d.]/g,'')" clearable style="width: 94px"></el-input>
|
||||
<el-input
|
||||
v-model="tableStore.table.params.persistMin"
|
||||
placeholder="请输入X秒"
|
||||
onkeyup="value=value.replace(/[^\d.]/g,'')"
|
||||
clearable
|
||||
style="width: 94px"
|
||||
></el-input>
|
||||
<el-tag style="margin-left: 5px">< 时间数 <</el-tag>
|
||||
<el-input v-model="tableStore.table.params.persistMax" placeholder="请输入X秒"
|
||||
onkeyup="value=value.replace(/[^\d.]/g,'')" clearable
|
||||
style="margin-left: 5px; width: 94px"></el-input>
|
||||
<el-input
|
||||
v-model="tableStore.table.params.persistMax"
|
||||
placeholder="请输入X秒"
|
||||
onkeyup="value=value.replace(/[^\d.]/g,'')"
|
||||
clearable
|
||||
style="margin-left: 5px; width: 94px"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="事件严重度">
|
||||
<el-input v-model="tableStore.table.params.severityMin" placeholder="请输入正负数"
|
||||
onkeyup="value=value.replace(/[^\d\.-]/g,'')" clearable style="width: 94px"></el-input>
|
||||
<el-input
|
||||
v-model="tableStore.table.params.severityMin"
|
||||
placeholder="请输入正负数"
|
||||
onkeyup="value=value.replace(/[^\d\.-]/g,'')"
|
||||
clearable
|
||||
style="width: 94px"
|
||||
></el-input>
|
||||
<el-tag style="margin-left: 5px">< 严重度 <</el-tag>
|
||||
<el-input v-model="tableStore.table.params.severityMax" placeholder="请输入正负数"
|
||||
onkeyup="value=value.replace(/[^\d\.-]/g,'')" clearable
|
||||
style="margin-left: 5px; width: 94px"></el-input>
|
||||
<el-input
|
||||
v-model="tableStore.table.params.severityMax"
|
||||
placeholder="请输入正负数"
|
||||
onkeyup="value=value.replace(/[^\d\.-]/g,'')"
|
||||
clearable
|
||||
style="margin-left: 5px; width: 94px"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item label="触发类型:">
|
||||
@@ -53,23 +95,52 @@
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="暂态原因">
|
||||
<el-select v-model="tableStore.table.params.eventReason" placeholder="请选择暂态原因" clearable
|
||||
multiple collapse-tags style="width: 100%">
|
||||
<el-option v-for="item in reasonoptions" :key="item.id" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
<el-select
|
||||
v-model="tableStore.table.params.eventReason"
|
||||
placeholder="请选择暂态原因"
|
||||
clearable
|
||||
multiple
|
||||
collapse-tags
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in reasonoptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="暂态核实原因">
|
||||
<el-select v-model="tableStore.table.params.verifyReason" placeholder="请选择暂态核实原因" clearable
|
||||
multiple collapse-tags collapse-tags-tooltip>
|
||||
<el-option v-for="item in verifyReasonList" :key="item.id" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
<el-select
|
||||
v-model="tableStore.table.params.verifyReason"
|
||||
placeholder="请选择暂态核实原因"
|
||||
clearable
|
||||
multiple
|
||||
collapse-tags
|
||||
collapse-tags-tooltip
|
||||
>
|
||||
<el-option
|
||||
v-for="item in verifyReasonList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="变电站(监测点)">
|
||||
<el-cascader v-model="tableStore.table.params.lineIds" :options="options" :props="defaultProps"
|
||||
collapse-tags-tooltip style="width: 257px" filterable clearable collapse-tags
|
||||
placeholder="请选择变电站(监测点)" :show-all-levels="true" />
|
||||
<el-cascader
|
||||
v-model="tableStore.table.params.lineIds"
|
||||
:options="options"
|
||||
:props="defaultProps"
|
||||
collapse-tags-tooltip
|
||||
style="width: 257px"
|
||||
filterable
|
||||
clearable
|
||||
collapse-tags
|
||||
placeholder="请选择变电站(监测点)"
|
||||
:show-all-levels="true"
|
||||
/>
|
||||
</el-form-item>
|
||||
</template>
|
||||
<template #operation>
|
||||
@@ -146,33 +217,17 @@ const tableStore = new TableStore({
|
||||
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
|
||||
}
|
||||
},
|
||||
{ field: 'startTime', title: '暂降发生时刻', minWidth: '200' },
|
||||
{ field: 'gdName', title: '供电公司', minWidth: '100' },
|
||||
{ field: 'subName', title: '变电站', minWidth: '200' },
|
||||
{ field: 'ip', title: '网络参数', width: '120px' },
|
||||
{ field: 'lineName', title: '监测点', minWidth: '100' },
|
||||
{ field: 'scale', title: '电压等级(kV)', minWidth: '120' },
|
||||
{
|
||||
field: 'verifyReason',
|
||||
title: '暂态核实原因',
|
||||
minWidth: '120',
|
||||
formatter: function (row) {
|
||||
return verifyReasonList.filter(item => item.id == row.cellValue)[0]?.name || '/' //row.cellValue ? row.cellValue : '/'
|
||||
}
|
||||
},
|
||||
// {
|
||||
// field: 'verifyReasonDetail', title: '暂降核实原因详情', minWidth: '200', formatter: function (row) {
|
||||
// return row.cellValue ? row.cellValue : '/'
|
||||
// }
|
||||
// },
|
||||
{ field: 'startTime', title: '暂降发生时刻', minWidth: '200', sortable: true },
|
||||
{
|
||||
field: 'featureAmplitude',
|
||||
title: '暂降(骤升)幅值(%)',
|
||||
minWidth: '130',
|
||||
minWidth: '160',
|
||||
sortable: true,
|
||||
formatter: (row: any) => {
|
||||
return Math.floor(row.cellValue * 10000) / 100
|
||||
}
|
||||
},
|
||||
{ field: 'duration', title: '持续时间(s)', minWidth: 120, sortable: true },
|
||||
{
|
||||
field: 'eventType',
|
||||
title: '触发类型',
|
||||
@@ -182,17 +237,32 @@ const tableStore = new TableStore({
|
||||
return triggeroptions.filter(item => item.id == row.eventType)[0]?.name
|
||||
}
|
||||
},
|
||||
// { field: 'advanceType', title: '触发类型', minWidth: '100', },
|
||||
{ field: 'advanceReason', title: '暂态原因', minWidth: '100' },
|
||||
{
|
||||
field: 'depth',
|
||||
title: '暂降深度(%)',
|
||||
minWidth: '100',
|
||||
minWidth: 120,
|
||||
|
||||
formatter: ({ row }: any) =>
|
||||
row.featureAmplitude < 1 ? 100 - (row.featureAmplitude * 100).toFixed(0) : '/'
|
||||
},
|
||||
|
||||
{ field: 'duration', title: '持续时间(s)', minWidth: '100' },
|
||||
{ field: 'advanceReason', title: '暂态原因', minWidth: '100' },
|
||||
{
|
||||
field: 'verifyReason',
|
||||
title: '暂态核实原因',
|
||||
minWidth: '120',
|
||||
formatter: function (row) {
|
||||
return verifyReasonList.filter(item => item.id == row.cellValue)[0]?.name || '/' //row.cellValue ? row.cellValue : '/'
|
||||
}
|
||||
},
|
||||
{ field: 'gdName', title: '供电公司', minWidth: '100' },
|
||||
{ field: 'subName', title: '变电站', minWidth: '200' },
|
||||
{ field: 'lineName', title: '监测点', minWidth: '100' },
|
||||
{ field: 'ip', title: '网络参数', width: '120px' },
|
||||
{ field: 'scale', title: '电压等级(kV)', minWidth: '130', sortable: true },
|
||||
|
||||
// { field: 'advanceType', title: '触发类型', minWidth: '100', },
|
||||
|
||||
{
|
||||
field: 'severity',
|
||||
title: '严重度',
|
||||
@@ -201,7 +271,8 @@ const tableStore = new TableStore({
|
||||
},
|
||||
|
||||
{
|
||||
title: '操作', fixed: 'right',
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
width: '150',
|
||||
render: 'buttons',
|
||||
|
||||
@@ -259,7 +330,7 @@ const tableStore = new TableStore({
|
||||
}
|
||||
],
|
||||
|
||||
loadCallback: () => { }
|
||||
loadCallback: () => {}
|
||||
})
|
||||
const options = ref([])
|
||||
const defaultProps = {
|
||||
@@ -353,6 +424,7 @@ const download = () => {
|
||||
document.body.appendChild(link)
|
||||
link.click() //执行下载
|
||||
document.body.removeChild(link) //释放标签
|
||||
ElMessage.success('波形下载成功')
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
<div v-show="view">
|
||||
<TableHeader datePicker :showReset="false" showExport ref="TableHeaderRef">
|
||||
<template #select>
|
||||
<!-- <el-form-item label="筛选数据">-->
|
||||
<!-- <el-input v-model="tableStore.table.params.searchValue" clearable placeholder="输入关键字筛选" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="筛选数据">-->
|
||||
<!-- <el-input v-model="tableStore.table.params.searchValue" clearable placeholder="输入关键字筛选" />-->
|
||||
<!-- </el-form-item>-->
|
||||
</template>
|
||||
<template #operation>
|
||||
<el-button icon="el-icon-Tickets" type="primary" @click="analysis1">分析记录管理</el-button>
|
||||
@@ -29,7 +29,7 @@
|
||||
</template>
|
||||
</vxe-column>
|
||||
</vxe-table>
|
||||
<el-pagination
|
||||
<el-pagination
|
||||
class="mt10"
|
||||
:currentPage="form.pageNum"
|
||||
:page-size="form.pageSize"
|
||||
@@ -39,7 +39,7 @@
|
||||
:total="total"
|
||||
@size-change="onTableSizeChange"
|
||||
@current-change="onTableCurrentChange"
|
||||
></el-pagination>
|
||||
></el-pagination>
|
||||
</el-dialog>
|
||||
</div>
|
||||
<div :style="{ height: pageHeight.height }" style="padding: 10px; overflow: hidden" v-if="!view">
|
||||
@@ -70,7 +70,7 @@ const loading = ref(false)
|
||||
const view = ref(true)
|
||||
const view2 = ref(false)
|
||||
const TableHeaderRef = ref()
|
||||
const waveFormRef = ref()
|
||||
const waveFormRef = ref()
|
||||
const tableStore = new TableStore({
|
||||
url: '/advance-boot/process/querySagEventsPage',
|
||||
method: 'POST',
|
||||
@@ -83,19 +83,23 @@ const tableStore = new TableStore({
|
||||
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
|
||||
}
|
||||
},
|
||||
{ field: 'startTime', title: '发生时间' },
|
||||
{ field: 'duration', title: '持续时间(s)' },
|
||||
{ field: 'startTime', title: '暂降发生时刻', sortable: true, minWidth: 200 },
|
||||
{
|
||||
field: 'featureAmplitude',
|
||||
title: '暂降(骤升)幅值(%)'
|
||||
title: '暂降(骤升)幅值(%)',
|
||||
sortable: true,
|
||||
minWidth: 160
|
||||
},
|
||||
{ field: 'gdName', title: '供电公司' },
|
||||
{ field: 'subName', title: '变电站' },
|
||||
{ field: 'lineName', title: '监测点' },
|
||||
{ field: 'duration', title: '持续时间(s)', sortable: true, minWidth: 120 },
|
||||
{ field: 'gdName', title: '供电公司', minWidth: 140 },
|
||||
{ field: 'subName', title: '变电站', minWidth: 140 },
|
||||
{ field: 'lineName', title: '监测点', minWidth: 140 },
|
||||
|
||||
{
|
||||
field: 'dealFlag',
|
||||
title: '暂降特征幅值计算',
|
||||
render: 'tag',
|
||||
minWidth: 160,
|
||||
custom: {
|
||||
0: 'warning',
|
||||
1: 'success',
|
||||
@@ -115,6 +119,7 @@ const tableStore = new TableStore({
|
||||
field: 'fileFlag',
|
||||
title: '录波文件',
|
||||
render: 'tag',
|
||||
minWidth: 140,
|
||||
custom: {
|
||||
0: 'warning',
|
||||
1: 'success'
|
||||
@@ -125,7 +130,8 @@ const tableStore = new TableStore({
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '操作',fixed: 'right',
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
width: '120',
|
||||
render: 'buttons',
|
||||
buttons: [
|
||||
@@ -140,9 +146,9 @@ const tableStore = new TableStore({
|
||||
render: 'basicButton',
|
||||
click: async row => {
|
||||
view.value = false
|
||||
setTimeout(() => {
|
||||
waveFormRef.value.open(row)
|
||||
},100)
|
||||
setTimeout(() => {
|
||||
waveFormRef.value.open(row)
|
||||
}, 100)
|
||||
// row.loading = true
|
||||
// boxoList.value = row
|
||||
// await getMonitorEventAnalyseWave({ id: row.eventId, systemType: 0 })
|
||||
@@ -173,7 +179,7 @@ const tableStore = new TableStore({
|
||||
}
|
||||
],
|
||||
|
||||
loadCallback: () => { }
|
||||
loadCallback: () => {}
|
||||
})
|
||||
tableStore.table.params.searchValue = ''
|
||||
const bxactiveName = ref('ssbx')
|
||||
@@ -190,25 +196,21 @@ provide('tableStore', tableStore)
|
||||
onMounted(() => {
|
||||
TableHeaderRef.value.setTheDate(1)
|
||||
nextTick(() => {
|
||||
|
||||
// tableStore.index()
|
||||
TableHeaderRef.value.onComSearch()
|
||||
|
||||
})
|
||||
})
|
||||
|
||||
// 分页
|
||||
const onTableSizeChange = (val: number) => {
|
||||
form.value.pageSize = val
|
||||
form.value.pageNum = 1 // 改变每页条数时回到第一页
|
||||
loadAnalysisData() // 重新加载数据
|
||||
|
||||
form.value.pageSize = val
|
||||
form.value.pageNum = 1 // 改变每页条数时回到第一页
|
||||
loadAnalysisData() // 重新加载数据
|
||||
}
|
||||
|
||||
const onTableCurrentChange = (val: number) => {
|
||||
form.value.pageNum = val
|
||||
loadAnalysisData() // 重新加载数据
|
||||
|
||||
loadAnalysisData() // 重新加载数据
|
||||
}
|
||||
|
||||
// 封装数据加载逻辑
|
||||
@@ -230,13 +232,12 @@ const loadAnalysisData = async () => {
|
||||
|
||||
//分析记录管理
|
||||
const analysis1 = async () => {
|
||||
// 初始化分页参数
|
||||
// 初始化分页参数
|
||||
form.value.pageNum = 1
|
||||
await loadAnalysisData()
|
||||
dialogAnalysis.value = true
|
||||
}
|
||||
|
||||
|
||||
// 启动关联分析
|
||||
const firing = () => {
|
||||
processEvents({
|
||||
@@ -257,7 +258,7 @@ const details = (row: any) => {
|
||||
type: 'success',
|
||||
message: res.message
|
||||
})
|
||||
// 重新加载当前页的数据
|
||||
// 重新加载当前页的数据
|
||||
loadAnalysisData()
|
||||
})
|
||||
}
|
||||
@@ -266,6 +267,4 @@ const backbxlb = () => {
|
||||
view.value = true
|
||||
view2.value = false
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
@@ -3,7 +3,13 @@
|
||||
<TableHeader datePicker ref="TableHeaderRef">
|
||||
<template #select>
|
||||
<el-form-item label="筛选数据">
|
||||
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="输入事件关联分析描述" maxlength="32" show-word-limit/>
|
||||
<el-input
|
||||
v-model="tableStore.table.params.searchValue"
|
||||
clearable
|
||||
placeholder="输入事件关联分析描述"
|
||||
maxlength="32"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
</template>
|
||||
<template #operation>
|
||||
@@ -35,25 +41,18 @@
|
||||
</vxe-table-column>
|
||||
<vxe-table-column
|
||||
field="startTime"
|
||||
title="发生时间"
|
||||
title="暂降发生时刻"
|
||||
align="center"
|
||||
sortable
|
||||
width="200"
|
||||
:show-overflow="true"
|
||||
></vxe-table-column>
|
||||
<vxe-table-column field="gdName" title="供电公司" align="center"></vxe-table-column>
|
||||
<vxe-table-column
|
||||
field="subName"
|
||||
:show-overflow="true"
|
||||
title="变电站"
|
||||
align="center"
|
||||
></vxe-table-column>
|
||||
<vxe-table-column field="lineName" title="监测点" align="center"></vxe-table-column>
|
||||
<vxe-table-column field="voltageId" title="电压等级(kV)" align="center"></vxe-table-column>
|
||||
<vxe-table-column field="featureAmplitude" title="暂降(骤升)幅值(%)" align="center" width="140">
|
||||
<vxe-table-column field="featureAmplitude" title="暂降(骤升)幅值(%)" sortable align="center" width="160">
|
||||
<template #default="{ row }">
|
||||
<span>{{ (row.featureAmplitude * 100).toFixed(2) }}</span>
|
||||
</template>
|
||||
</vxe-table-column>
|
||||
<vxe-table-column field="duration" title="持续时间(s)" align="center" width="120"></vxe-table-column>
|
||||
<vxe-table-column field="duration" title="持续时间(s)" sortable align="center" width="120"></vxe-table-column>
|
||||
<vxe-table-column
|
||||
field="advanceType"
|
||||
title="触发类型"
|
||||
@@ -68,6 +67,15 @@
|
||||
width="120"
|
||||
:formatter="formFilter"
|
||||
></vxe-table-column>
|
||||
<vxe-table-column field="gdName" title="供电公司" align="center"></vxe-table-column>
|
||||
<vxe-table-column
|
||||
field="subName"
|
||||
:show-overflow="true"
|
||||
title="变电站"
|
||||
align="center"
|
||||
></vxe-table-column>
|
||||
<vxe-table-column field="lineName" title="监测点" align="center"></vxe-table-column>
|
||||
<vxe-table-column field="voltageId" title="电压等级(kV)" align="center"></vxe-table-column>
|
||||
</vxe-table>
|
||||
<el-pagination
|
||||
class="mt10"
|
||||
@@ -131,7 +139,8 @@ const tableStore = new TableStore({
|
||||
title: '事件关联分析描述'
|
||||
},
|
||||
{
|
||||
title: '操作',fixed: 'right',
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
width: '200',
|
||||
render: 'buttons',
|
||||
buttons: [
|
||||
@@ -176,7 +185,6 @@ const bxcontrast = () => {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 波形分析
|
||||
const source = () => {
|
||||
queryEventDetailByAssId(form.value).then(res => {
|
||||
@@ -245,14 +253,14 @@ const exportEvent = () => {
|
||||
}
|
||||
// 导出波形分析
|
||||
const positioningexport = () => {
|
||||
const selectedRecords = positioningtableRef.value.getCheckboxRecords();
|
||||
|
||||
const selectedRecords = positioningtableRef.value.getCheckboxRecords()
|
||||
|
||||
if (selectedRecords.length === 0) {
|
||||
ElMessage({
|
||||
message: '请先选择要导出的数据!',
|
||||
type: 'warning'
|
||||
});
|
||||
return;
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
positioningtableRef.value.exportData({
|
||||
|
||||
@@ -27,22 +27,23 @@
|
||||
<span>{{ (form.pageNum - 1) * form.pageSize + row.rowIndex + 1 }}</span>
|
||||
</template>
|
||||
</vxe-table-column>
|
||||
<vxe-table-column field="startTime" title="发生时间" align="center"
|
||||
<vxe-table-column field="startTime" title="暂降发生时刻" align="center" sortable width="200"
|
||||
:show-overflow="true"></vxe-table-column>
|
||||
<vxe-table-column field="gdName" title="供电公司" align="center"></vxe-table-column>
|
||||
<vxe-table-column field="subName" :show-overflow="true" title="变电站" align="center"></vxe-table-column>
|
||||
<vxe-table-column field="lineName" title="监测点" align="center"></vxe-table-column>
|
||||
<vxe-table-column field="voltageId" title="电压等级(kV)" align="center"></vxe-table-column>
|
||||
<vxe-table-column field="featureAmplitude" title="暂降(骤升)幅值(%)" align="center" width="140">
|
||||
<vxe-table-column field="featureAmplitude" title="暂降(骤升)幅值(%)" sortable align="center" width="160">
|
||||
<template #default="{ row }">
|
||||
<span>{{ (row.featureAmplitude * 100).toFixed(2) }}</span>
|
||||
</template>
|
||||
</vxe-table-column>
|
||||
<vxe-table-column field="duration" title="持续时间(s)" align="center" width="120"></vxe-table-column>
|
||||
<vxe-table-column field="duration" title="持续时间(s)" align="center" sortable width="120"></vxe-table-column>
|
||||
<vxe-table-column field="advanceType" title="触发类型" align="center" width="120"
|
||||
:formatter="formFilter"></vxe-table-column>
|
||||
<vxe-table-column field="advanceReason" title="暂降原因" align="center" width="120"
|
||||
:formatter="formFilter"></vxe-table-column>
|
||||
<vxe-table-column field="gdName" title="供电公司" align="center"></vxe-table-column>
|
||||
<vxe-table-column field="subName" :show-overflow="true" title="变电站" align="center"></vxe-table-column>
|
||||
<vxe-table-column field="lineName" title="监测点" align="center"></vxe-table-column>
|
||||
<vxe-table-column field="voltageId" title="电压等级(kV)" align="center"></vxe-table-column>
|
||||
|
||||
</vxe-table>
|
||||
<el-pagination class="mt10" :currentPage="form.pageNum" :page-size="form.pageSize"
|
||||
:page-sizes="[10, 20, 50, 100]" background :layout="'sizes,total, ->, prev, pager, next, jumper'"
|
||||
|
||||
@@ -56,37 +56,40 @@ const tableStore = new TableStore({
|
||||
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
|
||||
}
|
||||
},
|
||||
{ title: '变电站名称', field: 'subName', minWidth: '140' },
|
||||
{ title: '监测点名称', field: 'lineName', minWidth: '130' },
|
||||
{ title: '网络参数', field: 'ip', width: '120px' },
|
||||
{ title: '电压等级(kV)', field: 'voltageScale', width: '120' },
|
||||
{ title: '暂降发生时刻', field: 'startTime', width: '200' },
|
||||
// { title: '触发类型', field: 'advanceType', minWidth: '130' },
|
||||
{ title: '暂降原因', field: 'advanceReason', minWidth: '130' },
|
||||
{
|
||||
title: '触发类型',
|
||||
field: 'eventType',
|
||||
minWidth: '80',
|
||||
formatter: (row: any) => {
|
||||
return eventTypeOptions.find(item => item.id === row.cellValue)?.name || '/'
|
||||
}
|
||||
},
|
||||
{ title: '暂降发生时刻', field: 'startTime', width: '200', sortable: true, },
|
||||
{
|
||||
title: '暂降(骤升)幅值(%)',
|
||||
field: 'featureAmplitude',
|
||||
minWidth: '140',
|
||||
|
||||
minWidth: '160',
|
||||
sortable: true,
|
||||
formatter: (row: any) => {
|
||||
return Math.floor(row.cellValue * 10000) / 100
|
||||
}
|
||||
},
|
||||
{ title: '持续时间(s)', field: 'duration', minWidth: '100' },
|
||||
{ title: '持续时间(s)', field: 'duration', minWidth: '120' , sortable: true, },
|
||||
{
|
||||
title: '触发类型',
|
||||
field: 'eventType',
|
||||
minWidth: '100',
|
||||
formatter: (row: any) => {
|
||||
return eventTypeOptions.find(item => item.id === row.cellValue)?.name || '/'
|
||||
}
|
||||
},
|
||||
{ title: '暂降原因', field: 'advanceReason', minWidth: '130' },
|
||||
{ title: '变电站名称', field: 'subName', minWidth: '140' },
|
||||
{ title: '监测点名称', field: 'lineName', minWidth: '130' },
|
||||
{ title: '网络参数', field: 'ip', width: '120px' },
|
||||
{ title: '电压等级(kV)', field: 'voltageScale', width: '120' },
|
||||
|
||||
// { title: '触发类型', field: 'advanceType', minWidth: '130' },
|
||||
|
||||
// { title: '严重度', field: 'severity', minWidth: '80' },
|
||||
{
|
||||
title: '操作',fixed: 'right',
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
width: '180',
|
||||
render: 'buttons',
|
||||
|
||||
|
||||
buttons: [
|
||||
{
|
||||
name: 'edit',
|
||||
@@ -127,7 +130,6 @@ const tableStore = new TableStore({
|
||||
],
|
||||
beforeSearchFun: () => {
|
||||
tableStore.table.params.lineId = monitoringPoint.state.lineId
|
||||
|
||||
},
|
||||
loadCallback: () => {}
|
||||
})
|
||||
@@ -174,6 +176,7 @@ const download = () => {
|
||||
document.body.appendChild(link)
|
||||
link.click() //执行下载
|
||||
document.body.removeChild(link) //释放标签
|
||||
ElMessage.success('波形下载成功')
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -3,21 +3,21 @@
|
||||
<div style="height: 40vh">
|
||||
<vxe-table v-loading="loading" height="auto" auto-resize :data="tableData" v-bind="defaultAttribute">
|
||||
<vxe-column type="seq" title="序号" width="80px"></vxe-column>
|
||||
<vxe-column field="startTime" title="发生时间" width="180"></vxe-column>
|
||||
<vxe-column field="duration" title="持续时间(s)" width="100"></vxe-column>
|
||||
<vxe-column field="gdName" title="供电公司" min-width="150"></vxe-column>
|
||||
<vxe-column field="subName" title="变电站" min-width="150"></vxe-column>
|
||||
<vxe-column field="lineName" title="监测点" min-width="150"></vxe-column>
|
||||
<vxe-column field="startTime" title="暂降发生时刻" width="200" sortable></vxe-column>
|
||||
<vxe-column field="featureAmplitude" title="暂降(骤升)幅值(%)" width="160" sortable>
|
||||
<template #default="{ row }">
|
||||
{{ (row.featureAmplitude * 100).toFixed(2) }}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="duration" title="持续时间(s)" width="120" sortable></vxe-column>
|
||||
<vxe-column field="advanceType" title="触发类型" width="100">
|
||||
<template #default="{ row }">
|
||||
{{ type.find(item => item.id === row.advanceType)?.name }}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="featureAmplitude" title="暂降(骤升)幅值(%)" width="150">
|
||||
<template #default="{ row }">
|
||||
{{ (row.featureAmplitude * 100).toFixed(2) }}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="gdName" title="供电公司" min-width="140"></vxe-column>
|
||||
<vxe-column field="subName" title="变电站" min-width="140"></vxe-column>
|
||||
<vxe-column field="lineName" title="监测点名称" min-width="140"></vxe-column>
|
||||
</vxe-table>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
@@ -23,14 +23,15 @@
|
||||
<div style="flex: 1; overflow: hidden">
|
||||
<vxe-table height="auto" auto-resize :data="tableData" v-bind="defaultAttribute">
|
||||
<vxe-column type="seq" title="序号" width="70px"></vxe-column>
|
||||
<vxe-column field="startTime" title="发生时刻" width="200"></vxe-column>
|
||||
<vxe-column field="lineName" title="监测点" width="120"></vxe-column>
|
||||
<vxe-column field="featureAmplitude" title="暂降(骤升)幅值(%)">
|
||||
<vxe-column field="startTime" title="暂降发生时刻" width="200" sortable></vxe-column>
|
||||
<vxe-column field="featureAmplitude" title="暂降(骤升)幅值(%)" width="160" sortable>
|
||||
<template #default="{ row }">
|
||||
{{ row.featureAmplitude.toFixed(2) }}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="duration" title="持续时间(s)"></vxe-column>
|
||||
<vxe-column field="duration" title="持续时间(s)" sortable width="120"></vxe-column>
|
||||
<vxe-column field="lineName" title="监测点" width="120"></vxe-column>
|
||||
|
||||
</vxe-table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="default-main">
|
||||
<TableHeader date-picker area >
|
||||
<TableHeader date-picker area>
|
||||
<template v-slot:select>
|
||||
<el-form-item label="统计类型">
|
||||
<el-radio-group v-model="tableStore.table.params.comFlag">
|
||||
@@ -48,10 +48,12 @@
|
||||
</el-form-item>
|
||||
</template>
|
||||
<template #operation>
|
||||
<el-button icon="el-icon-Download" type="primary" @click="exportEvent" :loading="loading">导出</el-button>
|
||||
<el-button icon="el-icon-Download" type="primary" @click="exportEvent" :loading="loading">
|
||||
报告生成
|
||||
</el-button>
|
||||
</template>
|
||||
</TableHeader>
|
||||
<Table ref="tableRef" />
|
||||
<Table ref="tableRef" :checkboxConfig="checkboxConfig" />
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="tsx">
|
||||
@@ -64,7 +66,7 @@ import { getEventReport } from '@/api/event-boot/report'
|
||||
import { ElMessage } from 'element-plus'
|
||||
|
||||
defineOptions({
|
||||
name: 'Operationmanagement/terminalmanagement'
|
||||
name: 'TransientReport/eventreports'
|
||||
})
|
||||
const dictData = useDictData()
|
||||
const triggerType = dictData.getBasicData('Event_Statis')
|
||||
@@ -82,6 +84,7 @@ const tableStore = new TableStore({
|
||||
url: '/event-boot/report/getEventReport',
|
||||
method: 'POST',
|
||||
column: [
|
||||
{ width: '60', type: 'checkbox' },
|
||||
{
|
||||
title: '序号',
|
||||
|
||||
@@ -93,19 +96,34 @@ const tableStore = new TableStore({
|
||||
},
|
||||
{
|
||||
field: 'startTime',
|
||||
title: '发生时刻',
|
||||
title: '暂降发生时刻',
|
||||
width: '180',
|
||||
sortable: true,
|
||||
formatter: (row: any) => {
|
||||
return row.cellValue ? row.cellValue.replace('T', ' ') : '/'
|
||||
}
|
||||
},
|
||||
{ field: 'gdName', title: '供电公司', minWidth: '120' },
|
||||
{ field: 'subName', title: '变电站', minWidth: '120' },
|
||||
{ field: 'ip', title: '网络参数', width: '120px' },
|
||||
{ field: 'lineName', title: '监测点', minWidth: '120' },
|
||||
{
|
||||
field: 'featureAmplitude',
|
||||
title: '暂降(骤升)幅值(%)',
|
||||
width: '160',
|
||||
sortable: true,
|
||||
formatter: (row: any) => {
|
||||
// return (row.cellValue * 100).toFixed(0)
|
||||
|
||||
return Math.floor(row.cellValue * 10000) / 100
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'duration',
|
||||
title: '持续时间(s)',
|
||||
width: '120',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
field: 'eventType',
|
||||
title: '触发类型',minWidth: '100' ,
|
||||
title: '触发类型',
|
||||
minWidth: '100',
|
||||
formatter: (row: any) => {
|
||||
return triggerType.filter(item => item.id === row.cellValue)[0].name
|
||||
}
|
||||
@@ -113,33 +131,30 @@ const tableStore = new TableStore({
|
||||
{
|
||||
field: 'advanceType',
|
||||
title: '暂态类型',
|
||||
minWidth: '100'
|
||||
minWidth: '100',
|
||||
formatter: (row: any) => {
|
||||
return row.cellValue ? row.cellValue : '/'
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'advanceReason',
|
||||
title: '暂态原因',
|
||||
minWidth: '100'
|
||||
minWidth: '100',
|
||||
formatter: (row: any) => {
|
||||
return row.cellValue ? row.cellValue : '/'
|
||||
}
|
||||
},
|
||||
{ field: 'gdName', title: '供电公司', minWidth: '120' },
|
||||
{ field: 'subName', title: '变电站', minWidth: '120' },
|
||||
{ field: 'lineName', title: '监测点', minWidth: '120' },
|
||||
{ field: 'ip', title: '网络参数', width: '120px' },
|
||||
|
||||
{
|
||||
field: 'voltageScale',
|
||||
title: '电压等级',
|
||||
minWidth: '100'
|
||||
},
|
||||
{
|
||||
field: 'featureAmplitude',
|
||||
title: '暂降(骤升)幅值(%)',
|
||||
width: '140',
|
||||
formatter: (row: any) => {
|
||||
// return (row.cellValue * 100).toFixed(0)
|
||||
|
||||
return Math.floor(row.cellValue * 10000) / 100
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'duration',
|
||||
title: '持续时间(s)',
|
||||
width: '100'
|
||||
}
|
||||
|
||||
// { field: 'severity', title: '严重度' }
|
||||
]
|
||||
})
|
||||
@@ -156,7 +171,11 @@ tableStore.table.params.statisticalType = dictData.getBasicData('Statistical_Typ
|
||||
'Voltage_Level',
|
||||
'Load_Type'
|
||||
])[0]
|
||||
|
||||
const checkboxConfig = reactive<VxeTablePropTypes.CheckboxConfig<any>>({
|
||||
checkMethod: ({ row }) => {
|
||||
return row.fileFlag === 1
|
||||
}
|
||||
})
|
||||
provide('tableStore', tableStore)
|
||||
|
||||
onMounted(() => {
|
||||
@@ -178,15 +197,17 @@ const exportEvent = () => {
|
||||
// }
|
||||
// })
|
||||
// })
|
||||
|
||||
|
||||
const ids = tableStore.table.data.map((item: any) => item.eventId);
|
||||
if (!tableStore.table.selection.length) {
|
||||
ElMessage.warning('请选择数据')
|
||||
return
|
||||
}
|
||||
const ids = tableStore.table.selection.map((item: any) => item.eventId)
|
||||
loading.value = true
|
||||
|
||||
ElMessage('生成报告中,请稍等!')
|
||||
getEventReport(ids)
|
||||
.then((res: any) => {
|
||||
if (res == undefined) {
|
||||
if (res == undefined) {
|
||||
loading.value = false
|
||||
return
|
||||
}
|
||||
@@ -197,14 +218,14 @@ const exportEvent = () => {
|
||||
const url = window.URL.createObjectURL(blob)
|
||||
const link = document.createElement('a') // 创建a标签
|
||||
link.href = url
|
||||
link.download = '事件报告' // 设置下载的文件名
|
||||
link.download = '事件报告' // 设置下载的文件名
|
||||
document.body.appendChild(link)
|
||||
link.click() //执行下载
|
||||
document.body.removeChild(link)
|
||||
loading.value = false
|
||||
}) .catch(() => {
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false
|
||||
})
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -56,19 +56,20 @@ const list = ref([
|
||||
)
|
||||
}
|
||||
},
|
||||
{ field: 'startTime', title: '暂态事件发生时刻', width: '200' },
|
||||
{ field: 'gdName', title: '供电公司' },
|
||||
{ field: 'subName', title: '变电站' },
|
||||
{ field: 'lineName', title: '监测点' },
|
||||
{ field: 'voltageScale', title: '监测点电压等级' },
|
||||
{ field: 'loadType', title: '干扰源类型' },
|
||||
{ field: 'startTime', title: '暂态发生时刻', width: '200',sortable: true, },
|
||||
{
|
||||
field: 'featureAmplitude',
|
||||
title: '暂降(骤升)幅值(%)',
|
||||
title: '暂降(骤升)幅值(%)',sortable: true,width: '160',
|
||||
formatter: ({ row }: any) => (row.featureAmplitude * 100).toFixed(2)
|
||||
},
|
||||
{ field: 'duration', title: '持续时间(s)' },
|
||||
{ field: 'severity', title: '暂态事件严重度' }
|
||||
{ field: 'duration', title: '持续时间(s)',sortable: true,width: '120', },
|
||||
{ field: 'gdName', title: '供电公司' ,minWidth: '120'},
|
||||
{ field: 'subName', title: '变电站' ,minWidth: '120'},
|
||||
{ field: 'lineName', title: '监测点' ,minWidth: '120'},
|
||||
{ field: 'voltageScale', title: '监测点电压等级' ,minWidth: '120'},
|
||||
{ field: 'loadType', title: '干扰源类型' ,minWidth: '120'},
|
||||
|
||||
{ field: 'severity', title: '暂态事件严重度' ,minWidth: '120'}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -86,7 +87,16 @@ const list = ref([
|
||||
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
|
||||
}
|
||||
},
|
||||
{ field: 'startTime', title: '暂降事件发生时刻', width: '200' },
|
||||
{ field: 'startTime', title: '暂降发生时刻', width: '200',sortable: true, },
|
||||
{
|
||||
field: 'featureAmplitude',
|
||||
title: '暂降(骤升)幅值(%)',
|
||||
width: '160',sortable: true,
|
||||
formatter: (row: any) => {
|
||||
return Math.floor(row.cellValue * 10000) / 100
|
||||
}
|
||||
},
|
||||
{ field: 'duration', title: '持续时间(s)', width: '120',sortable: true, },
|
||||
{ field: 'gdName', title: '供电公司', width: '150' },
|
||||
{ field: 'subName', title: '变电站', minWidth: '150' },
|
||||
{ field: 'lineName', title: '监测点', minWidth: '150' },
|
||||
@@ -99,15 +109,7 @@ const list = ref([
|
||||
{ field: 'voltageScale', title: '电压等级', width: '80' },
|
||||
{ field: 'loadType', title: '干扰源类型', width: '150' },
|
||||
|
||||
{
|
||||
field: 'featureAmplitude',
|
||||
title: '暂降(骤升)幅值(%)',
|
||||
width: '150',
|
||||
formatter: (row: any) => {
|
||||
return Math.floor(row.cellValue * 10000) / 100
|
||||
}
|
||||
},
|
||||
{ field: 'duration', title: '持续时间(s)', width: '120' },
|
||||
|
||||
{ field: 'advanceType', title: '暂降类型(机器判断)', width: '150' }
|
||||
]
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user