electricity_bill_calc_wx/pages/invoiceDetail/index.js

118 lines
2.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { getInvoiceInfoDetail, downloadInvoice } from "../../service/invoice";
import { alertInfo } 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() {
// console.log('---------')
const that = this;
wx.showActionSheet({
itemList: ['发票XML文件下载', '发票PDF文件下载'],
async success(res) {
console.log('res', res.tapIndex)
const { code, message, data } = await downloadInvoice(that.data.id, res.tapIndex);
if (code !== OK) {
alertInfo(message)
return;
}
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) {
wx.openDocument({
filePath: filePath,
fileType: [res.tapIndex === 0 ? 'xml' : "pdf"], // 3. 这个必须写合法类型,不然下载不了
success: function (res) {
console.log('打开文档成功')
},
fail: function (e) {
console.log(e.errMsg);
}
})
},
fail: function (e) {
console.log(e.errMsg);
}
});
}
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})