You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
432 lines
12 KiB
JavaScript
432 lines
12 KiB
JavaScript
const app = getApp();
|
|
const myOrder = require("../../utils/myOrder.js");
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
nvabarData: {
|
|
showCapsule: 1,
|
|
white: true,
|
|
address: ''
|
|
},
|
|
product: {},
|
|
tempSuit: null,
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
this.data.product = wx.getStorageSync("suitProduct");
|
|
console.log(this.data.product);
|
|
wx.setNavigationBarTitle({
|
|
title: this.data.product.productName,
|
|
})
|
|
console.log(this.data.product);
|
|
this.setData({
|
|
product: this.data.product,
|
|
color: app.globalData.color
|
|
});
|
|
this.handleMake();
|
|
},
|
|
|
|
/**
|
|
* 搭配套餐
|
|
*/
|
|
cy_tapSuitDetail: function (e) {
|
|
var position = e.currentTarget.dataset.position;
|
|
var index = e.currentTarget.dataset.index;
|
|
var suitList = this.data.product.suitList[position];
|
|
for (var item of suitList.list) {
|
|
item.select = false;
|
|
}
|
|
var item = suitList.list[index];
|
|
|
|
item.select = true;
|
|
var product = this.data.product;
|
|
var salePrice = this.cy_getTotalPrice();
|
|
|
|
this.setData({
|
|
product: product,
|
|
salePrice: salePrice
|
|
});
|
|
},
|
|
|
|
handleMake: function () {
|
|
var product = this.data.product;
|
|
|
|
//查看必选做法
|
|
for (var i = 0; i < product.makeList.length; i++) {
|
|
var item = product.makeList[i];
|
|
if (item.list.length >= 1) {
|
|
for (var j = 0; j < item.list.length; j++) {
|
|
var itemitem = item.list[j];
|
|
if (itemitem.isMustMake == 1) {
|
|
item.list[0].checked = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var suitList=product.suitList;
|
|
if(suitList.length>=1){
|
|
for(var i=0;i<suitList.length;i++){
|
|
var suitItem=suitList[i];
|
|
var suitItemList=suitItem.list;
|
|
for(var j=0;j<suitItemList.length;j++){
|
|
var product=suitItemList[j].product;
|
|
var productMakeList=product.makeList;
|
|
for(var k=0;k<productMakeList.length;k++){
|
|
var productMakeListItem=productMakeList[k];
|
|
var productMakeListItemList= productMakeListItem.list;
|
|
for(var h=0;h<productMakeListItemList.length;h++){
|
|
if(productMakeListItemList[h].isMustMake==1){
|
|
productMakeListItemList[0].checked=true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
var salePrice = this.cy_sumSalePrice();
|
|
this.setData({
|
|
salePrice: salePrice,
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 销售价格
|
|
*/
|
|
cy_sumSalePrice: function () {
|
|
var product = this.data.product;
|
|
var salePrice = product.price;
|
|
|
|
for (var i = 0; i < product.suitList.length; i++) {
|
|
var suitMap = product.suitList[i];
|
|
for (var j = 0; j < suitMap.list.length; j++) {
|
|
var suitDetail = suitMap.list[j];
|
|
if (suitDetail.select) {
|
|
salePrice += suitDetail.addPrice;
|
|
}
|
|
}
|
|
}
|
|
|
|
//做法加价
|
|
var selectMakePrice = 0;
|
|
var suitList = product.suitList;
|
|
var addPrice=0;
|
|
if (suitList) {
|
|
if (suitList.length >= 1) {
|
|
for (var i = 0; i < suitList.length; i++) {
|
|
var suitItem = suitList[i];
|
|
if (suitItem.list.length >= 1) {
|
|
for (var j = 0; j < suitItem.list.length; j++) {
|
|
var suitItemList = suitItem.list[j];
|
|
var count=suitItemList.quantity;
|
|
if(suitItemList.select){
|
|
addPrice+=suitItemList.addPrice;
|
|
suitItem.selectName=suitItemList.product.productName;
|
|
suitItem.selectSpecName=suitItemList.product.specName;
|
|
suitItem.quantity=suitItemList.quantity;
|
|
var product=suitItemList.product;
|
|
for(var h=0;h<product.makeList.length;h++){
|
|
var makeList=product.makeList[h].list;
|
|
for(var k=0;k<makeList.length;k++){
|
|
if(makeList[k].checked){
|
|
selectMakePrice = selectMakePrice + makeList[k].addPrice*count;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (selectMakePrice > 0) {
|
|
salePrice = salePrice + selectMakePrice;
|
|
}
|
|
this.setData({addPrice:addPrice})
|
|
|
|
return parseFloat(parseFloat(salePrice).toFixed(2));
|
|
},
|
|
|
|
// 选择做法
|
|
cy_selectMake: function (e) {
|
|
|
|
console.log(this.data.product);
|
|
var index = e.currentTarget.dataset.index;
|
|
var tempSuitList = this.data.product.suitList[index];
|
|
var tempSuit;
|
|
for (var suit of tempSuitList.list) {
|
|
if (suit.select) {
|
|
tempSuit = suit;
|
|
this.data.tempSuit = suit;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (tempSuit.product.makeList.length == 0) {
|
|
wx.showToast({
|
|
title: tempSuit.product.productName + "~~没有做法",
|
|
icon: "none"
|
|
})
|
|
return;
|
|
}
|
|
//查看必选做法
|
|
for (var i = 0; i < tempSuit.product.makeList.length; i++) {
|
|
var item = tempSuit.product.makeList[i];
|
|
if (item.list.length >= 1) {
|
|
for (var j = 0; j < item.list.length; j++) {
|
|
var itemitem = item.list[j];
|
|
if (itemitem.isMustMake == 1) {
|
|
item.list[0].checked = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var idsName = myOrder.cy_getIdsName(tempSuit.product);
|
|
var salePrice = this.cy_getTotalPrice();
|
|
|
|
this.setData({
|
|
isMake: true,
|
|
newSpecPrice: salePrice,
|
|
shopName: tempSuit.product.productName,
|
|
showNum: tempSuit.quantity,
|
|
makeList: tempSuit.product.makeList,
|
|
})
|
|
|
|
},
|
|
|
|
/**
|
|
* 修改做法
|
|
*/
|
|
cy_changeMake: function (e) {
|
|
|
|
var x = e.currentTarget.dataset.x;
|
|
var y = e.currentTarget.dataset.y;
|
|
var tempSuit = this.data.tempSuit;
|
|
|
|
var makeList = tempSuit.product.makeList[x];
|
|
var selectMake = makeList.list[y];
|
|
|
|
|
|
//当前做法多选选择做法的数量
|
|
var currentMultiMark=0;
|
|
if(selectMake.isRadio !=1){
|
|
for (var i = 0; i < makeList.list.length; i++) {
|
|
var make = makeList.list[i];
|
|
if(make.checked){
|
|
currentMultiMark++;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (selectMake.isRadio == 1) { // 做法互斥
|
|
for (var i = 0; i < makeList.list.length; i++) {
|
|
var makeTemp = makeList.list[i];
|
|
if (makeTemp.makeId == selectMake.makeId) {
|
|
if(! makeTemp.checked){
|
|
makeTemp.checked = !makeTemp.checked;
|
|
}
|
|
} else {
|
|
makeTemp.checked = false;
|
|
}
|
|
}
|
|
} else { // 做法多选
|
|
for (var i = 0; i < makeList.list.length; i++) {
|
|
var makeTemp = makeList.list[i];
|
|
if (makeTemp.makeId == selectMake.makeId) {
|
|
if(currentMultiMark>1){
|
|
makeTemp.checked = !makeTemp.checked;
|
|
}else{
|
|
if(! makeTemp.checked){
|
|
makeTemp.checked = !makeTemp.checked;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var salePrice = this.cy_getTotalPrice();
|
|
this.setData({
|
|
newSpecPrice: salePrice,
|
|
makeList: tempSuit.product.makeList,
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 计算合计金额
|
|
*/
|
|
cy_getTotalPrice: function (e) {
|
|
var salePrice = this.cy_sumSalePrice();
|
|
return parseFloat(salePrice.toFixed(2));;
|
|
},
|
|
|
|
/**
|
|
* 确认做法
|
|
*/
|
|
cy_confirm: function (e) {
|
|
console.log(e);
|
|
var salePrice = this.cy_getTotalPrice();
|
|
this.cy_hide();
|
|
this.setData({
|
|
salePrice: salePrice,
|
|
product: this.data.product,
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 加入购物车
|
|
*/
|
|
cy_addCart: function () {
|
|
var product = this.data.product;
|
|
var salePrice = this.cy_sumSalePrice();
|
|
var saleTotalPrice = this.cy_getTotalPrice();
|
|
var tempProduct = JSON.parse(JSON.stringify(product));
|
|
/**修改 套餐做法加价 */
|
|
var addPriceTotal = (saleTotalPrice - salePrice).toFixed(2);
|
|
tempProduct.addPriceTotal = parseFloat(addPriceTotal); // 做法加价
|
|
|
|
//加价之前的原价
|
|
if(this.data.addPrice){
|
|
tempProduct.addPriceTotalConsumer=this.data.addPrice;
|
|
tempProduct.addPriceOldPrice = parseFloat(parseFloat(product.price+this.data.addPrice).toFixed(2));
|
|
}else{
|
|
tempProduct.addPriceOldPrice = product.price;
|
|
}
|
|
|
|
tempProduct.specList[0].price = salePrice;
|
|
tempProduct.specList[0].wprice = salePrice;
|
|
|
|
tempProduct.count = 1;
|
|
tempProduct.isSuit = 2;
|
|
tempProduct.makeList = [];
|
|
tempProduct.itemId = myOrder.getDaySeo(99);
|
|
app.orderTicket.orderList.push(tempProduct);
|
|
|
|
var totalAmount = 0; // 商品的总金额
|
|
for (var i = 0; i < product.suitList.length; i++) {
|
|
var suitList = product.suitList[i];
|
|
for (var detail of suitList.list) {
|
|
detail.isLast = false;
|
|
if (i == product.suitList.length - 1) {
|
|
detail.isLast = true;
|
|
}
|
|
|
|
if (detail.select) {
|
|
var tempSpec = null;
|
|
for (var spec of detail.product.specList) {
|
|
if (detail.specId == spec.specId) {
|
|
tempSpec = spec;
|
|
}
|
|
}
|
|
totalAmount += (tempSpec.price + detail.addPrice) * detail.quantity;
|
|
}
|
|
}
|
|
}
|
|
|
|
totalAmount = parseFloat(totalAmount.toFixed(2)); // 保留两位小数
|
|
var discountTotal = parseFloat((totalAmount - (salePrice * tempProduct.count)).toFixed(2)); // 优惠的总金额
|
|
|
|
var sumMoney = 0; // 优惠券合计 使用减法计算最后一个商品的优惠
|
|
// 套餐包含数量
|
|
for (var suit of product.suitList) {
|
|
for (var detail of suit.list) {
|
|
if (detail.select) {
|
|
var tempSpecList = []; // 商品的规格
|
|
var tempMakeList = []; // 记录商品选中的做法
|
|
|
|
var detailProduct = JSON.parse(JSON.stringify(detail.product));
|
|
|
|
var tempSpec = null;
|
|
for (var spec of detailProduct.specList) { // 遍历商品规格
|
|
if (spec.specId == detailProduct.specId) {
|
|
tempSpec = spec;
|
|
tempSpecList.push(spec);
|
|
}
|
|
}
|
|
|
|
var showName = "";
|
|
for (var makeMap of detailProduct.makeList) { // 遍历商品的做法
|
|
var list = makeMap.list;
|
|
for (var make of list) {
|
|
if (make.checked) {
|
|
console.log(make);
|
|
if (showName == "") {
|
|
showName = showName + make.makeName;
|
|
} else {
|
|
showName = showName + "、" + make.makeName;
|
|
}
|
|
make.count = detail.quantity;
|
|
tempMakeList.push(make);
|
|
}
|
|
}
|
|
}
|
|
|
|
detailProduct.showName = showName;
|
|
detailProduct.specList = tempSpecList;
|
|
detailProduct.makeList = tempMakeList;
|
|
detailProduct.product_info = [];
|
|
detailProduct.count = detail.quantity;
|
|
detailProduct.isSuit = 3;
|
|
|
|
var scale = (detail.addPrice + tempSpec.price) * detail.quantity / totalAmount;
|
|
var discountMoney = (discountTotal * scale).toFixed(2);
|
|
if (discountMoney > 0) {
|
|
var product_info = {};
|
|
product_info.id = "";
|
|
product_info.orderItemId = "";
|
|
product_info.type = 50;
|
|
product_info.info = "套餐优惠";
|
|
|
|
product_info.discountMoney = discountMoney;
|
|
if (detail.isLast) {
|
|
product_info.discountMoney = (discountTotal - sumMoney).toFixed(2);
|
|
}
|
|
detailProduct.product_info.push(product_info); // 套餐优惠分摊
|
|
}
|
|
|
|
sumMoney += parseFloat((discountTotal * scale).toFixed(2));
|
|
detailProduct.parentItemId = tempProduct.itemId;
|
|
|
|
console.log(detailProduct);
|
|
|
|
app.orderTicket.orderList.push(detailProduct);
|
|
}
|
|
}
|
|
}
|
|
|
|
console.error(" app.orderTicket ", app.orderTicket);
|
|
wx.navigateBack({
|
|
|
|
})
|
|
},
|
|
|
|
|
|
/**
|
|
* 关闭做法
|
|
*/
|
|
cy_hide: function () {
|
|
this.setData({
|
|
isMake: false,
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage: function () {
|
|
|
|
}
|
|
}) |