cashDetail.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. var _request = require('../../../../utils/request.js')
  2. var rid
  3. function createEmptyTransferDetail () {
  4. return normalizeTransferDetail({})
  5. }
  6. function formatTransferStateText (state) {
  7. if (state === 'WAIT_USER_CONFIRM') {
  8. return '待确认,确认后到帐'
  9. }
  10. return state || ''
  11. }
  12. function hasTransferDetail (data) {
  13. return !!(data && (data.id || data.relate_id || data.order_id || data.ctime || data.created_at))
  14. }
  15. function normalizeTransferDetail (data) {
  16. data = data || {}
  17. var count = Number(data.count)
  18. if (isNaN(count)) {
  19. count = 0
  20. }
  21. data.count = count
  22. data.count_text = (count / 100).toFixed(2)
  23. data.ctime = Number(data.ctime || data.created_at || 0) || 0
  24. data.source_name = data.source_name || '提现'
  25. data.relate_id = data.relate_id || data.order_id || data.id || ''
  26. data.remark = data.remark || data.state_cn || ''
  27. data.transfer_state_text = formatTransferStateText(data.transfer_state || data.state_cn)
  28. return data
  29. }
  30. Page({
  31. data: {
  32. detail: createEmptyTransferDetail(),
  33. hasDetail: false,
  34. loading: true,
  35. confirmingTransfer: false,
  36. confirmedTransfer: false
  37. },
  38. onLoad: function (options) {
  39. rid = options.id || options.cash_id || options.balance_id || options.rid || options.order_id
  40. if (rid) {
  41. this.getRadish()
  42. return
  43. }
  44. this.getLatestWithdrawRecord()
  45. },
  46. getRadish () {
  47. var that = this
  48. var url = 'v1/user/cash/balance/' + rid
  49. var params = {
  50. }
  51. var success = function (res) {
  52. if (!hasTransferDetail(res.data)) {
  53. that.getLatestWithdrawRecord()
  54. return
  55. }
  56. var data = normalizeTransferDetail(res.data)
  57. if (that.data.confirmedTransfer) {
  58. data.can_confirm_transfer = false
  59. }
  60. that.setData({
  61. detail: data,
  62. hasDetail: true,
  63. loading: false
  64. })
  65. }
  66. var fail = function () {
  67. that.getLatestWithdrawRecord()
  68. }
  69. _request.$get(url, params, success, fail)
  70. },
  71. getLatestWithdrawRecord () {
  72. var that = this
  73. var url = 'v1/user/takecash/flow'
  74. var params = {
  75. page: 1,
  76. per_page: 1
  77. }
  78. var success = function (res) {
  79. var list = (res.data && res.data.list) || []
  80. if (list.length > 0) {
  81. that.setData({
  82. detail: normalizeTransferDetail(list[0]),
  83. hasDetail: true,
  84. loading: false
  85. })
  86. return
  87. }
  88. that.setData({
  89. detail: createEmptyTransferDetail(),
  90. hasDetail: false,
  91. loading: false
  92. })
  93. wx.showToast({
  94. title: '暂无提现记录',
  95. icon: 'none',
  96. duration: 2000
  97. })
  98. wx.redirectTo({
  99. url: '/packageUser/pages/user/withdraw/withdraw'
  100. })
  101. }
  102. var fail = function () {
  103. that.setData({
  104. detail: createEmptyTransferDetail(),
  105. hasDetail: false,
  106. loading: false
  107. })
  108. wx.redirectTo({
  109. url: '/packageUser/pages/user/withdraw/withdraw'
  110. })
  111. }
  112. _request.$get(url, params, success, fail)
  113. },
  114. confirmMerchantTransfer () {
  115. var that = this
  116. var detail = that.data.detail || {}
  117. if (that.data.confirmingTransfer) {
  118. return
  119. }
  120. if (!detail.can_confirm_transfer || !detail.package_info) {
  121. wx.showToast({
  122. title: '当前提现无需确认收款',
  123. icon: 'none',
  124. duration: 2000
  125. })
  126. return
  127. }
  128. if (!wx.canIUse || !wx.canIUse('requestMerchantTransfer')) {
  129. wx.showToast({
  130. title: '当前微信版本不支持确认收款,请升级微信',
  131. icon: 'none',
  132. duration: 2000
  133. })
  134. return
  135. }
  136. detail.can_confirm_transfer = false
  137. that.setData({
  138. detail: detail,
  139. confirmingTransfer: true
  140. })
  141. wx.requestMerchantTransfer({
  142. mchId: String(detail.mch_id || ''),
  143. appId: String(detail.app_id || ''),
  144. package: detail.package_info,
  145. success: function () {
  146. wx.showToast({
  147. title: '确认收款已提交',
  148. icon: 'none',
  149. duration: 2000
  150. })
  151. that.setData({
  152. confirmedTransfer: true
  153. })
  154. that.getRadish()
  155. },
  156. fail: function (res) {
  157. detail.can_confirm_transfer = true
  158. that.setData({
  159. detail: detail,
  160. confirmingTransfer: false
  161. })
  162. wx.showToast({
  163. title: (res && res.errMsg) ? res.errMsg : '确认收款失败',
  164. icon: 'none',
  165. duration: 3000
  166. })
  167. }
  168. })
  169. },
  170. onShareAppMessage: function (val) {
  171. return _request.share({
  172. sc: 'xcx_user_radishdetail'
  173. })
  174. }
  175. })