|
@@ -1,24 +1,39 @@
|
|
|
// pages/orders/order-detail.ts
|
|
|
-import drawQrcode from "../../utils/weapp.qrcode.esm";
|
|
|
-import { api_userPaymentCancelRefund, api_userPaymentOrderDetail } from "../../api/login";
|
|
|
+import { api_executeOrder, api_executePayment, api_queryByParamName, api_userPaymentOrderUnpaid, api_getUserReceiveAddressPage, api_userPaymentOrderDetail } from "../../api/login";
|
|
|
|
|
|
+const GRADE_ENUM = {
|
|
|
+ '1': '一年级',
|
|
|
+ '2': '二年级',
|
|
|
+ '3': '三年级',
|
|
|
+ '4': '四年级',
|
|
|
+ '5': '五年级',
|
|
|
+ '6': '六年级',
|
|
|
+ '7': '七年级',
|
|
|
+ '8': '八年级',
|
|
|
+ '9': '九年级'
|
|
|
+} as any;
|
|
|
// 获取应用实例
|
|
|
+const app = getApp<IAppOption>()
|
|
|
Page({
|
|
|
/**
|
|
|
* 页面的初始数据
|
|
|
*/
|
|
|
data: {
|
|
|
- status: 'WAIT_PAY',
|
|
|
+ popupShow: false,
|
|
|
+ isAddressInfoTip: false,
|
|
|
+ addressInfo: {} as any,
|
|
|
+ serviceShow: true,
|
|
|
+ status: '',
|
|
|
statusList: {
|
|
|
WAIT_PAY: {
|
|
|
logo: './images/ing.png',
|
|
|
- title: '待付款',
|
|
|
+ title: '待支付',
|
|
|
content: '为了确保您的订单顺利进行,请尽快完成支付'
|
|
|
},
|
|
|
PAID: {
|
|
|
logo: './images/success.png',
|
|
|
title: '已完成',
|
|
|
- content: '登录「音乐数字课堂」APP,开启AI学练之旅~'
|
|
|
+ content: '订单流程已结束,感谢您的支持与参与!'
|
|
|
},
|
|
|
CLOSED: {
|
|
|
logo: './images/error.png',
|
|
@@ -41,115 +56,91 @@ Page({
|
|
|
content: '您的订单已成功退款,感谢您的耐心等待'
|
|
|
}
|
|
|
},
|
|
|
- timerCount: 0,
|
|
|
- timer: null as any,
|
|
|
+ orderNo: "",
|
|
|
goodsInfo: {} as any,
|
|
|
- tabIdx: 0, // 当前是从哪个tab来的
|
|
|
- orderNo: "" as string,
|
|
|
- showCanvas: false, // 是否显示二维码
|
|
|
- canvasImg: "" as string,
|
|
|
- serviceShow: true,
|
|
|
- refoundStatus: false,
|
|
|
- cancelRefoundStatus: false
|
|
|
+ instrumentsInfo: {} as any,
|
|
|
+ memberInfo: {} as any,
|
|
|
+ orderInfo: {} as any, //订单信息
|
|
|
+ paymentType: null as any, // 支付类型
|
|
|
+ paymentChannel: null as any,
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面加载
|
|
|
*/
|
|
|
onLoad(options: any) {
|
|
|
+ this.queryPayType()
|
|
|
+ // if (options.orderInfo) {
|
|
|
+ // const goods = JSON.parse(decodeURIComponent(options.orderInfo));
|
|
|
+ // const instrumentsInfo = JSON.parse(decodeURIComponent(options.instrumentsInfo));
|
|
|
+ // const memberInfo = JSON.parse(decodeURIComponent(options.memberInfo));
|
|
|
+ // console.log(goods, 'goods', instrumentsInfo, memberInfo)
|
|
|
+ // this.setData({
|
|
|
+ // goodsInfo: goods,
|
|
|
+ // instrumentsInfo,
|
|
|
+ // memberInfo,
|
|
|
+ // status: goods.status
|
|
|
+ // });
|
|
|
+ // }
|
|
|
if (options.orderNo) {
|
|
|
this.setData({
|
|
|
- orderNo: options.orderNo,
|
|
|
- tabIdx: options.tabIdx,
|
|
|
- }, () => {
|
|
|
- this.getDetail(this.onTimeout)
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- onShow() {
|
|
|
- this.setData({
|
|
|
- serviceShow: true
|
|
|
- })
|
|
|
- if(this.data.orderNo) {
|
|
|
- this.getDetail(this.onTimeout)
|
|
|
+ orderNo: options.orderNo
|
|
|
+ })
|
|
|
+ this.getDetail()
|
|
|
}
|
|
|
},
|
|
|
- onHide() {
|
|
|
- this.setData({
|
|
|
- serviceShow: false
|
|
|
- })
|
|
|
- },
|
|
|
async getDetail(callback?: any) {
|
|
|
try {
|
|
|
const { data } = await api_userPaymentOrderDetail(this.data.orderNo);
|
|
|
if (data.code == 200) {
|
|
|
- const result = data.data || {}
|
|
|
- const goodsInfos = result.goodsInfos || []
|
|
|
- const tempGoods: any = []
|
|
|
- goodsInfos.forEach((item: any) => {
|
|
|
- const prices: any = this.formatPrice(item.paymentCashAmount)
|
|
|
-
|
|
|
- tempGoods.push({
|
|
|
- ...item,
|
|
|
- integerPart: prices.integerPart,
|
|
|
- decimalPart: prices.decimalPart,
|
|
|
- shortUrl: item.activationCodeInfo.shortUrl,
|
|
|
- code: item.activationCodeInfo.activationCode,
|
|
|
- originalPrice: this.formatPrice(item.paymentCashAmount, 'ALL'),
|
|
|
- typeName: this.formatPeriod(item.activationCodeInfo?.times || 1, item.activationCodeInfo.type)
|
|
|
- })
|
|
|
- })
|
|
|
- let refundStyleStr = ''
|
|
|
- if(result.refundStyle === 'TURN_BACK') {
|
|
|
- refundStyleStr = '原路返回'
|
|
|
- } else if(result.refundStyle === 'OFFLINE') {
|
|
|
- refundStyleStr = '线下'
|
|
|
+ const { goodsInfos, addresses, beneficiary, wechatStatus, createTime } = data.data
|
|
|
+ const goodsInfo = {}
|
|
|
+ if (goodsInfos[0]) {
|
|
|
+ goodsInfo.pic = goodsInfos[0].goodsUrl
|
|
|
+ goodsInfo.name = goodsInfos[0].goodsName
|
|
|
+ goodsInfo.originalPrice = goodsInfos[0].originalPrice
|
|
|
+ goodsInfo.salePrice = goodsInfos[0].paymentCashAmount
|
|
|
+ goodsInfo.typeName = this.formatPeriod(goodsInfos[0].activationCodeInfo.times, goodsInfos[0].activationCodeInfo.type)
|
|
|
+ goodsInfo.orderNo = this.data.orderNo
|
|
|
+ }
|
|
|
+ const instrumentsInfo = {}
|
|
|
+ if (goodsInfos[1]) {
|
|
|
+ instrumentsInfo.pic = goodsInfos[1].goodsUrl
|
|
|
+ instrumentsInfo.name = goodsInfos[1].goodsName
|
|
|
+ instrumentsInfo.originalPrice = goodsInfos[1].originalPrice
|
|
|
+ instrumentsInfo.salePrice = goodsInfos[1].paymentCashAmount
|
|
|
+ instrumentsInfo.id = goodsInfos[1].id
|
|
|
+ }
|
|
|
+ const addressInfo = {}
|
|
|
+ if (addresses && instrumentsInfo.id) {
|
|
|
+ addressInfo.id = addresses.id
|
|
|
+ addressInfo.name = addresses.name
|
|
|
+ addressInfo.phoneNumber = addresses.phoneNumber
|
|
|
+ addressInfo.addressDes = addresses.detailAddress
|
|
|
}
|
|
|
- const firstGoods = tempGoods[0]
|
|
|
- const goodsInfo = {
|
|
|
- orderNo: result.orderNo,
|
|
|
- createTime: result.createTime,
|
|
|
- wechatStatus: result.wechatStatus,
|
|
|
- goods: tempGoods,
|
|
|
- code: firstGoods.code || '',
|
|
|
- refundOrderId: result.refundOrderId,
|
|
|
- refundTime: result.refundTime,
|
|
|
- refundAmount: this.formatPrice(result.refundAmount || 0, 'ALL'),
|
|
|
- refundStyleStr
|
|
|
+ const memberInfo = {}
|
|
|
+ if (beneficiary) {
|
|
|
+ memberInfo.name = beneficiary.name
|
|
|
+ memberInfo.phone = beneficiary.phone
|
|
|
+ memberInfo.schoolInfo = beneficiary.provinceName + beneficiary.cityName + beneficiary.regionName + beneficiary.schoolAreaName + GRADE_ENUM[beneficiary.currentGradeNum] + beneficiary.currentClass + "班"
|
|
|
+ }
|
|
|
+ const orderInfo = {
|
|
|
+ createTime,
|
|
|
+ orderNo: this.data.orderNo
|
|
|
}
|
|
|
this.setData({
|
|
|
goodsInfo,
|
|
|
- status: result.wechatStatus
|
|
|
- }, () => {
|
|
|
- callback && typeof callback === 'function' && callback()
|
|
|
+ instrumentsInfo,
|
|
|
+ addressInfo,
|
|
|
+ memberInfo,
|
|
|
+ status: wechatStatus,
|
|
|
+ orderInfo
|
|
|
})
|
|
|
- if(result.wechatStatus != 'CLOSED' || result.wechatStatus != 'WAIT_PAY') {
|
|
|
- const firstGoods = tempGoods[0]
|
|
|
- if(firstGoods?.shortUrl) {
|
|
|
- this.setData({
|
|
|
- showCanvas: true
|
|
|
- }, () => {
|
|
|
- this.createQrCode(firstGoods?.shortUrl, 'canvasCode')
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
} catch (error) {
|
|
|
console.log(error, "error");
|
|
|
}
|
|
|
},
|
|
|
- // 格式化价格
|
|
|
- formatPrice(price: number, type?: string) {
|
|
|
- const amountStr = price.toFixed(2)
|
|
|
- const [integerPart, decimalPart] = amountStr.split('.');
|
|
|
- if(type === 'ALL') {
|
|
|
- return amountStr
|
|
|
- }
|
|
|
- return {
|
|
|
- integerPart,
|
|
|
- decimalPart
|
|
|
- }
|
|
|
- },
|
|
|
// 格式化类型
|
|
|
formatPeriod(num: number, type: string) {
|
|
|
const template: any = {
|
|
@@ -157,160 +148,192 @@ Page({
|
|
|
MONTH: "月卡",
|
|
|
YEAR: "年卡"
|
|
|
}
|
|
|
- if(type === "YEAR" && num >= 99) {
|
|
|
+ if (type === "YEAR" && num >= 99) {
|
|
|
return '永久卡'
|
|
|
}
|
|
|
return num + template[type]
|
|
|
},
|
|
|
- onSubmit() {
|
|
|
- wx.redirectTo({
|
|
|
- url: '../index/index'
|
|
|
+ onCopy(e: { currentTarget: any }) {
|
|
|
+ wx.setClipboardData({
|
|
|
+ data: e.currentTarget.dataset.orderno,
|
|
|
+ success: () => {
|
|
|
+ wx.showToast({ title: '复制成功', icon: 'none' })
|
|
|
+ },
|
|
|
+ fail: () => {
|
|
|
+ wx.showToast({ title: '复制失败,请稍后再试', icon: 'none' })
|
|
|
+ }
|
|
|
})
|
|
|
},
|
|
|
- setCanvasSize: function () {
|
|
|
- const size = {} as any;
|
|
|
+ // 获取后台配置的支付方式
|
|
|
+ async queryPayType() {
|
|
|
try {
|
|
|
- const res = wx.getWindowInfo()
|
|
|
- const scale = 750 / 300; //不同屏幕下canvas的适配比例;设计稿是750宽
|
|
|
- const width = res.windowWidth / scale;
|
|
|
- const height = width; //canvas画布为正方形
|
|
|
- size.w = width;
|
|
|
- size.h = height;
|
|
|
- } catch (e) {
|
|
|
- // Do something when catch error
|
|
|
- console.log("获取设备信息失败" + e);
|
|
|
+ // wxlite_payment_service_provider
|
|
|
+ const { data } = await api_queryByParamName({
|
|
|
+ paramName: app.globalData.appId
|
|
|
+ });
|
|
|
+ if (data.code == 200) {
|
|
|
+ const paramValue = data.data.paramValue ? JSON.parse(data.data.paramValue) : {}
|
|
|
+ this.setData({
|
|
|
+ paymentType: paramValue.vendor,
|
|
|
+ paymentChannel: paramValue.channel
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.log(error, "error");
|
|
|
}
|
|
|
- return size;
|
|
|
},
|
|
|
- createQrCode(content: any, canvasId: any) {
|
|
|
- const size = this.setCanvasSize();
|
|
|
- drawQrcode({
|
|
|
- width: size.w,
|
|
|
- height: size.h,
|
|
|
- canvasId: canvasId,
|
|
|
- text: content,
|
|
|
- callback: () => {
|
|
|
- // 安卓机上不准确,生成的二维码无法扫描,加延时解决
|
|
|
- setTimeout(() => {
|
|
|
- wx.canvasToTempFilePath(
|
|
|
- {
|
|
|
- canvasId: canvasId,
|
|
|
- success: (res) => {
|
|
|
- this.setData({
|
|
|
- canvasImg: res.tempFilePath,
|
|
|
- });
|
|
|
- },
|
|
|
- },
|
|
|
- this
|
|
|
- );
|
|
|
- }, 0);
|
|
|
- },
|
|
|
- });
|
|
|
+ onPayError(message?: string) {
|
|
|
+ wx.hideLoading()
|
|
|
+ wx.showToast({
|
|
|
+ title: message || '支付取消',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
},
|
|
|
- onTimeout() {
|
|
|
- // 轮询10次查询订单状态
|
|
|
- const goodsInfo = this.data.goodsInfo
|
|
|
- const timerCount = this.data.timerCount
|
|
|
- const timer = this.data.timer
|
|
|
- if(goodsInfo.wechatStatus === 'WAIT_PAY' && timerCount <= 10) {
|
|
|
- let count = timerCount
|
|
|
- const tempT = setTimeout(async () => {
|
|
|
- count += 1
|
|
|
- await this.getDetail()
|
|
|
- this.setData({
|
|
|
- timer: tempT,
|
|
|
- timerCount: count
|
|
|
- }, () => {
|
|
|
- this.onTimeout()
|
|
|
+ // 购买
|
|
|
+ async onSubmit() {
|
|
|
+ // 有乐器必须填收货信息
|
|
|
+ // if (this.data.instrumentsInfo.id && !this.data.addressInfo.id) {
|
|
|
+ // wx.showToast({
|
|
|
+ // title: "请填写收货信息",
|
|
|
+ // icon: 'none'
|
|
|
+ // })
|
|
|
+ // this.setData({
|
|
|
+ // isAddressInfoTip: true
|
|
|
+ // })
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ console.log(this.data.addressInfo)
|
|
|
+ wx.showLoading({
|
|
|
+ mask: true,
|
|
|
+ title: "订单提交中...",
|
|
|
+ });
|
|
|
+ try {
|
|
|
+ const { salePrice, shopId, name, id, orderNo } = this.data.goodsInfo
|
|
|
+ if (orderNo) {
|
|
|
+ const { data } = await api_userPaymentOrderUnpaid({
|
|
|
+ orderNo: orderNo,
|
|
|
+ paymentType: 'WECHAT_MINI'
|
|
|
})
|
|
|
- }, 3000);
|
|
|
- } else {
|
|
|
- clearTimeout(timer)
|
|
|
- }
|
|
|
- },
|
|
|
- /** 申请退款 */
|
|
|
- async cancelRefound() {
|
|
|
- this.setData({
|
|
|
- cancelRefoundStatus: true
|
|
|
- }, async () => {
|
|
|
- try {
|
|
|
- const {data} = await api_userPaymentCancelRefund(this.data.goodsInfo.refundOrderId)
|
|
|
- // console.log(data, 'data')
|
|
|
- if(data.code == 200) {
|
|
|
- wx.showToast({ title: '取消退款成功', icon: 'none' })
|
|
|
- this.getDetail()
|
|
|
+ if (data.code === 200) {
|
|
|
+ const { paymentConfig, paymentType, orderNo } = data.data.paymentConfig
|
|
|
+ this.onExecutePay(paymentConfig, paymentType, orderNo)
|
|
|
} else {
|
|
|
- wx.showToast({ title: data.message, icon: 'none' })
|
|
|
+ this.onPayError()
|
|
|
}
|
|
|
- setTimeout(() => {
|
|
|
- this.setData({
|
|
|
- cancelRefoundStatus: false
|
|
|
+ } else {
|
|
|
+ const goodsInfos = [{
|
|
|
+ "goodsId": id,
|
|
|
+ "goodsNum": 1,
|
|
|
+ "goodsType": "ACTIVATION_CODE",
|
|
|
+ "paymentCashAmount": salePrice,
|
|
|
+ "paymentCouponAmount": 0
|
|
|
+ }]
|
|
|
+ // 乐器
|
|
|
+ if (this.data.instrumentsInfo.id) {
|
|
|
+ goodsInfos.push({
|
|
|
+ "goodsId": this.data.instrumentsInfo.id,
|
|
|
+ "goodsNum": 1,
|
|
|
+ "goodsType": "INSTRUMENTS",
|
|
|
+ "paymentCashAmount": this.data.instrumentsInfo.salePrice,
|
|
|
+ "paymentCouponAmount": 0
|
|
|
})
|
|
|
- }, 500);
|
|
|
- } catch {}
|
|
|
- })
|
|
|
- },
|
|
|
- /** 申请退款 */
|
|
|
- useRefound() {
|
|
|
- this.setData({
|
|
|
- refoundStatus: true
|
|
|
- })
|
|
|
- },
|
|
|
- changeRefoundStatus(e: {detail: any}) {
|
|
|
- this.setData({
|
|
|
- refoundStatus: e.detail
|
|
|
- })
|
|
|
- },
|
|
|
- onRefoundComfirm() {
|
|
|
- this.setData({
|
|
|
- refoundStatus: false
|
|
|
- })
|
|
|
- // wx.navigateBack({
|
|
|
- // delta: 1
|
|
|
- // })
|
|
|
- this.getDetail()
|
|
|
+ }
|
|
|
+ const { data } = await api_executeOrder({
|
|
|
+ "orderType": "WECHAT_MINI",
|
|
|
+ "paymentType": this.data.paymentType,
|
|
|
+ "paymentCashAmount": salePrice + (this.data.instrumentsInfo.salePrice || 0),
|
|
|
+ "paymentCouponAmount": 0,
|
|
|
+ "shopId": shopId,
|
|
|
+ "openId": app.globalData.userInfo?.liteOpenid,
|
|
|
+ goodsInfos,
|
|
|
+ "orderName": name + (this.data.instrumentsInfo.name ? `+${this.data.instrumentsInfo.name}` : ""),
|
|
|
+ "orderDesc": name + (this.data.instrumentsInfo.name ? `+${this.data.instrumentsInfo.name}` : ""),
|
|
|
+ "receiveAddress": this.data.addressInfo.id || "",
|
|
|
+ "userBeneficiaryId": this.data.memberInfo.id
|
|
|
+ })
|
|
|
+ if (data.code === 200) {
|
|
|
+ const { paymentConfig, paymentType, orderNo } = data.data
|
|
|
+ this.onExecutePay(paymentConfig, paymentType, orderNo)
|
|
|
+ } else if (data.code === 5200) {
|
|
|
+ wx.hideLoading()
|
|
|
+ wx.showToast({
|
|
|
+ title: data.message,
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ } else if (data.code === 5435) {
|
|
|
+ wx.hideLoading()
|
|
|
+ wx.showToast({
|
|
|
+ title: data.message,
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ setTimeout(() => { wx.navigateBack() }, 1000)
|
|
|
+ } else {
|
|
|
+ this.onPayError()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch {
|
|
|
+ wx.hideLoading()
|
|
|
+ }
|
|
|
},
|
|
|
- onCopy(e: { currentTarget: any }) {
|
|
|
- wx.setClipboardData({
|
|
|
- data: e.currentTarget.dataset.orderno,
|
|
|
- success: () => {
|
|
|
- wx.showToast({title: '复制成功', icon: 'none'})
|
|
|
+ async onExecutePay(paymentConfig: any, paymentType: string, orderNo: string) {
|
|
|
+ wx.login({
|
|
|
+ success: async (wxres: any) => {
|
|
|
+ const res = await api_executePayment({
|
|
|
+ merOrderNo: paymentConfig.merOrderNo,
|
|
|
+ paymentChannel: this.data.paymentChannel || 'wx_lite', // 'wx_pub', //
|
|
|
+ paymentType,
|
|
|
+ userId: app.globalData.userInfo?.id,
|
|
|
+ code: wxres.code,
|
|
|
+ wxMiniAppId: app.globalData.appId
|
|
|
+ // code: '011yjYkl289aye4q2zml24UEWT3yjYkn',
|
|
|
+ // wxPubAppId: 'wxbde13f59d40cb4f2'
|
|
|
+ })
|
|
|
+ wx.hideLoading()
|
|
|
+ if (res.data.code === 200) {
|
|
|
+ this.onPay(paymentType, res.data.data.reqParams, orderNo)
|
|
|
+ } else {
|
|
|
+ this.onPayError(res.data.message)
|
|
|
+ }
|
|
|
},
|
|
|
fail: () => {
|
|
|
- wx.showToast({title: '复制失败,请稍后再试', icon: 'none'})
|
|
|
+ this.onPayError()
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- onActivation(e: { currentTarget: any }) {
|
|
|
- const code = e.currentTarget.dataset.code || ''
|
|
|
- if(!code) {
|
|
|
- wx.showToast({
|
|
|
- title: '暂无法激活',
|
|
|
- icon: 'none'
|
|
|
- })
|
|
|
- return
|
|
|
- }
|
|
|
- wx.navigateTo({
|
|
|
- url: '../protocol/register?type=activation&code=' + code
|
|
|
- })
|
|
|
- },
|
|
|
- onDownload() {
|
|
|
- wx.saveImageToPhotosAlbum({
|
|
|
- filePath: this.data.canvasImg,
|
|
|
- success: () => {
|
|
|
- wx.showToast({
|
|
|
- title: '保存成功',
|
|
|
- icon: 'success',
|
|
|
- });
|
|
|
+ onPay(paymentType: string, paymentConfig: any, orderNo: string) {
|
|
|
+ const isYeePay = paymentType.indexOf('yeepay') !== -1
|
|
|
+ const prePayInfo = isYeePay ? JSON.parse(paymentConfig.prePayTn)
|
|
|
+ : paymentConfig?.expend
|
|
|
+ ? JSON.parse(paymentConfig?.expend?.pay_info)
|
|
|
+ : paymentConfig
|
|
|
+ const that = this
|
|
|
+ wx.requestPayment({
|
|
|
+ timeStamp: prePayInfo.timeStamp,
|
|
|
+ nonceStr: prePayInfo.nonceStr,
|
|
|
+ package: prePayInfo.package ? prePayInfo.package : prePayInfo.packageValue,
|
|
|
+ paySign: prePayInfo.paySign,
|
|
|
+ signType: prePayInfo.signType ? prePayInfo.signType : 'MD5',
|
|
|
+ success() {
|
|
|
+ wx.showToast({ title: '支付成功', icon: 'success' });
|
|
|
+ setTimeout(() => {
|
|
|
+ that.getDetail()
|
|
|
+ }, 1000)
|
|
|
},
|
|
|
- fail: () => {
|
|
|
- wx.showToast({
|
|
|
- title: '保存失败',
|
|
|
- icon: 'none',
|
|
|
- });
|
|
|
+ fail(ressonInfo) {
|
|
|
+ console.log('支付失败', ressonInfo)
|
|
|
+ that.onPayError()
|
|
|
+ const goodsInfo = that.data.goodsInfo
|
|
|
+ goodsInfo.orderNo = orderNo
|
|
|
+ that.setData({
|
|
|
+ goodsInfo
|
|
|
+ })
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用户点击右上角分享
|
|
|
+ */
|
|
|
onShareAppMessage() {
|
|
|
return {
|
|
|
title: '音乐数字AI器乐工具',
|