<template>
<a-button
@click="exportVirtual"
style="margin-right:25px;background-color:#6CC14E;border- color:#6CC14E;color: #fff"
>
<i style="margin-right:10px;" class="el-icon-upload2"></i>
全部导出
</a-button>
</template>
<script>
downloadJSON2CSV(objArray){
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
//console.log('array',array)
this.str = 'createBy,createTime,description,evacuateNodeName,hostUuid,installationSource,isDelete,memSize,memUnit,mirrorName,name,operatingSystemSeries,operatingSystemVersion,platform,preferHostUuid,priority,runningTime,shortHostAddress,sourceType,status,updateBy,updateTime,uuid,vcpuCount,virtualMachineIpAddress,xattr1,xattr2,xattr3'+ '\r';
for (var i = 0; i < array.length; i++) {
var line = '';
for (var index in array[i]) {
line += array[i][index] + ',';
}
// 添加双引号
// for (var index in array[i]) {
// line += '"' + array[i][index] + '",';
// }
line.slice(0,line.Length-1);
this.str += line + '\r';
}
},
SaveAs(fileName, csvData) {
var bw = this.browser();
if(!bw['edge'] && !bw['ie']) {
var alink = document.createElement("a");
alink.id = "linkDwnldLink";
alink.href = this.getDownloadUrl(csvData);
document.body.appendChild(alink);
var linkDom = document.getElementById('linkDwnldLink');
linkDom.setAttribute('download', fileName);
linkDom.click();
document.body.removeChild(linkDom);
}
else if(bw['ie'] >= 10 || bw['edge'] == 'edge') {
var _utf = "\uFEFF";
var _csvData = new Blob([_utf + csvData], {
type: 'text/csv'
});
window.navigator.msSaveBlob(_csvData, fileName);
}
else {
var oWin = window.top.open("about:blank", "_blank");
oWin.document.write('sep=,\r\n' + csvData);
oWin.document.close();
oWin.document.execCommand('SaveAs', true, fileName);
oWin.close();
}
},
getDownloadUrl: function(csvData) {
var _utf = "\uFEFF"; // 为了使Excel以utf-8的编码模式,同时也是解决中文乱码的问题
if (window.Blob && window.URL && window.URL.createObjectURL) {
var csvData = new Blob([_utf + csvData], {
type: 'text/csv'
});
return URL.createObjectURL(csvData);
}
},
browser() {
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.indexOf('edge') !== - 1 ? Sys.edge = 'edge' : ua.match(/rv:([\d.]+)\) like gecko/)) ? Sys.ie = s[1]:
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
return Sys;
},
exportVirtual(){//导出按钮
this.$http.get("/virtual/virtualListNoPage").then(({data})=>{
this.downloadJSON2CSV(data.result);
this.SaveAs('虚拟机.csv',this.str)
})
}
</script>