周报 迁移 60%
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
"build": "vite build",
|
"build": "vite build ",
|
||||||
"preview": "vite preview"
|
"preview": "vite preview"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ import TableStore from '@/utils/tableStore'
|
|||||||
import PointTree from '@/components/tree/pms/pointTree.vue'
|
import PointTree from '@/components/tree/pms/pointTree.vue'
|
||||||
import TableHeader from '@/components/table/header/index.vue'
|
import TableHeader from '@/components/table/header/index.vue'
|
||||||
import { mainHeight } from '@/utils/layout'
|
import { mainHeight } from '@/utils/layout'
|
||||||
import { getLineExport, getList, selectReleation } from '@/api/event-boot/report.ts'
|
import { getLineExport, getList, selectReleation } from '@/api/event-boot/report'
|
||||||
import { useMonitoringPoint } from '@/stores/monitoringPoint'
|
import { useMonitoringPoint } from '@/stores/monitoringPoint'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
const monitoringPoint = useMonitoringPoint()
|
const monitoringPoint = useMonitoringPoint()
|
||||||
@@ -174,7 +174,7 @@ const formd: any = ref({
|
|||||||
const templatePolicy: any = ref([])
|
const templatePolicy: any = ref([])
|
||||||
const tableStore = new TableStore({
|
const tableStore = new TableStore({
|
||||||
url: '',
|
url: '',
|
||||||
method: '',
|
method: 'post',
|
||||||
column: []
|
column: []
|
||||||
})
|
})
|
||||||
provide('tableStore', tableStore)
|
provide('tableStore', tableStore)
|
||||||
@@ -194,7 +194,7 @@ getList({
|
|||||||
const handleNodeClick = (data: any, node: any) => {
|
const handleNodeClick = (data: any, node: any) => {
|
||||||
dotList.value = data
|
dotList.value = data
|
||||||
}
|
}
|
||||||
const changeFn = val => {
|
const changeFn = (val:any) => {
|
||||||
formd.value = {
|
formd.value = {
|
||||||
xq: false,
|
xq: false,
|
||||||
lb: false,
|
lb: false,
|
||||||
@@ -217,7 +217,7 @@ const changeFn = val => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
selectReleation(data).then(res => {
|
selectReleation(data).then(res => {
|
||||||
res.data.forEach(item => {
|
res.data.forEach((item:any) => {
|
||||||
for (let k in formd.value) {
|
for (let k in formd.value) {
|
||||||
if (item.name == k) {
|
if (item.name == k) {
|
||||||
formd.value[k] = true
|
formd.value[k] = true
|
||||||
@@ -242,7 +242,7 @@ const exportEvent = () => {
|
|||||||
formd.value.searchEndTime = tableStore.table.params.searchEndTime
|
formd.value.searchEndTime = tableStore.table.params.searchEndTime
|
||||||
formd.value.flag = TableHeaderRef.value.datePickerRef.interval
|
formd.value.flag = TableHeaderRef.value.datePickerRef.interval
|
||||||
ElMessage('生成报告中,请稍等!')
|
ElMessage('生成报告中,请稍等!')
|
||||||
getLineExport(formd.value).then(res => {
|
getLineExport(formd.value).then((res:any) => {
|
||||||
let blob = new Blob([res], {
|
let blob = new Blob([res], {
|
||||||
type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8'
|
type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8'
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ import { ref, onMounted, provide, reactive } from 'vue'
|
|||||||
import TableStore from '@/utils/tableStore'
|
import TableStore from '@/utils/tableStore'
|
||||||
import TableHeader from '@/components/table/header/index.vue'
|
import TableHeader from '@/components/table/header/index.vue'
|
||||||
import { useDictData } from '@/stores/dictData'
|
import { useDictData } from '@/stores/dictData'
|
||||||
import { getAreaReport, getList, selectReleation } from '@/api/event-boot/report.ts'
|
import { getAreaReport, getList, selectReleation } from '@/api/event-boot/report'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
defineOptions({
|
defineOptions({
|
||||||
name: 'TransientReport/regionalreports'
|
name: 'TransientReport/regionalreports'
|
||||||
@@ -161,7 +161,7 @@ const templatePolicy: any = ref([])
|
|||||||
const value = ref<string>('')
|
const value = ref<string>('')
|
||||||
const tableStore = new TableStore({
|
const tableStore = new TableStore({
|
||||||
url: '',
|
url: '',
|
||||||
method: '',
|
method: 'post',
|
||||||
column: []
|
column: []
|
||||||
})
|
})
|
||||||
const formInline: any = ref({
|
const formInline: any = ref({
|
||||||
@@ -195,7 +195,7 @@ getList({
|
|||||||
templatePolicy.value = res.data.records
|
templatePolicy.value = res.data.records
|
||||||
})
|
})
|
||||||
// 模板策略变化
|
// 模板策略变化
|
||||||
const changeFn = val => {
|
const changeFn = (val:any) => {
|
||||||
formInline.value = {
|
formInline.value = {
|
||||||
monitorDistributeChart: false,
|
monitorDistributeChart: false,
|
||||||
eventCountTable: false,
|
eventCountTable: false,
|
||||||
@@ -218,7 +218,7 @@ const changeFn = val => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
selectReleation(data).then(res => {
|
selectReleation(data).then(res => {
|
||||||
res.data.forEach(item => {
|
res.data.forEach((item:any) => {
|
||||||
for (let k in formInline.value) {
|
for (let k in formInline.value) {
|
||||||
if (item.name == k) {
|
if (item.name == k) {
|
||||||
formInline.value[k] = true
|
formInline.value[k] = true
|
||||||
@@ -245,7 +245,7 @@ const exportEvent = () => {
|
|||||||
formInline.value.waveType = tableStore.table.params.waveType
|
formInline.value.waveType = tableStore.table.params.waveType
|
||||||
formInline.value.interval = tableStore.table.params.timeFlag
|
formInline.value.interval = tableStore.table.params.timeFlag
|
||||||
ElMessage('生成报告中,请稍等!')
|
ElMessage('生成报告中,请稍等!')
|
||||||
getAreaReport(formInline.value).then(res => {
|
getAreaReport(formInline.value).then((res:any) => {
|
||||||
let blob = new Blob([res], {
|
let blob = new Blob([res], {
|
||||||
type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8'
|
type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8'
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<template>
|
||||||
|
|
||||||
|
<div>原因统计 </div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<script setup lang='ts'>
|
||||||
|
import { ref, reactive } from 'vue'
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<template>
|
||||||
|
|
||||||
|
<div>概况 </div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<script setup lang='ts'>
|
||||||
|
import { ref, reactive } from 'vue'
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
48
src/views/pqs/voltageSags/report/weekly/components/table.vue
Normal file
48
src/views/pqs/voltageSags/report/weekly/components/table.vue
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<TableHeader date-picker>
|
||||||
|
<template #operation>
|
||||||
|
<el-button icon="el-icon-Download" type="primary" @click="exportEvent">导出</el-button>
|
||||||
|
</template>
|
||||||
|
</TableHeader>
|
||||||
|
<Table :isGroup="props.info.isGroup" ref="tableRef" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import TableHeader from '@/components/table/header/index.vue'
|
||||||
|
import TableStore from '@/utils/tableStore'
|
||||||
|
import Table from '@/components/table/index.vue'
|
||||||
|
import { ref, onMounted, provide ,nextTick} from 'vue'
|
||||||
|
import { useDictData } from '@/stores/dictData'
|
||||||
|
interface Props {
|
||||||
|
info: any
|
||||||
|
}
|
||||||
|
const props = withDefaults(defineProps<Props>(), {})
|
||||||
|
const dictData = useDictData()
|
||||||
|
const tableStore = new TableStore({
|
||||||
|
url: props.info.url,
|
||||||
|
publicHeight: 60,
|
||||||
|
method: 'POST',
|
||||||
|
column: props.info.column,
|
||||||
|
|
||||||
|
loadCallback: () => {}
|
||||||
|
})
|
||||||
|
tableStore.table.params.statisticalType = dictData.getBasicData('Statistical_Type', [
|
||||||
|
'Report_Type',
|
||||||
|
'Manufacturer',
|
||||||
|
'Voltage_Level',
|
||||||
|
'Load_Type'
|
||||||
|
])[0]
|
||||||
|
tableStore.table.params.deptIndex = dictData.state.area[0].id
|
||||||
|
tableStore.table.params.monitorFlag = 2
|
||||||
|
tableStore.table.params.powerFlag = 2
|
||||||
|
tableStore.table.params.serverName = 'event-boot'
|
||||||
|
tableStore.table.params.type = 0
|
||||||
|
provide('tableStore', tableStore)
|
||||||
|
nextTick(() => {
|
||||||
|
tableStore.index()
|
||||||
|
})
|
||||||
|
// 导出
|
||||||
|
const exportEvent = () => {}
|
||||||
|
</script>
|
||||||
@@ -1,11 +1,193 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<div class="default-main">
|
||||||
<div>周报 </div>
|
<el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
|
||||||
|
<el-tab-pane label="暂态总体概况" name="1"><Overview /></el-tab-pane>
|
||||||
|
<el-tab-pane label="暂态原因统计" name="2"><CauseStatistics /></el-tab-pane>
|
||||||
|
<el-tab-pane v-for="item in list" :label="item.name" :name="item.id" :key="item.id">
|
||||||
|
<Table :info="item"></Table>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang='ts'>
|
<script setup lang="tsx">
|
||||||
import { ref, reactive } from 'vue'
|
import { ref, onMounted, provide } from 'vue'
|
||||||
</script>
|
import TableStore from '@/utils/tableStore'
|
||||||
<style lang="scss" scoped>
|
import Table from './components/table.vue'
|
||||||
|
import Overview from './components/overview.vue'
|
||||||
|
import CauseStatistics from './components/causeStatistics.vue'
|
||||||
|
import { useDictData } from '@/stores/dictData'
|
||||||
|
defineOptions({
|
||||||
|
name: 'TransientReport/weekly'
|
||||||
|
})
|
||||||
|
const dictData = useDictData()
|
||||||
|
const activeName = ref('1')
|
||||||
|
const list = ref([
|
||||||
|
{
|
||||||
|
name: '暂态严重度统计',
|
||||||
|
id: '3',
|
||||||
|
isGroup: true,
|
||||||
|
url: '/event-boot/report/getSeverity',
|
||||||
|
column: [
|
||||||
|
{
|
||||||
|
title: '暂态事件严重度(前二十)',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
field: 'index',
|
||||||
|
title: '序号',
|
||||||
|
width: '60',
|
||||||
|
formatter: (row: any) => {
|
||||||
|
return (
|
||||||
|
(tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize +
|
||||||
|
row.rowIndex +
|
||||||
|
1
|
||||||
|
)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ field: 'startTime', title: '暂态事件发生时刻', width: '200' },
|
||||||
|
{ field: 'gdName', title: '供电公司' },
|
||||||
|
{ field: 'subName', title: '变电站' },
|
||||||
|
{ field: 'lineName', title: '监测点' },
|
||||||
|
{ field: 'voltageScale', title: '监测点电压等级' },
|
||||||
|
{ field: 'loadType', title: '干扰源类型' },
|
||||||
|
{
|
||||||
|
field: 'featureAmplitude',
|
||||||
|
title: '暂降(骤升)幅值(%)',
|
||||||
|
formatter: ({ row }: any) => (row.featureAmplitude * 100).toFixed(2)
|
||||||
|
},
|
||||||
|
{ field: 'duration', title: '持续时间(s)' },
|
||||||
|
{ field: 'severity', title: '暂态事件严重度' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '详细事件列表',
|
||||||
|
id: '4',
|
||||||
|
|
||||||
</style>
|
url: '/event-boot/report/getContinueTime',
|
||||||
|
column: [
|
||||||
|
{
|
||||||
|
field: 'index',
|
||||||
|
title: '序号',
|
||||||
|
width: '60',
|
||||||
|
formatter: (row: any) => {
|
||||||
|
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ field: 'startTime', title: '暂态事件发生时刻', width: '200' },
|
||||||
|
{ field: 'gdName', title: '供电公司', width: '150' },
|
||||||
|
{ field: 'subName', title: '变电站' },
|
||||||
|
{ field: 'lineName', title: '监测点' },
|
||||||
|
{
|
||||||
|
field: 'objName',
|
||||||
|
title: '监测点对象名称',
|
||||||
|
formatter: ({ row }: any) => (row.objName ? row.objName : '/')
|
||||||
|
},
|
||||||
|
{ field: 'voltageScale', title: '电压等级', width: '150' },
|
||||||
|
{ field: 'loadType', title: '干扰源类型', width: '150' },
|
||||||
|
|
||||||
|
{
|
||||||
|
field: 'featureAmplitude',
|
||||||
|
title: '暂降(骤升)幅值(%)',
|
||||||
|
width: '150',
|
||||||
|
formatter: ({ row }: any) => (row.featureAmplitude * 100).toFixed(2)
|
||||||
|
},
|
||||||
|
{ field: 'duration', title: '持续时间(s)', width: '120' },
|
||||||
|
{ field: 'advanceType', title: '暂态类型(机器判断)', width: '150' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '暂降次数统计',
|
||||||
|
id: '5',
|
||||||
|
url: '/event-boot/report/getSagTimes',
|
||||||
|
column: [
|
||||||
|
{
|
||||||
|
field: 'index',
|
||||||
|
title: '序号',
|
||||||
|
width: '60',
|
||||||
|
formatter: (row: any) => {
|
||||||
|
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ field: 'lineName', title: '监测点' },
|
||||||
|
{ field: 'loadType', title: '干扰源类型' },
|
||||||
|
{
|
||||||
|
field: 'objName',
|
||||||
|
title: '监测点对象名称',
|
||||||
|
formatter: ({ row }: any) => (row.objName ? row.objName : '/')
|
||||||
|
},
|
||||||
|
{ field: 'subName', title: '变电站' },
|
||||||
|
{ field: 'gdName', title: '供电公司', width: '150' },
|
||||||
|
{ field: 'times', title: '暂降次数', width: '150' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '暂升次数统计',
|
||||||
|
id: '6',
|
||||||
|
url: '/event-boot/report/getUpTimes',
|
||||||
|
column: [
|
||||||
|
{
|
||||||
|
field: 'index',
|
||||||
|
title: '序号',
|
||||||
|
width: '60',
|
||||||
|
formatter: (row: any) => {
|
||||||
|
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ field: 'lineName', title: '监测点' },
|
||||||
|
{ field: 'loadType', title: '干扰源类型' },
|
||||||
|
{
|
||||||
|
field: 'objName',
|
||||||
|
title: '监测点对象名称',
|
||||||
|
formatter: ({ row }: any) => (row.objName ? row.objName : '/')
|
||||||
|
},
|
||||||
|
{ field: 'voltageScale', title: '监测点电压等级' },
|
||||||
|
{ field: 'subName', title: '变电站' },
|
||||||
|
{ field: 'subScale', title: '变电站电压等级' },
|
||||||
|
{ field: 'gdName', title: '供电公司', width: '150' },
|
||||||
|
{ field: 'times', title: '暂升次数', width: '150' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '短时中断次数统计',
|
||||||
|
id: '7',
|
||||||
|
url: '/event-boot/report/getBreakTimes',
|
||||||
|
column: [
|
||||||
|
{
|
||||||
|
field: 'index',
|
||||||
|
title: '序号',
|
||||||
|
width: '60',
|
||||||
|
formatter: (row: any) => {
|
||||||
|
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ field: 'lineName', title: '监测点' },
|
||||||
|
{ field: 'loadType', title: '干扰源类型' },
|
||||||
|
{
|
||||||
|
field: 'objName',
|
||||||
|
title: '监测点对象名称',
|
||||||
|
formatter: ({ row }: any) => (row.objName ? row.objName : '/')
|
||||||
|
},
|
||||||
|
{ field: 'voltageScale', title: '监测点电压等级' },
|
||||||
|
{ field: 'subName', title: '变电站' },
|
||||||
|
{ field: 'subScale', title: '变电站电压等级' },
|
||||||
|
{ field: 'gdName', title: '供电公司' },
|
||||||
|
{ field: 'times', title: '短时中断次数' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
])
|
||||||
|
const tableStore = new TableStore({
|
||||||
|
url: '',
|
||||||
|
method: 'post',
|
||||||
|
column: []
|
||||||
|
})
|
||||||
|
|
||||||
|
tableStore.table.params.waveType = 0
|
||||||
|
provide('tableStore', tableStore)
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
// tableStore.index()
|
||||||
|
})
|
||||||
|
|
||||||
|
const handleClick = () => {}
|
||||||
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user