You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hunjianghu/杨盼成/pages/to-pay-order/index.js

269 lines
7.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//index.js
const api = require('../../utils/request.js')
//获取应用实例
var app = getApp()
Page({
data: {
totalScoreToPay: 0,
goodsList:[],
isNeedLogistics:0, // 是否需要物流信息
allGoodsPrice:0,
yunPrice:0,
allGoodsAndYunPrice:0,
goodsJsonStr:"",
orderType:"", //订单类型,购物车下单或立即支付下单,默认是购物车,
pingtuanOpenId:undefined, //拼团的话记录团号
hasNoCoupons: true,
coupons: [],
youhuijine:0, //优惠券金额
curCoupon:null // 当前选择使用的优惠券
},
onShow : function () {
var that = this;
var shopList = [];
//立即购买下单
if ("buyNow"==that.data.orderType){
var buyNowInfoMem = wx.getStorageSync('buyNowInfo');
that.data.kjId = buyNowInfoMem.kjId;
if (buyNowInfoMem && buyNowInfoMem.shopList) {
shopList = buyNowInfoMem.shopList
}
}else{
//购物车下单
var shopCarInfoMem = wx.getStorageSync('shopCarInfo');
that.data.kjId = shopCarInfoMem.kjId;
if (shopCarInfoMem && shopCarInfoMem.shopList) {
// shopList = shopCarInfoMem.shopList
shopList = shopCarInfoMem.shopList.filter(entity => {
return entity.active;
});
}
}
that.setData({
goodsList: shopList,
});
that.initShippingAddress();
},
onLoad: function (e) {
this.setData({
isNeedLogistics: 1,
orderType: e.orderType,
pingtuanOpenId: e.pingtuanOpenId
});
},
getDistrictId : function (obj, aaa){
if (!obj) {
return "";
}
if (!aaa) {
return "";
}
return aaa;
},
createOrder:function (e) {
wx.showLoading();
var that = this;
var loginToken = wx.getStorageSync('token') // 用户登录 token
var remark = ""; // 备注信息
if (e) {
remark = e.detail.value.remark; // 备注信息
}
var postData = {
token: loginToken,
goodsJsonStr: that.data.goodsJsonStr,
remark: remark
};
if (that.data.kjId) {
postData.kjid = that.data.kjId
}
if (that.data.pingtuanOpenId) {
postData.pingtuanOpenId = that.data.pingtuanOpenId
}
if (that.data.isNeedLogistics > 0) {
if (!that.data.curAddressData) {
wx.hideLoading();
wx.showModal({
title: '错误',
content: '请先设置您的收货地址!',
showCancel: false
})
return;
}
postData.provinceId = that.data.curAddressData.provinceId;
postData.cityId = that.data.curAddressData.cityId;
if (that.data.curAddressData.districtId) {
postData.districtId = that.data.curAddressData.districtId;
}
postData.address = that.data.curAddressData.address;
postData.linkMan = that.data.curAddressData.linkMan;
postData.mobile = that.data.curAddressData.mobile;
postData.code = that.data.curAddressData.code;
}
if (that.data.curCoupon) {
postData.couponId = that.data.curCoupon.id;
}
if (!e) {
postData.calculate = "true";
}
api.fetchRequest('/order/create', postData, 'POST', 0, {
'content-type': 'application/x-www-form-urlencoded'
}).then(function (res) {
if (res.data.code != 0) {
wx.showModal({
title: '错误',
content: res.data.msg,
showCancel: false
})
return;
}
if (e && "buyNow" != that.data.orderType) {
// 清空购物车数据
wx.removeStorageSync('shopCarInfo');
}
if (!e) {
that.setData({
totalScoreToPay: res.data.data.score,
isNeedLogistics: res.data.data.isNeedLogistics,
allGoodsPrice: res.data.data.amountTotle,
allGoodsAndYunPrice: res.data.data.amountLogistics + res.data.data.amountTotle,
yunPrice: res.data.data.amountLogistics
});
that.getMyCoupons();
return;
}
// 配置模板消息推送
var postJsonString = {};
postJsonString.keyword1 = { value: res.data.data.dateAdd, color: '#173177' }
postJsonString.keyword2 = { value: res.data.data.amountReal + '元', color: '#173177' }
postJsonString.keyword3 = { value: res.data.data.orderNumber, color: '#173177' }
postJsonString.keyword4 = { value: '订单已关闭', color: '#173177' }
postJsonString.keyword5 = { value: '您可以重新下单请在30分钟内完成支付', color: '#173177' }
app.sendTempleMsg(res.data.data.id, -1,
'mGVFc31MYNMoR9Z-A9yeVVYLIVGphUVcK2-S2UdZHmg', e.detail.formId,
'pages/index/index', JSON.stringify(postJsonString));
postJsonString = {};
postJsonString.keyword1 = { value: '您的订单已发货,请注意查收', color: '#173177' }
postJsonString.keyword2 = { value: res.data.data.orderNumber, color: '#173177' }
postJsonString.keyword3 = { value: res.data.data.dateAdd, color: '#173177' }
app.sendTempleMsg(res.data.data.id, 2,
'Arm2aS1rsklRuJSrfz-QVoyUzLVmU2vEMn_HgMxuegw', e.detail.formId,
'pages/order-details/index?id=' + res.data.data.id, JSON.stringify(postJsonString));
// 下单成功,跳转到订单管理界面
wx.redirectTo({
url: "/pages/order-list/index"
});
}).finally(function() {
wx.hideLoading();
})
},
initShippingAddress: function () {
var that = this;
api.fetchRequest('/user/shipping-address/default', {
token: wx.getStorageSync('token')
}).then(function (res) {
if (res.data.code == 0) {
that.setData({
curAddressData: res.data.data
});
} else {
that.setData({
curAddressData: null
});
}
that.processYunfei();
})
},
processYunfei: function () {
var that = this;
var goodsList = this.data.goodsList;
var goodsJsonStr = "[";
var isNeedLogistics = 0;
var allGoodsPrice = 0;
for (let i = 0; i < goodsList.length; i++) {
let carShopBean = goodsList[i];
if (carShopBean.logistics) {
isNeedLogistics = 1;
}
allGoodsPrice += carShopBean.price * carShopBean.number;
var goodsJsonStrTmp = '';
if (i > 0) {
goodsJsonStrTmp = ",";
}
let inviter_id = 0;
let inviter_id_storge = wx.getStorageSync('inviter_id_' + carShopBean.goodsId);
if (inviter_id_storge) {
inviter_id = inviter_id_storge;
}
goodsJsonStrTmp += '{"goodsId":' + carShopBean.goodsId + ',"number":' + carShopBean.number + ',"propertyChildIds":"' + carShopBean.propertyChildIds + '","logisticsType":0, "inviter_id":' + inviter_id +'}';
goodsJsonStr += goodsJsonStrTmp;
}
goodsJsonStr += "]";
//console.log(goodsJsonStr);
that.setData({
isNeedLogistics: isNeedLogistics,
goodsJsonStr: goodsJsonStr
});
that.createOrder();
},
addAddress: function () {
wx.navigateTo({
url:"/pages/address-add/index"
})
},
selectAddress: function () {
wx.navigateTo({
url:"/pages/select-address/index"
})
},
getMyCoupons: function () {
var that = this;
api.fetchRequest('/discounts/my', {
token: wx.getStorageSync('token'),
status: 0
}).then(function (res) {
if (res.data.code == 0) {
var coupons = res.data.data.filter(entity => {
return entity.moneyHreshold <= that.data.allGoodsAndYunPrice;
});
if (coupons.length > 0) {
that.setData({
hasNoCoupons: false,
coupons: coupons
});
}
}
})
},
bindChangeCoupon: function (e) {
const selIndex = e.detail.value[0] - 1;
if (selIndex == -1) {
this.setData({
youhuijine: 0,
curCoupon:null
});
return;
}
//console.log("selIndex:" + selIndex);
this.setData({
youhuijine: this.data.coupons[selIndex].money,
curCoupon: this.data.coupons[selIndex]
});
}
})