80 lines
2.1 KiB
JavaScript
80 lines
2.1 KiB
JavaScript
// 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("下载文件失败")
|
||
}
|
||
})
|
||
})
|
||
}
|
||
})
|
||
},
|
||
}) |