修改冀北现场反馈问题

This commit is contained in:
GGJ
2025-12-19 11:58:26 +08:00
parent d64d18f330
commit dc32cc3bb7
32 changed files with 865 additions and 426 deletions

View File

@@ -64,7 +64,7 @@
</div> </div>
</div> </div>
<div style="flex: 2" class="ml15"> <div style="flex: 2" class="ml15">
<div class="title">完整性统计</div> <div class="title">终端运行统计</div>
<div class="mb5" style="height: 40px"> <div class="mb5" style="height: 40px">
<el-segmented <el-segmented

View File

@@ -37,21 +37,21 @@ const setupAll = async () => {
const app = createApp(App) const app = createApp(App)
//开启离线地图 //开启离线地图
// app.use(BaiduMapOffline, { app.use(BaiduMapOffline, {
// offline: true, offline: true,
// offlineConfig: { offlineConfig: {
// imgext: '.png', imgext: '.png',
// customstyle: '', customstyle: '',
// tiles_dir: '', tiles_dir: '',
// tiles_hybrid: '', tiles_hybrid: '',
// tiles_self: '', tiles_self: '',
// tiles_v_dir: '', tiles_v_dir: '',
// tiles_satellite_dir: '', tiles_satellite_dir: '',
// tiles_road_dir: '', tiles_road_dir: '',
// tiles_v_road_dir: '', tiles_v_road_dir: '',
// home: './plugin/offline/' home: './plugin/offline/'
// } }
// }) })
app.use(BaiduMap, { app.use(BaiduMap, {
// ak: 'Yp57V71dkOPiXjiN8VdcFRsVELzlVNKK', // ak: 'Yp57V71dkOPiXjiN8VdcFRsVELzlVNKK',
ak: 'RpQi6WNFZ9tseKzhdwOQsXwFsoVntnsN', ak: 'RpQi6WNFZ9tseKzhdwOQsXwFsoVntnsN',

View File

@@ -373,3 +373,4 @@ body,
.w-e-scroll { .w-e-scroll {
min-height: 200px !important; min-height: 200px !important;
} }

View File

@@ -25,7 +25,7 @@ export const download = (urls: string) => {
}) })
const url = window.URL.createObjectURL(blob) const url = window.URL.createObjectURL(blob)
const link = document.createElement('a') const link = document.createElement('a')
let name=urls.split('/')[2].split('.')[0] let name = removeLastDotSuffix(urls.split('/')[2])
link.href = url link.href = url
link.download = name link.download = name
document.body.appendChild(link) document.body.appendChild(link)
@@ -33,3 +33,9 @@ export const download = (urls: string) => {
link.remove() link.remove()
}) })
} }
function removeLastDotSuffix(str: string) {
// 找到最后一个 . 的位置
const lastDotIndex = str.lastIndexOf('.')
// 如果存在 .,截取到 . 之前的部分;否则返回原字符串
return lastDotIndex !== -1 ? str.slice(0, lastDotIndex) : str
}

View File

@@ -41,9 +41,9 @@
<el-tab-pane label="监测点运行状态" name="6" lazy v-if="!isReload"> <el-tab-pane label="监测点运行状态" name="6" lazy v-if="!isReload">
<Yunxingzhuangtai v-if="activeName == '6'" /> <Yunxingzhuangtai v-if="activeName == '6'" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="实时数据" name="7" lazy v-if="!isReload"> <!-- <el-tab-pane label="实时数据" name="7" lazy v-if="!isReload && !VITE_FLAG">
<Shishishuju v-if="activeName == '7'" /> <Shishishuju v-if="activeName == '7'" />
</el-tab-pane> </el-tab-pane> -->
<el-tab-pane label="统计报表" name="8" lazy v-if="!isReload && VITE_FLAG"> <el-tab-pane label="统计报表" name="8" lazy v-if="!isReload && VITE_FLAG">
<StatisticalReport v-if="activeName == '8'" /> <StatisticalReport v-if="activeName == '8'" />
</el-tab-pane> </el-tab-pane>

View File

@@ -1,6 +1,9 @@
<template> <template>
<!-- 综合评估详情 --> <!-- 综合评估详情 -->
<el-dialog draggable title="稳态电能质量水平评估" v-model="dialogVisible" width="1400px"> <el-dialog draggable title="稳态电能质量水平评估" v-model="dialogVisible" width="1400px">
<div class="title mb5">
<span>区域污染水平评估</span>
</div>
<div style="display: flex"> <div style="display: flex">
<div style="width: 400px"> <div style="width: 400px">
<vxe-table <vxe-table
@@ -56,23 +59,25 @@
</vxe-table> </vxe-table>
</div> </div>
</div> </div>
<div style="height: 300px; margin-top: 10px; position: relative" v-loading="loading"> <div class="title mb5 mt10">
<span>敏感及重要用户评估</span>
</div>
<div style="height: 265px; position: relative" v-loading="loading">
<vxe-table <vxe-table
v-bind="defaultAttribute" v-bind="defaultAttribute"
ref="tableRef" ref="tableRef1"
@cell-click="pollutionClick" @cell-click="pollutionClick"
height="300px" height="265px"
:row-config="{ isCurrent: true, isHover: true }" :row-config="{ isCurrent: true, isHover: true }"
:data="pollutionValueList" :data="pollutionValueList"
style="cursor: pointer" style="cursor: pointer"
> >
<vxe-column title="序号" width="60" type="seq" ></vxe-column> <vxe-column title="序号" width="60" type="seq"></vxe-column>
<vxe-column field="gdName" title="供电公司" width="150" /> <vxe-column field="gdName" title="供电公司" Width="150" />
<vxe-column field="subStationName" title="变电站" /> <vxe-column field="subStationName" title="变电站" />
<vxe-column field="projectName" title="项目名称" /> <vxe-column field="projectName" title="项目名称" />
<vxe-column field="subValue" title="谐波电压污染值" width="150" /> <vxe-column field="subValue" title="谐波电压污染值" width="150" />
</vxe-table>
</vxe-table>
<!-- <MyEChart style="height: 300px" :options="picEChart" @echartClick="echartClick" /> --> <!-- <MyEChart style="height: 300px" :options="picEChart" @echartClick="echartClick" /> -->
</div> </div>
@@ -237,4 +242,19 @@ defineExpose({ open })
:deep(.el-select) { :deep(.el-select) {
min-width: 80px !important; min-width: 80px !important;
} }
.title {
display: flex;
justify-content: space-between;
position: relative;
span {
font-weight: 550;
font-size: 18px;
}
.WarningFilled {
width: 16px;
cursor: pointer;
}
}
</style> </style>

View File

@@ -2,7 +2,7 @@
<template> <template>
<el-dialog draggable title="技术监督统计" v-model="dialogVisible" width="1400px"> <el-dialog draggable title="技术监督统计" v-model="dialogVisible" width="1400px">
<div> <div>
<vxe-table v-bind="defaultAttribute" ref="vxeRef" height="320px" :data="tableData"> <vxe-table v-bind="defaultAttribute" ref="vxeRef" height="325px" :data="tableData">
<vxe-column field="orgName" title="区域" /> <vxe-column field="orgName" title="区域" />
<vxe-column field="abnormalNum" title="异常问题总数" /> <vxe-column field="abnormalNum" title="异常问题总数" />
<vxe-column field="workNum" title="工单总数" /> <vxe-column field="workNum" title="工单总数" />

View File

@@ -3,7 +3,7 @@
<el-dialog draggable title="暂态电能质量水平评估统计" v-model="dialogVisible" width="1400px"> <el-dialog draggable title="暂态电能质量水平评估统计" v-model="dialogVisible" width="1400px">
<div v-loading="loading"> <div v-loading="loading">
<div> <div>
<vxe-table v-bind="defaultAttribute" ref="vxeRef" height="360px" :data="tableData"> <vxe-table v-bind="defaultAttribute" ref="vxeRef" height="365px" :data="tableData">
<vxe-column field="name" title="区域" /> <vxe-column field="name" title="区域" />
<vxe-column sortable field="sagTimes" title="暂降次数"> <vxe-column sortable field="sagTimes" title="暂降次数">

View File

@@ -108,7 +108,7 @@
</vxe-table> --> </vxe-table> -->
<!-- ${rowHeight} --> <!-- ${rowHeight} -->
<el-table :data="evaluationData.filter((item) => item.avg != 3.14159)" :height='`calc(${rowHeight} - 31px)`' size="small" border> <el-table :data="evaluationData.filter((item) => item.avg != 3.14159)" v-loading='loading' :height='`calc(${rowHeight} - 31px)`' size="small" border >
<el-table-column prop="targetName" align="center" label="指标名称" /> <el-table-column prop="targetName" align="center" label="指标名称" />
<el-table-column prop="avg" align="center" label="最大越限幅值"> <el-table-column prop="avg" align="center" label="最大越限幅值">
<template #default="{ row }"> <template #default="{ row }">
@@ -190,7 +190,7 @@ import {
limitTableDetail limitTableDetail
} from '@/api/device-boot/panorama' } from '@/api/device-boot/panorama'
import { formatter } from 'element-plus' import { formatter } from 'element-plus'
const loading=ref(false)
const emit = defineEmits(['back']) const emit = defineEmits(['back'])
const dropList: any = ref({}) const dropList: any = ref({})
const TargetData: any = ref({}) const TargetData: any = ref({})
@@ -374,7 +374,7 @@ const open = async (id: string) => {
} }
} }
}) })
loading.value = true
// 监测点总体评价结论 // 监测点总体评价结论
limitTableDetail({ limitTableDetail({
lineId: id, lineId: id,
@@ -433,6 +433,7 @@ const open = async (id: string) => {
xz: res.data.unbalanceLimit xz: res.data.unbalanceLimit
} }
] ]
loading.value = false
}) })
// 稳态指标合格率 // 稳态指标合格率

View File

@@ -17,7 +17,7 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="运行状态"> <el-form-item label="运行状态">
<el-select v-model="tableStore.table.params.lineRunFlag" clearable placeholder="请选择运行状态"> <el-select v-model="tableStore.table.params.lineRunFlag" clearable placeholder="请选择运行状态">
<el-option <el-option
v-for="item in runFlagList" v-for="item in runFlagList"
@@ -147,7 +147,14 @@
<MyEchart :options="options"></MyEchart> <MyEchart :options="options"></MyEchart>
</div> </div>
<el-form :inline="true" class="form"> <el-form :inline="true" class="form">
<el-form-item label="异常持续天数"></el-form-item> <el-form-item label="数据筛选">
<el-input
placeholder="请输入监测点名称/终端名称"
v-model="tableStore.table.params.searchValue"
clearable
></el-input>
</el-form-item>
<!-- <el-form-item label="异常持续天数"></el-form-item>
<el-form-item label="告警阀值(天)"> <el-form-item label="告警阀值(天)">
<el-input-number <el-input-number
v-model="tableStore.table.params.alarmDayLimit" v-model="tableStore.table.params.alarmDayLimit"
@@ -163,7 +170,7 @@
:step="1" :step="1"
step-strictly step-strictly
/> />
</el-form-item> </el-form-item> -->
<el-form-item class="form_but"> <el-form-item class="form_but">
<el-button type="primary" @click="MonitorVerify" icon="el-icon-Refresh">更新</el-button> <el-button type="primary" @click="MonitorVerify" icon="el-icon-Refresh">更新</el-button>
<el-button type="primary" @click="onExport" icon="el-icon-Download">导出</el-button> <el-button type="primary" @click="onExport" icon="el-icon-Download">导出</el-button>
@@ -183,7 +190,30 @@
</span> </span>
</template> </template>
</vxe-column> </vxe-column>
<vxe-column field="city" title="地市" minWidth="110px"></vxe-column>
<vxe-column field="stationName" title="变电站" minWidth="110px"></vxe-column>
<vxe-column field="monitorName" title="监测点名称" minWidth="110px"></vxe-column> <vxe-column field="monitorName" title="监测点名称" minWidth="110px"></vxe-column>
<vxe-column field="voltageLevel" title="电压等级" minWidth="80px"></vxe-column>
<vxe-column
field="objType"
title="监测对象类型"
:formatter="formatter"
minWidth="110px"
></vxe-column>
<vxe-column
field="objName"
title="监测对象名称"
:formatter="formatter"
minWidth="110px"
></vxe-column>
<vxe-column field="abnormalDay" title="异常天数" width="80px">
<template #default="{ row }">
<span class="table_name" @click="quantityClick(row, 1)">
{{ row.abnormalDay }}
</span>
</template>
</vxe-column>
<!-- <vxe-column field="monitorName" title="监测点名称" minWidth="110px"></vxe-column>
<vxe-column field="manufacturer" title="终端厂家" minWidth="110px"></vxe-column> <vxe-column field="manufacturer" title="终端厂家" minWidth="110px"></vxe-column>
<vxe-column field="devName" title="所属终端名称" minWidth="110px"></vxe-column> <vxe-column field="devName" title="所属终端名称" minWidth="110px"></vxe-column>
<vxe-column field="ip" title="IP" width="120px"> <vxe-column field="ip" title="IP" width="120px">
@@ -192,8 +222,18 @@
</template> </template>
</vxe-column> </vxe-column>
<vxe-column field="stationName" title="所属电站" minWidth="110px"></vxe-column> <vxe-column field="stationName" title="所属电站" minWidth="110px"></vxe-column>
<vxe-column field="objType" title="监测对象类型" :formatter="formatter" minWidth="110px"></vxe-column> <vxe-column
<vxe-column field="objName" title="监测对象名称" :formatter="formatter" minWidth="110px"></vxe-column> field="objType"
title="监测对象类型"
:formatter="formatter"
minWidth="110px"
></vxe-column>
<vxe-column
field="objName"
title="监测对象名称"
:formatter="formatter"
minWidth="110px"
></vxe-column>
<vxe-column field="voltageLevel" title="电压等级" minWidth="80px"></vxe-column> <vxe-column field="voltageLevel" title="电压等级" minWidth="80px"></vxe-column>
<vxe-column field="abnormalDay" title="异常天数" width="80px"> <vxe-column field="abnormalDay" title="异常天数" width="80px">
<template #default="{ row }"> <template #default="{ row }">
@@ -201,7 +241,7 @@
{{ row.abnormalDay }} {{ row.abnormalDay }}
</span> </span>
</template> </template>
</vxe-column> </vxe-column> -->
<vxe-column field="abnormalDay" title="严重度" width="80px"> <vxe-column field="abnormalDay" title="严重度" width="80px">
<template #default="{ row }"> <template #default="{ row }">
<el-tag type="warning" v-if="row.severity == 0">预警</el-tag> <el-tag type="warning" v-if="row.severity == 0">预警</el-tag>

View File

@@ -11,78 +11,105 @@
@current-change="currentChangeEvent" @current-change="currentChangeEvent"
> >
<vxe-column type="seq" title="序号" width="60px"></vxe-column> <vxe-column type="seq" title="序号" width="60px"></vxe-column>
<vxe-column field="date" title="日期"></vxe-column> <!-- <vxe-column field="date" title="日期"></vxe-column> -->
<vxe-column field="bdName" title="所属电站(场站)" width="120px"></vxe-column> <vxe-column field="bdName" title="所属电站(场站)"></vxe-column>
<vxe-column field="monitorName" title="监测点名称" width="120px"></vxe-column> <vxe-column field="monitorName" title="监测点名称"></vxe-column>
<vxe-column field="timeSum" title="异常时间(分钟)" width="80px"></vxe-column> <vxe-column field="timeSum" title="异常天数" width="80px">
<vxe-column field="errCount" title="异常次数" width="80px"></vxe-column> <template v-slot="{ row }">
{{ row.dateList?.length }}
</template>
</vxe-column>
<!-- <vxe-column field="errCount" title="异常次数" width="80px"></vxe-column> -->
</vxe-table> </vxe-table>
</div> </div>
<div :style="height" style="width: 920px" v-loading="loading1"> <div style="width: 920px" v-loading="loading1">
<vxe-table <el-form :inline="true" class="form">
height="auto" <el-form-item label="统计日期">
:data="TableData1.slice((pageNum - 1) * pageSize, pageNum * pageSize)" <el-select
v-bind="defaultAttribute" v-model="timeList"
> multiple
<vxe-column type="seq" title="序号" width="80px"> collapse-tags
<template #default="{ rowIndex }"> clearable
<span>{{ (pageNum - 1) * pageSize + rowIndex + 1 }}</span> placeholder="请选择异常天数"
</template> style="width: 200px"
</vxe-column> >
<vxe-column field="time" title="时间" width="150px"></vxe-column> <el-option v-for="item in dateList" :key="item" :label="item" :value="item" />
<vxe-column field="targetName" title="指标类型" min-width="80px"></vxe-column> </el-select>
<vxe-column field="phaseType" title="相别" width="60px"> </el-form-item>
<template v-slot="{ row }">
{{ row.phaseType == 'T' ? '/' : row.phaseType }} <el-form-item class="form_but">
</template> <span class="mr20">异常时间<span class="title">{{ timeSum }}</span>分钟</span>
</vxe-column> <span class="mr10">异常次数<span class="title">{{ errCount }}</span></span>
<vxe-column field="rangeDesc" title="合理范围" min-width="90px"></vxe-column>
<vxe-column <el-button type="primary" @click="init" icon="el-icon-Search">查询</el-button>
field="max" </el-form-item>
title="最大" </el-form>
width="85px" <div :style="height">
:formatter="formatter" <vxe-table
v-if="showColumn" height="auto"
></vxe-column> :data="TableData1.slice((pageNum - 1) * pageSize, pageNum * pageSize)"
<vxe-column v-bind="defaultAttribute"
field="min" >
title="最小" <vxe-column type="seq" title="序号" width="80px">
width="85px" <template #default="{ rowIndex }">
:formatter="formatter" <span>{{ (pageNum - 1) * pageSize + rowIndex + 1 }}</span>
v-if="showColumn" </template>
></vxe-column> </vxe-column>
<vxe-column <vxe-column field="time" title="时间" width="150px"></vxe-column>
field="avg" <vxe-column field="targetName" title="指标类型" min-width="80px"></vxe-column>
title="平均" <vxe-column field="phaseType" title="相别" width="60px">
width="85px" <template v-slot="{ row }">
:formatter="formatter" {{ row.phaseType == 'T' ? '/' : row.phaseType }}
v-if="showColumn" </template>
></vxe-column> </vxe-column>
<vxe-column <vxe-column field="rangeDesc" title="合理范围" min-width="90px"></vxe-column>
field="cp95" <vxe-column
title="CP95" field="max"
width="85px" title="最大"
:formatter="formatter" width="85px"
v-if="showColumn" :formatter="formatter"
></vxe-column> v-if="showColumn"
<vxe-column ></vxe-column>
field="featureAmplitude" <vxe-column
title="幅值" field="min"
width="85px" title="最小"
:formatter="formatter" width="85px"
v-if="!showColumn" :formatter="formatter"
></vxe-column> v-if="showColumn"
</vxe-table> ></vxe-column>
<div class="table-pagination"> <vxe-column
<el-pagination field="avg"
v-model:currentPage="pageNum" title="平均"
v-model:page-size="pageSize" width="85px"
:page-sizes="[10, 20, 50, 100, 200]" :formatter="formatter"
background v-if="showColumn"
layout="sizes,total, ->, prev, pager, next, jumper" ></vxe-column>
:total="TableData1.length" <vxe-column
></el-pagination> field="cp95"
title="CP95"
width="85px"
:formatter="formatter"
v-if="showColumn"
></vxe-column>
<vxe-column
field="featureAmplitude"
title="幅值"
width="85px"
:formatter="formatter"
v-if="!showColumn"
></vxe-column>
</vxe-table>
<div class="table-pagination">
<el-pagination
v-model:currentPage="pageNum"
v-model:page-size="pageSize"
:page-sizes="[10, 20, 50, 100, 200]"
background
layout="sizes,total, ->, prev, pager, next, jumper"
:total="TableData1.length"
></el-pagination>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -97,17 +124,21 @@ import { monitorAbnormalTable, monitorAbnormalTableDetail } from '@/api/device-b
import { mainHeight } from '@/utils/layout' import { mainHeight } from '@/utils/layout'
const dialogVisible = ref(false) const dialogVisible = ref(false)
const height1 = mainHeight(-110, 2) const height1 = mainHeight(-110, 2)
const height = mainHeight(10, 2) const height = mainHeight(90, 2)
const tableRef = ref() const tableRef = ref()
const title = ref('') const title = ref('')
const loading = ref(false) const loading = ref(false)
const loading1 = ref(false) const loading1 = ref(false)
const TableData = ref([]) const TableData = ref([])
const TableData1 = ref([]) const TableData1 = ref([])
const dateList: any = ref([])
const pageNum = ref(1) const pageNum = ref(1)
const pageSize = ref(20) const pageSize = ref(20)
const numKey = ref(0) const numKey = ref(0)
const targetKey = ref('') const targetKey = ref('')
const errCount = ref('')
const timeSum = ref('')
const timeList = ref([])
const showColumn = ref(true) const showColumn = ref(true)
const open = (data: anyObj, time: string[], num: number) => { const open = (data: anyObj, time: string[], num: number) => {
// title.value = (num == 0 ? data.targetName : data.monitorName) + '_异常监测点详情' // title.value = (num == 0 ? data.targetName : data.monitorName) + '_异常监测点详情'
@@ -134,16 +165,28 @@ const open = (data: anyObj, time: string[], num: number) => {
dialogVisible.value = true dialogVisible.value = true
} }
const currentChangeEvent = () => { const currentChangeEvent = () => {
loading1.value = true
let data = tableRef.value.getCurrentRecord() let data = tableRef.value.getCurrentRecord()
dateList.value = data.dateList
console.log('🚀 ~ currentChangeEvent ~ dateList.value:', dateList.value)
timeList.value = [data.dateList[0]]
init()
}
const init = () => {
if(timeList.value.length == 0) return ElMessage.warning('请选择异常天数!')
loading1.value = true
TableData1.value = [] TableData1.value = []
let data = tableRef.value.getCurrentRecord()
monitorAbnormalTableDetail({ monitorAbnormalTableDetail({
monitorIds: [data.monitorId], monitorIds: [data.monitorId],
time: timeList.value,
searchBeginTime: data.date, searchBeginTime: data.date,
targetKey: numKey.value == 0 ? targetKey.value : '' targetKey: numKey.value == 0 ? targetKey.value : ''
}) })
.then(res => { .then(res => {
TableData1.value = res.data errCount.value = res.data.errCount
timeSum.value = res.data.timeSum
TableData1.value = res.data.time
showColumn.value = res.data[0]?.featureAmplitude == null ? true : false showColumn.value = res.data[0]?.featureAmplitude == null ? true : false
loading1.value = false loading1.value = false
pageNum.value = 1 pageNum.value = 1
@@ -170,8 +213,19 @@ defineExpose({ open })
border-bottom: 1px solid #e4e7e9; border-bottom: 1px solid #e4e7e9;
} }
:deep(.box) { :deep(.box) {
.row--current { .row--current {
// background-color: var(--el-color-primary-light-8) !important; // background-color: var(--el-color-primary-light-8) !important;
} }
} }
.form {
position: relative;
.form_but {
position: absolute;
right: -22px;
}
}
.title{
font-weight: 600;
font-size: 16px;
}
</style> </style>

View File

@@ -36,7 +36,7 @@
<el-card class="mt10"> <el-card class="mt10">
<template #header> <template #header>
<div class="card-header"> <div class="card-header">
<span>完整性统计</span> <span>终端运行统计</span>
</div> </div>
</template> </template>
<div class="mb5" style="height: 40px"> <div class="mb5" style="height: 40px">

View File

@@ -0,0 +1,245 @@
<template>
<el-dialog draggable width="1250px" class="cn-operate-dialog" v-model="dialogVisible" :title="title">
<div style="display: flex" v-loading="loading">
<div :style="height1" class="mr10 box" style="width: 300px">
<vxe-table
height="auto"
:data="timeList"
v-bind="defaultAttribute"
ref="tableRef"
:row-config="{ isCurrent: true, isHover: true }"
@current-change="currentChangeEvent"
>
<vxe-column type="seq" title="序号" width="60px"></vxe-column>
<!-- <vxe-column field="date" title="日期"></vxe-column> -->
<vxe-column field="name" title="统计日期"></vxe-column>
<!-- <vxe-column field="monitorName" title="监测点名称"></vxe-column>
<vxe-column field="timeSum" title="异常天数" width="80px">
<template v-slot="{ row }">
{{ row.dateList?.length }}
</template>
</vxe-column> -->
<!-- <vxe-column field="errCount" title="异常次数" width="80px"></vxe-column> -->
</vxe-table>
</div>
<div style="width: 920px" v-loading="loading1">
<el-form :inline="true" class="form">
<!-- <el-form-item label="统计日期">
<el-select
v-model="timeList"
multiple
collapse-tags
clearable
placeholder="请选择异常天数"
style="width: 200px"
>
<el-option v-for="item in dateList" :key="item" :label="item" :value="item" />
</el-select>
</el-form-item> -->
<el-form-item class="form_but">
<span class="mr20">
异常时间
<span class="title">{{ timeSum }}</span>
分钟
</span>
<span class="mr10">
异常次数
<span class="title">{{ errCount }}</span>
</span>
<!-- <el-button type="primary" @click="init" icon="el-icon-Search">查询</el-button> -->
</el-form-item>
</el-form>
<div :style="height">
<vxe-table
height="auto"
:data="TableData1.slice((pageNum - 1) * pageSize, pageNum * pageSize)"
v-bind="defaultAttribute"
>
<vxe-column type="seq" title="序号" width="80px">
<template #default="{ rowIndex }">
<span>{{ (pageNum - 1) * pageSize + rowIndex + 1 }}</span>
</template>
</vxe-column>
<vxe-column field="time" title="时间" width="150px"></vxe-column>
<vxe-column field="targetName" title="指标类型" min-width="80px"></vxe-column>
<vxe-column field="phaseType" title="相别" width="60px">
<template v-slot="{ row }">
{{ row.phaseType == 'T' ? '/' : row.phaseType }}
</template>
</vxe-column>
<vxe-column field="rangeDesc" title="合理范围" min-width="90px"></vxe-column>
<vxe-column
field="max"
title="最大"
width="85px"
:formatter="formatter"
v-if="showColumn"
></vxe-column>
<vxe-column
field="min"
title="最小"
width="85px"
:formatter="formatter"
v-if="showColumn"
></vxe-column>
<vxe-column
field="avg"
title="平均"
width="85px"
:formatter="formatter"
v-if="showColumn"
></vxe-column>
<vxe-column
field="cp95"
title="CP95"
width="85px"
:formatter="formatter"
v-if="showColumn"
></vxe-column>
<vxe-column
field="featureAmplitude"
title="幅值"
width="85px"
:formatter="formatter"
v-if="!showColumn"
></vxe-column>
</vxe-table>
<div class="table-pagination">
<el-pagination
v-model:currentPage="pageNum"
v-model:page-size="pageSize"
:page-sizes="[10, 20, 50, 100, 200]"
background
layout="sizes,total, ->, prev, pager, next, jumper"
:total="TableData1.length"
></el-pagination>
</div>
</div>
</div>
</div>
</el-dialog>
</template>
<script lang="ts" setup>
import { ref, inject } from 'vue'
import { reactive } from 'vue'
import { defaultAttribute } from '@/components/table/defaultAttribute'
import { ElMessage } from 'element-plus'
import { monitorAbnormalTable, monitorAbnormalTableDetail } from '@/api/device-boot/dataVerify'
import { mainHeight } from '@/utils/layout'
const dialogVisible = ref(false)
const height1 = mainHeight(-110, 2)
const height = mainHeight(90, 2)
const tableRef = ref()
const title = ref('')
const loading = ref(false)
const loading1 = ref(false)
const TableData = ref([])
const TableData1 = ref([])
const dateList: any = ref([])
const pageNum = ref(1)
const pageSize = ref(20)
const targetKey = ref('')
const errCount = ref('')
const timeSum = ref('')
const timeList = ref([])
const showColumn = ref(true)
const open = (data: anyObj, time: string[]) => {
// title.value = (num == 0 ? data.targetName : data.monitorName) + '_异常监测点详情'
loading.value = true
title.value = '详情'
TableData.value = []
TableData1.value = []
timeList.value = []
targetKey.value = data.key
monitorAbnormalTable({
monitorIds:[data.lineId],
targetKey: '',
searchBeginTime: time[0],
searchEndTime: time[1]
})
.then(async res => {
TableData.value = res.data
timeList.value = TableData.value[0]?.dateList.map((item: any) => {
return {
name: item
}
})
await tableRef.value.setCurrentRow(timeList.value[0])
await currentChangeEvent()
loading.value = false
})
.catch(() => {
loading.value = false
})
dialogVisible.value = true
}
const currentChangeEvent = () => {
let data = tableRef.value.getCurrentRecord()
// dateList.value = data.dateList
//[data.dateList[0]]
init()
}
const init = () => {
loading1.value = true
TableData1.value = []
let data = tableRef.value.getCurrentRecord()
monitorAbnormalTableDetail({
monitorIds: [TableData.value[0]?.monitorId],
time: [data.name],
searchBeginTime: TableData.value[0].date,
targetKey: ''
})
.then(res => {
errCount.value = res.data.errCount
timeSum.value = res.data.timeSum
TableData1.value = res.data.time
showColumn.value = res.data[0]?.featureAmplitude == null ? true : false
loading1.value = false
pageNum.value = 1
})
.catch(() => {
loading1.value = false
})
}
const formatter = (row: any) => {
return row.cellValue == null ? '/' : (row.cellValue - 0).toFixed(2)
}
defineExpose({ open })
</script>
<style lang="scss" scoped>
.table-pagination {
height: 58px;
box-sizing: border-box;
width: 100%;
max-width: 100%;
background-color: var(--ba-bg-color-overlay);
padding: 13px 15px;
border-left: 1px solid #e4e7e9;
border-right: 1px solid #e4e7e9;
border-bottom: 1px solid #e4e7e9;
}
:deep(.box) {
.row--current {
// background-color: var(--el-color-primary-light-8) !important;
}
}
.form {
// display: flex;
// justify-content: end;
// position: relative;
// .form_but {
// right: -22px;
// }
}
.title {
font-weight: 600;
font-size: 16px;
}
</style>

View File

@@ -6,16 +6,33 @@
<el-form-item label="区域"> <el-form-item label="区域">
<Area ref="areaRef" v-model="tableStore.table.params.deptId" @changeValue="changeArea" /> <Area ref="areaRef" v-model="tableStore.table.params.deptId" @changeValue="changeArea" />
</el-form-item> </el-form-item>
<el-form-item label="筛选数据"> <el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" clearable maxlength="32" show-word-limit placeholder="请输入监测点名称" /> <el-input
</el-form-item> v-model="tableStore.table.params.searchValue"
clearable
maxlength="32"
show-word-limit
placeholder="请输入监测点名称"
/>
</el-form-item>
<el-form-item label="监测点性质"> <el-form-item label="监测点性质">
<el-select v-model="tableStore.table.params.lineType" clearable placeholder="请选择监测点性质"> <el-select v-model="tableStore.table.params.lineType" clearable placeholder="请选择监测点性质">
<el-option label="电网侧" value="0" /> <el-option label="电网侧" value="0" />
<el-option label="非电网侧" value="1" /> <el-option label="非电网侧" value="1" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="超标指标"> <el-form-item label="数据类型">
<el-select
v-model="tableStore.table.params.dataType"
@change="changeDataType"
placeholder="请选择监测点性质"
>
<el-option label="超标数据" value="1" />
<el-option label="异常数据" value="2" />
<el-option label="无数据" value="0" />
</el-select>
</el-form-item>
<el-form-item label="超标指标" v-show="tableStore.table.params.dataType == 1">
<el-select <el-select
v-model="tableStore.table.params.targetList" v-model="tableStore.table.params.targetList"
clearable clearable
@@ -27,7 +44,7 @@
<el-option v-for="item in exceeded" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in exceeded" :key="item.id" :label="item.name" :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="数据类型"> <!-- <el-form-item label="数据类型">
<el-switch <el-switch
v-model="tableStore.table.params.dataType" v-model="tableStore.table.params.dataType"
inline-prompt inline-prompt
@@ -36,7 +53,7 @@
active-text="超标数据" active-text="超标数据"
inactive-text="无数据" inactive-text="无数据"
/> />
</el-form-item> </el-form-item> -->
<!-- <el-form-item label="预警阈值"> <!-- <el-form-item label="预警阈值">
<el-input-number <el-input-number
v-model="tableStore.table.params.alertThreshold" v-model="tableStore.table.params.alertThreshold"
@@ -77,6 +94,8 @@
<alarmList ref="alarmListRef" @onSubmit="tableStore.index()" /> <alarmList ref="alarmListRef" @onSubmit="tableStore.index()" />
<!-- 详情 --> <!-- 详情 -->
<detail ref="detailRef" /> <detail ref="detailRef" />
<!-- 异常数据详情 -->
<abnormal ref="abnormalRef" />
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, onMounted, provide, nextTick } from 'vue' import { ref, onMounted, provide, nextTick } from 'vue'
@@ -88,6 +107,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
import { useDictData } from '@/stores/dictData' import { useDictData } from '@/stores/dictData'
import alarmList from './form/alarmList.vue' import alarmList from './form/alarmList.vue'
import detail from './form/detail.vue' import detail from './form/detail.vue'
import abnormal from './form/abnormal.vue'
const VITE_FLAG = import.meta.env.VITE_NAME == 'jibei' const VITE_FLAG = import.meta.env.VITE_NAME == 'jibei'
const dictData = useDictData() const dictData = useDictData()
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
@@ -101,8 +121,10 @@ const tableRef = ref()
const industry = dictData.getBasicData('Business_Type') const industry = dictData.getBasicData('Business_Type')
const TableHeaderRef = ref() const TableHeaderRef = ref()
const alarmListRef = ref() const alarmListRef = ref()
const abnormalRef = ref()
const flagTime = ref(false) const flagTime = ref(false)
const detailRef = ref() const detailRef = ref()
const time: any = ref([])
const list: any = ref({ const list: any = ref({
deptId: '', deptId: '',
searchBeginTime: '', searchBeginTime: '',
@@ -119,7 +141,7 @@ const tableStore = new TableStore({
filename: '在线监测', filename: '在线监测',
// isWebPaging:true, // isWebPaging:true,
column: [ column: [
{ type: 'checkbox', width: 40 }, { type: 'checkbox', width: 40 },
{ {
title: '序号', title: '序号',
@@ -180,11 +202,15 @@ const tableStore = new TableStore({
return row.targetType == 0 return row.targetType == 0
}, },
click: row => { click: row => {
detailRef.value.open({ if (row.dataType == 2) {
text: '详情', abnormalRef.value.open(row, time.value)
row: row, } else {
list: list.value detailRef.value.open({
}) text: '详情',
row: row,
list: list.value
})
}
} }
}, },
{ {
@@ -289,6 +315,7 @@ const tableStore = new TableStore({
} }
], ],
beforeSearchFun: () => { beforeSearchFun: () => {
time.value = [tableStore.table.params.startTime, tableStore.table.params.endTime]
tableStore.table.params.currentPage = tableStore.table.params.pageNum tableStore.table.params.currentPage = tableStore.table.params.pageNum
list.value.deptId = tableStore.table.params.deptId list.value.deptId = tableStore.table.params.deptId
@@ -300,8 +327,10 @@ const tableStore = new TableStore({
list.value.lineType = tableStore.table.params.lineType list.value.lineType = tableStore.table.params.lineType
list.value.alarmThreshold = tableStore.table.params.alarmThreshold list.value.alarmThreshold = tableStore.table.params.alarmThreshold
flag.value = level.value flag.value = level.value
console.log('flag',flag.value)
flagTime.value = tableStore.table.params.dataType == 0 ? true : false flagTime.value = tableStore.table.params.dataType == 0 ? true : false
if (tableStore.table.params.dataType != 1) {
delete tableStore.table.params.targetList
}
}, },
loadCallback: () => { loadCallback: () => {
// tableStore.table.data = [ // tableStore.table.data = [
@@ -335,7 +364,7 @@ tableStore.table.params.dataType = '1'
tableStore.table.params.deptId = dictData.state.area[0].id tableStore.table.params.deptId = dictData.state.area[0].id
provide('tableStore', tableStore) provide('tableStore', tableStore)
onMounted(() => { onMounted(() => {
TableHeaderRef.value.setDatePicker([{label: '月', value: 3}]) TableHeaderRef.value.setDatePicker([{ label: '月', value: 3 }])
tableStore.index() tableStore.index()
setTimeout(() => { setTimeout(() => {
@@ -343,6 +372,13 @@ onMounted(() => {
}, 10) }, 10)
}) })
const changeDataType = e => {
if (e == 1) {
tableStore.table.params.targetList = exceeded.filter(item => item.code == 'Total_Indicator')[0].id
? [exceeded.filter(item => item.code == 'Total_Indicator')[0].id]
: []
}
}
const changeAlert = e => { const changeAlert = e => {
if (e == null) { if (e == null) {
tableStore.table.params.alertThreshold = 5 tableStore.table.params.alertThreshold = 5
@@ -363,19 +399,33 @@ const changeAlarm = e => {
} }
} }
} }
let flagList = exceeded.filter(item => item.name == '谐波电压' || item.name == '谐波电流').map(item => item.id)
// 发起预警单 // 发起预警单
const launch = (title: string) => { const launch = (title: string) => {
console.log('🚀 ~ flagList:', flagList)
if (tableStore.table.selection.length == 0) { if (tableStore.table.selection.length == 0) {
ElMessage.warning('请选择一条数据') ElMessage.warning('请选择一条数据')
return return
} }
let flag = false
tableStore.table.selection.forEach(item => {
if (!flagList.includes(item.targetType)) {
flag = true
}
})
if (flag) {
ElMessage.warning('目前只支持谐波电压/谐波电流下发预告警单')
return
}
console.log('🚀 ~ launch ~ list.value:', tableStore.table.selection)
alarmListRef.value.open({ alarmListRef.value.open({
text: title, text: title,
form: list.value, form: list.value,
row: tableStore.table.selection row: tableStore.table.selection
}) })
console.log('🚀 ~ launch ~ list.value:', list.value)
} }
const changeArea = e => { const changeArea = e => {
level.value = e.data.level level.value = e.data.level

View File

@@ -253,6 +253,7 @@ const treeData = ref()
const loadData = () => { const loadData = () => {
initDetpStataionTree({ orgId: dictData.state.area[0].id }).then(res => { initDetpStataionTree({ orgId: dictData.state.area[0].id }).then(res => {
treeList.value = res.data treeList.value = res.data
initDetpStataionTree({ orgId: 'a3069759b0b6072c99cf9a7af6c162e9' }).then(res => { initDetpStataionTree({ orgId: 'a3069759b0b6072c99cf9a7af6c162e9' }).then(res => {
treeListCgy.value = res.data treeListCgy.value = res.data
setTimeout(() => { setTimeout(() => {
@@ -331,24 +332,30 @@ const submitFn = async (flag: boolean) => {
// 修改关联电站 // 修改关联电站
const changeArea = () => { const changeArea = () => {
let list: any = [] let list: any = []
if (VITE_FLAG) {
treeList.value.forEach((item: any) => {
if (item.id == form.value.deptId) {
list.push(item)
if (item.id != treeListCgy.value[0].id && item.name != '冀北电力有限公司' && item.name != '超高压') {
list.push(...treeListCgy.value)
}
} else {
list.push(item.children.filter((v: any) => v.id == form.value.deptId)[0])
if (form.value.deptId != treeListCgy.value[0].id) {
list.push(...treeListCgy.value)
}
}
})
} else {
treeList.value.forEach((item: any) => {
if (item.id == form.value.deptId) {
list.push(item)
} else {
list.push(item.children.filter((v: any) => v.id == form.value.deptId)[0])
}
})
}
treeList.value.forEach((item: any) => {
if (item.id == form.value.deptId) {
list.push(item)
if (
item.id != treeListCgy.value[0].id && VITE_FLAG
? item.name != '冀北电力有限公司' && item.name != '超高压'
: true
) {
list.push(...treeListCgy.value)
}
} else {
list.push(item.children.filter((v: any) => v.id == form.value.deptId)[0])
if (form.value.deptId != treeListCgy.value[0].id) {
list.push(...treeListCgy.value)
}
}
})
treeData.value = list treeData.value = list
} }
const audit = (filePath: any) => { const audit = (filePath: any) => {

View File

@@ -24,9 +24,9 @@
<el-icon class="elView" v-if="item?.fileName"> <el-icon class="elView" v-if="item?.fileName">
<View @click="openFile(item?.fileName)" /> <View @click="openFile(item?.fileName)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(item.keyName)"> <span class="aLoad" @click="download(item.keyName)">
{{ item.fileName }} {{ item.fileName }}
</a> </span >
</div> </div>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>

View File

@@ -59,27 +59,27 @@
<el-icon class="elView" v-if="detailData?.supervisionReportName"> <el-icon class="elView" v-if="detailData?.supervisionReportName">
<View @click="openFile(detailData?.supervisionReportName)" /> <View @click="openFile(detailData?.supervisionReportName)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(detailData.keyName)" target="_blank">{{ detailData.supervisionReportName }}</a> <span class="aLoad" @click="download(detailData.keyName)" target="_blank">{{ detailData.supervisionReportName }}</span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :span="2" label="测试报告"> <el-descriptions-item :span="2" label="测试报告">
<el-icon class="elView" v-if="detailData?.testReportName"> <el-icon class="elView" v-if="detailData?.testReportName">
<View @click="openFile(detailData?.testReportName)" /> <View @click="openFile(detailData?.testReportName)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(detailData.keyName)" target="_blank">{{ detailData.testReportName }}</a> <span class="aLoad" @click="download(detailData.keyName)" target="_blank">{{ detailData.testReportName }}</span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :span="2" label="其他报告"> <el-descriptions-item :span="2" label="其他报告">
<div v-for="item in detailData.otherReports"> <div v-for="item in detailData.otherReports">
<el-icon class="elView"> <el-icon class="elView">
<View @click="openFile(item.fileName)" /> <View @click="openFile(item.fileName)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(item.keyName)" target="_blank">{{ item.fileName }}</a> <span class="aLoad" @click="download(item.keyName)" target="_blank">{{ item.fileName }}</span >
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item :span="2" label="处理成效报告" v-if="props.flag"> <el-descriptions-item :span="2" label="处理成效报告" v-if="props.flag">
<el-icon class="elView " v-if="detailData?.reportName"> <el-icon class="elView " v-if="detailData?.reportName">
<View @click="openFile(detailData?.reportName)" /> <View @click="openFile(detailData?.reportName)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(detailData.keyName)" target="_blank">{{ detailData.reportName }}</a> <span class="aLoad" @click="download(detailData.keyName)" target="_blank">{{ detailData.reportName }}</span >
</el-descriptions-item> </el-descriptions-item>
<!-- <el-descriptions-item label="流程状态" > <!-- <el-descriptions-item label="流程状态" >
<el-tag :type="getDeviceStatusType(detailData?.status)"> <el-tag :type="getDeviceStatusType(detailData?.status)">

View File

@@ -182,9 +182,9 @@
<el-icon class="elView" v-if="proviteData?.feasibilityReport.name"> <el-icon class="elView" v-if="proviteData?.feasibilityReport.name">
<View @click="openFile(proviteData.feasibilityReport.key)" /> <View @click="openFile(proviteData.feasibilityReport.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport.keyName)"> <span class="aLoad" @click="download(proviteData.feasibilityReport.keyName)">
{{ proviteData.feasibilityReport.name }} {{ proviteData.feasibilityReport.name }}
</a> </span>
</span> </span>
<span <span
v-if=" v-if="
@@ -197,42 +197,42 @@
<el-icon class="elView" v-if="proviteData?.feasibilityReport.name"> <el-icon class="elView" v-if="proviteData?.feasibilityReport.name">
<View @click="openFile(proviteData.feasibilityReport.key)" /> <View @click="openFile(proviteData.feasibilityReport.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport.keyName)"> <span class="aLoad" @click="download(proviteData.feasibilityReport.keyName)">
{{ proviteData.feasibilityReport.name }} {{ proviteData.feasibilityReport.name }}
</a> </span>
</span> </span>
<span v-if="detailData.userType == 6"> <span v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.feasibilityReport.name"> <el-icon class="elView" v-if="proviteData?.feasibilityReport.name">
<View @click="openFile(proviteData.feasibilityReport.key)" /> <View @click="openFile(proviteData.feasibilityReport.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport.keyName)"> <span class="aLoad" @click="download(proviteData.feasibilityReport.keyName)">
{{ proviteData.feasibilityReport.name }} {{ proviteData.feasibilityReport.name }}
</a> </span>
</span> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="项目初步设计说明书"> <el-descriptions-item label="项目初步设计说明书">
<el-icon class="elView" v-if="proviteData?.preliminaryDesignDescription.name"> <el-icon class="elView" v-if="proviteData?.preliminaryDesignDescription.name">
<View @click="openFile(proviteData?.preliminaryDesignDescription.key)" /> <View @click="openFile(proviteData?.preliminaryDesignDescription.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.preliminaryDesignDescription.keyName)"> <span class="aLoad" @click="download(proviteData.preliminaryDesignDescription.keyName)">
{{ proviteData?.preliminaryDesignDescription.name }} {{ proviteData?.preliminaryDesignDescription.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="预测评估报告"> <el-descriptions-item label="预测评估报告">
<el-icon class="elView" v-if="proviteData?.predictionEvaluationReport.name"> <el-icon class="elView" v-if="proviteData?.predictionEvaluationReport.name">
<View @click="openFile(proviteData?.predictionEvaluationReport.key)" /> <View @click="openFile(proviteData?.predictionEvaluationReport.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.predictionEvaluationReport.keyName)"> <span class="aLoad" @click="download(proviteData.predictionEvaluationReport.keyName)">
{{ proviteData?.predictionEvaluationReport.name }} {{ proviteData?.predictionEvaluationReport.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="预测评估评审意见报告"> <el-descriptions-item label="预测评估评审意见报告">
<el-icon class="elView" v-if="proviteData?.predictionEvaluationReviewOpinions.name"> <el-icon class="elView" v-if="proviteData?.predictionEvaluationReviewOpinions.name">
<View @click="openFile(proviteData?.predictionEvaluationReviewOpinions.key)" /> <View @click="openFile(proviteData?.predictionEvaluationReviewOpinions.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.predictionEvaluationReviewOpinions.keyName)"> <span class="aLoad" @click="download(proviteData.predictionEvaluationReviewOpinions.keyName)">
{{ proviteData?.predictionEvaluationReviewOpinions.name }} {{ proviteData?.predictionEvaluationReviewOpinions.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item <el-descriptions-item
label="用户接入变电站主接线示意图" label="用户接入变电站主接线示意图"
@@ -241,42 +241,42 @@
<el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram.name"> <el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram.name">
<View @click="openFile(proviteData?.substationMainWiringDiagram.key)" /> <View @click="openFile(proviteData?.substationMainWiringDiagram.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.substationMainWiringDiagram.keyName)"> <span class="aLoad" @click="download(proviteData.substationMainWiringDiagram.keyName)">
{{ proviteData?.substationMainWiringDiagram.name }} {{ proviteData?.substationMainWiringDiagram.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="主要敏感终端清单" v-if="detailData.userType == 6"> <el-descriptions-item label="主要敏感终端清单" v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.sensitiveDevices.name"> <el-icon class="elView" v-if="proviteData?.sensitiveDevices.name">
<View @click="openFile(proviteData?.sensitiveDevices.key)" /> <View @click="openFile(proviteData?.sensitiveDevices.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.sensitiveDevices.keyName)"> <span class="aLoad" @click="download(proviteData.sensitiveDevices.keyName)">
{{ proviteData?.sensitiveDevices.name }} {{ proviteData?.sensitiveDevices.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="抗扰度测试报告" v-if="detailData.userType == 6"> <el-descriptions-item label="抗扰度测试报告" v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.antiInterferenceReport.name"> <el-icon class="elView" v-if="proviteData?.antiInterferenceReport.name">
<View @click="openFile(proviteData?.antiInterferenceReport.key)" /> <View @click="openFile(proviteData?.antiInterferenceReport.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.antiInterferenceReport.keyName)"> <span class="aLoad" @click="download(proviteData.antiInterferenceReport.keyName)">
{{ proviteData?.antiInterferenceReport.name }} {{ proviteData?.antiInterferenceReport.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="背景电能质量测试报告" v-if="detailData.userType == 6"> <el-descriptions-item label="背景电能质量测试报告" v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.powerQualityReport.name"> <el-icon class="elView" v-if="proviteData?.powerQualityReport.name">
<View @click="openFile(proviteData?.powerQualityReport.key)" /> <View @click="openFile(proviteData?.powerQualityReport.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.powerQualityReport.keyName)"> <span class="aLoad" @click="download(proviteData.powerQualityReport.keyName)">
{{ proviteData?.powerQualityReport.name }} {{ proviteData?.powerQualityReport.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="系统接入方案" v-if="applyTitle == '干扰源用户治理工程验收'"> <el-descriptions-item label="系统接入方案" v-if="applyTitle == '干扰源用户治理工程验收'">
<div v-for="item in netInReportList"> <div v-for="item in netInReportList">
<el-icon class="elView" v-if="item.name"> <el-icon class="elView" v-if="item.name">
<View @click="openFile(item.key)" /> <View @click="openFile(item.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(item.keyName)"> <span class="aLoad" @click="download(item.keyName)">
{{ item.name }} {{ item.name }}
</a> </span>
</div> </div>
</el-descriptions-item> </el-descriptions-item>
@@ -284,9 +284,9 @@
<el-icon class="elView" v-if="proviteData?.additionalAttachments.name"> <el-icon class="elView" v-if="proviteData?.additionalAttachments.name">
<View @click="openFile(proviteData?.additionalAttachments.key)" /> <View @click="openFile(proviteData?.additionalAttachments.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.additionalAttachments.keyName)"> <span class="aLoad" @click="download(proviteData.additionalAttachments.keyName)">
{{ proviteData?.additionalAttachments.name }} {{ proviteData?.additionalAttachments.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-divider content-position="left">{{ applyTitle + '填报信息' }}</el-divider> <el-divider content-position="left">{{ applyTitle + '填报信息' }}</el-divider>
@@ -307,7 +307,9 @@
<el-icon class="elView" v-if="proviteData?.otherReport.name"> <el-icon class="elView" v-if="proviteData?.otherReport.name">
<View @click="openFile(proviteData?.otherReport.key)" /> <View @click="openFile(proviteData?.otherReport.key)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.otherReport.keyName)">{{ proviteData?.otherReport.name }}</a> <span class="aLoad" @click="download(proviteData.otherReport.keyName)">
{{ proviteData?.otherReport.name }}
</span>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
@@ -320,10 +322,10 @@ import { propTypes } from '@/utils/propTypes'
import { getUserReportById } from '@/api/supervision-boot/userReport/form' import { getUserReportById } from '@/api/supervision-boot/userReport/form'
import { getDictTreeById } from '@/api/system-boot/dictTree' import { getDictTreeById } from '@/api/system-boot/dictTree'
import { useDictData } from '@/stores/dictData' import { useDictData } from '@/stores/dictData'
import {getFileNameAndFilePath } from '@/api/system-boot/file' import { getFileNameAndFilePath } from '@/api/system-boot/file'
import { Key, Link, View } from '@element-plus/icons-vue' import { Key, Link, View } from '@element-plus/icons-vue'
import { userReportGoNetById } from '@/api/supervision-boot/interfere' import { userReportGoNetById } from '@/api/supervision-boot/interfere'
import {download} from '@/utils/fileDownLoad' import { download } from '@/utils/fileDownLoad'
// import el-descriptions-item from './components/detailsItem.vue' // import el-descriptions-item from './components/detailsItem.vue'
defineOptions({ name: 'BpmUserReportDetail' }) defineOptions({ name: 'BpmUserReportDetail' })
const openFile = (name: any) => { const openFile = (name: any) => {

View File

@@ -192,9 +192,9 @@
<el-icon class="elView" v-if="proviteData?.feasibilityReport?.name"> <el-icon class="elView" v-if="proviteData?.feasibilityReport?.name">
<View @click="openFile(proviteData?.feasibilityReport?.name)" /> <View @click="openFile(proviteData?.feasibilityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport.keyName)" rel="nofollow"> <span class="aLoad" @click="download(proviteData.feasibilityReport.keyName)" rel="nofollow">
{{ proviteData.feasibilityReport?.name }} {{ proviteData.feasibilityReport?.name }}
</a> </span >
</span> </span>
<span v-if=" <span v-if="
detailData.userType == 2 || detailData.userType == 2 ||
@@ -205,17 +205,17 @@
<el-icon class="elView" v-if="proviteData?.feasibilityReport?.name"> <el-icon class="elView" v-if="proviteData?.feasibilityReport?.name">
<View @click="openFile(proviteData?.feasibilityReport?.name)" /> <View @click="openFile(proviteData?.feasibilityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport.keyName)"> <span class="aLoad" @click="download(proviteData.feasibilityReport.keyName)">
{{ proviteData.feasibilityReport?.name }} {{ proviteData.feasibilityReport?.name }}
</a> </span >
</span> </span>
<span v-if="detailData.userType == 6"> <span v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.feasibilityReport?.name"> <el-icon class="elView" v-if="proviteData?.feasibilityReport?.name">
<View @click="openFile(proviteData?.feasibilityReport?.name)" /> <View @click="openFile(proviteData?.feasibilityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport.keyName)"> <span class="aLoad" @click="download(proviteData.feasibilityReport.keyName)">
{{ proviteData.feasibilityReport?.name }} {{ proviteData.feasibilityReport?.name }}
</a> </span >
</span> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="项目初步设计说明书"> <el-descriptions-item label="项目初步设计说明书">
@@ -223,66 +223,66 @@
<View @click="openFile(proviteData?.preliminaryDesignDescription?.name)" /> <View @click="openFile(proviteData?.preliminaryDesignDescription?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.preliminaryDesignDescription.keyName)"> <span class="aLoad" @click="download(proviteData.preliminaryDesignDescription.keyName)">
{{ proviteData?.preliminaryDesignDescription?.name }} {{ proviteData?.preliminaryDesignDescription?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="预测评估报告"> <el-descriptions-item label="预测评估报告">
<el-icon class="elView" v-if="proviteData?.predictionEvaluationReport?.name"> <el-icon class="elView" v-if="proviteData?.predictionEvaluationReport?.name">
<View @click="openFile(proviteData?.predictionEvaluationReport?.name)" /> <View @click="openFile(proviteData?.predictionEvaluationReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.predictionEvaluationReport.keyName)"> <span class="aLoad" @click="download(proviteData.predictionEvaluationReport.keyName)">
{{ proviteData?.predictionEvaluationReport?.name }} {{ proviteData?.predictionEvaluationReport?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="预测评估评审意见报告"> <el-descriptions-item label="预测评估评审意见报告">
<el-icon class="elView" v-if="proviteData?.predictionEvaluationReviewOpinions?.name"> <el-icon class="elView" v-if="proviteData?.predictionEvaluationReviewOpinions?.name">
<View @click="openFile(proviteData?.predictionEvaluationReviewOpinions?.name)" /> <View @click="openFile(proviteData?.predictionEvaluationReviewOpinions?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.predictionEvaluationReviewOpinions.keyName)"> <span class="aLoad" @click="download(proviteData.predictionEvaluationReviewOpinions.keyName)">
{{ proviteData?.predictionEvaluationReviewOpinions?.name }} {{ proviteData?.predictionEvaluationReviewOpinions?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="用户接入变电站主接线示意图" v-if="detailData.userType != 0 && detailData.userType != 1"> <el-descriptions-item label="用户接入变电站主接线示意图" v-if="detailData.userType != 0 && detailData.userType != 1">
<el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram?.name"> <el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram?.name">
<View @click="openFile(proviteData?.substationMainWiringDiagram?.name)" /> <View @click="openFile(proviteData?.substationMainWiringDiagram?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.substationMainWiringDiagram.keyName)"> <span class="aLoad" @click="download(proviteData.substationMainWiringDiagram.keyName)">
{{ proviteData?.substationMainWiringDiagram?.name }} {{ proviteData?.substationMainWiringDiagram?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="主要敏感终端清单" v-if="detailData.userType == 6"> <el-descriptions-item label="主要敏感终端清单" v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.sensitiveDevices?.name"> <el-icon class="elView" v-if="proviteData?.sensitiveDevices?.name">
<View @click="openFile(proviteData?.sensitiveDevices?.name)" /> <View @click="openFile(proviteData?.sensitiveDevices?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.sensitiveDevices.keyName)"> <span class="aLoad" @click="download(proviteData.sensitiveDevices.keyName)">
{{ proviteData?.sensitiveDevices?.name }} {{ proviteData?.sensitiveDevices?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="抗扰度测试报告" v-if="detailData.userType == 6"> <el-descriptions-item label="抗扰度测试报告" v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.antiInterferenceReport?.name"> <el-icon class="elView" v-if="proviteData?.antiInterferenceReport?.name">
<View @click="openFile(proviteData?.antiInterferenceReport?.name)" /> <View @click="openFile(proviteData?.antiInterferenceReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.antiInterferenceReport.keyName)"> <span class="aLoad" @click="download(proviteData.antiInterferenceReport.keyName)">
{{ proviteData?.antiInterferenceReport?.name }} {{ proviteData?.antiInterferenceReport?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="背景电能质量测试报告" v-if="detailData.userType == 6"> <el-descriptions-item label="背景电能质量测试报告" v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.powerQualityReport?.name"> <el-icon class="elView" v-if="proviteData?.powerQualityReport?.name">
<View @click="openFile(proviteData?.powerQualityReport?.name)" /> <View @click="openFile(proviteData?.powerQualityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.powerQualityReport.keyName)"> <span class="aLoad" @click="download(proviteData.powerQualityReport.keyName)">
{{ proviteData?.powerQualityReport?.name }} {{ proviteData?.powerQualityReport?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="其他附件" <el-descriptions-item label="其他附件"
v-if="proviteData?.additionalAttachments && proviteData?.additionalAttachments?.url"> v-if="proviteData?.additionalAttachments && proviteData?.additionalAttachments?.url">
<el-icon class="elView" v-if="proviteData?.additionalAttachments?.name"> <el-icon class="elView" v-if="proviteData?.additionalAttachments?.name">
<View @click="openFile(proviteData?.additionalAttachments?.name)" /> <View @click="openFile(proviteData?.additionalAttachments?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.additionalAttachments.keyName)"> <span class="aLoad" @click="download(proviteData.additionalAttachments.keyName)">
{{ proviteData?.additionalAttachments?.name }} {{ proviteData?.additionalAttachments?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-descriptions :column="1" border style="flex: 1" title="变更后"> <el-descriptions :column="1" border style="flex: 1" title="变更后">
@@ -530,9 +530,9 @@
<el-icon class="elView" v-if="proviteData1?.feasibilityReport?.name"> <el-icon class="elView" v-if="proviteData1?.feasibilityReport?.name">
<View @click="openFile(proviteData1?.feasibilityReport?.name)" /> <View @click="openFile(proviteData1?.feasibilityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport.keyName)" rel="nofollow"> <span class="aLoad" @click="download(proviteData.feasibilityReport.keyName)" rel="nofollow">
{{ proviteData1.feasibilityReport?.name }} {{ proviteData1.feasibilityReport?.name }}
</a> </span >
</span> </span>
<span v-if=" <span v-if="
detailData1.userType == 2 || detailData1.userType == 2 ||
@@ -543,9 +543,9 @@
<el-icon class="elView" v-if="proviteData1?.feasibilityReport?.name"> <el-icon class="elView" v-if="proviteData1?.feasibilityReport?.name">
<View @click="openFile(proviteData1?.feasibilityReport?.name)" /> <View @click="openFile(proviteData1?.feasibilityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport.keyName)"> <span class="aLoad" @click="download(proviteData.feasibilityReport.keyName)">
{{ proviteData1.feasibilityReport?.name }} {{ proviteData1.feasibilityReport?.name }}
</a> </span >
</span> </span>
<span v-if="detailData1.userType == 6" <span v-if="detailData1.userType == 6"
:label-class-name="changeTheField?.feasibilityReport ? 'my-content' : ''" :label-class-name="changeTheField?.feasibilityReport ? 'my-content' : ''"
@@ -553,9 +553,9 @@
<el-icon class="elView" v-if="proviteData1?.feasibilityReport?.name"> <el-icon class="elView" v-if="proviteData1?.feasibilityReport?.name">
<View @click="openFile(proviteData1?.feasibilityReport?.name)" /> <View @click="openFile(proviteData1?.feasibilityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport.keyName)"> <span class="aLoad" @click="download(proviteData.feasibilityReport.keyName)">
{{ proviteData1.feasibilityReport?.name }} {{ proviteData1.feasibilityReport?.name }}
</a> </span >
</span> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="项目初步设计说明书" <el-descriptions-item label="项目初步设计说明书"
@@ -565,9 +565,9 @@
<View @click="openFile(proviteData1?.preliminaryDesignDescription?.name)" /> <View @click="openFile(proviteData1?.preliminaryDesignDescription?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.preliminaryDesignDescription.keyName)"> <span class="aLoad" @click="download(proviteData.preliminaryDesignDescription.keyName)">
{{ proviteData1?.preliminaryDesignDescription?.name }} {{ proviteData1?.preliminaryDesignDescription?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="预测评估报告" <el-descriptions-item label="预测评估报告"
:label-class-name="changeTheField?.predictionEvaluationReport ? 'my-content' : ''" :label-class-name="changeTheField?.predictionEvaluationReport ? 'my-content' : ''"
@@ -575,9 +575,9 @@
<el-icon class="elView" v-if="proviteData1?.predictionEvaluationReport?.name"> <el-icon class="elView" v-if="proviteData1?.predictionEvaluationReport?.name">
<View @click="openFile(proviteData1?.predictionEvaluationReport?.name)" /> <View @click="openFile(proviteData1?.predictionEvaluationReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.predictionEvaluationReport.keyName)"> <span class="aLoad" @click="download(proviteData.predictionEvaluationReport.keyName)">
{{ proviteData1?.predictionEvaluationReport?.name }} {{ proviteData1?.predictionEvaluationReport?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="预测评估评审意见报告" <el-descriptions-item label="预测评估评审意见报告"
:label-class-name="changeTheField?.predictionEvaluationReviewOpinions ? 'my-content' : ''" :label-class-name="changeTheField?.predictionEvaluationReviewOpinions ? 'my-content' : ''"
@@ -585,9 +585,9 @@
<el-icon class="elView" v-if="proviteData1?.predictionEvaluationReviewOpinions?.name"> <el-icon class="elView" v-if="proviteData1?.predictionEvaluationReviewOpinions?.name">
<View @click="openFile(proviteData1?.predictionEvaluationReviewOpinions?.name)" /> <View @click="openFile(proviteData1?.predictionEvaluationReviewOpinions?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.predictionEvaluationReviewOpinions.keyName)"> <span class="aLoad" @click="download(proviteData.predictionEvaluationReviewOpinions.keyName)">
{{ proviteData1?.predictionEvaluationReviewOpinions?.name }} {{ proviteData1?.predictionEvaluationReviewOpinions?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="用户接入变电站主接线示意图" v-if="detailData.userType != 0 && detailData.userType != 1" <el-descriptions-item label="用户接入变电站主接线示意图" v-if="detailData.userType != 0 && detailData.userType != 1"
:label-class-name="changeTheField?.substationMainWiringDiagram ? 'my-content' : ''" :label-class-name="changeTheField?.substationMainWiringDiagram ? 'my-content' : ''"
@@ -595,9 +595,9 @@
<el-icon class="elView" v-if="proviteData1?.substationMainWiringDiagram?.name"> <el-icon class="elView" v-if="proviteData1?.substationMainWiringDiagram?.name">
<View @click="openFile(proviteData1?.substationMainWiringDiagram?.name)" /> <View @click="openFile(proviteData1?.substationMainWiringDiagram?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.substationMainWiringDiagram.keyName)"> <span class="aLoad" @click="download(proviteData.substationMainWiringDiagram.keyName)">
{{ proviteData1?.substationMainWiringDiagram?.name }} {{ proviteData1?.substationMainWiringDiagram?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="主要敏感终端清单" v-if="detailData.userType == 6" <el-descriptions-item label="主要敏感终端清单" v-if="detailData.userType == 6"
:label-class-name="changeTheField?.sensitiveDevices ? 'my-content' : ''" :label-class-name="changeTheField?.sensitiveDevices ? 'my-content' : ''"
@@ -605,9 +605,9 @@
<el-icon class="elView" v-if="proviteData1?.sensitiveDevices?.name"> <el-icon class="elView" v-if="proviteData1?.sensitiveDevices?.name">
<View @click="openFile(proviteData1?.sensitiveDevices?.name)" /> <View @click="openFile(proviteData1?.sensitiveDevices?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.sensitiveDevices.keyName)"> <span class="aLoad" @click="download(proviteData.sensitiveDevices.keyName)">
{{ proviteData1?.sensitiveDevices?.name }} {{ proviteData1?.sensitiveDevices?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="抗扰度测试报告" v-if="detailData.userType == 6" <el-descriptions-item label="抗扰度测试报告" v-if="detailData.userType == 6"
:label-class-name="changeTheField?.antiInterferenceReport ? 'my-content' : ''" :label-class-name="changeTheField?.antiInterferenceReport ? 'my-content' : ''"
@@ -615,9 +615,9 @@
<el-icon class="elView" v-if="proviteData1?.antiInterferenceReport?.name"> <el-icon class="elView" v-if="proviteData1?.antiInterferenceReport?.name">
<View @click="openFile(proviteData1?.antiInterferenceReport?.name)" /> <View @click="openFile(proviteData1?.antiInterferenceReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.antiInterferenceReport.keyName)"> <span class="aLoad" @click="download(proviteData.antiInterferenceReport.keyName)">
{{ proviteData1?.antiInterferenceReport?.name }} {{ proviteData1?.antiInterferenceReport?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="背景电能质量测试报告" v-if="detailData.userType == 6" <el-descriptions-item label="背景电能质量测试报告" v-if="detailData.userType == 6"
:label-class-name="changeTheField?.powerQualityReport ? 'my-content' : ''" :label-class-name="changeTheField?.powerQualityReport ? 'my-content' : ''"
@@ -625,9 +625,9 @@
<el-icon class="elView" v-if="proviteData1?.powerQualityReport?.name"> <el-icon class="elView" v-if="proviteData1?.powerQualityReport?.name">
<View @click="openFile(proviteData1?.powerQualityReport?.name)" /> <View @click="openFile(proviteData1?.powerQualityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.powerQualityReport.keyName)"> <span class="aLoad" @click="download(proviteData.powerQualityReport.keyName)">
{{ proviteData1?.powerQualityReport?.name }} {{ proviteData1?.powerQualityReport?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="其他附件" <el-descriptions-item label="其他附件"
v-if="proviteData1?.additionalAttachments && proviteData1?.additionalAttachments?.url" v-if="proviteData1?.additionalAttachments && proviteData1?.additionalAttachments?.url"
@@ -636,9 +636,9 @@
<el-icon class="elView" v-if="proviteData1?.additionalAttachments?.name"> <el-icon class="elView" v-if="proviteData1?.additionalAttachments?.name">
<View @click="openFile(proviteData1?.additionalAttachments?.name)" /> <View @click="openFile(proviteData1?.additionalAttachments?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.additionalAttachments.keyName)"> <span class="aLoad" @click="download(proviteData.additionalAttachments.keyName)">
{{ proviteData1?.additionalAttachments?.name }} {{ proviteData1?.additionalAttachments?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>

View File

@@ -237,9 +237,9 @@
<el-icon class="elView" v-if="proviteData?.feasibilityReport?.name && VITE_FLAG"> <el-icon class="elView" v-if="proviteData?.feasibilityReport?.name && VITE_FLAG">
<View @click="openFile(proviteData?.feasibilityReport?.name)" /> <View @click="openFile(proviteData?.feasibilityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport.keyName)" rel="nofollow"> <span class="aLoad" @click="download(proviteData.feasibilityReport.keyName)" rel="nofollow">
{{ proviteData?.feasibilityReport?.name }} {{ proviteData?.feasibilityReport?.name }}
</a> </span >
</span> </span>
<span <span
v-if=" v-if="
@@ -252,17 +252,17 @@
<el-icon class="elView" v-if="proviteData?.feasibilityReport?.name && VITE_FLAG"> <el-icon class="elView" v-if="proviteData?.feasibilityReport?.name && VITE_FLAG">
<View @click="openFile(proviteData?.feasibilityReport?.name)" /> <View @click="openFile(proviteData?.feasibilityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport.keyName)"> <span class="aLoad" @click="download(proviteData.feasibilityReport.keyName)">
{{ proviteData?.feasibilityReport?.name }} {{ proviteData?.feasibilityReport?.name }}
</a> </span >
</span> </span>
<span v-if="detailData.userType == 6"> <span v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.feasibilityReport?.name && VITE_FLAG"> <el-icon class="elView" v-if="proviteData?.feasibilityReport?.name && VITE_FLAG">
<View @click="openFile(proviteData?.feasibilityReport?.name)" /> <View @click="openFile(proviteData?.feasibilityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport.keyName)"> <span class="aLoad" @click="download(proviteData.feasibilityReport.keyName)">
{{ proviteData?.feasibilityReport?.name }} {{ proviteData?.feasibilityReport?.name }}
</a> </span >
</span> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="项目初步设计说明书"> <el-descriptions-item label="项目初步设计说明书">
@@ -270,25 +270,25 @@
<View @click="openFile(proviteData?.preliminaryDesignDescription?.name)" /> <View @click="openFile(proviteData?.preliminaryDesignDescription?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.preliminaryDesignDescription.keyName)"> <span class="aLoad" @click="download(proviteData.preliminaryDesignDescription.keyName)">
{{ proviteData?.preliminaryDesignDescription?.name }} {{ proviteData?.preliminaryDesignDescription?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="预测评估报告"> <el-descriptions-item label="预测评估报告">
<el-icon class="elView" v-if="proviteData?.predictionEvaluationReport?.name && VITE_FLAG"> <el-icon class="elView" v-if="proviteData?.predictionEvaluationReport?.name && VITE_FLAG">
<View @click="openFile(proviteData?.predictionEvaluationReport?.name)" /> <View @click="openFile(proviteData?.predictionEvaluationReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.predictionEvaluationReport.keyName)"> <span class="aLoad" @click="download(proviteData.predictionEvaluationReport.keyName)">
{{ proviteData?.predictionEvaluationReport?.name }} {{ proviteData?.predictionEvaluationReport?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="预测评估评审意见报告"> <el-descriptions-item label="预测评估评审意见报告">
<el-icon class="elView" v-if="proviteData?.predictionEvaluationReviewOpinions?.name && VITE_FLAG"> <el-icon class="elView" v-if="proviteData?.predictionEvaluationReviewOpinions?.name && VITE_FLAG">
<View @click="openFile(proviteData?.predictionEvaluationReviewOpinions?.name)" /> <View @click="openFile(proviteData?.predictionEvaluationReviewOpinions?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.predictionEvaluationReviewOpinions.keyName)"> <span class="aLoad" @click="download(proviteData.predictionEvaluationReviewOpinions.keyName)">
{{ proviteData?.predictionEvaluationReviewOpinions?.name }} {{ proviteData?.predictionEvaluationReviewOpinions?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item <el-descriptions-item
label="用户接入变电站主接线示意图" label="用户接入变电站主接线示意图"
@@ -297,33 +297,33 @@
<el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram?.name && VITE_FLAG"> <el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram?.name && VITE_FLAG">
<View @click="openFile(proviteData?.substationMainWiringDiagram?.name)" /> <View @click="openFile(proviteData?.substationMainWiringDiagram?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.substationMainWiringDiagram.keyName)"> <span class="aLoad" @click="download(proviteData.substationMainWiringDiagram.keyName)">
{{ proviteData?.substationMainWiringDiagram?.name }} {{ proviteData?.substationMainWiringDiagram?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="主要敏感终端清单" v-if="detailData.userType == 6 && VITE_FLAG"> <el-descriptions-item label="主要敏感终端清单" v-if="detailData.userType == 6 && VITE_FLAG">
<el-icon class="elView" v-if="proviteData?.sensitiveDevices?.name"> <el-icon class="elView" v-if="proviteData?.sensitiveDevices?.name">
<View @click="openFile(proviteData?.sensitiveDevices?.name)" /> <View @click="openFile(proviteData?.sensitiveDevices?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.sensitiveDevices.keyName)"> <span class="aLoad" @click="download(proviteData.sensitiveDevices.keyName)">
{{ proviteData?.sensitiveDevices?.name }} {{ proviteData?.sensitiveDevices?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="抗扰度测试报告" v-if="detailData.userType == 6"> <el-descriptions-item label="抗扰度测试报告" v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.antiInterferenceReport?.name && VITE_FLAG"> <el-icon class="elView" v-if="proviteData?.antiInterferenceReport?.name && VITE_FLAG">
<View @click="openFile(proviteData?.antiInterferenceReport?.name)" /> <View @click="openFile(proviteData?.antiInterferenceReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.antiInterferenceReport.keyName)"> <span class="aLoad" @click="download(proviteData.antiInterferenceReport.keyName)">
{{ proviteData?.antiInterferenceReport?.name }} {{ proviteData?.antiInterferenceReport?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="背景电能质量测试报告" v-if="detailData.userType == 6"> <el-descriptions-item label="背景电能质量测试报告" v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.powerQualityReport?.name && VITE_FLAG"> <el-icon class="elView" v-if="proviteData?.powerQualityReport?.name && VITE_FLAG">
<View @click="openFile(proviteData?.powerQualityReport?.name)" /> <View @click="openFile(proviteData?.powerQualityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.powerQualityReport.keyName)"> <span class="aLoad" @click="download(proviteData.powerQualityReport.keyName)">
{{ proviteData?.powerQualityReport?.name }} {{ proviteData?.powerQualityReport?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item <el-descriptions-item
label="其他附件" label="其他附件"
@@ -332,9 +332,9 @@
<el-icon class="elView" v-if="proviteData?.additionalAttachments?.name && VITE_FLAG"> <el-icon class="elView" v-if="proviteData?.additionalAttachments?.name && VITE_FLAG">
<View @click="openFile(proviteData?.additionalAttachments?.name)" /> <View @click="openFile(proviteData?.additionalAttachments?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.additionalAttachments.keyName)" > <span class="aLoad" @click="download(proviteData.additionalAttachments.keyName)" >
{{ proviteData?.additionalAttachments?.name }} {{ proviteData?.additionalAttachments?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="系统接入方案"> <el-descriptions-item label="系统接入方案">
@@ -342,9 +342,9 @@
<el-icon class="elView" v-if="item.name && VITE_FLAG"> <el-icon class="elView" v-if="item.name && VITE_FLAG">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(item.keyName)"> <span class="aLoad" @click="download(item.keyName)">
{{ item.name }} {{ item.name }}
</a> </span >
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="治理验收报告"> <el-descriptions-item label="治理验收报告">
@@ -352,27 +352,27 @@
<el-icon class="elView" v-if="item.name && VITE_FLAG"> <el-icon class="elView" v-if="item.name && VITE_FLAG">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(item.keyName)" > <span class="aLoad" @click="download(item.keyName)" >
{{ item.name }} {{ item.name }}
</a> </span >
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="信息安全检测报告" v-if="props.openType == 'sourcesOfInterference'"> <el-descriptions-item label="信息安全检测报告" v-if="props.openType == 'sourcesOfInterference'">
<el-icon class="elView" v-if="form.informationSecurityTestReport[0]?.name && VITE_FLAG"> <el-icon class="elView" v-if="form.informationSecurityTestReport[0]?.name && VITE_FLAG">
<View @click="openFile(form.informationSecurityTestReport[0]?.name)" /> <View @click="openFile(form.informationSecurityTestReport[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.predictionEvaluationReviewOpinions.keyName)" > <span class="aLoad" @click="download(proviteData.predictionEvaluationReviewOpinions.keyName)" >
{{ form.informationSecurityTestReport[0]?.name }} {{ form.informationSecurityTestReport[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="入网设计方案审查报告" v-if="props.openType == 'sourcesOfInterference'"> <el-descriptions-item label="入网设计方案审查报告" v-if="props.openType == 'sourcesOfInterference'">
<div v-for="item in form.NetReport"> <div v-for="item in form.NetReport">
<el-icon class="elView" v-if="item.name && VITE_FLAG"> <el-icon class="elView" v-if="item.name && VITE_FLAG">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(item.keyName)" > <span class="aLoad" @click="download(item.keyName)" >
{{ item.name }} {{ item.name }}
</a> </span >
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="治理工程验收报告" v-if="props.openType == 'sourcesOfInterference'"> <el-descriptions-item label="治理工程验收报告" v-if="props.openType == 'sourcesOfInterference'">
@@ -380,9 +380,9 @@
<el-icon class="elView" v-if="item.name && VITE_FLAG"> <el-icon class="elView" v-if="item.name && VITE_FLAG">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(item.keyName)"> <span class="aLoad" @click="download(item.keyName)">
{{ item.name }} {{ item.name }}
</a> </span >
</div> </div>
</el-descriptions-item> </el-descriptions-item>
@@ -390,59 +390,59 @@
<el-icon class="elView" v-if="form.acceptanceInspectionReportSingle[0]?.name && VITE_FLAG"> <el-icon class="elView" v-if="form.acceptanceInspectionReportSingle[0]?.name && VITE_FLAG">
<View @click="openFile(form.acceptanceInspectionReportSingle[0]?.name)" /> <View @click="openFile(form.acceptanceInspectionReportSingle[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.acceptanceInspectionReportSingle[0]?.keyName)"> <span class="aLoad" @click="download(form.acceptanceInspectionReportSingle[0]?.keyName)">
{{ form.acceptanceInspectionReportSingle[0]?.name }} {{ form.acceptanceInspectionReportSingle[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="验收检验报告" v-if="props.openType == 'sourcesOfInterference'"> <el-descriptions-item label="验收检验报告" v-if="props.openType == 'sourcesOfInterference'">
<el-icon class="elView" v-if="form.acceptanceInspectionReport[0]?.name && VITE_FLAG"> <el-icon class="elView" v-if="form.acceptanceInspectionReport[0]?.name && VITE_FLAG">
<View @click="openFile(form.acceptanceInspectionReport[0]?.name)" /> <View @click="openFile(form.acceptanceInspectionReport[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.acceptanceInspectionReport[0]?.keyName )"> <span class="aLoad" @click="download(form.acceptanceInspectionReport[0]?.keyName )">
{{ form.acceptanceInspectionReport[0]?.name }} {{ form.acceptanceInspectionReport[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="型式实验报告" v-if="props.openType == 'sourcesOfInterference'"> <el-descriptions-item label="型式实验报告" v-if="props.openType == 'sourcesOfInterference'">
<el-icon class="elView" v-if="form.typeExperimentReport[0]?.name && VITE_FLAG"> <el-icon class="elView" v-if="form.typeExperimentReport[0]?.name && VITE_FLAG">
<View @click="openFile(form.typeExperimentReport[0]?.name)" /> <View @click="openFile(form.typeExperimentReport[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.typeExperimentReport[0]?.keyName)"> <span class="aLoad" @click="download(form.typeExperimentReport[0]?.keyName)">
{{ form.typeExperimentReport[0]?.name }} {{ form.typeExperimentReport[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="出厂检验报告" v-if="props.openType == 'sourcesOfInterference'"> <el-descriptions-item label="出厂检验报告" v-if="props.openType == 'sourcesOfInterference'">
<el-icon class="elView" v-if="form.factoryInspectionReport[0]?.name && VITE_FLAG"> <el-icon class="elView" v-if="form.factoryInspectionReport[0]?.name && VITE_FLAG">
<View @click="openFile(form.factoryInspectionReport[0]?.name)" /> <View @click="openFile(form.factoryInspectionReport[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.factoryInspectionReport[0]?.keyName)"> <span class="aLoad" @click="download(form.factoryInspectionReport[0]?.keyName)">
{{ form.factoryInspectionReport[0]?.name }} {{ form.factoryInspectionReport[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="性能检测报告" v-if="props.openType == 'sourcesOfInterference'"> <el-descriptions-item label="性能检测报告" v-if="props.openType == 'sourcesOfInterference'">
<el-icon class="elView" v-if="form.performanceTestReport[0]?.name && VITE_FLAG"> <el-icon class="elView" v-if="form.performanceTestReport[0]?.name && VITE_FLAG">
<View @click="openFile(form.performanceTestReport[0]?.name)" /> <View @click="openFile(form.performanceTestReport[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.performanceTestReport[0]?.keyName)"> <span class="aLoad" @click="download(form.performanceTestReport[0]?.keyName)">
{{ form.performanceTestReport[0]?.name }} {{ form.performanceTestReport[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="主接线图" v-if="props.openType == 'sourcesOfInterference'"> <el-descriptions-item label="主接线图" v-if="props.openType == 'sourcesOfInterference'">
<el-icon class="elView" v-if="form.mainWiringDiagram[0]?.name && VITE_FLAG"> <el-icon class="elView" v-if="form.mainWiringDiagram[0]?.name && VITE_FLAG">
<View @click="openFile(form.mainWiringDiagram[0]?.name)" /> <View @click="openFile(form.mainWiringDiagram[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.mainWiringDiagram[0]?.keyName)"> <span class="aLoad" @click="download(form.mainWiringDiagram[0]?.keyName)">
{{ form.mainWiringDiagram[0]?.name }} {{ form.mainWiringDiagram[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="试运行报告" v-if="props.openType == 'sourcesOfInterference'"> <el-descriptions-item label="试运行报告" v-if="props.openType == 'sourcesOfInterference'">
<el-icon class="elView" v-if="form.runTheReport[0]?.name && VITE_FLAG" > <el-icon class="elView" v-if="form.runTheReport[0]?.name && VITE_FLAG" >
<View @click="openFile(form.runTheReport[0]?.name)" /> <View @click="openFile(form.runTheReport[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.runTheReport[0]?.keyName)"> <span class="aLoad" @click="download(form.runTheReport[0]?.keyName)">
{{ form.runTheReport[0]?.name }} {{ form.runTheReport[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>

View File

@@ -107,41 +107,41 @@
<el-icon class="elView" v-if="detailData?.factoryInspectionReport.name"> <el-icon class="elView" v-if="detailData?.factoryInspectionReport.name">
<View @click="openFile(detailData?.factoryInspectionReport.name)" /> <View @click="openFile(detailData?.factoryInspectionReport.name)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(detailData?.factoryInspectionReport.keyName)"> <span class="aLoad" @click="download(detailData?.factoryInspectionReport.keyName)">
{{ detailData?.factoryInspectionReport.name }} {{ detailData?.factoryInspectionReport.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="佐证材料" v-if="detailData?.informationSecurityTestReport"> <el-descriptions-item label="佐证材料" v-if="detailData?.informationSecurityTestReport">
<el-icon class="elView" v-if="detailData?.informationSecurityTestReport.name"> <el-icon class="elView" v-if="detailData?.informationSecurityTestReport.name">
<View @click="openFile(detailData?.informationSecurityTestReport.name)" /> <View @click="openFile(detailData?.informationSecurityTestReport.name)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(detailData?.informationSecurityTestReport.keyName)"> <span class="aLoad" @click="download(detailData?.informationSecurityTestReport.keyName)">
{{ detailData?.informationSecurityTestReport.name }} {{ detailData?.informationSecurityTestReport.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="计划变更材料" v-if="detailData?.otherAttachments"> <el-descriptions-item label="计划变更材料" v-if="detailData?.otherAttachments">
<el-icon class="elView" v-if="detailData?.otherAttachments.name"> <el-icon class="elView" v-if="detailData?.otherAttachments.name">
<View @click="openFile(detailData?.otherAttachments.name)" /> <View @click="openFile(detailData?.otherAttachments.name)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(detailData?.otherAttachments.keyName)">{{ detailData?.otherAttachments.name }}</a> <span class="aLoad" @click="download(detailData?.otherAttachments.keyName)">{{ detailData?.otherAttachments.name }}</span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="告预警单材料" v-if="detailData?.performanceTestReport"> <el-descriptions-item label="告预警单材料" v-if="detailData?.performanceTestReport">
<el-icon class="elView" v-if="detailData?.performanceTestReport.name"> <el-icon class="elView" v-if="detailData?.performanceTestReport.name">
<View @click="openFile(detailData?.performanceTestReport.name)" /> <View @click="openFile(detailData?.performanceTestReport.name)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(detailData?.performanceTestReport.keyName)">{{ detailData?.performanceTestReport.name }}</a> <span class="aLoad" @click="download(detailData?.performanceTestReport.keyName)">{{ detailData?.performanceTestReport.name }}</span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="告预警单反馈材料" v-if="detailData?.typeExperimentReport"> <el-descriptions-item label="告预警单反馈材料" v-if="detailData?.typeExperimentReport">
<el-icon class="elView" v-if="detailData?.typeExperimentReport.name"> <el-icon class="elView" v-if="detailData?.typeExperimentReport.name">
<View @click="openFile(detailData?.typeExperimentReport.name)" /> <View @click="openFile(detailData?.typeExperimentReport.name)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(detailData?.typeExperimentReport.keyName)">{{ detailData?.typeExperimentReport.name }}</a> <span class="aLoad" @click="download(detailData?.typeExperimentReport.keyName)">{{ detailData?.typeExperimentReport.name }}</span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="评估报告" v-if="detailData?.performanceTestReport"> <el-descriptions-item label="评估报告" v-if="detailData?.performanceTestReport">
<el-icon class="elView" v-if="detailData?.performanceTestReport.name"> <el-icon class="elView" v-if="detailData?.performanceTestReport.name">
<View @click="openFile(detailData?.performanceTestReport.name)" /> <View @click="openFile(detailData?.performanceTestReport.name)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(detailData?.performanceTestReport.keyName)">{{ detailData?.performanceTestReport.name }}</a> <span class="aLoad" @click="download(detailData?.performanceTestReport.keyName)">{{ detailData?.performanceTestReport.name }}</span >
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</template> </template>

View File

@@ -17,7 +17,7 @@
<el-icon class="elView" v-if="detailData?.problemName"> <el-icon class="elView" v-if="detailData?.problemName">
<View @click="openFile(detailData?.problemName)" /> <View @click="openFile(detailData?.problemName)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(detailData.keyName)" target="_blank">{{ detailData.problemName }}</a> <span class="aLoad" @click="download(detailData.keyName)" target="_blank">{{ detailData.problemName }}</span >
</el-descriptions-item> </el-descriptions-item>
</template> </template>
<el-descriptions-item :span="2" label="整改意见"> <el-descriptions-item :span="2" label="整改意见">
@@ -30,7 +30,7 @@
<el-icon class="elView" v-if="detailData?.reportName"> <el-icon class="elView" v-if="detailData?.reportName">
<View @click="openFile(detailData?.reportName)" /> <View @click="openFile(detailData?.reportName)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(detailData.keyName)" target="_blank">{{ detailData.reportName }}</a> <span class="aLoad" @click="download(detailData.keyName)" target="_blank">{{ detailData.reportName }}</span >
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>

View File

@@ -15,16 +15,16 @@
<el-icon class="elView" v-if="supervisionReportDetail?.supervisionReportName"> <el-icon class="elView" v-if="supervisionReportDetail?.supervisionReportName">
<View @click="openFile(supervisionReportDetail?.supervisionReportName)" /> <View @click="openFile(supervisionReportDetail?.supervisionReportName)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(supervisionReportDetail.keyName)" target="_blank"> <span class="aLoad" @click="download(supervisionReportDetail.keyName)" target="_blank">
{{ supervisionReportDetail.supervisionReportName }} {{ supervisionReportDetail.supervisionReportName }}
</a> </span >
</el-form-item> </el-form-item>
<el-form-item label="问题附件:" v-if="showFile"> <el-form-item label="问题附件:" v-if="showFile">
<el-icon class="elView" v-if="problemDetail?.problemName"> <el-icon class="elView" v-if="problemDetail?.problemName">
<View @click="openFile(problemDetail?.problemName)" /> <View @click="openFile(problemDetail?.problemName)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(supervisionReportDetail.keyName)" target="_blank">{{ problemDetail.problemName }}</a> <span class="aLoad" @click="download(supervisionReportDetail.keyName)" target="_blank">{{ problemDetail.problemName }}</a>
</el-form-item> </el-form-item>
<el-form-item label="采取的措施:" prop="takeStep"> <el-form-item label="采取的措施:" prop="takeStep">

View File

@@ -225,9 +225,9 @@
<el-icon class="elView" v-if="proviteData?.feasibilityReport?.name"> <el-icon class="elView" v-if="proviteData?.feasibilityReport?.name">
<View @click="openFile(proviteData?.feasibilityReport?.name)" /> <View @click="openFile(proviteData?.feasibilityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download( proviteData.feasibilityReport?.keyName)" rel="nofollow"> <span class="aLoad" @click="download( proviteData.feasibilityReport?.keyName)" rel="nofollow">
{{ proviteData.feasibilityReport?.name }} {{ proviteData.feasibilityReport?.name }}
</a> </span >
</span> </span>
<span <span
v-if=" v-if="
@@ -240,17 +240,17 @@
<el-icon class="elView" v-if="proviteData?.feasibilityReport?.name"> <el-icon class="elView" v-if="proviteData?.feasibilityReport?.name">
<View @click="openFile(proviteData?.feasibilityReport?.name)" /> <View @click="openFile(proviteData?.feasibilityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport?.keyName)"> <span class="aLoad" @click="download(proviteData.feasibilityReport?.keyName)">
{{ proviteData.feasibilityReport?.name }} {{ proviteData.feasibilityReport?.name }}
</a> </span >
</span> </span>
<span v-if="detailData.userType == 6"> <span v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.feasibilityReport?.name"> <el-icon class="elView" v-if="proviteData?.feasibilityReport?.name">
<View @click="openFile(proviteData?.feasibilityReport?.name)" /> <View @click="openFile(proviteData?.feasibilityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData.feasibilityReport?.keyName)"> <span class="aLoad" @click="download(proviteData.feasibilityReport?.keyName)">
{{ proviteData.feasibilityReport?.name }} {{ proviteData.feasibilityReport?.name }}
</a> </span >
</span> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="项目初步设计说明书"> <el-descriptions-item label="项目初步设计说明书">
@@ -258,25 +258,25 @@
<View @click="openFile(proviteData?.preliminaryDesignDescription?.name)" /> <View @click="openFile(proviteData?.preliminaryDesignDescription?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData?.preliminaryDesignDescription?.keyName)"> <span class="aLoad" @click="download(proviteData?.preliminaryDesignDescription?.keyName)">
{{ proviteData?.preliminaryDesignDescription?.name }} {{ proviteData?.preliminaryDesignDescription?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="预测评估报告"> <el-descriptions-item label="预测评估报告">
<el-icon class="elView" v-if="proviteData?.predictionEvaluationReport?.name"> <el-icon class="elView" v-if="proviteData?.predictionEvaluationReport?.name">
<View @click="openFile(proviteData?.predictionEvaluationReport?.name)" /> <View @click="openFile(proviteData?.predictionEvaluationReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData?.predictionEvaluationReport?.keyName)"> <span class="aLoad" @click="download(proviteData?.predictionEvaluationReport?.keyName)">
{{ proviteData?.predictionEvaluationReport?.name }} {{ proviteData?.predictionEvaluationReport?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="预测评估评审意见报告"> <el-descriptions-item label="预测评估评审意见报告">
<el-icon class="elView" v-if="proviteData?.predictionEvaluationReviewOpinions?.name"> <el-icon class="elView" v-if="proviteData?.predictionEvaluationReviewOpinions?.name">
<View @click="openFile(proviteData?.predictionEvaluationReviewOpinions?.name)" /> <View @click="openFile(proviteData?.predictionEvaluationReviewOpinions?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData?.predictionEvaluationReviewOpinions?.keyName)"> <span class="aLoad" @click="download(proviteData?.predictionEvaluationReviewOpinions?.keyName)">
{{ proviteData?.predictionEvaluationReviewOpinions?.name }} {{ proviteData?.predictionEvaluationReviewOpinions?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item <el-descriptions-item
label="用户接入变电站主接线示意图" label="用户接入变电站主接线示意图"
@@ -285,33 +285,33 @@
<el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram?.name"> <el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram?.name">
<View @click="openFile(proviteData?.substationMainWiringDiagram?.name)" /> <View @click="openFile(proviteData?.substationMainWiringDiagram?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData?.substationMainWiringDiagram?.keyName)"> <span class="aLoad" @click="download(proviteData?.substationMainWiringDiagram?.keyName)">
{{ proviteData?.substationMainWiringDiagram?.name }} {{ proviteData?.substationMainWiringDiagram?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="主要敏感终端清单" v-if="detailData.userType == 6"> <el-descriptions-item label="主要敏感终端清单" v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.sensitiveDevices?.name"> <el-icon class="elView" v-if="proviteData?.sensitiveDevices?.name">
<View @click="openFile(proviteData?.sensitiveDevices?.name)" /> <View @click="openFile(proviteData?.sensitiveDevices?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData?.sensitiveDevices?.keyName)"> <span class="aLoad" @click="download(proviteData?.sensitiveDevices?.keyName)">
{{ proviteData?.sensitiveDevices?.name }} {{ proviteData?.sensitiveDevices?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="抗扰度测试报告" v-if="detailData.userType == 6"> <el-descriptions-item label="抗扰度测试报告" v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.antiInterferenceReport?.name"> <el-icon class="elView" v-if="proviteData?.antiInterferenceReport?.name">
<View @click="openFile(proviteData?.antiInterferenceReport?.name)" /> <View @click="openFile(proviteData?.antiInterferenceReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData?.antiInterferenceReport?.keyName)"> <span class="aLoad" @click="download(proviteData?.antiInterferenceReport?.keyName)">
{{ proviteData?.antiInterferenceReport?.name }} {{ proviteData?.antiInterferenceReport?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="背景电能质量测试报告" v-if="detailData.userType == 6"> <el-descriptions-item label="背景电能质量测试报告" v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.powerQualityReport?.name"> <el-icon class="elView" v-if="proviteData?.powerQualityReport?.name">
<View @click="openFile(proviteData?.powerQualityReport?.name)" /> <View @click="openFile(proviteData?.powerQualityReport?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData?.powerQualityReport?.keyName)"> <span class="aLoad" @click="download(proviteData?.powerQualityReport?.keyName)">
{{ proviteData?.powerQualityReport?.name }} {{ proviteData?.powerQualityReport?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item <el-descriptions-item
label="其他附件" label="其他附件"
@@ -320,9 +320,9 @@
<el-icon class="elView" v-if="proviteData?.additionalAttachments?.name"> <el-icon class="elView" v-if="proviteData?.additionalAttachments?.name">
<View @click="openFile(proviteData?.additionalAttachments?.name)" /> <View @click="openFile(proviteData?.additionalAttachments?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(proviteData?.additionalAttachments?.keyName)"> <span class="aLoad" @click="download(proviteData?.additionalAttachments?.keyName)">
{{ proviteData?.additionalAttachments?.name }} {{ proviteData?.additionalAttachments?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="入网方案报告"> <el-descriptions-item label="入网方案报告">
@@ -330,9 +330,9 @@
<el-icon class="elView" v-if="item.name"> <el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(item.keyName)"> <span class="aLoad" @click="download(item.keyName)">
{{ item.name }} {{ item.name }}
</a> </span >
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="治理验收报告"> <el-descriptions-item label="治理验收报告">
@@ -340,27 +340,27 @@
<el-icon class="elView" v-if="item.name"> <el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(item.keyName)"> <span class="aLoad" @click="download(item.keyName)">
{{ item.name }} {{ item.name }}
</a> </span >
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="信息安全检测报告"> <el-descriptions-item label="信息安全检测报告">
<el-icon class="elView" v-if="form.informationSecurityTestReport[0]?.name"> <el-icon class="elView" v-if="form.informationSecurityTestReport[0]?.name">
<View @click="openFile(form.informationSecurityTestReport[0]?.name)" /> <View @click="openFile(form.informationSecurityTestReport[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.informationSecurityTestReport[0]?.keyName)"> <span class="aLoad" @click="download(form.informationSecurityTestReport[0]?.keyName)">
{{ form.informationSecurityTestReport[0]?.name }} {{ form.informationSecurityTestReport[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="入网设计方案审查报告"> <el-descriptions-item label="入网设计方案审查报告">
<div v-for="item in form.NetReport"> <div v-for="item in form.NetReport">
<el-icon class="elView" v-if="item.name"> <el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(item.keyName)"> <span class="aLoad" @click="download(item.keyName)">
{{ item.name }} {{ item.name }}
</a> </span >
</div> </div>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="治理工程验收报告"> <el-descriptions-item label="治理工程验收报告">
@@ -368,9 +368,9 @@
<el-icon class="elView" v-if="item.name"> <el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" /> <View @click="openFile(item.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(item.keyName)"> <span class="aLoad" @click="download(item.keyName)">
{{ item.name }} {{ item.name }}
</a> </span >
</div> </div>
</el-descriptions-item> </el-descriptions-item>
@@ -378,59 +378,59 @@
<el-icon class="elView" v-if="form.acceptanceInspectionReportSingle[0]?.name"> <el-icon class="elView" v-if="form.acceptanceInspectionReportSingle[0]?.name">
<View @click="openFile(form.acceptanceInspectionReportSingle[0]?.name)" /> <View @click="openFile(form.acceptanceInspectionReportSingle[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.acceptanceInspectionReportSingle[0]?.keyName)"> <span class="aLoad" @click="download(form.acceptanceInspectionReportSingle[0]?.keyName)">
{{ form.acceptanceInspectionReportSingle[0]?.name }} {{ form.acceptanceInspectionReportSingle[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="验收检验报告"> <el-descriptions-item label="验收检验报告">
<el-icon class="elView" v-if="form.acceptanceInspectionReport[0]?.name"> <el-icon class="elView" v-if="form.acceptanceInspectionReport[0]?.name">
<View @click="openFile(form.acceptanceInspectionReport[0]?.name)" /> <View @click="openFile(form.acceptanceInspectionReport[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.acceptanceInspectionReport[0]?.keyName)"> <span class="aLoad" @click="download(form.acceptanceInspectionReport[0]?.keyName)">
{{ form.acceptanceInspectionReport[0]?.name }} {{ form.acceptanceInspectionReport[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="型式实验报告"> <el-descriptions-item label="型式实验报告">
<el-icon class="elView" v-if="form.typeExperimentReport[0]?.name"> <el-icon class="elView" v-if="form.typeExperimentReport[0]?.name">
<View @click="openFile(form.typeExperimentReport[0]?.name)" /> <View @click="openFile(form.typeExperimentReport[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.typeExperimentReport[0]?.keyName)"> <span class="aLoad" @click="download(form.typeExperimentReport[0]?.keyName)">
{{ form.typeExperimentReport[0]?.name }} {{ form.typeExperimentReport[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="出厂检验报告"> <el-descriptions-item label="出厂检验报告">
<el-icon class="elView" v-if="form.factoryInspectionReport[0]?.name"> <el-icon class="elView" v-if="form.factoryInspectionReport[0]?.name">
<View @click="openFile(form.factoryInspectionReport[0]?.name)" /> <View @click="openFile(form.factoryInspectionReport[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.factoryInspectionReport[0]?.keyName)"> <span class="aLoad" @click="download(form.factoryInspectionReport[0]?.keyName)">
{{ form.factoryInspectionReport[0]?.name }} {{ form.factoryInspectionReport[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="性能检测报告"> <el-descriptions-item label="性能检测报告">
<el-icon class="elView" v-if="form.performanceTestReport[0]?.name"> <el-icon class="elView" v-if="form.performanceTestReport[0]?.name">
<View @click="openFile(form.performanceTestReport[0]?.name)" /> <View @click="openFile(form.performanceTestReport[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.performanceTestReport[0]?.keyName)"> <span class="aLoad" @click="download(form.performanceTestReport[0]?.keyName)">
{{ form.performanceTestReport[0]?.name }} {{ form.performanceTestReport[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="主接线图"> <el-descriptions-item label="主接线图">
<el-icon class="elView" v-if="form.mainWiringDiagram[0]?.name"> <el-icon class="elView" v-if="form.mainWiringDiagram[0]?.name">
<View @click="openFile(form.mainWiringDiagram[0]?.name)" /> <View @click="openFile(form.mainWiringDiagram[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.mainWiringDiagram[0]?.keyName)"> <span class="aLoad" @click="download(form.mainWiringDiagram[0]?.keyName)">
{{ form.mainWiringDiagram[0]?.name }} {{ form.mainWiringDiagram[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="试运行报告"> <el-descriptions-item label="试运行报告">
<el-icon class="elView" v-if="form.runTheReport[0]?.name"> <el-icon class="elView" v-if="form.runTheReport[0]?.name">
<View @click="openFile(form.runTheReport[0]?.name)" /> <View @click="openFile(form.runTheReport[0]?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(form.runTheReport[0]?.keyName)"> <span class="aLoad" @click="download(form.runTheReport[0]?.keyName)">
{{ form.runTheReport[0]?.name }} {{ form.runTheReport[0]?.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>

View File

@@ -27,9 +27,9 @@
<el-icon class="elView" v-if="detailData?.reportPaths?.fileName"> <el-icon class="elView" v-if="detailData?.reportPaths?.fileName">
<View @click="openFile(detailData?.reportPaths?.fileName)" /> <View @click="openFile(detailData?.reportPaths?.fileName)" />
</el-icon> </el-icon>
<a class="aLoad" @click="download(detailData.reportPaths?.keyName)"> <span class="aLoad" @click="download(detailData.reportPaths?.keyName)">
{{ detailData.reportPaths?.fileName }} {{ detailData.reportPaths?.fileName }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="描述"> <el-descriptions-item label="描述">
{{ detailData?.description }} {{ detailData?.description }}

View File

@@ -6,7 +6,7 @@
</el-icon> </el-icon>
<a :href="detailData?.lineFilePath.url"> <a :href="detailData?.lineFilePath.url">
{{ detailData?.lineFilePath.name }} {{ detailData?.lineFilePath.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="填报人"> <el-descriptions-item label="填报人">
{{ detailData.reporter }} {{ detailData.reporter }}
@@ -116,9 +116,9 @@
<el-icon class="elView" v-if="detailData?.mainWiringDiagram.name"> <el-icon class="elView" v-if="detailData?.mainWiringDiagram.name">
<View @click="openFile(detailData?.mainWiringDiagram.name)" /> <View @click="openFile(detailData?.mainWiringDiagram.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(detailData?.mainWiringDiagram.keyName)"> <span class="aLoad" @click="download(detailData?.mainWiringDiagram.keyName)">
{{ detailData?.mainWiringDiagram.name }} {{ detailData?.mainWiringDiagram.name }}
</a> </span >
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</template> </template>

View File

@@ -201,81 +201,85 @@
<el-icon class="elView" v-if="detailData?.informationSecurityTestReport?.name"> <el-icon class="elView" v-if="detailData?.informationSecurityTestReport?.name">
<View @click="openFile(detailData?.informationSecurityTestReport?.name)" /> <View @click="openFile(detailData?.informationSecurityTestReport?.name)" />
</el-icon> </el-icon>
<a <span
target="_blank" class="aLoad"
class="aLoad" @click="download(detailData?.informationSecurityTestReport.keyName)" @click="download(detailData?.informationSecurityTestReport.keyName)"
v-if="detailData?.informationSecurityTestReport?.name" v-if="detailData?.informationSecurityTestReport?.name"
> >
{{ detailData?.informationSecurityTestReport.name }} {{ detailData?.informationSecurityTestReport.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="验收检验报告单"> <el-descriptions-item label="验收检验报告单">
<el-icon class="elView" v-if="detailData?.acceptanceInspectionReportSingle?.name"> <el-icon class="elView" v-if="detailData?.acceptanceInspectionReportSingle?.name">
<View @click="openFile(detailData?.acceptanceInspectionReportSingle?.name)" /> <View @click="openFile(detailData?.acceptanceInspectionReportSingle?.name)" />
</el-icon> </el-icon>
<a <span
target="_blank" class="aLoad"
class="aLoad" @click="download(detailData?.acceptanceInspectionReportSingle.keyName)" @click="download(detailData?.acceptanceInspectionReportSingle.keyName)"
v-if="detailData?.acceptanceInspectionReportSingle?.name" v-if="detailData?.acceptanceInspectionReportSingle?.name"
> >
{{ detailData?.acceptanceInspectionReportSingle?.name }} {{ detailData?.acceptanceInspectionReportSingle?.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="验收检验报告"> <el-descriptions-item label="验收检验报告">
<el-icon class="elView" v-if="detailData?.acceptanceInspectionReport?.name"> <el-icon class="elView" v-if="detailData?.acceptanceInspectionReport?.name">
<View @click="openFile(detailData?.acceptanceInspectionReport?.name)" /> <View @click="openFile(detailData?.acceptanceInspectionReport?.name)" />
</el-icon> </el-icon>
<a <span
target="_blank" class="aLoad"
class="aLoad" @click="download(detailData?.acceptanceInspectionReport.keyName)" @click="download(detailData?.acceptanceInspectionReport.keyName)"
v-if="detailData?.acceptanceInspectionReport?.name" v-if="detailData?.acceptanceInspectionReport?.name"
> >
{{ detailData?.acceptanceInspectionReport?.name }} {{ detailData?.acceptanceInspectionReport?.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="型式实验报告"> <el-descriptions-item label="型式实验报告">
<el-icon class="elView" v-if="detailData?.typeExperimentReport?.name"> <el-icon class="elView" v-if="detailData?.typeExperimentReport?.name">
<View @click="openFile(detailData?.typeExperimentReport?.name)" /> <View @click="openFile(detailData?.typeExperimentReport?.name)" />
</el-icon> </el-icon>
<a <span
target="_blank"
v-if="detailData?.typeExperimentReport?.name" v-if="detailData?.typeExperimentReport?.name"
class="aLoad" @click="download(detailData?.typeExperimentReport.keyName)" class="aLoad"
@click="download(detailData?.typeExperimentReport.keyName)"
> >
{{ detailData?.typeExperimentReport?.name }} {{ detailData?.typeExperimentReport?.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="出厂检验报告"> <el-descriptions-item label="出厂检验报告">
<el-icon class="elView" v-if="detailData?.factoryInspectionReport?.name"> <el-icon class="elView" v-if="detailData?.factoryInspectionReport?.name">
<View @click="openFile(detailData?.factoryInspectionReport?.name)" /> <View @click="openFile(detailData?.factoryInspectionReport?.name)" />
</el-icon> </el-icon>
<a <span
target="_blank" class="aLoad"
class="aLoad" @click="download(detailData?.factoryInspectionReport.keyName)" @click="download(detailData?.factoryInspectionReport.keyName)"
v-if="detailData?.factoryInspectionReport?.name" v-if="detailData?.factoryInspectionReport?.name"
> >
{{ detailData?.factoryInspectionReport?.name }} {{ detailData?.factoryInspectionReport?.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="性能检测报告"> <el-descriptions-item label="性能检测报告">
<el-icon class="elView" v-if="detailData?.performanceTestReport?.name"> <el-icon class="elView" v-if="detailData?.performanceTestReport?.name">
<View @click="openFile(detailData?.performanceTestReport?.name)" /> <View @click="openFile(detailData?.performanceTestReport?.name)" />
</el-icon> </el-icon>
<a <span
target="_blank" class="aLoad"
class="aLoad" @click="download(detailData?.performanceTestReport.keyName)" @click="download(detailData?.performanceTestReport.keyName)"
v-if="detailData?.performanceTestReport?.name" v-if="detailData?.performanceTestReport?.name"
> >
{{ detailData?.performanceTestReport?.name }} {{ detailData?.performanceTestReport?.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="其他附件"> <el-descriptions-item label="其他附件">
<el-icon class="elView" v-if="detailData?.otherAttachments?.name"> <el-icon class="elView" v-if="detailData?.otherAttachments?.name">
<View @click="openFile(detailData?.otherAttachments?.name)" /> <View @click="openFile(detailData?.otherAttachments?.name)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(detailData?.otherAttachments.keyName)" v-if="detailData?.otherAttachments?.name"> <span
class="aLoad"
@click="download(detailData?.otherAttachments.keyName)"
v-if="detailData?.otherAttachments?.name"
>
{{ detailData?.otherAttachments?.name }} {{ detailData?.otherAttachments?.name }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</template> </template>
@@ -290,7 +294,7 @@ import { useDictData } from '@/stores/dictData'
import { getFileNameAndFilePath } from '@/api/system-boot/file' import { getFileNameAndFilePath } from '@/api/system-boot/file'
import { Link, View } from '@element-plus/icons-vue' import { Link, View } from '@element-plus/icons-vue'
import { nodeAllList } from '@/api/device-boot/Business' import { nodeAllList } from '@/api/device-boot/Business'
import {download} from '@/utils/fileDownLoad' import { download } from '@/utils/fileDownLoad'
defineOptions({ name: 'BpmUserReportDetail' }) defineOptions({ name: 'BpmUserReportDetail' })
const openFile = (name: any) => { const openFile = (name: any) => {
window.open(window.location.origin + '/#/previewFile?/supervision/' + name) window.open(window.location.origin + '/#/previewFile?/supervision/' + name)
@@ -482,7 +486,7 @@ const getFileNamePath = async (val: any, pathName: any) => {
else if (pathName == 'acceptanceInspectionReport' && detailData.value.acceptanceInspectionReport) { else if (pathName == 'acceptanceInspectionReport' && detailData.value.acceptanceInspectionReport) {
detailData.value.acceptanceInspectionReport = { detailData.value.acceptanceInspectionReport = {
name: res.data.fileName, name: res.data.fileName,
keyName: res.data.name, keyName: res.data.name,
url: res.data.url url: res.data.url
} }
} }
@@ -490,7 +494,7 @@ const getFileNamePath = async (val: any, pathName: any) => {
else if (pathName == 'typeExperimentReport' && detailData.value.typeExperimentReport) { else if (pathName == 'typeExperimentReport' && detailData.value.typeExperimentReport) {
detailData.value.typeExperimentReport = { detailData.value.typeExperimentReport = {
name: res.data.fileName, name: res.data.fileName,
keyName: res.data.name, keyName: res.data.name,
url: res.data.url url: res.data.url
} }
} }
@@ -498,7 +502,7 @@ const getFileNamePath = async (val: any, pathName: any) => {
else if (pathName == 'factoryInspectionReport' && detailData.value.factoryInspectionReport) { else if (pathName == 'factoryInspectionReport' && detailData.value.factoryInspectionReport) {
detailData.value.factoryInspectionReport = { detailData.value.factoryInspectionReport = {
name: res.data.fileName, name: res.data.fileName,
keyName: res.data.name, keyName: res.data.name,
url: res.data.url url: res.data.url
} }
} }
@@ -513,7 +517,7 @@ const getFileNamePath = async (val: any, pathName: any) => {
else if (pathName == 'otherAttachments' && detailData.value.otherAttachments) { else if (pathName == 'otherAttachments' && detailData.value.otherAttachments) {
detailData.value.otherAttachments = { detailData.value.otherAttachments = {
name: res.data.fileName, name: res.data.fileName,
keyName: res.data.name, keyName: res.data.name,
url: res.data.url url: res.data.url
} }
} }

View File

@@ -29,9 +29,9 @@
<el-icon class="elView" v-if="detailData?.reportName"> <el-icon class="elView" v-if="detailData?.reportName">
<View @click="openFile(detailData?.testRunReport)" /> <View @click="openFile(detailData?.testRunReport)" />
</el-icon> </el-icon>
<a target="_blank" class="aLoad" @click="download(detailData?.keyName)"> <span class="aLoad" @click="download(detailData?.keyName)">
{{ detailData?.reportName }} {{ detailData?.reportName }}
</a> </span>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>

View File

@@ -23,7 +23,7 @@
</TableHeader> </TableHeader>
<Table ref="tableRef" :checkbox-config="checkboxConfig" /> <Table ref="tableRef" :checkbox-config="checkboxConfig" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="试运行评估问题" name="2"> <el-tab-pane label="试运行评估问题" name="2" v-if="VITE_FLAG">
<testRun v-if="activeName == '2'" /> <testRun v-if="activeName == '2'" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@@ -68,6 +68,7 @@ import testRun from '@/views/pqs/supervise/electricalEnergy/components1/testRun.
import { useAdminInfo } from '@/stores/adminInfo' import { useAdminInfo } from '@/stores/adminInfo'
import { getFileNameAndFilePath } from '@/api/system-boot/file' import { getFileNameAndFilePath } from '@/api/system-boot/file'
import { deleteTempLineRunTestReport } from '@/api/supervision-boot/delete/index' import { deleteTempLineRunTestReport } from '@/api/supervision-boot/delete/index'
const VITE_FLAG = import.meta.env.VITE_NAME == 'jibei'
const dictData = useDictData() const dictData = useDictData()
const statusSelect = dictData.statusSelect() const statusSelect = dictData.statusSelect()
const { push } = useRouter() const { push } = useRouter()

View File

@@ -16,10 +16,11 @@ import TableHeader from '@/components/table/header/index.vue'
import { ElMessage, ElMessageBox } from 'element-plus' import { ElMessage, ElMessageBox } from 'element-plus'
import FeedbackPopup from '@/views/pqs/supervise/technology/feedbackPopup.vue' import FeedbackPopup from '@/views/pqs/supervise/technology/feedbackPopup.vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import {cancelFeedback, getById} from '@/api/supervision-boot/leaflet' import { cancelFeedback, getById } from '@/api/supervision-boot/leaflet'
import { useAdminInfo } from '@/stores/adminInfo' import { useAdminInfo } from '@/stores/adminInfo'
import { useDictData } from '@/stores/dictData' import { useDictData } from '@/stores/dictData'
import { deleteWarningLeaflet } from '@/api/supervision-boot/delete/index' import { deleteWarningLeaflet } from '@/api/supervision-boot/delete/index'
const VITE_FLAG = import.meta.env.VITE_NAME == 'jibei'
const dictData = useDictData() const dictData = useDictData()
//获取登陆用户姓名和部门 //获取登陆用户姓名和部门
const adminInfo = useAdminInfo() const adminInfo = useAdminInfo()
@@ -31,7 +32,7 @@ const tableStore = new TableStore({
url: '/supervision-boot/warningLeaflet/warningPageData', url: '/supervision-boot/warningLeaflet/warningPageData',
publicHeight: 65, publicHeight: 65,
method: 'POST', method: 'POST',
filename:'预警单列表', filename: '预警单列表',
column: [ column: [
{ {
width: '60', width: '60',
@@ -126,6 +127,9 @@ const tableStore = new TableStore({
disabled: row => { disabled: row => {
return row.problemType != 2 return row.problemType != 2
}, },
showDisabled: row => {
return VITE_FLAG
},
click: row => { click: row => {
const match = row.filePath.match(/excelreport(\/[^?#]*)/) const match = row.filePath.match(/excelreport(\/[^?#]*)/)
@@ -282,13 +286,11 @@ const deleteEven = () => {
message: '请选择要删除的数据' message: '请选择要删除的数据'
}) })
} else { } else {
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', { ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}) }).then(() => {
.then(() => {
deleteWarningLeaflet(tableStore.table.selection.map(item => item.id)).then(res => { deleteWarningLeaflet(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({ ElMessage({
type: 'success', type: 'success',
@@ -296,9 +298,7 @@ const deleteEven = () => {
}) })
tableStore.index() tableStore.index()
}) })
}) })
} }
} }
/**取消流程操作*/ /**取消流程操作*/
@@ -333,41 +333,45 @@ const handleAudit = (instanceId: any, historyInstanceId: any) => {
}) })
} }
const props = defineProps(['id','businessKey']) const props = defineProps(['id', 'businessKey'])
watch(() => props.id, async (newValue, oldValue) => { watch(
if (newValue === 'null') return // 直接返回,避免后续逻辑执行 () => props.id,
let fullId = newValue.split('@')[0] async (newValue, oldValue) => {
let nowTime = Date.now() if (newValue === 'null') return // 直接返回,避免后续逻辑执行
const routeTime = Number(newValue.split('@')[1]) let fullId = newValue.split('@')[0]
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT || fullId == 'null') return // 路由时间超过500ms则不执行 let nowTime = Date.now()
await getById(fullId).then(res => { const routeTime = Number(newValue.split('@')[1])
if (res && res.code == 'A0000') { if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT || fullId == 'null') return // 路由时间超过500ms则不执行
if(props.businessKey == '3'){ await getById(fullId).then(res => {
feedbackPopup.value.open( if (res && res.code == 'A0000') {
'填报预警反馈单', if (props.businessKey == '3') {
res.data.id, feedbackPopup.value.open(
res.data.status, '填报预警反馈单',
res.data.issueDetail, res.data.id,
res.data.problemPath, res.data.status,
res.data.reportPath, res.data.issueDetail,
res.data.reformAdvice res.data.problemPath,
) res.data.reportPath,
}else{ res.data.reformAdvice
feedbackPopup.value.open( )
'重新填报预警反馈单', } else {
res.data.id, feedbackPopup.value.open(
res.data.status, '重新填报预警反馈单',
res.data.issueDetail, res.data.id,
res.data.problemPath, res.data.status,
res.data.reportPath, res.data.issueDetail,
res.data.reformAdvice, res.data.problemPath,
res.data.takeStep, res.data.reportPath,
res.data.reportPath res.data.reformAdvice,
) res.data.takeStep,
} res.data.reportPath
} )
}) }
}, {immediate: true}) }
})
},
{ immediate: true }
)
</script> </script>
<style scoped lang="scss"></style> <style scoped lang="scss"></style>

View File

@@ -17,7 +17,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { Download } from '@element-plus/icons-vue' import { Download } from '@element-plus/icons-vue'
import { ref, onMounted, provide, reactive } from 'vue' import { ref, onMounted, provide, reactive, nextTick } from 'vue'
import { ElMessageBox, ElMessage } from 'element-plus' import { ElMessageBox, ElMessage } from 'element-plus'
import TableStore from '@/utils/tableStore' import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue' import Table from '@/components/table/index.vue'
@@ -57,7 +57,7 @@ const tableStore = new TableStore({
}, },
{ title: '变电站名称', field: 'subName', minWidth: '140' }, { title: '变电站名称', field: 'subName', minWidth: '140' },
{ title: '监测点名称', field: 'lineName', minWidth: '130' }, { title: '监测点名称', field: 'lineName', minWidth: '130' },
{ title: '网络参数', field: 'ip' ,width:'120px' }, { title: '网络参数', field: 'ip', width: '120px' },
{ title: '电压等级(kV)', field: 'voltageScale', width: '120' }, { title: '电压等级(kV)', field: 'voltageScale', width: '120' },
{ title: '暂降发生时刻', field: 'startTime', width: '200' }, { title: '暂降发生时刻', field: 'startTime', width: '200' },
// { title: '暂降类型', field: 'advanceType', minWidth: '130' }, // { title: '暂降类型', field: 'advanceType', minWidth: '130' },
@@ -138,7 +138,9 @@ onMounted(() => {
// 加载数据 // 加载数据
nextTick(() => { nextTick(() => {
// tableStore.index() // tableStore.index()
TableHeaderRef.value.onComSearch() if (monitoringPoint.state.lineId) {
TableHeaderRef.value.onComSearch()
}
}) })
}) })
const checkboxConfig = reactive<VxeTablePropTypes.CheckboxConfig<any>>({ const checkboxConfig = reactive<VxeTablePropTypes.CheckboxConfig<any>>({

View File

@@ -157,6 +157,8 @@ const tableStore: any = new TableStore({
}) })
tableStore.table.params.dicData = '' tableStore.table.params.dicData = ''
tableStore.table.params.searchValue = '' tableStore.table.params.searchValue = ''
tableStore.table.params.deptIndex = dictData.state.area[0].id
provide('tableStore', tableStore) provide('tableStore', tableStore)
const route = useRoute() const route = useRoute()