大屏导出zip

Raod 4 years ago
parent 6837371810
commit ccaeabfb5c

@ -1,5 +1,6 @@
import request from '@/utils/request' import request from '@/utils/request'
import { getShareToken, getToken } from "@/utils/auth"; import { getShareToken, getToken } from "@/utils/auth";
import axios from 'axios';
// 保存大屏设计 // 保存大屏设计
export function insertDashboard(data) { export function insertDashboard(data) {
@ -48,12 +49,21 @@ export function getData(data) {
// 导出大屏 // 导出大屏
export function exportDashboard(data) { export function exportDashboard(data) {
return request({ return new Promise((resolve) =>{
url: 'reportDashboard/export/' + data, axios({
method: 'get', method:'get',
url: process.env.BASE_API + '/reportDashboard/export/' + data,
headers: { 'Authorization': getToken() },
params:data,
responseType:'blob'
}).then(res =>{
resolve(res.data);
}).catch(err =>{
resolve('error');
})
}) })
}
}
// 导入大屏 // 导入大屏
export function importDashboard(data) { export function importDashboard(data) {

@ -87,6 +87,26 @@
<i class="iconfont iconyulan" @click="viewScreen"></i> <i class="iconfont iconyulan" @click="viewScreen"></i>
</el-tooltip> </el-tooltip>
</span> </span>
<span class="btn">
<el-tooltip
class="item"
effect="dark"
content="导入"
placement="bottom"
>
<i class="iconfont iconyulan" @click="importDashboard"></i>
</el-tooltip>
</span>
<span class="btn">
<el-tooltip
class="item"
effect="dark"
content="导出"
placement="bottom"
>
<i class="iconfont iconyulan" @click="exportDashboard"></i>
</el-tooltip>
</span>
<!-- <span class="btn border-left"> <!-- <span class="btn border-left">
<ul class="nav"> <ul class="nav">
<li> <li>
@ -226,7 +246,7 @@
</template> </template>
<script> <script>
import { insertDashboard, detailDashboard } from "@/api/bigscreen"; import { insertDashboard, detailDashboard, importDashboard, exportDashboard } from "@/api/bigscreen";
import { widgetTools, getToolByCode } from "./tools"; import { widgetTools, getToolByCode } from "./tools";
import widget from "./widget/widget.vue"; import widget from "./widget/widget.vue";
import dynamicForm from "./form/dynamicForm.vue"; import dynamicForm from "./form/dynamicForm.vue";
@ -495,6 +515,28 @@ export default {
}); });
window.open(routeUrl.href, "_blank"); window.open(routeUrl.href, "_blank");
}, },
//
async exportDashboard() {
const fileName = this.$route.query.reportCode + ".zip"
exportDashboard(this.$route.query.reportCode).then(res=>{
const blob = new Blob([res], {type: "application/octet-stream"});
if (window.navigator.msSaveOrOpenBlob) {//msSaveOrOpenBlobbool
navigator.msSaveBlob(blob, fileName);//
} else {
const link = document.createElement('a');//a
link.href = window.URL.createObjectURL(blob);
link.download = fileName;
link.click();
window.URL.revokeObjectURL(link.href);
}
})
},
//
importDashboard() {
alert("导入,开发中")
},
// //
getPXUnderScale(px) { getPXUnderScale(px) {
return this.bigscreenScaleInWorkbench * px; return this.bigscreenScaleInWorkbench * px;

Loading…
Cancel
Save