|
|
const app = getApp()
|
|
|
Page({
|
|
|
|
|
|
/**
|
|
|
* 页面的初始数据
|
|
|
*/
|
|
|
data: {
|
|
|
success: false,
|
|
|
fail: false,
|
|
|
name: '',
|
|
|
choudanNum: 0,
|
|
|
addressId: 0,
|
|
|
tel: '',
|
|
|
area: '',
|
|
|
address: '',
|
|
|
cover_type: false,
|
|
|
total: '',
|
|
|
payMent: '',
|
|
|
orderPayMent: '',
|
|
|
|
|
|
info: {
|
|
|
address: {
|
|
|
address: '',
|
|
|
area: '',
|
|
|
id: '',
|
|
|
tel: '',
|
|
|
name: ''
|
|
|
}
|
|
|
|
|
|
}
|
|
|
},
|
|
|
//加减商品数量
|
|
|
num_change(e) {
|
|
|
let that = this
|
|
|
let num = Number(e.currentTarget.dataset.num)
|
|
|
console.log(num)
|
|
|
let type = e.currentTarget.dataset.type
|
|
|
let index = e.currentTarget.dataset.index
|
|
|
let id = e.currentTarget.dataset.id
|
|
|
let check = e.currentTarget.dataset.check
|
|
|
let coudan = this.data.coudan || []
|
|
|
let coudan_arr = this.data.coudan_arr || []
|
|
|
let price = e.currentTarget.dataset.price;
|
|
|
let price2 = e.currentTarget.dataset.price2;
|
|
|
|
|
|
if (type == 1) {
|
|
|
if (this.data.info.choudan * 100 < (price * 100)) {
|
|
|
wx.showToast({
|
|
|
title: '当前剩余积分不足,请重新挑选',
|
|
|
icon: 'none'
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
num++
|
|
|
} else {
|
|
|
num--
|
|
|
if (num < 0) {
|
|
|
num = 0;
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (num < 1) {
|
|
|
coudan.forEach((item, index) => {
|
|
|
if (item.id == id) {
|
|
|
coudan.splice(index, 1)
|
|
|
coudan_arr.splice(index, 1)
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
|
if (type == 1 && num == 1) {
|
|
|
//选中
|
|
|
coudan.push({
|
|
|
id: id,
|
|
|
num: num
|
|
|
})
|
|
|
coudan_arr.push({
|
|
|
id: id,
|
|
|
num: num,
|
|
|
price: Number(price),
|
|
|
price2: Number(price2)
|
|
|
})
|
|
|
} else {
|
|
|
coudan.forEach((item, index) => {
|
|
|
if (item.id == id) {
|
|
|
item.num = num
|
|
|
coudan_arr[index].num = num
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
|
|
|
}
|
|
|
that.setData({
|
|
|
coudan: coudan,
|
|
|
coudan_arr: coudan_arr,
|
|
|
[`info.coudanProduct[${index}].num`]: num
|
|
|
// [`info.coudanProduct[${index}].check`]: check
|
|
|
})
|
|
|
this.get_choudan()
|
|
|
},
|
|
|
// 计算凑单费用
|
|
|
get_choudan() {
|
|
|
let coudan_arr = this.data.coudan_arr
|
|
|
let choudan_money = 0;
|
|
|
let num = 0
|
|
|
for (let obj of coudan_arr) {
|
|
|
console.log(obj)
|
|
|
console.log(obj.price2)
|
|
|
if (obj.price2 != null) {
|
|
|
console.log(111)
|
|
|
choudan_money = (obj.price2 * 100 * obj.num) / 100 + choudan_money
|
|
|
} else {
|
|
|
console.log(222)
|
|
|
choudan_money = (obj.price * 100 * obj.num) / 100 + choudan_money
|
|
|
}
|
|
|
num = num + obj.num
|
|
|
}
|
|
|
|
|
|
this.setData({
|
|
|
choudan_money: choudan_money * 100,
|
|
|
choudanNum: num,
|
|
|
'info.choudan': this.data.info.syjf - choudan_money
|
|
|
// choudan_money: Math.floor(choudan_money* 100) / 100
|
|
|
})
|
|
|
},
|
|
|
show_cover() {
|
|
|
let that = this
|
|
|
if (!that.data.cover_type) {
|
|
|
if (that.data.info.status == 0) {
|
|
|
that.setData({
|
|
|
fail: true
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
if (!that.data.info.address) {
|
|
|
wx.showToast({
|
|
|
title: '请添加地址',
|
|
|
icon: 'none',
|
|
|
duration: 1000
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
that.setData({
|
|
|
cover_type: !this.data.cover_type
|
|
|
})
|
|
|
},
|
|
|
// 去添加地址
|
|
|
add_address() {
|
|
|
wx.navigateTo({
|
|
|
url: '/pages/address/address',
|
|
|
})
|
|
|
},
|
|
|
|
|
|
|
|
|
//选择凑单商品
|
|
|
chooseGoods(e) {
|
|
|
// coudan 凑单商品组成的数组
|
|
|
// coudan_type 凑单的状态 可能废弃
|
|
|
let that = this
|
|
|
let coudan = this.data.coudan ? this.data.coudan : []
|
|
|
let coudan_arr = this.data.coudan_arr ? this.data.coudan_arr : []
|
|
|
let check = e.currentTarget.dataset.check
|
|
|
let num = e.currentTarget.dataset.num
|
|
|
let index = e.currentTarget.dataset.index
|
|
|
let id = e.currentTarget.dataset.id
|
|
|
let price = e.currentTarget.dataset.price;
|
|
|
let price2 = e.currentTarget.dataset.price2;
|
|
|
if (check) {
|
|
|
check = 0
|
|
|
coudan.forEach((item, index) => {
|
|
|
if (item.id == id) {
|
|
|
coudan.splice(index, 1)
|
|
|
coudan_arr.splice(index, 1)
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
|
check = 1
|
|
|
//选中
|
|
|
coudan.push({
|
|
|
id: id,
|
|
|
num: num
|
|
|
})
|
|
|
coudan_arr.push({
|
|
|
id: id,
|
|
|
num: num,
|
|
|
price: Number(price),
|
|
|
price2: Number(price2)
|
|
|
})
|
|
|
}
|
|
|
that.setData({
|
|
|
coudan: coudan,
|
|
|
coudan_arr: coudan_arr,
|
|
|
[`info.coudanProduct[${index}].check`]: check
|
|
|
})
|
|
|
that.get_choudan()
|
|
|
},
|
|
|
|
|
|
//获取页面信息
|
|
|
get_info(type, info, id) {
|
|
|
let that = this
|
|
|
let url = type == 4 ? app.interface.prev_pay : app.interface.now_prev_pay
|
|
|
let params = {
|
|
|
info: info
|
|
|
}
|
|
|
app.post(url, params).then((res) => {
|
|
|
console.log('99999', res, Number(res.msg.total))
|
|
|
res.msg.syjf = res.msg.choudan - res.msg.yunfei
|
|
|
let a = (res.msg.choudan - res.msg.yunfei).toFixed(2)
|
|
|
if (a < 0) {
|
|
|
a = 0
|
|
|
}
|
|
|
res.msg.choudan = a
|
|
|
res.msg.total = Number(res.msg.total * 100)
|
|
|
res.msg.yunfei = Number(res.msg.yunfei * 100)
|
|
|
|
|
|
let total = (res.msg.total + res.msg.yunfei).toFixed("1");
|
|
|
console.log(total)
|
|
|
|
|
|
that.setData({
|
|
|
info: res.msg,
|
|
|
total: total
|
|
|
})
|
|
|
console.log('9988756', that.data.info)
|
|
|
|
|
|
})
|
|
|
},
|
|
|
|
|
|
|
|
|
//获取页面信息
|
|
|
get_youfei(id) {
|
|
|
let that = this
|
|
|
let url = that.data.type == 4 ? app.interface.youfei1 : app.interface.youfei
|
|
|
let params = {
|
|
|
info: that.data.params,
|
|
|
address_id: id
|
|
|
}
|
|
|
app.post(url, params).then((res) => {
|
|
|
that.setData({
|
|
|
"info.yunfei": Number(res.msg.yunfei) * 100
|
|
|
})
|
|
|
})
|
|
|
},
|
|
|
// 支付失败弹窗关闭
|
|
|
payFail() {
|
|
|
this.setData({
|
|
|
fail: false
|
|
|
})
|
|
|
},
|
|
|
// 混合支付
|
|
|
mixedPay() {
|
|
|
let that = this
|
|
|
let url = app.interface.orderMixed
|
|
|
let params = {
|
|
|
order_odd: that.data.orderPayMent,
|
|
|
money: that.data.payMent
|
|
|
}
|
|
|
app.post(url, params).then((res) => {
|
|
|
wx.requestPayment({
|
|
|
timeStamp: res.data.timestamp,
|
|
|
nonceStr: res.data.nonceStr,
|
|
|
package: res.data.package,
|
|
|
signType: 'MD5',
|
|
|
paySign: res.data.paySign,
|
|
|
success(res) {
|
|
|
console.log(res,'支付成功')
|
|
|
that.setData({
|
|
|
fail: false
|
|
|
})
|
|
|
wx.showToast({
|
|
|
title: '支付成功',
|
|
|
})
|
|
|
},
|
|
|
fail(res) {
|
|
|
console.log(res,'支付失败')
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
},
|
|
|
//点击支付
|
|
|
submit() {
|
|
|
let that = this
|
|
|
let list = that.data.info.products
|
|
|
let coudan = that.data.coudan
|
|
|
let info = []
|
|
|
if (that.data.type == 4) {
|
|
|
for (let obj of list) {
|
|
|
info.push({
|
|
|
id: obj.product.id,
|
|
|
num: obj.product.num
|
|
|
})
|
|
|
}
|
|
|
} else {
|
|
|
for (let obj of list) {
|
|
|
info.push({
|
|
|
id: obj.id,
|
|
|
num: obj.num
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
if (coudan && coudan.length > 0) {
|
|
|
info = info.concat(coudan)
|
|
|
}
|
|
|
let url = app.interface.now_add
|
|
|
let params = {
|
|
|
address: that.data.info.address.id,
|
|
|
info: JSON.stringify(info)
|
|
|
}
|
|
|
app.post(url, params).then((res) => {
|
|
|
that.setData({
|
|
|
cover_type: false
|
|
|
})
|
|
|
that.setData({
|
|
|
orderPayMent: res.msg
|
|
|
})
|
|
|
that.order_pay(res.msg)
|
|
|
})
|
|
|
},
|
|
|
|
|
|
//订单支付
|
|
|
order_pay(order_odd) {
|
|
|
let that = this
|
|
|
let url = app.interface.order_pay
|
|
|
let params = {
|
|
|
order_odd: order_odd
|
|
|
}
|
|
|
app.post(url, params).then((res) => {
|
|
|
this.setData({
|
|
|
order: res.msg
|
|
|
})
|
|
|
if (res.msg.message == "支付成功") {
|
|
|
// wx.showToast({
|
|
|
// title: '购买成功',
|
|
|
// icon:'none'
|
|
|
// })
|
|
|
this.setData({
|
|
|
success: true
|
|
|
})
|
|
|
} else if (res.msg.message == "余额不足") {
|
|
|
this.setData({
|
|
|
fail: true
|
|
|
})
|
|
|
let payMents = (that.data.info.total + that.data.info.yunfei) / 100 - that.data.order.syjf
|
|
|
that.setData({
|
|
|
payMent: payMents.toFixed(2)
|
|
|
})
|
|
|
console.log(payMents, 'payMent')
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
/**
|
|
|
* 生命周期函数--监听页面加载
|
|
|
*/
|
|
|
onLoad: function (options) {
|
|
|
console.log(options)
|
|
|
this.setData({
|
|
|
type: options.type,
|
|
|
params: options.info
|
|
|
})
|
|
|
this.get_info(options.type, options.info, options.id)
|
|
|
},
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
|
*/
|
|
|
onReady: function () {
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面显示
|
|
|
*/
|
|
|
onShow: function () {
|
|
|
|
|
|
let pages = getCurrentPages();
|
|
|
|
|
|
let currPage = pages[pages.length - 1]
|
|
|
console.log('887766554', currPage.data.id)
|
|
|
if (currPage.data.id) {
|
|
|
console.log('4778785', this.data.info)
|
|
|
|
|
|
this.setData({
|
|
|
"info.address.address": currPage.data.address,
|
|
|
"info.address.area": currPage.data.area,
|
|
|
"info.address.id": currPage.data.id,
|
|
|
"info.address.tel": currPage.data.tel,
|
|
|
"info.address.name": currPage.data.name
|
|
|
})
|
|
|
console.log(this.data.info)
|
|
|
console.log(currPage.data.address)
|
|
|
this.get_youfei(currPage.data.id)
|
|
|
}
|
|
|
// if (wx.getStorageSync('no_address')) {
|
|
|
// wx.setStorageSync('no_address', false)
|
|
|
// this.setData({
|
|
|
// "info.address": null
|
|
|
// })
|
|
|
// }
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面隐藏
|
|
|
*/
|
|
|
onHide: function () {
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面卸载
|
|
|
*/
|
|
|
onUnload: function () {
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
|
*/
|
|
|
onPullDownRefresh: function () {
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 页面上拉触底事件的处理函数
|
|
|
*/
|
|
|
onReachBottom: function () {
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 用户点击右上角分享
|
|
|
*/
|
|
|
onShareAppMessage: function () {
|
|
|
|
|
|
}
|
|
|
}) |
|
|
\ No newline at end of file |
...
|
...
|
|