142 lines
3.3 KiB
JavaScript
142 lines
3.3 KiB
JavaScript
import { getInvoiceInfoDetail, downloadInvoice } from "../../service/invoice";
|
||
import { alertError, alertInfo, loadingFunc } from "../../utils/index";
|
||
import request from '../../utils/request'
|
||
const { OK } = request;
|
||
// pages/invoiceInfo/index.js
|
||
Page({
|
||
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data: {
|
||
detail: {},
|
||
id: "",
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad(options) {
|
||
const { id } = options;
|
||
this.init(id);
|
||
},
|
||
async init(id) {
|
||
const { code, message, data } = await getInvoiceInfoDetail(id)
|
||
this.setData({ detail: data, id });
|
||
},
|
||
handleBack() {
|
||
wx.navigateBack()
|
||
},
|
||
jumpToDetail() {
|
||
wx.redirectTo({
|
||
url: '/pages/invoiceDetailContent/index?id=' + this.data.id,
|
||
})
|
||
},
|
||
download() {
|
||
const that = this;
|
||
wx.showActionSheet({
|
||
itemList: ['发票XML文件下载', '发票PDF文件下载'],
|
||
async success(res) {
|
||
loadingFunc(async () => {
|
||
const { code, message, data } = await downloadInvoice(that.data.id, res.tapIndex);
|
||
if (code !== OK) {
|
||
alertInfo(message)
|
||
return;
|
||
}
|
||
if (!data) {
|
||
alertInfo("暂无文档信息")
|
||
return
|
||
}
|
||
wx.downloadFile({
|
||
url: data,
|
||
success(res) {
|
||
if (res.statusCode === 200) {
|
||
if (!res.tempFilePath) {
|
||
alertError("没有开票信息")
|
||
return;
|
||
}
|
||
wx.openDocument({
|
||
filePath: res.tempFilePath,
|
||
fileType: [res.tapIndex === 0 ? 'xml' : "pdf"], // 3. 这个必须写合法类型,不然下载不了 !!!
|
||
success: function (res) {
|
||
|
||
},
|
||
fail: function (e) {
|
||
alertError("打开失败")
|
||
console.log('打开失败错误为', e)
|
||
}
|
||
})
|
||
}
|
||
},
|
||
fail: (e) => {
|
||
console.log('e', e)
|
||
alertInfo("下载文件失败")
|
||
}
|
||
})
|
||
})
|
||
|
||
|
||
// console.log('data', data)
|
||
// const filePath = `${wx.env.USER_DATA_PATH}/发票/${that.data.id}.${res.tapIndex === 0 ? 'xml' : "pdf"}`;
|
||
// FileSystemManager.writeFile({
|
||
// filePath: filePath,
|
||
// data: res.data,
|
||
// encoding: 'base64', // 2. base64解密写入, 后台返回的byte[]数组是经过base64编码的,其他方式写入文件打开格式不对
|
||
// success: function(res) {
|
||
|
||
// },
|
||
// fail: function (e) {
|
||
// console.log(e.errMsg);
|
||
// }
|
||
// });
|
||
}
|
||
})
|
||
},
|
||
/**
|
||
* 生命周期函数--监听页面初次渲染完成
|
||
*/
|
||
onReady() {
|
||
|
||
},
|
||
/**
|
||
* 生命周期函数--监听页面显示
|
||
*/
|
||
onShow() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面隐藏
|
||
*/
|
||
onHide() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面卸载
|
||
*/
|
||
onUnload() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面上拉触底事件的处理函数
|
||
*/
|
||
onReachBottom() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage() {
|
||
|
||
}
|
||
}) |