Commit a1591e7a1ae5bf3ba64f8ddb6ad3684492d21bab

Authored by pengye
1 parent b870bda6

邀请函新增模板300、入驻文字修改

... ... @@ -165,7 +165,8 @@
"pages/detail_owner_invitation9",
"pages/detail_owner_invitation10",
"pages/detail_owner_invitation11",
"pages/detail_owner_invitation12"
"pages/detail_owner_invitation12",
"pages/detail_owner_invitation13"
]
}
],
... ...
... ... @@ -284,8 +284,8 @@
</block>
</view>
<view class="businessBox font24r">
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,餐厅入驻请点击
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</view>
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view>
</view>
<view class="{{(!marketing || (marketing.is_transpond!='1' && marketing.is_online_book!='1'))?'more more1':'more'}}" wx:if="{{showMoreTip}}">
<view class="moreText">滑动查看更多</view>
... ...
... ... @@ -454,8 +454,8 @@
</view>
</block>
<view class="businessBox font24r">
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,餐厅入驻请点击
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</view>
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view>
</view>
<view class="{{(!marketing || (marketing.is_transpond!='1' && marketing.is_online_book!='1'))?'more more1':'more'}}" wx:if="{{showMoreTip}}">
<view class="moreText">滑动查看更多</view>
... ...
... ... @@ -157,8 +157,8 @@
</view>
</view>
<view class="businessBox font24r">
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,餐厅入驻请点击
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</view>
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view>
</view>
<view class="{{(!marketing || (marketing.is_transpond!='1' && marketing.is_online_book!='1'))?'more more1':'more'}}" wx:if="{{showMoreTip}}">
<view class="moreText">滑动查看更多</view>
... ...
// pack-invitation/pages/detail_owner_invitation13.js
var mta = require('mta-wechat-analysis')
import util from '../../utils/util';
import App from '../../utils/api';
import TP from '../../utils/tpls';
import RS from '../../utils/reserveStatus'
var plugin = requirePlugin("WechatSI");
import canvas from "../../pages/customer/canvas"
Page({
/**
* 页面的初始数据
*/
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图片地址
colors:'',//导航栏颜色
couponData: '', //评价赠送优惠券数据
timeList: [],
isMany:'0',//0默认餐段 1多时段
temp_ddate:'',//展示的到店时间
lite_style:'',//小程序转发卡片样式
isMoreBtn:'',//再次预订按钮
isPaymenBtn:'',//支付定金按钮
isShareItem:'',//转发客人按钮
couponArr: [],//待领取的优惠券列表
couponList:[],//优惠券列表
animationData: {},
animationData2:{},
isShow:'0',
isFrame:'0'
},
tablestr: '',
urlsValue: [],
screenHeight: '',
attentionAnim: {},
audioCtx: '', //播报
timers: null, // 动画定时器
n: 0,
modal:'',
couponModal: '',
give_user:'',
/**
* 生命周期函数--监听页面加载
*/
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() {
this.modal.showModal()
},
// 关闭截屏弹框
closeModal() {
this.modal.closeModal()
},
// 关闭优惠券弹框(更新已被领取数量)
closeCouponModal() {
this.getActivityByIdFun(this.data.couponList,'1')
this.couponModal.closeModal()
this.setData({
isShow: '1',
})
setTimeout(() => {
this.startAnimation();
}, 800);
},
// 页面滚动事件
onPageScroll: function (event) {
if(event.scrollTop>150){ //当页面滚动到某个位置时(这里设置为50),将导航栏背景颜色设置为白色
this.setData({
show_white:true
})
}else{
this.setData({
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({
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({
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分')
let detail = this.formatDatail(reserev, dateSmart)
detail.oneTableName = res.data.tables[0].name;
reserev.soltName = '';
this.setData({
detail,
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: {
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 || detail.mname,
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.seller.phone,
}
})
this.give_user = reserev.give_user ? reserev.give_user : '2';
console.log('reserev信息', reserev);
console.log('seller信息', this.data.seller);
console.log('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,
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;
let openid = getApp().openid;
if (!openid) return wx.showToast({
title: '请在小程序中支付订金!',
icon: 'none',
})
App.PayOnline.CombineTransactionsByDeposit({
id: this.data.paymentId,
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,
}).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(liteStyle, timeStr) {
let style = liteStyle.split('-');
let type1 = style[0];
let type2 = style[1];
let data = this.data.detail;
let isMany = this.data.isMany;
let img = data.seller.seller_image.replace(/^http:/, "https:");
let d = data.ddate_solt;
let date1 = util.unixtoTime(data.ddate, 'MM月DD日');
let date2 = util.unixtoTime(data.ddate, 'MM/DD');
let week = ' ' + util.unixtoTime(data.ddate, '周WW');
let timeSlot1 = ' ' + (isMany == '0' ? (d == '1' ? '早上' : d == '2' ? '中午' : d == '3' ? '晚上' : '') : data.mname);
let timeSlot2 = ' ' + this.data.seller.soltName;
let time = this.data.temp_ddate ? ' ' + this.data.temp_ddate : ' ' + util.unixtoTime(data.ddate, 'HH:II')
time = timeStr ? timeStr : time;
let [day1, day2] = [...util.unixtoTime(data.ddate, '周WW')]
let section = ''
// 老样式123
if (type1 && !type2 && type1 != '4') {
section = type1 == '1' ? week + timeSlot1 : type1 == '2' ? week + time : type1 == '3' ? week + timeSlot2 : '';
}
// 新样式
if (type1 && type2) {
if (type1 == '1') {
section = type2 == '1' ? date1 + week + time + timeSlot2 : type2 == '2' ? date1 + week + timeSlot1 : type2 == '3' ? date1 + week + time : type2 == '4' ? date1 + week + timeSlot2 : '';
}
if (type1 == '2') {
section = type2 == '1' ? week + time + timeSlot2 : type2 == '2' ? week + timeSlot1 : type2 == '3' ? week + time : type2 == '4' ? week + timeSlot2 : '';
}
if (type1 == '3' || type1 == '4') {
section = type2 == '1' ? time + timeSlot2.trim() : type2 == '2' ? timeSlot1.trim() : type2 == '3' ? time.trim() : type2 == '4' ? timeSlot2.trim() : '';
}
}
if (type1 && !type2 && type1 == '4') {
section = week + timeSlot2;
}
this.setData({
wxml: canvas({
imgUrl: img || 'https://nosqn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png',
info: {
sellerName: data.seller.sellername,
date: util.unixtoTime(data.ddate, 'MM月DD日'),
time: section,
oneTableName: data.oneTableName,
},
type1,
type2,
date2,
week,
day2,
})
})
},
onImgOK(e) {
this.setData({
imgSrc: e.detail.path
})
console.log('海报生成成功', this.data.imgSrc);
},
// 分享
sharesetting() {
wx.reportMonitor('1017', 1)
this.closeModal()
if(this.data.options.isOrder == '1' && this.data.detail.status !='4'){
return {
title: '推荐' + this.data.seller.name + ',点击可查看详情并导航到店',
path: util.http_build_query({
id: this.data.detail.seller.id
}, '/pages/reserve/shopHome'),
imageUrl: this.data.detail.seller.seller_image || 'http://nosqn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png',
}
}else{
let parmdata = {
id: this.id,
fromid: getApp().openid,
hasInvitation: 1,
tplid: this.data.options.tplid
}
if (this.data.options.uid) {
parmdata.uid = this.data.options.uid;
}
return {
title: '我已订好' + this.data.seller.name + ',点击可查看详情并导航到店',
path: util.http_build_query(parmdata, '/pages/customer/detail_owner_invitation_new'),
imageUrl: this.data.imgSrc || 'http://nosqn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png',
}
}
},
// 修改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 ? '贵宾' : '')
} else if (!detail.rname && detail.sex == 4) {
detail.rnameStr = '贵宾'
} 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, 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;
inviteImgUrl = 'https://nosqn.colorcun.com/inviteText1.png';
settingUrl = 'https://nosqn.colorcun.com/template11.png';
colors = "#0B1A67";
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菜品券 只有代金券有几折显示
// 获取全部的优惠券(商家券、个人券、免费券、付费券)
couponList = this.addCoupons(coupon,couponList);
couponList = this.addCoupons(coupon_data_pay,couponList);
couponList = this.addCoupons(coupon_data_free,couponList);
// 根据券ID获取券详情
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);
this.getLocalLunchTime(data.lite_style);
let obj = {
chef,
marketing,
home,
reserve,
signboard,
store,
swich_phone,
is_comments,
StyleType,
titleType,
themeColor,
settingUrl,
inviteImgUrl,
colors,
lite_style:data.lite_style,
couponList,
isMoreBtn:marketing && marketing.is_online_book=='1' && this.data.options.onlineReserve == '1',
isShareItem: this.data.options.isOrder != '1' && marketing && marketing.is_transpond=='1',
}
console.log('获取数据GetSellerTemplateConf--------------------', {
...obj
});
this.setData({
...obj
})
// 开启语音播报
if (reserve && reserve.swich_voice == '1') {
this.setData({
isPlay: '1',
})
this.textToSpeechFun(reserve.voice_info)
}
}).catch(res => {
console.log('GetSellerTemplateConf请求失败');
})
},
// 获取日期对应的时段
getLocalLunchTime(lite_style) {
let detail = this.data.detail;
let ddateStr = new Date(detail.ddate * 1000);
let year = ddateStr.getFullYear();
let month = ddateStr.getMonth() + 1;
let day = ddateStr.getDate();
let day1 = year + '-' + (month < 10 ? '0' + month : month) + '-' + (day < 10 ? '0' + day : day);
App.Seller.getMealSectionByDay({
sellerid: detail.seller.id,
day: day1,
}).then(res => {
let data = res.data;
let lunchDinnerList = [];
let isMany = '0';//0默认餐段 1多时段
if (data.length <= 3 && !data[0].ddate_solt) {
isMany = '0';
data.forEach(i => {
if (i.mname == '早餐') {
lunchDinnerList.push({
mname: "早餐",
mdate: i.mdate,
ddate_solt: 1,
})
}
if (i.mname == '午餐') {
lunchDinnerList.push({
mname: "午餐",
mdate: i.mdate,
ddate_solt: 2,
})
}
if (i.mname == '晚餐') {
lunchDinnerList.push({
mname: "晚餐",
mdate: i.mdate,
ddate_solt: 3,
})
}
})
} else {
isMany = '1';
lunchDinnerList = data;
}
let obj = lunchDinnerList.filter(i => {
return i.ddate_solt == detail.ddate_solt
})
var timeList = [];
if (obj && obj.length > 0) {
var time = obj[0].mdate.split("-");
timeList = this.computeHour(time[0], time[1], 15);
}
this.setData({
timeList,
isMany,
})
// 获取转发客人卡片设置
let lite = lite_style || '3';
let liteStyle = lite.split('-');
if (liteStyle[0] == '0') {
this.setData({
imgSrc: detail.seller.seller_image
})
} else {
this.painterBtn(lite);
}
}).catch(res => {
console.log(res, '获取多时段失败');
})
},
// 点击商家有礼
gotoSellerGift(e){
this.couponModal.closeModal()
const form = e.currentTarget.dataset['form'];
let url = util.http_build_query({
id: this.data.detail.id,
hasSellerShare: this.data.options.hasSellerShare,
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;
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,
"{客人姓名}": 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 => {
if (res.data) {
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 recharge_data = (this.data.dataStr<detail.etime*1 && detail.is_open == '1') ? detail : ''
console.log('邀请函--------------充值',recharge_data);
this.setData({
recharge_data,
scoreInfo,
priceInfo,
certificate
})
} else {
this.setData({
recharge_data: {},
})
}
})
},
// 获取评价赠送的券最新详情
getEvaluateFun(id){
App.Activity.GetActivityById({
id
}).then(res => {
if (res.data.length > 0) {
let couponData = res.data[0]
let data = couponData.expiration_date ? util.determine(couponData.expiration_date) : '';
// showCoupon 代表赠送的券没过有效期 && 是开启状态
couponData.showCoupon = (((data.valid_forever == '0' && this.data.dataStr < (data.etime * 1)) || data.valid_forever == '1') && couponData.is_open == '1') ? '1' : '0';
console.log('邀请函--------------------评价赠送的优惠券',couponData);
this.setData({
couponData:res.data[0]
})
}
})
},
// 根据券ID获取券详情
getActivityByIdFun(obj,setcoupon) {
App.Activity.GetActivityById({
id: obj.map(item => item.id).join(','),
}).then(res => {
if (res.data.length > 0) {
// valid_forever 1永久 0非永久
let list = res.data.filter(item => {
let data = item.expiration_date ? util.determine(item.expiration_date) : {};
let validForever = data.valid_forever === '1';
let isValid = item.is_type === '3' ?
(validForever || (data.valid_forever === '0' && this.data.dataStr < (data.etime * 1))) :
(this.data.dataStr < (item.etime * 1));
return isValid && 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) : '';
detail.expiration_date = detail.expiration_date ? util.determine(detail.expiration_date) : '';
detail.aexpiration = detail.aexpiration ? util.determine(detail.aexpiration) : '';
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) : '';
}
let num = detail.grant_num*1-detail.grant_last*1;
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(num == 0){
let str = detail.grant_num*1
detail.receiveNumText = ''
if (str >= 0 && str <= 100) {
detail.receiveNumText = str.toString();
} else if (str >= 101 && str <= 199) {
detail.receiveNumText = '100+';
} else if (str >= 200 && str <= 299) {
detail.receiveNumText = '200+';
} else {
detail.receiveNumText = Math.floor(str / 100) * 100 + '+';
}
}
if (detail.exp_date && detail.exp_date.week_data) {
let mor = this.hasConsecutiveSelect(detail.exp_date.week_data, '1').rArr.join('、')
let noon = this.hasConsecutiveSelect(detail.exp_date.week_data, '2').rArr.join('、')
let nig = this.hasConsecutiveSelect(detail.exp_date.week_data, '3').rArr.join('、')
if (mor) mor = '早餐:' + mor
if (noon) noon = '午餐:' + noon
if (nig) nig = '晚餐:' + nig
detail.morText = mor;
detail.noonText = noon;
detail.nigText = nig;
}
})
let freeCoupons = list.filter(item => {
return item.is_type == '3'
})
let give = this.give_user;
let couponShow = false;
switch (give) {
case '1':
couponShow = this.data.options.hasSellerShare == '1' ? true : false;
break;
case '2':
couponShow = true;
break;
case '3':
couponShow = this.data.options.hasSellerShare != '1' ? true : false;
break;
}
// 免费券判断是否领取,弹框领取
if (freeCoupons.length > 0 && couponShow) {
this.getCoupon(freeCoupons,obj,setcoupon)
} else {
if(setcoupon!='1'){
this.setData({
isFrame:'1',
})
}
}
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: json.msg,
duration: 2000,
mask: true
})
}
})
},
// 免费券 0未领取 1已领取 获取未领取的组成数组couponArr
getCoupon(arr,info,setcoupon) {
let str = arr.flatMap(item => Array(item.number).fill(item.id)).join(',');
App.Activity.ActivityListByOpenid({
aid: str,
sellerid:this.data.seller.sid,
}).then(res => {
if (res.ret == 200) {
let couponArr = [];
let totalPrice = 0;
let coupon_dataList = this.data.coupon_dataList;
let list = res.data;
if(setcoupon!='1'){
list.forEach(item=>{
item.cdate = item.cdate * 1;
item.useStime = '';
item.useEtime = '';
let condition = item.aexpiration ? util.determine(item.aexpiration) : '';
if (condition.valid_forever === '0' && condition.stime && condition.etime) {
item.useStime = util.unixtoTime(condition.stime, 'YYYY-MM-DD');
item.useEtime = util.unixtoTime(condition.etime, 'YYYY-MM-DD');
}
if (condition.valid_forever === '1') {
item.foreverText = '永久有效';
}
if (condition.valid_forever === '0' && condition.today) {
let obj = this.setTimeRange(item.cdate, 0, parseInt(condition.today) - 1);
item.useStime = obj.useStimeNum;
item.useEtime = obj.useEtimeNum;
}
if (condition.valid_forever === '0' && condition.tomorrow) {
let obj = this.setTimeRange(item.cdate, 1, condition.tomorrow * 1);
item.useStime = obj.useStimeNum;
item.useEtime = obj.useEtimeNum;
}
if (condition.valid_forever === '0' && condition.sday && condition.eday) {
let obj = this.setTimeRange(item.cdate, parseInt(condition.sday) - 1, parseInt(condition.eday) - 1);
item.useStime = obj.useStimeNum;
item.useEtime = obj.useEtimeNum;
}
})
list = list.filter(item => {
let condition = item.aexpiration ? util.determine(item.aexpiration) : '';
return (item.useEtime >= this.data.dataStr) || (item.foreverText == '永久有效') || (condition.valid_forever === '0' && condition.stime && condition.etime)
});
}
list.sort((a, b) => b.cdate - a.cdate);
list = list.reduce((accumulator, current) => {
if (!accumulator.some(item => item.aid === current.aid)) {
accumulator.push(current);
}
return accumulator;
}, []);
const strArray = str.split(',');
const result = strArray.filter(num => {
return!list.some(item => item.id === num);
});
console.log('待领取的券id',result);
if(result.length>0){
result.forEach(item=>{
let match = arr.find(b => b.id === item);
let obj = info.find(b => b.id === item);
console.log('待领取的券详情',match);
let record = {
id:'',
number:'',
grant_last:'',
price:'',
desc:'',
}
if (obj) {
record.number = obj.number;
}
if(match){
record.grant_last = match.grant_last*1*1;
record.id = match.id;
record.desc = match.desc;
record.price = match.price;
}
if (record.number > record.grant_last && record.grant_last > 0) {
record.number = record.grant_last
}
// 只留下可领取数量大于0的
if(record.grant_last > 0 && record.number){
console.log('可领取的券',{...record});
couponArr.push({
...record
})
}
})
if(couponArr.length>0 && setcoupon!='1'){
totalPrice = couponArr.reduce((sum, item) => sum + item.price * item.number, 0);
this.setcouponFun(couponArr)
setTimeout(() => {
this.setData({
couponArr,
totalPrice:parseFloat(totalPrice.toFixed(2)),
})
this.couponModal.showModal()
}, 3000);
}else {
if(setcoupon!='1'){
this.setData({
isFrame:'1',
})
}
}
}else {
if(setcoupon!='1'){
this.setData({
isFrame:'1',
})
}
}
list.forEach(item=>{
let idx = coupon_dataList.findIndex(b => b.id === item.id);
if (idx !== null && idx !== undefined && coupon_dataList[idx]) {
const detail = coupon_dataList[idx];
detail.resultCoupon = '1'; // 显示已领取
detail.cdate = item.cdate * 1;
detail.useStime = '';
detail.useEtime = '';
let condition = detail.aexpiration
if (condition.valid_forever === '0' && condition.stime && condition.etime) {
detail.useStime = util.unixtoTime(condition.stime, 'YYYY-MM-DD');
detail.useEtime = util.unixtoTime(condition.etime, 'YYYY-MM-DD');
}
if (condition.valid_forever === '1') {
detail.foreverText = '永久有效';
}
if (condition.valid_forever === '0' && condition.today) {
let obj = this.setTimeRange(detail.cdate, 0, parseInt(condition.today) - 1);
detail.useStime = obj.useStime;
detail.useEtime = obj.useEtime;
}
if (condition.valid_forever === '0' && condition.tomorrow) {
let obj = this.setTimeRange(detail.cdate, 1, condition.tomorrow * 1);
detail.useStime = obj.useStime;
detail.useEtime = obj.useEtime;
}
if (condition.valid_forever === '0' && condition.sday && condition.eday) {
let obj = this.setTimeRange(detail.cdate, parseInt(condition.sday) - 1, parseInt(condition.eday) - 1);
detail.useStime = obj.useStime;
detail.useEtime = obj.useEtime;
}
}
})
console.log('未领取的券列表-----------', couponArr);
this.setData({
coupon_dataList,
})
}
})
},
// 计算免费券有效期的起始、结束日期
setTimeRange(cdate, startOffset, endOffset) {
const startDate = new Date((cdate + startOffset * 86400) * 1000);
startDate.setHours(0, 0, 0, 0);
const useStime = util.unixtoTime(startDate.getTime() / 1000, 'YYYY-MM-DD');
const endDate = new Date((cdate + endOffset * 86400) * 1000);
endDate.setHours(23, 59, 59, 0);
const useEtime = util.unixtoTime(endDate.getTime() / 1000, 'YYYY-MM-DD');
let useEtimeNum = endDate.getTime() / 1000;
return { useStime, useEtime,useEtimeNum };
},
// 处理优惠券不可用日期数据
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].selectMor : type == '2' ? arr[i].selectNoon : type == '3' ? 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(); // 释放音频资源
}
},
// 设置虚拟到店时间
bindPickerChange: function(e) {
let index = e.detail.value
let temp_ddate = this.data.timeList[index]
this.setData({
temp_ddate
})
let detailInfo = this.data.detail;
const reserveDate = new Date(detailInfo.ddate*1000);
let reserveTime =
reserveDate.getFullYear() +
"-" +
(reserveDate.getMonth() + 1) +
"-" +
reserveDate.getDate();
let times = this.getNewDate(reserveTime + " " + temp_ddate).getTime() / 1000
App.Reserve.SetReserveTempDdate({
rid:this.id,
temp_ddate:times,
}).then(res => {
if (res.ret == 200) {
let lite_style = this.data.lite_style
lite_style = lite_style || '3';
let style =lite_style.split('-');
let type1 =style[0];
let type2 =style[1];
if((type1=='2' && !type2) || (type2 && (type2 == '1' || type2 == '3') || (type1=='4' && !type2))){
let time = temp_ddate || this.data.timeList[index]
this.painterBtn(
lite_style,
time
);
}
}
})
},
// ios 部分机型不兼容new Date() 转换字符串
getNewDate(data) {
if(typeof data === 'string') {
let arr = data.split(/[- : \/]/)
if(arr[1] !== undefined || arr[1] !== null){
arr[1] = arr[1] - 1
}
return new Date(...arr)
}
return new Date(data || new Date())
},
// 点击关闭领券弹框后,出现图片缩小到商家有礼的位置消失动画
startAnimation() {
const animation = wx.createAnimation({
duration: 800,
timingFunction: 'ease',
});
animation.translateY('-60%')
.translateX('34%')
.scale(0)
.step();
this.setData({
animationData: animation.export(),
});
setTimeout(() => {
this.startSecondAnimation();
}, 800);
},
// 出现商家有礼图标,并且晃动2下
startSecondAnimation() {
const animation = wx.createAnimation({
duration: 200,
timingFunction: 'ease'
});
animation.scale(1).step()
.rotate(-15).step()
.rotate(15).step()
.rotate(-15).step()
.rotate(15).step()
.rotate(0).step();
this.setData({
animationData2: animation.export()
});
},
//根据起始时间(获取时间时间段)
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;
}
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;
};
return getTimeList(time1, time2, interval);
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
})
\ No newline at end of file
... ...
{
"navigationStyle": "custom",
"navigationBarTextStyle": "white",
"usingComponents": {
"nav": "/components/nav/nav",
"painter":"/components/painter/painter",
"titleStyle":"/components/titleStyle/titleStyle",
"my-modal": "/components/modal/modal",
"scroll-number": "/components/scroll-number/index",
"subscribe": "/components/userinfo/subscribe"
}
}
\ No newline at end of file
... ...
<!--pack-invitation/pages/detail_owner_invitation13.wxml-->
<import src="../../pages/tpl/invitation"></import>
<nav hasHome id='nav' backgroundColor="{{show_white ? colors : 'transparent'}}" place="{{false}}"></nav>
<scroll-view scroll-y class="viewBox viewBox11">
<image wx:if="{{hasValueBroadcast && reserve && reserve.swich_voice && reserve.swich_voice=='1'}}" class="musicImg" src="{{isPlay=='1'?'https://qn.colorcun.com/open.svg':'https://qn.colorcun.com/close.svg'}}" bindtap="stopMusic" animation="{{attentionAnim}}" />
<image class="giftImg {{(hasValueCertificate && marketing && coupon_dataList.length>0) && isFrame == '0' ? 'giftImg1' : '' }}"
bindtap="gotoSellerGift"
data-form="1"
animation="{{animationData2}}"
wx:if="{{(hasValueCertificate && marketing && coupon_dataList.length>0) || (is_comments=='1' && !is_user_comments && marketing.is_comments_coupon=='1' && couponData && couponData.showCoupon =='1') || (hasValueRecharge && marketing && marketing.is_recharge=='1' && recharge_data)}}"
src="https://nosqn.colorcun.com/sellerGiftTwo.png" mode=""/>
<view class="fullscreenMask" animation="{{animationData}}" wx:if="{{isShow=='1'}}">
<image src="https://qn.colorcun.com/getCouponIcon2.png" mode=""/>
</view>
<view class="targetPoint" style="top: 35%; right: 4%;"></view>
<image wx:if="{{detail && detail.status =='4'}}" class="cannotImg" src="https://qn.colorcun.com/cancelImg.png" />
<image wx:if="{{options && options.isOrder == '1' && detail.status !='4'}}" class="cannotImg" src="https://qn.colorcun.com/overImg.png" />
<view class="reservationInfo" style="background: url('{{settingUrl}}') no-repeat;background-size:cover;">
<view class="infoTop">
<view class="infoTopName">
<text space="nbsp" class="font28r" wx:if="{{reserve && reserve.swich_slogan == '1' && home && home.slogan}}">{{home.slogan}}</text>
<text space="nbsp" class="name">{{seller.name||reserve.seller_name}}</text>
</view>
<view class="imgBox">
<image class="inviteImg" src="{{inviteImgUrl}}" mode="aspectFill" />
</view>
</view>
<view class="bookInfo">
<view class="infoItem infoItemOne">
<text space="nbsp" wx:if="{{reserve && reserve.swich_booking=='1' && reserve.book_info}}" class="contentData font28r bookData">{{reserve.book_info}}</text>
</view>
<view class="infoItem" wx:if="{{seller.date}}">
<view class="label font28r">上课日期:</view>
<view class="contentData font36r">{{seller.date}}</view>
</view>
<view class="infoItem" wx:if="{{seller.soltName}}">
<view class="label font28r">上课时间:</view>
<view class="arrivalBox">
<view class="contentData font36r"><text class="font36r">{{temp_ddate}}</text></view>
<picker wx:if="{{detail && options && options.isOrder != '1' && (detail.status =='1' || detail.status =='2') && options.hasSellerShare == '1'}}" bindchange="bindPickerChange" value="{{index}}" range="{{timeList}}">
<view class="picker">
<button>修改到店时间</button>
</view>
</picker>
</view>
</view>
<view class="infoItem" wx:if="{{seller.tablesText}}">
<view class="label font28r">授课老师:</view>
<view class="contentData font36r">{{seller.tablesText}}</view>
</view>
<view wx:if="{{roomimage && roomimage.length>0}}" class="{{roomimage.length=='1'?'pageSpacing':'pageSpacing1'}}">
<view wx:for="{{roomimage}}" class="imgs" wx:key="index" bindtap="lookroom" data-item="{{item}}">
<image class="imageStyle" mode="aspectFill" src="{{item.url}}"></image>
<text>{{item.name}}</text>
</view>
</view>
<text space="nbsp" class="welcomeMsg font28r" wx:if="{{reserve && reserve.swich_welcome == '1' && marketing && marketing.wecomle}}">
{{marketing.wecomle}}
</text>
</view>
<view wx:if="{{titleType == '1'}}" class="separatrixOne">
<block wx:for="{{num1}}" wx:key="index"><text class="text{{item}}"></text></block>
<text class="text9"></text>
<block wx:for="{{num2}}" wx:key="index"><text class="text{{item}}"></text></block>
</view>
<view class="centerBox">
<view class="positioning">
<view class="positioningName">
<view class="mapBox">
<text class="font24r telBox">地址:</text>
<text space="nbsp" class="font24r positioningText">{{seller.addr || reserve.seller.map_address}}</text>
</view>
<button wx:if="{{seller.addr || reserve.seller.map_address}}" bindtap="looklocation" class="flex-cc font24r mapBtn">导航到店</button>
</view>
<text class="font24r telBox" wx:if="{{swich_phone!='0' && seller && seller.tel && seller.tel.length>0}}">热线:<block wx:for="{{seller.tel}}" wx:key="index"><text data-phone="{{item}}" bindtap="call">{{item}}</text>{{index==(seller.tel.length-1)?'':','}}</block></text>
</view>
<block wx:if="{{staffinfo && reserve.swich_manager=='1'}}">
<view class="handleInfo">
<image wx:if="{{staffinfo && staffinfo.photo}}" bindtap="lookImgs" data-url="{{staffinfo.photo}}" src="{{staffinfo.photo}}" class="headerimg" mode="aspectFill"></image>
<view class="handle handlePhone">
<view class="handleName">专属服务:{{staffinfo.name}}</view>
<view class="handleBlower">服务电话:{{staffinfo.phone}}</view>
</view>
<view class="handle">
<view wx:if="{{staffinfo.wechat}}" class="font22r brownFont" bindtap="copyWeChat">复制微信</view>
<view wx:if="{{staffinfo.phone}}" data-phone="{{staffinfo.phone}}" class="font22r brownFont" bindtap="call">拨打电话</view>
</view>
</view>
</block>
</view>
</view>
<view class="preferentialCoupon" wx:if="{{hasValueCertificate && marketing && coupon_dataList.length>0}}">
<block wx:for="{{coupon_dataList}}" wx:key="index" wx:for-index="index">
<navigator wx:if="{{item.resultCoupon == '1' || item.is_type != '3'}}" url="/pack-activity/pack/receiveCoupon?id={{item.id}}&sid={{seller.sid}}&oid={{detail.id}}&types=1&StyleType={{StyleType}}&types=1&StyleType={{StyleType}}" hover-class="navigator-hover">
<view class="preferentialItems">
<view class="itemLeft">
<text wx:if="{{item.discount!='0.00' && (item.use.is_cash=='1' || item.use.is_cash) && item.discount}}" class="discountText font24r">{{item.discount}}折</text>
<view class="discountText1 font20r {{item.arule.is_accumulation == '1'?'discountText2':'discountText3'}}" wx:if="{{item.is_type == '3'}}">{{item.arule.is_accumulation == '1' ? '可' : '不可'}}叠加</view>
<view class="priceText" wx:if="{{item.price}}">
<view class="icons font24r">¥</view><text class="font48r">{{item.price}}</text>
</view>
<view class="icons font20r" wx:if="{{item.is_type == '3' && item.desc!='0'}}">消费满{{item.desc}}元可用</view>
</view>
<view class="couponLine"></view>
<view class="itemRight">
<view class="btns">
<text class="font32r anameText">{{item.aname}}</text>
<block wx:if="{{item.is_type == '1' || item.is_type == '2'}}">
<text wx:if="{{item.exp_date.is_week=='1' || item.exp_date.is_week===true}}" class="bottom font24r">{{item.exp_date.week_show?item.exp_date.week_show+'可用':''}}{{item.desc?','+item.desc+'。':'。'}}</text>
<view wx:if="{{item.exp_date.is_none=='1' || item.exp_date.is_none===true}}" class="bottom font24r">
无限制{{item.desc?','+item.desc+'。':'。'}}
</view>
<view wx:if="{{item.exp_date.is_birthday=='1' || item.exp_date.is_birthday===true}}" class="bottom font24r">
会员生日当天可用{{item.desc?','+item.desc+'。':'。'}}
</view>
</block>
<block wx:if="{{item.is_type == '3' || item.is_type == '4'}}">
<view wx:if="{{(item.useStime && item.useEtime) || item.foreverText}}" class="bottom font24r">有效期:{{item.foreverText?item.foreverText : ''}}</view>
<view wx:if="{{item.useStime && item.useEtime}}" class="bottom font24r nodate">{{item.useStime}} 至 {{item.useEtime}}</view>
<view wx:if="{{item.morText || item.noonText || item.noonText}}" class="bottom font24r">不可用日期:</view>
<view wx:if="{{item.morText}}" class="bottom font24r nodate">{{item.morText}}</view>
<view wx:if="{{item.noonText}}" class="bottom font24r nodate">{{item.noonText}}</view>
<view wx:if="{{item.nigText}}" class="bottom font24r nodate">{{item.nigText}}</view>
<view wx:if="{{item.exp_date.week_show=='无'}}" class="bottom font24r">无使用时间限制</view>
<view wx:if="{{item.is_type == '4' && item.desc!='0'}}" class="bottom font24r">消费满{{item.desc}}元可用</view>
</block>
</view>
<view class="btnBox" wx:if="{{item.is_type == '3'}}" >
<view class="font24r orderingFood orderingFood1">已领取</view>
<view class="grantNum" wx:if="{{item.receiveNumText}}">
<view class="font24r">已被领取</view>
<view class="font24r"><text>{{item.receiveNumText}}</text>张</view>
</view>
</view>
<view wx:if="{{item.is_type != '3'}}" class="font24r orderingFood">
立即抢购
</view>
</view>
</view>
</navigator>
</block>
</view>
<view wx:if="{{is_comments=='1' && !is_user_comments}}" class="evaluateBox" bindtap="evaluateFun">
<text wx:if="{{is_comments=='1' && (marketing.is_comments_coupon!='1' || couponData.showCoupon!='1')}}">想<text class="font36r">吐槽</text>?戳这里填写意见!--></text>
<text wx:if="{{marketing.is_comments_coupon=='1' && couponData && couponData.showCoupon =='1'}}">想<text class="font36r">吐槽</text>?戳这里填写意见反馈赢好礼!</text>
<image src="https://nosqn.colorcun.com/evaluate2.png" mode="" />
</view>
<view class="reserveBox" wx:if="{{reserveData && (reserveData.title || reserveData.content)}}">
<view class="title font40r" wx:if="{{reserveData.title}}">{{reserveData.title}}</view>
<block wx:for="{{reserveData.content}}" wx:key="index">
<image class="items" wx:if="{{item.type =='1'}}" src="{{item.content}}" bindtap="lookImgs" data-url="{{item.content}}" mode="widthFix"/>
<text space="nbsp" class="items font32r" wx:if="{{item.type == '2'}}">{{item.content}}</text>
</block>
</view>
<!-- 餐厅介绍 -->
<block wx:if="{{marketing.logo || home.image || ((store.introduce && (!store.is_introduce || store.is_introduce!='0')) || (store.images.length>0 && (!store.is_images || store.is_images!='0')) || (store.content && store.content.length>0))}}">
<view class="introduce" wx:if="{{store}}">
<titleStyle wx:if="{{titleType}}" titleStyleType="{{titleType}}" titleText="{{store.title ? store.title : '餐厅介绍'}}"></titleStyle>
<image wx:if="{{marketing.logo}}" src="{{marketing.logo}}" bindtap="lookImgs" data-url="{{marketing.logo}}" mode="widthFix" />
<image wx:if="{{home.image}}" src="{{home.image}}" bindtap="lookImgs" data-url="{{home.image}}" class="homeImage" mode="widthFix"></image>
<view class="labelBox" wx:if="{{!store.content && store.introduce && (!store.is_introduce || store.is_introduce!='0')}}">
<text space="nbsp" class="texts font32r">{{store.introduce}}</text>
</view>
<block wx:if="{{store.images.length>0 && (!store.is_images || store.is_images!='0')}}">
<block wx:for="{{store.images}}" wx:key="arryIndex" wx:for-index="arryIndex">
<image src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{store.images}}" mode="widthFix" />
</block>
</block>
<view class="labelBox" wx:if="{{store.content && store.content.length>0}}">
<block wx:for="{{store.content}}">
<image wx:if="{{item.type == '1'}}" bindtap="lookImgs" src="{{item.content}}" data-url="{{item.content}}" mode="widthFix" />
<text wx:if="{{item.type == '2'}}" space="nbsp" class="texts font32r">{{item.content}}</text>
<view wx:if="{{item.type == '3'}}" class="videoBox">
<video
object-fit="contain"
autoplay="{{true}}"
loop="{{true}}"
muted="{{true}}"
show-mute-btn="{{true}}"
vslide-gesture-in-fullscreen="{{true}}"
src="{{item.content}}"
></video>
</view>
</block>
</view>
</view>
</block>
<!-- 主厨介绍 -->
<block wx:if="{{chef && ((chef.introduce && (!chef.is_introduce || chef.is_introduce!='0')) || (chef.image && (!chef.is_images || chef.is_images!='0')) || (chef.content && chef.content.length>0))}}">
<view class="introduce">
<view wx:if="{{titleType}}" class="chefText font36r">
<titleStyle titleStyleType="{{titleType}}" titleText="{{chef.title ? chef.title : '主厨介绍'}}"></titleStyle>
</view>
<view class="labelBox" wx:if="{{(chef.introduce && (!chef.is_introduce || chef.is_introduce!='0'))}}">
<text class="texts" space="nbsp">{{chef.introduce}}</text>
</view>
<image wx:if="{{(!chef.is_images || chef.is_images!='0') && chef.image}}" src="{{chef.image}}" bindtap="lookImgs" data-url="{{chef.image}}" mode="widthFix" />
<view class="labelBox" wx:if="{{chef.content && chef.content.length>0}}">
<block wx:for="{{chef.content}}">
<image wx:if="{{item.type == '1'}}" bindtap="lookImgs" src="{{item.content}}" data-url="{{item.content}}" mode="widthFix" />
<text wx:if="{{item.type == '2'}}" space="nbsp" class="texts font32r">{{item.content}}</text>
<view wx:if="{{item.type == '3'}}" class="videoBox">
<video
object-fit="contain"
autoplay="{{true}}"
loop="{{true}}"
muted="{{true}}"
show-mute-btn="{{true}}"
vslide-gesture-in-fullscreen="{{true}}"
src="{{item.content}}"
></video>
</view>
</block>
</view>
</view>
</block>
<!-- 特色菜品 -->
<view class="introduce" wx:if="{{signboard && ((signboard.swich=='1' && signboard.images && signboard.images.length>0) || (signboard.content && signboard.content.length>0))}}">
<block wx:if="{{titleType}}">
<titleStyle titleStyleType="{{titleType}}" titleText="{{signboard.title ? signboard.title : '特色菜品'}}"></titleStyle>
</block>
<block wx:for="{{signboard.images}}" wx:key="arryIndex" wx:for-index="arryIndex">
<image src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{signboard.images}}" mode="widthFix" />
</block>
<view class="labelBox" wx:if="{{signboard.content && signboard.content.length>0}}">
<block wx:for="{{signboard.content}}">
<image wx:if="{{item.type == '1'}}" bindtap="lookImgs" src="{{item.content}}" data-url="{{item.content}}" mode="widthFix" />
<text wx:if="{{item.type == '2'}}" space="nbsp" class="texts font32r">{{item.content}}</text>
<view wx:if="{{item.type == '3'}}" class="videoBox">
<video
object-fit="contain"
autoplay="{{true}}"
loop="{{true}}"
muted="{{true}}"
show-mute-btn="{{true}}"
vslide-gesture-in-fullscreen="{{true}}"
src="{{item.content}}"
></video>
</view>
</block>
</view>
</view>
<!-- 停车指引 -->
<view class="introduce" wx:if="{{reserve && (reserve.is_introduce_all=='1' && (reserve.park_info || reserve.park_info_images) || (reserve.content && reserve.content.length>0))}}">
<block wx:if="{{titleType}}">
<titleStyle titleStyleType="{{titleType}}" titleText="{{reserve.title ? reserve.title : '停车指引'}}"></titleStyle>
</block>
<block wx:if="{{!reserve.content || reserve.content.length == '0'}}">
<view class="labelBox" wx:if="{{reserve.park_info}}">
<text class="texts" space="nbsp">{{reserve.park_info}}</text>
</view>
<block wx:for="{{reserve.park_info_images}}" wx:key="arryIndex" wx:for-index="arryIndex">
<image src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{reserve.park_info_images}}" mode="widthFix" />
</block>
</block>
<view class="labelBox" wx:if="{{reserve.content && reserve.content.length>0}}">
<block wx:for="{{reserve.content}}">
<image wx:if="{{item.type == '1'}}" bindtap="lookImgs" src="{{item.content}}" data-url="{{item.content}}" mode="widthFix" />
<text wx:if="{{item.type == '2'}}" space="nbsp" class="texts font32r">{{item.content}}</text>
<view wx:if="{{item.type == '3'}}" class="videoBox">
<video
object-fit="contain"
autoplay="{{true}}"
loop="{{true}}"
muted="{{true}}"
show-mute-btn="{{true}}"
vslide-gesture-in-fullscreen="{{true}}"
src="{{item.content}}"
></video>
</view>
</block>
</view>
</view>
<view class="introduce" wx:if="{{detail.status !='4' && options.isOrder != '1' && hasValueOrder && detail && detail.seller.is_open_order==1 && marketing && marketing.is_order=='1'}}">
<block wx:if="{{titleType}}">
<titleStyle titleStyleType="{{titleType}}" titleText="提前点餐"></titleStyle>
</block>
<view class="endStyle">
<view class="news font32r">
现在提前点菜下单,到店时无需等待服务员点餐,直接享受就餐服务^_^
</view>
<view wx:if="{{detail && detail.seller.is_open_order==1 && marketing && marketing.is_order=='1'}}" bindtap="cookbook" class="book-item-font flex-cc font30r cook" style="position: relative;">
去点餐
</view>
</view>
</view>
<view class="introduce rechargeBox {{(marketing.is_online_book=='1' && options.onlineReserve == '1') || (detail.status !='4' && options.isOrder != '1' && paymentId && paymentStatus == '0') || (detail.status !='4' && options.isOrder != '1' && marketing.is_transpond=='1' && imgSrc)?'introduceBottom':''}}">
<block wx:if="{{hasValueRecharge && marketing && marketing.is_recharge=='1' && recharge_data}}">
<block wx:if="{{titleType}}">
<titleStyle titleStyleType="{{titleType}}" titleText="会员招募"></titleStyle>
</block>
<navigator wx:if="{{recharge_data.id}}" url="/pack-activity/pack/vipRecharge?id={{recharge_data.id}}&name={{seller.name}}&sid={{seller.sid}}&oid={{detail.id}}&types=1&StyleType={{StyleType}}" hover-class="navigator-hover">
<view class="preferentialItems rechargeItems">
<view class="itemLeft">
<view class="itemTop font36r">
{{recharge_data.rname}}
</view>
<view class="itemBottom font24r" wx:if="{{priceInfo}}">
{{priceInfo}}{{(recharge_data.recharge_list.is_coupons=='0' && recharge_data.recharge_list.is_score=='0')?'。':';'}}
</view>
<view class="bottom font24r" wx:if="{{scoreInfo}}">
{{scoreInfo}}{{recharge_data.recharge_list.is_coupons=='0'?'。':';'}}
</view>
<view class="bottom font24r" wx:if="{{recharge_data.recharge_list.is_coupons=='1'}}">
{{recharge_data.recharge_list.is_coupons=='1'?'会员充值满'+recharge_data.recharge_money+'元赠送'+certificate:''}}。
</view>
</view>
<view class="font24r orderingFood">
抢购
</view>
</view>
</navigator>
</block>
<view class="vips">
<view wx:if="{{hasValueRecharge && marketing.is_link=='1'}}" class="font24r favouredPolicy" bindtap="gotoFavourableList">
点击了解更多会员优惠政策
</view>
<view class="businessBox">
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view>
</view>
</view>
</view>
<view class="{{(!marketing || (marketing.is_transpond!='1' && marketing.is_online_book!='1'))?'more more1':'more'}}" wx:if="{{showMoreTip}}">
<view class="moreText">滑动查看更多</view>
<image src="https://qn.colorcun.com/jt1.png" mode="" />
</view>
<view class="toastBox" wx:if="{{toastBool}}">
{{toastText}}
</view>
</scroll-view>
<!-- (开启在线预订 显示在线预订) || (未开启在线预订 显示再次预订(打商家电话)) -->
<!-- (未结束&&未取消 && 开启转发开关 显示 转发邀请函给客人) || (过了当前餐段结束时间||用餐完成||已取消 显示 转发店铺给好友) -->
<view wx:if="{{isMoreBtn || options.isOrder == '1' || (!isMoreBtn && seller.phone) || (detail.status !='4' && isPaymenBtn) || (detail.status !='4' && isShareItem)}}" class="flex-lr sharewidth">
<view wx:if="{{isMoreBtn}}" class="flex-cc font30r moreBtn {{((detail.status !='4' && isPaymenBtn) && ((detail.status !='4' && isShareItem) || options.isOrder == '1')) ? 'threeBtn' : ''}}" bindtap="secondbook">再次预订</view>
<view wx:if="{{!isMoreBtn && seller.phone}}" class="flex-cc font30r moreBtn {{((detail.status !='4' && isPaymenBtn) && ((detail.status !='4' && isShareItem) || options.isOrder == '1')) ? 'threeBtn' : ''}}" bindtap="call" data-phone="{{seller.phone}}">再次预订</view>
<view wx:if="{{detail.status !='4' && isPaymenBtn}}" class="flex-cc font30r paymenBtn {{((isMoreBtn || (!isMoreBtn && seller.phone)) && ((detail.status !='4' && isShareItem) || options.isOrder == '1')) ? 'threeBtn' : ''}}" bindtap="paymentFun">支付定金</view>
<button wx:if="{{detail.status !='4' && isShareItem}}" class="flex-cc font30r shareItem" open-type="share">转发邀请函给客人</button>
<button wx:if="{{options.isOrder == '1'}}" class="flex-cc font30r shareItem" data-type="2" open-type="share">转发店铺给好友</button>
</view>
<painter palette="{{wxml}}" style="position: absolute; top: -9999rpx;" bind:imgOK="onImgOK" />
<my-modal id="payModal" fadeStyle="slideUp" height="240px">
<view slot="modalName" class="titleModal">提示</view>
<view slot="modalContent">
<view class="explain">
检测到您正在截屏,建议直接把邀请函转发给朋友更有仪式感哦!
</view>
<view class="screenshotBtns">
<button class="font32r btnsLeft" bindtap="closeModal">关闭弹窗</button>
<button wx:if="{{detail.status !='4' && options.isOrder != '1' && marketing.is_transpond=='1' && imgSrc}}" class="flex-cc font30r btnsRight" open-type="share">立即转发</button>
</view>
</view>
</my-modal>
<my-modal id="couponModal" fadeStyle="slideUp" height="240px">
<view slot="modalName">
<image bindtap="closeCouponModal" class="closeImg" src="https://qn.colorcun.com/closeOutline2.png" mode=""/>
</view>
<view slot="modalContent">
<view class="titleModal">
<view class="nameInfo font28r">{{seller.name||reserve.seller_name}}</view>
<view class="couponTotal font28r" wx:if="{{totalPrice}}">
赠送给您代金券
<view class="counterText">
<view class="font36r">¥</view><scroll-number value="{{totalPrice}}"></scroll-number>
</view>
</view>
</view>
<view class="couponWrap">
<view class="couponInfo font48r">
<text class="font48r">到店微信扫码</text>
<text class="font48r">自动识别</text>
</view>
<subscribe ids="{{[2]}}" bindtap="closeCouponModal">
<view class="couponBtn font28r">我知道了</view>
</subscribe>
<view class="couponText font24r" bindtap="gotoSellerGift" data-form="2">查看更多</view>
</view>
</view>
</my-modal>
\ No newline at end of file
... ...
/* pack-invitation/pages/detail_owner_invitation13.wxss */
@import "../../pages/tpl/tpls.wxss";
@font-face {
font-family: 'Abel';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/abel/v18/MwQ5bhbm2POE2V9BPQ.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
.reservationInfo {
padding-bottom: 20rpx;
position: relative;
color: #FFEFC5;
padding-top: 160rpx;
}
.reservationInfo .infoItem {
display: flex;
display: flex;
line-height: 70rpx;
font-family: PingFang SC;
align-items: center;
}
.reservationInfo .infoItemOne {
flex-direction: column;
margin: 0 0 44rpx 0;
align-items: flex-start;
}
.bookInfo {
border-radius: 20rpx;
padding: 20rpx 20rpx 30rpx 20rpx;
margin: 0 40rpx;
}
.infoTopName {
padding: 10rpx 32rpx;
color: #FFEFC5;
font-family: PingFang SC;
font-weight: 600;
margin-bottom: 66rpx;
}
.infoTopName text{
display: block;
}
.infoTopName .name {
font-size: 56rpx;
margin-top: 16rpx;
}
.imgBox {
display: flex;
align-items: center;
justify-content: center;
}
.inviteImg {
width: 562rpx;
height: 330rpx;
}
.inviteImg1 {
width: 586rpx;
height: 336rpx;
}
.infoItemOne .contentData {
line-height: 48rpx;
}
.label {
flex-shrink: 0;
font-family: PingFang SC;
}
.contentData {
flex: 1;
line-height: 60rpx;
font-family: PingFang SC;
margin-left: 40rpx;
font-weight: 600;
display: -webkit-box;
word-break: break-all;
word-wrap: break-word;
overflow: hidden;
text-align: left;
}
.pageSpacing {
position: relative;
display: flex;
align-items: center;
white-space: nowrap;
width: auto;
overflow-x: scroll;
border-bottom-left-radius: 10rpx;
border-bottom-right-radius: 10rpx;
padding: 10rpx 0 10rpx 116rpx;
margin-top: 20rpx;
}
.pageSpacing1 {
position: relative;
display: flex;
white-space: nowrap;
width: auto;
overflow-x: scroll;
border-bottom-left-radius: 10rpx;
border-bottom-right-radius: 10rpx;
padding: 10rpx 0 10rpx 116rpx;
margin-top: 20rpx;
}
.imgs {
position: relative;
display: flex;
white-space: nowrap;
width: 470rpx;
height: 348rpx;
margin-right: 30rpx;
}
.imgs text {
background: #515151;
color: #fff;
position: absolute;
left: 0;
bottom: 0;
height: 64rpx;
line-height: 64rpx;
width: 470rpx;
text-align: center;
border-bottom-left-radius: 16rpx;
border-bottom-right-radius: 16rpx;
}
.imageStyle {
display: inline-block;
width: 500rpx;
height: 348rpx;
border-radius: 16rpx;
}
.welcomeMsg {
margin: 44rpx 0 0 0;
font-family: PingFang SC;
}
.handleInfo {
display: flex;
justify-content: space-between;
align-items: center;
}
.headerimg {
width: 120rpx;
height: 120rpx;
border-radius: 50%;
}
.handle {
display: flex;
flex-direction: column;
font-family: PingFang SC;
font-weight: 500;
font-size: 24rpx;
justify-content: space-between;
}
.handlePhone {
margin: 0 20rpx;
color: #FFEFC5;
margin: 0 20rpx;
width: 47%;
}
.handleName {
word-wrap: break-word;
text-align: left;
overflow: hidden;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
margin-bottom: 20rpx;
}
.handleBlower {
word-wrap: break-word;
text-align: left;
overflow: hidden;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
}
.brownFont {
width: 130rpx;
padding: 8rpx 0;
color: #FFEFC5;
border: 2rpx solid #FFEFC5;
border-radius: 22rpx;
text-align: center;
}
.brownFont:nth-of-type(1) {
margin-bottom: 20rpx;
}
.centerBox {
border-radius: 20rpx;
margin: 26rpx 40rpx 0 40rpx;
padding: 26rpx 20rpx 20rpx 20rpx;
}
.positioning {
display: flex;
flex-direction: column;
box-sizing: border-box;
flex: 1;
color: #FFEFC5;
margin-bottom: 30rpx;
}
.positioning .telBox {
flex-shrink: 0;
line-height: 50rpx;
}
.positioningName {
display: flex;
justify-content: space-between;
}
.mapBox{
display: flex;
flex: 1;
}
.positioningText {
line-height: 50rpx;
overflow: hidden;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
margin: 0 10rpx;
}
.mapBtn {
flex-shrink: 0;
padding: 8rpx 16rpx;
margin-left: 10rpx;
height: 54rpx !important;
border: 2rpx solid #FFEFC5;
color: #FFEFC5;
height: 54rpx !important;
border-radius: 42rpx;
font-weight: 600;
background: transparent;
}
.introduce {
box-sizing: border-box;
padding: 60rpx 0 20rpx 0;
margin: 0 20rpx 20rpx 20rpx;
}
.introduceBottom {
margin-bottom: 220rpx;
}
.labelBox {
width: 100%;
margin-top: 20rpx;
}
.labelBox .texts {
line-height: 40rpx;
margin: 0 20rpx;
color: #FFEFC5;
font-family: PingFang SC;
font-weight: 500;
display: block;
}
.labelBox view,.labelBox text,.labelBox image{
margin-bottom: 20rpx !important;
}
.introduce image {
width: 100%;
margin-bottom: 20rpx;
display: block !important;
vertical-align: top;
padding: 0 20rpx;
box-sizing: border-box;
}
.introduce image:nth-last-of-type(1) {
margin-bottom: 0;
}
.news {
color: #FFEFC5;
font-family: PingFang SC;
font-weight: 500;
line-height: 40rpx;
}
.endStyle {
margin: 0 20rpx 30rpx 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.preferentialCoupon {
padding: 40rpx 40rpx 0 40rpx;
}
.preferentialCoupon .nodate{
padding-left: 20rpx;
}
.preferentialItems {
display: flex;
background: linear-gradient(180deg, #ffefd0 0%, #ffdc9b 100%);
margin-bottom: 20rpx;
min-height: 160rpx;
padding-bottom: 10rpx;
border-radius: 20rpx;
border: 2rpx solid #ff7e06;
}
.rechargeItems {
background: url('https://qn.colorcun.com/certificateBj2.png') no-repeat;
background-size: 100% 100%;
min-height: 160rpx;
display: flex;
justify-content: space-between;
align-items: center;
height: auto;
padding: 12rpx 0;
margin: 0 20rpx;
border: none;
}
.itemLeft {
width: 30%;
display: flex;
flex-direction: column;
justify-content: center;
position: relative;
}
.rechargeItems .itemLeft {
width: 64%;
margin-left: 38rpx;
}
.discountText {
text-align: center;
color: #FFEFC5;
border-radius: 6rpx;
font-family: PingFang SC;
background: #FD4D59;
width: max-content;
padding: 6rpx;
position: absolute;
left: 16rpx;
top: 12rpx;
}
.discountText1{
text-align: center;
border-radius: 6rpx;
font-family: PingFang SC;
background: transparent;
width: max-content;
padding: 2rpx 8rpx;
position: absolute;
left: 16rpx;
top: 12rpx;
}
.discountText2{
background: #FD4D59;
color: #fff;
}
.discountText3{
color: #FD4D59;
border: 2rpx solid #FD4D59;
}
.priceText {
font-family: 'Abel';
color: #E34D59;
font-weight: 500;
font-size: 64rpx;
margin-top: 6rpx;
}
.priceText .icons {
color: #FD4D59;
}
.itemRight {
width: 70%;
padding-right: 10rpx;
margin-left: 18rpx;
}
.btns {
margin: 24rpx 20rpx 0 0;
display: flex;
justify-content: space-evenly;
align-items: baseline;
flex-direction: column;
height: 90%;
}
.orderingFood {
padding: 0 40rpx;
border-radius: 22rpx;
text-align: center;
color: #0B0805;
border-radius: 20rpx;
line-height: 44rpx;
height: 44rpx;
background: transparent;
border: 2rpx solid #0B0805;
width: max-content;
flex-shrink: 0;
}
.preferentialCoupon .itemRight {
width: 74%;
display: flex;
align-items: center;
}
.preferentialCoupon .itemLeft {
width: 26%;
}
.preferentialCoupon .couponLine{
margin: 24rpx 0 4rpx 0;
border-right: 2rpx dashed #f6231b;
}
.preferentialCoupon .orderingFood {
padding: 0 20rpx;
color: #fff !important;
border: none !important;
text-align: center;
border-radius: 20rpx;
line-height: 44rpx;
height: 44rpx;
width: max-content;
flex-shrink: 0;
background: linear-gradient(94.4deg, #f41919 2.72%, #ff7426 122.17%);
}
.preferentialCoupon .icons {
color: #F6231B;
text-align: center;
}
.preferentialCoupon .priceText {
display: flex;
align-items: baseline;
justify-content: center;
font-family: PingFang SC;
color: #F6231B;
font-weight: 600;
font-size: 48rpx;
margin-top: 6rpx;
}
.preferentialCoupon .priceText text {
font-size: 48rpx;
}
.preferentialCoupon .btns {
flex: 1;
}
.preferentialCoupon .btnBox {
display: flex;
flex-direction: column;
}
.preferentialCoupon .grantNum {
display: flex;
flex-direction: column;
align-items: center;
color: #C36607;
margin-top: 10rpx;
}
.preferentialCoupon .grantNum text {
color: #F6231B;
margin-right: 10rpx;
}
.preferentialCoupon .btns .anameText {
font-weight: 600;
}
.preferentialCoupon .orderingFood1 {
border: 2rpx solid #fa4b20 !important;
background: transparent !important;
color: #fa4b20 !important;
font-weight: 600;
}
.bottom {
margin-top: 4rpx;
width: 100%;
color: #C36607;
font-family: PingFang SC;
font-weight: 500;
display: -webkit-box;
word-break: break-all;
word-wrap: break-word;
overflow: hidden;
text-align: left;
}
.itemTop {
display: flex;
width: 100%;
align-items: center;
font-family: 'Abel';
color: #FD4D59;
margin-bottom: 10rpx;
}
.rechargeItems .orderingFood {
margin-right: 20rpx;
}
.itemBottom {
color: #0B0805;
font-family: PingFang SC;
font-weight: 500;
display: -webkit-box;
word-break: break-all;
word-wrap: break-word;
overflow: hidden;
text-align: left;
}
.priceText {
display: flex;
align-items: center;
justify-content: center;
}
.vips {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin-top: 20rpx;
}
.favouredPolicy {
width: 45%;
color: #FFEFC5;
font-family: PingFang SC;
font-weight: 500;
border: 2rpx solid #FFEFC5;
border-radius: 22rpx;
text-align: center;
padding: 10rpx;
}
.sharewidth {
position: fixed;
left: 0;
bottom: 0;
height: 160rpx;
padding: 0 40rpx;
box-sizing: border-box;
z-index: 100;
justify-content: space-between;
width: 100%;
}
.arrivalBox{
display: flex;
width: 100%;
justify-content: space-between;
align-items: center;
}
.arrivalBox button{
display: flex;
font-size: 24rpx;
flex-direction: column;
height: 50rpx;
padding: 0 18rpx;
line-height: 48rpx;
font-family: PingFang SC;
border-radius: 40rpx;
background: transparent;
color: #FFEFC5;
border: 2rpx solid #FFEFC5;
}
.shareItem,
.moreBtn,
.paymenBtn {
width: inherit;
background: transparent;
color: #FFEFC5;
border: 2rpx solid #FFEFC5;
height: 80rpx;
border-radius: 42rpx;
font-weight: 600;
margin-right: 20rpx;
}
.threeBtn{
width: auto;
padding: 0 24rpx;
flex-shrink: 0;
}
.shareItem {
padding: 0;
margin-right: 0;
background: #FFEFC5;
color: #0B0805;
animation-name: scaleDraw;
animation-timing-function: ease-in-out;
animation-iteration-count: infinite;
animation-duration: 2s;
}
@keyframes scaleDraw {
0% {
transform: scale(1);
}
25% {
transform: scale(1.1);
}
50% {
transform: scale(1);
}
75% {
transform: scale(1.1);
}
}
.menu-item {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.cook {
background: transparent;
border: 2rpx solid #FFEFC5;
border-radius: 28rpx;
font-weight: normal;
width: 40% !important;
color: #FFEFC5;
padding: 4rpx 0;
margin-left: 12rpx;
}
.cook view {
color: #FFEFC5;
}
.bold {
font-weight: 500;
}
.evaluateBox {
margin: 60rpx 84rpx 72rpx 40rpx;
display: flex;
align-items: center;
justify-content: space-between;
color: #FFEFC5;
}
.evaluateBox image {
width: 64rpx;
height: 64rpx;
}
.evaluateBox text {
color: #FFEFC5;
font-size: 24rpx;
}
.evaluateBox text text {
font-size: 36rpx;
}
.more {
height: 80rpx;
width: 100%;
position: fixed;
bottom: 160rpx;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
background: rgba(0, 0, 0, .4);
}
.more1 {
bottom: 40rpx;
}
.moreText {
color: #fff;
}
.more image {
width: 30rpx;
height: 30rpx;
}
.musicImg {
width: 62rpx;
height: 62rpx;
position: fixed !important;
right: 8%;
top: 22%;
z-index: 200;
}
.bookData {
margin-left: 0;
}
.businessBox {
color: #FFEFC5;
font-size: 24rpx;
font-family: PingFang SC;
display: flex;
margin-top: 20rpx;
}
.businessBox text {
text-decoration: underline;
}
.reserveBox {
margin: 20rpx;
background: #1b1816;
padding: 20rpx;
}
.reserveBox .title {
margin-bottom: 20rpx;
color: #FFEFC5;
font-family: PingFang SC;
}
.reserveBox .items {
width: 100%;
margin-bottom: 20rpx;
color: #FFEFC5;
font-family: PingFang SC;
display: block;
}
.toastBox {
width: fit-content;
position: fixed;
padding: 30rpx;
color: #fff;
background: rgba(0, 0, 0, .7);
font-size: 28rpx;
border-radius: 10rpx;
left: 50%;
z-index: 999;
top: 50%;
transform: translate(-50%, -50%);
}
.cannotImg {
width: 200rpx;
height: 66rpx;
transform: rotate(-45deg);
position: fixed;
left: 38%;
z-index: 999;
top: 50%;
}
.separatrixOne {
display: flex;
justify-content: space-between;
align-items: center;
margin: 40rpx;
}
.separatrixOne .text1 {
width: 2rpx;
height: 6rpx;
background: #FFEFC5;
}
.separatrixOne .text2 {
width: 4rpx;
height: 6rpx;
background: #FFEFC5;
}
.separatrixOne .text3 {
width: 6rpx;
height: 6rpx;
background: #FFEFC5;
}
.separatrixOne .text4 {
width: 10rpx;
height: 6rpx;
background: #FFEFC5;
}
.separatrixOne .text5 {
width: 16rpx;
height: 6rpx;
background: #FFEFC5;
}
.separatrixOne .text6 {
width: 26rpx;
height: 6rpx;
background: #FFEFC5;
}
.separatrixOne .text7 {
width: 42rpx;
height: 6rpx;
background: #FFEFC5;
}
.separatrixOne .text8 {
width: 68rpx;
height: 6rpx;
background: #FFEFC5;
}
.separatrixOne .text9 {
width: 110rpx;
height: 6rpx;
background: #FFEFC5;
}
.giftImg{
width: 108rpx;
height: 116rpx;
position: fixed !important;
right: 4%;
top: 28%;
z-index: 200;
transform-origin: 50% 100%;
}
.giftImg1 {
transform: scale(0);
}
#payModal {
display: flex;
align-items: center;
}
.titleModal {
width: 100%;
color: #000;
font-family: PingFang SC;
font-weight: 500;
font-size: 44rpx;
text-align: center;
}
.explain{
padding: 0 40rpx;
font-size: 30rpx;
color: #000;
line-height: 40rpx;
text-align: center;
}
.screenshotBtns{
width: 100%;
display: flex;
justify-content: space-between;
box-sizing: border-box;
padding: 52rpx 22rpx 0 22rpx;
}
.btnsLeft {
width: 43%;
border-radius: 42rpx;
background: #fff;
border: 2rpx solid #0346A5;
bottom: 10%;
color: #0346A5;
}
.btnsRight {
width: 43%;
border-radius: 42rpx;
background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%);
bottom: 10%;
color: #fff;
}
.mymodal{
top: 30% !important;
width: 80% !important;
margin: 0 auto !important;
left: 0 !important;
right: 0 !important;
}
.mymodal .mymodal-content {
height: auto !important;
}
.videoBox{
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
margin: 0 20rpx;
}
.videoBox video{
width: 100%;
box-sizing: border-box;
}
#couponModal .titleModal {
position: relative;
width: 544rpx;
background: #F14033;
border-top-left-radius: 20rpx;
border-top-right-radius: 20rpx;
margin: 94% auto 0;
}
#couponModal .couponWrap {
position: relative;
width: 544rpx;
margin: 0 auto;
background: #F14033;
border-bottom-left-radius: 20rpx;
border-bottom-right-radius: 20rpx;
}
#couponModal .mymodal-title {
padding: 0 80rpx;
}
#couponModal .mymodal-content {
padding: 0 80rpx 40rpx 80rpx;
}
#couponModal .mymodal {
background: rgba(0, 0, 0, 0.8);
width: 100% !important;
top: 0 !important;
height: auto !important;
z-index: 300;
}
.nameInfo {
font-family: PingFang SC;
font-weight: 500;
line-height: 38rpx;
color: #fff;
margin-bottom: 28rpx;
text-align: center;
padding: 44rpx 30rpx 0 30rpx;
}
.couponTotal {
color: #fff;
font-family: PingFang SC;
font-weight: 500;
line-height: 48rpx;
padding-bottom: 16rpx;
}
.counterText {
color: #ffc806;
font-weight: 600;
display: flex;
font-size: 100rpx;
align-items: flex-end;
justify-content: center;
margin: 16rpx 0;
}
.couponInfo {
color: #fff;
text-align: center;
margin-bottom: 20rpx;
font-weight: 600;
display: flex;
flex-direction: column;
align-items: center;
line-height: 78rpx;
}
.couponBox {
width: 80%;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
}
.couponItems {
width: 46%;
margin-bottom: 24rpx;
padding-bottom: 52rpx;
border-radius: 20rpx;
border: 2rpx solid #ff7e06;
background: linear-gradient(180deg, #ffefd0 0%, #ffdc9b 100%);
}
.couponNum {
background: #727272;
border-radius: 50%;
color: #fff;
width: 40rpx;
height: 40rpx;
display: flex;
align-items: center;
justify-content: center;
margin: 8rpx 0 0 8rpx;
}
.couponPrice {
display: flex;
align-items: center;
justify-content: center;
color: #F6231B;
font-weight: 500;
}
.couponLines{
width: 80%;
margin: 0 auto;
height: 2rpx;
border-bottom: 2rpx dashed #F6231B;
}
.couponPrice text {
margin-left: 4rpx;
font-size: 76rpx;
font-weight: 700;
}
.couponCondition {
color: #C36607;
display: flex;
align-items: center;
justify-content: center;
padding-top: 24rpx;
}
.couponBtn {
width: 80%;
margin: 0 auto;
background: #fff;
font-weight: 600;
text-align: center;
padding: 12rpx 0;
margin: 16rpx auto 20rpx auto;
color: #F14033;
border-radius: 8rpx;
}
.couponText {
color: #fff;
text-decoration: underline;
text-align: center;
padding-bottom: 44rpx;
font-weight: 600;
letter-spacing:2rpx;
}
.closeImg {
width: 60rpx;
height: 60rpx;
position: fixed;
left: 46%;
bottom: 24%;
}
/* 全屏遮罩层初始样式 */
.fullscreenMask {
position: fixed;
top: 35%;
margin: 0 auto;
height: 580rpx;
z-index: 100;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
width: 100%;
}
.fullscreenMask image{
width: 544rpx;
height: 600rpx;
}
/* 目标点(右上角的商家有礼位置) */
.targetPoint {
position: fixed;
width: 108rpx;
height: 116rpx;
background: transparent;
z-index: 100;
}
/* 模板9 */
.viewBox9 {
background: #23201e;
}
.viewBox9 .introduce {
background: #1b1816;
}
.viewBox9 .bookInfo,
.viewBox9 .centerBox {
background: rgba(11, 8, 5, 0.85);
}
.viewBox9 .rechargeBox .btns text,
.viewBox9 .rechargeBox .bottom,
.viewBox9 .itemBottom,
.viewBox9+.sharewidth .shareItem {
color: #0B0805;
}
.viewBox9 .orderingFood {
color: #0B0805;
border: 2rpx solid #0B0805;
}
.viewBox9+.sharewidth {
background: #0B0805;
}
/* 模板10 模板17 */
.viewBox10,
.viewBox17 {
background: #750100;
}
.viewBox10 .introduce,
.viewBox10 .reserveBox {
background: rgba(164, 9, 5, 0.35);
}
.viewBox10 .bookInfo,
.viewBox10 .centerBox,
.viewBox17 .bookInfo,
.viewBox17 .centerBox {
background: rgba(117, 1, 0, 0.75);
}
.viewBox10 .rechargeBox .btns text,
.viewBox10 .rechargeBox .bottom,
.viewBox10 .itemBottom,
.viewBox10+.sharewidth .shareItem,
.viewBox17 .rechargeBox .btns text,
.viewBox17 .rechargeBox .bottom,
.viewBox17 .itemBottom,
.viewBox17+.sharewidth .shareItem {
color: #750100;
}
.viewBox10 .orderingFood,
.viewBox17 .orderingFood {
color: #750100;
border: 2rpx solid #750100;
}
.viewBox10+.sharewidth,
.viewBox17+.sharewidth {
background: #750100;
}
/* 模板11 */
.viewBox11,
.viewBox12 {
background: #0b1a67;
}
.viewBox11 .introduce,
.viewBox12 .introduce,
.viewBox11 .reserveBox,
.viewBox12 .reserveBox {
background: rgba(33, 74, 165, 0.3);
}
.viewBox11 .bookInfo,
.viewBox11 .centerBox {
background: rgba(33, 74, 165, 0.7);
}
.viewBox11 .rechargeBox .btns text,
.viewBox11 .rechargeBox .bottom,
.viewBox11 .itemBottom,
.viewBox11+.sharewidth .shareItem,
.viewBox12 .rechargeBox .btns text,
.viewBox12 .rechargeBox .bottom,
.viewBox12 .itemBottom,
.viewBox12+.sharewidth .shareItem {
color: #0B1A67;
}
.viewBox11 .orderingFood,
.viewBox12 .orderingFood {
color: #0B1A67;
border: 2rpx solid #0B1A67;
}
.viewBox11+.sharewidth,
.viewBox12+.sharewidth {
background: #0B1A67;
}
/* 模板12 */
.viewBox12 .bookInfo,
.viewBox12 .centerBox {
background: rgba(11, 26, 103, 0.85);
}
/* 模板13 模板15 */
.viewBox13,
.viewBox15 {
background: #0b3133;
}
.viewBox13 .introduce,
.viewBox15 .introduce,
.viewBox13 .reserveBox,
.viewBox15 .reserveBox {
background: rgba(33, 89, 96, 0.75);
}
.viewBox13 .bookInfo,
.viewBox13 .centerBox,
.viewBox13 .infoTopName,
.viewBox15 .bookInfo,
.viewBox15 .centerBox,
.viewBox15 .infoTopName {
background: rgba(33, 89, 96, 0.35);
}
.viewBox13 .rechargeBox .btns text,
.viewBox13 .rechargeBox .bottom,
.viewBox13 .itemBottom,
.viewBox13+.sharewidth .shareItem,
.viewBox15 .rechargeBox .btns text,
.viewBox15 .rechargeBox .bottom,
.viewBox15 .itemBottom,
.viewBox15+.sharewidth .shareItem {
color: #215960;
}
.viewBox13 .orderingFood,
.viewBox15 .orderingFood {
color: #215960;
border: 2rpx solid #215960;
}
.viewBox13+.sharewidth,
.viewBox15+.sharewidth {
background: #215960;
}
/* 模板14 模板16 */
.viewBox14,
.viewBox16 {
background: #1b1a23;
}
.viewBox14 .introduce,
.viewBox16 .introduce,
.viewBox14 .reserveBox,
.viewBox16 .reserveBox {
background: rgba(11, 8, 5, 0.75);
}
.viewBox14 .bookInfo,
.viewBox14 .centerBox,
.viewBox14 .infoTopName,
.viewBox16 .bookInfo,
.viewBox16 .centerBox,
.viewBox16 .infoTopName {
background: rgba(11, 8, 5, 0.35);
}
.viewBox14 .rechargeBox .btns text,
.viewBox14 .rechargeBox .bottom,
.viewBox14 .itemBottom,
.viewBox14+.sharewidth .shareItem,
.viewBox16 .rechargeBox .btns text,
.viewBox16 .rechargeBox .bottom,
.viewBox16 .itemBottom,
.viewBox16+.sharewidth .shareItem {
color: #0B0805;
}
.viewBox14 .orderingFood,
.viewBox16 .orderingFood {
color: #0B0805;
border: 2rpx solid #0B0805;
}
.viewBox14+.sharewidth,
.viewBox16+.sharewidth {
background: #0B0805;
}
/* 模板17 */
.viewBox17 .introduce,
.viewBox17 .reserveBox {
background: #850402;
}
.viewBox17 .infoTopName {
background: rgba(117, 1, 0, 0.75);
}
\ No newline at end of file
... ...
... ... @@ -323,8 +323,8 @@
点击了解更多会员优惠政策
</view>
<view class="businessBox">
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,餐厅入驻请点击
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</view>
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view>
</view>
</view>
<view class="more" wx:if="{{showMoreTip}}">
... ...
... ... @@ -328,8 +328,8 @@
点击了解更多会员优惠政策
</view>
<view class="businessBox">
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,餐厅入驻请点击
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</view>
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view>
</view>
</view>
<view class="more" wx:if="{{showMoreTip}}">
... ...
... ... @@ -311,8 +311,8 @@
点击了解更多会员优惠政策
</view>
<view class="businessBox">
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,餐厅入驻请点击
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</view>
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view>
</view>
</view>
<view class="more" wx:if="{{showMoreTip}}">
... ...
... ... @@ -310,8 +310,8 @@
点击了解更多会员优惠政策
</view>
<view class="businessBox">
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,餐厅入驻请点击
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</view>
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view>
</view>
</view>
<view class="more" wx:if="{{showMoreTip}}">
... ...
... ... @@ -296,8 +296,8 @@
点击了解更多会员优惠政策
</view>
<view class="businessBox">
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,餐厅入驻请点击
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</view>
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view>
</view>
</view>
<view class="more" wx:if="{{showMoreTip}}">
... ...
... ... @@ -323,8 +323,8 @@
点击了解更多会员优惠政策
</view>
<view class="businessBox">
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,餐厅入驻请点击
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</view>
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view>
</view>
</view>
<view class="more" wx:if="{{showMoreTip}}">
... ...
... ... @@ -321,8 +321,8 @@
点击了解更多会员优惠政策
</view>
<view class="businessBox">
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,餐厅入驻请点击
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</view>
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view>
</view>
</view>
<view class="more" wx:if="{{showMoreTip}}">
... ...
... ... @@ -320,8 +320,8 @@
点击了解更多会员优惠政策
</view>
<view class="businessBox">
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,餐厅入驻请点击
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</view>
周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>,
<view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view>
</view>
</view>
</view>
... ...
... ... @@ -169,6 +169,8 @@ Page({
} else {
url = '/pack-invitation/pages/detail_owner_invitation9';
}
if(data.type == '0') url = '/pack-invitation/pages/detail_owner_invitation1';
if(data.type == '300') url = '/pack-invitation/pages/detail_owner_invitation13';
if(data.type == '18' || data.type == '21') url = '/pack-invitation/pages/detail_owner_invitation11';
if(data.type == '19' || data.type == '22') url = '/pack-invitation/pages/detail_owner_invitation12';
if(data.type == '20') url = '/pack-invitation/pages/detail_owner_invitation10';
... ...
... ... @@ -222,7 +222,7 @@
点击了解更多会员优惠政策
</view>
<text class="businessBox">
周到安排提供技术支持<text bindtap="callPhone" data-phone="4000009690">4000009690</text>,餐厅入驻请点击<text bindtap="gotoJoinSeller" style="text-decoration: underline;">这里</text>
周到安排提供技术支持<text bindtap="callPhone" data-phone="4000009690">4000009690</text>,<text bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</text>
</text>
</view>
<view class="all-button flex-lr between">
... ...