|
...
|
...
|
@@ -7,65 +7,65 @@ import RS from '../../utils/reserveStatus' |
|
|
|
var plugin = requirePlugin("WechatSI");
|
|
|
|
import canvas from "../../pages/customer/canvas"
|
|
|
|
Page({
|
|
|
|
/**
|
|
|
|
* 页面的初始数据
|
|
|
|
*/
|
|
|
|
data: {
|
|
|
|
/**
|
|
|
|
* 页面的初始数据
|
|
|
|
*/
|
|
|
|
data: {
|
|
|
|
show_white:false,
|
|
|
|
options: {
|
|
|
|
tplid: ''
|
|
|
|
},
|
|
|
|
tableNum: 0,
|
|
|
|
detail: {},
|
|
|
|
staffinfo: {},
|
|
|
|
chef: {},
|
|
|
|
marketing: {},
|
|
|
|
home: {},
|
|
|
|
reserve: {},
|
|
|
|
signboard: {},
|
|
|
|
store: {},
|
|
|
|
recharge_data: {},
|
|
|
|
coupon_dataList: [],
|
|
|
|
current: 0,
|
|
|
|
seller: {
|
|
|
|
name: '',
|
|
|
|
tablesText: '',
|
|
|
|
date: '',
|
|
|
|
addr: ''
|
|
|
|
},
|
|
|
|
priceInfo: '',
|
|
|
|
scoreInfo: '',
|
|
|
|
discount: '',
|
|
|
|
certificate: '',
|
|
|
|
dataStr: Date.now() * 1 / 1000,
|
|
|
|
swich_phone: '0',
|
|
|
|
is_comments: '0',
|
|
|
|
is_user_comments: false,
|
|
|
|
tableinfo: [],
|
|
|
|
roomimage: [],
|
|
|
|
StyleType: '',
|
|
|
|
showMoreTip: true,
|
|
|
|
settingUrl: '',
|
|
|
|
inviteImgUrl: '',
|
|
|
|
themeColor: '',
|
|
|
|
screenHeight: '',
|
|
|
|
hasValueOrder: false, //商家是否开通提前点餐功能
|
|
|
|
hasValueCertificate: false, //商家是否开通优惠券功能
|
|
|
|
hasValueRecharge: false, //商家是否开通充值功能
|
|
|
|
hasValueBroadcast: false, //商家是否能播报,只有极速版不能播报
|
|
|
|
_attentionAnim: {},
|
|
|
|
isPlay: '1',
|
|
|
|
titleType: '', //标题样式
|
|
|
|
num1: [1, 2, 3, 4, 5, 6, 7, 8],
|
|
|
|
num2: [8, 7, 6, 5, 4, 3, 2, 1],
|
|
|
|
titleType: '', //标题样式
|
|
|
|
paymentStatus: '', //定金支付状态 1支付 0未支付
|
|
|
|
reserveData: {}, //自定义图文数据
|
|
|
|
toastBool: false, //支付定金提示框
|
|
|
|
toastText: '', //支付定金提示文字
|
|
|
|
paymentId: '', //定金id
|
|
|
|
wxml: null,
|
|
|
|
imgSrc: '', //canvas图片地址
|
|
|
|
options: {
|
|
|
|
tplid: ''
|
|
|
|
},
|
|
|
|
tableNum: 0,
|
|
|
|
detail: {},
|
|
|
|
staffinfo: {},
|
|
|
|
chef: {},
|
|
|
|
marketing: {},
|
|
|
|
home: {},
|
|
|
|
reserve: {},
|
|
|
|
signboard: {},
|
|
|
|
store: {},
|
|
|
|
recharge_data: {},
|
|
|
|
coupon_dataList: [],
|
|
|
|
current: 0,
|
|
|
|
seller: {
|
|
|
|
name: '',
|
|
|
|
tablesText: '',
|
|
|
|
date: '',
|
|
|
|
addr: ''
|
|
|
|
},
|
|
|
|
priceInfo: '',
|
|
|
|
scoreInfo: '',
|
|
|
|
discount: '',
|
|
|
|
certificate: '',
|
|
|
|
dataStr: Date.now() * 1 / 1000,
|
|
|
|
swich_phone: '0',
|
|
|
|
is_comments: '0',
|
|
|
|
is_user_comments: false,
|
|
|
|
tableinfo: [],
|
|
|
|
roomimage: [],
|
|
|
|
StyleType: '',
|
|
|
|
showMoreTip: true,
|
|
|
|
settingUrl: '',
|
|
|
|
inviteImgUrl: '',
|
|
|
|
themeColor: '',
|
|
|
|
screenHeight: '',
|
|
|
|
hasValueOrder: false, //商家是否开通提前点餐功能
|
|
|
|
hasValueCertificate: false, //商家是否开通优惠券功能
|
|
|
|
hasValueRecharge: false, //商家是否开通充值功能
|
|
|
|
hasValueBroadcast: false, //商家是否能播报,只有极速版不能播报
|
|
|
|
_attentionAnim: {},
|
|
|
|
isPlay: '1',
|
|
|
|
titleType: '', //标题样式
|
|
|
|
num1: [1, 2, 3, 4, 5, 6, 7, 8],
|
|
|
|
num2: [8, 7, 6, 5, 4, 3, 2, 1],
|
|
|
|
titleType: '', //标题样式
|
|
|
|
paymentStatus: '', //定金支付状态 1支付 0未支付
|
|
|
|
reserveData: {}, //自定义图文数据
|
|
|
|
toastBool: false, //支付定金提示框
|
|
|
|
toastText: '', //支付定金提示文字
|
|
|
|
paymentId: '', //定金id
|
|
|
|
wxml: null,
|
|
|
|
imgSrc: '', //canvas图片地址
|
|
|
|
colors:'',//导航栏颜色
|
|
|
|
couponData: '', //评价赠送优惠券数据
|
|
|
|
timeList: [],
|
|
...
|
...
|
@@ -74,42 +74,45 @@ Page({ |
|
|
|
isMoreBtn:'',//再次预订按钮
|
|
|
|
isPaymenBtn:'',//支付定金按钮
|
|
|
|
isShareItem:'',//转发客人按钮
|
|
|
|
},
|
|
|
|
tablestr: '',
|
|
|
|
urlsValue: [],
|
|
|
|
screenHeight: '',
|
|
|
|
attentionAnim: {},
|
|
|
|
audioCtx: '', //播报
|
|
|
|
timers: null, // 动画定时器
|
|
|
|
couponArr: [],//待领取的优惠券列表
|
|
|
|
},
|
|
|
|
tablestr: '',
|
|
|
|
urlsValue: [],
|
|
|
|
screenHeight: '',
|
|
|
|
attentionAnim: {},
|
|
|
|
audioCtx: '', //播报
|
|
|
|
timers: null, // 动画定时器
|
|
|
|
n: 0,
|
|
|
|
modal:'',
|
|
|
|
/**
|
|
|
|
* 生命周期函数--监听页面加载
|
|
|
|
*/
|
|
|
|
onLoad(options) {
|
|
|
|
this.id = options.id
|
|
|
|
let param = {
|
|
|
|
options: options,
|
|
|
|
hasOwner: options.hasSellerShare == 1, //是否为发起人
|
|
|
|
}
|
|
|
|
param.tpls = [TP.tpls(options.tplid)]
|
|
|
|
console.log(param);
|
|
|
|
console.log(options);
|
|
|
|
this.setData(param)
|
|
|
|
mta.Page.init({
|
|
|
|
"appID": "500667280",
|
|
|
|
"eventID": "500667287",
|
|
|
|
"statPullDownFresh": true,
|
|
|
|
"statShareApp": true,
|
|
|
|
"statReachBottom": true,
|
|
|
|
"lauchOpts": options, //渠道分析
|
|
|
|
});
|
|
|
|
const systemInfo = wx.getSystemInfoSync();
|
|
|
|
couponModal: '',
|
|
|
|
/**
|
|
|
|
* 生命周期函数--监听页面加载
|
|
|
|
*/
|
|
|
|
onLoad(options) {
|
|
|
|
this.id = options.id
|
|
|
|
let param = {
|
|
|
|
options: options,
|
|
|
|
hasOwner: options.hasSellerShare == 1, //是否为发起人
|
|
|
|
}
|
|
|
|
param.tpls = [TP.tpls(options.tplid)]
|
|
|
|
console.log(param);
|
|
|
|
console.log(options);
|
|
|
|
this.setData(param)
|
|
|
|
mta.Page.init({
|
|
|
|
"appID": "500667280",
|
|
|
|
"eventID": "500667287",
|
|
|
|
"statPullDownFresh": true,
|
|
|
|
"statShareApp": true,
|
|
|
|
"statReachBottom": true,
|
|
|
|
"lauchOpts": options, //渠道分析
|
|
|
|
});
|
|
|
|
const systemInfo = wx.getSystemInfoSync();
|
|
|
|
this.screenHeight = systemInfo.windowHeight; // 获取屏幕高度
|
|
|
|
this.modal = this.selectComponent("#payModal"); //通过给组件所起的id调用组件
|
|
|
|
wx.onUserCaptureScreen((res)=> {
|
|
|
|
this.modal.showModal()
|
|
|
|
})
|
|
|
|
this.couponModal = this.selectComponent("#couponModal");
|
|
|
|
},
|
|
|
|
// 打开截屏弹框
|
|
|
|
showModal() {
|
|
...
|
...
|
@@ -119,8 +122,12 @@ Page({ |
|
|
|
closeModal() {
|
|
|
|
this.modal.closeModal()
|
|
|
|
},
|
|
|
|
// 页面滚动事件
|
|
|
|
onPageScroll: function (event) {
|
|
|
|
// 关闭优惠券弹框
|
|
|
|
closeCouponModal() {
|
|
|
|
this.couponModal.closeModal()
|
|
|
|
},
|
|
|
|
// 页面滚动事件
|
|
|
|
onPageScroll: function (event) {
|
|
|
|
if(event.scrollTop>150){ //当页面滚动到某个位置时(这里设置为50),将导航栏背景颜色设置为白色
|
|
|
|
this.setData({
|
|
|
|
show_white:true
|
|
...
|
...
|
@@ -130,411 +137,412 @@ Page({ |
|
|
|
show_white:false
|
|
|
|
})
|
|
|
|
}
|
|
|
|
const scrollTop = event.scrollTop * 1 + this.screenHeight - 80; // 获取滚动的距离
|
|
|
|
if (scrollTop < this.screenHeight) {
|
|
|
|
this.setData({
|
|
|
|
showMoreTip: true
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
this.setData({
|
|
|
|
showMoreTip: false
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 点击了解更多会员优惠政策
|
|
|
|
gotoFavourableList() {
|
|
|
|
let url = util.http_build_query({
|
|
|
|
sellerName: this.data.seller.name,
|
|
|
|
sellerid: this.data.seller.sid,
|
|
|
|
oid: this.data.detail.id,
|
|
|
|
types: '1'
|
|
|
|
}, '/pack-cookbook/pages/favourableList')
|
|
|
|
wx.navigateTo({
|
|
|
|
url
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 去评价
|
|
|
|
evaluateFun() {
|
|
|
|
let url = util.http_build_query({
|
|
|
|
sellerName: this.data.seller.name,
|
|
|
|
sellerid: this.data.seller.sid,
|
|
|
|
oid: this.data.detail.id,
|
|
|
|
types: '1',
|
|
|
|
previousPage: '1',
|
|
|
|
}, '/pages/pinglun/createOpinion')
|
|
|
|
wx.navigateTo({
|
|
|
|
url
|
|
|
|
})
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 用户点击右上角分享
|
|
|
|
*/
|
|
|
|
onShareAppMessage: function () {
|
|
|
|
return this.sharesetting();
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 监听用户点击分享到朋友圈按钮的操作
|
|
|
|
*/
|
|
|
|
onShareTimeline() {
|
|
|
|
return this.sharesetting();
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 生命周期函数--监听页面显示
|
|
|
|
*/
|
|
|
|
onShow: function () {
|
|
|
|
this.getDetail()
|
|
|
|
this.getText()
|
|
|
|
this.getPaymentStatus()
|
|
|
|
},
|
|
|
|
// 复制微信号
|
|
|
|
copyWeChat() {
|
|
|
|
if (this.data.staffinfo.wechat) {
|
|
|
|
wx.setClipboardData({
|
|
|
|
data: this.data.staffinfo.wechat,
|
|
|
|
success(res) {
|
|
|
|
wx.getClipboardData({
|
|
|
|
success(res) {
|
|
|
|
console.log(res.data) // data
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
console.log('无微信号')
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 拨打电话
|
|
|
|
call(e) {
|
|
|
|
const phone = e.currentTarget.dataset['phone'];
|
|
|
|
wx.reportMonitor('1012', 1)
|
|
|
|
wx.makePhoneCall({
|
|
|
|
phoneNumber: phone
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 跳转到商家入驻页
|
|
|
|
gotoJoinSeller() {
|
|
|
|
wx.navigateTo({
|
|
|
|
const scrollTop = event.scrollTop * 1 + this.screenHeight - 80; // 获取滚动的距离
|
|
|
|
if (scrollTop < this.screenHeight) {
|
|
|
|
this.setData({
|
|
|
|
showMoreTip: true
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
this.setData({
|
|
|
|
showMoreTip: false
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 点击了解更多会员优惠政策
|
|
|
|
gotoFavourableList() {
|
|
|
|
let url = util.http_build_query({
|
|
|
|
sellerName: this.data.seller.name,
|
|
|
|
sellerid: this.data.seller.sid,
|
|
|
|
oid: this.data.detail.id,
|
|
|
|
types: '1'
|
|
|
|
}, '/pack-cookbook/pages/favourableList')
|
|
|
|
wx.navigateTo({
|
|
|
|
url
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 去评价
|
|
|
|
evaluateFun() {
|
|
|
|
let url = util.http_build_query({
|
|
|
|
sellerName: this.data.seller.name,
|
|
|
|
sellerid: this.data.seller.sid,
|
|
|
|
oid: this.data.detail.id,
|
|
|
|
types: '1',
|
|
|
|
previousPage: '1',
|
|
|
|
}, '/pages/pinglun/createOpinion')
|
|
|
|
wx.navigateTo({
|
|
|
|
url
|
|
|
|
})
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 用户点击右上角分享
|
|
|
|
*/
|
|
|
|
onShareAppMessage: function () {
|
|
|
|
return this.sharesetting();
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 监听用户点击分享到朋友圈按钮的操作
|
|
|
|
*/
|
|
|
|
onShareTimeline() {
|
|
|
|
return this.sharesetting();
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 生命周期函数--监听页面显示
|
|
|
|
*/
|
|
|
|
onShow: function () {
|
|
|
|
this.getDetail()
|
|
|
|
this.getText()
|
|
|
|
this.getPaymentStatus()
|
|
|
|
},
|
|
|
|
// 复制微信号
|
|
|
|
copyWeChat() {
|
|
|
|
if (this.data.staffinfo.wechat) {
|
|
|
|
wx.setClipboardData({
|
|
|
|
data: this.data.staffinfo.wechat,
|
|
|
|
success(res) {
|
|
|
|
wx.getClipboardData({
|
|
|
|
success(res) {
|
|
|
|
console.log(res.data) // data
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
console.log('无微信号')
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 拨打电话
|
|
|
|
call(e) {
|
|
|
|
const phone = e.currentTarget.dataset['phone'];
|
|
|
|
wx.reportMonitor('1012', 1)
|
|
|
|
wx.makePhoneCall({
|
|
|
|
phoneNumber: phone
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 跳转到商家入驻页
|
|
|
|
gotoJoinSeller() {
|
|
|
|
wx.navigateTo({
|
|
|
|
url: util.http_build_query({
|
|
|
|
laiyuan:'邀请函'
|
|
|
|
}, '/pages/customer/joinSeller')
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 导航
|
|
|
|
looklocation: function () {
|
|
|
|
wx.reportMonitor('1015', 1)
|
|
|
|
wx.openLocation({
|
|
|
|
latitude: Number(this.data.seller.lat),
|
|
|
|
longitude: Number(this.data.seller.long),
|
|
|
|
scale: 17,
|
|
|
|
address: this.data.seller.addr,
|
|
|
|
success: function (res) {
|
|
|
|
console.log(res)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 获取包间图片列表
|
|
|
|
getroomimage(sellerid) {
|
|
|
|
App.Tables.GetTablesPhoto({
|
|
|
|
sellerid,
|
|
|
|
tableids: this.tablestr
|
|
|
|
}).then((json) => {
|
|
|
|
if (json.ret == 200) {
|
|
|
|
this.setData({
|
|
|
|
roomimage: json.data
|
|
|
|
})
|
|
|
|
var urlsArr = [];
|
|
|
|
json.data.forEach((v, i) => {
|
|
|
|
urlsArr.push(v.url);
|
|
|
|
})
|
|
|
|
this.urlsValue = urlsArr;
|
|
|
|
console.log('urlsArr', urlsArr)
|
|
|
|
console.log('roomimage', json.data)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 预览包间图片
|
|
|
|
lookroom(e) {
|
|
|
|
const item = e.currentTarget.dataset['item'];
|
|
|
|
wx.previewImage({
|
|
|
|
current: item.url, // 当前显示图片的http链接
|
|
|
|
urls: this.urlsValue, // 需要预览的图片http链接列表
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 预览其他图片
|
|
|
|
lookImgs(e) {
|
|
|
|
const url = e.currentTarget.dataset['url'];
|
|
|
|
const imgs = e.currentTarget.dataset['imgs'];
|
|
|
|
let urls = imgs ? imgs : [url]
|
|
|
|
wx.previewImage({
|
|
|
|
current: url,
|
|
|
|
urls,
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 获取店铺详情
|
|
|
|
getDetail() {
|
|
|
|
App.Reserve.Detail({
|
|
|
|
openid: getApp().openid,
|
|
|
|
rid: this.data.options.id
|
|
|
|
}).then(res => {
|
|
|
|
let tablesText = '', //桌子信息
|
|
|
|
deskStr = '',
|
|
|
|
tableNum = 0;
|
|
|
|
let tableinfo = util.determine(res.data.tableinfo);
|
|
|
|
console.log('tableinfo', tableinfo);
|
|
|
|
res.data.tables.forEach((t, i) => {
|
|
|
|
tableNum += t.table_pnum * 1
|
|
|
|
tablesText += t.rname + t.name + (i == (res.data.tables.length - 1) ? '' : '、');
|
|
|
|
deskStr += t.name + (i == (res.data.tables.length - 1) ? '' : '、');
|
|
|
|
})
|
|
|
|
let tabaleids = [];
|
|
|
|
res.data.tables.forEach(t => {
|
|
|
|
tabaleids.push(t.id);
|
|
|
|
})
|
|
|
|
this.tablestr = tabaleids.toString();
|
|
|
|
let reserev = RS.reserve(res.data)
|
|
|
|
let dateSmart = util.unixtoTime(reserev.ddate, 'YYYY-MM-DD 星期WW');
|
|
|
|
let yearMonthDay = util.unixtoTime(reserev.ddate, 'YYYY年MM月DD日')
|
|
|
|
let yearMonth = util.unixtoTime(reserev.ddate, 'MM月DD日')
|
|
|
|
let dateStr = util.unixtoTime(reserev.ddate, 'HH点')
|
|
|
|
let dateStrDivide = util.unixtoTime(reserev.ddate, 'II分')
|
|
|
|
console.log('dateSmart', dateSmart);
|
|
|
|
this.setData({
|
|
|
|
detail: this.formatDatail(reserev, dateSmart),
|
|
|
|
tableNum,
|
|
|
|
tableinfo,
|
|
|
|
is_user_comments: res.data.is_user_comments,
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 导航
|
|
|
|
looklocation: function () {
|
|
|
|
wx.reportMonitor('1015', 1)
|
|
|
|
wx.openLocation({
|
|
|
|
latitude: Number(this.data.seller.lat),
|
|
|
|
longitude: Number(this.data.seller.long),
|
|
|
|
scale: 17,
|
|
|
|
address: this.data.seller.addr,
|
|
|
|
success: function (res) {
|
|
|
|
console.log(res)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 获取包间图片列表
|
|
|
|
getroomimage(sellerid) {
|
|
|
|
App.Tables.GetTablesPhoto({
|
|
|
|
sellerid,
|
|
|
|
tableids: this.tablestr
|
|
|
|
}).then((json) => {
|
|
|
|
if (json.ret == 200) {
|
|
|
|
this.setData({
|
|
|
|
roomimage: json.data
|
|
|
|
})
|
|
|
|
var urlsArr = [];
|
|
|
|
json.data.forEach((v, i) => {
|
|
|
|
urlsArr.push(v.url);
|
|
|
|
})
|
|
|
|
this.urlsValue = urlsArr;
|
|
|
|
console.log('urlsArr', urlsArr)
|
|
|
|
console.log('roomimage', json.data)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 预览包间图片
|
|
|
|
lookroom(e) {
|
|
|
|
const item = e.currentTarget.dataset['item'];
|
|
|
|
wx.previewImage({
|
|
|
|
current: item.url, // 当前显示图片的http链接
|
|
|
|
urls: this.urlsValue, // 需要预览的图片http链接列表
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 预览其他图片
|
|
|
|
lookImgs(e) {
|
|
|
|
const url = e.currentTarget.dataset['url'];
|
|
|
|
const imgs = e.currentTarget.dataset['imgs'];
|
|
|
|
let urls = imgs ? imgs : [url]
|
|
|
|
wx.previewImage({
|
|
|
|
current: url,
|
|
|
|
urls,
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 获取店铺详情
|
|
|
|
getDetail() {
|
|
|
|
App.Reserve.Detail({
|
|
|
|
openid: getApp().openid,
|
|
|
|
rid: this.data.options.id
|
|
|
|
}).then(res => {
|
|
|
|
let tablesText = '', //桌子信息
|
|
|
|
deskStr = '',
|
|
|
|
tableNum = 0;
|
|
|
|
let tableinfo = util.determine(res.data.tableinfo);
|
|
|
|
console.log('tableinfo', tableinfo);
|
|
|
|
res.data.tables.forEach((t, i) => {
|
|
|
|
tableNum += t.table_pnum * 1
|
|
|
|
tablesText += t.rname + t.name + (i == (res.data.tables.length - 1) ? '' : '、');
|
|
|
|
deskStr += t.name + (i == (res.data.tables.length - 1) ? '' : '、');
|
|
|
|
})
|
|
|
|
let tabaleids = [];
|
|
|
|
res.data.tables.forEach(t => {
|
|
|
|
tabaleids.push(t.id);
|
|
|
|
})
|
|
|
|
this.tablestr = tabaleids.toString();
|
|
|
|
let reserev = RS.reserve(res.data)
|
|
|
|
let dateSmart = util.unixtoTime(reserev.ddate, 'YYYY-MM-DD 星期WW');
|
|
|
|
let yearMonthDay = util.unixtoTime(reserev.ddate, 'YYYY年MM月DD日')
|
|
|
|
let yearMonth = util.unixtoTime(reserev.ddate, 'MM月DD日')
|
|
|
|
let dateStr = util.unixtoTime(reserev.ddate, 'HH点')
|
|
|
|
let dateStrDivide = util.unixtoTime(reserev.ddate, 'II分')
|
|
|
|
console.log('dateSmart', dateSmart);
|
|
|
|
this.setData({
|
|
|
|
detail: this.formatDatail(reserev, dateSmart),
|
|
|
|
tableNum,
|
|
|
|
tableinfo,
|
|
|
|
is_user_comments: res.data.is_user_comments,
|
|
|
|
temp_ddate:this.data.temp_ddate?this.data.temp_ddate:reserev.temp_ddate?util.unixtoTime(reserev.temp_ddate, 'HH:II'):util.unixtoTime(reserev.ddate, 'HH:II'),
|
|
|
|
seller: {
|
|
|
|
seller: {
|
|
|
|
daily: reserev.seller.daily,
|
|
|
|
name: reserev.seller.sellername,
|
|
|
|
sid: reserev.sid,
|
|
|
|
date: dateSmart,
|
|
|
|
tablesText,
|
|
|
|
addr: reserev.seller.real_address || reserev.seller.map_address,
|
|
|
|
image: reserev.image_url,
|
|
|
|
hasOwner: true,
|
|
|
|
type: reserev.type,
|
|
|
|
is_set_ddate: reserev.is_set_ddate,
|
|
|
|
hasUpTime: reserev.type == 1 && reserev.hasRunning && reserev.status != 2,
|
|
|
|
tel: reserev.seller.seller_tel.split(','),
|
|
|
|
soltName: reserev.soltName,
|
|
|
|
dateTime: util.unixtoTime(reserev.ddate, 'HH:II'),
|
|
|
|
time: util.unixtoTime(reserev.ddate, '星期WW HH:II'),
|
|
|
|
lat: reserev.seller.lat,
|
|
|
|
long: reserev.seller.long,
|
|
|
|
yearMonthDay,
|
|
|
|
yearMonth,
|
|
|
|
dateStr,
|
|
|
|
deskStr,
|
|
|
|
dateStrDivide: dateStrDivide == '00分' ? '' : dateStrDivide,
|
|
|
|
seller_tel: reserev.seller.seller_tel,
|
|
|
|
name: reserev.seller.sellername,
|
|
|
|
sid: reserev.sid,
|
|
|
|
date: dateSmart,
|
|
|
|
tablesText,
|
|
|
|
addr: reserev.seller.real_address || reserev.seller.map_address,
|
|
|
|
image: reserev.image_url,
|
|
|
|
hasOwner: true,
|
|
|
|
type: reserev.type,
|
|
|
|
is_set_ddate: reserev.is_set_ddate,
|
|
|
|
hasUpTime: reserev.type == 1 && reserev.hasRunning && reserev.status != 2,
|
|
|
|
tel: reserev.seller.seller_tel.split(','),
|
|
|
|
soltName: reserev.soltName,
|
|
|
|
dateTime: util.unixtoTime(reserev.ddate, 'HH:II'),
|
|
|
|
time: util.unixtoTime(reserev.ddate, '星期WW HH:II'),
|
|
|
|
lat: reserev.seller.lat,
|
|
|
|
long: reserev.seller.long,
|
|
|
|
yearMonthDay,
|
|
|
|
yearMonth,
|
|
|
|
dateStr,
|
|
|
|
deskStr,
|
|
|
|
dateStrDivide: dateStrDivide == '00分' ? '' : dateStrDivide,
|
|
|
|
seller_tel: reserev.seller.seller_tel,
|
|
|
|
phone:reserev.phone,
|
|
|
|
}
|
|
|
|
})
|
|
|
|
console.log('reserev reserev', reserev);
|
|
|
|
console.log('seller seller', this.data.seller);
|
|
|
|
console.log('detail detail', this.data.detail);
|
|
|
|
setTimeout(() => {
|
|
|
|
this.getstaffinfo(res.data.uid, reserev.sid);
|
|
|
|
this.getroomimage(reserev.sid)
|
|
|
|
this.getSellerVersionFun(reserev.sid);
|
|
|
|
}, 0);
|
|
|
|
}).catch(res => {
|
|
|
|
console.log(res, '详情请求失败');
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 获取商家版本,不是超能版或者没有开通对应模块,不显示
|
|
|
|
getSellerVersionFun(sellerid) {
|
|
|
|
App.SellerVersion.GetSellerVersion({
|
|
|
|
sellerid
|
|
|
|
}).then((res) => {
|
|
|
|
let data = res.data;
|
|
|
|
console.log('版本列表', data);
|
|
|
|
if (data && data.length > 0) {
|
|
|
|
data.sort((a, b) => b.cdate * 1 - a.cdate * 1);
|
|
|
|
// 获取店铺当前版本 (cdate最大最后一个充入的 && 当前时间有效 && 当前版本)
|
|
|
|
let obj = data.find(item => item.vtype == 1 || item.vtype == 2 || item.vtype == 4);
|
|
|
|
console.log('当前版本', {
|
|
|
|
...obj
|
|
|
|
});
|
|
|
|
// 提前点餐功能:超能版 || 有提前点餐模块
|
|
|
|
const hasValueOrder = obj.vtype == '1' || data.some(item => item.vid == '6');
|
|
|
|
// 优惠券功能:超能版 || 高级版 || 有优惠券模块
|
|
|
|
const hasValueCertificate = obj.vtype == '1' || obj.vtype == '4' || data.some(item => item.vid == '8');
|
|
|
|
// 充值功能:超能版 || 有充值模块
|
|
|
|
const hasValueRecharge = obj.vtype == '1' || data.some(item => item.vid == '9');
|
|
|
|
// 播报功能:超能版 || 标准版 || 标准版首年 || 高级版
|
|
|
|
const hasValueBroadcast = obj.vtype == '1' || obj.vid == '4' || obj.vid == '13' || obj.vtype == '4';
|
|
|
|
this.setData({
|
|
|
|
hasValueOrder,
|
|
|
|
hasValueCertificate,
|
|
|
|
hasValueRecharge,
|
|
|
|
hasValueBroadcast,
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 通过预订ID查收定金详情
|
|
|
|
getPaymentStatus() {
|
|
|
|
App.Reserve.GetReserveDepositByRid({
|
|
|
|
rid: this.data.options.id
|
|
|
|
}).then(res => {
|
|
|
|
if (res.ret == 200 && res.data && res.data.length > 0) {
|
|
|
|
let data = res.data[0];
|
|
|
|
}
|
|
|
|
})
|
|
|
|
console.log('reserev reserev', reserev);
|
|
|
|
console.log('seller seller', this.data.seller);
|
|
|
|
console.log('detail detail', this.data.detail);
|
|
|
|
setTimeout(() => {
|
|
|
|
this.getstaffinfo(res.data.uid, reserev.sid);
|
|
|
|
this.getroomimage(reserev.sid)
|
|
|
|
this.getSellerVersionFun(reserev.sid);
|
|
|
|
}, 0);
|
|
|
|
}).catch(res => {
|
|
|
|
console.log(res, '详情请求失败');
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 获取商家版本,不是超能版或者没有开通对应模块,不显示
|
|
|
|
getSellerVersionFun(sellerid) {
|
|
|
|
App.SellerVersion.GetSellerVersion({
|
|
|
|
sellerid
|
|
|
|
}).then((res) => {
|
|
|
|
let data = res.data;
|
|
|
|
console.log('版本列表', data);
|
|
|
|
if (data && data.length > 0) {
|
|
|
|
data.sort((a, b) => b.cdate * 1 - a.cdate * 1);
|
|
|
|
// 获取店铺当前版本 (cdate最大最后一个充入的 && 当前时间有效 && 当前版本)
|
|
|
|
let obj = data.find(item => item.vtype == 1 || item.vtype == 2 || item.vtype == 4);
|
|
|
|
console.log('当前版本', {
|
|
|
|
...obj
|
|
|
|
});
|
|
|
|
// 提前点餐功能:超能版 || 有提前点餐模块
|
|
|
|
const hasValueOrder = obj.vtype == '1' || data.some(item => item.vid == '6');
|
|
|
|
// 优惠券功能:超能版 || 高级版 || 有优惠券模块
|
|
|
|
const hasValueCertificate = obj.vtype == '1' || obj.vtype == '4' || data.some(item => item.vid == '8');
|
|
|
|
// 充值功能:超能版 || 有充值模块
|
|
|
|
const hasValueRecharge = obj.vtype == '1' || data.some(item => item.vid == '9');
|
|
|
|
// 播报功能:超能版 || 标准版 || 标准版首年 || 高级版
|
|
|
|
const hasValueBroadcast = obj.vtype == '1' || obj.vid == '4' || obj.vid == '13' || obj.vtype == '4';
|
|
|
|
this.setData({
|
|
|
|
hasValueOrder,
|
|
|
|
hasValueCertificate,
|
|
|
|
hasValueRecharge,
|
|
|
|
hasValueBroadcast,
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 通过预订ID查收定金详情
|
|
|
|
getPaymentStatus() {
|
|
|
|
App.Reserve.GetReserveDepositByRid({
|
|
|
|
rid: this.data.options.id
|
|
|
|
}).then(res => {
|
|
|
|
if (res.ret == 200 && res.data && res.data.length > 0) {
|
|
|
|
let data = res.data[0];
|
|
|
|
let paymentStatus = data.trade_state == 'SUCCESS' ? '1' : '0';
|
|
|
|
let options = this.data.options
|
|
|
|
this.setData({
|
|
|
|
paymentId: data.id,
|
|
|
|
paymentStatus,
|
|
|
|
this.setData({
|
|
|
|
paymentId: data.id,
|
|
|
|
paymentStatus,
|
|
|
|
isPaymenBtn:options.isOrder != '1' && data.id && paymentStatus == '0' && options.hasSellerShare == '1' && options.isDeposit == '1',
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 获取自定义图文内容
|
|
|
|
getText() {
|
|
|
|
App.Reserve.GetReserveImgText({
|
|
|
|
rid: this.data.options.id
|
|
|
|
}).then(res => {
|
|
|
|
if (res.ret == 200 && res.data) {
|
|
|
|
let data = res.data;
|
|
|
|
let content = util.determine(data.content)
|
|
|
|
console.log('contentcontentcontent', content);
|
|
|
|
this.setData({
|
|
|
|
reserveData: {
|
|
|
|
title: data.title || '',
|
|
|
|
content,
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 点击支付定金
|
|
|
|
paymentFun() {
|
|
|
|
let that = this;
|
|
|
|
App.PayOnline.CombineTransactionsByDeposit({
|
|
|
|
id: this.data.paymentId,
|
|
|
|
openid: getApp().openid,
|
|
|
|
}).then(res => {
|
|
|
|
if (res.ret == 200) {
|
|
|
|
wx.requestPayment({
|
|
|
|
timeStamp: res.data.timeStamp + '',
|
|
|
|
nonceStr: res.data.nonceStr,
|
|
|
|
package: res.data.package,
|
|
|
|
signType: res.data.signType,
|
|
|
|
paySign: res.data.paySign,
|
|
|
|
success(ress) {
|
|
|
|
console.log('微信支付结果', ress);
|
|
|
|
if (ress.errMsg == 'requestPayment:ok') {
|
|
|
|
console.log('支付成功', ress);
|
|
|
|
that.setData({
|
|
|
|
paymentStatus: '1',
|
|
|
|
toastBool: true,
|
|
|
|
toastText: '支付成功'
|
|
|
|
})
|
|
|
|
that.hideToast();
|
|
|
|
return
|
|
|
|
}
|
|
|
|
console.log('支付失败1', ress);
|
|
|
|
that.setData({
|
|
|
|
toastBool: true,
|
|
|
|
toastText: '支付失败,请重新支付'
|
|
|
|
})
|
|
|
|
that.hideToast();
|
|
|
|
},
|
|
|
|
fail(ress) {
|
|
|
|
console.log('支付失败2', ress);
|
|
|
|
that.setData({
|
|
|
|
toastBool: true,
|
|
|
|
toastText: '支付失败,请重新支付'
|
|
|
|
})
|
|
|
|
that.hideToast();
|
|
|
|
},
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
wx.showToast({
|
|
|
|
title: res.msg,
|
|
|
|
icon: 'none',
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 关闭支付失败或者成功弹框
|
|
|
|
hideToast() {
|
|
|
|
setTimeout(() => {
|
|
|
|
this.setData({
|
|
|
|
toastBool: false
|
|
|
|
})
|
|
|
|
}, 1500)
|
|
|
|
},
|
|
|
|
// 客户经理获取基本信息
|
|
|
|
getstaffinfo(uid, sid) {
|
|
|
|
console.log('sellerid', this.data.detail.seller.id);
|
|
|
|
App.Activity.GetCustomerActivityBaseinfo({
|
|
|
|
sellerid: this.data.detail.seller.id,
|
|
|
|
uid
|
|
|
|
}).then((json) => {
|
|
|
|
if (json.ret == 200) {
|
|
|
|
console.log('staffinfostaffinfostaffinfo', json.data)
|
|
|
|
this.setData({
|
|
|
|
staffinfo: json.data
|
|
|
|
})
|
|
|
|
this.getSellerTemplateConfFun(sid);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 提前点餐
|
|
|
|
cookbook() {
|
|
|
|
if (this.data.detail.order && this.data.detail.order.cookbooklist.length > 0) {
|
|
|
|
let data = {
|
|
|
|
rid: this.id,
|
|
|
|
oid: this.data.detail.order.id,
|
|
|
|
sellerName: this.data.seller.name,
|
|
|
|
sid: this.data.seller.sid,
|
|
|
|
identity: '1',
|
|
|
|
hasSuccess: '1',
|
|
|
|
}
|
|
|
|
wx.navigateTo({
|
|
|
|
url: `/pack-cookbook/pages/success_new?hasSuccess=${data.hasSuccess}&identity=${data.identity}&oid=${data.oid}&rid=${data.rid}&sellerName=${data.sellerName}&sid=${data.sid}`,
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
App.Advance.CreateOrder({
|
|
|
|
rid: this.id,
|
|
|
|
openid: getApp().openid,
|
|
|
|
}).then(res => {
|
|
|
|
if (res.ret != 200) {
|
|
|
|
return util.toast(res.msg, 'none')
|
|
|
|
}
|
|
|
|
wx.navigateTo({
|
|
|
|
url: util.http_build_query({
|
|
|
|
rid: this.id,
|
|
|
|
oid: res.data.id,
|
|
|
|
sid: res.data.sellerid,
|
|
|
|
sellerName: this.data.seller.name,
|
|
|
|
identity: '1',
|
|
|
|
}, '/pack-cookbook/pages/index_new')
|
|
|
|
});
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 生成海报
|
|
|
|
painterBtn(img, sellerName, date, time) {
|
|
|
|
img = img.replace(/^http:/, "https:");
|
|
|
|
this.setData({
|
|
|
|
wxml: canvas({
|
|
|
|
imgUrl: img || 'https://nosqn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png',
|
|
|
|
sellerName,
|
|
|
|
date,
|
|
|
|
time,
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
onImgOK(e) {
|
|
|
|
this.setData({
|
|
|
|
imgSrc: e.detail.path
|
|
|
|
})
|
|
|
|
console.log('海报生成成功', this.data.imgSrc);
|
|
|
|
},
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 获取自定义图文内容
|
|
|
|
getText() {
|
|
|
|
App.Reserve.GetReserveImgText({
|
|
|
|
rid: this.data.options.id
|
|
|
|
}).then(res => {
|
|
|
|
if (res.ret == 200 && res.data) {
|
|
|
|
let data = res.data;
|
|
|
|
let content = util.determine(data.content)
|
|
|
|
console.log('contentcontentcontent', content);
|
|
|
|
this.setData({
|
|
|
|
reserveData: {
|
|
|
|
title: data.title || '',
|
|
|
|
content,
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 点击支付定金
|
|
|
|
paymentFun() {
|
|
|
|
let that = this;
|
|
|
|
App.PayOnline.CombineTransactionsByDeposit({
|
|
|
|
id: this.data.paymentId,
|
|
|
|
openid: getApp().openid,
|
|
|
|
}).then(res => {
|
|
|
|
if (res.ret == 200) {
|
|
|
|
wx.requestPayment({
|
|
|
|
timeStamp: res.data.timeStamp + '',
|
|
|
|
nonceStr: res.data.nonceStr,
|
|
|
|
package: res.data.package,
|
|
|
|
signType: res.data.signType,
|
|
|
|
paySign: res.data.paySign,
|
|
|
|
success(ress) {
|
|
|
|
console.log('微信支付结果', ress);
|
|
|
|
if (ress.errMsg == 'requestPayment:ok') {
|
|
|
|
console.log('支付成功', ress);
|
|
|
|
that.setData({
|
|
|
|
paymentStatus: '1',
|
|
|
|
toastBool: true,
|
|
|
|
toastText: '支付成功'
|
|
|
|
})
|
|
|
|
that.hideToast();
|
|
|
|
return
|
|
|
|
}
|
|
|
|
console.log('支付失败1', ress);
|
|
|
|
that.setData({
|
|
|
|
toastBool: true,
|
|
|
|
toastText: '支付失败,请重新支付'
|
|
|
|
})
|
|
|
|
that.hideToast();
|
|
|
|
},
|
|
|
|
fail(ress) {
|
|
|
|
console.log('支付失败2', ress);
|
|
|
|
that.setData({
|
|
|
|
toastBool: true,
|
|
|
|
toastText: '支付失败,请重新支付'
|
|
|
|
})
|
|
|
|
that.hideToast();
|
|
|
|
},
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
wx.showToast({
|
|
|
|
title: res.msg,
|
|
|
|
icon: 'none',
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 关闭支付失败或者成功弹框
|
|
|
|
hideToast() {
|
|
|
|
setTimeout(() => {
|
|
|
|
this.setData({
|
|
|
|
toastBool: false
|
|
|
|
})
|
|
|
|
}, 1500)
|
|
|
|
},
|
|
|
|
// 客户经理获取基本信息
|
|
|
|
getstaffinfo(uid, sid) {
|
|
|
|
console.log('sellerid', this.data.detail.seller.id);
|
|
|
|
App.Activity.GetCustomerActivityBaseinfo({
|
|
|
|
sellerid: this.data.detail.seller.id,
|
|
|
|
uid
|
|
|
|
}).then((json) => {
|
|
|
|
if (json.ret == 200) {
|
|
|
|
console.log('客户经理获取基本信息------', json.data)
|
|
|
|
this.setData({
|
|
|
|
staffinfo: json.data,
|
|
|
|
couponArr:[],
|
|
|
|
})
|
|
|
|
this.getSellerTemplateConfFun(sid);
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 提前点餐
|
|
|
|
cookbook() {
|
|
|
|
if (this.data.detail.order && this.data.detail.order.cookbooklist.length > 0) {
|
|
|
|
let data = {
|
|
|
|
rid: this.id,
|
|
|
|
oid: this.data.detail.order.id,
|
|
|
|
sellerName: this.data.seller.name,
|
|
|
|
sid: this.data.seller.sid,
|
|
|
|
identity: '1',
|
|
|
|
hasSuccess: '1',
|
|
|
|
}
|
|
|
|
wx.navigateTo({
|
|
|
|
url: `/pack-cookbook/pages/success_new?hasSuccess=${data.hasSuccess}&identity=${data.identity}&oid=${data.oid}&rid=${data.rid}&sellerName=${data.sellerName}&sid=${data.sid}`,
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
App.Advance.CreateOrder({
|
|
|
|
rid: this.id,
|
|
|
|
openid: getApp().openid,
|
|
|
|
}).then(res => {
|
|
|
|
if (res.ret != 200) {
|
|
|
|
return util.toast(res.msg, 'none')
|
|
|
|
}
|
|
|
|
wx.navigateTo({
|
|
|
|
url: util.http_build_query({
|
|
|
|
rid: this.id,
|
|
|
|
oid: res.data.id,
|
|
|
|
sid: res.data.sellerid,
|
|
|
|
sellerName: this.data.seller.name,
|
|
|
|
identity: '1',
|
|
|
|
}, '/pack-cookbook/pages/index_new')
|
|
|
|
});
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 生成海报
|
|
|
|
painterBtn(img, sellerName, date, time) {
|
|
|
|
img = img.replace(/^http:/, "https:");
|
|
|
|
this.setData({
|
|
|
|
wxml: canvas({
|
|
|
|
imgUrl: img || 'https://nosqn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png',
|
|
|
|
sellerName,
|
|
|
|
date,
|
|
|
|
time,
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
onImgOK(e) {
|
|
|
|
this.setData({
|
|
|
|
imgSrc: e.detail.path
|
|
|
|
})
|
|
|
|
console.log('海报生成成功', this.data.imgSrc);
|
|
|
|
},
|
|
|
|
// 分享
|
|
|
|
sharesetting() {
|
|
|
|
wx.reportMonitor('1017', 1)
|
|
...
|
...
|
@@ -564,14 +572,14 @@ Page({ |
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 修改detail数据
|
|
|
|
formatDatail(detail, dateSmart) {
|
|
|
|
detail.rdateStr = dateSmart;
|
|
|
|
detail.tableFirst = detail.tables[0].name;
|
|
|
|
if (detail.tables.length > 1) {
|
|
|
|
detail.tableSubInfo = '等' + (detail.tables.length) + '个' +
|
|
|
|
(detail.tables[0].tid == 2 ? '包间' : '');
|
|
|
|
}
|
|
|
|
// 修改detail数据
|
|
|
|
formatDatail(detail, dateSmart) {
|
|
|
|
detail.rdateStr = dateSmart;
|
|
|
|
detail.tableFirst = detail.tables[0].name;
|
|
|
|
if (detail.tables.length > 1) {
|
|
|
|
detail.tableSubInfo = '等' + (detail.tables.length) + '个' +
|
|
|
|
(detail.tables[0].tid == 2 ? '包间' : '');
|
|
|
|
}
|
|
|
|
detail.rname = detail.rname.trim()
|
|
|
|
if (detail.rname && detail.sex != 3) {
|
|
|
|
detail.rnameStr = detail.rname + (detail.sex == 1 ? '先生' : detail.sex == 2 ? '女士' : detail.sex == 4 ? '贵宾' : '')
|
|
...
|
...
|
@@ -580,84 +588,78 @@ Page({ |
|
|
|
} else {
|
|
|
|
detail.rnameStr = detail.rname
|
|
|
|
}
|
|
|
|
detail.eatStr = '邀请您共进晚餐';
|
|
|
|
let hi = util.unixtoTime(detail.ddate, 'HHII');
|
|
|
|
if (hi < '10:00') {
|
|
|
|
detail.eatStr = '邀请您共进早餐';
|
|
|
|
} else if (hi < '15:00') {
|
|
|
|
detail.eatStr = '邀请您共进午餐';
|
|
|
|
}
|
|
|
|
return detail;
|
|
|
|
},
|
|
|
|
// 获取商家设置营销信息
|
|
|
|
getSellerTemplateConfFun(sid) {
|
|
|
|
console.log(sid, 'sidsidsidsid');
|
|
|
|
App.Seller.GetSellerTemplateConf({
|
|
|
|
sid
|
|
|
|
}).then(res => {
|
|
|
|
let data = res.data
|
|
|
|
console.log('data', data);
|
|
|
|
let couponList = []
|
|
|
|
let colors, settingUrl, inviteImgUrl, themeColor, StyleType, titleType, home, chef, marketing, coupon, reserve, swich_phone, is_comments, signboard, store;
|
|
|
|
chef = util.determine(data.chef);
|
|
|
|
reserve = util.determine(data.reserve);
|
|
|
|
marketing = util.determine(data.marketing);
|
|
|
|
signboard = util.determine(data.signboard);
|
|
|
|
store = util.determine(data.store);
|
|
|
|
home = util.determine(data.home);
|
|
|
|
themeColor = data.lite_class || 'ultramarine';
|
|
|
|
StyleType = data.type;
|
|
|
|
if (StyleType == '9' || StyleType == '10' || StyleType == '11' || StyleType == '12') {
|
|
|
|
inviteImgUrl = 'https://nosqn.colorcun.com/inviteText.png';
|
|
|
|
} else {
|
|
|
|
inviteImgUrl = 'https://nosqn.colorcun.com/inviteText1.png';
|
|
|
|
}
|
|
|
|
settingUrl = StyleType == '12' ? 'https://nosqn.colorcun.com/template12.jpg' : 'https://nosqn.colorcun.com/template' + StyleType + '.png';
|
|
|
|
if (StyleType == '9') colors = "#0B0805";
|
|
|
|
if (StyleType == '10' || StyleType == '17') colors = "#750100";
|
|
|
|
if (StyleType == '11' || StyleType == '12') colors = "#0B1A67";
|
|
|
|
if (StyleType == '13' || StyleType == '15') colors = "#0B3133";
|
|
|
|
if (StyleType == '14' || StyleType == '16') colors = "#1B1A23";
|
|
|
|
titleType = data.title_class || '1';
|
|
|
|
swich_phone = reserve && reserve.swich_phone ? reserve.swich_phone : '';
|
|
|
|
if (store) store.content = (store.is_introduce_all == '1' && store.content) ? util.determine(store.content) : '';
|
|
|
|
if (chef) chef.content = (chef.is_introduce_all == '1' && chef.content) ? util.determine(chef.content) : '';
|
|
|
|
if (signboard) signboard.content = (signboard.is_introduce_all == '1' && signboard.content) ? util.determine(signboard.content) : '';
|
|
|
|
if (reserve) reserve.content = (reserve.is_introduce_all == '1' && reserve.content) ? util.determine(reserve.content) : '';
|
|
|
|
if (home) home.image = (home && home.image && (!home.id_first_image || home.id_first_image!='0')) ? home.image : '';
|
|
|
|
if (marketing) {
|
|
|
|
marketing.logo = (marketing.logo && (!marketing.is_logo || marketing.is_logo!='0')) ? marketing.logo : '';
|
|
|
|
is_comments = marketing.is_comments ? marketing.is_comments : '';
|
|
|
|
coupon = marketing.coupon_data ? util.determine(marketing.coupon_data) : '';
|
|
|
|
detail.eatStr = '邀请您共进晚餐';
|
|
|
|
let hi = util.unixtoTime(detail.ddate, 'HHII');
|
|
|
|
if (hi < '10:00') {
|
|
|
|
detail.eatStr = '邀请您共进早餐';
|
|
|
|
} else if (hi < '15:00') {
|
|
|
|
detail.eatStr = '邀请您共进午餐';
|
|
|
|
}
|
|
|
|
return detail;
|
|
|
|
},
|
|
|
|
// 获取商家设置营销信息
|
|
|
|
getSellerTemplateConfFun(sid) {
|
|
|
|
console.log(sid, 'sidsidsidsid');
|
|
|
|
App.Seller.GetSellerTemplateConf({
|
|
|
|
sid
|
|
|
|
}).then(res => {
|
|
|
|
let data = res.data
|
|
|
|
console.log('data', data);
|
|
|
|
let couponList = []
|
|
|
|
let colors, settingUrl, inviteImgUrl, themeColor, StyleType, titleType, home, chef, marketing, coupon, coupon_data_pay, coupon_data_free, reserve, swich_phone, is_comments, signboard, store;
|
|
|
|
chef = util.determine(data.chef);
|
|
|
|
reserve = util.determine(data.reserve);
|
|
|
|
marketing = util.determine(data.marketing);
|
|
|
|
signboard = util.determine(data.signboard);
|
|
|
|
store = util.determine(data.store);
|
|
|
|
home = util.determine(data.home);
|
|
|
|
themeColor = data.lite_class || 'ultramarine';
|
|
|
|
StyleType = data.type;
|
|
|
|
if (StyleType == '9' || StyleType == '10' || StyleType == '11' || StyleType == '12') {
|
|
|
|
inviteImgUrl = 'https://nosqn.colorcun.com/inviteText.png';
|
|
|
|
} else {
|
|
|
|
inviteImgUrl = 'https://nosqn.colorcun.com/inviteText1.png';
|
|
|
|
}
|
|
|
|
settingUrl = StyleType == '12' ? 'https://nosqn.colorcun.com/template12.jpg' : 'https://nosqn.colorcun.com/template' + StyleType + '.png';
|
|
|
|
if (StyleType == '9') colors = "#0B0805";
|
|
|
|
if (StyleType == '10' || StyleType == '17') colors = "#750100";
|
|
|
|
if (StyleType == '11' || StyleType == '12') colors = "#0B1A67";
|
|
|
|
if (StyleType == '13' || StyleType == '15') colors = "#0B3133";
|
|
|
|
if (StyleType == '14' || StyleType == '16') colors = "#1B1A23";
|
|
|
|
titleType = data.title_class || '1';
|
|
|
|
swich_phone = reserve && reserve.swich_phone ? reserve.swich_phone : '';
|
|
|
|
if (store) store.content = (store.is_introduce_all == '1' && store.content) ? util.determine(store.content) : '';
|
|
|
|
if (chef) chef.content = (chef.is_introduce_all == '1' && chef.content) ? util.determine(chef.content) : '';
|
|
|
|
if (signboard) signboard.content = (signboard.is_introduce_all == '1' && signboard.content) ? util.determine(signboard.content) : '';
|
|
|
|
if (reserve) reserve.content = (reserve.is_introduce_all == '1' && reserve.content) ? util.determine(reserve.content) : '';
|
|
|
|
if (home) home.image = (home && home.image && (!home.id_first_image || home.id_first_image!='0')) ? home.image : '';
|
|
|
|
if (marketing) {
|
|
|
|
marketing.logo = (marketing.logo && (!marketing.is_logo || marketing.is_logo!='0')) ? marketing.logo : '';
|
|
|
|
is_comments = marketing.is_comments ? marketing.is_comments : '';
|
|
|
|
coupon = (marketing.coupon_data && marketing.is_coupon == '1') ? util.determine(marketing.coupon_data) : '';
|
|
|
|
coupon_data_pay = (marketing.coupon_data_pay && marketing.is_coupon_pay == '1') ? util.determine(marketing.coupon_data_pay) : '';
|
|
|
|
marketing.coupon_data_payList = coupon_data_pay
|
|
|
|
coupon_data_free = (marketing.coupon_data_free && marketing.is_coupon_free == '1') ? util.determine(marketing.coupon_data_free) : '';
|
|
|
|
marketing.coupon_data_freeList = coupon_data_free
|
|
|
|
let info = marketing.coupon_data_comments ? util.determine(marketing.coupon_data_comments) : '';
|
|
|
|
let couponDataId = info && info.length > 0 ? info[0].id : {}
|
|
|
|
// 根据券ID获取评价赠送的券详情
|
|
|
|
if(couponDataId) this.getEvaluateFun(couponDataId)
|
|
|
|
}
|
|
|
|
// is_cash 代金券 is_discount折扣券 is_dish菜品券 只有代金券有几折显示
|
|
|
|
if (coupon && util.getType(coupon) == 'object') {
|
|
|
|
couponList.push({
|
|
|
|
id: coupon.id
|
|
|
|
});
|
|
|
|
}
|
|
|
|
if (coupon && util.getType(coupon) == 'array') {
|
|
|
|
if (coupon.length > 0) {
|
|
|
|
coupon.forEach(item => {
|
|
|
|
couponList.push({
|
|
|
|
id: item.id
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// is_cash 代金券 is_discount折扣券 is_dish菜品券 只有代金券有几折显示
|
|
|
|
// 获取全部的优惠券(商家券、个人券、免费券、付费券)
|
|
|
|
couponList = this.addCoupons(coupon,couponList);
|
|
|
|
couponList = this.addCoupons(coupon_data_pay,couponList);
|
|
|
|
couponList = this.addCoupons(coupon_data_free,couponList);
|
|
|
|
// 根据券ID获取券详情
|
|
|
|
this.getActivityByIdFun(couponList, couponList.length)
|
|
|
|
// 根据充值ID获取充值详情
|
|
|
|
if (marketing && marketing.is_recharge && marketing.is_recharge == '1' && marketing.recharge_data) {
|
|
|
|
this.getRechargeDetail(marketing.recharge_data.id)
|
|
|
|
}
|
|
|
|
if (store && store.images && store.images.length > 0) store.images = util.determine(store.images);
|
|
|
|
if (reserve && reserve.park_info_images && reserve.park_info_images.length > 0) reserve.park_info_images = util.determine(reserve.park_info_images);
|
|
|
|
if (signboard && signboard.images && signboard.images.length > 0) signboard.images = util.determine(signboard.images);
|
|
|
|
this.getActivityByIdFun(couponList)
|
|
|
|
// 根据充值ID获取充值详情
|
|
|
|
if (marketing && marketing.is_recharge && marketing.is_recharge == '1' && marketing.recharge_data) {
|
|
|
|
this.getRechargeDetail(marketing.recharge_data.id)
|
|
|
|
}
|
|
|
|
if (store && store.images && store.images.length > 0) store.images = util.determine(store.images);
|
|
|
|
if (reserve && reserve.park_info_images && reserve.park_info_images.length > 0) reserve.park_info_images = util.determine(reserve.park_info_images);
|
|
|
|
if (signboard && signboard.images && signboard.images.length > 0) signboard.images = util.determine(signboard.images);
|
|
|
|
let solt = this.data.detail.ddate_solt;
|
|
|
|
let lunchDis = this.data.seller.daily;
|
|
|
|
let timeList = []
|
|
...
|
...
|
@@ -668,20 +670,20 @@ Page({ |
|
|
|
var nightStr = lunchDis.night.split("-");
|
|
|
|
var nightArr = lunchDis.night ? this.computeHour(nightStr[0], nightStr[1], 30) : [];
|
|
|
|
timeList = solt == '1' ? morningArr : solt == '2' ? noonArr : solt == '3' ? nightArr : []
|
|
|
|
let obj = {
|
|
|
|
chef,
|
|
|
|
marketing,
|
|
|
|
home,
|
|
|
|
reserve,
|
|
|
|
signboard,
|
|
|
|
store,
|
|
|
|
swich_phone,
|
|
|
|
is_comments,
|
|
|
|
StyleType,
|
|
|
|
titleType,
|
|
|
|
themeColor,
|
|
|
|
settingUrl,
|
|
|
|
inviteImgUrl,
|
|
|
|
let obj = {
|
|
|
|
chef,
|
|
|
|
marketing,
|
|
|
|
home,
|
|
|
|
reserve,
|
|
|
|
signboard,
|
|
|
|
store,
|
|
|
|
swich_phone,
|
|
|
|
is_comments,
|
|
|
|
StyleType,
|
|
|
|
titleType,
|
|
|
|
themeColor,
|
|
|
|
settingUrl,
|
|
|
|
inviteImgUrl,
|
|
|
|
colors,
|
|
|
|
lite_style:data.lite_style,
|
|
|
|
timeList,
|
|
...
|
...
|
@@ -693,185 +695,188 @@ Page({ |
|
|
|
});
|
|
|
|
this.setData({
|
|
|
|
...obj
|
|
|
|
})
|
|
|
|
// 开启语音播报
|
|
|
|
if (reserve && reserve.swich_voice == '1') {
|
|
|
|
this.setData({
|
|
|
|
isPlay: '1',
|
|
|
|
})
|
|
|
|
this.textToSpeechFun(reserve.voice_info)
|
|
|
|
}
|
|
|
|
// 获取转发客人卡片设置
|
|
|
|
let detailInfo = this.data.detail;
|
|
|
|
if (data.lite_style == '0') {
|
|
|
|
this.setData({
|
|
|
|
imgSrc: detailInfo.seller.seller_image
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
let d = detailInfo.ddate_solt;
|
|
|
|
let time1 = util.unixtoTime(detailInfo.ddate, '周WW') + ' ' + (d == '1' ? '早上' : d == '2' ? '中午' : d == '3' ? '晚上' : '');
|
|
|
|
let time2;
|
|
|
|
})
|
|
|
|
// 开启语音播报
|
|
|
|
if (reserve && reserve.swich_voice == '1') {
|
|
|
|
this.setData({
|
|
|
|
isPlay: '1',
|
|
|
|
})
|
|
|
|
this.textToSpeechFun(reserve.voice_info)
|
|
|
|
}
|
|
|
|
// 获取转发客人卡片设置
|
|
|
|
let detailInfo = this.data.detail;
|
|
|
|
if (data.lite_style == '0') {
|
|
|
|
this.setData({
|
|
|
|
imgSrc: detailInfo.seller.seller_image
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
let d = detailInfo.ddate_solt;
|
|
|
|
let time1 = util.unixtoTime(detailInfo.ddate, '周WW') + ' ' + (d == '1' ? '早上' : d == '2' ? '中午' : d == '3' ? '晚上' : '');
|
|
|
|
let time2;
|
|
|
|
if(this.data.temp_ddate){
|
|
|
|
time2 = util.unixtoTime(detailInfo.ddate, '周WW') + this.data.temp_ddate
|
|
|
|
}else{
|
|
|
|
time2 = util.unixtoTime(detailInfo.ddate, '周WW HH:II')
|
|
|
|
}
|
|
|
|
let time3 = util.unixtoTime(detailInfo.ddate, '周WW') + ' ' + (d == '1' ? '早餐' : d == '2' ? '午餐' : d == '3' ? '晚餐' : '');
|
|
|
|
let time = data.lite_style == '1' ? time1 : data.lite_style == '2' ? time2 : data.lite_style == '3' ? time3 : '';
|
|
|
|
this.painterBtn(
|
|
|
|
detailInfo.seller.seller_image,
|
|
|
|
detailInfo.seller.sellername,
|
|
|
|
util.unixtoTime(detailInfo.ddate, 'MM月DD日'),
|
|
|
|
time
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}).catch(res => {
|
|
|
|
console.log('GetSellerTemplateConf请求失败');
|
|
|
|
})
|
|
|
|
let time3 = util.unixtoTime(detailInfo.ddate, '周WW') + ' ' + (d == '1' ? '早餐' : d == '2' ? '午餐' : d == '3' ? '晚餐' : '');
|
|
|
|
let time = data.lite_style == '1' ? time1 : data.lite_style == '2' ? time2 : data.lite_style == '3' ? time3 : '';
|
|
|
|
this.painterBtn(
|
|
|
|
detailInfo.seller.seller_image,
|
|
|
|
detailInfo.seller.sellername,
|
|
|
|
util.unixtoTime(detailInfo.ddate, 'MM月DD日'),
|
|
|
|
time
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}).catch(res => {
|
|
|
|
console.log('GetSellerTemplateConf请求失败');
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 点击商家有礼
|
|
|
|
gotoSellerGift(){
|
|
|
|
let url = util.http_build_query({
|
|
|
|
gotoSellerGift(e){
|
|
|
|
this.couponModal.closeModal()
|
|
|
|
const form = e.currentTarget.dataset['form'];
|
|
|
|
let url = util.http_build_query({
|
|
|
|
id: this.data.detail.id,
|
|
|
|
}, '/pages/reserve/sellerGift')
|
|
|
|
wx.navigateTo({
|
|
|
|
url
|
|
|
|
})
|
|
|
|
form
|
|
|
|
}, '/pages/reserve/sellerGift')
|
|
|
|
wx.navigateTo({
|
|
|
|
url
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 再次预订
|
|
|
|
secondbook() {
|
|
|
|
wx.reportMonitor('1013', 1)
|
|
|
|
wx.redirectTo({
|
|
|
|
url: '/pages/reserve/shopHome?id=' + this.data.detail.seller.id
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 文字转语音的方法
|
|
|
|
textToSpeechFun(voice_info) {
|
|
|
|
console.log('voice_info', voice_info);
|
|
|
|
let that = this;
|
|
|
|
let data = this.data;
|
|
|
|
// 再次预订
|
|
|
|
secondbook() {
|
|
|
|
wx.reportMonitor('1013', 1)
|
|
|
|
wx.redirectTo({
|
|
|
|
url: '/pages/reserve/shopHome?id=' + this.data.detail.seller.id
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 文字转语音的方法
|
|
|
|
textToSpeechFun(voice_info) {
|
|
|
|
console.log('voice_info', voice_info);
|
|
|
|
let that = this;
|
|
|
|
let data = this.data;
|
|
|
|
data.detail.rname = data.detail.rname.trim()
|
|
|
|
let str = data.detail.sex == 1 ? '先生' : data.detail.sex == 2 ? '女士' : data.detail.sex == 4 ? '贵宾' : '';
|
|
|
|
let charArray = data.seller.deskStr.split('');
|
|
|
|
let modifiedArray = charArray.map(char => char + ' ');
|
|
|
|
let resultString = modifiedArray.join('').slice(0, -1);
|
|
|
|
const replacements = {
|
|
|
|
"{年月日}": data.seller.yearMonthDay,
|
|
|
|
"{月日}": data.seller.yearMonth,
|
|
|
|
"{餐段}": data.seller.soltName,
|
|
|
|
"{就餐时间}": data.seller.dateStr + data.seller.dateStrDivide,
|
|
|
|
"{包间名}": resultString,
|
|
|
|
"{区域名+包间名}": data.seller.tablesText,
|
|
|
|
"{经理名字}": data.staffinfo.name,
|
|
|
|
let str = data.detail.sex == 1 ? '先生' : data.detail.sex == 2 ? '女士' : data.detail.sex == 4 ? '贵宾' : '';
|
|
|
|
let charArray = data.seller.deskStr.split('');
|
|
|
|
let modifiedArray = charArray.map(char => char + ' ');
|
|
|
|
let resultString = modifiedArray.join('').slice(0, -1);
|
|
|
|
const replacements = {
|
|
|
|
"{年月日}": data.seller.yearMonthDay,
|
|
|
|
"{月日}": data.seller.yearMonth,
|
|
|
|
"{餐段}": data.seller.soltName,
|
|
|
|
"{就餐时间}": data.seller.dateStr + data.seller.dateStrDivide,
|
|
|
|
"{包间名}": resultString,
|
|
|
|
"{区域名+包间名}": data.seller.tablesText,
|
|
|
|
"{经理名字}": data.staffinfo.name,
|
|
|
|
"{客人姓名}": data.detail.rname ? (data.detail.rname + str) : str=='贵宾' ? '贵宾' : '',
|
|
|
|
"{预订日期}": data.seller.yearMonthDay,
|
|
|
|
"{桌位}": resultString,
|
|
|
|
};
|
|
|
|
let newStr = voice_info.replace(/{预订日期}|{桌位}|{年月日}|{月日}|{餐段}|{就餐时间}|{包间名}|{区域名\+包间名}|{经理名字}|{客人姓名}/g, function (matched) {
|
|
|
|
return replacements[matched];
|
|
|
|
});
|
|
|
|
console.log('newStr', newStr);
|
|
|
|
plugin.textToSpeech({
|
|
|
|
lang: "zh_CN",
|
|
|
|
tts: true,
|
|
|
|
content: newStr,
|
|
|
|
success: function (res) {
|
|
|
|
that.filename = res.filename
|
|
|
|
that.speech()
|
|
|
|
},
|
|
|
|
fail: function (res) {
|
|
|
|
console.log("fail tts", res)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 开启语音播报
|
|
|
|
speech() {
|
|
|
|
var attentionAnim = wx.createAnimation({
|
|
|
|
duration: 1000,
|
|
|
|
timingFunction: 'linear',
|
|
|
|
})
|
|
|
|
this.attentionAnim = attentionAnim
|
|
|
|
this.setData({
|
|
|
|
_attentionAnim: attentionAnim,
|
|
|
|
attentionAnim: attentionAnim.export()
|
|
|
|
})
|
|
|
|
this.audioCtx = wx.createInnerAudioContext()
|
|
|
|
this.audioCtx.src = this.filename
|
|
|
|
this.audioCtx.loop = true
|
|
|
|
this.audioCtx.play()
|
|
|
|
this.audioCtx.onPlay((e) => {
|
|
|
|
this.setData({
|
|
|
|
isPlay: this.audioCtx.paused ? '2' : '1'
|
|
|
|
})
|
|
|
|
})
|
|
|
|
this.audioCtx.onPause((e) => {
|
|
|
|
this.setData({
|
|
|
|
isPlay: this.audioCtx.paused ? '2' : '1'
|
|
|
|
})
|
|
|
|
})
|
|
|
|
clearInterval(this.timers)
|
|
|
|
this.animation()
|
|
|
|
},
|
|
|
|
// 持续旋转动画
|
|
|
|
animation() {
|
|
|
|
let that = this;
|
|
|
|
var time = setInterval(function () {
|
|
|
|
this.n = this.n + 1;
|
|
|
|
let attentionAnim = that.data._attentionAnim
|
|
|
|
attentionAnim.rotate(180 * (this.n)).step()
|
|
|
|
that.setData({
|
|
|
|
attentionAnim: attentionAnim.export(),
|
|
|
|
})
|
|
|
|
}.bind(this), 1000)
|
|
|
|
this.timers = time;
|
|
|
|
},
|
|
|
|
// 暂停/继续播放
|
|
|
|
stopMusic() {
|
|
|
|
if (this.data.isPlay == '2') { // 2 暂停状态
|
|
|
|
console.log("开始");
|
|
|
|
clearInterval(this.timers)
|
|
|
|
this.animation()
|
|
|
|
this.audioCtx.play() //开始
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (this.data.isPlay == '1') { // 1 运行状态
|
|
|
|
console.log('暂停');
|
|
|
|
if (this.n % 2 != 0) {
|
|
|
|
this.n = this.n + 1;
|
|
|
|
let attentionAnim = this.data._attentionAnim;
|
|
|
|
attentionAnim.rotate(180 * this.n).step();
|
|
|
|
this.setData({
|
|
|
|
attentionAnim: attentionAnim.export(),
|
|
|
|
})
|
|
|
|
}
|
|
|
|
clearInterval(this.timers)
|
|
|
|
this.audioCtx.pause() //暂停
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 根据充值ID获取充值详情
|
|
|
|
getRechargeDetail(id) {
|
|
|
|
App.Activity.GetNewRecharge({
|
|
|
|
id
|
|
|
|
}).then(res => {
|
|
|
|
"{预订日期}": data.seller.yearMonthDay,
|
|
|
|
"{桌位}": resultString,
|
|
|
|
};
|
|
|
|
let newStr = voice_info.replace(/{预订日期}|{桌位}|{年月日}|{月日}|{餐段}|{就餐时间}|{包间名}|{区域名\+包间名}|{经理名字}|{客人姓名}/g, function (matched) {
|
|
|
|
return replacements[matched];
|
|
|
|
});
|
|
|
|
console.log('newStr', newStr);
|
|
|
|
plugin.textToSpeech({
|
|
|
|
lang: "zh_CN",
|
|
|
|
tts: true,
|
|
|
|
content: newStr,
|
|
|
|
success: function (res) {
|
|
|
|
that.filename = res.filename
|
|
|
|
that.speech()
|
|
|
|
},
|
|
|
|
fail: function (res) {
|
|
|
|
console.log("fail tts", res)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 开启语音播报
|
|
|
|
speech() {
|
|
|
|
var attentionAnim = wx.createAnimation({
|
|
|
|
duration: 1000,
|
|
|
|
timingFunction: 'linear',
|
|
|
|
})
|
|
|
|
this.attentionAnim = attentionAnim
|
|
|
|
this.setData({
|
|
|
|
_attentionAnim: attentionAnim,
|
|
|
|
attentionAnim: attentionAnim.export()
|
|
|
|
})
|
|
|
|
this.audioCtx = wx.createInnerAudioContext()
|
|
|
|
this.audioCtx.src = this.filename
|
|
|
|
this.audioCtx.loop = true
|
|
|
|
this.audioCtx.play()
|
|
|
|
this.audioCtx.onPlay((e) => {
|
|
|
|
this.setData({
|
|
|
|
isPlay: this.audioCtx.paused ? '2' : '1'
|
|
|
|
})
|
|
|
|
})
|
|
|
|
this.audioCtx.onPause((e) => {
|
|
|
|
this.setData({
|
|
|
|
isPlay: this.audioCtx.paused ? '2' : '1'
|
|
|
|
})
|
|
|
|
})
|
|
|
|
clearInterval(this.timers)
|
|
|
|
this.animation()
|
|
|
|
},
|
|
|
|
// 持续旋转动画
|
|
|
|
animation() {
|
|
|
|
let that = this;
|
|
|
|
var time = setInterval(function () {
|
|
|
|
this.n = this.n + 1;
|
|
|
|
let attentionAnim = that.data._attentionAnim
|
|
|
|
attentionAnim.rotate(180 * (this.n)).step()
|
|
|
|
that.setData({
|
|
|
|
attentionAnim: attentionAnim.export(),
|
|
|
|
})
|
|
|
|
}.bind(this), 1000)
|
|
|
|
this.timers = time;
|
|
|
|
},
|
|
|
|
// 暂停/继续播放
|
|
|
|
stopMusic() {
|
|
|
|
if (this.data.isPlay == '2') { // 2 暂停状态
|
|
|
|
console.log("开始");
|
|
|
|
clearInterval(this.timers)
|
|
|
|
this.animation()
|
|
|
|
this.audioCtx.play() //开始
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (this.data.isPlay == '1') { // 1 运行状态
|
|
|
|
console.log('暂停');
|
|
|
|
if (this.n % 2 != 0) {
|
|
|
|
this.n = this.n + 1;
|
|
|
|
let attentionAnim = this.data._attentionAnim;
|
|
|
|
attentionAnim.rotate(180 * this.n).step();
|
|
|
|
this.setData({
|
|
|
|
attentionAnim: attentionAnim.export(),
|
|
|
|
})
|
|
|
|
}
|
|
|
|
clearInterval(this.timers)
|
|
|
|
this.audioCtx.pause() //暂停
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 根据充值ID获取充值详情
|
|
|
|
getRechargeDetail(id) {
|
|
|
|
App.Activity.GetNewRecharge({
|
|
|
|
id
|
|
|
|
}).then(res => {
|
|
|
|
let detail = res.data
|
|
|
|
let exp_date = res.data.exp_date ? JSON.parse(res.data.exp_date) : ''
|
|
|
|
let recharge_list = res.data.recharge_list ? JSON.parse(res.data.recharge_list) : ''
|
|
|
|
let priceInfo, scoreInfo, certificate;
|
|
|
|
detail.recharge_list = recharge_list;
|
|
|
|
detail.exp_date = exp_date;
|
|
|
|
if (recharge_list.is_price == '1') priceInfo = '会员充值满' + detail.recharge_money + '元赠送' + recharge_list.price + '元余额';
|
|
|
|
if (recharge_list.is_score == '1') scoreInfo = '会员充值满' + detail.recharge_money + '元赠送' + recharge_list.score + '积分';
|
|
|
|
if (recharge_list.is_coupons == '1' && recharge_list.coupons_names.length > 0) certificate = recharge_list.coupons_names.join('、');
|
|
|
|
let exp_date = res.data.exp_date ? JSON.parse(res.data.exp_date) : ''
|
|
|
|
let recharge_list = res.data.recharge_list ? JSON.parse(res.data.recharge_list) : ''
|
|
|
|
let priceInfo, scoreInfo, certificate;
|
|
|
|
detail.recharge_list = recharge_list;
|
|
|
|
detail.exp_date = exp_date;
|
|
|
|
if (recharge_list.is_price == '1') priceInfo = '会员充值满' + detail.recharge_money + '元赠送' + recharge_list.price + '元余额';
|
|
|
|
if (recharge_list.is_score == '1') scoreInfo = '会员充值满' + detail.recharge_money + '元赠送' + recharge_list.score + '积分';
|
|
|
|
if (recharge_list.is_coupons == '1' && recharge_list.coupons_names.length > 0) certificate = recharge_list.coupons_names.join('、');
|
|
|
|
let recharge_data = (this.data.dataStr<detail.etime*1 && detail.is_open == '1') ? detail : ''
|
|
|
|
console.log('邀请函--------------充值',recharge_data);
|
|
|
|
this.setData({
|
|
|
|
recharge_data,
|
|
|
|
scoreInfo,
|
|
|
|
priceInfo,
|
|
|
|
certificate
|
|
|
|
})
|
|
|
|
})
|
|
|
|
recharge_data,
|
|
|
|
scoreInfo,
|
|
|
|
priceInfo,
|
|
|
|
certificate
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 获取评价赠送的券最新详情
|
|
|
|
getEvaluateFun(id){
|
|
...
|
...
|
@@ -889,54 +894,192 @@ Page({ |
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 根据券ID获取券详情
|
|
|
|
getActivityByIdFun(ids, length) {
|
|
|
|
let coupon_dataList = [];
|
|
|
|
ids.forEach(i => {
|
|
|
|
App.Activity.GetActivityById({
|
|
|
|
id: i.id
|
|
|
|
}).then(res => {
|
|
|
|
if (res.data.length > 0) {
|
|
|
|
let detail = res.data[0];
|
|
|
|
detail.stringifyUse = detail.use ? JSON.stringify(detail.use) : '';
|
|
|
|
detail.exp_date = detail.exp_date ? util.determine(detail.exp_date) : '';
|
|
|
|
detail.use = detail.use ? util.determine(detail.use) : '';
|
|
|
|
if ((detail.use && (!detail.use.is_cash || detail.use.is_cash == '1'))) {
|
|
|
|
let cash = detail.use.cash * 1;
|
|
|
|
let price = detail.price * 1;
|
|
|
|
detail.discount = cash != 0 ? ((price / cash) * 10).toFixed(1) : '';
|
|
|
|
// 根据券ID获取券详情
|
|
|
|
getActivityByIdFun(obj) {
|
|
|
|
App.Activity.GetActivityById({
|
|
|
|
id: obj.map(item => item.id).join(','),
|
|
|
|
}).then(res => {
|
|
|
|
if (res.data.length > 0) {
|
|
|
|
let list = res.data.filter(item => {
|
|
|
|
return this.data.dataStr < (item.etime * 1) && item.is_open == '1'
|
|
|
|
})
|
|
|
|
list.forEach(detail => {
|
|
|
|
detail.stringifyUse = detail.use ? JSON.stringify(detail.use) : '';
|
|
|
|
detail.exp_date = detail.exp_date ? util.determine(detail.exp_date) : '';
|
|
|
|
detail.arule = detail.arule ? util.determine(detail.arule) : '';
|
|
|
|
detail.use = detail.use ? util.determine(detail.use) : '';
|
|
|
|
if ((detail.use && (!detail.use.is_cash || detail.use.is_cash == '1'))) {
|
|
|
|
let cash = detail.use.cash * 1;
|
|
|
|
let price = detail.price * 1;
|
|
|
|
detail.discount = cash != 0 ? ((price / cash) * 10).toFixed(1) : '';
|
|
|
|
}
|
|
|
|
coupon_dataList.push(detail);
|
|
|
|
if (length === coupon_dataList.length) {
|
|
|
|
coupon_dataList = coupon_dataList.filter(item=>{return this.data.dataStr<(item.etime*1) && item.is_open == '1'})
|
|
|
|
console.log('邀请函--------------------优惠券',coupon_dataList);
|
|
|
|
this.setData({
|
|
|
|
coupon_dataList,
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 生命周期函数--监听页面隐藏
|
|
|
|
*/
|
|
|
|
onHide() {
|
|
|
|
clearInterval(this.timers)
|
|
|
|
if (this.audioCtx) {
|
|
|
|
this.audioCtx.destroy(); // 释放音频资源
|
|
|
|
}
|
|
|
|
},
|
|
|
|
let num = detail.receiveNum;
|
|
|
|
if (num > 0) {
|
|
|
|
detail.receiveNumText = ''
|
|
|
|
if (num >= 0 && num <= 100) {
|
|
|
|
detail.receiveNumText = num.toString();
|
|
|
|
} else if (num >= 101 && num <= 199) {
|
|
|
|
detail.receiveNumText = '100+';
|
|
|
|
} else if (num >= 200 && num <= 299) {
|
|
|
|
detail.receiveNumText = '200+';
|
|
|
|
} else {
|
|
|
|
detail.receiveNumText = Math.floor(num / 100) * 100 + '+';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (detail.exp_date && detail.exp_date.week_data) {
|
|
|
|
let noon = this.hasConsecutiveSelect(detail.exp_date.week_data, '1').rArr.join('、')
|
|
|
|
let nig = this.hasConsecutiveSelect(detail.exp_date.week_data, '2').rArr.join('、')
|
|
|
|
if (noon) noon = '午餐:' + noon
|
|
|
|
if (nig) nig = '晚餐:' + nig
|
|
|
|
detail.noonText = noon;
|
|
|
|
detail.nigText = nig;
|
|
|
|
}
|
|
|
|
})
|
|
|
|
let freeCoupons = list.filter(item => {
|
|
|
|
return item.is_type == '3'
|
|
|
|
})
|
|
|
|
// 免费券判断是否领取,弹框领取
|
|
|
|
if (freeCoupons.length > 0) {
|
|
|
|
let length = freeCoupons.length - 1
|
|
|
|
freeCoupons.forEach(i => {
|
|
|
|
this.getCoupon(i, freeCoupons[length].id, obj)
|
|
|
|
})
|
|
|
|
}
|
|
|
|
console.log('邀请函--------------------优惠券', list);
|
|
|
|
this.setData({
|
|
|
|
coupon_dataList: list,
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 获取所有的券并且展示
|
|
|
|
addCoupons(coupons, couponList) {
|
|
|
|
if (coupons && util.getType(coupons) == 'object') {
|
|
|
|
couponList.push({
|
|
|
|
id: coupon.id,
|
|
|
|
number: coupon.number
|
|
|
|
});
|
|
|
|
}
|
|
|
|
if (coupons && util.getType(coupons) === 'array' && coupons.length > 0) {
|
|
|
|
coupons.forEach(item => {
|
|
|
|
couponList.push({
|
|
|
|
id: item.id,
|
|
|
|
number: item.number
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
return couponList
|
|
|
|
},
|
|
|
|
// 弹框领取免费券
|
|
|
|
setcouponFun(arr) {
|
|
|
|
let str = arr.flatMap(item => Array(item.number).fill(item.id)).join(',');
|
|
|
|
console.log('弹框领取免费券id', str);
|
|
|
|
App.Activity.SetActivityAsReserve({
|
|
|
|
aid: str,
|
|
|
|
rid: this.id,
|
|
|
|
}).then((json) => {
|
|
|
|
if (json.ret != 200) {
|
|
|
|
wx.showToast({
|
|
|
|
title: res.msg,
|
|
|
|
duration: 2000,
|
|
|
|
mask: true
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 免费券 0未领取 1已领取 获取未领取的组成数组couponArr
|
|
|
|
getCoupon(item, id, obj) {
|
|
|
|
let couponArr = this.data.couponArr;
|
|
|
|
let totalPrice = this.data.totalPrice;
|
|
|
|
App.Activity.ActivityListByOpenid({
|
|
|
|
aid: item.id
|
|
|
|
}).then(res => {
|
|
|
|
if (res.ret == 200) {
|
|
|
|
if (res.data.length == 0) {
|
|
|
|
couponArr.push(item)
|
|
|
|
}
|
|
|
|
if (item.id == id && couponArr.length > 0) {
|
|
|
|
couponArr.forEach(item => {
|
|
|
|
let match = obj.find(b => b.id === item.id);
|
|
|
|
if (match) {
|
|
|
|
item.number = match.number;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
totalPrice = couponArr.reduce((sum, item) => sum + item.price * item.number, 0);
|
|
|
|
this.setcouponFun(couponArr)
|
|
|
|
this.couponModal.showModal()
|
|
|
|
}
|
|
|
|
console.log('未领取的券列表-----------', couponArr);
|
|
|
|
this.setData({
|
|
|
|
couponArr,
|
|
|
|
totalPrice
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
// 处理优惠券不可用日期数据
|
|
|
|
hasConsecutiveSelect(arr, type) {
|
|
|
|
let firstTitle = null;
|
|
|
|
let lastTitle = null;
|
|
|
|
let rArr = []
|
|
|
|
let num = 0
|
|
|
|
for (let i = 0; i < arr.length; i++) {
|
|
|
|
let str = type == '1' ? arr[i].selectNoon : arr[i].selectNig
|
|
|
|
if (str) {
|
|
|
|
rArr.push(arr[i].title)
|
|
|
|
num++
|
|
|
|
if (num == 1) {
|
|
|
|
firstTitle = arr[i].title
|
|
|
|
}
|
|
|
|
if (num >= 5) {
|
|
|
|
lastTitle = arr[i].title
|
|
|
|
}
|
|
|
|
if (num >= 5 && i >= (arr.length - 1)) {
|
|
|
|
let fi = rArr.findIndex((item) => {
|
|
|
|
return item == firstTitle
|
|
|
|
})
|
|
|
|
rArr.splice(fi, num, firstTitle + '至' + lastTitle)
|
|
|
|
num = 0
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if (num < 5) {
|
|
|
|
num = 0
|
|
|
|
firstTitle = null;
|
|
|
|
lastTitle = null;
|
|
|
|
} else {
|
|
|
|
let fi = rArr.findIndex((item) => {
|
|
|
|
return item == firstTitle
|
|
|
|
})
|
|
|
|
rArr.splice(fi, num, firstTitle + '至' + lastTitle)
|
|
|
|
num = 0
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return {
|
|
|
|
rArr,
|
|
|
|
lastTitle,
|
|
|
|
firstTitle
|
|
|
|
};
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 生命周期函数--监听页面隐藏
|
|
|
|
*/
|
|
|
|
onHide() {
|
|
|
|
clearInterval(this.timers)
|
|
|
|
if (this.audioCtx) {
|
|
|
|
this.audioCtx.destroy(); // 释放音频资源
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 生命周期函数--监听页面卸载
|
|
|
|
*/
|
|
|
|
onUnload() {
|
|
|
|
clearInterval(this.timers)
|
|
|
|
if (this.audioCtx) {
|
|
|
|
this.audioCtx.destroy(); // 释放音频资源
|
|
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 生命周期函数--监听页面卸载
|
|
|
|
*/
|
|
|
|
onUnload() {
|
|
|
|
clearInterval(this.timers)
|
|
|
|
if (this.audioCtx) {
|
|
|
|
this.audioCtx.destroy(); // 释放音频资源
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// 设置虚拟到店时间
|
|
|
|
bindPickerChange: function(e) {
|
|
|
|
let index = e.detail.value
|
|
...
|
...
|
@@ -985,57 +1128,57 @@ Page({ |
|
|
|
computeHour (time1, time2, interval) {
|
|
|
|
//time1 开始时间 time2结束时间 interval间隔时长
|
|
|
|
function getTimeList (time1, time2, interval) {
|
|
|
|
var timeList = [];
|
|
|
|
time1 = time1.split(":");
|
|
|
|
time2 = time2.split(":");
|
|
|
|
time1 = new Date(0, 0, 0, time1[0], time1[1], 0);
|
|
|
|
time2 = new Date(0, 0, 0, time2[0], time2[1], 0);
|
|
|
|
interval = interval * 60 * 1000;
|
|
|
|
while (time1 <= time2) {
|
|
|
|
timeList.push(time1.format("hh:mm"));
|
|
|
|
time1 = new Date(time1.getTime() + interval);
|
|
|
|
}
|
|
|
|
return timeList;
|
|
|
|
var timeList = [];
|
|
|
|
time1 = time1.split(":");
|
|
|
|
time2 = time2.split(":");
|
|
|
|
time1 = new Date(0, 0, 0, time1[0], time1[1], 0);
|
|
|
|
time2 = new Date(0, 0, 0, time2[0], time2[1], 0);
|
|
|
|
interval = interval * 60 * 1000;
|
|
|
|
while (time1 <= time2) {
|
|
|
|
timeList.push(time1.format("hh:mm"));
|
|
|
|
time1 = new Date(time1.getTime() + interval);
|
|
|
|
}
|
|
|
|
return timeList;
|
|
|
|
}
|
|
|
|
Date.prototype.format = function (format) {
|
|
|
|
var date = {
|
|
|
|
"M+": this.getMonth() + 1,
|
|
|
|
"d+": this.getDate(),
|
|
|
|
"h+": this.getHours(),
|
|
|
|
"m+": this.getMinutes(),
|
|
|
|
"s+": this.getSeconds(),
|
|
|
|
"q+": Math.floor((this.getMonth() + 3) / 3),
|
|
|
|
S: this.getMilliseconds(),
|
|
|
|
};
|
|
|
|
if (/(y+)/.test(format))
|
|
|
|
format = format.replace(
|
|
|
|
RegExp.$1,
|
|
|
|
(this.getFullYear() + "").substr(4 - RegExp.$1.length)
|
|
|
|
);
|
|
|
|
for (var k in date)
|
|
|
|
if (new RegExp("(" + k + ")").test(format))
|
|
|
|
format = format.replace(
|
|
|
|
RegExp.$1,
|
|
|
|
RegExp.$1.length == 1
|
|
|
|
? date[k]
|
|
|
|
: ("00" + date[k]).substr(("" + date[k]).length)
|
|
|
|
);
|
|
|
|
return format;
|
|
|
|
var date = {
|
|
|
|
"M+": this.getMonth() + 1,
|
|
|
|
"d+": this.getDate(),
|
|
|
|
"h+": this.getHours(),
|
|
|
|
"m+": this.getMinutes(),
|
|
|
|
"s+": this.getSeconds(),
|
|
|
|
"q+": Math.floor((this.getMonth() + 3) / 3),
|
|
|
|
S: this.getMilliseconds(),
|
|
|
|
};
|
|
|
|
if (/(y+)/.test(format))
|
|
|
|
format = format.replace(
|
|
|
|
RegExp.$1,
|
|
|
|
(this.getFullYear() + "").substr(4 - RegExp.$1.length)
|
|
|
|
);
|
|
|
|
for (var k in date)
|
|
|
|
if (new RegExp("(" + k + ")").test(format))
|
|
|
|
format = format.replace(
|
|
|
|
RegExp.$1,
|
|
|
|
RegExp.$1.length == 1
|
|
|
|
? date[k]
|
|
|
|
: ("00" + date[k]).substr(("" + date[k]).length)
|
|
|
|
);
|
|
|
|
return format;
|
|
|
|
};
|
|
|
|
return getTimeList(time1, time2, interval);
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
|
|
*/
|
|
|
|
onPullDownRefresh() {
|
|
|
|
/**
|
|
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
|
|
*/
|
|
|
|
onPullDownRefresh() {
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 页面上拉触底事件的处理函数
|
|
|
|
*/
|
|
|
|
onReachBottom() {
|
|
|
|
/**
|
|
|
|
* 页面上拉触底事件的处理函数
|
|
|
|
*/
|
|
|
|
onReachBottom() {
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}) |
|
|
\ No newline at end of file |
...
|
...
|
|