/**
* 导出excel格式的表格
* param:
* 1、params(Object):查询条件
* 2、apiurl(String):请求接口
* 3、method(String):请求方法
* 4、downloadname(String):下载文件名
*/
import React, { Component } from "react";
import { Button } from 'antd';
import axios from 'axios';
// import { host } from '../../services/api';
import store from 'store';
export default class ExcelButton extends Component {
constructor(props, context) {
super(props, context);
this.state = {
};
}
componentDidMount() {
}
componentWillReceiveProps(props) {
}
render() {
return (
);
}
}
export const excelButtonHOC = (props, Btn) => {
const onClick = props.onClick;
props.onClick = () => {
const { params, apiurl, disable, method = 'GET', downloadname = '百宝盾' } = props;
// if(disabled) return;
let queryStr = '?';
if (params) {
Object.keys(params).forEach(key => {
queryStr += `${key}=${params[key]}&`;
});
}
queryStr = queryStr.slice(0, -1);
if (!apiurl) return;
const url = `/saas_api/${apiurl}${queryStr}`;
axios({
method,
url, //后台请求地址
responseType: 'blob',
headers: {
access_token: store.get('saas')['access_token']
}
}).then(data => {
if (!data) {
return;
}
let url = window.URL.createObjectURL(data.data);
let link = document.createElement('a');
link.style.display = 'none';
link.href = url;
link.setAttribute('download', `${downloadname}.xls`);
document.body.appendChild(link);
link.click();
onClick && onClick();
});
}
return (
{props.children}
);
}