litian
2024-07-10 81c23f9c2f5bdfbe962d0b19a5a80ea7c12f043d
pages/cart/paymentPage/index.js
@@ -1,10 +1,11 @@
// pages/cart/paymentPage/index.js
import Toast from 'tdesign-miniprogram/toast/index';
const app = getApp()
import {
  getPublicImage
} from '../../../assets/js/middleGround/tool';
import drawQrcode from './js/weapp.qrcode'
Page({
  /**
@@ -25,13 +26,17 @@
    isPaySuccess: false,
    isPayComplete: false,
    type: '',
    onNorderSaleMethod: ''
    onNorderSaleMethod: '',
    ImmediatelyReceive: ''
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    wx.setNavigationBarTitle({
      title: '提交订单'
    });
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
@@ -99,7 +104,26 @@
    wx.navigateBack();
  },
  // 金额显示.00格式
  numFormat(value) {
    if (!value) return "0.00";
    value = Number(value).toFixed(2);
    var intPart = Math.trunc(value); // 获取整数部分
    var intPartFormat = intPart
      .toString()
      .replace(/(\d)(?=(?:\d{3})+$)/g, "$1,"); // 将整数部分逢三一断
    var floatPart = ".00"; // 预定义小数部分
    var value2Array = value.split(".");
    // =2表示数据有小数位
    if (value2Array.length === 2) {
      floatPart = value2Array[1].toString(); // 拿到小数部分
      if (floatPart.length === 1) {
        return `${intPartFormat}.${floatPart}0`;
      }
      return `${intPartFormat}.${floatPart}`;
    }
    return intPartFormat + floatPart;
  },
  getOrderByOrderNumData() {
    console.log(this.data.orderNumber, 'this.data.orderNumber');
    let query = {
@@ -107,32 +131,26 @@
      fields: {
        content: [],
        subtitle: [],
      }
    }
    app.MG.store.getOrderByOrderNum(query).then(res => {
      console.log(res, 'res');
      this.setData({
        orderGoods: res.orderNumber
      })
      console.log(this.data.orderGoods, 'res.orderNumber');
      console.log(res.payPrice);
      this.setData({
        payPrice: res.payPrice.toFixed(2)
        payPrice: res.payPrice.toFixed(2),
        ImmediatelyReceive: res.payPrice
      })
      console.log(this.data.ImmediatelyReceive);
      res.saleMethodLinks.forEach(item => {
        console.log(item.type, 'item.type');
        const type = item.orderSaleMethod.type == 'createProductItemSaleMethod' ? 'item' : 'product';
        item.type = type; // 将type设置为item对象的属性,而不是使用setData
        item.paymentIcon = getPublicImage(item.orderSaleMethod.product.icon)
        console.log(item.type, 'item');
        item.payPrice = this.numFormat(item.payPrice)
        console.log(item, 'item');
      })
      this.setData({
        productList: res.saleMethodLinks,
        // type: item.orderSaleMethod.type == 'createProductItemSaleMethod' ? 'item' : 'product'
        loading: false,
        hidden: false,
      })
@@ -153,6 +171,7 @@
      }
    }
    app.MG.store.getUserOrderList(data).then((res) => {
      res.datas.forEach((item) => {
        this.data.myOrderOrderNumber.push(item.saleMethodLinks[0].orderSaleMethod.id)
        console.log(this.data.myOrderOrderNumber);
@@ -184,37 +203,49 @@
          // 用户未绑定微信 报500
          app.MG.store.makeWeChatPay(resOrderNum).then(payRes => {
            console.log(payRes, 'payRes');
            const payVal = JSON.parse(payRes);
            wx.requestPayment({
              "appId": payVal.appId,
              "timeStamp": payVal.timeStamp,
              "nonceStr": payVal.nonceStr,
              "package": payVal.package,
              "signType": payVal.signType,
              "paySign": payVal.paySign,
              success: function (res) {
                console.log('支付成功');
                if (res.errMsg == 'requestPayment:ok') {
                  that.setData({
                    isPaySuccess: true
                  })
            if (payRes) {
              const payVal = JSON.parse(payRes);
              console.log(payVal);
              wx.requestPayment({
                "appId": payVal.appId,
                "timeStamp": payVal.timeStamp,
                "nonceStr": payVal.nonceStr,
                "package": payVal.package,
                "signType": payVal.signType,
                "paySign": payVal.paySign,
                success: function (res) {
                  console.log('支付成功');
                  if (res.errMsg == 'requestPayment:ok') {
                    that.setData({
                      isPaySuccess: true
                    })
                  }
                },
                fail: function (res) {
                  console.log('支付失败');
                },
                // 无论支付成功失败都会调用
                "complete": function (res) {
                  if (res.errMsg == 'requestPayment:ok') {
                    that.setData({
                      isPayComplete: true
                    })
                  }
                  if (that.data.isPaySuccess && that.data.isPayComplete) {
                    that.navToBack()
                  }
                }
              },
              fail: function (res) {
                console.log('支付失败');
              },
              // 无论支付成功失败都会调用
              "complete": function (res) {
                if (res.errMsg == 'requestPayment:ok') {
                  that.setData({
                    isPayComplete: true
                  })
                }
                if (that.data.isPaySuccess && that.data.isPayComplete) {
                  that.navToBack()
                }
              }
            });
              });
            } else {
              Toast({
                context: this,
                selector: '#t-toast',
                message: '支付失败',
                theme: 'warning',
                direction: 'column',
              });
            }
          })
        }
      })
@@ -223,8 +254,23 @@
  },
  // 页面返回
  navToBack() {
    this.getOrderByOrderNumData()
    // 返回
    wx.navigateBack()
  },
  onReceive() {
    let query = {
      orderNum: this.data.orderGoods
    }
    app.MG.store.confirmOrder(query).then(res => {
      Toast({
        context: this,
        selector: '#t-toast',
        message: '领取成功',
        theme: 'success',
        direction: 'column',
      });
      wx.navigateBack()
    })
  }
})