1 /**打印包装信息 */
2 print:function (that, data, obj) {
3 var deliveryCode = data.deliveryCode
4 //原生ajax
5 var xhr = new XMLHttpRequest();
6 //post方式请求后台的路径
7 xhr.open('get', window.BAOSIGHT.API.DELIVERY.PRINT_INFO+'?deliveryCode='+deliveryCode,true);
8 //导出的Pdf是二进制数据类型,所以设置为arraybuffer
9 xhr.responseType = 'arraybuffer';
10 //请求头(key,value),请求头可以设置多个key-value对
11 xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8');
12 xhr.setRequestHeader('Authorization', that.global.getLocalStorage("Authorization") );
13 // var formData = new FormData();
14 // formData.append('deliveryCode',that.defaults.deliveryCode);
15 // console.log(formData)
16 //返回成功,导出的Pdf文件
17 xhr.onload = function () {
18
19 if (this.status == 200) {
20 // new Blob 默认转换 blod,转arraybuffer需要增加 type
21 var blob = new Blob([this.response],{type: "arraybuffer"});
22 // var fileName = 'lichun.pdf'
23 if (window.navigator && window.navigator.msSaveBlob) {
24 //兼容ie 下载 msSaveBlob 仅支持保存 msSaveOrOpenBlob 支持保存or代开
25 window.navigator.msSaveBlob(blob, fileName);
26 }else{
27 var a = document.createElement('a');
28 var url = window.URL.createObjectURL(blob);
29 a.href = url;
30 //设置文件名称
31 a.download = '包装信息.pdf';
32 a.click();
33 }
34 }
35 };
36 //请求的参数,json格式,后台要用json格式接收
37 xhr.send();
38 },
2.下载.excel文件
1 export:function (e) {
2 var that=e.data.context
3 var data = JSON.parse(JSON.stringify(form.val('search_form'))),
4 var url = window.BAOSIGHT.API.DELIVERY.EXPORT_ORDER;
5 var xhr = new XMLHttpRequest();
6 xhr.open( 'post' , url, true ); // 也可以使用POST方式,根据接口
7 xhr.responseType = "blob" ; // 返回类型blob // 如果导出为.pdf responseType='arraybuffer'
8 xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8');
9 xhr.setRequestHeader('Authorization', that.global.getLocalStorage("Authorization") );
10 // 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
11 xhr.onload = function () {
12 // 请求完成
13 if ( this .status === 200) {
14 // 返回200
15 var blob = this .response;
16 var reader = new FileReader();
17 reader.readAsDataURL(blob); // 转换为base64,可以直接放入a表情href
18 reader.onload = function (e) {
19 // 转换完成,创建一个a标签用于下载
20 var a = document.createElement( 'a' );
21 a.download = '送货单.xlsx' ;
22 a.href = e.target.result;
23 $( "body" ).append(a); // 修复firefox中无法触发click
24 a.click();
25 $(a).remove();
26 }
27 }
28 };
29 // 发送ajax请求
30 xhr.send(JSON.stringify(data))
31 },