var exten = "";//下载文件后缀名
|
var timerLoadExportBtn = null;
|
$(document).delegate("#select", "change", function () {
|
debugger
|
setTimeout("LoadExportApiWordBtn()", 300);//加载导出按钮
|
console.log("dom export ok");
|
});
|
|
$(document).ready(function () {
|
InitLoad();//初始化导出
|
//loading设置
|
$.busyLoadSetup({
|
animation: "slide",
|
background: "rgba(255, 152, 0, 0.86)"
|
});
|
});
|
|
//初始化
|
function InitLoad() {
|
setTimeout("LoadExportApiWordBtn()", 300);//加载导出按钮
|
}
|
|
//加载自定义导出按钮
|
function LoadExportApiWordBtn() {
|
$(".information-container").height(240);//文档介绍区域高度
|
$(".topbar").height(35);
|
var btnExport = "<div class='selectBox' style='position: absolute;margin: 0;padding: 0;margin-left: 1432px;top: 2.5px;'>" +
|
"<span><a href='javascript:void(0);'>导出离线文档</a></span>" +
|
"<div class='drop'>" +
|
"<ul style='margin: 0;padding: 0;'>" +
|
//"<li>" +
|
//"<a href='javascript:void(0);' onclick='ExportApiWord(1)'>导出 Word</a>" +
|
//"</li>" +
|
//"<li>" +
|
//"<a href='javascript:void(0);' onclick='ExportApiWord(2)'>导出 PDF</a>" +
|
//"</li>" +
|
"<li>" +
|
"<a href='javascript:void(0);' onclick='ExportApiWord(3)'>导出 Html</a>" +
|
"</li >" +
|
//"<li>" +
|
//"<a href='javascript:void(0);' onclick='ExportApiWord(4)'>导出 Xml</a>" +
|
//"</li >" +
|
//"<li>" +
|
//"<a href='javascript:void(0);' onclick='ExportApiWord(5)'>导出 Svg</a>" +
|
//"</li >" +
|
"</ul >" +
|
"</div >" +
|
"</div >";
|
//information-container这个元素是swagger后期动态渲染出来的,所有这里要加个循环判断。
|
//第一次进来如果有这个class直接加载按钮退出
|
if ($("*").hasClass("information-container")) {
|
$(".information-container").append(btnExport);
|
return;
|
}
|
//没有元素等待元素出现在加载按钮
|
timerLoadExportBtn = setInterval(function () {
|
if ($("*").hasClass("information-container")) {
|
$(".information-container").append(btnExport);
|
console.log("load ok");
|
window.clearInterval(timerLoadExportBtn);
|
return;
|
}
|
console.log("loading");
|
}, 788);
|
}
|
|
|
/**
|
* 延迟函数
|
* @param {any} delay
|
*/
|
function sleep(delay) {
|
var start = (new Date()).getTime();
|
while ((new Date()).getTime() - start < delay) {
|
continue;
|
}
|
}
|
|
/*
|
* 导出
|
*/
|
function ExportApiWord(type) {
|
switch (type) {
|
case 1:
|
exten = ".docx";
|
break;
|
case 2:
|
exten = ".pdf";
|
break;
|
case 3:
|
exten = ".html";
|
break;
|
case 4:
|
exten = ".xml";
|
break;
|
case 5:
|
exten = ".svg";
|
break;
|
}
|
var version = $("#select option:selected").val();
|
version = version.split('/')[2];
|
var url = '/api/Swagger/ExportWord?type=' + exten + "&version=" + version;
|
var xhr = new XMLHttpRequest();
|
xhr.open('GET', url, true); // 也可以使用POST方式,根据接口
|
xhr.responseType = "blob"; // 返回类型blob
|
// 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
|
xhr.onload = function () {
|
// 请求完成
|
if (this.status === 200) {
|
// 返回200
|
var blob = this.response;
|
var reader = new FileReader();
|
reader.readAsDataURL(blob); // 转换为base64,可以直接放入a表情href
|
reader.onload = function(e) {
|
// 转换完成,创建一个a标签用于下载
|
var a = document.createElement('a');
|
a.download = 'WIDESEAWCS API文档 ' + version + exten;
|
a.href = e.target.result;
|
$("body").append(a); // 修复firefox中无法触发click
|
a.click();
|
$(a).remove();
|
}
|
} else {
|
alert(this.status+this.statusText);
|
}
|
//关闭load
|
$.busyLoadFull('hide',
|
{
|
animation: "fade"
|
});
|
};
|
// 发送ajax请求
|
xhr.send();
|
//打开loader遮罩
|
$.busyLoadFull('show', {
|
text: "LOADING ...",
|
animation: "fade"
|
});
|
}
|