解决下载路径为空

This commit is contained in:
sjl
2025-12-22 15:13:43 +08:00
parent d69a6e1e5d
commit a52021572a
17 changed files with 529 additions and 440 deletions

View File

@@ -1,7 +1,7 @@
import { downloadFile } from '@/api/system-boot/file' import { downloadFile } from '@/api/system-boot/file'
// 下载文件 // 下载文件
export const download = (urls: string) => { export const download = (urls: any) => {
console.log("🚀 ~ download ~ urls:", urls)
downloadFile({ filePath: urls }).then((res: any) => { downloadFile({ filePath: urls }).then((res: any) => {
let blob = new Blob([res], { let blob = new Blob([res], {
type: urls.includes('.pdf') type: urls.includes('.pdf')

View File

@@ -1,5 +1,9 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="所在地市"> <el-descriptions-item label="所在地市">
{{ detailData.city }} {{ detailData.city }}
@@ -209,6 +213,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive, watch } from 'vue' import { onMounted, ref, reactive, watch } from 'vue'

View File

@@ -1,5 +1,9 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<!-- <h1>详细信息回显</h1>--> <!-- <h1>详细信息回显</h1>-->
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="普测计划名称"> <el-descriptions-item label="普测计划名称">
@@ -50,6 +54,7 @@
</vxe-table> </vxe-table>
</div> </div>
</div> </div>
</div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'

View File

@@ -1,5 +1,9 @@
<template> <template>
<div class='default-main'> <div class='default-main'>
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<el-descriptions :column='2' label-width="140px" border> <el-descriptions :column='2' label-width="140px" border>
<el-descriptions-item label='技术监督计划名称'> <el-descriptions-item label='技术监督计划名称'>
{{ detailData?.planName }} {{ detailData?.planName }}
@@ -44,6 +48,7 @@
</vxe-table> </vxe-table>
</div> </div>
</div> </div>
</div>
</template> </template>
<script setup lang='ts'> <script setup lang='ts'>
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'

View File

@@ -1,5 +1,9 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="技术监督计划名称"> <el-descriptions-item label="技术监督计划名称">
{{ detailData?.planName }} {{ detailData?.planName }}
@@ -88,6 +92,8 @@
</el-descriptions-item> --> </el-descriptions-item> -->
</el-descriptions> </el-descriptions>
</div> </div>
</div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'

View File

@@ -1,5 +1,9 @@
<template> <template>
<div class="details"> <div class="details">
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<el-divider content-position="left">干扰源用户信息</el-divider> <el-divider content-position="left">干扰源用户信息</el-divider>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="工程预期投产日期"> <el-descriptions-item label="工程预期投产日期">
@@ -313,6 +317,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive, nextTick } from 'vue' import { onMounted, ref, reactive, nextTick } from 'vue'

View File

@@ -1,5 +1,9 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<div style="display: flex; justify-content: space-between"> <div style="display: flex; justify-content: space-between">
<el-descriptions :column="1" border style="flex: 1" class="mr20" title="变更前"> <el-descriptions :column="1" border style="flex: 1" class="mr20" title="变更前">
<el-descriptions-item label="填报人"> <el-descriptions-item label="填报人">
@@ -643,6 +647,7 @@
</el-descriptions> </el-descriptions>
</div> </div>
</div> </div>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive, watch } from 'vue' import { onMounted, ref, reactive, watch } from 'vue'

View File

@@ -1,5 +1,10 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<!-- 加载状态显示 -->
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="填报人"> <el-descriptions-item label="填报人">
{{ detailData.reporter }} {{ detailData.reporter }}
@@ -290,6 +295,8 @@
{{ proviteData?.predictionEvaluationReviewOpinions?.name }} {{ proviteData?.predictionEvaluationReviewOpinions?.name }}
</span > </span >
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item <el-descriptions-item
label="用户接入变电站主接线示意图" label="用户接入变电站主接线示意图"
v-if="detailData.userType != 0 && detailData.userType != 1" v-if="detailData.userType != 0 && detailData.userType != 1"
@@ -446,6 +453,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive, watch } from 'vue' import { onMounted, ref, reactive, watch } from 'vue'
@@ -481,6 +489,7 @@ const detailData = ref<any>({}) // 详情数据
const devIdList = ref([]) const devIdList = ref([])
const queryId = query.id as unknown as string // 从 URL 传递过来的 id 编号 const queryId = query.id as unknown as string // 从 URL 传递过来的 id 编号
const openFile = (name: any) => { const openFile = (name: any) => {
window.open(window.location.origin + '/#/previewFile?/supervision/' + name) window.open(window.location.origin + '/#/previewFile?/supervision/' + name)
} }
const netInReportList: any = ref([]) const netInReportList: any = ref([])
@@ -581,7 +590,7 @@ const getInfo = async () => {
detailLoading.value = false detailLoading.value = false
} }
console.log(form.value)
if (props.openType == 'sourcesOfInterference') { if (props.openType == 'sourcesOfInterference') {
queryFiles() queryFiles()
} }
@@ -656,7 +665,7 @@ const queryFiles = () => {
} }
//判断userType选择取用的对象 //判断userType选择取用的对象
const getProviteData = async () => { const getProviteData = async () => {
console.log('energyQualityIndexList', energyQualityIndexList)
if (detailData.value.userType == '0' || detailData.value.userType == '1') { if (detailData.value.userType == '0' || detailData.value.userType == '1') {
proviteData.value = detailData.value.userReportProjectPO proviteData.value = detailData.value.userReportProjectPO
//查询非线性终端类型 //查询非线性终端类型
@@ -679,7 +688,7 @@ const getProviteData = async () => {
} }
} else { } else {
proviteData.value = detailData.value.userReportSensitivePO proviteData.value = detailData.value.userReportSensitivePO
console.log(proviteData.value.energyQualityIndex)
console.log( console.log(
'proviteData.value.nonlinearLoadType', 'proviteData.value.nonlinearLoadType',
energyQualityIndexList.find(item => { energyQualityIndexList.find(item => {
@@ -715,6 +724,8 @@ const getProviteData = async () => {
proviteData.value.predictionEvaluationReviewOpinions, proviteData.value.predictionEvaluationReviewOpinions,
'predictionEvaluationReviewOpinions' 'predictionEvaluationReviewOpinions'
) )
} }
//用户接入变电站主接线示意图 //用户接入变电站主接线示意图
if ( if (
@@ -807,9 +818,10 @@ const getFileNamePath = async (val: any, pathName: any) => {
) { ) {
proviteData.value.predictionEvaluationReviewOpinions = { proviteData.value.predictionEvaluationReviewOpinions = {
name: res.data.fileName, name: res.data.fileName,
keyName: res.data.name, keyName: val,
url: res.data.url url: res.data.url
} }
} }
//用户接入变电站主接线示意图 //用户接入变电站主接线示意图
else if (pathName == 'substationMainWiringDiagram' && proviteData.value.substationMainWiringDiagram) { else if (pathName == 'substationMainWiringDiagram' && proviteData.value.substationMainWiringDiagram) {

View File

@@ -1,4 +1,8 @@
<template> <template>
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="计划名称"> <el-descriptions-item label="计划名称">
{{ detailData.workPlanName }} {{ detailData.workPlanName }}
@@ -144,6 +148,7 @@
<span class="aLoad" @click="download(detailData?.performanceTestReport.keyName)">{{ detailData?.performanceTestReport.name }}</span > <span class="aLoad" @click="download(detailData?.performanceTestReport.keyName)">{{ detailData?.performanceTestReport.name }}</span >
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive } from 'vue' import { onMounted, ref, reactive } from 'vue'

View File

@@ -1,6 +1,10 @@
<template> <template>
<!--工作流view的路径/pqs/supervise/retire/detail--> <!--工作流view的路径/pqs/supervise/retire/detail-->
<div class='default-main'> <div class='default-main'>
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<!-- <h1>详细信息回显</h1>--> <!-- <h1>详细信息回显</h1>-->
<el-descriptions :column='2' border> <el-descriptions :column='2' border>
<el-descriptions-item label='供电公司'> <el-descriptions-item label='供电公司'>
@@ -42,6 +46,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
</div>
</template> </template>
<script setup lang='ts'> <script setup lang='ts'>
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'

View File

@@ -1,6 +1,10 @@
<template> <template>
<!--工作流view的路径/pqs/supervise/technology/detail--> <!--工作流view的路径/pqs/supervise/technology/detail-->
<div class="default-main"> <div class="default-main">
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<!-- <h1>详细信息回显</h1>--> <!-- <h1>详细信息回显</h1>-->
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item :label="detailData.leafletType == 1 ? '预警单名称' : '告警单名称'"> <el-descriptions-item :label="detailData.leafletType == 1 ? '预警单名称' : '告警单名称'">
@@ -34,6 +38,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'

View File

@@ -1,5 +1,9 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="填报人"> <el-descriptions-item label="填报人">
{{ detailData.reporter }} {{ detailData.reporter }}
@@ -434,6 +438,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive, watch } from 'vue' import { onMounted, ref, reactive, watch } from 'vue'

View File

@@ -1,5 +1,9 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<!-- <h1>详细信息回显</h1>--> <!-- <h1>详细信息回显</h1>-->
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="变电站"> <el-descriptions-item label="变电站">
@@ -36,6 +40,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
</div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'

View File

@@ -1,4 +1,8 @@
<template> <template>
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="监测点名称"> <el-descriptions-item label="监测点名称">
{{ detailData.lineName }} {{ detailData.lineName }}
@@ -19,6 +23,7 @@
{{ detailData.powerSubstationName }} {{ detailData.powerSubstationName }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive } from 'vue' import { onMounted, ref, reactive } from 'vue'

View File

@@ -1,4 +1,8 @@
<template> <template>
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="监测点台账信息" v-if="detailData.lineFilePath"> <el-descriptions-item label="监测点台账信息" v-if="detailData.lineFilePath">
<el-icon> <el-icon>
@@ -121,6 +125,7 @@
</span > </span >
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive } from 'vue' import { onMounted, ref, reactive } from 'vue'

View File

@@ -1,4 +1,8 @@
<template> <template>
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="填报人"> <el-descriptions-item label="填报人">
{{ detailData.reporter }} {{ detailData.reporter }}
@@ -282,6 +286,7 @@
</span> </span>
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive } from 'vue' import { onMounted, ref, reactive } from 'vue'
@@ -510,6 +515,7 @@ const getFileNamePath = async (val: any, pathName: any) => {
else if (pathName == 'performanceTestReport' && detailData.value.performanceTestReport) { else if (pathName == 'performanceTestReport' && detailData.value.performanceTestReport) {
detailData.value.performanceTestReport = { detailData.value.performanceTestReport = {
name: res.data.fileName, name: res.data.fileName,
keyName: res.data.name,
url: res.data.url url: res.data.url
} }
} }

View File

@@ -1,5 +1,9 @@
<template> <template>
<div class="default-main"> <div class="default-main">
<div v-if="detailLoading" class="loading">
<el-spin description="加载中..." />
</div>
<div v-else>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<el-descriptions-item label="监测点名称"> <el-descriptions-item label="监测点名称">
{{ detailData.lineName }} {{ detailData.lineName }}
@@ -35,6 +39,7 @@
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive } from 'vue' import { onMounted, ref, reactive } from 'vue'