litian
2024-09-02 c3086cda662e2b908cf96b6b3ff599713eb924d6
pages/cart/paymentPage/index.js
@@ -5,7 +5,7 @@
import {
  getPublicImage
} from '../../../assets/js/middleGround/tool';
import drawQrcode from './js/weapp.qrcode'
Page({
  /**
@@ -21,18 +21,29 @@
    selectedIds: '',
    purchasedIds: [],
    productList: [],
    price: '',
    payPrice: '',
    orderGoods: '',
    isPaySuccess: false,
    isPayComplete: false,
    type: '',
    onNorderSaleMethod: ''
    onNorderSaleMethod: '',
    ImmediatelyReceive: '',
    integral: 0,
    defaultVal: false,
    deductioRate: 0,
    currentBalance: 0,
    showIntegral: false
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    wx.setNavigationBarTitle({
      title: '提交订单'
    });
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
@@ -44,10 +55,22 @@
      onNorderSaleMethod: options.onNorderSaleMethod
    })
    console.log(this.data.onNorderSaleMethod, 'options');
    this.getIntegral()
    this.getOrderByOrderNumData()
    this.getDataList()
  },
  getIntegral() {
    app.MG.store
      .getUserWallet({
        type: 'integral'
      })
      .then((res) => {
        this.setData({
          integral: res.balance,
          deductioRate: res.exchangeRate
        });
      })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
@@ -100,7 +123,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 = {
@@ -108,32 +150,25 @@
      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)
        price: res.payPrice,
        payPrice: res.payPrice.toFixed(2),
        ImmediatelyReceive: res.payPrice
      })
      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)
      })
      this.setData({
        productList: res.saleMethodLinks,
        // type: item.orderSaleMethod.type == 'createProductItemSaleMethod' ? 'item' : 'product'
        loading: false,
        hidden: false,
      })
@@ -161,6 +196,59 @@
      })
    })
  },
  handleChange(e) {
    this.setData({
      defaultVal: e.detail.value,
    });
    console.log(this.data.defaultVal)
    if (this.data.defaultVal) {
      let useBalance = Math.floor(this.data.payPrice * this.data.deductioRate);
      if (useBalance >= this.data.integral) {
        this.setData({
          currentBalance: this.data.integral,
        });
      } else {
        this.setData({
          currentBalance: useBalance,
        });
      }
      const data = {
        orderNumber: this.data.orderNumber,
        payMethod: "Wallet",
        type: "integral",
        payValue: this.data.currentBalance
      }
      app.MG.store.newOrderPay(data).then(res => {
        if (res) {
          this.setData({
            payId: res.payList[0].id,
            payPrice: res.payPrice,
            deduct: (this.data.price - this.data.payPrice).toFixed(2),
            integral: this.data.integral - this.data.currentBalance,
            showIntegral: true
          });
        }
      })
    } else {
      const data = {
        orderNumber: this.data.orderNumber,
        payId: this.data.payId,
      }
      app.MG.store.delOrderPay(data).then(res => {
        console.log(res, "取消用积分")
        if (res) {
          this.setData({
            payPrice: res.payPrice,
            showIntegral: false
          });
          this.getIntegral()
        }
      })
    }
  },
  confirmOrderGet() {
    if (this.data.myOrderOrderNumber.includes(parseInt(this.data.onNorderSaleMethod))) {
      Toast({
@@ -241,4 +329,19 @@
    // 返回
    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()
    })
  }
})