会员模块

This commit is contained in:
2023-12-15 17:53:08 +08:00
commit 2a998468d9
282 changed files with 14521 additions and 0 deletions

300
pages/mall/submit/index.js Normal file
View File

@@ -0,0 +1,300 @@
/*
* 手太欠
* 愿这世界都如故事里一样 美好而动人~
*/
Page({
/**
* 页面的初始数据
*/
data: {
goodId : '', //店铺id
goodType : '', //商品类型
skuId : '', //产品id
num : 1, //数量默认1
address : '', //地址
addressId : '', //地址id
stockData : '', //数据
amount : '', //总金额
freight : '', //运费
weight : '', //重量
remark : '', //备注
exchangeSee : false, //是否兑换
disabled : false,
orderNo : '', // 订单编号
surplus : '', // 水滴数量
paySuccess : false, // 兑换成功显示
payType : 'wechat' //支付类型 wechat微信 water水滴兑换
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.setData({
goodId : options.goodsid,
goodType: options.goodtype,
skuId : options.skuid,
num : options.qty
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
// 获取订单前置
this.orderShow()
// 获取用户信息
this.userInfo();
},
/**
* 用户信息
*/
userInfo() {
wx.$api.user.home().then(res => {
this.setData({
surplus : res.data.account.score.surplus
})
}).catch(err => {})
},
/**
* 订单前置
*/
orderShow() {
wx.$api.mall.foundOrder({
goods_sku_id: this.data.skuId,
address_id : this.data.addressId,
qty : this.data.num
}).then(res => {
this.setData({
address : res.data.address,
addressId : res.data.address.address_id,
stockData : res.data.detail,
amount : res.data.amount,
freight : res.data.freight,
weight : res.data.weight
})
}).catch(err => {})
},
/**
* 商品数量加减
*/
goodsNumber(e){
let num = this.data.num,
val = e.currentTarget.dataset.type
if (val == 'plus'){
num ++;
}else{
if (num > 1){
num --;
}else{
wx.showToast({
title : '商品数量不能小于1',
icon : 'none'
})
}
this.setData({
num: num
})
}
this.setData({
num: num
})
// 获取订单前置
this.orderShow()
},
/**
* 输入商品数量
*/
goodsNumberInput(e) {
let goodsNum = e.detail.value;
if (goodsNum > 0) {
this.setData({
num: goodsNum
})
} else {
wx.showToast({
title: '商品数量不能小于1',
icon: 'none'
});
this.setData({
num: 1
})
}
},
/**
* 选择支付方式
*/
radioChange(e) {
this.setData({
payType : e.detail.value
})
},
/**
* 是否确认兑换
*/
exchangeShow() {
let newQty = this.data.num
let data = {
goods_sku_id: this.data.skuId,
remark : this.data.remark,
qty : newQty,
address_id : this.data.address.address_id
}
wx.$api.mall.affirmOrder(data).then(res => {
this.setData({
orderNo: res.data.order_no
})
// this.data.current == wechat 为微信支付
// if(this.data.payType == 'wechat') {
// this.wxPay()
// return
// }
// this.data.payType == water 为水滴兑换
if(this.data.goodType == 'waterType') {
this.setData({
exchangeSee: !this.data.exchangeSee
})
return
}
// 微信支付
this.wxPay()
}).catch(err => {})
},
/**
* 水滴兑换确认订单
*/
goodsForm() {
this.waterPay();
},
/**
* 关闭兑换弹出
*/
goodsCancel() {
this.setData({
exchangeSee: false
})
},
// 微信支付
wxPay() {
wx.showLoading({
title: '支付中...',
mask : true
})
let that = this
wx.login({
success: res => {
wx.$api.member.openid(res).then(openidRes => {
wx.$api.member.wechatPay(this.data.orderNo, {
type : 'miniapp',
openid : openidRes.data
}).then(PayRes => {
wx.hideLoading()
this.setData({
disabled : true
})
let payInfo = JSON.parse(PayRes.data.wechat)
wx.requestPayment({
timeStamp: payInfo.timeStamp,
nonceStr : payInfo.nonceStr,
package : payInfo.package,
paySign : payInfo.paySign,
signType : payInfo.signType,
success : payInfoRes=>{
if(payInfoRes.errMsg == "requestPayment:ok"){
wx.showToast({
title: '支付成功',
icon: 'none',
duration: 2000,
//显示透明蒙层,防止触摸穿透
mask:true,
success: function () {
that.setData({
paySuccess: true
})
setTimeout(()=>{
wx.redirectTo({
url: '/pages/order/list/index?listType=paid'
})
},3000)
}
})
}
},
fail : res=>{
wx.showToast({
title: '支付失败',
icon: 'none',
duration: 500,
//显示透明蒙层,防止触摸穿透
mask:true,
success: function () {
that.setData({
paySuccess: true
})
setTimeout(()=>{
wx.redirectTo({
url: '/pages/order/list/index?listType=unpay'
})
},3000)
}
})
}
})
}).catch(err => {})
}).catch(err => {})
}
})
},
// 水滴兑换
waterPay() {
wx.showLoading({
title: '兑换中...',
mask : true
})
let that = this
wx.$api.mall.affirmPay(this.data.orderNo, {gateway: 'miniapp'}).then(res => {
wx.hideLoading()
this.setData({
exchangeSee: false,
disabled : true
})
wx.showToast({
title: '兑换成功',
icon: 'none',
duration: 2000,
//显示透明蒙层,防止触摸穿透
mask:true,
success: function () {
that.setData({
paySuccess: true
})
setTimeout(()=>{
wx.redirectTo({
url: '/pages/order/list/index?listType=paid'
})
},3000)
}
})
}).catch(err => {})
}
})