import http from "@/api/configSys";
/**
 * @param {String} url [请求的url地址]
 * @param {Object} params [参数]
 * @param {String} fileName [导出文件名称] 默认值 导出文件
 * @param {String} fileType [导出文件类型] 默认值 xls
 * @param {string} mimeType [导出文件类型]
 */
const useDownload = (url, params = {}, fileName = '导出文件', fileType = 'xls', mimeType = 'application/vnd.ms-excel;charset=UTF-8') => {
    return new Promise((resolve, reject) => {
        http.post(url, params, { responseType: 'blob' })
            .then(res => {
                resolve(res.data);
                if (!res.data) {
                    return
                }
                const link = document.createElement('a');// 创建a标签
                let blob = new Blob([res.data], { type: mimeType }); // 设置文件类型
                link.style.display = "none";
                link.href = URL.createObjectURL(blob); // 创建URL
                link.setAttribute("download", `${fileName}.${fileType}`);
                document.body.appendChild(link);
                link.click();
                URL.revokeObjectURL(link.href);
                document.body.removeChild(link);
            })
            .catch(err => {
                reject(err.data);
            })
    });
}

export default useDownload