jiaofeixiangqing.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. const app = getApp()
  2. Page({
  3. data: {
  4. billData: {}, // 账单详情数据
  5. loading: true, // 加载状态
  6. errorMsg: '' // 错误信息
  7. },
  8. onLoad: function(options) {
  9. try {
  10. if (options.billInfo) {
  11. // 解析从URL参数传递的JSON字符串获取完整账单数据
  12. const billDetail = JSON.parse(decodeURIComponent(options.billInfo));
  13. // 设置页面数据
  14. this.setData({
  15. billData: billDetail,
  16. loading: false
  17. });
  18. } else {
  19. throw new Error('未接收到账单数据');
  20. }
  21. } catch (error) {
  22. console.error('解析账单数据失败:', error);
  23. this.setData({
  24. loading: false,
  25. errorMsg: '数据解析失败,请返回重试'
  26. });
  27. wx.showToast({
  28. title: '数据解析失败',
  29. icon: 'none',
  30. duration: 2000
  31. });
  32. }
  33. },
  34. // 格式化金额,保留两位小数
  35. formatAmount: function(amount) {
  36. if (typeof amount !== 'number') {
  37. amount = parseFloat(amount) || 0;
  38. }
  39. return amount.toFixed(2);
  40. },
  41. // 返回上一页
  42. goBack: function() {
  43. wx.navigateBack();
  44. },
  45. // 如果需要根据billId重新获取详情数据
  46. getBillDetailById: function(billId) {
  47. wx.showLoading({
  48. title: '获取详情...',
  49. mask: true
  50. });
  51. wx.request({
  52. url: app.globalData.interfaceUrls.billDetail,
  53. method: 'POST',
  54. data: {
  55. billId: billId
  56. },
  57. header: {
  58. 'content-type': 'application/json',
  59. 'token': app.globalData.userWxInfo.token,
  60. 'source': "wc",
  61. '!SAAS_LOGIN_TOKEN_!': app.globalData.currentAccountInfo.dsKey
  62. },
  63. success: (res) => {
  64. wx.hideLoading();
  65. if (res.data && res.data.code === 0) {
  66. this.setData({
  67. billDetail: res.data.data,
  68. loading: false
  69. });
  70. } else {
  71. this.setData({
  72. loading: false,
  73. errorMsg: res.data.msg || '获取详情失败'
  74. });
  75. wx.showToast({
  76. title: '获取详情失败',
  77. icon: 'none'
  78. });
  79. }
  80. },
  81. fail: (error) => {
  82. wx.hideLoading();
  83. this.setData({
  84. loading: false,
  85. errorMsg: '网络错误,请稍后重试'
  86. });
  87. wx.showToast({
  88. title: '网络错误,请稍后重试',
  89. icon: 'none'
  90. });
  91. }
  92. });
  93. }
  94. })