|
|
|
// pack-cookbook/pages/success_new.js
|
|
|
|
import App from '../../utils/api';
|
|
|
|
import util from '../../utils/util';
|
|
|
|
import RS from '../../utils/reserveStatus'
|
|
|
|
import TP from '../../utils/tpls';
|
|
|
|
Page({
|
|
|
|
/**
|
|
|
|
* 页面的初始数据
|
|
...
|
...
|
@@ -19,25 +21,28 @@ Page({ |
|
|
|
marketing: {},
|
|
|
|
recharge_data: {},
|
|
|
|
coupon_data: {},
|
|
|
|
dataStr: Date.now() * 1 / 1000,
|
|
|
|
rid: '',
|
|
|
|
oid: '',
|
|
|
|
sellerDate: '',
|
|
|
|
region: '',
|
|
|
|
tableNum: '',
|
|
|
|
soltName: '',
|
|
|
|
tpls: [],
|
|
|
|
current: 0,
|
|
|
|
seller: {},
|
|
|
|
options: {},
|
|
|
|
dataStr: Date.now() * 1 / 1000,
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 生命周期函数--监听页面加载
|
|
|
|
*/
|
|
|
|
onLoad(options) {
|
|
|
|
let obj = util.determine(options.cookbookObj);
|
|
|
|
console.log('options', {...obj});
|
|
|
|
this.setData({
|
|
|
|
options: obj,
|
|
|
|
tpls: [TP.tpls(1)],
|
|
|
|
})
|
|
|
|
this.getCheckCookList(obj);
|
|
|
|
this.getSellerTemplateConfFun()
|
|
|
|
console.log('options', {
|
|
|
|
...obj
|
|
|
|
});
|
|
|
|
this.getCheckCookList()
|
|
|
|
this.getDetail()
|
|
|
|
},
|
|
|
|
// 过滤数据
|
|
|
|
formatCookList(list) {
|
|
...
|
...
|
@@ -85,9 +90,6 @@ Page({ |
|
|
|
let assortArr = [];
|
|
|
|
let check1 = '';
|
|
|
|
let check2 = '';
|
|
|
|
let that = this;
|
|
|
|
let complete = false
|
|
|
|
let complete1 = false
|
|
|
|
if (sortArr.length > 0) {
|
|
|
|
has10CaiOpen = list[0].status == 1;
|
|
|
|
sortArr.forEach(function (cate, i) {
|
|
...
|
...
|
@@ -133,9 +135,6 @@ Page({ |
|
|
|
}
|
|
|
|
cook.item_clear_num = item_clear_num;
|
|
|
|
cook.index = n; //分类下菜品的下标
|
|
|
|
if (!cook.order_xx || cook.order_xx.length == 0) {
|
|
|
|
cook.norms = []; //做法规格
|
|
|
|
}
|
|
|
|
cook.type = '1';
|
|
|
|
let cook_style = cook.cook_style ? util.determine(cook.cook_style) : {
|
|
|
|
image_type: '1',
|
|
...
|
...
|
@@ -164,124 +163,214 @@ Page({ |
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
this.setData({
|
|
|
|
check1,
|
|
|
|
check2,
|
|
|
|
assortArr
|
|
|
|
})
|
|
|
|
return flist;
|
|
|
|
|
|
|
|
},
|
|
|
|
// 获取点菜列表
|
|
|
|
getCheckCookList(obj) {
|
|
|
|
let param = {
|
|
|
|
sellerid: obj.sid,
|
|
|
|
identity: obj.identity,
|
|
|
|
orderid: obj.oid,
|
|
|
|
status: '0,1',
|
|
|
|
};
|
|
|
|
let probablyPrice = 0;
|
|
|
|
let vipProbablyPrice = 0;
|
|
|
|
App.Cookbook.GetCookbookByClass(param).then(json => {
|
|
|
|
let cookbooklist = this.formatCookList(json.data[0].list)
|
|
|
|
let newArr = JSON.parse(JSON.stringify(cookbooklist))
|
|
|
|
let num = 0
|
|
|
|
for (let i = 0; i < newArr.length; i++) {
|
|
|
|
if (newArr[i].cookbooklist.length == 0) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
for (let j = 0; j < newArr[i].cookbooklist[0].length; j++) {
|
|
|
|
let cook_style = newArr[i].cookbooklist[0][j].cook_style
|
|
|
|
if (cook_style.image_type == 2) {
|
|
|
|
let cookbooklist = JSON.parse(JSON.stringify(flist))
|
|
|
|
let newArr = JSON.parse(JSON.stringify(cookbooklist))
|
|
|
|
let num = 0
|
|
|
|
newArr.forEach((i, u) => {
|
|
|
|
if (i.cookbooklist.length != 0) {
|
|
|
|
i.cookbooklist[0].forEach(j => {
|
|
|
|
let cook_style = j.cook_style ? j.cook_style : j.image_type
|
|
|
|
if (cook_style && cook_style.image_type == 2) {
|
|
|
|
num++
|
|
|
|
} else {
|
|
|
|
if (num % 2 != 0) {
|
|
|
|
let k = cookbooklist[i].cookbooklist[0].findIndex((item) => {
|
|
|
|
return newArr[i].cookbooklist[0][j].id == item.id
|
|
|
|
let k = cookbooklist[u].cookbooklist[0].findIndex((item) => {
|
|
|
|
return j.id == item.id
|
|
|
|
})
|
|
|
|
if (k != -1) {
|
|
|
|
let temp = {
|
|
|
|
boderNone: true,
|
|
|
|
image_type: '2',
|
|
|
|
}
|
|
|
|
cookbooklist[i].cookbooklist[0].splice(k, 0, temp)
|
|
|
|
cookbooklist[u].cookbooklist[0].splice(k, 0, temp)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
num = 0
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
cookbooklist.forEach(item => {
|
|
|
|
item.normsLen = 0
|
|
|
|
item.cookbooklist[0].forEach((cooks, idx) => {
|
|
|
|
if (cooks.order_xx && cooks.order_xx.length > 0) {
|
|
|
|
let arr = cooks.order_xx
|
|
|
|
let result = arr.reduce((obj, item) => {
|
|
|
|
let find = obj.find(i => (i.practiceid === item.practiceid && i.specid === item.specid));
|
|
|
|
let _d = {
|
|
|
|
...item,
|
|
|
|
count: 1
|
|
|
|
};
|
|
|
|
find ? find.count++ : obj.push(_d);
|
|
|
|
return obj;
|
|
|
|
}, []);
|
|
|
|
cooks.norms = result
|
|
|
|
cooks.norms.forEach(n => {
|
|
|
|
let obj = cooks.specArr.filter(i => {
|
|
|
|
return i.id == n.specid
|
|
|
|
})
|
|
|
|
n.price = (obj[0] && obj[0].price) ? obj[0].price : cooks.price;
|
|
|
|
n.member_price = (obj[0] && obj[0].member_price) ? obj[0].member_price : cooks.member_price;
|
|
|
|
n.id = cooks.id;
|
|
|
|
n.check2 = cooks.check2;
|
|
|
|
n.cookName = cooks.name;
|
|
|
|
n.check1 = cooks.check1;
|
|
|
|
let price = n.count * 1 * (n.price * 1);
|
|
|
|
let vipPrice = n.count * 1 * (n.member_price * 1);
|
|
|
|
probablyPrice += price;
|
|
|
|
vipProbablyPrice += vipPrice;
|
|
|
|
})
|
|
|
|
this.getCookNormsList(cookbooklist)
|
|
|
|
flist = cookbooklist;
|
|
|
|
this.setData({
|
|
|
|
check1,
|
|
|
|
check2,
|
|
|
|
assortArr
|
|
|
|
})
|
|
|
|
return flist;
|
|
|
|
},
|
|
|
|
// 加减处理已点菜的数据
|
|
|
|
getCookNormsList(cookbooklist) {
|
|
|
|
let probablyPrice = 0;
|
|
|
|
let vipProbablyPrice = 0;
|
|
|
|
cookbooklist.forEach(i => {
|
|
|
|
i.normsLen = 0
|
|
|
|
i.cookbooklist[0].forEach(j => {
|
|
|
|
if (j.order_xx && j.order_xx.length > 0) {
|
|
|
|
let arr = j.order_xx;
|
|
|
|
let result = arr.reduce((obj, item) => {
|
|
|
|
let find = obj.find(i => (i.practiceid === item.practiceid && i.specid === item.specid));
|
|
|
|
let _d = {
|
|
|
|
...item,
|
|
|
|
count: 1
|
|
|
|
};
|
|
|
|
find ? find.count++ : obj.push(_d);
|
|
|
|
return obj;
|
|
|
|
}, []);
|
|
|
|
result = result.sort((obj1, obj2) => util.objCompare(obj1, obj2, 'practiceid'))
|
|
|
|
j.norms = result.sort((obj1, obj2) => util.objCompare(obj1, obj2, 'specid'))
|
|
|
|
j.norms.forEach(n => {
|
|
|
|
n.id = j.id;
|
|
|
|
n.check2 = j.check2;
|
|
|
|
n.cookName = j.name;
|
|
|
|
n.check1 = j.check1;
|
|
|
|
let list = j.specArr.filter(i => {
|
|
|
|
return i.id == n.specid
|
|
|
|
})
|
|
|
|
item.is_show = true
|
|
|
|
item.normsLen += cooks.norms.length
|
|
|
|
} else {
|
|
|
|
cooks.norms = []
|
|
|
|
}
|
|
|
|
})
|
|
|
|
n.price = (list[0] && list[0].price) ? list[0].price : j.price;
|
|
|
|
n.member_price = (list[0] && list[0].member_price) ? list[0].member_price : j.member_price;
|
|
|
|
let price = n.count * 1 * (n.price * 1);
|
|
|
|
let vipPrice = n.count * 1 * (n.member_price * 1);
|
|
|
|
probablyPrice += price;
|
|
|
|
vipProbablyPrice += vipPrice;
|
|
|
|
})
|
|
|
|
i.normsLen += j.norms.length
|
|
|
|
i.is_show = true
|
|
|
|
} else {
|
|
|
|
j.norms = []
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
console.log(cookbooklist);
|
|
|
|
this.setData({
|
|
|
|
noData: true,
|
|
|
|
probablyPrice,
|
|
|
|
vipProbablyPrice
|
|
|
|
})
|
|
|
|
return cookbooklist
|
|
|
|
},
|
|
|
|
// 获取点菜列表
|
|
|
|
getCheckCookList() {
|
|
|
|
let param = {
|
|
|
|
sellerid: this.data.options.sid,
|
|
|
|
identity: '1',
|
|
|
|
orderid: this.data.options.oid,
|
|
|
|
status: '0,1',
|
|
|
|
};
|
|
|
|
App.Cookbook.GetCookbookByClass(param).then(json => {
|
|
|
|
let cookbooklist = this.formatCookList(json.data[0].list)
|
|
|
|
this.setData({
|
|
|
|
cookbooklist
|
|
|
|
})
|
|
|
|
})
|
|
|
|
this.GetDzSellerConfFun()
|
|
|
|
},
|
|
|
|
// 获取主题色
|
|
|
|
GetDzSellerConfFun() {
|
|
|
|
App.Seller.GetDzSellerConf({
|
|
|
|
sid: this.data.options.sid
|
|
|
|
}).then(res => {
|
|
|
|
let themeColor, textColor, navColor;
|
|
|
|
if (res.data.cook_style) {
|
|
|
|
let style = util.determine(res.data.cook_style)
|
|
|
|
if (style && style.red && style.green && style.blue && style.alpha) {
|
|
|
|
themeColor = style.red + ',' + style.green + ',' + style.blue + ',' + Math.floor(style.alpha)
|
|
|
|
} else {
|
|
|
|
themeColor = '77,78,80,1'; //未设置 为灰色
|
|
|
|
}
|
|
|
|
if (themeColor == '251,246,241,1') {
|
|
|
|
textColor = '81,81,81,1'
|
|
|
|
navColor = "81,81,81,1"
|
|
|
|
} else {
|
|
|
|
navColor = "255,255,255,1"
|
|
|
|
textColor = '251,246,241,1'
|
|
|
|
}
|
|
|
|
this.setData({
|
|
|
|
themeColor,
|
|
|
|
textColor,
|
|
|
|
navColor
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}).catch(res => {
|
|
|
|
themeColor = '77,78,80,1';
|
|
|
|
navColor = "255,255,255,1"
|
|
|
|
this.setData({
|
|
|
|
cookbooklist,
|
|
|
|
noData: true,
|
|
|
|
probablyPrice,
|
|
|
|
vipProbablyPrice
|
|
|
|
themeColor,
|
|
|
|
navColor
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 菜品更换
|
|
|
|
continueOrdering() {
|
|
|
|
console.log({...this.data.options});
|
|
|
|
wx.reLaunch({
|
|
|
|
url: `/pack-cookbook/pages/index_new?rid=${this.data.options.rid}&sid=${this.data.options.sid}&oid=${this.data.options.oid}&sellerName=${this.data.options.sellerName}&identity=1`,
|
|
|
|
wx.showToast({
|
|
|
|
title: '您的订单已经下达给商家,如果需要改菜需和商家确认,以免产生误解。',
|
|
|
|
icon: 'none',
|
|
|
|
duration: 3000
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 点击了解更多会员优惠政策
|
|
|
|
gotoFavourableList() {
|
|
|
|
let url = util.http_build_query({
|
|
|
|
sellerName: this.data.sellerName,
|
|
|
|
sellerid: this.data.sid,
|
|
|
|
oid: this.data.oid,
|
|
|
|
sellerName: this.data.options.sellerName,
|
|
|
|
sellerid: this.data.options.sid,
|
|
|
|
oid: this.data.options.oid,
|
|
|
|
rid: this.data.options.rid,
|
|
|
|
types: '2',
|
|
|
|
}, '/pack-cookbook/pages/favourableList')
|
|
|
|
wx.navigateTo({
|
|
|
|
url
|
|
|
|
})
|
|
|
|
},
|
|
|
|
getDetail() {
|
|
|
|
App.Reserve.Detail({
|
|
|
|
openid: getApp().openid,
|
|
|
|
rid: this.data.options.rid
|
|
|
|
}).then(res => {
|
|
|
|
let tables = [], //桌子信息
|
|
|
|
regions = [], //区域名称
|
|
|
|
tableNum = 0;
|
|
|
|
res.data.tables.forEach(t => {
|
|
|
|
tables.push(t.name);
|
|
|
|
tableNum += t.table_pnum * 1
|
|
|
|
if (regions.indexOf('t.rname') == -1) {
|
|
|
|
regions.push(t.rname);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
let reserev = RS.reserve(res.data)
|
|
|
|
let dateSmart;
|
|
|
|
if (res.data.type == 1) {
|
|
|
|
dateSmart = util.unixtoTime(reserev.ddate, this.data.tpls[this.data.current].timeStrSmart[0])
|
|
|
|
if (res.data.is_set_ddate == 1) {
|
|
|
|
dateSmart += ' ' + util.unixtoTime(reserev.ddate, this.data.tpls[this.data.current].timeStrSmart[1])
|
|
|
|
} else {
|
|
|
|
dateSmart += ' ' + reserev.soltName
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
dateSmart = util.unixtoTime(reserev.ddate, this.data.tpls[this.data.current].timeStr)
|
|
|
|
}
|
|
|
|
this.setData({
|
|
|
|
seller: {
|
|
|
|
soltName: reserev.soltName,
|
|
|
|
date: dateSmart,
|
|
|
|
room: tables.join('、'),
|
|
|
|
region: regions.join('、'),
|
|
|
|
tableNum,
|
|
|
|
}
|
|
|
|
})
|
|
|
|
setTimeout(() => {
|
|
|
|
this.getSellerTemplateConfFun(reserev.sid);
|
|
|
|
}, 0);
|
|
|
|
}).catch(res => {
|
|
|
|
console.log(res, '详情请求失败');
|
|
|
|
})
|
|
|
|
},
|
|
|
|
getSellerTemplateConfFun() {
|
|
|
|
App.Seller.GetSellerTemplateConf({
|
|
|
|
sid: this.data.sid
|
|
|
|
sid: this.data.options.sid
|
|
|
|
}).then(res => {
|
|
|
|
let data = res.data
|
|
|
|
let marketing, coupon_data, priceInfo, scoreInfo, recharge_list, stringifyUse;
|
|
|
|
marketing = data.marketing ? JSON.parse(data.marketing) : '';
|
|
|
|
marketing = util.determine(data.marketing);
|
|
|
|
console.log('marketing', marketing);
|
|
|
|
if (marketing.coupon_data) {
|
|
|
|
coupon_data = marketing.coupon_data;
|
|
...
|
...
|
@@ -327,16 +416,14 @@ Page({ |
|
|
|
* 用户点击右上角分享
|
|
|
|
*/
|
|
|
|
onShareAppMessage() {
|
|
|
|
let options = {
|
|
|
|
sid: this.data.sid,
|
|
|
|
rid: this.data.rid,
|
|
|
|
oid: this.data.oid,
|
|
|
|
identity: '1',
|
|
|
|
hasOnlyShow: '1'
|
|
|
|
let cookbookObj = {
|
|
|
|
...this.data.options,
|
|
|
|
hasOnlyShow: 1
|
|
|
|
};
|
|
|
|
delete cookbookObj.hasSuccess
|
|
|
|
return {
|
|
|
|
title: '菜品已点好,快来看看都点了什么~',
|
|
|
|
path: util.http_build_query(options, '/pack-cookbook/pages/success_new'),
|
|
|
|
path: `/pack-cookbook/pages/success_new?cookbookObj=${JSON.stringify(cookbookObj)}`,
|
|
|
|
imageUrl: 'http://nosqn.colorcun.com/reserve/images/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_201911151148571.jpg',
|
|
|
|
}
|
|
|
|
},
|
...
|
...
|
|