Files
certd/packages/ui/certd-ui/src/api/api.exports.js
2022-10-17 22:04:12 +08:00

41 lines
1.1 KiB
JavaScript

import { request } from "./service";
import _ from "lodash-es";
function arrayToMap(arr) {
if (arr && arr instanceof Array) {
const map = {};
_.forEach(arr, (item) => {
map[item.key] = item;
});
return map;
}
return arr;
}
function transfer(options) {
options.accessProviders = arrayToMap(options.accessProviders);
}
export default {
exportsToZip(options) {
transfer(options);
return request({
url: "/exports/toZip",
data: { options },
method: "post",
responseType: "blob" // 重点在于配置responseType: 'blob'
}).then((res) => {
console.log("res", res);
const filename = decodeURI(res.headers["content-disposition"].replace("attachment;filename=", "")); // 由后端设置下载文件名
const blob = new Blob([res.data], { type: "application/zip" });
const a = document.createElement("a");
const url = window.URL.createObjectURL(blob);
a.href = url;
a.download = filename;
const body = document.getElementsByTagName("body")[0];
body.appendChild(a);
a.click();
body.removeChild(a);
window.URL.revokeObjectURL(url);
});
}
};