修改导出数据结果

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>
@ -542,29 +560,28 @@ function initDeviceData(){
</div>
</el-dialog>
<el-dialog v-model="isShowCondition" :close-on-click-modal="false"
:modal="false" draggable :before-close="handleScenarioClose" :title="title"
<el-dialog v-model="isShowCondition" :close-on-click-modal="false"
:modal="false" draggable :before-close="handleScenarioClose" :title="title"
append-to-body width="1000px">
<ConditionModel v-if="isShowCondition" ref="conditionModelRef" :projectInfo="projectInfo" :scenarioId="scenarioId"
:isEdit="isEdit"
/>
/>
<div style="text-align: center;">
<el-button @click="handleScenarioClose">取消</el-button>
<el-button @click="handleScenarioClose">取消</el-button>
<el-button type="primary" @click="submitConditionClick" v-if="title == '初始条件设置'">确定</el-button>
</div>
</el-dialog>
<el-dialog v-model="isShowResult" :close-on-click-modal="false"
:modal="false" draggable :before-close="handleResultClose" :title="title"
:modal="false" draggable :before-close="handleResultClose" :title="title"
append-to-body width="calc(100% - 100px)" class="resultmodel-dialog-box">
<div style="position: relative; display: flex; margin-bottom: 0px; border-bottom: 1px solid #e5e5e5;padding-bottom: 5px;padding-top: 10px;padding-left: 10px;">
<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"