confirmOrder.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. // pages/order/confirmOrder/confirmOrder.js
  2. import { API } from "../../../service/api";
  3. import {formatPrice} from "../../../utils/utils";
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. form:{},
  10. prods:[],
  11. totalPrice:0, // 订单总金额
  12. showRemark: false,
  13. address:"",
  14. remark:""
  15. },
  16. // 获取地址列表
  17. getAddressList(){
  18. API.getAddressList().then(res=>{
  19. let address = res.userAddressList.filter(item=>item.defaultFlag === "1");
  20. if(address.length === 0){
  21. address = res.userAddressList[0];
  22. }else{
  23. address = address[0];
  24. }
  25. this.setData({
  26. address
  27. })
  28. })
  29. },
  30. // 去地址管理页面
  31. goAddressMange(){
  32. wx.navigateTo({
  33. url: '/pages/my/addressManage/addressManage?moldify=true',
  34. })
  35. },
  36. inputChange(e){
  37. let key = e.currentTarget.dataset.key;
  38. let value = e.detail.value;
  39. this.setData({
  40. remark:value
  41. })
  42. },
  43. // 确认订单
  44. submitOrder(){
  45. if(this.data.showRemark && !this.data.remark){
  46. wx.showToast({
  47. title: "请输入微博名",
  48. icon:"none",
  49. duration:3000
  50. })
  51. return;
  52. }
  53. let data = {
  54. remark:this.data.remark,
  55. orderItemDTOS:this.data.orderItemDTOS,
  56. userAddressId:this.data.address.userAddressId
  57. }
  58. API.createOrder(data).then(res=>{
  59. this.requestPayment(res.orderPaySignDTO);
  60. })
  61. },
  62. // 拉起微信支付
  63. requestPayment(paymentParams) {
  64. wx.requestPayment({
  65. timeStamp: paymentParams.timeStamp,
  66. nonceStr: paymentParams.nonceStr,
  67. package: paymentParams.prepayId,
  68. signType: "MD5",
  69. paySign: paymentParams.wxpaySign,
  70. success(res) {
  71. console.log('支付成功', res);
  72. wx.showToast({ title: '支付成功' });
  73. // 跳转到订单详情或返回
  74. setTimeout(()=>{
  75. wx.redirectTo({
  76. url: '/pages/my/myOrder/myOrder',
  77. })
  78. },3000)
  79. },
  80. fail(err) {
  81. console.error('支付失败', err);
  82. wx.showToast({ title: '支付取消', icon: 'none' });
  83. setTimeout(()=>{
  84. wx.redirectTo({
  85. url: '/pages/my/myOrder/myOrder',
  86. })
  87. },3000)
  88. }
  89. });
  90. },
  91. /**
  92. * 生命周期函数--监听页面加载
  93. */
  94. onLoad(options) {
  95. let list = JSON.parse(decodeURIComponent(options.prods));
  96. let total = 0;
  97. let orderItemDTOS = [];
  98. list.forEach(item=>{
  99. console.log(item);
  100. total += item.quantity*item.price;
  101. orderItemDTOS.push({
  102. cartsId:item.cartsId,
  103. mercProdId:item.mercProdId,
  104. prodAttrId:item.prodAttrId,
  105. count:item.quantity
  106. });
  107. if (item.thirdIdConfirmFlag==="Y") {
  108. this.setData({
  109. showRemark : true
  110. })
  111. }
  112. })
  113. this.setData({
  114. prods:list,
  115. totalPrice:formatPrice(total),
  116. orderItemDTOS
  117. })
  118. },
  119. // 修改收货地址
  120. editAddress(){
  121. const pages = getCurrentPages()
  122. const currentPage = pages[pages.length - 1]
  123. if (currentPage.data.returnData) {
  124. let address = currentPage.data.returnData;
  125. // console.log('收到返回参数:', currentPage.data.returnData)
  126. // 清除参数避免重复触发
  127. currentPage.setData({ returnData: null })
  128. this.setData({address})
  129. }else{
  130. this.getAddressList();
  131. }
  132. },
  133. /**
  134. * 生命周期函数--监听页面初次渲染完成
  135. */
  136. onReady() {
  137. },
  138. /**
  139. * 生命周期函数--监听页面显示
  140. */
  141. onShow() {
  142. this.editAddress();
  143. },
  144. /**
  145. * 生命周期函数--监听页面隐藏
  146. */
  147. onHide() {
  148. },
  149. /**
  150. * 生命周期函数--监听页面卸载
  151. */
  152. onUnload() {
  153. },
  154. /**
  155. * 页面相关事件处理函数--监听用户下拉动作
  156. */
  157. onPullDownRefresh() {
  158. },
  159. /**
  160. * 页面上拉触底事件的处理函数
  161. */
  162. onReachBottom() {
  163. },
  164. /**
  165. * 用户点击右上角分享
  166. */
  167. onShareAppMessage() {
  168. }
  169. })