requestrefund.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. // pages/requestrefund/requestrefund.js
  2. const app = getApp();
  3. const api = require('../../api/api');
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. navbarData: {
  10. showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示
  11. title: '退款申请', //导航栏 中间的标题,
  12. capsuleMode: 'navBack', //显示模式(navBack:返回上一页;navHome:返回首页)
  13. },
  14. id: 0, //订单ID
  15. order_info: {}, //订单信息
  16. user_info: {}, //用户信息
  17. commodity_list: [], //评论信息
  18. refund_reason: '', //退款原因
  19. refund_voucher: '', //凭证
  20. },
  21. /**
  22. * 生命周期函数--监听页面加载
  23. */
  24. onLoad(options) {
  25. console.log(options);
  26. let that = this;
  27. let id = Number(options.id);
  28. that.setData({
  29. id
  30. })
  31. // 获取订单详情
  32. wx.showLoading({
  33. title: '加载中',
  34. mask: true
  35. })
  36. wx.request({
  37. url: api.Order_info,
  38. header: {
  39. 'Authorization': wx.getStorageSync('token')
  40. },
  41. data: {
  42. id: that.data.id
  43. },
  44. method: 'POST',
  45. success(res) {
  46. console.log(res);
  47. if (res.data.code === 1) {
  48. that.setData({
  49. order_info: res.data.data.order_info,
  50. user_info: res.data.data.user_info,
  51. commodity_list: res.data.data.commodity_list
  52. })
  53. } else {
  54. wx.showToast({
  55. title: res.data.msg,
  56. mask: true,
  57. icon: 'none'
  58. })
  59. }
  60. },
  61. fail(err) {
  62. wx.showToast({
  63. title: '发起网络请求失败',
  64. icon: 'none',
  65. mask: true
  66. })
  67. },
  68. complete() {
  69. wx.hideLoading()
  70. }
  71. })
  72. },
  73. /**
  74. * 生命周期函数--监听页面初次渲染完成
  75. */
  76. onReady() {
  77. },
  78. /**
  79. * 生命周期函数--监听页面显示
  80. */
  81. onShow() {
  82. },
  83. /**
  84. * 生命周期函数--监听页面隐藏
  85. */
  86. onHide() {
  87. },
  88. /**
  89. * 生命周期函数--监听页面卸载
  90. */
  91. onUnload() {
  92. },
  93. /**
  94. * 页面相关事件处理函数--监听用户下拉动作
  95. */
  96. onPullDownRefresh() {
  97. },
  98. /**
  99. * 页面上拉触底事件的处理函数
  100. */
  101. onReachBottom() {
  102. },
  103. /**
  104. * 用户点击右上角分享
  105. */
  106. onShareAppMessage() {
  107. },
  108. // 输入退款原因
  109. inputReason(e) {
  110. this.setData({
  111. refund_reason: e.detail.value
  112. })
  113. },
  114. // 上传退款凭证
  115. uploadVoucher() {
  116. let that = this;
  117. // wx.showLoading({
  118. // title: '文件上传中',
  119. // mask: true
  120. // })
  121. wx.request({
  122. url: api.getSignedUrl,
  123. data: {
  124. type: 'image'
  125. },
  126. success: (oss) => {
  127. console.log(oss);
  128. wx.chooseMedia({
  129. count: 1,
  130. mediaType: ['image'],
  131. success: (img) => {
  132. console.log(img);
  133. let key = "image/" + new Date().getTime() + Math.floor(Math.random() * 150) + '.png';
  134. wx.showLoading({
  135. title: '文件上传中',
  136. mask: true
  137. })
  138. wx.uploadFile({
  139. filePath: img.tempFiles[0].tempFilePath,
  140. name: 'file',
  141. url: 'https://' + oss.data.data.host, //输入你的bucketname.endpoint
  142. formData: {
  143. key: key,
  144. policy: oss.data.data.policy, // 输入你获取的的policy
  145. OSSAccessKeyId: oss.data.data.OSSAccessKeyId, // 输入你的AccessKeyId
  146. success_action_status: '200', // 让服务端返回200,不然,默认会返回204
  147. signature: oss.data.data.Signature, // 输入你获取的的signature
  148. },
  149. success: (res) => {
  150. if (res.statusCode == 200) {
  151. let src = 'https://' + oss.data.data.host + '/' + key;
  152. that.setData({
  153. refund_voucher: src
  154. })
  155. }
  156. },
  157. fail: (err) => {
  158. console.log(err);
  159. },
  160. complete: () => {
  161. wx.hideLoading()
  162. }
  163. })
  164. },
  165. fail: (err) => {
  166. wx.hideLoading()
  167. }
  168. })
  169. },
  170. fail: (err) => {
  171. console.log(err);
  172. }
  173. })
  174. },
  175. // 撤销退款
  176. cheXiaoTuiKuan() {
  177. wx.navigateBack({
  178. delta: 1,
  179. })
  180. },
  181. // 确认退款
  182. confirmRefund() {
  183. let that = this;
  184. if (that.data.refund_reason == '') {
  185. wx.showToast({
  186. title: '退款原因未录入',
  187. icon: 'none',
  188. mask: true
  189. })
  190. return
  191. }
  192. if (that.data.refund_voucher == '') {
  193. wx.showToast({
  194. title: '退款凭证图片未上传',
  195. icon: 'none',
  196. mask: true
  197. })
  198. return
  199. }
  200. wx.showLoading({
  201. title: '加载中',
  202. mask: true
  203. })
  204. wx.request({
  205. url: api.Order_refund,
  206. header: {
  207. 'Authorization': wx.getStorageSync('token')
  208. },
  209. method: 'POST',
  210. data: {
  211. id: that.data.order_info.id,
  212. refund_reason: that.data.refund_reason,
  213. refund_voucher: that.data.refund_voucher
  214. },
  215. success(res) {
  216. console.log(res);
  217. if (res.data.code === 1) {
  218. wx.navigateTo({
  219. url: '/pages/confirmrefund/confirmrefund?id=' + that.data.order_info.id
  220. })
  221. } else {
  222. wx.showToast({
  223. title: res.data.msg,
  224. mask: true,
  225. icon: 'none'
  226. })
  227. }
  228. },
  229. fail(err) {
  230. wx.showToast({
  231. title: '发起网络请求失败',
  232. icon: 'none',
  233. mask: true
  234. })
  235. },
  236. complete() {
  237. wx.hideLoading()
  238. }
  239. })
  240. }
  241. })