修改 电网一张图bug 技术监督新增 重新发起页面绘制

This commit is contained in:
GGJ
2024-06-02 17:55:37 +08:00
parent 91fa1f60e3
commit c7025c615f
16 changed files with 668 additions and 463 deletions

View File

@@ -23,7 +23,6 @@ export const submitGoNet = (data: any) => {
}) })
} }
export const userReportGoNetById = (data: any) => { export const userReportGoNetById = (data: any) => {
return createAxios({ return createAxios({
url: '/supervision-boot/userReportNormal/userReportGoNetById', url: '/supervision-boot/userReportNormal/userReportGoNetById',
@@ -31,4 +30,11 @@ export const userReportGoNetById = (data: any) => {
params: data params: data
}) })
} }
// 根据id获取用户档案录入的详细数据
export const getById = (data: any) => {
return createAxios({
url: '/supervision-boot/userReport/getById',
method: 'get',
params: data
})
}

View File

@@ -116,7 +116,7 @@ body,
align-items: center !important; align-items: center !important;
} }
.el-upload-list__item-name { .el-upload-list__item-name {
width: 120px !important; width: 150px !important;
} }
.el-upload-list--text { .el-upload-list--text {
margin: 0px 20px 0 !important; margin: 0px 20px 0 !important;
@@ -384,7 +384,7 @@ body,
background: #fff; background: #fff;
z-index: 2; z-index: 2;
} }
.bjs-powered-by{ .bjs-powered-by {
display: none; display: none;
} }

View File

@@ -124,7 +124,7 @@ const tableStore = new TableStore({
3: 'info' 3: 'info'
}, },
replaceValue: { replaceValue: {
0: '禁用', 0: '中断',
1: '正常', 1: '正常',
3: '/' 3: '/'
} }

View File

@@ -124,7 +124,7 @@ const tableStore = new TableStore({
3: 'info' 3: 'info'
}, },
replaceValue: { replaceValue: {
0: '禁用', 0: '中断',
1: '正常', 1: '正常',
3: '/' 3: '/'
} }

View File

@@ -4,32 +4,143 @@
<div> <div>
<vxe-table v-bind="defaultAttribute" ref="vxeRef" height="300px" :data="tableData"> <vxe-table v-bind="defaultAttribute" ref="vxeRef" height="300px" :data="tableData">
<vxe-column field="deptName" title="地市" /> <vxe-column field="deptName" title="地市" />
<vxe-column field="assessData" title="综合评估得分" :formatter="formatter" /> <vxe-column field="assessLevel" title="综合评估结论">
<vxe-column field="qualifyData" title="指标合格率(%)" :formatter="formatter" /> <template #default="scope">
<span
class="conclusion"
:class="
scope.row.assessLevel == '特质'
? 'background1'
: scope.row.assessLevel == '较差'
? 'background2'
: scope.row.assessLevel == '极差'
? 'background3'
: ''
"
>
{{ scope.row.assessLevel }}
</span>
</template>
</vxe-column>
<vxe-column field="qualifyData" title="指标合格率(%)" />
<vxe-colgroup title="电压偏差"> <vxe-colgroup title="电压偏差">
<vxe-column field="vdevAssessData" title="评估得分" :formatter="formatter" /> <vxe-column field="vdevAssessLevel" title="评估结论">
<vxe-column field="vdevQualifyData" title="指标合格率(%)" :formatter="formatter" /> <template #default="scope">
<span
class="conclusion"
:class="
scope.row.vdevAssessLevel == '特质'
? 'background1'
: scope.row.vdevAssessLevel == '较差'
? 'background2'
: scope.row.vdevAssessLevel == '极差'
? 'background3'
: ''
"
>
{{ scope.row.vdevAssessLevel }}
</span>
</template>
</vxe-column>
<vxe-column field="vdevQualifyData" title="指标合格率(%)" />
</vxe-colgroup> </vxe-colgroup>
<vxe-colgroup title="频率偏差"> <vxe-colgroup title="频率偏差">
<vxe-column field="freqAssessData" title="评估得分" :formatter="formatter" /> <vxe-column field="freqAssessLevel" title="评估结论">
<vxe-column field="freqQualifyData" title="指标合格率(%)" :formatter="formatter" /> <template #default="scope">
<span
class="conclusion"
:class="
scope.row.freqAssessLevel == '特质'
? 'background1'
: scope.row.freqAssessLevel == '较差'
? 'background2'
: scope.row.freqAssessLevel == '极差'
? 'background3'
: ''
"
>
{{ scope.row.freqAssessLevel }}
</span>
</template>
</vxe-column>
<vxe-column field="freqQualifyData" title="指标合格率(%)" />
</vxe-colgroup> </vxe-colgroup>
<vxe-colgroup title="电压总谐波畸变率" > <vxe-colgroup title="电压总谐波畸变率">
<vxe-column field="harmAssessData" title="评估得分" :formatter="formatter" /> <vxe-column field="harmAssessLevel" title="评估结论">
<vxe-column field="harmQualifyData" title="指标合格率(%)" :formatter="formatter" /> <template #default="scope">
<span
class="conclusion"
:class="
scope.row.harmAssessLevel == '特质'
? 'background1'
: scope.row.harmAssessLevel == '较差'
? 'background2'
: scope.row.harmAssessLevel == '极差'
? 'background3'
: ''
"
>
{{ scope.row.harmAssessLevel }}
</span>
</template>
</vxe-column>
<vxe-column field="harmQualifyData" title="指标合格率(%)" />
</vxe-colgroup> </vxe-colgroup>
<vxe-colgroup title="电压闪变"> <vxe-colgroup title="电压闪变">
<vxe-column field="flickerAssessData" title="评估得分" :formatter="formatter" /> <vxe-column field="flickerAssessLevel" title="评估结论">
<vxe-column field="flickerQualifyData" title="指标合格率(%)" :formatter="formatter" /> <template #default="scope">
<span
class="conclusion"
:class="
scope.row.flickerAssessLevel == '特质'
? 'background1'
: scope.row.flickerAssessLevel == '较差'
? 'background2'
: scope.row.flickerAssessLevel == '极差'
? 'background3'
: ''
"
>
{{ scope.row.flickerAssessLevel }}
</span>
</template>
</vxe-column>
<vxe-column field="flickerQualifyData" title="指标合格率(%)" />
</vxe-colgroup> </vxe-colgroup>
<vxe-colgroup title="三相电压不平衡度"> <vxe-colgroup title="三相电压不平衡度">
<vxe-column field="unbalanceAssessData" title="评估得分" :formatter="formatter" /> <vxe-column field="unbalanceAssessLevel" title="评估结论">
<vxe-column field="unbalanceQualifyData" title="指标合格率(%)" :formatter="formatter" /> <template #default="scope">
<span
class="conclusion"
:class="
scope.row.unbalanceAssessLevel == '特质'
? 'background1'
: scope.row.unbalanceAssessLevel == '较差'
? 'background2'
: scope.row.unbalanceAssessLevel == '极差'
? 'background3'
: ''
"
>
{{ scope.row.unbalanceAssessLevel }}
</span>
</template>
</vxe-column>
<vxe-column field="unbalanceQualifyData" title="指标合格率(%)" />
</vxe-colgroup> </vxe-colgroup>
</vxe-table> </vxe-table>
</div> </div>
<div style="height: 300px; margin-top: 10px"> <div style="height: 300px; margin-top: 10px; position: relative" v-loading="loading">
<el-select
v-model="time"
size="small"
style="width: 50px; position: absolute; top: 20px; right: 20px; z-index: 1"
@change="analysis"
>
<el-option label="年" value="1" />
<el-option label="月" value="3" />
</el-select>
<MyEChart style="height: 300px" :options="picEChart" /> <MyEChart style="height: 300px" :options="picEChart" />
</div> </div>
</el-dialog> </el-dialog>
@@ -40,7 +151,9 @@ import MyEChart from '@/components/echarts/MyEchart.vue'
import { defaultAttribute } from '@/components/table/defaultAttribute' import { defaultAttribute } from '@/components/table/defaultAttribute'
import { getAssessDetail, getAssessTrend } from '@/api/device-boot/panorama' import { getAssessDetail, getAssessTrend } from '@/api/device-boot/panorama'
const dialogVisible: any = ref(false) const dialogVisible: any = ref(false)
const rowList: any = ref({})
const time = ref('1')
const loading = ref(false)
const tableData: any = ref([]) const tableData: any = ref([])
const picEChart = ref() const picEChart = ref()
@@ -48,7 +161,14 @@ const open = async (row: any) => {
getAssessDetail(row).then(res => { getAssessDetail(row).then(res => {
tableData.value = res.data tableData.value = res.data
}) })
getAssessTrend(row).then(res => { rowList.value = row
analysis(1)
dialogVisible.value = true
}
const analysis = (e: any) => {
loading.value = true
let time = rowList.value.searchBeginTime.slice(0, 4) + `-01-01`
getAssessTrend({ ...rowList.value, searchBeginTime: time, type: e }).then(res => {
picEChart.value = { picEChart.value = {
title: { title: {
text: '各地市综合评估趋势对比' text: '各地市综合评估趋势对比'
@@ -57,9 +177,11 @@ const open = async (row: any) => {
name: '时间', name: '时间',
data: res.data[0].children.map((item: any) => item.dataTime) data: res.data[0].children.map((item: any) => item.dataTime)
}, },
grid: { grid: {
bottom: '10px' bottom: '10px'
}, },
yAxis: { yAxis: {
name: '' name: ''
}, },
@@ -85,16 +207,8 @@ const open = async (row: any) => {
data: item data: item
}) })
}) })
loading.value = false
}) })
dialogVisible.value = true
}
const formatter = (row: any) => {
if (row.cellValue == 3.14159) {
return '/'
} else {
return row.cellValue
}
} }
defineExpose({ open }) defineExpose({ open })
@@ -103,4 +217,27 @@ defineExpose({ open })
:deep(.el-dialog__body) { :deep(.el-dialog__body) {
max-height: none !important; max-height: none !important;
} }
.conclusion {
display: inline-block;
padding: 0 10px;
height: 24px;
line-height: 24px;
border-radius: 4px;
}
.background1 {
background-color: #339966;
color: #fff;
}
.background2 {
background-color: #97017e;
color: #fff;
}
.background3 {
background-color: #cc0000;
color: #fff;
}
:deep(.el-select) {
min-width: 80px !important;
}
</style> </style>

View File

@@ -96,21 +96,45 @@
<el-col :span="12" style="display: flex"> <el-col :span="12" style="display: flex">
<div> <div>
综合评估得分: 综合评估得分:
<span style="color: #299edf"> <span
{{ dropList.assessData == 3.14159 ? '--' : dropList.assessData }} class="conclusion"
:class="
dropList.assessData == '特质'
? 'background1'
: dropList.assessData == '较差'
? 'background2'
: dropList.assessData == '极差'
? 'background3'
: ''
"
>
{{ dropList.assessData }}
</span> </span>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<el-row style="width: 96%" v-for="(item, i) in evaluationData" class="row pb5"> <el-row style="width: 96%" v-for="(item, i) in evaluationData" class="row pb4 pt3">
<el-col :span="14" style="display: flex"> <el-col :span="14" style="display: flex">
<img :src="url[i]" /> <img :src="url[i]" />
<span>{{ item.targetName }}</span> <span style="line-height: 20px">{{ item.targetName }}</span>
</el-col> </el-col>
<el-col :span="10" style="display: flex"> <el-col :span="10" style="display: flex">
<div style="width: 100%"> <div style="width: 100%">
评估得分 评估得分
<span style="color: #299edf">{{ item.avg == 3.14159 ? '--' : item.avg }}</span> <span
class="conclusion"
:class="
item.avg == '特质'
? 'background1'
: item.avg == '较差'
? 'background2'
: item.avg == '极差'
? 'background3'
: ''
"
>
{{ item.avg }}
</span>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
@@ -207,7 +231,7 @@ const open = async (id: string) => {
// 完整性 // 完整性
getTotalIntegrityByLineIds(form).then((res: any) => { getTotalIntegrityByLineIds(form).then((res: any) => {
let num = (res.data || 0) / 100 let num = (res.data || 0) / 100
IntegrityNum.value = num IntegrityNum.value = res.data
ComCharts.value = { ComCharts.value = {
title: { title: {
text: '完整性', text: '完整性',
@@ -256,7 +280,7 @@ const open = async (id: string) => {
label: { label: {
normal: { normal: {
formatter: () => { formatter: () => {
return num * 100 + '%' return (num * 100).toFixed(2) + '%'
}, },
textStyle: { textStyle: {
fontSize: 20, fontSize: 20,
@@ -328,7 +352,7 @@ const open = async (id: string) => {
label: { label: {
normal: { normal: {
formatter: () => { formatter: () => {
return num * 100 + '%' return (num * 100).toFixed(2) + '%'
}, },
textStyle: { textStyle: {
fontSize: 20, fontSize: 20,
@@ -356,31 +380,31 @@ const open = async (id: string) => {
startTime: datePickerRef.value.timeValue[0], startTime: datePickerRef.value.timeValue[0],
endTime: datePickerRef.value.timeValue[1] endTime: datePickerRef.value.timeValue[1]
}).then((res: any) => { }).then((res: any) => {
dropList.value.assessData = res.data.assessData dropList.value.assessData = res.data.assessLevel
evaluationData.value = [ evaluationData.value = [
{ {
targetName: '频率偏差', targetName: '频率偏差',
avg: res.data.freqAssessData, avg: res.data.freqAssessLevel,
sd: res.data.freqQualifyData sd: res.data.freqQualifyData
}, },
{ {
targetName: '电压偏差', targetName: '电压偏差',
avg: res.data.vdevAssessData, avg: res.data.vdevAssessLevel,
sd: res.data.vdevQualifyData sd: res.data.vdevQualifyData
}, },
{ {
targetName: '电压总谐波畸变率', targetName: '电压总谐波畸变率',
avg: res.data.harmAssessData, avg: res.data.harmAssessLevel,
sd: res.data.harmQualifyData sd: res.data.harmQualifyData
}, },
{ {
targetName: '三相电压不平衡度', targetName: '三相电压不平衡度',
avg: res.data.unbalanceAssessData, avg: res.data.unbalanceAssessLevel,
sd: res.data.unbalanceQualifyData sd: res.data.unbalanceQualifyData
}, },
{ {
targetName: '闪变', targetName: '闪变',
avg: res.data.flickerAssessData, avg: res.data.flickerAssessLevel,
sd: res.data.flickerQualifyData sd: res.data.flickerQualifyData
} }
] ]
@@ -645,7 +669,7 @@ defineExpose({ open })
display: grid; display: grid;
grid-template-rows: repeat(5, auto); grid-template-rows: repeat(5, auto);
.row { .row {
margin: 4px 2%; margin: 4px 2% 0;
width: 100%; width: 100%;
box-shadow: 1px 1px 1px 1px #e8e3e3; box-shadow: 1px 1px 1px 1px #e8e3e3;
} }
@@ -665,4 +689,23 @@ defineExpose({ open })
margin-left: 3px; margin-left: 3px;
} }
} }
.conclusion {
display: inline-block;
padding: 0 5px;
height: 20px;
line-height: 20px;
border-radius: 4px;
}
.background1 {
background-color: #339966;
color: #fff;
}
.background2 {
background-color: #97017e;
color: #fff;
}
.background3 {
background-color: #cc0000;
color: #fff;
}
</style> </style>

View File

@@ -329,6 +329,7 @@ const info = async (row: any) => {
numOneList: [] numOneList: []
}) })
}) })
// 监测点告警
getGridDiagramAreaData(form).then((res: any) => { getGridDiagramAreaData(form).then((res: any) => {
let numOne = 0 let numOne = 0
let numOneList: any = [] let numOneList: any = []

View File

@@ -52,7 +52,7 @@
: '' : ''
}" }"
> >
{{ assessList.score }} {{ assessList.level }}
</span> </span>
</div> </div>
<div class="evaluate"> <div class="evaluate">
@@ -80,7 +80,7 @@
: '' : ''
}" }"
> >
{{ item.score == 3.14159 ? '/' : item.score }} {{ item.level }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -1,7 +1,7 @@
<template> <template>
<el-dialog <el-dialog
v-model="dialogFormVisible" v-model="dialogFormVisible"
title="用户档案录入" :title="title"
width="65%" width="65%"
:append-to-body="true" :append-to-body="true"
:before-close="close" :before-close="close"
@@ -161,7 +161,7 @@
<el-select v-model="form.evaluationType" placeholder="请选择评估类型"> <el-select v-model="form.evaluationType" placeholder="请选择评估类型">
<el-option <el-option
v-for="(item, index) in evaluationTypeList" v-for="(item, index) in evaluationTypeList"
:key="indedx" :key="index"
:label="item.name" :label="item.name"
:value="item.id" :value="item.id"
/> />
@@ -464,7 +464,13 @@
</template> </template>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item class="uploadFile" for="-" label="背景电能质量测试报告:" prop="powerQualityReport"> <el-form-item
class="uploadFile"
for="-"
v-if="form.userType == '6'"
label="背景电能质量测试报告:"
prop="powerQualityReport"
>
<el-upload <el-upload
v-model:file-list="form.powerQualityReport" v-model:file-list="form.powerQualityReport"
ref="uploadRef" ref="uploadRef"
@@ -501,7 +507,7 @@ import type { ComponentSize, FormInstance, FormRules } from 'element-plus'
import { useAdminInfo } from '@/stores/adminInfo' import { useAdminInfo } from '@/stores/adminInfo'
import { queryByAllCode } from '@/api/system-boot/dictTree' import { queryByAllCode } from '@/api/system-boot/dictTree'
import { uploadFile } from '@/api/system-boot/file' import { uploadFile } from '@/api/system-boot/file'
import { submitFormData } from '@/api/supervision-boot/interfere/index' import { submitFormData, getById } from '@/api/supervision-boot/interfere/index'
defineProps({ defineProps({
openType: { openType: {
type: String, type: String,
@@ -512,7 +518,7 @@ const emits = defineEmits(['onSubmit'])
const dictData = useDictData() const dictData = useDictData()
const dialogFormVisible = ref(false) const dialogFormVisible = ref(false)
// .doc,.docx,.xlsx,.xls,.pdf // .doc,.docx,.xlsx,.xls,.pdf
const acceptType='' const acceptType = ''
const form: any = ref({}) const form: any = ref({})
const ruleFormRef: any = ref(null) const ruleFormRef: any = ref(null)
//字典获取所属地市 //字典获取所属地市
@@ -532,52 +538,53 @@ const evaluationDeptList = dictData.getBasicData('evaluation_dept')
const userTypeList = reactive([ const userTypeList = reactive([
{ {
label: '新建电网工程', label: '新建电网工程',
value: '0' value: 0
}, },
{ {
label: '扩建电网工程', label: '扩建电网工程',
value: '1' value: 1
}, },
{ {
label: '新建非线性负荷用户', label: '新建非线性负荷用户',
value: '2' value: 2
}, },
{ {
label: '扩建非线性负荷用户', label: '扩建非线性负荷用户',
value: '3' value: 3
}, },
{ {
label: '新建新能源发电站', label: '新建新能源发电站',
value: '4' value: 4
}, },
{ {
label: '扩建新能源发电站', label: '扩建新能源发电站',
value: '5' value: 5
}, },
{ {
label: '敏感及重要用户', label: '敏感及重要用户',
value: '6' value: 6
} }
]) ])
//用户状态数组 //用户状态数组
const userStateList = reactive([ const userStateList = reactive([
{ {
label: '可研', label: '可研',
value: '0' value: 0
}, },
{ {
label: '建设', label: '建设',
value: '1' value: 1
}, },
{ {
label: '运行', label: '运行',
value: '2' value: 2
}, },
{ {
label: '退运', label: '退运',
value: '3' value: 3
} }
]) ])
const title = ref('')
//获取非线性设备类型树形下拉 //获取非线性设备类型树形下拉
const defaultProps = { const defaultProps = {
children: 'children', children: 'children',
@@ -593,7 +600,7 @@ const resetForm = () => {
reportDate: new Date(), //填报日期 1 reportDate: new Date(), //填报日期 1
orgId: '', //填报部门 1 orgId: '', //填报部门 1
expectedProductionDate: '', //工程预期投产日期 1 expectedProductionDate: '', //工程预期投产日期 1
userType: '0', //用户性质 1 userType: 0, //用户性质 1
city: areaOptionList[0].name, //所属地市 1 city: areaOptionList[0].name, //所属地市 1
responsibleDepartment: '', //归口管理部门 1 responsibleDepartment: '', //归口管理部门 1
userStatus: userStateList[0].value, //用户状态 1 userStatus: userStateList[0].value, //用户状态 1
@@ -684,7 +691,7 @@ const subForm: any = ref({
responsibleDepartment: '', //归口管理部门 responsibleDepartment: '', //归口管理部门
substation: '', ////变电站 substation: '', ////变电站
userStatus: '0', //用户状态 userStatus: '0', //用户状态
userType: '0', //用户性质 userType: 0, //用户性质
voltageLevel: '', voltageLevel: '',
//userType=='0' '1' //userType=='0' '1'
userReportProjectPO: { userReportProjectPO: {
@@ -749,286 +756,46 @@ const subForm: any = ref({
//定义校验规则 //定义校验规则
const rules = ref({ const rules = ref({
reporter: [ reporter: [{ required: true, message: '请输入填报人', trigger: 'blur' }],
{ reportDate: [{ required: true, message: '请选择填报日期', trigger: 'change' }],
required: true, orgId: [{ required: true, message: '请选择填报部门', trigger: 'change' }],
message: '请输入填报人', expectedProductionDate: [{ required: true, message: '请选择工程预期投产日期', trigger: 'change' }],
trigger: 'blur' userType: [{ required: true, message: '清选择用户性质', trigger: 'change' }],
} city: [{ required: true, message: '请选择所属地市', trigger: 'change' }],
], responsibleDepartment: [{ required: true, message: '请输入归口管理部门', trigger: 'blur' }],
reportDate: [ userStatus: [{ required: true, message: '请选择用户状态', trigger: 'change' }],
{ projectName: [{ required: true, message: '请输入工程名称', trigger: 'blur' }],
required: true, substation: [{ required: true, message: '请输入变电站', trigger: 'blur' }],
message: '请选择填报日期', voltageLevel: [{ required: true, message: '请选择电压等级', trigger: 'change' }],
trigger: 'change' evaluationDept: [{ required: true, message: '请选择预测评估单位', trigger: 'change' }],
} evaluationConclusion: [{ required: true, message: '请输入预测评估结论', trigger: 'blur' }],
], agreementCapacity: [{ required: true, message: '请选择用户协议容量', trigger: 'blur' }],
orgId: [ nonlinearDeviceType: [{ required: true, message: '请选择非线性设备类型', trigger: 'change' }],
{ needGovernance: [{ required: true, message: '请选择是否需要治理', trigger: 'change' }],
required: true, backgroundTestPerformed: [{ required: true, message: '请选择是否开展背景测试', trigger: 'change' }],
message: '请选择填报部门', state: [{ required: true, message: '请选择数据状态', trigger: 'change' }],
trigger: 'change' pccPoint: [{ required: true, message: '请输入PCC点', trigger: 'blur' }],
} industry: [{ required: true, message: '请选择行业', trigger: 'change' }],
], deviceName: [{ required: true, message: '请输入敏感装置名称', trigger: 'blur' }],
expectedProductionDate: [ powerSupplyCount: [{ required: true, message: '请输入供电电源数量', trigger: 'blur' }],
{ energyQualityIndex: [{ required: true, message: '请输入敏感电能质量指标', trigger: 'blur' }],
required: true, evaluationType: [{ required: true, message: '请选择评估类型', trigger: 'change' }],
message: '请选择工程预期投产日期', antiInterferenceTest: [{ required: true, message: '请选择是否开展抗扰度测试', trigger: 'change' }],
trigger: 'change' evaluationChekDept: [{ required: true, message: '请输入预测评估审单位', trigger: 'blur' }],
} baseShortCircuitCapacity: [{ required: true, message: '请输入基准短路容量', trigger: 'blur' }],
], minShortCircuitCapacity: [{ required: true, message: '请输入系统最小短路容量', trigger: 'blur' }],
userType: [ pccEquipmentCapacity: [{ required: true, message: '请输入PCC供电设备容量', trigger: 'blur' }],
{ userAgreementCapacity: [{ required: true, message: '请输入用户用电协议容量', trigger: 'blur' }],
required: true, nonlinearLoadType: [{ required: true, message: '请输入非线性负荷类型', trigger: 'blur' }],
message: '清选择用户性质', substationMainWiringDiagram: [{ required: true, message: '请上传用户接入变电站主接线示意图', trigger: 'change' }],
trigger: 'change' sensitiveDevices: [{ required: true, message: '请上传主要敏感设备清单', trigger: 'change' }],
} antiInterferenceReport: [{ required: true, message: '请上传抗扰度测试报告', trigger: 'change' }],
], powerQualityReport: [{ required: true, message: '请上传背景电能质量测试报告', trigger: 'change' }],
city: [ feasibilityReport: [{ required: true, message: '请上传可研报告', trigger: 'blur' }],
{ preliminaryDesignDescription: [{ required: true, message: '请上传项目初步设计说明书', trigger: 'blur' }],
required: true, predictionEvaluationReport: [{ required: true, message: '请上传预测评估报告', trigger: 'blur' }],
message: '请选择所属地市', predictionEvaluationReviewOpinions: [{ required: true, message: '请上传预测评估评审意见报告', trigger: 'blur' }],
trigger: 'change' additionalAttachments: [{ required: false, message: '请上传其他附件', trigger: 'blur' }]
}
],
responsibleDepartment: [
{
required: true,
message: '请输入归口管理部门',
trigger: 'blur'
}
],
userStatus: [
{
required: true,
message: '请选择用户状态',
trigger: 'change'
}
],
projectName: [
{
required: true,
message: '请输入工程名称',
trigger: 'blur'
}
],
substation: [
{
required: true,
message: '请输入变电站',
trigger: 'blur'
}
],
voltageLevel: [
{
required: true,
message: '请选择电压等级',
trigger: 'change'
}
],
evaluationDept: [
{
required: true,
message: '请选择预测评估单位',
trigger: 'change'
}
],
evaluationConclusion: [
{
required: true,
message: '请输入预测评估结论',
trigger: 'blur'
}
],
agreementCapacity: [
{
required: true,
message: '请选择用户协议容量',
trigger: 'blur'
}
],
nonlinearDeviceType: [
{
required: true,
message: '请选择非线性设备类型',
trigger: 'change'
}
],
needGovernance: [
{
required: true,
message: '请选择是否需要治理',
trigger: 'change'
}
],
backgroundTestPerformed: [
{
required: true,
message: '请选择是否开展背景测试',
trigger: 'change'
}
],
state: [
{
required: true,
message: '请选择数据状态',
trigger: 'change'
}
],
pccPoint: [
{
required: true,
message: '请输入PCC点',
trigger: 'blur'
}
],
industry: [
{
required: true,
message: '请选择行业',
trigger: 'change'
}
],
deviceName: [
{
required: true,
message: '请输入敏感装置名称',
trigger: 'blur'
}
],
powerSupplyCount: [
{
required: true,
message: '请输入供电电源数量',
trigger: 'blur'
}
],
energyQualityIndex: [
{
required: true,
message: '请输入敏感电能质量指标',
trigger: 'blur'
}
],
evaluationType: [
{
required: true,
message: '请选择评估类型',
trigger: 'change'
}
],
antiInterferenceTest: [
{
required: true,
message: '请选择是否开展抗扰度测试',
trigger: 'change'
}
],
evaluationChekDept: [
{
required: true,
message: '请输入预测评估审单位',
trigger: 'blur'
}
],
baseShortCircuitCapacity: [
{
required: true,
message: '请输入基准短路容量',
trigger: 'blur'
}
],
minShortCircuitCapacity: [
{
required: true,
message: '请输入系统最小短路容量',
trigger: 'blur'
}
],
pccEquipmentCapacity: [
{
required: true,
message: '请输入PCC供电设备容量',
trigger: 'blur'
}
],
userAgreementCapacity: [
{
required: true,
message: '请输入用户用电协议容量',
trigger: 'blur'
}
],
nonlinearLoadType: [
{
required: true,
message: '请输入非线性负荷类型',
trigger: 'blur'
}
],
substationMainWiringDiagram: [
{
required: true,
message: '请上传用户接入变电站主接线示意图',
trigger: 'change'
}
],
sensitiveDevices: [
{
required: true,
message: '请上传主要敏感设备清单',
trigger: 'change'
}
],
antiInterferenceReport: [
{
required: true,
message: '请上传抗扰度测试报告',
trigger: 'change'
}
],
powerQualityReport: [
{
required: true,
message: '请上传背景电能质量测试报告',
trigger: 'change'
}
],
feasibilityReport: [
{
required: true,
message: '请上传可研报告',
trigger: 'blur'
}
],
preliminaryDesignDescription: [
{
required: true,
message: '请上传项目初步设计说明书',
trigger: 'blur'
}
],
predictionEvaluationReport: [
{
required: true,
message: '请上传预测评估报告',
trigger: 'blur'
}
],
predictionEvaluationReviewOpinions: [
{
required: true,
message: '请上传预测评估评审意见报告',
trigger: 'blur'
}
],
additionalAttachments: [
{
required: false,
message: '请上传其他附件',
trigger: 'blur'
}
]
}) })
watch( watch(
() => form.value, () => form.value,
@@ -1137,8 +904,63 @@ watch(
deep: true deep: true
} }
) )
const open = () => { const open = async (row: any) => {
title.value = row.title
dialogFormVisible.value = true dialogFormVisible.value = true
if (row.row) {
await getById({ id: row.row.id }).then(res => {
// form.value.userType = res.data.userType
if (res.data.userReportProjectPO != null) {
// userType 0 1
form.value = { ...res.data, ...res.data.userReportProjectPO }
fileRaw(res.data, 'userReportProjectPO')
} else if (res.data.userReportSubstationPO != null) {
// userType 2 3 4 5
form.value = { ...res.data, ...res.data.userReportSubstationPO }
fileRaw(res.data, 'userReportSubstationPO')
} else if (res.data.userReportSensitivePO != null) {
// userType6
form.value = { ...res.data, ...res.data.userReportSensitivePO }
fileRaw(res.data, 'userReportSensitivePO')
}
form.value.orgId = adminInfo.$state.deptName
})
}
}
// 处理上传文件回显
const fileRaw = (row: any, key: string) => {
let list = [
'feasibilityReport',
'preliminaryDesignDescription',
'predictionEvaluationReport',
'predictionEvaluationReviewOpinions',
'additionalAttachments',
'substationMainWiringDiagram',
'sensitiveDevices',
'antiInterferenceReport',
'powerQualityReport'
]
for (let k of list) {
if (row[key][k]) {
form.value[k] = [
{
name: row[key][k].split('/')[2]
}
]
}
}
feasibilityReport.value = row[key].feasibilityReport
preliminaryDesignDescription.value = row[key].preliminaryDesignDescription
predictionEvaluationReport.value = row[key].predictionEvaluationReport
predictionEvaluationReviewOpinions.value = row[key].predictionEvaluationReviewOpinions
additionalAttachments.value = row[key].additionalAttachments
substationMainWiringDiagram.value = row[key].substationMainWiringDiagram
sensitiveDevices.value = row[key].sensitiveDevices
antiInterferenceReport.value = row[key].antiInterferenceReport
powerQualityReport.value = row.powerQualityReport
} }
const close = () => { const close = () => {
//重置表单内容 //重置表单内容
@@ -1167,7 +989,7 @@ const uploadFileName = val => {
uploadName.value = val uploadName.value = val
} }
//移除文件上传 //移除文件上传
const removeFile = (file: any,uploadFiles:any) => { const removeFile = (file: any, uploadFiles: any) => {
console.log(file, uploadFiles) console.log(file, uploadFiles)
} }
// 可研报告数组 // 可研报告数组
@@ -1189,6 +1011,7 @@ const antiInterferenceReport = ref('')
//背景电能质量测试报告: //背景电能质量测试报告:
const powerQualityReport = ref('') const powerQualityReport = ref('')
const choose = (e: any) => { const choose = (e: any) => {
// console.log('🚀 ~ choose ~ e:', e)
uploadFile(e.raw, '/supervision/').then(res => { uploadFile(e.raw, '/supervision/').then(res => {
//可研报告 //可研报告
if (uploadName.value == 'feasibilityReport') { if (uploadName.value == 'feasibilityReport') {
@@ -1235,7 +1058,7 @@ const disabledDate = time => {
} }
//提交 //提交
const confirmForm = () => { const confirmForm = () => {
ruleFormRef.value.validate(valid => { ruleFormRef.value.validate((valid: any) => {
if (valid) { if (valid) {
//整理上传文件的数据 //整理上传文件的数据
// userType==0,1 // userType==0,1
@@ -1395,6 +1218,7 @@ const confirmForm = () => {
} }
} }
} }
if (title.value == '用户档案录入') {
submitFormData(confirmFormData).then(res => { submitFormData(confirmFormData).then(res => {
if (res.code == 'A0000') { if (res.code == 'A0000') {
ElMessage({ ElMessage({
@@ -1406,6 +1230,9 @@ const confirmForm = () => {
close() close()
} }
}) })
} else {
console.log(confirmFormData)
}
} else { } else {
console.log('表单验证失败') console.log('表单验证失败')
return false return false

View File

@@ -122,7 +122,35 @@ const tableStore = new TableStore({
click: row => { click: row => {
handleAudit(row.processInstanceId) handleAudit(row.processInstanceId)
} }
} },
// {
// name: 'edit',
// title: '重新发起',
// type: 'warning',
// icon: 'el-icon-Open',
// render: 'basicButton',
// disabled: row => {
// return row.status == 1 || row.status == 2
// },
// click: row => {
// addForms.value.open({
// title: '重新发起',
// row: row
// })
// }
// },
// {
// name: 'cancel',
// title: '取消',
// type: 'danger',
// icon: 'el-icon-Open',
// render: 'basicButton',
// disabled: row => {
// return row.status == 3 || row.status == 2 || row.status == 4
// },
// click: row => {
// }
// }
] ]
} }
], ],
@@ -132,8 +160,8 @@ const tableStore = new TableStore({
tableStore.table.params.relationUserName = tableStore.table.params.userName tableStore.table.params.relationUserName = tableStore.table.params.userName
} }
}) })
tableStore.table.params.city='' tableStore.table.params.city = ''
tableStore.table.params.projectName='' tableStore.table.params.projectName = ''
tableStore.table.params.loadType = '' tableStore.table.params.loadType = ''
tableStore.table.params.userName = '' tableStore.table.params.userName = ''
tableStore.table.params.fileUploadflag = '' tableStore.table.params.fileUploadflag = ''
@@ -146,11 +174,12 @@ const addList = () => {
const addForms = ref() const addForms = ref()
const addFormModel = () => { const addFormModel = () => {
show.value=true show.value = true
setTimeout(() => { setTimeout(() => {
addForms.value.open() addForms.value.open({
}, 0); title: '用户档案录入'
})
}, 0)
} }
// 导出 // 导出

View File

@@ -1,7 +1,7 @@
<template> <template>
<el-dialog <el-dialog
v-model="dialogFormVisible" v-model="dialogFormVisible"
title="技术监督计划" :title="title"
width="65%" width="65%"
:append-to-body="true" :append-to-body="true"
:before-close="close" :before-close="close"
@@ -197,7 +197,7 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item for="-" label="其他要求:" style="width:100%;"> <el-form-item for="-" label="其他要求:" style="width: 100%">
<el-input <el-input
type="textarea" type="textarea"
v-model="form.otherRemark" v-model="form.otherRemark"
@@ -362,15 +362,16 @@ import { genFileId, ElMessage } from 'element-plus'
import { useDictData } from '@/stores/dictData' import { useDictData } from '@/stores/dictData'
import { useAdminInfo } from '@/stores/adminInfo' import { useAdminInfo } from '@/stores/adminInfo'
import { uploadFile } from '@/api/system-boot/file' import { uploadFile } from '@/api/system-boot/file'
import { addPlanFormData, getUserByDeptId } from '@/api/supervision-boot/plan/index' import { addPlanFormData, getUserByDeptId, getPlanDetailsById } from '@/api/supervision-boot/plan/index'
import Area from '@/components/form/area/index.vue' import Area from '@/components/form/area/index.vue'
const emits = defineEmits(['onSubmit']) const emits = defineEmits(['onSubmit'])
const dictData = useDictData() const dictData = useDictData()
const dialogFormVisible = ref(false) const dialogFormVisible = ref(false)
const form: any = ref({}) const form: any = ref({})
const title = ref('')
const ruleFormRef = ref(null) const ruleFormRef = ref(null)
// .xls,.xlsx // .xls,.xlsx
const acceptType='' const acceptType = ''
//获取登陆用户姓名和部门 //获取登陆用户姓名和部门
const adminInfo = useAdminInfo() const adminInfo = useAdminInfo()
//字典获取监督类型 //字典获取监督类型
@@ -556,8 +557,14 @@ watch(
immediate: true immediate: true
} }
) )
const open = () => { const open = (row: any) => {
title.value = row.title
dialogFormVisible.value = true dialogFormVisible.value = true
if (row.row) {
getPlanDetailsById({ id: '861efbc90d1fae8e276f477081dd85fe' }).then(res => {
form.value = res.data
})
}
} }
const close = () => { const close = () => {
//重置表单内容 //重置表单内容
@@ -681,6 +688,7 @@ const confirmForm = () => {
// alarmFeedbackMaterials: alarmFeedbackMaterials.value, //告预警单反馈材料 // alarmFeedbackMaterials: alarmFeedbackMaterials.value, //告预警单反馈材料
// assessReport: assessReport.value //评估报告 // assessReport: assessReport.value //评估报告
// } // }
if (title.value == '技术监督计划') {
addPlanFormData(confirmFormData).then(res => { addPlanFormData(confirmFormData).then(res => {
if (res.code == 'A0000') { if (res.code == 'A0000') {
ElMessage({ ElMessage({
@@ -692,6 +700,9 @@ const confirmForm = () => {
close() close()
} }
}) })
} else {
console.log(confirmFormData)
}
} else { } else {
console.log('表单验证失败') console.log('表单验证失败')
return false return false
@@ -700,6 +711,4 @@ const confirmForm = () => {
} }
defineExpose({ open }) defineExpose({ open })
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped></style>
</style>

View File

@@ -44,10 +44,11 @@ import { getLoadTypeUserList } from '@/api/process-boot/interference'
import { useDictData } from '@/stores/dictData' import { useDictData } from '@/stores/dictData'
import addForm from './components/addForm.vue' import addForm from './components/addForm.vue'
import effectProblem from './components/effectProblem/index.vue' import effectProblem from './components/effectProblem/index.vue'
import { planDetailsAudit ,sendAlarm} from '@/api/supervision-boot/plan/index' import { planDetailsAudit, sendAlarm } from '@/api/supervision-boot/plan/index'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
defineOptions({ defineOptions({
name: 'supervise/plan' name: 'plan'
}) })
// const layout = mainHeight(120) as any // const layout = mainHeight(120) as any
const dictData = useDictData() const dictData = useDictData()
@@ -174,6 +175,23 @@ const tableStore = new TableStore({
return !row.processInstanceId return !row.processInstanceId
} }
}, },
// {
// name: 'edit',
// title: '重新发起',
// type: 'warning',
// icon: 'el-icon-Open',
// render: 'basicButton',
// disabled: row => {
// return row.status == 1 || row.status == 2
// },
// click: row => {
// addForms.value.open({
// title: '重新发起',
// row: row
// })
// }
// },
{ {
name: 'productSetting', name: 'productSetting',
title: '实施问题', title: '实施问题',
@@ -197,6 +215,20 @@ const tableStore = new TableStore({
handleAudit(row) handleAudit(row)
} }
}, },
// {
// name: 'cancel',
// title: '取消',
// type: 'danger',
// icon: 'el-icon-Open',
// render: 'basicButton',
// disabled: row => {
// return row.status == 3 || row.status == 2 || row.status == 4
// },
// click: row => {
// // cancelLeave(row)
// }
// },
{ {
name: 'productSetting', name: 'productSetting',
title: '发起告警单', title: '发起告警单',
@@ -240,7 +272,9 @@ provide('tableStore', tableStore)
const addForms = ref() const addForms = ref()
const addFormModel = () => { const addFormModel = () => {
setTimeout(() => { setTimeout(() => {
addForms.value.open() addForms.value.open({
title: '技术监督计划'
})
}, 0) }, 0)
} }
const exportEvent = () => { const exportEvent = () => {
@@ -279,7 +313,7 @@ const handleAudit = (row: any) => {
}) })
} }
//发起告警单 //发起告警单
const handleAlarmForm=(row:any)=>{ const handleAlarmForm = (row: any) => {
sendAlarm({ id: row.planId }).then(res => { sendAlarm({ id: row.planId }).then(res => {
ElMessage.success('发起告警单成功!') ElMessage.success('发起告警单成功!')
tableStore.index() tableStore.index()

View File

@@ -1,7 +1,7 @@
<template> <template>
<el-dialog <el-dialog
v-model="dialogFormVisible" v-model="dialogFormVisible"
title="监测点信息" :title="title"
width="65%" width="65%"
:append-to-body="true" :append-to-body="true"
:before-close="close" :before-close="close"
@@ -348,12 +348,13 @@
</el-dialog> </el-dialog>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, onMounted, reactive, defineExpose, defineProps, defineEmits, watch, onUnmounted } from 'vue' import { ref, onMounted, reactive, defineExpose, nextTick, defineEmits, watch, onUnmounted } from 'vue'
import type { UploadInstance, UploadProps, UploadRawFile } from 'element-plus' import type { UploadInstance, UploadProps, UploadRawFile } from 'element-plus'
import { genFileId, ElMessage } from 'element-plus' import { genFileId, ElMessage } from 'element-plus'
import { useDictData } from '@/stores/dictData' import { useDictData } from '@/stores/dictData'
import { useAdminInfo } from '@/stores/adminInfo' import { useAdminInfo } from '@/stores/adminInfo'
import { uploadFile } from '@/api/system-boot/file' import { uploadFile } from '@/api/system-boot/file'
import { getTempLineDetailsById } from '@/api/supervision-boot/monitorpoint/index'
import { getDeviceList } from '@/api/supervision-boot/terminal/index' import { getDeviceList } from '@/api/supervision-boot/terminal/index'
import { addMointorPointFormData, getList } from '@/api/supervision-boot/monitorpoint/index' import { addMointorPointFormData, getList } from '@/api/supervision-boot/monitorpoint/index'
import { queryByAllCode } from '@/api/system-boot/dictTree' import { queryByAllCode } from '@/api/system-boot/dictTree'
@@ -362,9 +363,10 @@ const emits = defineEmits(['onSubmit'])
const dictData = useDictData() const dictData = useDictData()
const dialogFormVisible = ref(false) const dialogFormVisible = ref(false)
const form: any = ref({}) const form: any = ref({})
const ruleFormRef = ref(null) const title = ref('')
const ruleFormRef:any = ref(null)
// acceptType .doc,.docx,.xlsx,.xls,.pdf // acceptType .doc,.docx,.xlsx,.xls,.pdf
const acceptType='' const acceptType = ''
//字典获取所属地市 //字典获取所属地市
const areaOptionList = dictData.getBasicData('jibei_area') const areaOptionList = dictData.getBasicData('jibei_area')
//字典获取监测点电压等级 //字典获取监测点电压等级
@@ -423,7 +425,7 @@ const operationStatusList = [
} }
] ]
//定义接线方式下拉框数据 //定义接线方式下拉框数据
const ptTypeList=[ const ptTypeList = [
{ {
id: '0', id: '0',
name: '星型接法' name: '星型接法'
@@ -435,7 +437,7 @@ const ptTypeList=[
{ {
id: '2', id: '2',
name: '开口三角型接法' name: '开口三角型接法'
}, }
] ]
//定义线路号下拉框数据 //定义线路号下拉框数据
const numList = [ const numList = [
@@ -478,7 +480,7 @@ const numList = [
{ {
id: '10', id: '10',
name: '10' name: '10'
}, }
] ]
//获取登陆用户姓名和部门 //获取登陆用户姓名和部门
const adminInfo = useAdminInfo() const adminInfo = useAdminInfo()
@@ -547,8 +549,8 @@ const resetForm = () => {
voltageDeviationLowerLimit: '0', //电压偏差下限 voltageDeviationLowerLimit: '0', //电压偏差下限
voltageDeviationUpperLimit: '0', // 电压偏差上限 voltageDeviationUpperLimit: '0', // 电压偏差上限
voltageLevel: voltageLevelList[0].id, //监测点电压等级 voltageLevel: voltageLevelList[0].id, //监测点电压等级
ptType:ptTypeList[0].id,//接线方式 ptType: ptTypeList[0].id, //接线方式
num:numList[0].id,//线路号 num: numList[0].id //线路号
} }
let obj = {} let obj = {}
getList(obj).then(res => { getList(obj).then(res => {
@@ -567,7 +569,7 @@ const resetForm = () => {
expectedProductionDate: obj.expectedProductionDate, expectedProductionDate: obj.expectedProductionDate,
userName: userNameList.value[0]?.projectName, userName: userNameList.value[0]?.projectName,
userId: userNameList.value[0]?.id, userId: userNameList.value[0]?.id,
objName:userNameList.value[0]?.projectName, objName: userNameList.value[0]?.projectName
} }
}) })
changevoltageDeviationLimit() changevoltageDeviationLimit()
@@ -604,13 +606,13 @@ findAllMonitoringTerminalList()
//获取树形图数据 //获取树形图数据
const treeData: any = ref('') const treeData: any = ref('')
//干扰源类型 取树形图第一层children数据 //干扰源类型 取树形图第一层children数据
const loadTypeList = ref([]) const loadTypeList: any = ref([])
//干扰源类别 取树形图第二层children数据 //干扰源类别 取树形图第二层children数据
const businessTypeList = ref([]) const businessTypeList: any = ref([])
const getTreeList = () => { const getTreeList = () => {
queryByAllCode().then(res => { queryByAllCode().then(res => {
treeData.value = [res.data.find(item => item.code == 'Major_Nonlinear_Device')] treeData.value = [res.data.find((item: any) => item.code == 'Major_Nonlinear_Device')]
treeData.value[0].children.map(item => { treeData.value[0].children.map((item: any) => {
//干扰源类型数据 //干扰源类型数据
loadTypeList.value.push({ loadTypeList.value.push({
id: item?.id, id: item?.id,
@@ -632,7 +634,7 @@ const changeLoadType = async () => {
} }
//选择关联干扰源回显数据 //选择关联干扰源回显数据
const changeUserName = () => { const changeUserName = () => {
let obj = projectList.value.find(item => { let obj: any = projectList.value.find((item: any) => {
return form.value.userName == item.id return form.value.userName == item.id
}) })
form.value = { form.value = {
@@ -646,8 +648,8 @@ const changeUserName = () => {
userName: obj?.projectName, userName: obj?.projectName,
userId: obj?.id, userId: obj?.id,
expectedProductionDate: obj?.expectedProductionDate, expectedProductionDate: obj?.expectedProductionDate,
objName:obj?.projectName, objName: obj?.projectName,
userStatus:obj?.userStatus+'' userStatus: obj?.userStatus + ''
} }
} }
//定义校验规则 //定义校验规则
@@ -873,10 +875,28 @@ watch(
immediate: true immediate: true
} }
) )
const open = () => { const open = (row: any) => {
dialogFormVisible.value = true dialogFormVisible.value = true
//初始化数据 //初始化数据
resetForm() resetForm()
title.value = row.title
nextTick(() => {
if (row.row) {
getTempLineDetailsById({ id: row.row.id }).then(res => {
form.value = res.data
form.value.loadType = loadTypeList.value.filter((item: any) => item.name == res.data.loadType)[0]?.id
form.value.businessType = businessTypeList.value.filter(
(item: any) => item.name == res.data.businessType
)[0]?.id
form.value.mainWiringDiagram = [
{
name: res.data.mainWiringDiagram.split('/')[2]
}
]
mainWiringDiagram.value = res.data.mainWiringDiagram
})
}
})
} }
const close = () => { const close = () => {
//重置表单内容 //重置表单内容
@@ -903,7 +923,7 @@ const uploadFileName = val => {
uploadName.value = val uploadName.value = val
} }
//移除文件上传 //移除文件上传
const removeFile = (file: any,uploadFiles:any) => { const removeFile = (file: any, uploadFiles: any) => {
console.log(file, uploadFiles) console.log(file, uploadFiles)
} }
//监测点台账信息 //监测点台账信息
@@ -951,8 +971,8 @@ const confirmForm = () => {
ptRatio: form.value.ptRatio / form.value.ptRatio2, //PT变比 ptRatio: form.value.ptRatio / form.value.ptRatio2, //PT变比
ctRatio: form.value.ctRatio / form.value.ctRatio2 //CT变比 ctRatio: form.value.ctRatio / form.value.ctRatio2 //CT变比
} }
if (title.value == '监测点信息') {
addMointorPointFormData(confirmFormData).then(res => { addMointorPointFormData(confirmFormData).then(res => {
if (res.code == 'A0000') {
ElMessage({ ElMessage({
message: '新增成功', message: '新增成功',
type: 'success' type: 'success'
@@ -960,8 +980,9 @@ const confirmForm = () => {
ruleFormRef.value.resetFields() ruleFormRef.value.resetFields()
resetForm() resetForm()
close() close()
}
}) })
} else {
}
} else { } else {
console.log('表单验证失败') console.log('表单验证失败')
return false return false

View File

@@ -96,7 +96,36 @@ const tableStore = new TableStore({
click: row => { click: row => {
handleAudit(row.processInstanceId) handleAudit(row.processInstanceId)
} }
} },
// {
// name: 'edit',
// title: '重新发起',
// type: 'warning',
// icon: 'el-icon-Open',
// render: 'basicButton',
// disabled: row => {
// return row.status == 1 || row.status == 2
// },
// click: row => {
// addForms.value.open({
// title: '重新发起',
// row: row
// })
// }
// },
// {
// name: 'cancel',
// title: '取消',
// type: 'danger',
// icon: 'el-icon-Open',
// render: 'basicButton',
// disabled: row => {
// return row.status == 3 || row.status == 2 || row.status == 4
// },
// click: row => {
// // cancelLeave(row)
// }
// }
] ]
} }
], ],
@@ -116,7 +145,9 @@ provide('tableStore', tableStore)
const addForms = ref() const addForms = ref()
const addFormModel = () => { const addFormModel = () => {
setTimeout(() => { setTimeout(() => {
addForms.value.open() addForms.value.open({
title: '监测点信息'
})
}, 0) }, 0)
} }

View File

@@ -1,7 +1,7 @@
<template> <template>
<el-dialog <el-dialog
v-model="dialogFormVisible" v-model="dialogFormVisible"
title="终端信息" :title="title"
width="65%" width="65%"
:append-to-body="true" :append-to-body="true"
:before-close="close" :before-close="close"
@@ -405,8 +405,8 @@
<el-form-item for="-" label="对时功能:" prop="timeSyncFunction"> <el-form-item for="-" label="对时功能:" prop="timeSyncFunction">
<!-- 默认值 开启 --> <!-- 默认值 开启 -->
<el-radio-group v-model="form.timeSyncFunction"> <el-radio-group v-model="form.timeSyncFunction">
<el-radio value="1">开启</el-radio> <el-radio :value="1">开启</el-radio>
<el-radio value="0">关闭</el-radio> <el-radio :value="0">关闭</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item for="-" label="电镀功能:" prop="electroplatingFunction"> <el-form-item for="-" label="电镀功能:" prop="electroplatingFunction">
@@ -446,7 +446,6 @@
</el-form-item> </el-form-item>
<!-- </div> --> <!-- </div> -->
<el-divider content-position="left">附件材料</el-divider> <el-divider content-position="left">附件材料</el-divider>
<!-- <div id="part3" class="form-two"> -->
<el-form-item for="-" label="信息安全检测报告:" class="uploadFile" prop="informationSecurityTestReport"> <el-form-item for="-" label="信息安全检测报告:" class="uploadFile" prop="informationSecurityTestReport">
<el-upload <el-upload
v-model:file-list="form.informationSecurityTestReport" v-model:file-list="form.informationSecurityTestReport"
@@ -573,8 +572,6 @@
</template> </template>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<!-- </div> -->
<!-- </el-tabs> -->
</el-form> </el-form>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
@@ -596,13 +593,14 @@ import { useAdminInfo } from '@/stores/adminInfo'
import { uploadFile } from '@/api/system-boot/file' import { uploadFile } from '@/api/system-boot/file'
import { addTerminalFormData, getSubstationVoltageLevel } from '@/api/supervision-boot/terminal/index' import { addTerminalFormData, getSubstationVoltageLevel } from '@/api/supervision-boot/terminal/index'
import { getAllDeptList } from '@/api/common' import { getAllDeptList } from '@/api/common'
import { formatDate } from '@/utils/formatTime' import { getTerminalDetailsById } from '@/api/supervision-boot/terminal/index'
import { nodeAllList } from '@/api/device-boot/Business' import { nodeAllList } from '@/api/device-boot/Business'
const emits = defineEmits(['onSubmit']) const emits = defineEmits(['onSubmit'])
const dictData = useDictData() const dictData = useDictData()
const dialogFormVisible = ref(false) const dialogFormVisible = ref(false)
const form: any = ref({}) const form: any = ref({})
const ruleFormRef = ref(null) const ruleFormRef: any = ref(null)
const title = ref('')
// acceptType .xls,.xlsx // acceptType .xls,.xlsx
const acceptType = '' const acceptType = ''
//字典获取所属地市 //字典获取所属地市
@@ -668,6 +666,7 @@ const terminalModelList = [
name: '离线' name: '离线'
} }
] ]
const substationList: any = ref([])
//字典获取通讯类型 //字典获取通讯类型
const frontTypeList = dictData.getBasicData('Front_Type') const frontTypeList = dictData.getBasicData('Front_Type')
//定义通讯状态下拉框数据 //定义通讯状态下拉框数据
@@ -706,18 +705,18 @@ const summonFlagList = [
//定义电镀功能下拉框数据 //定义电镀功能下拉框数据
const electroplatingFunctionList = [ const electroplatingFunctionList = [
{ {
id: '0', id: 0,
name: '关闭' name: '关闭'
}, },
{ {
id: '1', id: 1,
name: '开启' name: '开启'
} }
] ]
//获取登陆用户姓名和部门 //获取登陆用户姓名和部门
const adminInfo = useAdminInfo() const adminInfo = useAdminInfo()
//获取所属前置机数据 //获取所属前置机数据
const frontEndMachineList = ref([]) const frontEndMachineList: any = ref([])
const getFrontEndMachineList = () => { const getFrontEndMachineList = () => {
nodeAllList().then(res => { nodeAllList().then(res => {
frontEndMachineList.value = res.data frontEndMachineList.value = res.data
@@ -727,7 +726,7 @@ const changeSubstationFlag = () => {
console.log(form.value.customSubstaionFlag) console.log(form.value.customSubstaionFlag)
//处理所属变电站手都输入/下拉数据 //处理所属变电站手都输入/下拉数据
if (form.value.customSubstaionFlag == '0') { if (form.value.customSubstaionFlag == '0') {
form.value.substationName = substationList.value.find(item => { form.value.substationName = substationList.value.find((item: any) => {
return form.value.substation == item.id return form.value.substation == item.id
})?.name })?.name
} else { } else {
@@ -740,7 +739,7 @@ watch(
() => form.value.substation, () => form.value.substation,
(val, oldVal) => { (val, oldVal) => {
if (val) { if (val) {
form.value.substationName = substationList.value.find(item => { form.value.substationName = substationList.value.find((item: any) => {
return form.value.substation == item.id return form.value.substation == item.id
})?.name })?.name
} }
@@ -752,7 +751,7 @@ watch(
) )
getFrontEndMachineList() getFrontEndMachineList()
//定义所属供电公司数据 //定义所属供电公司数据
const powerCompanyList = ref([]) const powerCompanyList: any = ref([])
//获取所属供电公司,区域列表第三层数据 //获取所属供电公司,区域列表第三层数据
const getPowerCompanyList = async () => { const getPowerCompanyList = async () => {
getAllDeptList().then(res => { getAllDeptList().then(res => {
@@ -763,7 +762,7 @@ const getPowerCompanyList = async () => {
}) })
} }
//根据所选供电公司查询所选获取变电站与变电站电压等级 //根据所选供电公司查询所选获取变电站与变电站电压等级
const substationList = ref([])
const findSubstationVoltageLevel = async () => { const findSubstationVoltageLevel = async () => {
getSubstationVoltageLevel({ orgIds: [form.value.powerCompany] }).then(res => { getSubstationVoltageLevel({ orgIds: [form.value.powerCompany] }).then(res => {
substationList.value = res.data substationList.value = res.data
@@ -773,7 +772,7 @@ const findSubstationVoltageLevel = async () => {
} }
//变电站选择的时候切换变电站电压等级 //变电站选择的时候切换变电站电压等级
const changeSubstation = async () => { const changeSubstation = async () => {
let obj = substationList.value.find(item => item.id == form.value.substation) let obj = substationList.value.find((item: any) => item.id == form.value.substation)
form.value.substationVoltageLevel = obj?.voltageLevel form.value.substationVoltageLevel = obj?.voltageLevel
} }
const containerRef = ref<HTMLElement | null>(null) const containerRef = ref<HTMLElement | null>(null)
@@ -781,7 +780,7 @@ const containerRef = ref<HTMLElement | null>(null)
const handleClick = (e: MouseEvent) => { const handleClick = (e: MouseEvent) => {
e.preventDefault() e.preventDefault()
} }
const resetForm = async () => { const resetForm: any = async () => {
form.value = { form.value = {
reporter: '', //填报人 reporter: '', //填报人
reportDate: new Date(), //填报日期 reportDate: new Date(), //填报日期
@@ -831,7 +830,7 @@ const resetForm = async () => {
terminalSecretKey: '', //终端秘钥 terminalSecretKey: '', //终端秘钥
terminalType: terminalTypeList[0].id, // 终端型号 terminalType: terminalTypeList[0].id, // 终端型号
terminalWiringMethodType: terminalWiringMethodTypeList[0].id, // 终端接线方式类型 terminalWiringMethodType: terminalWiringMethodTypeList[0].id, // 终端接线方式类型
timeSyncFunction: '0', // 对时功能 timeSyncFunction: 0, // 对时功能
voltageTransformerType: voltageTransformerTypeList[0].id //电压互感器类型 voltageTransformerType: voltageTransformerTypeList[0].id //电压互感器类型
} }
form.value.reporter = adminInfo.$state.name form.value.reporter = adminInfo.$state.name
@@ -841,7 +840,7 @@ const resetForm = async () => {
//初始化数据 //初始化数据
resetForm() resetForm()
//终端信息表单格式 //终端信息表单格式
const devReportForm = ref({ const devReportForm: any = ref({
reporter: '', //填报人 reporter: '', //填报人
reportDate: new Date(), //填报日期 reportDate: new Date(), //填报日期
orgId: '', //填报部门 orgId: '', //填报部门
@@ -893,7 +892,7 @@ const devReportForm = ref({
terminalSecretKey: '', //终端秘钥 terminalSecretKey: '', //终端秘钥
terminalType: terminalTypeList[0].id, // 终端型号 terminalType: terminalTypeList[0].id, // 终端型号
terminalWiringMethodType: terminalWiringMethodTypeList[0].id, // 终端接线方式类型 terminalWiringMethodType: terminalWiringMethodTypeList[0].id, // 终端接线方式类型
timeSyncFunction: '0', // 对时功能 timeSyncFunction: 0, // 对时功能
voltageTransformerType: voltageTransformerTypeList[0].id //电压互感器类型 voltageTransformerType: voltageTransformerTypeList[0].id //电压互感器类型
} }
}) })
@@ -1344,9 +1343,43 @@ const disabledDate = time => {
} }
const activeName = ref('0') const activeName = ref('0')
const open = async () => { const open = async (row: any) => {
getPowerCompanyList() await getPowerCompanyList()
title.value = row.title
dialogFormVisible.value = true dialogFormVisible.value = true
if (row.row) {
await getTerminalDetailsById({ id: row.row.id }).then((res: any) => {
form.value = { customSubstaionFlag: '0', ...res.data, ...res.data.supervisionTempDeviceReport }
let list = [
'deviceFilePath',
'acceptanceInspectionReportSingle',
'acceptanceInspectionReport',
'typeExperimentReport',
'factoryInspectionReport',
'performanceTestReport',
'informationSecurityTestReport',
'otherAttachments'
]
for (let k of list) {
if (res.data[k]) {
form.value[k] = [
{
name: res.data[k].split('/')[2]
}
]
}
}
form.value.orgId = adminInfo.$state.deptName
deviceFilePath.value = res.data.deviceFilePath
acceptanceInspectionReportSingle.value = res.data.acceptanceInspectionReportSingle
acceptanceInspectionReport.value = res.data.acceptanceInspectionReport
typeExperimentReport.value = res.data.typeExperimentReport
factoryInspectionReport.value = res.data.factoryInspectionReport
performanceTestReport.value = res.data.performanceTestReport
informationSecurityTestReport.value = res.data.informationSecurityTestReport
otherAttachments.value = res.data.otherAttachments
})
}
} }
const close = async () => { const close = async () => {
//重置表单内容 //重置表单内容
@@ -1413,7 +1446,8 @@ const confirmForm = () => {
typeExperimentReport: typeExperimentReport.value, //型式实验报告 typeExperimentReport: typeExperimentReport.value, //型式实验报告
otherAttachments: otherAttachments?.value //其他附件 otherAttachments: otherAttachments?.value //其他附件
} }
addTerminalFormData(confirmFormData).then(res => { if (title.value == '终端信息') {
addTerminalFormData(confirmFormData).then((res: any) => {
if (res.code == 'A0000') { if (res.code == 'A0000') {
ElMessage({ ElMessage({
message: '新增成功', message: '新增成功',
@@ -1424,6 +1458,9 @@ const confirmForm = () => {
close() close()
} }
}) })
} else {
console.log(confirmFormData)
}
} else { } else {
console.log('表单验证失败') console.log('表单验证失败')
return false return false

View File

@@ -34,11 +34,11 @@ const tableStore = new TableStore({
method: 'POST', method: 'POST',
column: [ column: [
{ title: '序号', type: 'seq', width: 80 }, { title: '序号', type: 'seq', width: 80 },
{ field: 'orgName', title: '填报部门名称' , minWidth: 170 }, { field: 'orgName', title: '填报部门名称', minWidth: 170 },
{ field: 'substationName', title: '所属变电站', minWidth: 170 }, { field: 'substationName', title: '所属变电站', minWidth: 170 },
{ field: 'monitoringTerminalName', title: '设备名称', minWidth: 170 }, { field: 'monitoringTerminalName', title: '设备名称', minWidth: 170 },
{ field: 'monitoringTerminalCode', title: '设备编号', minWidth: 170 }, { field: 'monitoringTerminalCode', title: '设备编号', minWidth: 170 },
{ field: 'reportDate', title: '填报日期', minWidth: 170}, { field: 'reportDate', title: '填报日期', minWidth: 170 },
{ field: 'reporter', title: '填报人', minWidth: 80 }, { field: 'reporter', title: '填报人', minWidth: 80 },
{ {
field: 'status', field: 'status',
@@ -110,7 +110,36 @@ const tableStore = new TableStore({
click: row => { click: row => {
handleAudit(row.processInstanceId) handleAudit(row.processInstanceId)
} }
} },
// {
// name: 'edit',
// title: '重新发起',
// type: 'warning',
// icon: 'el-icon-Open',
// render: 'basicButton',
// disabled: row => {
// return row.status == 1 || row.status == 2
// },
// click: row => {
// addForms.value.open({
// title: '重新发起',
// row: row
// })
// }
// },
// {
// name: 'cancel',
// title: '取消',
// type: 'danger',
// icon: 'el-icon-Open',
// render: 'basicButton',
// disabled: row => {
// return row.status == 3 || row.status == 2 || row.status == 4
// },
// click: row => {
// // cancelLeave(row)
// }
// }
] ]
} }
], ],
@@ -129,9 +158,10 @@ provide('tableStore', tableStore)
const addForms = ref() const addForms = ref()
const addFormModel = () => { const addFormModel = () => {
setTimeout(() => { setTimeout(() => {
addForms.value.open() addForms.value.open({
}, 0); title: '终端信息'
})
}, 0)
} }
const exportEvent = () => { const exportEvent = () => {