周报 迁移 60%

This commit is contained in:
GGJ
2024-02-29 20:32:36 +08:00
parent df68b7bcd2
commit 954cf1b923
7 changed files with 271 additions and 19 deletions

View File

@@ -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": {

View File

@@ -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'
}) })

View File

@@ -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'
}) })

View File

@@ -0,0 +1,11 @@
<template>
<div>原因统计 </div>
</template>
<script setup lang='ts'>
import { ref, reactive } from 'vue'
</script>
<style lang="scss" scoped>
</style>

View File

@@ -0,0 +1,11 @@
<template>
<div>概况 </div>
</template>
<script setup lang='ts'>
import { ref, reactive } from 'vue'
</script>
<style lang="scss" scoped>
</style>

View 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>

View File

@@ -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>