// pages/invoiceInfo/index.js import { getInvoiceInfoDetail, downloadInvoice } from "../../service/invoice"; import { alertError, alertInfo, loadingFunc } from "../../utils/index"; import request from '../../utils/request' const { OK } = request; 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("下载文件失败") } }) }) } }) }, })