Commit b2c7d0bd62209198b15de328ab0b21160964898a

Authored by pengye
1 parent 47afa499

转发邀请函默认开启,复制微信提示文字修改

Showing 38 changed files with 483 additions and 122 deletions
... ... @@ -6,6 +6,13 @@ import canvas from '../../pages/customer/canvas';
const plugin = requirePlugin("WechatSI");
export default {
// Default forwarding to enabled; explicit 0 keeps it disabled
normalizeMarketing(marketing) {
marketing = marketing && typeof marketing === 'object' ? marketing : {};
marketing.is_transpond = (marketing.is_transpond === 0 || marketing.is_transpond === '0') ? '0' : '1';
return marketing;
},
// 获取所有的券并且展示(2-13页面)
addCoupons(coupons, couponList) {
if (coupons && util.getType(coupons) == 'object') {
... ... @@ -81,6 +88,12 @@ export default {
wx.setClipboardData({
data: this.data.staffinfo.wechat,
success(res) {
// 覆盖系统默认的「内容已复制」提示
wx.showToast({
title: '微信号已复制,去粘贴搜索添加吧!',
icon: 'none',
duration: 2000
})
wx.getClipboardData({
success(res) {
console.log(res.data) // data
... ... @@ -150,7 +163,10 @@ export default {
this.setData({
timeList,
isMany,
mealName: obj && obj.length > 0 ? (obj[0].mname || '') : '', // 多时段餐段名(新版邀请函 {餐段} 用)
})
// 页面自行实现 refreshTitleRows 时,多时段数据回来后刷新一次
if (typeof this.refreshTitleRows === 'function') this.refreshTitleRows();
// 获取转发客人卡片设置
let lite = lite_style || '3';
let liteStyle = lite.split('-');
... ... @@ -1152,9 +1168,9 @@ export default {
}
intel.imgsInfo = imgs;
if (intel.content && intel.content.length > 0 && intel.is_introduce_all == '1') {
intel.textInfo = intel.content.filter(item => item.type === "2").map(item => item.content).join('\n');
intel.imgsInfo = intel.content.filter(item => item.type === "1" && item.content).map(item => item.content);
intel.videosInfo = intel.content.filter(item => (item.type === "3" && item.content));
intel.textInfo = intel.content.filter(item => item.type == "2").map(item => item.content).join('\n');
intel.imgsInfo = intel.content.filter(item => item.type == "1" && item.content).map(item => item.content);
intel.videosInfo = intel.content.filter(item => (item.type == "3" && item.content));
}
return intel
},
... ...
... ... @@ -381,7 +381,7 @@ Page({
let StyleType, 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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ...
<!--pack-invitation/pages/detail_owner_invitation10.wxml-->
<import src="../common/parts.wxml" />
<import src="../../pages/tpl/invitation"></import>
<view class="pageWrap {{themeColor}} viewBox">
<nav hasHome class="navhome" backgroundColor="#ffeddc" place="{{true}}"></nav>
<scroll-view scroll-y class="viewBox">
<!-- 音乐开关 -->
... ... @@ -329,4 +330,5 @@
<!-- 截屏提示弹窗 -->
<template is="payModal" data="{{detail: detail, options: options, marketing: marketing, imgSrc: imgSrc}}" />
<!-- 领券弹窗(2~12 通用;13 保持页面内独立) -->
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
\ No newline at end of file
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
</view>
... ...
/* pack-invitation/pages/detail_owner_invitation10.wxss */
@import "../../pages/tpl/tpls.wxss";
.pageWrap {
position: relative;
width: 100%;
min-height: 100vh;
overflow-x: hidden;
}
.viewBox {
background: #ffeddc;
... ...
... ... @@ -398,7 +398,7 @@ Page({
let StyleType, 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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ...
<!--pack-invitation/pages/detail_owner_invitation11.wxml-->
<import src="../common/parts.wxml" />
<import src="../../pages/tpl/invitation"></import>
<view class="pageWrap {{themeColor}} viewBox viewBox{{bookType}}">
<nav hasHome class="navhome" backgroundColor="{{show_white ? colors : 'transparent'}}" place="{{false}}"></nav>
<scroll-view scroll-y class="viewBox viewBox{{bookType}}">
<!-- 音乐开关 -->
... ... @@ -672,4 +673,5 @@
<!-- 截屏提示弹窗 -->
<template is="payModal" data="{{detail: detail, options: options, marketing: marketing, imgSrc: imgSrc}}" />
<!-- 领券弹窗(2~12 通用;13 保持页面内独立) -->
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
\ No newline at end of file
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
</view>
... ...
/* pack-invitation/pages/detail_owner_invitation11.wxss */
@import "../../pages/tpl/tpls.wxss";
.pageWrap {
position: relative;
width: 100%;
min-height: 100vh;
overflow-x: hidden;
}
@font-face {
font-family: 'Abel';
... ...
... ... @@ -404,7 +404,7 @@ Page({
let StyleType, 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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ...
<!--pack-invitation/pages/detail_owner_invitation12.wxml-->
<import src="../common/parts.wxml" />
<import src="../../pages/tpl/invitation"></import>
<view class="pageWrap {{themeColor}} viewBox viewBox{{bookType}}">
<nav hasHome class="navhome" backgroundColor="{{show_white ? colors : 'transparent'}}" place="{{false}}"></nav>
<scroll-view scroll-y class="viewBox viewBox{{bookType}}">
<!-- 音乐开关 -->
... ... @@ -399,4 +400,5 @@
<!-- 截屏提示弹窗 -->
<template is="payModal" data="{{detail: detail, options: options, marketing: marketing, imgSrc: imgSrc}}" />
<!-- 领券弹窗(2~12 通用;13 保持页面内独立) -->
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
\ No newline at end of file
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
</view>
... ...
/* pack-invitation/pages/detail_owner_invitation12.wxss */
@import "../../pages/tpl/tpls.wxss";
.pageWrap {
position: relative;
width: 100%;
min-height: 100vh;
overflow-x: hidden;
}
@font-face {
font-family: 'Abel';
font-style: normal;
... ...
... ... @@ -395,7 +395,7 @@ Page({
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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ...
<!--pack-invitation/pages/detail_owner_invitation13.wxml-->
<import src="../common/parts.wxml" />
<import src="../../pages/tpl/invitation"></import>
<view class="pageWrap {{themeColor}} viewBox viewBox11">
<nav hasHome id='nav' backgroundColor="{{show_white ? colors : 'transparent'}}" place="{{false}}"></nav>
<scroll-view scroll-y class="viewBox viewBox11">
<!-- 音乐开关 -->
... ... @@ -304,4 +305,5 @@
</view>
<view class="closeBox font28r">{{countDown}} 秒后自动关闭</view>
</view>
</my-modal>
\ No newline at end of file
</my-modal>
</view>
... ...
/* pack-invitation/pages/detail_owner_invitation13.wxss */
@import "../../pages/tpl/tpls.wxss";
.pageWrap {
position: relative;
width: 100%;
min-height: 100vh;
overflow-x: hidden;
}
@font-face {
font-family: 'Abel';
font-style: normal;
... ...
... ... @@ -7,6 +7,15 @@ import RS from '../../utils/reserveStatus'
import inviteBase from '../common/inviteBase';
import convertSolarLunar from '../../components/calendar/func/convertSolarLunar';
/** 农历:正月初七(解析失败返回空) */
function getLunarText(ddate) {
if (!ddate) return '';
const time = new Date(ddate * 1000);
const lunar = convertSolarLunar.solar2lunar(time.getFullYear(), time.getMonth() + 1, time.getDate());
if (!lunar || lunar === -1) return '';
return lunar.IMonthCn + lunar.IDayCn;
}
/** 用餐日期:2027-02-14 星期六 正月初七 */
function formatInviteDate(ddate) {
if (!ddate) return '';
... ... @@ -63,6 +72,11 @@ Page({
titleStyle: '', //大标题内联色
shopStyle: '', //店名内联色
StyleTypeNum: 1, //样式1234
titleInfo: [], //预订信息配置(接口未就绪,先用死数据)
mealName: '', //多时段餐段名(getLocalLunchTime 回填,{餐段} 用它)
titleRows: [], //预订信息行(样式1/3 按配置顺序渲染)
titleRowMap: {}, //按字段类型索引(样式2/4 固定位置用)
speakImgMode: '1', // 商家有话说图片:0平铺 1轮播(餐厅介绍/招牌菜品/主厨介绍)
isCustom: '0', // 1自定义白字,0主题色
options: {
tplid: ''
... ... @@ -100,7 +114,6 @@ Page({
reserveData: {}, //自定义图文数据
showMerchantSpeak: false, // 商家有话说(自定义图文/餐厅/菜品/主厨任一有内容)
toastBool: false, //支付定金提示框
toastText: '', //支付定金提示文字
paymentId: '', //定金id
wxml: null,
imgSrc: '', //canvas图片地址
... ... @@ -237,31 +250,10 @@ Page({
if (shopObj.textFontSize == '1' && shopText.length > 11) shopCls = (shopCls + ' shopWrap').trim();
if (shopObj.textColor) shopStyle = 'color:' + shopObj.textColor;
// 标题:样式2无标题;样式3/4 固定宋体;样式1 可配字体(自定义文案禁用书法)
if (styleNum === '2') {
return {
titleCls: '',
shopCls,
titleStyle: '',
shopStyle
};
}
if (styleNum === '3' || styleNum === '4') {
titleCls = 'titleFont2';
if (titleObj.textFontSize) titleCls = (titleCls + ' titleSize' + titleObj.textFontSize).trim();
if (titleObj.textColor) titleStyle = 'color:' + titleObj.textColor + ';-webkit-text-fill-color:' + titleObj.textColor + ';background-image:none;';
return {
titleCls,
shopCls,
titleStyle,
shopStyle
};
}
// 样式1
// 大标题:样式1~4 同一套可配(字体/字号/颜色);自定义文案禁用书法
const fixedTitle = this.isFixedTitleText(titleObj.textInfo);
let fontKey = titleObj.textFont ? String(titleObj.textFont) : '';
if (fontKey === '3' && !fixedTitle) fontKey = '2'; // 自定义文案 → 默认宋体
if (fontKey === '3' && !fixedTitle) fontKey = '1'; // 自定义文案 → 系统默认黑体
if (fontKey === '1' || fontKey === '2' || fontKey === '3') titleCls = 'titleFont' + fontKey;
if (titleObj.textFontSize) titleCls = (titleCls + ' titleSize' + titleObj.textFontSize).trim();
if (titleObj.textColor) titleStyle = 'color:' + titleObj.textColor + ';-webkit-text-fill-color:' + titleObj.textColor + ';background-image:none;';
... ... @@ -552,7 +544,7 @@ Page({
reserev.soltName = '';
const sellerTel = (reserev.seller && reserev.seller.seller_tel) ? reserev.seller.seller_tel : '';
this.setData({
customersList: res.data.openid == getApp().openid ? reserev.customers.slice(1) : [], //预订人返回,邀请人为空
customersList: res.data.openid == getApp().openid ? (reserev.customers || []).slice(1) : [], //预订人返回,邀请人为空
reserveOpenid: res.data.openid,
detail,
is_user_comments: res.data.is_user_comments,
... ... @@ -650,12 +642,93 @@ Page({
})
}
},
// 预订信息行:按 titleInfo 的 content 取对应字段(content 只配一个字段;未知字段/空值不显示该行)
refreshTitleRows(tempDdate) {
const info = this.data.titleInfo || [];
const detail = this.data.detail || {};
const seller = this.data.seller || {};
const tables = (detail.tables && Array.isArray(detail.tables)) ? detail.tables : [];
const ddateText = tempDdate || this.data.temp_ddate || '';
const mealText = this.data.mealName || seller.soltName || '';
const yearMonthDay = detail.ddate ? util.unixtoTime(detail.ddate, 'YYYY年MM月DD日') : '';
const weekText = detail.ddate ? util.unixtoTime(detail.ddate, '星期WW') : '';
const lunarText = getLunarText(detail.ddate);
const regionText = tables.map(t => t.rname).filter((v, i, arr) => v && arr.indexOf(v) === i).join('、');
const roomText = tables.map(t => t.name).filter((v, i, arr) => v && arr.indexOf(v) === i).join('、');
let str = detail.sex == 1 ? '先生' : detail.sex == 2 ? '女士' : detail.sex == 4 ? '贵宾' : '';
const valueMap = {
'{姓名}': detail.rname || '',
"{姓名+称呼}": detail.rname ? (detail.rname + str) : str == '贵宾' ? '贵宾' : '',
'{公历}': yearMonthDay,
'{公历+星期}': [yearMonthDay, weekText].filter(v => v).join(' '),
'{公历+农历}': [yearMonthDay, lunarText].filter(v => v).join(' '),
'{公历+星期+农历}': [yearMonthDay, weekText, lunarText].filter(v => v).join(' '),
'{区域名}': regionText,
'{包间名}': roomText,
'{区域名+包间名}': seller.tablesText || '',
'{餐段}': mealText,
'{就餐时间}': ddateText,
'{餐段+就餐时间}': [mealText, ddateText].filter(v => v).join(' '),
'{前台电话}': (seller.tel && seller.tel.length) ? seller.tel.join(' ') : '',
};
const typeMap = {
'{姓名}': 'name',
'{姓名+称呼}': 'name',
'{公历}': 'date',
'{公历+星期}': 'date',
'{公历+农历}': 'date',
'{公历+星期+农历}': 'date',
'{区域名}': 'place',
'{包间名}': 'place',
'{区域名+包间名}': 'place',
'{餐段}': 'time',
'{就餐时间}': 'time',
'{餐段+就餐时间}': 'time',
'{前台电话}': 'phone',
};
const rows = [];
const rowMap = {};
info.forEach(item => {
if (!item || !item.content) return;
const type = typeMap[item.content];
if (!type) return;
if (type === 'phone') {
const values = (seller.tel || []).filter(v => v);
if (!values.length || rowMap.phone) return;
rowMap.phone = {
text: item.text || '',
content: item.content,
type,
value: values.join(' '),
values,
};
return;
}
const value = valueMap[item.content] || '';
if (!value) return;
const row = {
text: item.text || '',
content: item.content,
type,
value,
};
if (!rowMap[type]) rowMap[type] = row;
rows.push(row);
});
this.setData({
titleRows: rows,
titleRowMap: rowMap,
});
},
// 改到店时间(同步 picker index)
bindPickerChange(e) {
this.setData({
index: e.detail.value * 1
});
inviteBase.bindPickerChange.call(this, e);
const timeList = this.data.timeList || [];
this.refreshTitleRows(timeList[e.detail.value]);
},
// 去商家主页
sharesettingShop() {
... ... @@ -707,7 +780,7 @@ Page({
let StyleType, 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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ... @@ -745,20 +818,101 @@ Page({
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);
// 与模板11 bookType=1 一致:重组文字/轮播图;content 的 type 兼容数字/字符串;无 content 图时回退 images
if (store) {
store = this.processInfo(store, '2');
if (!store.imgsInfo || !store.imgsInfo.length) {
if (store.images && store.images.length && (!store.is_images || store.is_images != '0')) {
store.imgsInfo = store.images;
} else {
store.imgsInfo = [];
}
}
}
if (signboard) {
signboard = this.processInfo(signboard, '3');
if (!signboard.imgsInfo || !signboard.imgsInfo.length) {
signboard.imgsInfo = (signboard.images && signboard.images.length) ? signboard.images : [];
}
}
if (chef) {
chef = this.processInfo(chef, '4');
if (!chef.imgsInfo || !Array.isArray(chef.imgsInfo) || !chef.imgsInfo.length) {
if ((!chef.is_images || chef.is_images != '0') && chef.image) {
chef.imgsInfo = Array.isArray(chef.image) ? chef.image : [chef.image];
} else {
chef.imgsInfo = Array.isArray(chef.imgsInfo) ? chef.imgsInfo : (chef.imgsInfo ? [chef.imgsInfo] : []);
}
}
}
this.getLocalLunchTime(data.lite_style);
data.is_custom = '0';
// canChangeBg为1可更换背景图,0不可
let isCustom = data.is_custom == '1' ? '1' : '0'; // 是否自定义:1 是,主题色:0
let themeColor = isCustom == '1' ? 'pearlWhite' : data.lite_class;
let themeColor = isCustom == '1' ? 'pearlWhite' : data.lite_class ? data.lite_class : 'turmeric';
let entranceIcon = 1;
let actionIcon = 1;
let StyleTypeNum = '1'; //样式类型1234
//大标题(预订安排/邀请函字样) — 内容应固定;自定义文案时书法失效改默认宋体
let titleInfo = [
// {
// text:'贵宾1',
// content:'{姓名}'
// },
{
text: '姓名2',
content: '{姓名+称呼}'
},
// {
// text:'日期1',
// content:'{公历}'
// },
// {
// text:'日期2',
// content:'{公历+星期}'
// },
// {
// text:'日期3',
// content:'{公历+农历}'
// },
{
text: '日期4',
content: '{公历+星期+农历}'
},
// {
// text:'包间位置1',
// content:'{区域名}'
// },
// {
// text:'包间位置2',
// content:'{包间名}'
// },
{
text: '包间位置3',
content: '{区域名+包间名}'
},
// {
// text:'就餐时间1',
// content:'{餐段}'
// },
// {
// text:'就餐时间2',
// content:'{就餐时间}'
// },
{
text: '就餐时间3',
content: '{餐段+就餐时间}'
},
{
text: '前台电话',
content: '{前台电话}'
}
]
//大标题 — 可配字号/字体/颜色/文案;书法仅「预订安排|邀请函」;换文案时书法降为黑体
let titleObj = {
textColor: '#fff', //文字颜色
textFont: '3', //文字字体1黑体 2宋体 3书法体(仅固定文案可用)
textFontSize: '1', //文字大小 1大号 2中号 3小号
textInfo: '邀请函11', //固定:预订安排 / 邀请函
textInfo: '邀请函11', //固定文案:预订安排 / 邀请函
}
//店铺名称 — 不可换字体,可换字号/颜色
let shopObj = {
... ... @@ -766,6 +920,17 @@ Page({
textFontSize: '2',
textInfo: '长安大排档总店标题', //大号且>11字自动换行
}
// 商家有话说图片展示:0平铺 1轮播(餐厅介绍 / 招牌菜品 / 主厨介绍)
let speakImgMode = '0';
// 轮播时:餐厅介绍把首图、logo 一并并入 imgsInfo(去重,首图/logo 在前)
if (speakImgMode == '1') {
store = store || {};
let headImgs = [];
if (home && home.image) headImgs.push(home.image);
if (marketing && marketing.logo) headImgs.push(marketing.logo);
let rest = (store.imgsInfo || []).filter(url => url && headImgs.indexOf(url) < 0);
store.imgsInfo = headImgs.concat(rest);
}
const titleShop = this.buildTitleShopStyle(StyleTypeNum, titleObj, shopObj);
const titleCls = titleShop.titleCls;
const shopCls = titleShop.shopCls;
... ... @@ -810,11 +975,14 @@ Page({
shopCls,
titleStyle,
shopStyle,
speakImgMode,
titleInfo,
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)
this.refreshTitleRows();
this.refreshActionBtn(obj)
this.updateShowMerchantSpeak()
this.resolveThemeImg();
... ...
... ... @@ -80,28 +80,28 @@
<view class="infoItem" wx:if="{{reserve.swich_booking=='1' && reserve.book_info}}">
<text space="nbsp" class="contentData font28r bookData">{{reserve.book_info}}</text>
</view>
<view class="infoItem" wx:if="{{seller.tablesText}}">
<view class="contentData contentData1">{{seller.tablesText}}</view>
<view class="infoItem" wx:if="{{titleRowMap.place}}">
<view class="contentData contentData1">{{titleRowMap.place.value}}</view>
</view>
<view class="infoItem" wx:if="{{seller.date}}">
<view class="contentData contentData2">{{seller.date}}</view>
<view class="infoItem" wx:if="{{titleRowMap.date}}">
<view class="contentData contentData2">{{titleRowMap.date.value}}</view>
</view>
<view class="infoItem" wx:if="{{(detail.rnameStr && reserve.swich_customer == '1') || seller.soltName}}">
<view class="infoItem" wx:if="{{titleRowMap.name || titleRowMap.time}}">
<view class="contentData contentWithBtn contentData2 contentData3">
<text wx:if="{{detail.rnameStr && reserve.swich_customer == '1'}}">{{detail.rnameStr}}订</text>
<text class="texts1" wx:if="{{detail.rnameStr && reserve.swich_customer == '1' && seller.soltName}}"> | </text>
<text wx:if="{{seller.soltName}}">{{seller.soltName}}<text wx:if="{{temp_ddate}}"> {{temp_ddate}}</text></text>
<picker wx:if="{{detail && options && options.isOrder != '1' && (detail.status =='1' || detail.status =='2') && options.hasSellerShare == '1' && seller.soltName}}" bindchange="bindPickerChange" value="{{index}}" range="{{timeList}}">
<text wx:if="{{titleRowMap.name}}">{{titleRowMap.name.value}}订</text>
<text class="texts1" wx:if="{{titleRowMap.name && titleRowMap.time}}"> | </text>
<text wx:if="{{titleRowMap.time}}">{{titleRowMap.time.value}}</text>
<picker wx:if="{{titleRowMap.time && detail && options && options.isOrder != '1' && (detail.status =='1' || detail.status =='2') && options.hasSellerShare == '1' && seller.soltName}}" bindchange="bindPickerChange" value="{{index}}" range="{{timeList}}">
<view class="miniBtn">
<image class="arrivalImg" src="https://qn.colorcun.com/editTimeIcon{{actionIcon}}.png" mode="" /><text>改时间</text>
</view>
</picker>
</view>
</view>
<view class="infoItem" wx:if="{{swich_phone!='0' && seller.tel && seller.tel.length>0}}">
<view class="infoItem" wx:if="{{titleRowMap.phone}}">
<view class="contentData contentWithBtn contentData2">
<text>前台电话</text>
<text wx:for="{{seller.tel}}" wx:key="index" data-phone="{{item}}" class="contentDataPhone" bindtap="call"> {{item}}</text>
<text wx:for="{{titleRowMap.phone.values}}" wx:key="index" data-phone="{{item}}" class="contentDataPhone" bindtap="call"> {{item}}</text>
<view class="miniBtn" data-phone="{{contactPhone || seller.tel[0]}}" bindtap="call">
<image src="https://qn.colorcun.com/contactMeIcon{{actionIcon}}.png" mode="" /><text>联系我</text>
</view>
... ... @@ -128,15 +128,14 @@
<view class="infoItem" wx:if="{{reserve.swich_booking=='1' && reserve.book_info}}">
<text space="nbsp" class="contentData font28r bookData">{{reserve.book_info}}</text>
</view>
<view class="bookInvite">{{detail.rnameStr ? detail.rnameStr + '邀您赴宴' : '邀您赴宴'}}</view>
<view class="bookInvite">{{titleRowMap.name ? titleRowMap.name.value + '邀您赴宴' : '邀您赴宴'}}</view>
<view class="bookDivider"></view>
<view class="infoItem style4Item" wx:if="{{seller.date || seller.soltName || temp_ddate}}">
<view class="infoItem style4Item" wx:if="{{titleRowMap.date || titleRowMap.time}}">
<view class="label font24r">时间</view>
<view class="contentData timeBox">
<view class="timeDate" wx:if="{{seller.date}}">{{seller.date}}</view>
<view class="contentWithBtn timeSlot" wx:if="{{seller.soltName || temp_ddate}}">
<text wx:if="{{seller.soltName}}">{{seller.soltName}}</text>
<text wx:if="{{temp_ddate}}"> {{temp_ddate}}</text>
<view class="timeDate" wx:if="{{titleRowMap.date}}">{{titleRowMap.date.value}}</view>
<view class="contentWithBtn timeSlot" wx:if="{{titleRowMap.time}}">
<text>{{titleRowMap.time.value}}</text>
<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="miniBtn">
<image class="arrivalImg" src="https://qn.colorcun.com/editTimeIcon{{actionIcon}}.png" mode="" /><text>改时间</text>
... ... @@ -145,17 +144,17 @@
</view>
</view>
</view>
<view class="infoItem style4Item" wx:if="{{seller.name || reserve.seller_name || seller.tablesText}}">
<view class="infoItem style4Item" wx:if="{{seller.name || reserve.seller_name || titleRowMap.place}}">
<view class="label font24r">地点及餐位</view>
<view class="contentData placeBox">
<view class="placeShop" wx:if="{{seller.name || reserve.seller_name}}">{{seller.name || reserve.seller_name}}</view>
<view class="placeTable" wx:if="{{seller.tablesText}}">{{seller.tablesText}}</view>
<view class="placeTable" wx:if="{{titleRowMap.place}}">{{titleRowMap.place.value}}</view>
</view>
</view>
<view class="infoItem style4Item" wx:if="{{swich_phone!='0' && seller.tel && seller.tel.length>0}}">
<view class="infoItem style4Item" wx:if="{{titleRowMap.phone}}">
<view class="label font24r">前台电话</view>
<view class="contentData contentWithBtn">
<text wx:for="{{seller.tel}}" wx:key="index" data-phone="{{item}}" class="contentDataPhone" bindtap="call">{{index > 0 ? ' ' : ''}}{{item}}</text>
<text wx:for="{{titleRowMap.phone.values}}" wx:key="index" data-phone="{{item}}" class="contentDataPhone" bindtap="call">{{index > 0 ? ' ' : ''}}{{item}}</text>
<view class="miniBtn" data-phone="{{contactPhone || seller.tel[0]}}" bindtap="call">
<image src="https://qn.colorcun.com/contactMeIcon{{actionIcon}}.png" mode="" /><text>联系我</text>
</view>
... ... @@ -176,35 +175,29 @@
<view class="infoItem" wx:if="{{(StyleTypeNum == 3 || StyleTypeNum == '3') && reserve.swich_booking=='1' && reserve.book_info}}">
<text space="nbsp" class="contentData font28r bookData">{{reserve.book_info}}</text>
</view>
<view class="infoItem" wx:if="{{detail.rnameStr && reserve.swich_customer == '1'}}">
<view class="label font24r">预订贵宾</view>
<view class="contentData">{{detail.rnameStr}}</view>
</view>
<view class="infoItem" wx:if="{{seller.date}}">
<view class="label font24r">用餐日期</view>
<view class="contentData">{{seller.date}}</view>
</view>
<view class="infoItem" wx:if="{{seller.tablesText}}">
<view class="label font24r">用餐位置</view>
<view class="contentData">{{seller.tablesText}}</view>
</view>
<view class="infoItem" wx:if="{{seller.soltName}}">
<view class="label font24r">用餐时间</view>
<view class="valueRow">
<view class="contentData">{{seller.soltName}}<text class="marLeft" wx:if="{{temp_ddate}}">{{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="miniBtn">
<image class="arrivalImg" src="https://qn.colorcun.com/editTimeIcon{{actionIcon}}.png" mode="" /><text>改时间</text>
</view>
</picker>
<block wx:for="{{titleRows}}" wx:key="index">
<view class="infoItem" wx:if="{{item.type != 'time'}}">
<view class="label font24r">{{item.text}}</view>
<view class="contentData">{{item.value}}</view>
</view>
</view>
<view class="infoItem" wx:else>
<view class="label font24r">{{item.text}}</view>
<view class="valueRow">
<view class="contentData">{{item.value}}</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="miniBtn">
<image class="arrivalImg" src="https://qn.colorcun.com/editTimeIcon{{actionIcon}}.png" mode="" /><text>改时间</text>
</view>
</picker>
</view>
</view>
</block>
<!-- 样式3:标签固定左侧,右侧内容折行 -->
<block wx:if="{{StyleTypeNum == 3 || StyleTypeNum == '3'}}">
<view class="infoItem infoLine" wx:if="{{swich_phone!='0' && seller.tel && seller.tel.length>0}}">
<view class="infoItem infoLine" wx:if="{{titleRowMap.phone}}">
<view class="label font24r">前台电话</view>
<view class="contentData contentWithBtn infoRight">
<text wx:for="{{seller.tel}}" wx:key="index" data-phone="{{item}}" class="contentDataPhone" bindtap="call">{{index > 0 ? ' ' : ''}}{{item}}</text>
<text wx:for="{{titleRowMap.phone.values}}" wx:key="index" data-phone="{{item}}" class="contentDataPhone" bindtap="call">{{index > 0 ? ' ' : ''}}{{item}}</text>
<view class="miniBtn" data-phone="{{contactPhone || seller.tel[0]}}" bindtap="call">
<image src="https://qn.colorcun.com/contactMeIcon{{actionIcon}}.png" mode="" /><text>联系我</text>
</view>
... ... @@ -221,10 +214,10 @@
</view>
</block>
<block wx:else>
<view class="infoItem" wx:if="{{swich_phone!='0' && seller.tel && seller.tel.length>0}}">
<view class="infoItem" wx:if="{{titleRowMap.phone}}">
<view class="label font24r">前台电话</view>
<block wx:if="{{seller.tel.length == 1}}">
<view class="phoneRow contentData" wx:for="{{seller.tel}}" wx:key="index">
<block wx:if="{{titleRowMap.phone.values.length == 1}}">
<view class="phoneRow contentData" wx:for="{{titleRowMap.phone.values}}" wx:key="index">
<text data-phone="{{item}}" class="contentDataPhone" bindtap="call">{{item}}</text>
<view class="miniBtn" data-phone="{{item}}" bindtap="call">
<image src="https://qn.colorcun.com/contactMeIcon{{actionIcon}}.png" mode="" /><text>联系我</text>
... ... @@ -233,7 +226,7 @@
</block>
<block wx:else>
<view class="contentData phoneMultiList">
<text wx:for="{{seller.tel}}" wx:key="index" data-phone="{{item}}" class="contentDataPhone phoneMultiItem" bindtap="call">{{item}}</text>
<text wx:for="{{titleRowMap.phone.values}}" wx:key="index" data-phone="{{item}}" class="contentDataPhone phoneMultiItem" bindtap="call">{{item}}</text>
</view>
<view class="miniBtn phoneMultiBtn" wx:if="{{contactPhone}}" data-phone="{{contactPhone}}" bindtap="call">
<image src="https://qn.colorcun.com/contactMeIcon{{actionIcon}}.png" mode="" /><text>联系我</text>
... ... @@ -357,7 +350,23 @@
<text space="nbsp" class="items font28r" wx:if="{{item.type == '2'}}">{{item.content}}</text>
</block>
</view>
<view class="introduce" wx:if="{{marketing.logo || home.image || (store && ((store.introduce && (!store.is_introduce || store.is_introduce!='0')) || (store.images && store.images.length>0 && (!store.is_images || store.is_images!='0')) || (store.content && store.content.length>0)))}}">
<!-- 餐厅介绍:speakImgMode=1 轮播(含首图 home.image、logo) -->
<view class="introduce" wx:if="{{speakImgMode=='1' && store && (store.textInfo || (store.imgsInfo && store.imgsInfo.length>0) || (store.videosInfo && store.videosInfo.length>0))}}">
<view class="titleInfo">{{store.title ? store.title : '餐厅介绍'}}</view>
<view class="labelBox" wx:if="{{store.textInfo}}">
<text space="nbsp" class="texts font28r">{{store.textInfo}}</text>
</view>
<swiper wx:if="{{store.imgsInfo.length>1}}" class="detailBanner" indicator-dots="{{true}}" autoplay="{{true}}" interval="{{2000}}" circular="{{true}}" indicator-color="lightgray" indicator-active-color="#fff">
<swiper-item wx:for="{{store.imgsInfo}}" wx:key="index">
<image mode="aspectFill" class="detailBannerImg" src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{store.imgsInfo}}"></image>
</swiper-item>
</swiper>
<image wx:if="{{store.imgsInfo.length == 1 || store.imgsInfo.length == '1'}}" mode="widthFix" class="detailBannerImg1" src="{{store.imgsInfo[0]}}" bindtap="lookImgs" data-url="{{store.imgsInfo[0]}}" data-imgs="{{store.imgsInfo}}"></image>
<block wx:for="{{store.videosInfo}}" wx:key="index">
<video class="boxBlock" src="{{item.content}}" show-center-play-btn="{{true}}" autoplay="{{false}}" object-fit="cover" controls="{{true}}"></video>
</block>
</view>
<view class="introduce" wx:elif="{{speakImgMode!='1' && (marketing.logo || home.image || (store && ((store.introduce && (!store.is_introduce || store.is_introduce!='0')) || (store.images && store.images.length>0 && (!store.is_images || store.is_images!='0')) || (store.content && store.content.length>0))))}}">
<view class="titleInfo">{{store.title ? store.title : '餐厅介绍'}}</view>
<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>
... ... @@ -373,7 +382,23 @@
<template is="richText" data="{{content: store.content, imgs: '', textClass: 'font32r'}}" />
</view>
</view>
<view class="introduce" wx:if="{{signboard && ((signboard.swich=='1' && signboard.images && signboard.images.length>0) || (signboard.content && signboard.content.length>0))}}">
<!-- 招牌菜品 -->
<view class="introduce" wx:if="{{speakImgMode=='1' && signboard && signboard.swich=='1' && (signboard.textInfo || (signboard.imgsInfo && signboard.imgsInfo.length>0) || (signboard.videosInfo && signboard.videosInfo.length>0))}}">
<view class="titleInfo">{{signboard.title ? signboard.title : '特色菜品'}}</view>
<view class="labelBox" wx:if="{{signboard.textInfo}}">
<text space="nbsp" class="texts font28r">{{signboard.textInfo}}</text>
</view>
<swiper wx:if="{{signboard.imgsInfo.length>1}}" class="detailBanner" indicator-dots="{{true}}" autoplay="{{true}}" interval="{{2000}}" circular="{{true}}" indicator-color="lightgray" indicator-active-color="#fff">
<swiper-item wx:for="{{signboard.imgsInfo}}" wx:key="index">
<image mode="aspectFill" class="detailBannerImg" src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{signboard.imgsInfo}}"></image>
</swiper-item>
</swiper>
<image wx:if="{{signboard.imgsInfo.length == 1 || signboard.imgsInfo.length == '1'}}" mode="widthFix" class="detailBannerImg1" src="{{signboard.imgsInfo[0]}}" bindtap="lookImgs" data-url="{{signboard.imgsInfo[0]}}" data-imgs="{{signboard.imgsInfo}}"></image>
<block wx:for="{{signboard.videosInfo}}" wx:key="index">
<video class="boxBlock" src="{{item.content}}" show-center-play-btn="{{true}}" autoplay="{{false}}" object-fit="cover" controls="{{true}}"></video>
</block>
</view>
<view class="introduce" wx:elif="{{speakImgMode!='1' && signboard && ((signboard.swich=='1' && signboard.images && signboard.images.length>0) || (signboard.content && signboard.content.length>0))}}">
<view class="titleInfo">{{signboard.title ? signboard.title : '特色菜品'}}</view>
<block wx:if="{{signboard.images && signboard.images.length>0}}">
<block wx:for="{{signboard.images}}" wx:key="arryIndex" wx:for-index="arryIndex">
... ... @@ -384,11 +409,27 @@
<template is="richText" data="{{content: signboard.content, imgs: '', textClass: 'font32r'}}" />
</view>
</view>
<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" wx:if="{{speakImgMode=='1' && chef && (chef.textInfo || (chef.imgsInfo && chef.imgsInfo.length>0) || (chef.videosInfo && chef.videosInfo.length>0))}}">
<view class="titleInfo">{{chef.title ? chef.title : '主厨介绍'}}</view>
<view class="labelBox" wx:if="{{chef.textInfo}}">
<text class="texts font28r" space="nbsp">{{chef.textInfo}}</text>
</view>
<swiper wx:if="{{chef.imgsInfo.length>1}}" class="detailBanner" indicator-dots="{{true}}" autoplay="{{true}}" interval="{{2000}}" circular="{{true}}" indicator-color="lightgray" indicator-active-color="#fff">
<swiper-item wx:for="{{chef.imgsInfo}}" wx:key="index">
<image mode="aspectFill" class="detailBannerImg" src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{chef.imgsInfo}}"></image>
</swiper-item>
</swiper>
<image wx:if="{{chef.imgsInfo.length == 1 || chef.imgsInfo.length == '1'}}" mode="widthFix" class="detailBannerImg1" src="{{chef.imgsInfo[0]}}" bindtap="lookImgs" data-url="{{chef.imgsInfo[0]}}" data-imgs="{{chef.imgsInfo}}"></image>
<block wx:for="{{chef.videosInfo}}" wx:key="index">
<video class="boxBlock" src="{{item.content}}" show-center-play-btn="{{true}}" autoplay="{{false}}" object-fit="cover" controls="{{true}}"></video>
</block>
</view>
<block wx:elif="{{speakImgMode!='1' && 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 class="titleInfo">{{chef.title ? chef.title : '主厨介绍'}}</view>
<view class="labelBox" wx:if="{{chef.introduce && (!chef.is_introduce || chef.is_introduce!='0')}}">
<text class="texts" space="nbsp">{{chef.introduce}}</text>
<text class="texts font28r" 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}}">
... ... @@ -400,7 +441,7 @@
<view class="sectionTitle">{{reserve.title ? reserve.title : '停车指引'}}</view>
<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>
<text class="texts font28r" 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" />
... ... @@ -421,9 +462,6 @@
<view class="moreText">滑动查看更多</view>
<image src="https://qn.colorcun.com/jt1.png" mode="" />
</view>
<view class="toastBox" wx:if="{{toastBool}}">
{{toastText}}
</view>
</view>
</view>
</scroll-view>
... ...
... ... @@ -196,6 +196,16 @@
background: transparent;
}
.heroBlock.style4 {
box-sizing: border-box;
padding: 32rpx 22rpx 10rpx;
margin: 0 40rpx 60rpx;
border-radius: 20rpx;
border: none;
background: transparent;
text-align: left;
}
.bgEditBar {
display: flex;
justify-content: center;
... ... @@ -310,8 +320,7 @@
}
.contentWithBtn>text,
.contentDataPhone,
.divider {
.contentDataPhone {
display: inline;
vertical-align: middle;
}
... ... @@ -550,6 +559,11 @@
margin-bottom: 20rpx;
}
/* 样式1:entrance 是右侧绝对定位的图标列,给正文留出它的宽度,长文案(如 公历+星期+农历)自动折行,避免被图标压住 */
.style1 .bookInfo .contentData {
max-width: calc(100% - 140rpx);
}
.style2 .entrance,
.style3 .entrance,
.style4 .entrance {
... ... @@ -955,6 +969,39 @@
margin-bottom: 80rpx;
}
.introduce .roomSwiperWrap {
padding: 0;
margin-bottom: 20rpx;
}
/* 商家有话说轮播(对齐模板11 bookType=1 detailBanner) */
.detailBanner {
width: 100%;
height: 500rpx;
background: transparent;
margin-top: 20rpx;
margin-bottom: 20rpx;
}
.detailBannerImg {
width: 100%;
height: 100%;
border-radius: 10rpx;
}
.detailBannerImg1 {
width: 100%;
border-radius: 10rpx;
margin-bottom: 20rpx;
display: block;
}
.boxBlock {
width: 100%;
border-radius: 10rpx;
margin-top: 20rpx;
}
.roomSwiper {
width: 100%;
height: 480rpx;
... ... @@ -1152,10 +1199,6 @@
line-height: 56rpx;
}
.heroBlock .bookSectionTitle {
display: none;
}
.sectionTitle::before {
content: '';
flex: 1;
... ... @@ -1824,7 +1867,6 @@
.pageturmeric .infoItem>.contentData:not(.bookData):not(.contentWithBtn),
.pageturmeric .valueRow>.contentData,
.pageturmeric .contentDataPhone,
.pageturmeric .divider,
.pageturmeric .contentWithBtn>text,
.pageturmeric .sectionTitle,
.pageturmeric .peopleName,
... ... @@ -1919,14 +1961,13 @@
.pagecolor .infoItem>.contentData:not(.bookData):not(.contentWithBtn),
.pagecolor .valueRow>.contentData,
.pagecolor .contentDataPhone,
.pagecolor .divider,
.pagecolor .contentWithBtn>text,
.pagecolor .welcomeInfo,
.pagecolor .sectionTitle,
.pagecolor .style2 .heroSeller,
.pagecolor .style2 .heroSlogan,
.pagecolor .style2 .bookData,
.pagecolor .style2.welcomeInf,
.pagecolor .style2.welcomeInfo,
.pagecolor .style3 .heroSeller,
.pagecolor .style3 .heroSlogan {
background-image: linear-gradient(180deg, #ffe6c5 0%, #c7a17d 100%);
... ... @@ -2095,7 +2136,6 @@
* ============================================================================ */
/* --- 渐变描边公用(主题色非金 entrance / 自定义版块) --- */
.panelGradBorder::before,
.pagecolor.style2 .entrance::before,
.pagecolor.style3 .entrance::before,
.pagecolor.style4 .entrance::before,
... ...
... ... @@ -371,7 +371,7 @@ Page({
let themeColor, StyleType, titleType, themeSixteen, 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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ...
<!--pack-invitation/pages/detail_owner_invitation2.wxml-->
<import src="../../pages/tpl/invitation"></import>
<import src="../common/parts.wxml" />
<view class="pageWrap {{themeColor}}">
<nav hasHome backgroundColor="{{themeSixteen}}" color="{{themeColor == 'pearlWhite'?'#515151':'#fff'}}" class="navhome" place="{{true}}">{{seller.name||reserve.seller_name}}</nav>
<scroll-view scroll-y class="{{themeColor}}">
<!-- 音乐开关 -->
... ... @@ -230,4 +231,5 @@
<!-- 截屏提示弹窗 -->
<template is="payModal" data="{{detail: detail, options: options, marketing: marketing, imgSrc: imgSrc}}" />
<!-- 领券弹窗(2~12 通用;13 保持页面内独立) -->
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
\ No newline at end of file
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
</view>
... ...
/* pack-invitation/pages/detail_owner_invitation2.wxss */
@import "../../pages/tpl/tpls.wxss";
.pageWrap {
position: relative;
width: 100%;
min-height: 100vh;
overflow-x: hidden;
}
@font-face {
font-family: 'Abel';
font-style: normal;
... ...
... ... @@ -371,7 +371,7 @@ Page({
let 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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ...
<!--pack-invitation/pages/detail_owner_invitation3.wxml-->
<import src="../../pages/tpl/invitation"></import>
<import src="../common/parts.wxml" />
<view class="pageWrap {{themeColor}}">
<nav hasHome class="navhome" place="{{true}}">{{seller.name||reserve.seller_name}}</nav>
<scroll-view scroll-y class="{{themeColor}}">
<!-- 音乐开关 -->
... ... @@ -235,4 +236,5 @@
<!-- 截屏提示弹窗 -->
<template is="payModal" data="{{detail: detail, options: options, marketing: marketing, imgSrc: imgSrc}}" />
<!-- 领券弹窗(2~12 通用;13 保持页面内独立) -->
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
\ No newline at end of file
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
</view>
... ...
/* pack-invitation/pages/detail_owner_invitation3.wxss */
@import "../../pages/tpl/tpls.wxss";
.pageWrap {
position: relative;
width: 100%;
min-height: 100vh;
overflow-x: hidden;
}
@font-face {
font-family: 'Abel';
font-style: normal;
... ...
... ... @@ -371,7 +371,7 @@ Page({
let 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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ...
<!--pack-invitation/pages/detail_owner_invitation4.wxml-->
<import src="../common/parts.wxml" />
<view class="pageWrap {{themeColor}}">
<nav hasHome class="navhome" place="{{true}}">{{seller.name||reserve.seller_name}}</nav>
<scroll-view scroll-y class="{{themeColor}}">
<!-- 音乐开关 -->
... ... @@ -218,4 +219,5 @@
<!-- 截屏提示弹窗 -->
<template is="payModal" data="{{detail: detail, options: options, marketing: marketing, imgSrc: imgSrc}}" />
<!-- 领券弹窗(2~12 通用;13 保持页面内独立) -->
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
\ No newline at end of file
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
</view>
... ...
/* pack-invitation/pages/detail_owner_invitation4.wxss */
@import "../../pages/tpl/tpls.wxss";
.pageWrap {
position: relative;
width: 100%;
min-height: 100vh;
overflow-x: hidden;
}
@font-face {
font-family: 'Abel';
font-style: normal;
... ...
... ... @@ -370,7 +370,7 @@ Page({
let 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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ...
<!--pack-invitation/pages/detail_owner_invitation5.wxml-->
<import src="../common/parts.wxml" />
<view class="pageWrap {{themeColor}}">
<nav hasHome class="navhome" place="{{true}}">{{seller.name||reserve.seller_name}}</nav>
<scroll-view scroll-y class="{{themeColor}}">
<!-- 音乐开关 -->
... ... @@ -217,4 +218,5 @@
<!-- 截屏提示弹窗 -->
<template is="payModal" data="{{detail: detail, options: options, marketing: marketing, imgSrc: imgSrc}}" />
<!-- 领券弹窗(2~12 通用;13 保持页面内独立) -->
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
\ No newline at end of file
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
</view>
... ...
/* pack-invitation/pages/detail_owner_invitation5.wxss */
@import "../../pages/tpl/tpls.wxss";
.pageWrap {
position: relative;
width: 100%;
min-height: 100vh;
overflow-x: hidden;
}
@font-face {
font-family: 'Abel';
font-style: normal;
... ...
... ... @@ -328,7 +328,7 @@ Page({
let themeColor, StyleType, titleType, whiteBj, 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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ...
<!--pack-invitation/pages/detail_owner_invitation6.wxml-->
<import src="../common/parts.wxml" />
<import src="../../pages/tpl/invitation"></import>
<view class="pageWrap {{themeColor}}">
<nav hasHome class="navhome" place="{{true}}">{{seller.name||reserve.seller_name}}</nav>
<scroll-view scroll-y class="{{themeColor}}">
<!-- 音乐开关 -->
... ... @@ -255,4 +256,5 @@
<!-- 截屏提示弹窗 -->
<template is="payModal" data="{{detail: detail, options: options, marketing: marketing, imgSrc: imgSrc}}" />
<!-- 领券弹窗(2~12 通用;13 保持页面内独立) -->
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
\ No newline at end of file
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
</view>
... ...
/* pack-invitation/pages/detail_owner_invitation6.wxss */
@import "../../pages/tpl/tpls.wxss";
.pageWrap {
position: relative;
width: 100%;
min-height: 100vh;
overflow-x: hidden;
}
.titleImg {
top: 160rpx;
left: 1rpx;
... ...
... ... @@ -371,7 +371,7 @@ Page({
let 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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ...
<!--pack-invitation/pages/detail_owner_invitation7.wxml-->
<import src="../common/parts.wxml" />
<import src="../../pages/tpl/invitation"></import>
<view class="pageWrap {{themeColor}}">
<nav hasHome class="navhome" place="{{true}}">{{seller.name||reserve.seller_name}}</nav>
<scroll-view scroll-y class="{{themeColor}}">
<!-- 音乐开关 -->
... ... @@ -230,4 +231,5 @@
<!-- 截屏提示弹窗 -->
<template is="payModal" data="{{detail: detail, options: options, marketing: marketing, imgSrc: imgSrc}}" />
<!-- 领券弹窗(2~12 通用;13 保持页面内独立) -->
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
\ No newline at end of file
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
</view>
... ...
/* pack-invitation/pages/detail_owner_invitation7.wxss */
@import "../../pages/tpl/tpls.wxss";
.pageWrap {
position: relative;
width: 100%;
min-height: 100vh;
overflow-x: hidden;
}
@font-face {
font-family: 'Abel';
font-style: normal;
... ...
... ... @@ -370,7 +370,7 @@ Page({
let 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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ...
<!--pack-invitation/pages/detail_owner_invitation8.wxml-->
<import src="../common/parts.wxml" />
<import src="../../pages/tpl/invitation"></import>
<view class="pageWrap {{themeColor}}">
<nav hasHome class="navhome" place="{{true}}">{{seller.name||reserve.seller_name}}</nav>
<scroll-view scroll-y class="{{themeColor}}">
<!-- 音乐开关 -->
... ... @@ -229,4 +230,5 @@
<template is="payModal" data="{{detail: detail, options: options, marketing: marketing, imgSrc: imgSrc}}" />
<!-- 领券弹窗(2~12 通用;13 保持页面内独立) -->
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
\ No newline at end of file
<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" />
</view>
... ...
/* pack-invitation/pages/detail_owner_invitation8.wxss */
@import "../../pages/tpl/tpls.wxss";
.pageWrap {
position: relative;
width: 100%;
min-height: 100vh;
overflow-x: hidden;
}
@font-face {
font-family: 'Abel';
font-style: normal;
... ...
... ... @@ -388,7 +388,7 @@ Page({
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);
marketing = this.normalizeMarketing(util.determine(data.marketing));
signboard = util.determine(data.signboard);
store = util.determine(data.store);
home = util.determine(data.home);
... ...