新增预告警单

This commit is contained in:
GGJ
2024-05-15 21:33:54 +08:00
parent ded5803776
commit 88b3756ed3
8 changed files with 516 additions and 72 deletions

View File

@@ -83,7 +83,7 @@
></el-input>
</div> -->
<template #footer v-if="title != '查看计划'">
<div class="dialog-footer pd10">
<div class="dialog-footer ">
<el-button type="primary" @click="submitFn">提交</el-button>
<el-button @click="cancelFn">取消</el-button>
</div>

View File

@@ -2234,9 +2234,7 @@ defineExpose({ open })
// overflow-y: auto;
padding-top: 20px;
}
.dialog-footer {
padding: 10px;
}
/* 调整标签的换行行为 */
.label_over_warp::v-deep .el-form-item__label {
// white-space: pre-line !important;

View File

@@ -1635,9 +1635,7 @@ defineExpose({ open })
overflow-y: auto;
padding-top: 20px;
}
.dialog-footer {
padding: 10px;
}
/* 调整标签的换行行为 */
.label_over_warp::v-deep .el-form-item__label {
white-space: pre-line !important;

View File

@@ -0,0 +1,174 @@
<template>
<TableHeader area datePicker ref="TableHeaderRef">
<template #operation>
<el-button icon="el-icon-Plus" type="primary" @click="add">新增</el-button>
<el-button icon="el-icon-Delete" type="primary">删除</el-button>
<el-button icon="el-icon-Download" type="primary">导出</el-button>
</template>
</TableHeader ref="tableRef">
<Table ref="tableRef" />
<!-- 新增 -->
<listForm ref="listFormRef"/>
</template>
<script setup lang="ts">
import { ref, onMounted, provide, nextTick } from 'vue'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { useDictData } from '@/stores/dictData'
import listForm from "./listForm.vue"
const dictData = useDictData()
const tableRef = ref()
const planAddRef = ref()
const TableHeaderRef = ref()
const listFormRef = ref()
const tableStore = new TableStore({
url: '/supervision-boot/generalSurvey/getSurvey',
publicHeight: 65,
method: 'POST',
column: [
{ width: '60', type: 'checkbox' },
{
title: '序号',
type: 'seq',
align: 'center',
width: 60,
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{ field: 'billNo', title: '单据编号', minWidth: '150' },
{ field: 'billName', title: '单据名称', minWidth: '150' },
{ field: 'createrOrgName', title: '编制单位名称', minWidth: '150' },
{ field: 'specialityType', title: '所属专业', minWidth: '150' },
{ field: 'orgName', title: '责任单位名称', minWidth: '150' },
{ field: 'receiveUserName', title: '接收人名称', minWidth: '150' },
{ field: 'createrTime', title: '编制时间', minWidth: '150' },
{ field: 'managerDeptName', title: '主管部门名称', minWidth: '150' },
{ field: 'mainSenderName', title: '主送单位名称', minWidth: '150' },
{ field: 'copySenderName', title: '抄送单位名称', minWidth: '150' },
{ field: 'techSupvBasis', title: '依据标准', minWidth: '150' },
{ field: 'problemDesc', title: '问题描述', minWidth: '150' },
{ field: 'dealAdvise', title: '处理建议', minWidth: '150' },
{
title: '操作',
width: '180',
align: 'center',
render: 'buttons',
fixed: 'right',
buttons: [
{
name: 'productSetting',
title: '反馈数据',
type: 'primary',
icon: 'el-icon-EditPen',
render: 'basicButton',
click: row => {
// planAddRef.value.open('查看计划', row)
}
},
{
name: 'edit',
title: '修改',
type: 'warning',
icon: 'el-icon-Open',
render: 'basicButton',
click: row => {
// deviceQuitPopup.value.open('重新发起退运', row)
planAddRef.value.open('重新发起计划', row)
}
},
]
}
],
beforeSearchFun: () => {
tableStore.table.params.orgNo = tableStore.table.params.deptIndex
tableStore.table.params.currentPage = tableStore.table.params.pageNum
},
loadCallback: () => {
tableStore.table.data = [{
alarmId: "49cb012b06df8cde948230d29e8a3c30",
provinceId: "13B9B47F1E483324E05338297A0A0595",
provinceName: "国网河北电力有限公司",
billType: "eba0f69f3a36826a1771d813a6eee0fc",
billNo: "衡供[告]2023年--09015号",
billName: "220千伏站544线技术监督工作预警单",
createrOrgId: "13B9B47F23B83324E05338297A0A0595",
createrOrgName: "国网衡水供电公司",
specialityType: "电能质量",
orgId: "13B9B47F23CB3324E05338297A0A0595",
orgName: "国网桃城区供电公司",
receiveUserId: null,
receiveUserName: "",
createrTime: "2023-09-14 00:00:00",
time: null,
managerDeptId: "13B9B47F23B83324E05338297A0A0595",
managerDeptName: "国网衡水供电公司",
mainSenderId: "13B9B47F23CB3324E05338297A0A0595",
mainSenderName: "国网桃城区供电公司",
copySenderId: "",
copySenderName: "",
techSupvBasis: "GB/T12325-2008《电能质量供电电压偏差》GB/T12326-2008《电能质量电压波动和闪变》GB/T14549-1993《电能质量公用电网诺波》GB/T15543-20088电能质量三相电压不平衡》GB/T15945-2008名电能质量电力系统频率偷差》 GB/T18481-2001名电能质量暂时过电压和瞬态过电压》GB/T30137-2013《电能质量电压暂降与短时中断》",
problemDesc: "2023年9月10日11日国网衡水供电公司组织对220千伏站前铺站开展电能质量专项监督检测发现544胡村站在此次检测时间段内电压上下偏差不满足国标要求电压长时闪变不满足国标要求并存在2次暂态事件。",
dealAdvise: "国网衡水市桃城区供电公司运检部组织排查544所带用户是否存在非线性、冲击性等负荷组织开展重点用户电能质量检测对存在问题用户提出治理要求跟踪落实治理措施并向市公司设备部反馈治理报告。",
isUploadHead: 0
},
{
alarmId: "4b854eebe09172eff780db3368f64e9d",
provinceId: "13B9B47F1E483324E05338297A0A0595",
provinceName: "国网河北电力有限公司",
billType: "eba0f69f3a36826a1771d813a6eee0fc",
billNo: "沧供[预]2023年--09003号",
billName: "220kV大张庄光伏电场技术监督工作预警单",
createrOrgId: "13B9B47F2C183324E05338297A0A0595",
createrOrgName: "国网沧州供电公司",
specialityType: "电能质量",
orgId: "13B9B47F2D623324E05338297A0A0595",
orgName: "国网海兴县供电公司",
receiveUserId: null,
receiveUserName: "",
createrTime: "2023-09-28 00:00:00",
time: null,
managerDeptId: "13B9B47F2C183324E05338297A0A0595",
managerDeptName: "国网沧州供电公司",
mainSenderId: "13B9B47F2D623324E05338297A0A0595",
mainSenderName: "国网海兴县供电公司",
copySenderId: "",
copySenderName: "",
techSupvBasis: "GB/T 12325-2008《电能质量 供电电压偏差》 GB/T12326-2008《电能质量电压波动和闪变》GB/T14549-1993《电能质量 公用电网谐波》 GB/T15543-2008《电能质量三相电压不平衡》GB/T15945-2008《电能质量 电力系统频率偏差》GB/T 18481-2001《电能质量暂时过电压和瞬态过电压》GB/T30137-2013 《电能质量 电压暂降与短时中断》",
problemDesc: "国网河北电科院、国网沧州供电公司组织对220千伏边务站开展电能质量专项监督时发现235庄边线电压总谐波畸变率最大值5.22%95%概率值4.85%3、5、7次谐波电压含有率最大值分别为2.71%、3.52%、2.35%95%概率值分别为2.53%、3.31%、2.22%不满足国标限制要求怀疑光伏电场内SVG存在缺陷。",
dealAdvise: "220kV大张庄光伏电场相关管理单位组织排查光伏电场站内设备设备是否存在缺陷开展电能质量检测并向国网沧州供电公司技术监督办公室(设备部)反馈排查治理情况。",
isUploadHead: 0
},
]
}
})
tableStore.table.params.status = ''
provide('tableStore', tableStore)
// 新增计划
const add = () => {
// title.value = '普测计划新增'
listFormRef.value.open('新增告警单')
}
onMounted(() => {
tableStore.index()
})
</script>
<style scoped lang="scss"></style>

View File

@@ -1,63 +1,170 @@
<template>
<el-row :gutter="20" :style="{ height: height }">
<el-col :span="9" class="col1">
<policyTree @tactics="tactics"/>
</el-col>
<el-col :span="15" class="col1">
<div class="mb10" style="height: 32px">
<el-button type="primary" icon="el-icon-Plus">新增策略</el-button>
</div>
<div :style="`height: calc(${height} - 43px)`">
<vxe-table ref="tableRef" height="auto" :data="dataList" v-bind="defaultAttribute">
<vxe-column field="name" title="策略名称"></vxe-column>
<vxe-column field="type" title="策略类型">
<template #default="{ row }">
{{ row.type === 0 ? '预警单' : '告警单' }}
</template>
</vxe-column>
<vxe-column field="grade" title="策略等级">
<template #default="{ row }">
{{ row.grade === 0 ? '自动策略' : row.grade === 1 ? '手动策略' : '排他策略' }}
</template>
</vxe-column>
<vxe-column field="state" title="状态">
<template #default="{ row }">
<el-switch
v-model.number="row.state"
active-color="#13ce66"
inactive-color="#ff4949"
:active-value="1"
:inactive-value="2"
@change="stateChange($event, row.id)"
></el-switch>
</template>
</vxe-column>
<vxe-column title="操作">
<template #default="{ row }">
<el-button type="primary" size="small" link>查看</el-button>
<el-button type="primary" size="small" link>修改</el-button>
<el-button type="primary" size="small" link>删除</el-button>
</template>
</vxe-column>
</vxe-table>
</div>
</el-col>
</el-row>
<TableHeader area datePicker ref="TableHeaderRef">
<template #operation>
<el-button icon="el-icon-Plus" type="primary" @click="add">新增</el-button>
<el-button icon="el-icon-Delete" type="primary">删除</el-button>
</template>
</TableHeader ref="tableRef">
<Table ref="tableRef" />
<!-- 新增 -->
<listForm ref="listFormRef" />
</template>
<script setup lang="ts">
import policyTree from '@/components/tree/pqs/policyTree.vue'
import { defaultAttribute } from '@/components/table/defaultAttribute'
import { mainHeight } from '@/utils/layout'
import { ref, reactive } from 'vue'
const height = mainHeight(80).height
const dataList = ref([])
import { ref, onMounted, provide, nextTick } from 'vue'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { useDictData } from '@/stores/dictData'
import listForm from "./listForm.vue"
const dictData = useDictData()
const tableRef = ref()
const planAddRef = ref()
const listFormRef = ref()
const TableHeaderRef = ref()
const stateChange = (val: number, id: number) => {}
const tactics = (row: any, id: number) => {
console.log("🚀 ~ tactics ~ row:", row,id)
const tableStore = new TableStore({
url: '/supervision-boot/generalSurvey/getSurvey',
publicHeight: 65,
method: 'POST',
column: [
{ width: '60', type: 'checkbox' },
{
title: '序号',
type: 'seq',
align: 'center',
width: 60,
formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{ field: 'billNo', title: '单据编号', minWidth: '150' },
{ field: 'billName', title: '单据名称', minWidth: '150' },
{ field: 'createrOrgName', title: '编制单位名称', minWidth: '150' },
{ field: 'specialityType', title: '所属专业', minWidth: '150' },
{ field: 'orgName', title: '责任单位名称', minWidth: '150' },
{ field: 'receiveUserName', title: '接收人名称', minWidth: '150' },
{ field: 'createrTime', title: '编制时间', minWidth: '150' },
{ field: 'managerDeptName', title: '主管部门名称', minWidth: '150' },
{ field: 'mainSenderName', title: '主送单位名称', minWidth: '150' },
{ field: 'copySenderName', title: '抄送单位名称', minWidth: '150' },
{ field: 'techSupvBasis', title: '依据标准', minWidth: '150' },
{ field: 'problemDesc', title: '问题描述', minWidth: '150' },
{ field: 'dealAdvise', title: '处理建议', minWidth: '150' },
{
title: '操作',
width: '180',
align: 'center',
render: 'buttons',
fixed: 'right',
buttons: [
{
name: 'productSetting',
title: '反馈数据',
type: 'primary',
icon: 'el-icon-EditPen',
render: 'basicButton',
click: row => {
// planAddRef.value.open('查看计划', row)
}
},
{
name: 'edit',
title: '修改',
type: 'warning',
icon: 'el-icon-Open',
render: 'basicButton',
click: row => {
// deviceQuitPopup.value.open('重新发起退运', row)
planAddRef.value.open('重新发起计划', row)
}
},
]
}
],
beforeSearchFun: () => {
tableStore.table.params.orgNo = tableStore.table.params.deptIndex
tableStore.table.params.currentPage = tableStore.table.params.pageNum
},
loadCallback: () => {
tableStore.table.data = [{
alarmId: "0323fa13767c537d037cd755cc1b728e",
provinceId: "13B9B47F1E483324E05338297A0A0595",
provinceName: "国网河北电力有限公司",
billType: "eba0f69f3a36826a1771d813a6eee0fc",
billNo: "沧供[预]2023年--09002号",
billName: "220kV东辛光伏电场技术监督工作预警单",
createrOrgId: "13B9B47F2C183324E05338297A0A0595",
createrOrgName: "国网沧州供电公司",
specialityType: "电能质量",
orgId: "13B9B47F2D623324E05338297A0A0595",
orgName: "国网海兴县供电公司",
receiveUserId: null,
receiveUserName: "",
createrTime: "2023-09-28 00:00:00",
time: null,
managerDeptId: "13B9B47F2C183324E05338297A0A0595",
managerDeptName: "国网沧州供电公司",
mainSenderId: "13B9B47F2D623324E05338297A0A0595",
mainSenderName: "国网海兴县供电公司",
copySenderId: "",
copySenderName: "",
techSupvBasis: "GB/T 12325-2008 《电能质量 供电电压偏差》 GB/T12326-2008《电能质量电压波动和闪变》GB/T14549-1993《电能质量 公用电网谐波》 GB/T 15543-2008《电能质量三相电压不平衡》GB/T15945-2008《电能质量 电力系统频率偏差》GB/T 18481-2001《电能质量暂时过电压和瞬态过电压》GB/T30137-2013《电能质量 电压暂降与短时中断》",
problemDesc: "国网河北电科院、国网沧州供电公司组织对220千伏常庄站开展电能质量专项监督时发现246东常线电压总谐波畸变率最大值6.37%95%概率值6.24%3、5、7次谐波电压含有率最大值分别为4.31%、3.62%、2.61%95%概率值分别为4.2%、3.53%、2.51%不满足国标限制要求怀疑光伏电场内SVG存在缺陷。",
dealAdvise: "220kV东辛光伏电场相关管理单位组织排查光伏电场站内设备设备是否存在缺陷开展电能质量检测并向国网沧州供电公司技术监督办公室(设备部)反馈排查治理情况。",
isUploadHead: 0
},
{
alarmId: "054deafbbcfc29f8dff517d31966657b",
provinceId: "13B9B47F1E483324E05338297A0A0595",
provinceName: "国网河北电力有限公司",
billType: "eba0f69f3a36826a1771d813a6eee0fc",
billNo: "[预]2023—165号",
billName: "关于220kV赞皇龙门光伏站谐波电流指标超标预警",
createrOrgId: "13B9B47F1F223324E05338297A0A0595",
createrOrgName: "国网石家庄供电公司",
specialityType: "电能质量",
orgId: "13B9B47F1F223324E05338297A0A0595",
orgName: "国网石家庄供电公司",
receiveUserId: null,
receiveUserName: "",
createrTime: "2023-09-25 00:00:00",
time: null,
managerDeptId: "13B9B47F1F773324E05338297A0A0595",
managerDeptName: "国网石家庄供电公司本部",
mainSenderId: "",
mainSenderName: "",
copySenderId: "",
copySenderName: "",
techSupvBasis: "GB/T 14549-1993《电能质量-公用电网谐波》",
problemDesc: "国网河北电科院、国网石家庄供电公司于2023年9月对220千伏赞皇龙门光伏站开展电能质量专项监督时发现220kV龙万线赞皇龙门光伏站并网线路ABC三相的5次谐波电流指标95%概率值分别为为17.27A、16.25A、16.85A不满足国标限值7.09A的要求。",
dealAdvise: "赞皇龙门光伏站开展电能质量指标测试及分析,排查自有发电、用电设备是否存在谐波源,并向国网石家庄供电公司技术监督办公室(设备部)反馈排查治理情况。",
isUploadHead: 0
},
]
}
})
tableStore.table.params.status = ''
provide('tableStore', tableStore)
// 新增计划
const add = () => {
// title.value = '普测计划新增'
listFormRef.value.open('新增预警单')
}
onMounted(() => {
tableStore.index()
})
</script>
<style lang="scss" scoped></style>
<style scoped lang="scss"></style>

View File

@@ -0,0 +1,160 @@
<template>
<el-dialog draggable v-model="dialogVisible" :title="title" style="width: 800px" :before-close="handleClose">
<el-form :model="form" class="form-two" label-width="auto" :rules="rules">
<el-form-item label="单据编号:" prop="billNo">
<el-input v-model="form.billNo" placeholder="请输入单据编号" clearable></el-input>
</el-form-item>
<el-form-item label="单据名称:" prop="billName">
<el-input v-model="form.billName" placeholder="请输入单据名称" clearable></el-input>
</el-form-item>
<el-form-item label="单据类别:" prop="billType">
<el-select v-model="form.billType" clearable placeholder="请选择单据类别">
<el-option
v-for="item in Categories"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="编制单位名称:" prop="createrOrgName">
<el-input v-model="form.createrOrgName" placeholder="请输入编制单位名称" clearable></el-input>
</el-form-item>
<el-form-item label="所属专业:" prop="specialityType">
<el-select v-model="form.specialityType" clearable placeholder="请选择所属专业">
<el-option v-for="item in Major" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="责任单位名称:" prop="orgName">
<el-input v-model="form.orgName" placeholder="请输入责任单位名称" clearable></el-input>
</el-form-item>
<el-form-item label="接收人名称:" prop="receiveUserId">
<el-select
v-model="form.receiveUserId"
clearable
placeholder="请选择接收人名称"
@change="changeFn"
@clear="clear('receiveUserId', 'receiveUserName')"
>
<el-option
v-for="item in ImplementationPeople"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="编制时间:" prop="createrTime">
<el-date-picker
v-model="form.createrTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="选择日期"
></el-date-picker>
</el-form-item>
<el-form-item label="主管部门名称:" prop="managerDeptName">
<el-input v-model="form.managerDeptName" placeholder="请输入主管部门名称" clearable></el-input>
</el-form-item>
<el-form-item label="主送单位名称:" prop="mainSenderName">
<el-input v-model="form.mainSenderName" placeholder="请输入主送单位名称" clearable></el-input>
</el-form-item>
<el-form-item label="抄送单位名称:" prop="copySenderName">
<el-input v-model="form.copySenderName" placeholder="请输入抄送单位名称" clearable></el-input>
</el-form-item>
<el-form-item label="处理建议:" prop="dealAdvise">
<el-input
v-model="form.dealAdvise"
type="textarea"
autosize
placeholder="请输入处理建议"
clearable
></el-input>
</el-form-item>
<el-form-item label="依据标准:" prop="techSupvBasis">
<el-input v-model="form.techSupvBasis" type="textarea" autosize placeholder="请输入依据标准"></el-input>
</el-form-item>
<el-form-item label="问题描述:" prop="problemDesc">
<el-input v-model="form.problemDesc" type="textarea" autosize placeholder="请输入问题描述"></el-input>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="handleClose">取消</el-button>
<el-button type="primary" @click="submit">确认</el-button>
</span>
</template>
</el-dialog>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useDictData } from '@/stores/dictData'
import type { UploadInstance, UploadProps, UploadRawFile } from 'element-plus'
import { genFileId, ElMessage } from 'element-plus'
const emit = defineEmits(['onsubmit'])
const dictData = useDictData()
const manufactorList = dictData.getBasicData('Dev_Manufacturers')
const dialogVisible = ref(false)
const title: any = ref('')
const form: any = ref({
billName: '',
billNo: '',
billType: '',
copySenderId: '',
copySenderName: '',
createrOrgId: '',
createrOrgName: '',
createrTime: '',
dealAdvise: '',
mainSenderId: '',
mainSenderName: '',
managerDeptId: '',
managerDeptName: '',
orgId: '',
orgName: '',
problemDesc: '',
receiveUserName: '',
receiveUserId: '',
specialityType: '',
techSupvBasis: ''
})
const elform = ref()
const uploadRef = ref()
const rules = {
billNo: [{ required: true, message: '请输入单据编号', trigger: 'blur' }],
billName: [{ required: true, message: '请输入单据名称', trigger: 'blur' }],
billType: [{ required: true, message: '请选择单据类别', trigger: 'change' }],
createrOrgName: [{ required: true, message: '请选择编制单位', trigger: 'change' }],
specialityType: [{ required: true, message: '请选择所属专业', trigger: 'change' }],
orgName: [{ required: true, message: '请选择责任单位', trigger: 'change' }],
createrTime: [{ required: true, message: '选择日期', trigger: 'change' }],
managerDeptName: [{ required: true, message: '请选择主管部门名称', trigger: 'change' }],
techSupvBasis: [{ required: true, message: '请输入依据标准', trigger: 'blur' }],
problemDesc: [{ required: true, message: '请输入问题描述', trigger: 'blur' }],
dealAdvise: [{ required: true, message: '请输入处理建议', trigger: 'blur' }],
treatmentMeasures: [{ required: true, message: '请输入采取措施', trigger: 'blur' }],
fillUserId: [{ required: true, message: '请选择接收人名称', trigger: 'change' }],
completeTime: [{ required: true, message: '选择日期', trigger: 'change' }]
}
const submit = () => {
handleClose()
}
const open = (text: any) => {
dialogVisible.value = true
title.value = text
}
const handleClose = () => {
// elform.value.resetFields()
dialogVisible.value = false
}
defineExpose({ open })
</script>
<style lang="scss" scoped>
:deep(.el-upload-list__item) {
width: 400px;
}
</style>

View File

@@ -1,12 +1,13 @@
<template>
<div class="default-main">
<el-tabs v-model="activeName" type="border-card">
<el-tab-pane label="概览" name="1"><overview v-if="activeName == '1'"/></el-tab-pane>
<el-tab-pane label="技术监督管理" name="2"><technology v-if="activeName == '2'"/></el-tab-pane>
<el-tab-pane label="告警单策略管理" name="3">
<!-- <el-tab-pane label="概览" name="1"><overview v-if="activeName == '1'"/></el-tab-pane>
<el-tab-pane label="技术监督管理" name="2"><technology v-if="activeName == '2'"/></el-tab-pane> -->
<el-tab-pane label="预警单列表" name="3">
<earlyWarning v-if="activeName == '3'"/>
</el-tab-pane>
<el-tab-pane label="警单策略管理" name="4"><earlyWarning v-if="activeName == '4'"/></el-tab-pane>
<el-tab-pane label="警单列表" name="4"><alarm v-if="activeName == '4'"/></el-tab-pane>
</el-tabs>
</div>
</template>
@@ -15,13 +16,14 @@
import overview from './components/overview.vue'
import technology from './components/technology.vue'
import earlyWarning from './components/earlyWarning.vue'
import alarm from './components/alarm.vue'
import { onMounted, reactive, ref, provide } from 'vue'
import { mainHeight } from '@/utils/layout'
defineOptions({
name: 'Processsupervision/supervision/manage'
name: 'supervision/harmonicmanagement'
})
const activeName = ref('1')
const activeName = ref('3')
const Statistics = ref()
const compatibility = ref()