修改导出数据结果

This commit is contained in:
limengnan 2026-04-09 15:57:02 +08:00
parent 3d6d4d7d7d
commit d0e5969a71
3 changed files with 61 additions and 13 deletions

View File

@ -66,3 +66,19 @@ export function getByScenario(queryParams:any){
params: queryParams
});
}
// 导出全部结果
export function exportAllExports(scenarioId:any,deviceId:any){
let url = '/scenario-results/export/by-scenario?scenarioId='+scenarioId
if(deviceId != null){
url = '/scenario-results/export/by-scenario?scenarioId='+scenarioId + '&deviceId='+deviceId
}
return request({
url: url ,
method: 'get',
responseType: 'arraybuffer'
});
}

View File

@ -8,7 +8,7 @@ export default {
import { onMounted, ref, nextTick } from "vue";
import { ElForm, ElMessage, ElMessageBox, selectEmits } from "element-plus";
import Page from '@/components/Pagination/page.vue'
import { getByScenario } from "@/api/business/scenario";
import { getByScenario,exportAllExports } from "@/api/business/scenario";
const apiUrl = import.meta.env.VITE_APP_BASE_API; //
const emit = defineEmits([ 'closeEditdevice']);
@ -72,15 +72,30 @@ onMounted(() => {
getScenarioResults()
});
function downloadFile(obj :any, name :any, suffix :any) {
const url = window.URL.createObjectURL(new Blob([obj]))
const link = document.createElement('a')
link.style.display = 'none'
link.href = url
const fileName = name.trim() + '.' + suffix
link.setAttribute('download', fileName)
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}
function exportExportsClick(){
exportAllExports(props.scenarioId,props.deviceId).then((response:any) => {
debugger
downloadFile(response, '结果数据' , 'xlsx')
});
}
</script>
<template>
<div class="editdevice-box">
<div style="margin-bottom: 10px;display: flex;justify-content: flex-end;">
<a :href="apiUrl + '/scenario-results/export/by-scenario?scenarioId='+props.scenarioId+'&deviceId='+props.deviceId" target="_blank" rel="noopener noreferrer">
<el-button type="primary">导出</el-button>
</a>
<el-button type="primary" @click="exportExportsClick">导出</el-button>
</div>
<el-table :data="scenarioResultData" style="width: 100%; height: calc(100vh - 315px);margin-bottom: 10px;" border

View File

@ -7,7 +7,7 @@ export default {
<script setup lang="ts">
import { onMounted, ref, nextTick } from "vue";
import { ElForm, ElMessage, ElMessageBox } from "element-plus";
import { searchScenariosLsit,addScenarios,updateScenarios,deleteScenarios,deleteBatchScenarios} from "@/api/business/scenario";
import { searchScenariosLsit,addScenarios,updateScenarios,deleteScenarios,deleteBatchScenarios,exportAllExports} from "@/api/business/scenario";
import { getActiveAlgorithms } from "@/api/business/scenario";
import ConditionModel from '@/views/component/scenario/condition.vue'
import { simRun,simulationRun } from "@/api/business/project";
@ -424,6 +424,24 @@ function initDeviceData(){
function changeSonAlgorithmType(){
info.value.algorithmType = ""
}
function downloadFile(obj :any, name :any, suffix :any) {
const url = window.URL.createObjectURL(new Blob([obj]))
const link = document.createElement('a')
link.style.display = 'none'
link.href = url
const fileName = name.trim() + '.' + suffix
link.setAttribute('download', fileName)
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}
function exportAllExportsClick(){
exportAllExports(scenarioId.value,null).then((response:any) => {
downloadFile(response, '全部设备结果数据' , 'xlsx')
});
}
</script>
<template>
@ -562,9 +580,8 @@ function initDeviceData(){
<div @click="changeShowResult(0)" class="adddevice_navigation_left" :class="{'adddevice_navigation_activeleft':isEchartsModel == 0}">图形化</div>
<div @click="changeShowResult(1)" class="adddevice_navigation_right" :class="{'adddevice_navigation_activeright':isEchartsModel == 1}">列表</div>
<div @click="changeShowResult(2)" class="adddevice_navigation_right" :class="{'adddevice_navigation_activeright':isEchartsModel == 2}">图形</div>
<a :href="apiUrl + '/scenario-results/export/by-scenario?scenarioId='+scenarioId" target="_blank" rel="noopener noreferrer">
<el-button v-if="isEchartsModel == 1" style="position: absolute;right: 50px;top: 5px;" type="primary">导出全部</el-button>
</a>
<el-button v-if="isEchartsModel == 1" style="position: absolute;right: 50px;top: 5px;" type="primary" @click="exportAllExportsClick">导出全部</el-button>
</div>
<Viewx6 v-if="isShowResult && isEchartsModel == 0 " :projectId="projectInfo.projectId"