联调承载能力评估

This commit is contained in:
GGJ
2024-04-02 16:43:18 +08:00
parent fe60893e89
commit 60462b0086
24 changed files with 674 additions and 422 deletions

View File

@@ -1,7 +1,7 @@
<template>
<el-dialog draggable title="填报" v-model="dialogVisible" width="70%" :before-close="handleClose">
<el-dialog draggable title="填报" v-model="dialogVisible" width="1400px" :before-close="handleClose">
<el-divider content-position="left" style="font-size: 18px; font-weight: bolder">问题基本信息</el-divider>
<el-form :inline="true">
<el-form :inline="true" label-width="auto">
<el-form-item label="所属单位:">
<el-input v-model="addData.orgName" clearable placeholder="请填写" disabled></el-input>
</el-form-item>
@@ -29,132 +29,64 @@
<el-divider content-position="left" style="font-size: 18px; font-weight: bolder">填报流程</el-divider>
<el-steps :active="active" finish-status="success" simple>
<el-step>
<template #title><span @click="step(0)">原因分析</span></template>
</el-step>
<el-step>
<template #title><span @click="step(1)">计划整改措施</span></template>
</el-step>
<el-step>
<template #title><span @click="step(2)">实际采取措施</span></template>
</el-step>
<el-step>
<template #title><span @click="step(3)">成效分析</span></template>
<el-step v-for="(item, i) in stepTitle">
<template #title>
<span @click="step(i)">{{ item }}</span>
</template>
</el-step>
</el-steps>
<!-- 原因分析 0 -->
<el-form
:model="causeAnalysisData"
v-if="control == 0"
:rules="rules"
ref="form"
label-width="140px"
class="form"
>
<el-form-item label="电网侧原因:" prop="reportProcessContentYyfx">
<el-checkbox-group v-model="causeAnalysisData.reportProcessContentYyfx">
<el-checkbox v-for="(item, ind) in CauseList" :key="ind" :label="item.code">
{{ item.name }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-divider></el-divider>
<el-form-item label="用户侧原因:" prop="userReportProcessContentYyfx">
<el-checkbox-group v-model="causeAnalysisData.userReportProcessContentYyfx">
<el-checkbox v-for="(item, ind) in userCauseList" :key="ind" :label="item.code">
{{ item.name }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-row v-if="addData.problemSources == '用户投诉' || addData.problemSources == '设备异常'">
<el-divider></el-divider>
<el-form-item label="电网侧受影响设备:" prop="powerGridAffectDev">
<el-checkbox-group v-model="causeAnalysisData.powerGridAffectDev">
<el-checkbox v-for="(item, ind) in powerGridAffectDevList" :key="ind" :label="item.code">
{{ item.name }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-divider></el-divider>
<el-form-item label="用户侧受影响设备:" prop="userAffectDev">
<el-checkbox-group v-model="causeAnalysisData.userAffectDev">
<el-checkbox v-for="(item, ind) in userAffectDevList" :key="ind" :label="item.code">
{{ item.name }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-row>
<el-divider></el-divider>
<el-form-item label="事件描述:" prop="eventDescriptionYyfx">
<el-input
style="width: 400px"
:autosize="{ minRows: 2, maxRows: 4 }"
type="textarea"
placeholder="请输入内容"
v-model="causeAnalysisData.eventDescriptionYyfx"
></el-input>
</el-form-item>
<el-form-item class="item" label="原因分析报告:" style="margin-top: 10px" prop="fileNameYyfx">
<!-- <File ref="File" /> -->
</el-form-item>
</el-form>
<process1 v-if="control == 0" :addData="addData" ref="process0Ref" @handleClose="handleClose" />
<!-- 计划整改措施 1-->
<process2 v-if="control == 1" :addData="addData" ref="process1Ref" @handleClose="handleClose" />
<!-- 实际采取措施 2 -->
<process3 v-if="control == 2" :addData="addData" ref="process2Ref" @handleClose="handleClose" />
<!-- 成效分析 3 -->
<process4 v-if="control == 3" :addData="addData" ref="process3Ref" @handleClose="handleClose" />
<el-row :gutter="20"></el-row>
<div style="display: flex; justify-content: center; margin-top: 10px">
<el-button type="primary" class="ml20" @click="Submit">提交审核</el-button>
<el-button type="primary" class="ml20" @click="handleClose">取消</el-button>
<el-button type="primary" @click="Submit">提交审核</el-button>
<el-button @click="handleClose">取消</el-button>
</div>
</el-dialog>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useDictData } from '@/stores/dictData'
import process1 from './process1.vue'
import process2 from './process2.vue'
import process3 from './process3.vue'
import process4 from './process4.vue'
import { getAbnormalDetail } from '@/api/process-boot/electricitymanagement'
const emit = defineEmits(['onSubmit'])
const dictData = useDictData()
const addData: any = ref({})
const active = ref(1)
const active = ref(4)
const control = ref()
const stepTitle = ['原因分析', '计划整改措施', '实际采取措施', '成效分析']
const process0Ref = ref()
const dialogVisible: any = ref(false)
const causeAnalysisData = ref({
reportProcessContentYyfx: [],
userReportProcessContentYyfx: [],
eventDescriptionYyfx: '',
fileNameYyfx: '', //原因分析报告文件名称
filePathYyfx: '', //原因分析报告文件路径
powerGridAffectDev: [],
userAffectDev: []
})
const rules = {
reportProcessContentYyfx: [{ required: true, message: '请选择', trigger: 'change' }],
userReportProcessContentYyfx: [{ required: true, message: '请选择', trigger: 'change' }],
eventDescriptionYyfx: [{ required: true, message: '请填写事件描述', trigger: 'blur' }],
powerGridAffectDev: [{ required: true, message: '请选择', trigger: 'change' }],
userAffectDev: [{ required: true, message: '请选择', trigger: 'change' }],
fileNameYyfx: [{ required: true, message: '请上传文件', trigger: 'blur' }]
}
// 电网侧原因
const CauseList = dictData.getBasicData('Grid-side_Reasons')
// 用户侧原因
const userCauseList = dictData.getBasicData('User_Reasons')
// 电网侧受影响设备
const powerGridAffectDevList = dictData.getBasicData('Grid_Unit')
// 用户侧受影响设备
const userAffectDevList = dictData.getBasicData('Customer_Unit')
const OnlineList = dictData.getBasicData('Problem_Sources')
const problemData = dictData.getBasicData('Problem_Sources')
const open = (row: any) => {
dialogVisible.value = true
addData.value = row
getAbnormalDetail(row.powerQualityProblemNo).then((res: any) => {
if (res.data.filePathYyfx == null) {
active.value = 0
} else if (res.data.filePathJhzg == null) {
active.value = 1
} else if (res.data.filePathSjcq == null) {
active.value = 2
} else if (res.data.filePathZlxg == null) {
active.value = 3
}
control.value = active.value
})
dialogVisible.value = true
}
const step = (e: number) => {
if (active.value >= e) {
control.value = e
@@ -162,11 +94,23 @@ const step = (e: number) => {
}
// 提交
const Submit = () => {}
const Submit = () => {
if (control.value == 0) {
process0Ref.value.submit()
} else if (control.value == 1) {
} else if (control.value == 2) {
} else if (control.value == 3) {
}
}
// 取消
const handleClose = () => {
dialogVisible.value = false
emit('onSubmit')
}
defineExpose({ open })
</script>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
:deep(.el-upload-list__item) {
width: 400px;
}
</style>