Showing
12 changed files
with
4198 additions
and
21 deletions
| @@ -68,7 +68,8 @@ | @@ -68,7 +68,8 @@ | ||
| 68 | "pages/customer/login", | 68 | "pages/customer/login", |
| 69 | "pages/me/consumeAmount", | 69 | "pages/me/consumeAmount", |
| 70 | "pages/me/consumeDetails", | 70 | "pages/me/consumeDetails", |
| 71 | - "pages/me/myBalance" | 71 | + "pages/me/myBalance", |
| 72 | + "pages/customer/aiBook" | ||
| 72 | ], | 73 | ], |
| 73 | "requiredPrivateInfos": [ | 74 | "requiredPrivateInfos": [ |
| 74 | "getLocation", | 75 | "getLocation", |
| @@ -175,7 +176,8 @@ | @@ -175,7 +176,8 @@ | ||
| 175 | "pages/detail_owner_invitation10", | 176 | "pages/detail_owner_invitation10", |
| 176 | "pages/detail_owner_invitation11", | 177 | "pages/detail_owner_invitation11", |
| 177 | "pages/detail_owner_invitation12", | 178 | "pages/detail_owner_invitation12", |
| 178 | - "pages/detail_owner_invitation13" | 179 | + "pages/detail_owner_invitation13", |
| 180 | + "pages/detail_owner_invitation14" | ||
| 179 | ] | 181 | ] |
| 180 | } | 182 | } |
| 181 | ], | 183 | ], |
| @@ -227,6 +229,9 @@ | @@ -227,6 +229,9 @@ | ||
| 227 | "scope.userLocation": { | 229 | "scope.userLocation": { |
| 228 | "desc": "你的位置信息用于获得离你最近的餐厅" | 230 | "desc": "你的位置信息用于获得离你最近的餐厅" |
| 229 | }, | 231 | }, |
| 232 | + "scope.record": { | ||
| 233 | + "desc": "用于按住说话,把语音转成文字" | ||
| 234 | + }, | ||
| 230 | "scope.https://tts.baidu.com/*": { | 235 | "scope.https://tts.baidu.com/*": { |
| 231 | "desc": "你的应用需要获取语音合成的权限" | 236 | "desc": "你的应用需要获取语音合成的权限" |
| 232 | } | 237 | } |
| @@ -129,7 +129,7 @@ Page({ | @@ -129,7 +129,7 @@ Page({ | ||
| 129 | recharge_data.forEach(item => { | 129 | recharge_data.forEach(item => { |
| 130 | item.recharge_list = item.recharge_list ? JSON.parse(item.recharge_list) : ''; | 130 | item.recharge_list = item.recharge_list ? JSON.parse(item.recharge_list) : ''; |
| 131 | let recharge_list = item.recharge_list; | 131 | let recharge_list = item.recharge_list; |
| 132 | - item.timeStr = util.unixtoTime(item.stime, 'YYYY-MM-DD') + ' - ' + util.unixtoTime(item.etime, 'YYYY-MM-DD') | 132 | + item.timeStr = (item.timeStr && item.timeStr) ? util.unixtoTime(item.stime, 'YYYY-MM-DD') + ' - ' + util.unixtoTime(item.etime, 'YYYY-MM-DD') : ''; |
| 133 | }) | 133 | }) |
| 134 | // 筛选出 未过期的 && 开启状态的充值活动 | 134 | // 筛选出 未过期的 && 开启状态的充值活动 |
| 135 | recharge_data = recharge_data.filter(item => { | 135 | recharge_data = recharge_data.filter(item => { |
| @@ -505,7 +505,7 @@ Page({ | @@ -505,7 +505,7 @@ Page({ | ||
| 505 | if (recharge_list.is_price == '1') item.priceInfo = '会员充值满' + item.recharge_money + '元赠送' + item.recharge_list.price + '元余额'; | 505 | if (recharge_list.is_price == '1') item.priceInfo = '会员充值满' + item.recharge_money + '元赠送' + item.recharge_list.price + '元余额'; |
| 506 | if (recharge_list.is_score == '1') item.scoreInfo = '会员充值满' + item.recharge_money + '元赠送' + item.recharge_list.score + '积分'; | 506 | if (recharge_list.is_score == '1') item.scoreInfo = '会员充值满' + item.recharge_money + '元赠送' + item.recharge_list.score + '积分'; |
| 507 | if (recharge_list.is_coupons == '1' && recharge_list.coupons_names.length > 0) item.certificate = recharge_list.coupons_names.join('、'); | 507 | if (recharge_list.is_coupons == '1' && recharge_list.coupons_names.length > 0) item.certificate = recharge_list.coupons_names.join('、'); |
| 508 | - item.timeStr = util.unixtoTime(item.stime, 'YYYY-MM-DD') + ' - ' + util.unixtoTime(item.etime, 'YYYY-MM-DD') | 508 | + item.timeStr = (item.timeStr && item.timeStr) ? util.unixtoTime(item.stime, 'YYYY-MM-DD') + ' - ' + util.unixtoTime(item.etime, 'YYYY-MM-DD') : ''; |
| 509 | }) | 509 | }) |
| 510 | // 筛选出 未过期的 && 开启状态的充值活动 | 510 | // 筛选出 未过期的 && 开启状态的充值活动 |
| 511 | recharge_data = recharge_data.filter(item => { | 511 | recharge_data = recharge_data.filter(item => { |
| @@ -294,7 +294,7 @@ | @@ -294,7 +294,7 @@ | ||
| 294 | <text wx:if="{{activeData.recharge_list.is_coupons=='1'}}">{{activeData.recharge_list.is_coupons=='1'?'赠送'+activeData.certificate:''}}。</text> | 294 | <text wx:if="{{activeData.recharge_list.is_coupons=='1'}}">{{activeData.recharge_list.is_coupons=='1'?'赠送'+activeData.certificate:''}}。</text> |
| 295 | </view> | 295 | </view> |
| 296 | </view> | 296 | </view> |
| 297 | - <view class="limitation"> | 297 | + <view class="limitation" wx:if="{{activeData.timeStr}}"> |
| 298 | <view class="limitationTitle font32r">有效期</view> | 298 | <view class="limitationTitle font32r">有效期</view> |
| 299 | <view class="font28r">{{activeData.timeStr}}</view> | 299 | <view class="font28r">{{activeData.timeStr}}</view> |
| 300 | </view> | 300 | </view> |
| @@ -505,7 +505,7 @@ Page({ | @@ -505,7 +505,7 @@ Page({ | ||
| 505 | if (recharge_list.is_price == '1') item.priceInfo = '会员充值满' + item.recharge_money + '元赠送' + item.recharge_list.price + '元余额'; | 505 | if (recharge_list.is_price == '1') item.priceInfo = '会员充值满' + item.recharge_money + '元赠送' + item.recharge_list.price + '元余额'; |
| 506 | if (recharge_list.is_score == '1') item.scoreInfo = '会员充值满' + item.recharge_money + '元赠送' + item.recharge_list.score + '积分'; | 506 | if (recharge_list.is_score == '1') item.scoreInfo = '会员充值满' + item.recharge_money + '元赠送' + item.recharge_list.score + '积分'; |
| 507 | if (recharge_list.is_coupons == '1' && recharge_list.coupons_names.length > 0) item.certificate = recharge_list.coupons_names.join('、'); | 507 | if (recharge_list.is_coupons == '1' && recharge_list.coupons_names.length > 0) item.certificate = recharge_list.coupons_names.join('、'); |
| 508 | - item.timeStr = util.unixtoTime(item.stime, 'YYYY-MM-DD') + ' - ' + util.unixtoTime(item.etime, 'YYYY-MM-DD') | 508 | + item.timeStr = (item.timeStr && item.timeStr) ? util.unixtoTime(item.stime, 'YYYY-MM-DD') + ' - ' + util.unixtoTime(item.etime, 'YYYY-MM-DD') : ''; |
| 509 | }) | 509 | }) |
| 510 | // 筛选出 未过期的 && 开启状态的充值活动 | 510 | // 筛选出 未过期的 && 开启状态的充值活动 |
| 511 | recharge_data = recharge_data.filter(item => { | 511 | recharge_data = recharge_data.filter(item => { |
| 1 | +// pack-invitation/pages/detail_owner_invitation14.js | ||
| 2 | +var mta = require('mta-wechat-analysis') | ||
| 3 | +import util from '../../utils/util'; | ||
| 4 | +import App from '../../utils/api'; | ||
| 5 | +import TP from '../../utils/tpls'; | ||
| 6 | +import RS from '../../utils/reserveStatus' | ||
| 7 | +import inviteBase from '../common/inviteBase'; | ||
| 8 | +import convertSolarLunar from '../../components/calendar/func/convertSolarLunar'; | ||
| 9 | + | ||
| 10 | +/** 用餐日期:2027-02-14 星期六 正月初七 */ | ||
| 11 | +function formatInviteDate(ddate) { | ||
| 12 | + if (!ddate) return ''; | ||
| 13 | + const datePart = util.unixtoTime(ddate, 'YYYY-MM-DD'); | ||
| 14 | + const weekPart = util.unixtoTime(ddate, '星期WW'); | ||
| 15 | + const time = new Date(ddate * 1000); | ||
| 16 | + const lunar = convertSolarLunar.solar2lunar( | ||
| 17 | + time.getFullYear(), | ||
| 18 | + time.getMonth() + 1, | ||
| 19 | + time.getDate() | ||
| 20 | + ); | ||
| 21 | + if (!lunar || lunar === -1) { | ||
| 22 | + return `${datePart} ${weekPart}`; | ||
| 23 | + } | ||
| 24 | + return `${datePart} ${weekPart} ${lunar.IMonthCn}${lunar.IDayCn}`; | ||
| 25 | +} | ||
| 26 | + | ||
| 27 | +Page({ | ||
| 28 | + ...inviteBase, | ||
| 29 | + /** | ||
| 30 | + * 页面的初始数据 | ||
| 31 | + */ | ||
| 32 | + data: { | ||
| 33 | + barShow: false, //底部操作栏是否显示 | ||
| 34 | + showMoreOnline: false, //再次预订-在线 | ||
| 35 | + showMoreCall: false, //再次预订-电话 | ||
| 36 | + canPay: false, //支付定金 | ||
| 37 | + canShare: false, //转发邀请函 | ||
| 38 | + isOver: false, //已结束/完成 | ||
| 39 | + isOwner: false, //商家(发起人)视角 | ||
| 40 | + canMeet: false, //客人可确认赴约 | ||
| 41 | + needLogin: true, //确认赴约需先登录/授权 | ||
| 42 | + guestShareCls: 'shareItem shareItem1', //客人转发按钮样式 | ||
| 43 | + threeBtnMore: '', //3按钮布局(在线再次预订) | ||
| 44 | + threeBtnCall: '', //3按钮布局(电话再次预订) | ||
| 45 | + threeBtnPay: '', //3按钮布局(支付定金) | ||
| 46 | + themeImg: '', | ||
| 47 | + heroBottomStripImage: '', | ||
| 48 | + heroHeightPx: 410, | ||
| 49 | + contentStartPx: 350, | ||
| 50 | + windowHeight: 667, | ||
| 51 | + canChangeBg: '0', // 模拟:1可换/存背景图,0不可 | ||
| 52 | + customThemeImg: '', // 用户本地更换的背景图 | ||
| 53 | + savedBgImageUrl: '', // 已保存到七牛的地址 | ||
| 54 | + bgSaved: false, // 当前预订是否已保存过背景图 | ||
| 55 | + themeColor: 'pearlWhite', | ||
| 56 | + pageThemeClass: 'pagewhite', | ||
| 57 | + entranceIcon: 1, | ||
| 58 | + actionIcon: 1, | ||
| 59 | + titleObj: {}, //大标题:色/号可配;书法仅固定文案「预订安排|邀请函」 | ||
| 60 | + shopObj: {}, //店名:色/号可配;字体由样式固定(不可换字体) | ||
| 61 | + titleCls: '', //大标题字体/字号 class | ||
| 62 | + shopCls: '', //店名字体/字号/换行 class | ||
| 63 | + titleStyle: '', //大标题内联色 | ||
| 64 | + shopStyle: '', //店名内联色 | ||
| 65 | + StyleTypeNum: 1, //样式1234 | ||
| 66 | + isCustom: '0', // 1自定义白字,0主题色 | ||
| 67 | + options: { | ||
| 68 | + tplid: '' | ||
| 69 | + }, | ||
| 70 | + detail: {}, | ||
| 71 | + staffinfo: {}, | ||
| 72 | + chef: {}, | ||
| 73 | + marketing: {}, | ||
| 74 | + home: {}, | ||
| 75 | + reserve: {}, | ||
| 76 | + signboard: {}, | ||
| 77 | + store: {}, | ||
| 78 | + recharge_data: [], | ||
| 79 | + coupon_dataList: [], | ||
| 80 | + seller: { | ||
| 81 | + name: '', | ||
| 82 | + tablesText: '', | ||
| 83 | + date: '', | ||
| 84 | + addr: '' | ||
| 85 | + }, | ||
| 86 | + contactPhone: '', | ||
| 87 | + dataStr: Date.now() * 1 / 1000, | ||
| 88 | + swich_phone: '0', | ||
| 89 | + is_comments: '0', | ||
| 90 | + is_user_comments: false, | ||
| 91 | + roomimage: [], | ||
| 92 | + StyleType: '', | ||
| 93 | + showMoreTip: true, | ||
| 94 | + hasValueOrder: false, //商家是否开通提前点餐功能 | ||
| 95 | + hasValueCertificate: false, //商家是否开通优惠券功能 | ||
| 96 | + hasValueRecharge: false, //商家是否开通充值功能 | ||
| 97 | + _attentionAnim: {}, | ||
| 98 | + isPlay: '1', | ||
| 99 | + paymentStatus: '', //定金支付状态 1支付 0未支付 | ||
| 100 | + reserveData: {}, //自定义图文数据 | ||
| 101 | + showMerchantSpeak: false, // 商家有话说(自定义图文/餐厅/菜品/主厨任一有内容) | ||
| 102 | + toastBool: false, //支付定金提示框 | ||
| 103 | + toastText: '', //支付定金提示文字 | ||
| 104 | + paymentId: '', //定金id | ||
| 105 | + wxml: null, | ||
| 106 | + imgSrc: '', //canvas图片地址 | ||
| 107 | + couponData: '', //评价赠送优惠券数据 | ||
| 108 | + timeList: [], | ||
| 109 | + index: 0, | ||
| 110 | + isMany: '0', //0默认餐段 1多时段 | ||
| 111 | + temp_ddate: '', //展示的到店时间 | ||
| 112 | + lite_style: '', //小程序转发卡片样式 | ||
| 113 | + isMoreBtn: '', //再次预订按钮 | ||
| 114 | + isPaymenBtn: '', //支付定金按钮 | ||
| 115 | + isShareItem: '', //转发客人按钮 | ||
| 116 | + couponArr: [], //待领取的优惠券列表 | ||
| 117 | + couponList: [], //优惠券列表 | ||
| 118 | + urlsArr: [], //包间预览图片 | ||
| 119 | + animationData: {}, | ||
| 120 | + animationData2: {}, | ||
| 121 | + isShow: '0', | ||
| 122 | + isFrame: '0', | ||
| 123 | + isShowBtn: true, //是否展示赴约按钮 | ||
| 124 | + purePhoneNumber: '', //当前人手机号 | ||
| 125 | + wxNickname: '', //微信昵称 | ||
| 126 | + wxAvatar: '', //微信头像 | ||
| 127 | + reserveOpenid: '', //预订人的openid | ||
| 128 | + openid: getApp().openid, | ||
| 129 | + customersList: [], //预订人 | ||
| 130 | + countDown: 5, //5秒后自动关闭弹框 | ||
| 131 | + timer: null, | ||
| 132 | + }, | ||
| 133 | + tablestr: '', | ||
| 134 | + screenHeight: '', | ||
| 135 | + attentionAnim: {}, | ||
| 136 | + audioCtx: '', //播报 | ||
| 137 | + timers: null, // 动画定时器 | ||
| 138 | + n: 0, | ||
| 139 | + modal: '', | ||
| 140 | + couponModal: '', | ||
| 141 | + give_user: '', | ||
| 142 | + one: '0', //在邀请函页面,只弹领券框一次 | ||
| 143 | + /** | ||
| 144 | + * 生命周期函数--监听页面加载 | ||
| 145 | + */ | ||
| 146 | + onLoad(options) { | ||
| 147 | + this.id = options.id | ||
| 148 | + let param = { | ||
| 149 | + options: options, | ||
| 150 | + hasOwner: options.hasSellerShare == 1, //是否为发起人 | ||
| 151 | + } | ||
| 152 | + param.tpls = [TP.tpls(options.tplid)] | ||
| 153 | + console.log(param); | ||
| 154 | + console.log(options); | ||
| 155 | + this.setData(param) | ||
| 156 | + mta.Page.init({ | ||
| 157 | + "appID": "500667280", | ||
| 158 | + "eventID": "500667287", | ||
| 159 | + "statPullDownFresh": true, | ||
| 160 | + "statShareApp": true, | ||
| 161 | + "statReachBottom": true, | ||
| 162 | + "lauchOpts": options, //渠道分析 | ||
| 163 | + }); | ||
| 164 | + this.calculateLayout(); | ||
| 165 | + const systemInfo = wx.getSystemInfoSync(); | ||
| 166 | + this.screenHeight = systemInfo.windowHeight; // 获取屏幕高度 | ||
| 167 | + this.setData({ | ||
| 168 | + windowHeight: systemInfo.windowHeight || 667, | ||
| 169 | + }); | ||
| 170 | + this.modal = this.selectComponent("#payModal"); //通过给组件所起的id调用组件 | ||
| 171 | + this._onUserCaptureScreen = () => { | ||
| 172 | + this.modal && this.modal.showModal(); | ||
| 173 | + }; | ||
| 174 | + wx.onUserCaptureScreen(this._onUserCaptureScreen); | ||
| 175 | + this.couponModal = this.selectComponent("#couponModal"); | ||
| 176 | + this.loadLocalFonts(); | ||
| 177 | + }, | ||
| 178 | + /** | ||
| 179 | + * 外部字体:https ttf(downloadFile 合法域名需含 nosqn.colorcun.com) | ||
| 180 | + */ | ||
| 181 | + loadLocalFonts() { | ||
| 182 | + // 标题用三套 7 字极小包;店名走系统字体,不加载大字库 | ||
| 183 | + const fonts = [{ | ||
| 184 | + family: 'Noto Serif SC', | ||
| 185 | + url: 'https://nosqn.colorcun.com/NotoSerif_title.ttf', | ||
| 186 | + weight: 700, | ||
| 187 | + }, | ||
| 188 | + { | ||
| 189 | + family: 'Noto Sans SC', | ||
| 190 | + url: 'https://nosqn.colorcun.com/NotoSans_title.ttf', | ||
| 191 | + weight: 700, | ||
| 192 | + }, | ||
| 193 | + { | ||
| 194 | + family: 'XuanZongTi', | ||
| 195 | + url: 'https://nosqn.colorcun.com/xinkaiti_title.ttf', | ||
| 196 | + weight: 400, | ||
| 197 | + }, | ||
| 198 | + ]; | ||
| 199 | + fonts.forEach((item) => { | ||
| 200 | + wx.loadFontFace({ | ||
| 201 | + family: item.family, | ||
| 202 | + global: true, | ||
| 203 | + source: `url("${item.url}")`, | ||
| 204 | + scopes: ['webview', 'native'], | ||
| 205 | + desc: { | ||
| 206 | + style: 'normal', | ||
| 207 | + weight: String(item.weight), | ||
| 208 | + }, | ||
| 209 | + success: () => console.log('font ok', item.family), | ||
| 210 | + fail: (err) => console.warn('font skip', item.family, err && err.errMsg), | ||
| 211 | + }); | ||
| 212 | + }); | ||
| 213 | + }, | ||
| 214 | + /** 大标题是否为固定文案(预订安排 / 邀请函);空则按兜底算固定 */ | ||
| 215 | + isFixedTitleText(text) { | ||
| 216 | + const t = (text == null ? '' : String(text)).trim(); | ||
| 217 | + return !t || t === '预订安排' || t === '邀请函'; | ||
| 218 | + }, | ||
| 219 | + /** 按样式解析标题/店名 class 与内联色 */ | ||
| 220 | + buildTitleShopStyle(StyleTypeNum, titleObj, shopObj) { | ||
| 221 | + titleObj = titleObj || {}; | ||
| 222 | + shopObj = shopObj || {}; | ||
| 223 | + const styleNum = String(StyleTypeNum || '1'); | ||
| 224 | + const shopText = shopObj.textInfo || this.data.seller.name || (this.data.reserve && this.data.reserve.seller_name) || ''; | ||
| 225 | + let titleCls = ''; | ||
| 226 | + let shopCls = ''; | ||
| 227 | + let titleStyle = ''; | ||
| 228 | + let shopStyle = ''; | ||
| 229 | + | ||
| 230 | + // 店名:各样式固定字体族,可换字号/颜色;忽略 shopObj.textFont | ||
| 231 | + if (styleNum === '4') { | ||
| 232 | + shopCls = 'shopFontPing'; | ||
| 233 | + } else { | ||
| 234 | + shopCls = 'shopFont1'; // 样式1/2/3 黑体 | ||
| 235 | + } | ||
| 236 | + if (shopObj.textFontSize) shopCls = (shopCls + ' shopSize' + shopObj.textFontSize).trim(); | ||
| 237 | + if (shopObj.textFontSize == '1' && shopText.length > 11) shopCls = (shopCls + ' shopWrap').trim(); | ||
| 238 | + if (shopObj.textColor) shopStyle = 'color:' + shopObj.textColor; | ||
| 239 | + | ||
| 240 | + // 标题:样式2无标题;样式3/4 固定宋体;样式1 可配字体(自定义文案禁用书法) | ||
| 241 | + if (styleNum === '2') { | ||
| 242 | + return { | ||
| 243 | + titleCls: '', | ||
| 244 | + shopCls, | ||
| 245 | + titleStyle: '', | ||
| 246 | + shopStyle | ||
| 247 | + }; | ||
| 248 | + } | ||
| 249 | + if (styleNum === '3' || styleNum === '4') { | ||
| 250 | + titleCls = 'titleFont2'; | ||
| 251 | + if (titleObj.textFontSize) titleCls = (titleCls + ' titleSize' + titleObj.textFontSize).trim(); | ||
| 252 | + if (titleObj.textColor) titleStyle = 'color:' + titleObj.textColor + ';-webkit-text-fill-color:' + titleObj.textColor + ';background-image:none;'; | ||
| 253 | + return { | ||
| 254 | + titleCls, | ||
| 255 | + shopCls, | ||
| 256 | + titleStyle, | ||
| 257 | + shopStyle | ||
| 258 | + }; | ||
| 259 | + } | ||
| 260 | + | ||
| 261 | + // 样式1 | ||
| 262 | + const fixedTitle = this.isFixedTitleText(titleObj.textInfo); | ||
| 263 | + let fontKey = titleObj.textFont ? String(titleObj.textFont) : ''; | ||
| 264 | + if (fontKey === '3' && !fixedTitle) fontKey = '2'; // 自定义文案 → 默认宋体 | ||
| 265 | + if (fontKey === '1' || fontKey === '2' || fontKey === '3') titleCls = 'titleFont' + fontKey; | ||
| 266 | + if (titleObj.textFontSize) titleCls = (titleCls + ' titleSize' + titleObj.textFontSize).trim(); | ||
| 267 | + if (titleObj.textColor) titleStyle = 'color:' + titleObj.textColor + ';-webkit-text-fill-color:' + titleObj.textColor + ';background-image:none;'; | ||
| 268 | + return { | ||
| 269 | + titleCls, | ||
| 270 | + shopCls, | ||
| 271 | + titleStyle, | ||
| 272 | + shopStyle | ||
| 273 | + }; | ||
| 274 | + }, | ||
| 275 | + calculateLayout() { | ||
| 276 | + const info = wx.getWindowInfo ? wx.getWindowInfo() : wx.getSystemInfoSync(); | ||
| 277 | + const width = info.windowWidth || 375; | ||
| 278 | + const heroHeightPx = Math.round(width * 1.08); | ||
| 279 | + this.setData({ | ||
| 280 | + heroHeightPx, | ||
| 281 | + contentStartPx: Math.round(width * 0.92), | ||
| 282 | + windowHeight: info.windowHeight || 667, | ||
| 283 | + }); | ||
| 284 | + }, | ||
| 285 | + // 主题图候选:自定义图 → 包间首图 → 餐厅首图 → 门头照 | ||
| 286 | + getThemeImgCandidates() { | ||
| 287 | + const roomimage = this.data.roomimage; | ||
| 288 | + const home = this.data.home; | ||
| 289 | + const marketing = this.data.marketing; | ||
| 290 | + const list = []; | ||
| 291 | + if (this.data.customThemeImg) list.push(this.data.customThemeImg); | ||
| 292 | + const roomFirst = roomimage && roomimage.length > 0 && roomimage[0] && roomimage[0].url; | ||
| 293 | + if (roomFirst) list.push(roomFirst); | ||
| 294 | + if (home && home.image) list.push(home.image); | ||
| 295 | + if (marketing && marketing.logo) list.push(marketing.logo); | ||
| 296 | + return list.filter((url, i) => url && list.indexOf(url) === i); | ||
| 297 | + }, | ||
| 298 | + resolveThemeImg() { | ||
| 299 | + const failed = this._failedThemeImgs || {}; | ||
| 300 | + let themeImg = this.getThemeImgCandidates().find(url => !failed[url]) || ''; | ||
| 301 | + if (!themeImg) { | ||
| 302 | + themeImg = 'https://qn.colorcun.com/testImg/img4.png'; | ||
| 303 | + } | ||
| 304 | + if (themeImg !== this.data.themeImg) { | ||
| 305 | + this.setData({ | ||
| 306 | + themeImg | ||
| 307 | + }); | ||
| 308 | + } | ||
| 309 | + return themeImg; | ||
| 310 | + }, | ||
| 311 | + // 换照片:选本地图直接设为背景(与现有主题图/模糊底逻辑一致) | ||
| 312 | + onChangeBgPhoto() { | ||
| 313 | + if (this.data.bgSaved) { | ||
| 314 | + wx.showToast({ | ||
| 315 | + title: '已保存,不可再更换', | ||
| 316 | + icon: 'none' | ||
| 317 | + }); | ||
| 318 | + return; | ||
| 319 | + } | ||
| 320 | + // 选图前若正在播报则先暂停;选完/取消后再恢复 | ||
| 321 | + this._skipOnShowRefresh = true; | ||
| 322 | + this.pauseAudioBeforeMediaPick(); | ||
| 323 | + wx.chooseMedia({ | ||
| 324 | + count: 1, | ||
| 325 | + mediaType: ['image'], | ||
| 326 | + sourceType: ['album', 'camera'], | ||
| 327 | + success: (res) => { | ||
| 328 | + const file = res.tempFiles && res.tempFiles[0]; | ||
| 329 | + const path = file && (file.tempFilePath || file.path); | ||
| 330 | + if (!path) return; | ||
| 331 | + if (this._failedThemeImgs) { | ||
| 332 | + delete this._failedThemeImgs[path]; | ||
| 333 | + } | ||
| 334 | + // 换照片后按自定义:白色主题 | ||
| 335 | + this.setData({ | ||
| 336 | + customThemeImg: path, | ||
| 337 | + themeImg: path, | ||
| 338 | + heroBottomStripImage: '', | ||
| 339 | + isCustom: '1', | ||
| 340 | + themeColor: 'pearlWhite', | ||
| 341 | + pageThemeClass: 'pagewhite', | ||
| 342 | + entranceIcon: 1, | ||
| 343 | + actionIcon: 1, | ||
| 344 | + }); | ||
| 345 | + }, | ||
| 346 | + complete: () => { | ||
| 347 | + setTimeout(() => { | ||
| 348 | + this.resumeAudioAfterMediaPick(); | ||
| 349 | + this._skipOnShowRefresh = false; | ||
| 350 | + }, 300); | ||
| 351 | + }, | ||
| 352 | + }); | ||
| 353 | + }, | ||
| 354 | + // 进相册前:正在播则暂停播报并停图标旋转 | ||
| 355 | + pauseAudioBeforeMediaPick() { | ||
| 356 | + const playing = this.data.isPlay == '1' || (this.audioCtx && !this.audioCtx.paused); | ||
| 357 | + this._needResumeAudio = playing ? true : false; | ||
| 358 | + if (!playing) return; | ||
| 359 | + clearInterval(this.timers); | ||
| 360 | + if (this.audioCtx && typeof this.audioCtx.pause === 'function') { | ||
| 361 | + try { | ||
| 362 | + this.audioCtx.pause(); | ||
| 363 | + } catch (e) { | ||
| 364 | + console.log('pauseAudioBeforeMediaPick', e); | ||
| 365 | + } | ||
| 366 | + } | ||
| 367 | + this.setData({ | ||
| 368 | + isPlay: '2' | ||
| 369 | + }); | ||
| 370 | + }, | ||
| 371 | + // 选图结束(成功或取消):若进相册前在播,则继续播放 | ||
| 372 | + resumeAudioAfterMediaPick() { | ||
| 373 | + if (!this._needResumeAudio) return; | ||
| 374 | + this._needResumeAudio = false; | ||
| 375 | + if (!this.audioCtx || typeof this.audioCtx.play !== 'function') return; | ||
| 376 | + try { | ||
| 377 | + this.audioCtx.play(); | ||
| 378 | + this.setData({ | ||
| 379 | + isPlay: '1' | ||
| 380 | + }); | ||
| 381 | + if (typeof this.animation === 'function') { | ||
| 382 | + clearInterval(this.timers); | ||
| 383 | + this.animation(); | ||
| 384 | + } | ||
| 385 | + } catch (e) { | ||
| 386 | + console.log('resumeAudioAfterMediaPick', e); | ||
| 387 | + } | ||
| 388 | + }, | ||
| 389 | + // 保存图片:上传七牛 → 提交后端(后端接口先占位) | ||
| 390 | + onSaveBgPhoto() { | ||
| 391 | + if (this.data.bgSaved) { | ||
| 392 | + wx.showToast({ | ||
| 393 | + title: '只能保存一次', | ||
| 394 | + icon: 'none' | ||
| 395 | + }); | ||
| 396 | + return; | ||
| 397 | + } | ||
| 398 | + if (!this.data.customThemeImg) { | ||
| 399 | + wx.showToast({ | ||
| 400 | + title: '请先更换照片', | ||
| 401 | + icon: 'none' | ||
| 402 | + }); | ||
| 403 | + return; | ||
| 404 | + } | ||
| 405 | + if (this._savingBg) return; | ||
| 406 | + this._savingBg = true; | ||
| 407 | + wx.showLoading({ | ||
| 408 | + title: '保存中', | ||
| 409 | + mask: true | ||
| 410 | + }); | ||
| 411 | + App.Qiniu.GetUploadToken().then(res => { | ||
| 412 | + const token = res.data && res.data.token; | ||
| 413 | + if (!token) { | ||
| 414 | + return Promise.reject('token empty'); | ||
| 415 | + } | ||
| 416 | + return util.uploadFile(this.data.customThemeImg, token, 'invitationNew'); | ||
| 417 | + }).then(imageUrl => { | ||
| 418 | + console.log('七牛背景图地址', imageUrl); | ||
| 419 | + return this.saveInviteBgImage(imageUrl).then(() => imageUrl); | ||
| 420 | + }).then(imageUrl => { | ||
| 421 | + // 展示仍用本地图,避免切换七牛地址时重新加载黑一下 | ||
| 422 | + this.setData({ | ||
| 423 | + bgSaved: true, | ||
| 424 | + savedBgImageUrl: imageUrl, | ||
| 425 | + }); | ||
| 426 | + wx.hideLoading(); | ||
| 427 | + this._savingBg = false; | ||
| 428 | + wx.showToast({ | ||
| 429 | + title: '保存成功', | ||
| 430 | + icon: 'success' | ||
| 431 | + }); | ||
| 432 | + }).catch(err => { | ||
| 433 | + console.log('保存背景图失败', err); | ||
| 434 | + wx.hideLoading(); | ||
| 435 | + this._savingBg = false; | ||
| 436 | + wx.showToast({ | ||
| 437 | + title: '保存失败', | ||
| 438 | + icon: 'none' | ||
| 439 | + }); | ||
| 440 | + }); | ||
| 441 | + }, | ||
| 442 | + // 上传背景图到后端(接口未就绪,先占位) | ||
| 443 | + saveInviteBgImage(imageUrl) { | ||
| 444 | + console.log('saveInviteBgImage 待接后端', { | ||
| 445 | + rid: this.id || (this.data.options && this.data.options.id), | ||
| 446 | + imageUrl, | ||
| 447 | + }); | ||
| 448 | + // TODO: 后端接口就绪后改为真实请求,例如: | ||
| 449 | + // return App.Reserve.SaveInviteBgImage({ | ||
| 450 | + // rid: this.id || this.data.options.id, | ||
| 451 | + // image: imageUrl, | ||
| 452 | + // }); | ||
| 453 | + return Promise.resolve({ | ||
| 454 | + ret: 200, | ||
| 455 | + data: { | ||
| 456 | + imageUrl | ||
| 457 | + } | ||
| 458 | + }); | ||
| 459 | + }, | ||
| 460 | + // scroll-view 滚动:控制「滑动查看更多」提示 | ||
| 461 | + onScrollViewScroll(event) { | ||
| 462 | + const scrollTop = (event.detail && event.detail.scrollTop) || 0; | ||
| 463 | + const tipTop = scrollTop * 1 + this.screenHeight - 80; | ||
| 464 | + if (tipTop < this.screenHeight) { | ||
| 465 | + this.setData({ | ||
| 466 | + showMoreTip: true | ||
| 467 | + }); | ||
| 468 | + } else { | ||
| 469 | + this.setData({ | ||
| 470 | + showMoreTip: false | ||
| 471 | + }); | ||
| 472 | + } | ||
| 473 | + }, | ||
| 474 | + // 去评价 | ||
| 475 | + evaluateFun() { | ||
| 476 | + let url = util.http_build_query({ | ||
| 477 | + sellerName: this.data.seller.name, | ||
| 478 | + sellerid: this.data.seller.sid, | ||
| 479 | + oid: this.data.detail.id, | ||
| 480 | + types: '1', | ||
| 481 | + previousPage: '1', | ||
| 482 | + }, '/pages/pinglun/createOpinion') | ||
| 483 | + wx.navigateTo({ | ||
| 484 | + url | ||
| 485 | + }) | ||
| 486 | + }, | ||
| 487 | + /** | ||
| 488 | + * 生命周期函数--监听页面显示 | ||
| 489 | + */ | ||
| 490 | + onShow: function () { | ||
| 491 | + if (this._skipOnShowRefresh) { | ||
| 492 | + // 部分机型 onShow 早于 complete,这里再补一次恢复 | ||
| 493 | + setTimeout(() => { | ||
| 494 | + this.resumeAudioAfterMediaPick(); | ||
| 495 | + }, 300); | ||
| 496 | + return; | ||
| 497 | + } | ||
| 498 | + this.getDetail() | ||
| 499 | + this.getText() | ||
| 500 | + this.getPaymentStatus() | ||
| 501 | + this.getCheckUserHavePhone() | ||
| 502 | + this.getreal() | ||
| 503 | + }, | ||
| 504 | + // 获取包间图片列表 | ||
| 505 | + getroomimage(sellerid) { | ||
| 506 | + App.Tables.GetTablesPhoto({ | ||
| 507 | + sellerid, | ||
| 508 | + tableids: this.tablestr | ||
| 509 | + }).then((json) => { | ||
| 510 | + console.log('客户经理获取基本信息------', json.data) | ||
| 511 | + if (json.ret == 200) { | ||
| 512 | + var urlsArr = []; | ||
| 513 | + (json.data || []).forEach((v) => { | ||
| 514 | + if (v && v.url) urlsArr.push(v.url); | ||
| 515 | + }) | ||
| 516 | + this.setData({ | ||
| 517 | + roomimage: json.data || [], | ||
| 518 | + urlsArr, | ||
| 519 | + }, () => this.resolveThemeImg()) | ||
| 520 | + console.log('包间图片地址urlsArr', urlsArr) | ||
| 521 | + console.log('包间信息roomimage', json.data) | ||
| 522 | + } | ||
| 523 | + }) | ||
| 524 | + }, | ||
| 525 | + // 获取店铺详情 | ||
| 526 | + getDetail() { | ||
| 527 | + App.Reserve.Detail({ | ||
| 528 | + rid: this.data.options.id | ||
| 529 | + }).then(res => { | ||
| 530 | + let tablesText = '', //桌子信息 | ||
| 531 | + deskStr = ''; | ||
| 532 | + const tables = (res.data.tables && Array.isArray(res.data.tables)) ? res.data.tables : []; | ||
| 533 | + tables.forEach((t, i) => { | ||
| 534 | + tablesText += t.rname + t.name + (i == (tables.length - 1) ? '' : '、'); | ||
| 535 | + deskStr += t.name + (i == (tables.length - 1) ? '' : '、'); | ||
| 536 | + }) | ||
| 537 | + let tabaleids = []; | ||
| 538 | + tables.forEach(t => { | ||
| 539 | + tabaleids.push(t.id); | ||
| 540 | + }) | ||
| 541 | + this.tablestr = tabaleids.toString(); | ||
| 542 | + let reserev = RS.reserve(res.data) | ||
| 543 | + let dateSmart = formatInviteDate(reserev.ddate); | ||
| 544 | + let yearMonthDay = util.unixtoTime(reserev.ddate, 'YYYY年MM月DD日') | ||
| 545 | + let yearMonth = util.unixtoTime(reserev.ddate, 'MM月DD日') | ||
| 546 | + let dateStr = util.unixtoTime(reserev.ddate, 'HH点') | ||
| 547 | + let dateStrDivide = util.unixtoTime(reserev.ddate, 'II分') | ||
| 548 | + let detail = this.formatDatail(reserev, dateSmart) | ||
| 549 | + if (tables.length > 0) { | ||
| 550 | + detail.oneTableName = tables[0].name; | ||
| 551 | + } | ||
| 552 | + reserev.soltName = ''; | ||
| 553 | + const sellerTel = (reserev.seller && reserev.seller.seller_tel) ? reserev.seller.seller_tel : ''; | ||
| 554 | + this.setData({ | ||
| 555 | + customersList: res.data.openid == getApp().openid ? reserev.customers.slice(1) : [], //预订人返回,邀请人为空 | ||
| 556 | + reserveOpenid: res.data.openid, | ||
| 557 | + detail, | ||
| 558 | + is_user_comments: res.data.is_user_comments, | ||
| 559 | + 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'), | ||
| 560 | + seller: { | ||
| 561 | + daily: reserev.seller.daily, | ||
| 562 | + name: reserev.seller.sellername, | ||
| 563 | + sid: reserev.sid, | ||
| 564 | + date: dateSmart, | ||
| 565 | + tablesText, | ||
| 566 | + addr: reserev.seller.real_address || reserev.seller.map_address, | ||
| 567 | + image: reserev.image_url, | ||
| 568 | + hasOwner: true, | ||
| 569 | + type: reserev.type, | ||
| 570 | + is_set_ddate: reserev.is_set_ddate, | ||
| 571 | + hasUpTime: reserev.type == 1 && reserev.hasRunning && reserev.status != 2, | ||
| 572 | + tel: sellerTel ? sellerTel.split(',').filter(Boolean) : [], | ||
| 573 | + soltName: reserev.soltName || detail.mname, | ||
| 574 | + dateTime: util.unixtoTime(reserev.ddate, 'HH:II'), | ||
| 575 | + time: util.unixtoTime(reserev.ddate, '星期WW HH:II'), | ||
| 576 | + lat: reserev.seller.lat, | ||
| 577 | + long: reserev.seller.long, | ||
| 578 | + yearMonthDay, | ||
| 579 | + yearMonth, | ||
| 580 | + dateStr, | ||
| 581 | + deskStr, | ||
| 582 | + dateStrDivide: dateStrDivide == '00分' ? '' : dateStrDivide, | ||
| 583 | + seller_tel: sellerTel, | ||
| 584 | + phone: reserev.seller.phone, | ||
| 585 | + } | ||
| 586 | + }) | ||
| 587 | + this.updateContactPhone(); | ||
| 588 | + this.give_user = reserev.give_user ? reserev.give_user : '2'; | ||
| 589 | + console.log('reserev信息', reserev); | ||
| 590 | + console.log('seller信息', this.data.seller); | ||
| 591 | + console.log('detail信息', this.data.detail); | ||
| 592 | + setTimeout(() => { | ||
| 593 | + this.getstaffinfo(res.data.uid, reserev.sid); | ||
| 594 | + this.getroomimage(reserev.sid) | ||
| 595 | + this.getSellerVersionFun(reserev.sid); | ||
| 596 | + }, 0); | ||
| 597 | + }).catch(res => { | ||
| 598 | + console.log(res, '详情请求失败'); | ||
| 599 | + }) | ||
| 600 | + }, | ||
| 601 | + // 客户经理获取基本信息 | ||
| 602 | + getstaffinfo(uid, sid) { | ||
| 603 | + console.log('sellerid', this.data.detail.seller.id); | ||
| 604 | + App.Activity.GetCustomerActivityBaseinfo({ | ||
| 605 | + sellerid: this.data.detail.seller.id, | ||
| 606 | + uid | ||
| 607 | + }).then((json) => { | ||
| 608 | + if (json.ret == 200) { | ||
| 609 | + console.log('客户经理获取基本信息------', json.data) | ||
| 610 | + this.setData({ | ||
| 611 | + staffinfo: json.data, | ||
| 612 | + couponArr: [], | ||
| 613 | + }) | ||
| 614 | + this.updateContactPhone(); | ||
| 615 | + this.getSellerTemplateConfFun(sid); | ||
| 616 | + } | ||
| 617 | + }) | ||
| 618 | + }, | ||
| 619 | + // 提前点餐 | ||
| 620 | + cookbook() { | ||
| 621 | + const cookbooklist = this.data.detail.order && this.data.detail.order.cookbooklist; | ||
| 622 | + if (cookbooklist && cookbooklist.length > 0) { | ||
| 623 | + let data = { | ||
| 624 | + rid: this.id, | ||
| 625 | + oid: this.data.detail.order.id, | ||
| 626 | + sellerName: this.data.seller.name, | ||
| 627 | + sid: this.data.seller.sid, | ||
| 628 | + identity: '1', | ||
| 629 | + hasSuccess: '1', | ||
| 630 | + } | ||
| 631 | + wx.navigateTo({ | ||
| 632 | + url: `/pack-cookbook/pages/success_new?hasSuccess=${data.hasSuccess}&identity=${data.identity}&oid=${data.oid}&rid=${data.rid}&sellerName=${data.sellerName}&sid=${data.sid}`, | ||
| 633 | + }) | ||
| 634 | + } else { | ||
| 635 | + App.Advance.CreateOrder({ | ||
| 636 | + rid: this.id, | ||
| 637 | + }).then(res => { | ||
| 638 | + if (res.ret != 200) { | ||
| 639 | + return util.toast(res.msg, 'none') | ||
| 640 | + } | ||
| 641 | + wx.navigateTo({ | ||
| 642 | + url: util.http_build_query({ | ||
| 643 | + rid: this.id, | ||
| 644 | + oid: res.data.id, | ||
| 645 | + sid: res.data.sellerid, | ||
| 646 | + sellerName: this.data.seller.name, | ||
| 647 | + identity: '1', | ||
| 648 | + }, '/pack-cookbook/pages/index_new') | ||
| 649 | + }); | ||
| 650 | + }) | ||
| 651 | + } | ||
| 652 | + }, | ||
| 653 | + // 改到店时间(同步 picker index) | ||
| 654 | + bindPickerChange(e) { | ||
| 655 | + this.setData({ | ||
| 656 | + index: e.detail.value * 1 | ||
| 657 | + }); | ||
| 658 | + inviteBase.bindPickerChange.call(this, e); | ||
| 659 | + }, | ||
| 660 | + // 去商家主页 | ||
| 661 | + sharesettingShop() { | ||
| 662 | + wx.navigateTo({ | ||
| 663 | + url: util.http_build_query({ | ||
| 664 | + id: this.data.detail.seller.id | ||
| 665 | + }, '/pages/reserve/shopHome') | ||
| 666 | + }); | ||
| 667 | + }, | ||
| 668 | + // 分享 | ||
| 669 | + sharesetting() { | ||
| 670 | + wx.reportMonitor('1017', 1) | ||
| 671 | + this.closeModal() | ||
| 672 | + if (this.data.options.isOrder == '1' && this.data.detail.status != '4') { | ||
| 673 | + let img = this.data.detail.seller.seller_image.replace(/^http:/, "https:"); | ||
| 674 | + return { | ||
| 675 | + title: '推荐' + this.data.seller.name + ',点击可查看详情并导航到店', | ||
| 676 | + path: util.http_build_query({ | ||
| 677 | + id: this.data.detail.seller.id | ||
| 678 | + }, '/pages/reserve/shopHome'), | ||
| 679 | + imageUrl: img || 'http://nosqn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png', | ||
| 680 | + } | ||
| 681 | + } else { | ||
| 682 | + let parmdata = { | ||
| 683 | + id: this.id, | ||
| 684 | + fromid: getApp().openid, | ||
| 685 | + hasInvitation: 1, | ||
| 686 | + tplid: this.data.options.tplid | ||
| 687 | + } | ||
| 688 | + if (this.data.options.uid) { | ||
| 689 | + parmdata.uid = this.data.options.uid; | ||
| 690 | + } | ||
| 691 | + return { | ||
| 692 | + title: '我已订好' + this.data.seller.name + ',点击可查看详情并导航到店', | ||
| 693 | + path: util.http_build_query(parmdata, '/pages/customer/detail_owner_invitation_new'), | ||
| 694 | + imageUrl: this.data.imgSrc || 'http://nosqn.colorcun.com/reserve/images/3x/%E6%9A%82%E6%97%A0.png', | ||
| 695 | + } | ||
| 696 | + } | ||
| 697 | + }, | ||
| 698 | + // 获取商家设置营销信息 | ||
| 699 | + getSellerTemplateConfFun(sid) { | ||
| 700 | + console.log(sid, 'sidsidsidsid'); | ||
| 701 | + App.Seller.GetSellerTemplateConf({ | ||
| 702 | + sid | ||
| 703 | + }).then(res => { | ||
| 704 | + let data = res.data | ||
| 705 | + console.log('data', data); | ||
| 706 | + let couponList = [] | ||
| 707 | + let StyleType, home, chef, marketing, coupon, coupon_data_pay, coupon_data_free, reserve, swich_phone, is_comments, signboard, store; | ||
| 708 | + chef = util.determine(data.chef); | ||
| 709 | + reserve = util.determine(data.reserve); | ||
| 710 | + marketing = util.determine(data.marketing); | ||
| 711 | + signboard = util.determine(data.signboard); | ||
| 712 | + store = util.determine(data.store); | ||
| 713 | + home = util.determine(data.home); | ||
| 714 | + StyleType = data.type; | ||
| 715 | + swich_phone = reserve && reserve.swich_phone ? reserve.swich_phone : '0'; | ||
| 716 | + if (store) store.content = (store.is_introduce_all == '1' && store.content) ? util.determine(store.content) : ''; | ||
| 717 | + if (chef) chef.content = (chef.is_introduce_all == '1' && chef.content) ? util.determine(chef.content) : ''; | ||
| 718 | + if (signboard) signboard.content = (signboard.is_introduce_all == '1' && signboard.content) ? util.determine(signboard.content) : ''; | ||
| 719 | + if (reserve) reserve.content = (reserve.is_introduce_all == '1' && reserve.content) ? util.determine(reserve.content) : ''; | ||
| 720 | + if (home) home.image = (home && home.image && (!home.id_first_image || home.id_first_image != '0')) ? home.image : ''; | ||
| 721 | + if (marketing) { | ||
| 722 | + marketing.logo = (marketing.logo && (!marketing.is_logo || marketing.is_logo != '0')) ? marketing.logo : ''; | ||
| 723 | + is_comments = marketing.is_comments ? marketing.is_comments : ''; | ||
| 724 | + coupon = (marketing.coupon_data && marketing.is_coupon == '1') ? util.determine(marketing.coupon_data) : ''; | ||
| 725 | + coupon_data_pay = (marketing.coupon_data_pay && marketing.is_coupon_pay == '1') ? util.determine(marketing.coupon_data_pay) : ''; | ||
| 726 | + marketing.coupon_data_payList = coupon_data_pay | ||
| 727 | + coupon_data_free = (marketing.coupon_data_free && marketing.is_coupon_free == '1') ? util.determine(marketing.coupon_data_free) : ''; | ||
| 728 | + marketing.coupon_data_freeList = coupon_data_free | ||
| 729 | + let info = marketing.coupon_data_comments ? util.determine(marketing.coupon_data_comments) : ''; | ||
| 730 | + let couponDataId = info && info.length > 0 ? info[0].id : '' | ||
| 731 | + // 根据券ID获取评价赠送的券详情 | ||
| 732 | + if (couponDataId) this.getEvaluateFun(couponDataId) | ||
| 733 | + } | ||
| 734 | + // is_cash 代金券 is_discount折扣券 is_dish菜品券 只有代金券有几折显示 | ||
| 735 | + // 获取全部的优惠券(商家券、个人券、免费券、付费券) | ||
| 736 | + couponList = this.addCoupons(coupon, couponList); | ||
| 737 | + couponList = this.addCoupons(coupon_data_pay, couponList); | ||
| 738 | + couponList = this.addCoupons(coupon_data_free, couponList); | ||
| 739 | + // 根据券ID获取券详情(空列表不请求) | ||
| 740 | + if (couponList && couponList.length > 0) { | ||
| 741 | + this.getActivityByIdFun(couponList) | ||
| 742 | + } | ||
| 743 | + // 获取所有充值活动 | ||
| 744 | + this.getRechargeDetail() | ||
| 745 | + if (store && store.images && store.images.length > 0) store.images = util.determine(store.images); | ||
| 746 | + if (reserve && reserve.park_info_images && reserve.park_info_images.length > 0) reserve.park_info_images = util.determine(reserve.park_info_images); | ||
| 747 | + if (signboard && signboard.images && signboard.images.length > 0) signboard.images = util.determine(signboard.images); | ||
| 748 | + this.getLocalLunchTime(data.lite_style); | ||
| 749 | + data.is_custom = '0'; | ||
| 750 | + // canChangeBg为1可更换背景图,0不可 | ||
| 751 | + let isCustom = data.is_custom == '1' ? '1' : '0'; // 是否自定义:1 是,主题色:0 | ||
| 752 | + let themeColor = isCustom == '1' ? 'pearlWhite' : data.lite_class; | ||
| 753 | + let entranceIcon = 1; | ||
| 754 | + let actionIcon = 1; | ||
| 755 | + let StyleTypeNum = '1'; //样式类型1234 | ||
| 756 | + //大标题(预订安排/邀请函字样) — 内容应固定;自定义文案时书法失效改默认宋体 | ||
| 757 | + let titleObj = { | ||
| 758 | + textColor: '#fff', //文字颜色 | ||
| 759 | + textFont: '3', //文字字体1黑体 2宋体 3书法体(仅固定文案可用) | ||
| 760 | + textFontSize: '1', //文字大小 1大号 2中号 3小号 | ||
| 761 | + textInfo: '邀请函11', //固定:预订安排 / 邀请函 | ||
| 762 | + } | ||
| 763 | + //店铺名称 — 不可换字体,可换字号/颜色 | ||
| 764 | + let shopObj = { | ||
| 765 | + textColor: '#fff', | ||
| 766 | + textFontSize: '2', | ||
| 767 | + textInfo: '长安大排档总店标题', //大号且>11字自动换行 | ||
| 768 | + } | ||
| 769 | + const titleShop = this.buildTitleShopStyle(StyleTypeNum, titleObj, shopObj); | ||
| 770 | + const titleCls = titleShop.titleCls; | ||
| 771 | + const shopCls = titleShop.shopCls; | ||
| 772 | + const titleStyle = titleShop.titleStyle; | ||
| 773 | + const shopStyle = titleShop.shopStyle; | ||
| 774 | + if (themeColor == 'pearlWhite') { | ||
| 775 | + entranceIcon = 1; | ||
| 776 | + actionIcon = 1; | ||
| 777 | + } else if (themeColor == 'turmeric') { | ||
| 778 | + entranceIcon = 4; | ||
| 779 | + actionIcon = 4; | ||
| 780 | + } else { | ||
| 781 | + entranceIcon = 3; | ||
| 782 | + actionIcon = 2; | ||
| 783 | + } | ||
| 784 | + let pageThemeClass = 'page' + themeColor; | ||
| 785 | + if (themeColor != 'pearlWhite' && themeColor != 'turmeric') { | ||
| 786 | + pageThemeClass = pageThemeClass + ' pagecolor'; | ||
| 787 | + } | ||
| 788 | + let obj = { | ||
| 789 | + chef: chef || {}, | ||
| 790 | + marketing: marketing || {}, | ||
| 791 | + home: home || {}, | ||
| 792 | + reserve: reserve || {}, | ||
| 793 | + signboard: signboard || {}, | ||
| 794 | + store: store || {}, | ||
| 795 | + swich_phone: swich_phone || '0', | ||
| 796 | + is_comments: is_comments || '0', | ||
| 797 | + StyleType: StyleType || '', | ||
| 798 | + lite_style: data.lite_style || '', | ||
| 799 | + couponList: couponList || [], | ||
| 800 | + canChangeBg: isCustom, | ||
| 801 | + isCustom, | ||
| 802 | + themeColor, | ||
| 803 | + pageThemeClass, | ||
| 804 | + entranceIcon, | ||
| 805 | + actionIcon, | ||
| 806 | + StyleTypeNum, | ||
| 807 | + titleObj, | ||
| 808 | + shopObj, | ||
| 809 | + titleCls, | ||
| 810 | + shopCls, | ||
| 811 | + titleStyle, | ||
| 812 | + shopStyle, | ||
| 813 | + isMoreBtn: marketing && marketing.is_online_book == '1' && this.data.options.onlineReserve == '1', | ||
| 814 | + isShareItem: this.data.options.isOrder != '1' && marketing && marketing.is_transpond == '1', | ||
| 815 | + } | ||
| 816 | + console.log('获取数据GetSellerTemplateConf--------------------', obj); | ||
| 817 | + this.setData(obj) | ||
| 818 | + this.refreshActionBtn(obj) | ||
| 819 | + this.updateShowMerchantSpeak() | ||
| 820 | + this.resolveThemeImg(); | ||
| 821 | + this.setData({ | ||
| 822 | + heroBottomStripImage: (home && home.heroBottomStripImage) || (home && home.bottom_strip) || '', | ||
| 823 | + }); | ||
| 824 | + // reserve为空 或 reserve里没有voice_info/swich_voice字段时,不开启商家自定义语音,走默认语音配置 | ||
| 825 | + let i = (reserve == null || !reserve.voice_info || !reserve.swich_voice) ? '0' : reserve; | ||
| 826 | + this.textToSpeechFun(sid, i) | ||
| 827 | + }) | ||
| 828 | + }, | ||
| 829 | + // 根据充值ID获取充值详情 | ||
| 830 | + getRechargeDetail() { | ||
| 831 | + App.Activity.GetNewRechargeList({ | ||
| 832 | + sellerid: this.data.detail.seller.id, | ||
| 833 | + }).then(res => { | ||
| 834 | + if (res.data) { | ||
| 835 | + let arr = [] | ||
| 836 | + res.data.forEach(i => { | ||
| 837 | + if (i.status != '1') { | ||
| 838 | + arr.push(i) | ||
| 839 | + } | ||
| 840 | + }) | ||
| 841 | + let recharge_data = arr; | ||
| 842 | + recharge_data.forEach(item => { | ||
| 843 | + let recharge_list = {}; | ||
| 844 | + try { | ||
| 845 | + if (typeof item.recharge_list === 'string' && item.recharge_list) { | ||
| 846 | + recharge_list = JSON.parse(item.recharge_list); | ||
| 847 | + } else if (item.recharge_list && typeof item.recharge_list === 'object') { | ||
| 848 | + recharge_list = item.recharge_list; | ||
| 849 | + } | ||
| 850 | + } catch (e) { | ||
| 851 | + recharge_list = {}; | ||
| 852 | + } | ||
| 853 | + if (!recharge_list || typeof recharge_list !== 'object' || Array.isArray(recharge_list)) { | ||
| 854 | + recharge_list = {}; | ||
| 855 | + } | ||
| 856 | + // 统一成字符串,兼容接口返回数字 0/1,保证 wxml 里 =='1' / =='0' 判断生效 | ||
| 857 | + ['is_price', 'is_score', 'is_coupons'].forEach(key => { | ||
| 858 | + if (recharge_list[key] == 1 || recharge_list[key] === '1') { | ||
| 859 | + recharge_list[key] = '1'; | ||
| 860 | + } else if (recharge_list[key] == 0 || recharge_list[key] === '0') { | ||
| 861 | + recharge_list[key] = '0'; | ||
| 862 | + } | ||
| 863 | + }); | ||
| 864 | + item.recharge_list = recharge_list; | ||
| 865 | + item.priceInfo = ''; | ||
| 866 | + item.scoreInfo = ''; | ||
| 867 | + item.certificate = ''; | ||
| 868 | + if (recharge_list.is_price == '1') { | ||
| 869 | + item.priceInfo = '会员充值满' + item.recharge_money + '元赠送' + recharge_list.price + '元余额'; | ||
| 870 | + } | ||
| 871 | + if (recharge_list.is_score == '1') { | ||
| 872 | + item.scoreInfo = '会员充值满' + item.recharge_money + '元赠送' + recharge_list.score + '积分'; | ||
| 873 | + } | ||
| 874 | + if (recharge_list.is_coupons == '1' && recharge_list.coupons_names && recharge_list.coupons_names.length > 0) { | ||
| 875 | + item.certificate = recharge_list.coupons_names.join('、'); | ||
| 876 | + } | ||
| 877 | + item.timeStr = (item.timeStr && item.timeStr) ? util.unixtoTime(item.stime, 'YYYY-MM-DD') + ' - ' + util.unixtoTime(item.etime, 'YYYY-MM-DD') : ''; | ||
| 878 | + }) | ||
| 879 | + // 筛选出 未过期的 && 开启状态的充值活动 | ||
| 880 | + recharge_data = recharge_data.filter(item => { | ||
| 881 | + return (this.data.dataStr < (item.etime * 1) || !item.etime) && item.is_open == '1' | ||
| 882 | + }) | ||
| 883 | + console.log('邀请函--------------充值', recharge_data); | ||
| 884 | + this.setData({ | ||
| 885 | + recharge_data, | ||
| 886 | + }) | ||
| 887 | + } else { | ||
| 888 | + this.setData({ | ||
| 889 | + recharge_data: [], | ||
| 890 | + }) | ||
| 891 | + } | ||
| 892 | + }) | ||
| 893 | + }, | ||
| 894 | + // 点击充值活动:有手机号进充值页,无手机号进登录页 | ||
| 895 | + gotoVipRecharge(e) { | ||
| 896 | + const id = e.currentTarget.dataset.id; | ||
| 897 | + if (!id) return; | ||
| 898 | + if (!this.data.purePhoneNumber) { | ||
| 899 | + this.gotoLogin('', '2'); | ||
| 900 | + return; | ||
| 901 | + } | ||
| 902 | + const { | ||
| 903 | + seller, | ||
| 904 | + detail, | ||
| 905 | + StyleType | ||
| 906 | + } = this.data; | ||
| 907 | + const url = util.http_build_query({ | ||
| 908 | + id, | ||
| 909 | + name: seller.name || '', | ||
| 910 | + sid: seller.sid || '', | ||
| 911 | + oid: detail.id || '', | ||
| 912 | + types: 1, | ||
| 913 | + StyleType: StyleType || '', | ||
| 914 | + }, '/pack-activity/pack/vipRecharge'); | ||
| 915 | + wx.navigateTo({ | ||
| 916 | + url | ||
| 917 | + }); | ||
| 918 | + }, | ||
| 919 | + // 获取评价赠送的券最新详情 | ||
| 920 | + getEvaluateFun(id) { | ||
| 921 | + App.Activity.GetActivityById({ | ||
| 922 | + id | ||
| 923 | + }).then(res => { | ||
| 924 | + if (res.data.length > 0) { | ||
| 925 | + let couponData = res.data[0] | ||
| 926 | + let data = couponData.expiration_date ? util.determine(couponData.expiration_date) : ''; | ||
| 927 | + // showCoupon 代表赠送的券没过有效期 && 是开启状态 | ||
| 928 | + couponData.showCoupon = (((data.valid_forever == '0' && this.data.dataStr < (data.etime * 1)) || data.valid_forever == '1') && couponData.is_open == '1') ? '1' : '0'; | ||
| 929 | + console.log('邀请函--------------------评价赠送的优惠券', couponData); | ||
| 930 | + this.setData({ | ||
| 931 | + couponData: res.data[0] | ||
| 932 | + }) | ||
| 933 | + } | ||
| 934 | + }) | ||
| 935 | + }, | ||
| 936 | + // 根据券ID获取券详情 | ||
| 937 | + getActivityByIdFun(obj, setcoupon) { | ||
| 938 | + App.Activity.GetActivityById({ | ||
| 939 | + id: obj.map(item => item.id).join(','), | ||
| 940 | + }).then(res => { | ||
| 941 | + if (res.data.length > 0) { | ||
| 942 | + // valid_forever 1永久 0非永久 | ||
| 943 | + let list = res.data.filter(item => { | ||
| 944 | + let data = item.expiration_date ? util.determine(item.expiration_date) : {}; | ||
| 945 | + let validForever = data.valid_forever === '1'; | ||
| 946 | + let isValid = item.is_type === '3' ? | ||
| 947 | + (validForever || (data.valid_forever === '0' && this.data.dataStr < (data.etime * 1))) : | ||
| 948 | + (this.data.dataStr < (item.etime * 1)); | ||
| 949 | + | ||
| 950 | + return isValid && item.is_open === '1'; | ||
| 951 | + }); | ||
| 952 | + list.forEach(detail => { | ||
| 953 | + detail.stringifyUse = detail.use ? JSON.stringify(detail.use) : ''; | ||
| 954 | + detail.exp_date = detail.exp_date ? util.determine(detail.exp_date) : ''; | ||
| 955 | + detail.arule = detail.arule ? util.determine(detail.arule) : ''; | ||
| 956 | + detail.use = detail.use ? util.determine(detail.use) : ''; | ||
| 957 | + detail.expiration_date = detail.expiration_date ? util.determine(detail.expiration_date) : ''; | ||
| 958 | + detail.aexpiration = detail.aexpiration ? util.determine(detail.aexpiration) : ''; | ||
| 959 | + if ((detail.use && (!detail.use.is_cash || detail.use.is_cash == '1'))) { | ||
| 960 | + let cash = detail.use.cash * 1; | ||
| 961 | + let price = detail.price * 1; | ||
| 962 | + detail.discount = cash != 0 ? ((price / cash) * 10).toFixed(1) : ''; | ||
| 963 | + } | ||
| 964 | + let num = detail.grant_num * 1 - detail.grant_last * 1; | ||
| 965 | + if (num > 0) { | ||
| 966 | + detail.receiveNumText = '' | ||
| 967 | + if (num >= 0 && num <= 100) { | ||
| 968 | + detail.receiveNumText = num.toString(); | ||
| 969 | + } else if (num >= 101 && num <= 199) { | ||
| 970 | + detail.receiveNumText = '100+'; | ||
| 971 | + } else if (num >= 200 && num <= 299) { | ||
| 972 | + detail.receiveNumText = '200+'; | ||
| 973 | + } else { | ||
| 974 | + detail.receiveNumText = Math.floor(num / 100) * 100 + '+'; | ||
| 975 | + } | ||
| 976 | + } | ||
| 977 | + if (num == 0) { | ||
| 978 | + let str = detail.grant_num * 1 | ||
| 979 | + detail.receiveNumText = '' | ||
| 980 | + if (str >= 0 && str <= 100) { | ||
| 981 | + detail.receiveNumText = str.toString(); | ||
| 982 | + } else if (str >= 101 && str <= 199) { | ||
| 983 | + detail.receiveNumText = '100+'; | ||
| 984 | + } else if (str >= 200 && str <= 299) { | ||
| 985 | + detail.receiveNumText = '200+'; | ||
| 986 | + } else { | ||
| 987 | + detail.receiveNumText = Math.floor(str / 100) * 100 + '+'; | ||
| 988 | + } | ||
| 989 | + } | ||
| 990 | + if (detail.exp_date && detail.exp_date.week_data) { | ||
| 991 | + let mor = this.hasConsecutiveSelect(detail.exp_date.week_data, '1').rArr.join('、') | ||
| 992 | + let noon = this.hasConsecutiveSelect(detail.exp_date.week_data, '2').rArr.join('、') | ||
| 993 | + let nig = this.hasConsecutiveSelect(detail.exp_date.week_data, '3').rArr.join('、') | ||
| 994 | + if (mor) mor = '早餐:' + mor | ||
| 995 | + if (noon) noon = '午餐:' + noon | ||
| 996 | + if (nig) nig = '晚餐:' + nig | ||
| 997 | + detail.morText = mor; | ||
| 998 | + detail.noonText = noon; | ||
| 999 | + detail.nigText = nig; | ||
| 1000 | + } | ||
| 1001 | + }) | ||
| 1002 | + let freeCoupons = list.filter(item => { | ||
| 1003 | + return item.is_type == '3' | ||
| 1004 | + }) | ||
| 1005 | + let give = this.give_user; | ||
| 1006 | + let couponShow = false; | ||
| 1007 | + switch (give) { | ||
| 1008 | + case '1': | ||
| 1009 | + couponShow = this.data.options.hasSellerShare == '1' ? true : false; | ||
| 1010 | + break; | ||
| 1011 | + case '2': | ||
| 1012 | + couponShow = true; | ||
| 1013 | + break; | ||
| 1014 | + case '3': | ||
| 1015 | + couponShow = this.data.options.hasSellerShare != '1' ? true : false; | ||
| 1016 | + break; | ||
| 1017 | + } | ||
| 1018 | + // 免费券判断是否领取,弹框领取 | ||
| 1019 | + if (freeCoupons.length > 0 && couponShow) { | ||
| 1020 | + this.getCoupon(freeCoupons, obj, setcoupon) | ||
| 1021 | + } else { | ||
| 1022 | + if (setcoupon != '1') { | ||
| 1023 | + this.setData({ | ||
| 1024 | + isFrame: '1', | ||
| 1025 | + }) | ||
| 1026 | + } | ||
| 1027 | + } | ||
| 1028 | + console.log('邀请函--------------------优惠券', list); | ||
| 1029 | + this.setData({ | ||
| 1030 | + coupon_dataList: list, | ||
| 1031 | + }) | ||
| 1032 | + } | ||
| 1033 | + }) | ||
| 1034 | + }, | ||
| 1035 | + // 弹框领取免费券 | ||
| 1036 | + setcouponFun() { | ||
| 1037 | + let arr = this.data.couponArr; | ||
| 1038 | + console.log('弹框领取免费券数组-----', arr); | ||
| 1039 | + let str = arr.flatMap(item => Array(item.number).fill(item.id)).join(','); | ||
| 1040 | + console.log('弹框领取免费券id', str); | ||
| 1041 | + App.Activity.SetActivityAsReserve({ | ||
| 1042 | + aid: str, | ||
| 1043 | + rid: this.id, | ||
| 1044 | + phone: this.data.purePhoneNumber, | ||
| 1045 | + }).then((json) => { | ||
| 1046 | + if (json.ret != 200) { | ||
| 1047 | + wx.showToast({ | ||
| 1048 | + title: json.msg, | ||
| 1049 | + duration: 2000, | ||
| 1050 | + mask: true | ||
| 1051 | + }) | ||
| 1052 | + } else { | ||
| 1053 | + wx.showToast({ | ||
| 1054 | + title: '领取成功!', | ||
| 1055 | + duration: 2000, | ||
| 1056 | + mask: true | ||
| 1057 | + }) | ||
| 1058 | + this.closeCouponModal() | ||
| 1059 | + } | ||
| 1060 | + }) | ||
| 1061 | + }, | ||
| 1062 | + // 免费券 0未领取 1已领取 获取未领取的组成数组couponArr | ||
| 1063 | + getCoupon(arr, info, setcoupon) { | ||
| 1064 | + let str = arr.flatMap(item => Array(item.number).fill(item.id)).join(','); | ||
| 1065 | + App.Activity.ActivityListByOpenid({ | ||
| 1066 | + aid: str, | ||
| 1067 | + sellerid: this.data.seller.sid, | ||
| 1068 | + }).then(res => { | ||
| 1069 | + if (res.ret == 200) { | ||
| 1070 | + let couponArr = []; | ||
| 1071 | + let totalPrice = 0; | ||
| 1072 | + let coupon_dataList = this.data.coupon_dataList; | ||
| 1073 | + let list = res.data; | ||
| 1074 | + if (setcoupon != '1') { | ||
| 1075 | + list.forEach(item => { | ||
| 1076 | + item.cdate = item.cdate * 1; | ||
| 1077 | + item.useStime = ''; | ||
| 1078 | + item.useEtime = ''; | ||
| 1079 | + let condition = item.aexpiration ? util.determine(item.aexpiration) : ''; | ||
| 1080 | + if (condition.valid_forever === '0' && condition.stime && condition.etime) { | ||
| 1081 | + item.useStime = util.unixtoTime(condition.stime, 'YYYY-MM-DD'); | ||
| 1082 | + item.useEtime = util.unixtoTime(condition.etime, 'YYYY-MM-DD'); | ||
| 1083 | + } | ||
| 1084 | + if (condition.valid_forever === '1') { | ||
| 1085 | + item.foreverText = '永久有效'; | ||
| 1086 | + } | ||
| 1087 | + if (condition.valid_forever === '0' && condition.today) { | ||
| 1088 | + let obj = this.setTimeRange(item.cdate, 0, parseInt(condition.today) - 1); | ||
| 1089 | + item.useStime = obj.useStimeNum; | ||
| 1090 | + item.useEtime = obj.useEtimeNum; | ||
| 1091 | + } | ||
| 1092 | + if (condition.valid_forever === '0' && condition.tomorrow) { | ||
| 1093 | + let obj = this.setTimeRange(item.cdate, 1, condition.tomorrow * 1); | ||
| 1094 | + item.useStime = obj.useStimeNum; | ||
| 1095 | + item.useEtime = obj.useEtimeNum; | ||
| 1096 | + } | ||
| 1097 | + if (condition.valid_forever === '0' && condition.sday && condition.eday) { | ||
| 1098 | + let obj = this.setTimeRange(item.cdate, parseInt(condition.sday) - 1, parseInt(condition.eday) - 1); | ||
| 1099 | + item.useStime = obj.useStimeNum; | ||
| 1100 | + item.useEtime = obj.useEtimeNum; | ||
| 1101 | + } | ||
| 1102 | + }) | ||
| 1103 | + list = list.filter(item => { | ||
| 1104 | + let condition = item.aexpiration ? util.determine(item.aexpiration) : ''; | ||
| 1105 | + return (item.useEtime >= this.data.dataStr) || (item.foreverText == '永久有效') || (condition.valid_forever === '0' && condition.stime && condition.etime) | ||
| 1106 | + }); | ||
| 1107 | + } | ||
| 1108 | + list.sort((a, b) => b.cdate - a.cdate); | ||
| 1109 | + list = list.reduce((accumulator, current) => { | ||
| 1110 | + if (!accumulator.some(item => item.aid === current.aid)) { | ||
| 1111 | + accumulator.push(current); | ||
| 1112 | + } | ||
| 1113 | + return accumulator; | ||
| 1114 | + }, []); | ||
| 1115 | + const strArray = str.split(','); | ||
| 1116 | + const result = strArray.filter(num => { | ||
| 1117 | + return !list.some(item => item.id === num); | ||
| 1118 | + }); | ||
| 1119 | + console.log('待领取的券id', result); | ||
| 1120 | + if (result.length > 0) { | ||
| 1121 | + result.forEach(item => { | ||
| 1122 | + let match = arr.find(b => b.id === item); | ||
| 1123 | + let obj = info.find(b => b.id === item); | ||
| 1124 | + console.log('待领取的券详情', match); | ||
| 1125 | + let record = { | ||
| 1126 | + id: '', | ||
| 1127 | + number: '', | ||
| 1128 | + grant_last: '', | ||
| 1129 | + price: '', | ||
| 1130 | + desc: '', | ||
| 1131 | + } | ||
| 1132 | + if (obj) { | ||
| 1133 | + record.number = obj.number; | ||
| 1134 | + } | ||
| 1135 | + if (match) { | ||
| 1136 | + record.grant_last = match.grant_last * 1 * 1; | ||
| 1137 | + record.id = match.id; | ||
| 1138 | + record.desc = match.desc; | ||
| 1139 | + record.price = match.price; | ||
| 1140 | + } | ||
| 1141 | + if (record.number > record.grant_last && record.grant_last > 0) { | ||
| 1142 | + record.number = record.grant_last | ||
| 1143 | + } | ||
| 1144 | + // 只留下可领取数量大于0的 | ||
| 1145 | + if (record.grant_last > 0 && record.number) { | ||
| 1146 | + console.log('可领取的券', { | ||
| 1147 | + ...record | ||
| 1148 | + }); | ||
| 1149 | + couponArr.push({ | ||
| 1150 | + ...record | ||
| 1151 | + }) | ||
| 1152 | + } | ||
| 1153 | + }) | ||
| 1154 | + if (couponArr.length > 0 && setcoupon != '1' && this.one == '0') { | ||
| 1155 | + totalPrice = couponArr.reduce((sum, item) => sum + item.price * item.number, 0); | ||
| 1156 | + this.one = '1' | ||
| 1157 | + setTimeout(() => { | ||
| 1158 | + this.setData({ | ||
| 1159 | + couponArr, | ||
| 1160 | + totalPrice: parseFloat(totalPrice.toFixed(2)), | ||
| 1161 | + }) | ||
| 1162 | + this.showCouponModal() | ||
| 1163 | + }, 3000); | ||
| 1164 | + } else { | ||
| 1165 | + if (setcoupon != '1') { | ||
| 1166 | + this.setData({ | ||
| 1167 | + isFrame: '1', | ||
| 1168 | + }) | ||
| 1169 | + } | ||
| 1170 | + } | ||
| 1171 | + } else { | ||
| 1172 | + if (setcoupon != '1') { | ||
| 1173 | + this.setData({ | ||
| 1174 | + isFrame: '1', | ||
| 1175 | + }) | ||
| 1176 | + } | ||
| 1177 | + } | ||
| 1178 | + list.forEach(item => { | ||
| 1179 | + let idx = coupon_dataList.findIndex(b => b.id === item.id); | ||
| 1180 | + if (idx !== null && idx !== undefined && coupon_dataList[idx]) { | ||
| 1181 | + const detail = coupon_dataList[idx]; | ||
| 1182 | + detail.resultCoupon = '1'; // 显示已领取 | ||
| 1183 | + detail.cdate = item.cdate * 1; | ||
| 1184 | + detail.useStime = ''; | ||
| 1185 | + detail.useEtime = ''; | ||
| 1186 | + let condition = detail.aexpiration | ||
| 1187 | + if (condition.valid_forever === '0' && condition.stime && condition.etime) { | ||
| 1188 | + detail.useStime = util.unixtoTime(condition.stime, 'YYYY-MM-DD'); | ||
| 1189 | + detail.useEtime = util.unixtoTime(condition.etime, 'YYYY-MM-DD'); | ||
| 1190 | + } | ||
| 1191 | + if (condition.valid_forever === '1') { | ||
| 1192 | + detail.foreverText = '永久有效'; | ||
| 1193 | + } | ||
| 1194 | + if (condition.valid_forever === '0' && condition.today) { | ||
| 1195 | + let obj = this.setTimeRange(detail.cdate, 0, parseInt(condition.today) - 1); | ||
| 1196 | + detail.useStime = obj.useStime; | ||
| 1197 | + detail.useEtime = obj.useEtime; | ||
| 1198 | + } | ||
| 1199 | + if (condition.valid_forever === '0' && condition.tomorrow) { | ||
| 1200 | + let obj = this.setTimeRange(detail.cdate, 1, condition.tomorrow * 1); | ||
| 1201 | + detail.useStime = obj.useStime; | ||
| 1202 | + detail.useEtime = obj.useEtime; | ||
| 1203 | + } | ||
| 1204 | + if (condition.valid_forever === '0' && condition.sday && condition.eday) { | ||
| 1205 | + let obj = this.setTimeRange(detail.cdate, parseInt(condition.sday) - 1, parseInt(condition.eday) - 1); | ||
| 1206 | + detail.useStime = obj.useStime; | ||
| 1207 | + detail.useEtime = obj.useEtime; | ||
| 1208 | + } | ||
| 1209 | + } | ||
| 1210 | + }) | ||
| 1211 | + console.log('未领取的券列表-----------', couponArr); | ||
| 1212 | + this.setData({ | ||
| 1213 | + coupon_dataList, | ||
| 1214 | + }) | ||
| 1215 | + } | ||
| 1216 | + }) | ||
| 1217 | + }, | ||
| 1218 | + /** | ||
| 1219 | + * 生命周期函数--监听页面隐藏 | ||
| 1220 | + */ | ||
| 1221 | + onHide() { | ||
| 1222 | + // 选相册时也会 onHide:不清定时器、不销毁音频,回来后继续播 | ||
| 1223 | + if (this._skipOnShowRefresh) return; | ||
| 1224 | + clearInterval(this.timers) | ||
| 1225 | + if (this.data.timer) { | ||
| 1226 | + clearInterval(this.data.timer); | ||
| 1227 | + } | ||
| 1228 | + this.destroyAudioCtx(); | ||
| 1229 | + }, | ||
| 1230 | + | ||
| 1231 | + /** | ||
| 1232 | + * 生命周期函数--监听页面卸载 | ||
| 1233 | + */ | ||
| 1234 | + onUnload() { | ||
| 1235 | + clearInterval(this.timers) | ||
| 1236 | + if (this.data.timer) { | ||
| 1237 | + clearInterval(this.data.timer); | ||
| 1238 | + } | ||
| 1239 | + if (this._onUserCaptureScreen && wx.offUserCaptureScreen) { | ||
| 1240 | + wx.offUserCaptureScreen(this._onUserCaptureScreen); | ||
| 1241 | + } | ||
| 1242 | + this.destroyAudioCtx(); | ||
| 1243 | + }, | ||
| 1244 | + destroyAudioCtx() { | ||
| 1245 | + const ctx = this.audioCtx; | ||
| 1246 | + if (!ctx || typeof ctx.destroy !== 'function') { | ||
| 1247 | + this.audioCtx = null; | ||
| 1248 | + return; | ||
| 1249 | + } | ||
| 1250 | + try { | ||
| 1251 | + ctx.destroy(); | ||
| 1252 | + } catch (e) { | ||
| 1253 | + console.log('destroyAudioCtx', e); | ||
| 1254 | + } | ||
| 1255 | + this.audioCtx = null; | ||
| 1256 | + }, | ||
| 1257 | + // 点击关闭领券弹框后,出现图片缩小到商家有礼的位置消失动画 | ||
| 1258 | + startAnimation() { | ||
| 1259 | + const animation = wx.createAnimation({ | ||
| 1260 | + duration: 800, | ||
| 1261 | + timingFunction: 'ease', | ||
| 1262 | + }); | ||
| 1263 | + animation.translateY('-60%') | ||
| 1264 | + .translateX('34%') | ||
| 1265 | + .scale(0) | ||
| 1266 | + .step(); | ||
| 1267 | + this.setData({ | ||
| 1268 | + animationData: animation.export(), | ||
| 1269 | + }); | ||
| 1270 | + setTimeout(() => { | ||
| 1271 | + this.startSecondAnimation(); | ||
| 1272 | + }, 800); | ||
| 1273 | + }, | ||
| 1274 | + | ||
| 1275 | + // 商家有话说:自定义图文 / 餐厅介绍 / 特色菜品 / 主厨介绍 任一有内容则显示 | ||
| 1276 | + updateShowMerchantSpeak() { | ||
| 1277 | + const { | ||
| 1278 | + reserveData, | ||
| 1279 | + marketing, | ||
| 1280 | + home, | ||
| 1281 | + store, | ||
| 1282 | + signboard, | ||
| 1283 | + chef | ||
| 1284 | + } = this.data; | ||
| 1285 | + | ||
| 1286 | + let hasReserveText = false; | ||
| 1287 | + if (reserveData) { | ||
| 1288 | + if (reserveData.title) { | ||
| 1289 | + hasReserveText = true; | ||
| 1290 | + } else if (reserveData.content && reserveData.content.length > 0) { | ||
| 1291 | + hasReserveText = true; | ||
| 1292 | + } | ||
| 1293 | + } | ||
| 1294 | + | ||
| 1295 | + let hasStoreContent = false; | ||
| 1296 | + if (store) { | ||
| 1297 | + if (store.introduce && (!store.is_introduce || store.is_introduce != '0')) { | ||
| 1298 | + hasStoreContent = true; | ||
| 1299 | + } else if (store.images && store.images.length > 0 && (!store.is_images || store.is_images != '0')) { | ||
| 1300 | + hasStoreContent = true; | ||
| 1301 | + } else if (store.content && store.content.length > 0) { | ||
| 1302 | + hasStoreContent = true; | ||
| 1303 | + } | ||
| 1304 | + } | ||
| 1305 | + let hasLogoOrHome = false; | ||
| 1306 | + if ((marketing && marketing.logo) || (home && home.image)) { | ||
| 1307 | + hasLogoOrHome = true; | ||
| 1308 | + } | ||
| 1309 | + const hasStore = hasLogoOrHome || hasStoreContent; | ||
| 1310 | + | ||
| 1311 | + let hasSignboard = false; | ||
| 1312 | + if (signboard) { | ||
| 1313 | + if (signboard.swich == '1' && signboard.images && signboard.images.length > 0) { | ||
| 1314 | + hasSignboard = true; | ||
| 1315 | + } else if (signboard.content && signboard.content.length > 0) { | ||
| 1316 | + hasSignboard = true; | ||
| 1317 | + } | ||
| 1318 | + } | ||
| 1319 | + | ||
| 1320 | + let hasChef = false; | ||
| 1321 | + if (chef) { | ||
| 1322 | + if (chef.introduce && (!chef.is_introduce || chef.is_introduce != '0')) { | ||
| 1323 | + hasChef = true; | ||
| 1324 | + } else if (chef.image && (!chef.is_images || chef.is_images != '0')) { | ||
| 1325 | + hasChef = true; | ||
| 1326 | + } else if (chef.content && chef.content.length > 0) { | ||
| 1327 | + hasChef = true; | ||
| 1328 | + } | ||
| 1329 | + } | ||
| 1330 | + | ||
| 1331 | + const showMerchantSpeak = hasReserveText || hasStore || hasSignboard || hasChef; | ||
| 1332 | + if (showMerchantSpeak !== this.data.showMerchantSpeak) { | ||
| 1333 | + this.setData({ | ||
| 1334 | + showMerchantSpeak | ||
| 1335 | + }); | ||
| 1336 | + } | ||
| 1337 | + }, | ||
| 1338 | + getText() { | ||
| 1339 | + App.Reserve.GetReserveImgText({ | ||
| 1340 | + rid: this.data.options.id | ||
| 1341 | + }).then(res => { | ||
| 1342 | + if (res.ret == 200 && res.data) { | ||
| 1343 | + let data = res.data; | ||
| 1344 | + let content = util.determine(data.content) | ||
| 1345 | + this.setData({ | ||
| 1346 | + reserveData: { | ||
| 1347 | + title: data.title || '', | ||
| 1348 | + content, | ||
| 1349 | + } | ||
| 1350 | + }, () => this.updateShowMerchantSpeak()) | ||
| 1351 | + } | ||
| 1352 | + }) | ||
| 1353 | + }, | ||
| 1354 | + updateContactPhone() { | ||
| 1355 | + const sellerTel = this.data.seller && this.data.seller.tel; | ||
| 1356 | + const staffPhone = this.data.staffinfo && this.data.staffinfo.phone; | ||
| 1357 | + const contactPhone = staffPhone || (sellerTel && sellerTel.length && sellerTel[0]) || ''; | ||
| 1358 | + if (contactPhone !== this.data.contactPhone) { | ||
| 1359 | + this.setData({ | ||
| 1360 | + contactPhone | ||
| 1361 | + }); | ||
| 1362 | + } | ||
| 1363 | + }, | ||
| 1364 | + onHeroImageError() { | ||
| 1365 | + const failed = this.data.themeImg; | ||
| 1366 | + if (!failed) return; | ||
| 1367 | + if (!this._failedThemeImgs) this._failedThemeImgs = {}; | ||
| 1368 | + // hero + 模糊底共用 themeImg,失败可能连触发两次,已处理过则跳过 | ||
| 1369 | + if (this._failedThemeImgs[failed]) return; | ||
| 1370 | + this._failedThemeImgs[failed] = true; | ||
| 1371 | + const defaultImg = 'https://qn.colorcun.com/testImg/img4.png'; | ||
| 1372 | + if (failed === defaultImg) return; | ||
| 1373 | + const next = this.getThemeImgCandidates().find(url => !this._failedThemeImgs[url]) || defaultImg; | ||
| 1374 | + this.setData({ | ||
| 1375 | + themeImg: next, | ||
| 1376 | + heroBottomStripImage: '', | ||
| 1377 | + }); | ||
| 1378 | + }, | ||
| 1379 | + onBackdropImageError() { | ||
| 1380 | + // 后台色带加载失败时,自动切回直接裁切主图底部的方案。 | ||
| 1381 | + if (this.data.heroBottomStripImage) { | ||
| 1382 | + this.setData({ | ||
| 1383 | + heroBottomStripImage: '' | ||
| 1384 | + }); | ||
| 1385 | + } | ||
| 1386 | + }, | ||
| 1387 | +}) |
| 1 | +{ | ||
| 2 | + "navigationStyle": "custom", | ||
| 3 | + "navigationBarTextStyle": "white", | ||
| 4 | + "usingComponents": { | ||
| 5 | + "nav": "/components/nav/nav", | ||
| 6 | + "painter": "/components/painter/painter", | ||
| 7 | + "my-modal": "/components/modal/modal", | ||
| 8 | + "scroll-number": "/components/scroll-number/index", | ||
| 9 | + "subscribe": "/components/userinfo/subscribe" | ||
| 10 | + } | ||
| 11 | +} |
| 1 | +<!--pack-invitation/pages/detail_owner_invitation14.wxml--> | ||
| 2 | +<import src="../common/parts.wxml" /> | ||
| 3 | +<nav hasHome id="nav" backgroundColor="transparent" place="{{false}}"></nav> | ||
| 4 | +<view class="pageBox {{pageThemeClass}} {{isCustom == '1' ? 'isCustom' : ''}} style{{StyleTypeNum}}"> | ||
| 5 | + <!-- 自定义/白色:模糊底;其它主题色:CSS 固定纯色 + 中间渐变 --> | ||
| 6 | + <view wx:if="{{themeColor == 'pearlWhite'}}" class="page-background"> | ||
| 7 | + <image wx:if="{{heroBottomStripImage}}" class="page-blur-image prepared-bottom-strip" src="{{heroBottomStripImage}}" mode="scaleToFill" binderror="onBackdropImageError" /> | ||
| 8 | + <image wx:else class="page-blur-image source-bottom-crop" src="{{themeImg}}" mode="scaleToFill" binderror="onHeroImageError" /> | ||
| 9 | + </view> | ||
| 10 | + <scroll-view class="scroll" scroll-y enhanced show-scrollbar="{{false}}" bindscroll="onScrollViewScroll" style="height: {{windowHeight}}px;"> | ||
| 11 | + <view class="scroll-wrap"> | ||
| 12 | + <image class="hero-image" style="height: {{heroHeightPx}}px;" src="{{themeImg}}" mode="aspectFill" binderror="onHeroImageError" /> | ||
| 13 | + <view wx:if="{{themeColor != 'pearlWhite'}}" class="page-theme-fade" style="height: {{heroHeightPx}}px;"></view> | ||
| 14 | + <view class="scroll-body" style="padding-top: {{contentStartPx}}px;"> | ||
| 15 | + <!-- 音乐开关 --> | ||
| 16 | + <template is="musicImg" data="{{newStr: newStr, isPlay: isPlay, attentionAnim: attentionAnim}}" /> | ||
| 17 | + <!-- 商家有礼悬浮入口 --> | ||
| 18 | + <template is="giftImg" data="{{hasValueCertificate: hasValueCertificate, marketing: marketing, coupon_dataList: coupon_dataList, isFrame: isFrame, is_comments: is_comments, is_user_comments: is_user_comments, couponData: couponData, hasValueRecharge: hasValueRecharge, recharge_data: recharge_data, animationData2: animationData2}}" /> | ||
| 19 | + <!-- 领券全屏浮层 --> | ||
| 20 | + <template is="fullscreenMask" data="{{isShow: isShow, animationData: animationData}}" /> | ||
| 21 | + <view class="targetPoint" style="top: 35%; right: 4%;"></view> | ||
| 22 | + <!-- 已取消/已结束 状态角标 --> | ||
| 23 | + <template is="statusBadge" data="{{detail: detail, options: options}}" /> | ||
| 24 | + <view class="heroBlock style{{StyleTypeNum}}"> | ||
| 25 | + <view class="bgEditBar" wx:if="{{StyleTypeNum != '4' && canChangeBg=='1' && options.hasSellerShare == '1'}}"> | ||
| 26 | + <view class="bgEditBtn bgEditBtnChange {{bgSaved?'bgEditBtnDisabled':''}}" bindtap="onChangeBgPhoto">换照片</view> | ||
| 27 | + <view class="bgEditSaveWrap"> | ||
| 28 | + <view class="bgEditBtn bgEditBtnSave {{bgSaved?'bgEditBtnDisabled':''}}" bindtap="onSaveBgPhoto">保存<view class="bgEditSaveTip" wx:if="{{!bgSaved}}">(仅1次)</view> | ||
| 29 | + </view> | ||
| 30 | + </view> | ||
| 31 | + </view> | ||
| 32 | + <view class="heroTitle {{titleCls}}" style="{{titleStyle}}" wx:if="{{StyleTypeNum != 2 && StyleTypeNum != '2' && StyleTypeNum != 4 && StyleTypeNum != '4' && options.hasSellerShare == '1'}}">{{titleObj.textInfo || '预订安排'}}</view> | ||
| 33 | + <view class="heroTitle {{titleCls}}" style="{{titleStyle}}" wx:elif="{{StyleTypeNum != 2 && StyleTypeNum != '2' && StyleTypeNum != 4 && StyleTypeNum != '4'}}">{{titleObj.textInfo || '邀请函'}}</view> | ||
| 34 | + <view class="heroSeller {{shopCls}}" style="{{shopStyle}}">{{shopObj.textInfo || seller.name || reserve.seller_name}}</view> | ||
| 35 | + <view class="heroSlogan font24r" wx:if="{{StyleTypeNum != 1 && StyleTypeNum != '1' && reserve.swich_slogan == '1' && home.slogan}}">{{home.slogan}}</view> | ||
| 36 | + <view class="bookInfo"> | ||
| 37 | + <view class="entrance" wx:if="{{StyleTypeNum == '1'}}"> | ||
| 38 | + <view bindtap="sharesettingShop" class="entranceItem"> | ||
| 39 | + <image src="https://qn.colorcun.com/shopHomeIcon{{entranceIcon}}.png" mode="" /> | ||
| 40 | + <view class="font24r">商家主页</view> | ||
| 41 | + </view> | ||
| 42 | + <button wx:if="{{canShare}}" class="entranceItem" open-type="share"> | ||
| 43 | + <image src="https://qn.colorcun.com/forwardIcon{{entranceIcon}}.png" mode="" /> | ||
| 44 | + <view class="font24r">转发好友</view> | ||
| 45 | + </button> | ||
| 46 | + <view bindtap="cookbook" wx:if="{{options.hasSellerShare == '1' && detail.status !='4' && options.isOrder != '1' && hasValueOrder && detail.seller.is_open_order==1 && marketing.is_order=='1'}}" class="entranceItem"> | ||
| 47 | + <image src="https://qn.colorcun.com/advanceOrderIcon{{entranceIcon}}.png" mode="" /> | ||
| 48 | + <view class="font24r">提前点餐</view> | ||
| 49 | + </view> | ||
| 50 | + <button wx:if="{{canMeet && needLogin}}" bindtap="gotoLogin" data-types="2" class="entranceItem"> | ||
| 51 | + <image src="https://qn.colorcun.com/appointmentIcon{{entranceIcon}}.png" mode="" /> | ||
| 52 | + <view class="font24r">确认赴约</view> | ||
| 53 | + </button> | ||
| 54 | + <button wx:elif="{{canMeet}}" bindtap="confirmed" class="entranceItem"> | ||
| 55 | + <image src="https://qn.colorcun.com/appointmentIcon{{entranceIcon}}.png" mode="" /> | ||
| 56 | + <view class="font24r">确认赴约</view> | ||
| 57 | + </button> | ||
| 58 | + <view bindtap="evaluateFun" wx:if="{{is_comments=='1' && !is_user_comments}}" class="entranceItem entranceFeedback"> | ||
| 59 | + <image src="https://qn.colorcun.com/feedbackIcon{{entranceIcon}}.png" mode="" /> | ||
| 60 | + <view class="font24r">意见反馈</view> | ||
| 61 | + </view> | ||
| 62 | + </view> | ||
| 63 | + <view class="heroSlogan font24r" wx:if="{{(StyleTypeNum == 1 || StyleTypeNum == '1') && reserve.swich_slogan == '1' && home.slogan}}">{{home.slogan}}</view> | ||
| 64 | + <block wx:if="{{StyleTypeNum == 2 || StyleTypeNum == '2'}}"> | ||
| 65 | + <view class="bookWave"> | ||
| 66 | + <view class="waveLine"></view> | ||
| 67 | + <view class="waveBars"> | ||
| 68 | + <view class="waveBar"></view> | ||
| 69 | + <view class="waveBar"></view> | ||
| 70 | + <view class="waveBar"></view> | ||
| 71 | + <view class="waveBar"></view> | ||
| 72 | + <view class="waveBar"></view> | ||
| 73 | + <view class="waveBar"></view> | ||
| 74 | + <view class="waveBar"></view> | ||
| 75 | + <view class="waveBar"></view> | ||
| 76 | + <view class="waveBar"></view> | ||
| 77 | + </view> | ||
| 78 | + <view class="waveLine"></view> | ||
| 79 | + </view> | ||
| 80 | + <view class="infoItem" wx:if="{{reserve.swich_booking=='1' && reserve.book_info}}"> | ||
| 81 | + <text space="nbsp" class="contentData font28r bookData">{{reserve.book_info}}</text> | ||
| 82 | + </view> | ||
| 83 | + <view class="infoItem" wx:if="{{seller.tablesText}}"> | ||
| 84 | + <view class="contentData contentData1">{{seller.tablesText}}</view> | ||
| 85 | + </view> | ||
| 86 | + <view class="infoItem" wx:if="{{seller.date}}"> | ||
| 87 | + <view class="contentData contentData2">{{seller.date}}</view> | ||
| 88 | + </view> | ||
| 89 | + <view class="infoItem" wx:if="{{(detail.rnameStr && reserve.swich_customer == '1') || seller.soltName}}"> | ||
| 90 | + <view class="contentData contentWithBtn contentData2 contentData3"> | ||
| 91 | + <text wx:if="{{detail.rnameStr && reserve.swich_customer == '1'}}">{{detail.rnameStr}}订</text> | ||
| 92 | + <text class="texts1" wx:if="{{detail.rnameStr && reserve.swich_customer == '1' && seller.soltName}}"> | </text> | ||
| 93 | + <text wx:if="{{seller.soltName}}">{{seller.soltName}}<text wx:if="{{temp_ddate}}"> {{temp_ddate}}</text></text> | ||
| 94 | + <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}}"> | ||
| 95 | + <view class="miniBtn"> | ||
| 96 | + <image class="arrivalImg" src="https://qn.colorcun.com/editTimeIcon{{actionIcon}}.png" mode="" /><text>改时间</text> | ||
| 97 | + </view> | ||
| 98 | + </picker> | ||
| 99 | + </view> | ||
| 100 | + </view> | ||
| 101 | + <view class="infoItem" wx:if="{{swich_phone!='0' && seller.tel && seller.tel.length>0}}"> | ||
| 102 | + <view class="contentData contentWithBtn contentData2"> | ||
| 103 | + <text>前台电话</text> | ||
| 104 | + <text wx:for="{{seller.tel}}" wx:key="index" data-phone="{{item}}" class="contentDataPhone" bindtap="call"> {{item}}</text> | ||
| 105 | + <view class="miniBtn" data-phone="{{contactPhone || seller.tel[0]}}" bindtap="call"> | ||
| 106 | + <image src="https://qn.colorcun.com/contactMeIcon{{actionIcon}}.png" mode="" /><text>联系我</text> | ||
| 107 | + </view> | ||
| 108 | + </view> | ||
| 109 | + </view> | ||
| 110 | + <view class="infoItem" wx:if="{{seller.addr || (reserve.seller && reserve.seller.map_address)}}"> | ||
| 111 | + <view class="contentData contentWithBtn contentData2"> | ||
| 112 | + <text>{{seller.addr || reserve.seller.map_address}}</text> | ||
| 113 | + <view class="miniBtn" bindtap="looklocation"> | ||
| 114 | + <image class="addressImg" src="https://qn.colorcun.com/navigationIcon{{actionIcon}}.png" mode="aspectFill" /><text>导航</text> | ||
| 115 | + </view> | ||
| 116 | + </view> | ||
| 117 | + </view> | ||
| 118 | + </block> | ||
| 119 | + <block wx:elif="{{StyleTypeNum == 4 || StyleTypeNum == '4'}}"> | ||
| 120 | + <view class="bgEditBar" wx:if="{{canChangeBg=='1' && options.hasSellerShare == '1'}}"> | ||
| 121 | + <view class="bgEditBtn bgEditBtnChange {{bgSaved?'bgEditBtnDisabled':''}}" bindtap="onChangeBgPhoto">换照片</view> | ||
| 122 | + <view class="bgEditSaveWrap"> | ||
| 123 | + <view class="bgEditBtn bgEditBtnSave {{bgSaved?'bgEditBtnDisabled':''}}" bindtap="onSaveBgPhoto">保存<view class="bgEditSaveTip" wx:if="{{!bgSaved}}">(仅1次)</view> | ||
| 124 | + </view> | ||
| 125 | + </view> | ||
| 126 | + </view> | ||
| 127 | + <view class="heroTitle {{titleCls}}" style="{{titleStyle}}">{{options.hasSellerShare == '1' ? (titleObj.textInfo || '预订安排') : (titleObj.textInfo || '邀请函')}}</view> | ||
| 128 | + <view class="infoItem" wx:if="{{reserve.swich_booking=='1' && reserve.book_info}}"> | ||
| 129 | + <text space="nbsp" class="contentData font28r bookData">{{reserve.book_info}}</text> | ||
| 130 | + </view> | ||
| 131 | + <view class="bookInvite">{{detail.rnameStr ? detail.rnameStr + '邀您赴宴' : '邀您赴宴'}}</view> | ||
| 132 | + <view class="bookDivider"></view> | ||
| 133 | + <view class="infoItem style4Item" wx:if="{{seller.date || seller.soltName || temp_ddate}}"> | ||
| 134 | + <view class="label font24r">时间</view> | ||
| 135 | + <view class="contentData timeBox"> | ||
| 136 | + <view class="timeDate" wx:if="{{seller.date}}">{{seller.date}}</view> | ||
| 137 | + <view class="contentWithBtn timeSlot" wx:if="{{seller.soltName || temp_ddate}}"> | ||
| 138 | + <text wx:if="{{seller.soltName}}">{{seller.soltName}}</text> | ||
| 139 | + <text wx:if="{{temp_ddate}}"> {{temp_ddate}}</text> | ||
| 140 | + <picker wx:if="{{detail && options && options.isOrder != '1' && (detail.status =='1' || detail.status =='2') && options.hasSellerShare == '1'}}" bindchange="bindPickerChange" value="{{index}}" range="{{timeList}}"> | ||
| 141 | + <view class="miniBtn"> | ||
| 142 | + <image class="arrivalImg" src="https://qn.colorcun.com/editTimeIcon{{actionIcon}}.png" mode="" /><text>改时间</text> | ||
| 143 | + </view> | ||
| 144 | + </picker> | ||
| 145 | + </view> | ||
| 146 | + </view> | ||
| 147 | + </view> | ||
| 148 | + <view class="infoItem style4Item" wx:if="{{seller.name || reserve.seller_name || seller.tablesText}}"> | ||
| 149 | + <view class="label font24r">地点及餐位</view> | ||
| 150 | + <view class="contentData placeBox"> | ||
| 151 | + <view class="placeShop" wx:if="{{seller.name || reserve.seller_name}}">{{seller.name || reserve.seller_name}}</view> | ||
| 152 | + <view class="placeTable" wx:if="{{seller.tablesText}}">{{seller.tablesText}}</view> | ||
| 153 | + </view> | ||
| 154 | + </view> | ||
| 155 | + <view class="infoItem style4Item" wx:if="{{swich_phone!='0' && seller.tel && seller.tel.length>0}}"> | ||
| 156 | + <view class="label font24r">前台电话</view> | ||
| 157 | + <view class="contentData contentWithBtn"> | ||
| 158 | + <text wx:for="{{seller.tel}}" wx:key="index" data-phone="{{item}}" class="contentDataPhone" bindtap="call">{{index > 0 ? ' ' : ''}}{{item}}</text> | ||
| 159 | + <view class="miniBtn" data-phone="{{contactPhone || seller.tel[0]}}" bindtap="call"> | ||
| 160 | + <image src="https://qn.colorcun.com/contactMeIcon{{actionIcon}}.png" mode="" /><text>联系我</text> | ||
| 161 | + </view> | ||
| 162 | + </view> | ||
| 163 | + </view> | ||
| 164 | + <view class="infoItem style4Item" wx:if="{{seller.addr || (reserve.seller && reserve.seller.map_address)}}"> | ||
| 165 | + <view class="label font24r">餐厅地址</view> | ||
| 166 | + <view class="contentData contentWithBtn"> | ||
| 167 | + <text>{{seller.addr || reserve.seller.map_address}}</text> | ||
| 168 | + <view class="miniBtn" bindtap="looklocation"> | ||
| 169 | + <image class="addressImg" src="https://qn.colorcun.com/navigationIcon{{actionIcon}}.png" mode="aspectFill" /><text>导航</text> | ||
| 170 | + </view> | ||
| 171 | + </view> | ||
| 172 | + </view> | ||
| 173 | + </block> | ||
| 174 | + <block wx:else> | ||
| 175 | + <view class="bookSideText" wx:if="{{StyleTypeNum == 3 || StyleTypeNum == '3'}}">{{options.hasSellerShare == '1' ? '预订安排' : '邀请函'}}</view> | ||
| 176 | + <view class="infoItem" wx:if="{{(StyleTypeNum == 3 || StyleTypeNum == '3') && reserve.swich_booking=='1' && reserve.book_info}}"> | ||
| 177 | + <text space="nbsp" class="contentData font28r bookData">{{reserve.book_info}}</text> | ||
| 178 | + </view> | ||
| 179 | + <view class="infoItem" wx:if="{{detail.rnameStr && reserve.swich_customer == '1'}}"> | ||
| 180 | + <view class="label font24r">预订贵宾</view> | ||
| 181 | + <view class="contentData">{{detail.rnameStr}}</view> | ||
| 182 | + </view> | ||
| 183 | + <view class="infoItem" wx:if="{{seller.date}}"> | ||
| 184 | + <view class="label font24r">用餐日期</view> | ||
| 185 | + <view class="contentData">{{seller.date}}</view> | ||
| 186 | + </view> | ||
| 187 | + <view class="infoItem" wx:if="{{seller.tablesText}}"> | ||
| 188 | + <view class="label font24r">用餐位置</view> | ||
| 189 | + <view class="contentData">{{seller.tablesText}}</view> | ||
| 190 | + </view> | ||
| 191 | + <view class="infoItem" wx:if="{{seller.soltName}}"> | ||
| 192 | + <view class="label font24r">用餐时间</view> | ||
| 193 | + <view class="valueRow"> | ||
| 194 | + <view class="contentData">{{seller.soltName}}<text class="marLeft" wx:if="{{temp_ddate}}">{{temp_ddate}}</text></view> | ||
| 195 | + <picker wx:if="{{detail && options && options.isOrder != '1' && (detail.status =='1' || detail.status =='2') && options.hasSellerShare == '1'}}" bindchange="bindPickerChange" value="{{index}}" range="{{timeList}}"> | ||
| 196 | + <view class="miniBtn"> | ||
| 197 | + <image class="arrivalImg" src="https://qn.colorcun.com/editTimeIcon{{actionIcon}}.png" mode="" /><text>改时间</text> | ||
| 198 | + </view> | ||
| 199 | + </picker> | ||
| 200 | + </view> | ||
| 201 | + </view> | ||
| 202 | + <!-- 样式3:标签固定左侧,右侧内容折行 --> | ||
| 203 | + <block wx:if="{{StyleTypeNum == 3 || StyleTypeNum == '3'}}"> | ||
| 204 | + <view class="infoItem infoLine" wx:if="{{swich_phone!='0' && seller.tel && seller.tel.length>0}}"> | ||
| 205 | + <view class="label font24r">前台电话</view> | ||
| 206 | + <view class="contentData contentWithBtn infoRight"> | ||
| 207 | + <text wx:for="{{seller.tel}}" wx:key="index" data-phone="{{item}}" class="contentDataPhone" bindtap="call">{{index > 0 ? ' ' : ''}}{{item}}</text> | ||
| 208 | + <view class="miniBtn" data-phone="{{contactPhone || seller.tel[0]}}" bindtap="call"> | ||
| 209 | + <image src="https://qn.colorcun.com/contactMeIcon{{actionIcon}}.png" mode="" /><text>联系我</text> | ||
| 210 | + </view> | ||
| 211 | + </view> | ||
| 212 | + </view> | ||
| 213 | + <view class="infoItem infoLine" wx:if="{{seller.addr || (reserve.seller && reserve.seller.map_address)}}"> | ||
| 214 | + <view class="label font24r">餐厅地址</view> | ||
| 215 | + <view class="contentData contentWithBtn infoRight"> | ||
| 216 | + <text>{{seller.addr || reserve.seller.map_address}}</text> | ||
| 217 | + <view class="miniBtn" bindtap="looklocation"> | ||
| 218 | + <image class="addressImg" src="https://qn.colorcun.com/navigationIcon{{actionIcon}}.png" mode="aspectFill" /><text>导航</text> | ||
| 219 | + </view> | ||
| 220 | + </view> | ||
| 221 | + </view> | ||
| 222 | + </block> | ||
| 223 | + <block wx:else> | ||
| 224 | + <view class="infoItem" wx:if="{{swich_phone!='0' && seller.tel && seller.tel.length>0}}"> | ||
| 225 | + <view class="label font24r">前台电话</view> | ||
| 226 | + <block wx:if="{{seller.tel.length == 1}}"> | ||
| 227 | + <view class="phoneRow contentData" wx:for="{{seller.tel}}" wx:key="index"> | ||
| 228 | + <text data-phone="{{item}}" class="contentDataPhone" bindtap="call">{{item}}</text> | ||
| 229 | + <view class="miniBtn" data-phone="{{item}}" bindtap="call"> | ||
| 230 | + <image src="https://qn.colorcun.com/contactMeIcon{{actionIcon}}.png" mode="" /><text>联系我</text> | ||
| 231 | + </view> | ||
| 232 | + </view> | ||
| 233 | + </block> | ||
| 234 | + <block wx:else> | ||
| 235 | + <view class="contentData phoneMultiList"> | ||
| 236 | + <text wx:for="{{seller.tel}}" wx:key="index" data-phone="{{item}}" class="contentDataPhone phoneMultiItem" bindtap="call">{{item}}</text> | ||
| 237 | + </view> | ||
| 238 | + <view class="miniBtn phoneMultiBtn" wx:if="{{contactPhone}}" data-phone="{{contactPhone}}" bindtap="call"> | ||
| 239 | + <image src="https://qn.colorcun.com/contactMeIcon{{actionIcon}}.png" mode="" /><text>联系我</text> | ||
| 240 | + </view> | ||
| 241 | + </block> | ||
| 242 | + </view> | ||
| 243 | + <view class="infoItem" wx:if="{{seller.addr || (reserve.seller && reserve.seller.map_address)}}"> | ||
| 244 | + <view class="label font24r">餐厅地址</view> | ||
| 245 | + <view class="contentData contentWithBtn"> | ||
| 246 | + <text>{{seller.addr || reserve.seller.map_address}}</text> | ||
| 247 | + <view class="miniBtn" bindtap="looklocation"> | ||
| 248 | + <image class="addressImg" src="https://qn.colorcun.com/navigationIcon{{actionIcon}}.png" mode="aspectFill" /><text>导航</text> | ||
| 249 | + </view> | ||
| 250 | + </view> | ||
| 251 | + </view> | ||
| 252 | + </block> | ||
| 253 | + </block> | ||
| 254 | + </view> | ||
| 255 | + </view> | ||
| 256 | + <view class="entrance" wx:if="{{StyleTypeNum != '1'}}"> | ||
| 257 | + <view bindtap="sharesettingShop" class="entranceItem"> | ||
| 258 | + <image src="https://qn.colorcun.com/shopHomeIcon{{entranceIcon}}.png" mode="" /> | ||
| 259 | + <view class="font24r">商家主页</view> | ||
| 260 | + </view> | ||
| 261 | + <button wx:if="{{canShare}}" class="entranceItem" open-type="share"> | ||
| 262 | + <image src="https://qn.colorcun.com/forwardIcon{{entranceIcon}}.png" mode="" /> | ||
| 263 | + <view class="font24r">转发好友</view> | ||
| 264 | + </button> | ||
| 265 | + <view bindtap="cookbook" wx:if="{{options.hasSellerShare == '1' && detail.status !='4' && options.isOrder != '1' && hasValueOrder && detail.seller.is_open_order==1 && marketing.is_order=='1'}}" class="entranceItem"> | ||
| 266 | + <image src="https://qn.colorcun.com/advanceOrderIcon{{entranceIcon}}.png" mode="" /> | ||
| 267 | + <view class="font24r">提前点餐</view> | ||
| 268 | + </view> | ||
| 269 | + <button wx:if="{{canMeet && needLogin}}" bindtap="gotoLogin" data-types="2" class="entranceItem"> | ||
| 270 | + <image src="https://qn.colorcun.com/appointmentIcon{{entranceIcon}}.png" mode="" /> | ||
| 271 | + <view class="font24r">确认赴约</view> | ||
| 272 | + </button> | ||
| 273 | + <button wx:elif="{{canMeet}}" bindtap="confirmed" class="entranceItem"> | ||
| 274 | + <image src="https://qn.colorcun.com/appointmentIcon{{entranceIcon}}.png" mode="" /> | ||
| 275 | + <view class="font24r">确认赴约</view> | ||
| 276 | + </button> | ||
| 277 | + <view bindtap="evaluateFun" wx:if="{{is_comments=='1' && !is_user_comments}}" class="entranceItem entranceFeedback"> | ||
| 278 | + <image src="https://qn.colorcun.com/feedbackIcon{{entranceIcon}}.png" mode="" /> | ||
| 279 | + <view class="font24r">意见反馈</view> | ||
| 280 | + </view> | ||
| 281 | + </view> | ||
| 282 | + <view class="receptionBox" wx:if="{{reserve.swich_manager=='1' && staffinfo && (staffinfo.name || staffinfo.phone || staffinfo.photo || staffinfo.wechat)}}"> | ||
| 283 | + <view class="peopleInfo"> | ||
| 284 | + <image bindtap="lookImgs" wx:if="{{staffinfo.photo}}" data-url="{{staffinfo.photo}}" src="{{staffinfo.photo}}" class="headerimg" mode="aspectFill"></image> | ||
| 285 | + <view class="noHeaderimg" wx:else></view> | ||
| 286 | + <view class="peopleName font28r" wx:if="{{staffinfo.name}}">{{staffinfo.name}}</view> | ||
| 287 | + <view class="peopleRole font24r">{{staffinfo.position || '店长'}}</view> | ||
| 288 | + </view> | ||
| 289 | + <view class="handleInfo"> | ||
| 290 | + <view class="font32r title1">尊敬的贵宾您好!</view> | ||
| 291 | + <view class="font24r texts">很荣幸能为您提供专属接待和服务</view> | ||
| 292 | + <view class="contactBtns"> | ||
| 293 | + <view wx:if="{{staffinfo.phone}}" class="font24r brownFont" data-phone="{{staffinfo.phone}}" bindtap="call"> | ||
| 294 | + <image src="https://qn.colorcun.com/contactMeIcon{{actionIcon}}.png" mode="" /><text>联系我</text> | ||
| 295 | + </view> | ||
| 296 | + <view wx:if="{{staffinfo.wechat}}" class="font24r brownFont" bindtap="copyWeChat"> | ||
| 297 | + <image src="https://qn.colorcun.com/addWeChatIcon{{actionIcon}}.png" mode="" /><text>加微信</text> | ||
| 298 | + </view> | ||
| 299 | + </view> | ||
| 300 | + </view> | ||
| 301 | + </view> | ||
| 302 | + <text space="nbsp" wx:if="{{marketing.wecomle}}" class="style{{StyleTypeNum}} welcomeInfo font32r">{{marketing.wecomle}}</text> | ||
| 303 | + <view class="appointment" wx:if="{{customersList.length>0}}"> | ||
| 304 | + <view class="notifyTitle"> | ||
| 305 | + <text></text> | ||
| 306 | + <view class="font36r">已确认赴约</view><text></text> | ||
| 307 | + </view> | ||
| 308 | + <view class="notifyContent"> | ||
| 309 | + <view class="notifyItems" wx:for="{{customersList}}" wx:key="index"> | ||
| 310 | + <view class="imageBox"> | ||
| 311 | + <image src="{{item.headimgurl}}" mode="aspectFill" /> | ||
| 312 | + </view> | ||
| 313 | + <view class="font32r notifyText">{{item.nickname}}</view> | ||
| 314 | + </view> | ||
| 315 | + </view> | ||
| 316 | + </view> | ||
| 317 | + <view class="borderSty"> | ||
| 318 | + <view wx:if="{{roomimage && roomimage.length>0}}" class="roomSwiperWrap"> | ||
| 319 | + <swiper class="roomSwiper" indicator-dots="{{roomimage.length > 1}}" autoplay="{{roomimage.length > 1}}" interval="{{3000}}" circular="{{roomimage.length > 1}}" indicator-color="rgba(255,255,255,0.35)" indicator-active-color="#ffffff"> | ||
| 320 | + <swiper-item wx:for="{{roomimage}}" wx:key="index"> | ||
| 321 | + <view class="roomSlide" bindtap="lookImgs" data-url="{{item.url}}" data-imgs="{{urlsArr}}"> | ||
| 322 | + <image class="roomSlideImg" mode="aspectFill" src="{{item.url}}"></image> | ||
| 323 | + <view class="roomSlideName" wx:if="{{item.name}}">{{item.name}}</view> | ||
| 324 | + </view> | ||
| 325 | + </swiper-item> | ||
| 326 | + </swiper> | ||
| 327 | + </view> | ||
| 328 | + <view class="preferentialCoupon" wx:if="{{hasValueCertificate && marketing && coupon_dataList.length>0}}"> | ||
| 329 | + <view class="sectionTitle">专属优惠券</view> | ||
| 330 | + <template is="couponCard" data="{{list: coupon_dataList, seller: seller, detail: detail, StyleType: StyleType}}" /> | ||
| 331 | + </view> | ||
| 332 | + <view class="publicModule" wx:if="{{(hasValueRecharge && marketing.is_recharge=='1' && recharge_data.length>0) || (hasValueRecharge && marketing.is_link=='1')}}"> | ||
| 333 | + <view class="sectionTitle">会员充值优惠</view> | ||
| 334 | + <block wx:for="{{recharge_data}}" wx:key="id"> | ||
| 335 | + <view class="rechargeItems" bindtap="gotoVipRecharge" data-id="{{item.id}}"> | ||
| 336 | + <view class="rechargeTitle font36r">{{item.rname}}</view> | ||
| 337 | + <view class="limitation font24r" wx:if="{{item.priceInfo}}"> | ||
| 338 | + {{item.priceInfo}}{{(item.recharge_list.is_coupons=='0' && item.recharge_list.is_score=='0')?'。':';'}} | ||
| 339 | + </view> | ||
| 340 | + <view class="limitation font24r" wx:if="{{item.scoreInfo}}"> | ||
| 341 | + {{item.scoreInfo}}{{item.recharge_list.is_coupons=='0'?'。':';'}} | ||
| 342 | + </view> | ||
| 343 | + <view class="limitation font24r" wx:if="{{item.recharge_list.is_coupons=='1'}}"> | ||
| 344 | + 会员充值满{{item.recharge_money}}元赠送{{item.certificate}}。 | ||
| 345 | + </view> | ||
| 346 | + </view> | ||
| 347 | + </block> | ||
| 348 | + <view wx:if="{{hasValueRecharge && marketing.is_link=='1'}}" class="font24r favouredPolicy" bindtap="gotoFavourableList"> | ||
| 349 | + 点击了解更多会员优惠政策 | ||
| 350 | + </view> | ||
| 351 | + </view> | ||
| 352 | + <view class="sectionTitle" wx:if="{{showMerchantSpeak}}">商家有话说</view> | ||
| 353 | + <view class="reserveBox" wx:if="{{reserveData && (reserveData.title || reserveData.content)}}"> | ||
| 354 | + <view class="title font28r" wx:if="{{reserveData.title}}">{{reserveData.title}}</view> | ||
| 355 | + <block wx:for="{{reserveData.content}}" wx:key="index"> | ||
| 356 | + <image class="items" wx:if="{{item.type =='1'}}" src="{{item.content}}" bindtap="lookImgs" data-url="{{item.content}}" mode="widthFix" /> | ||
| 357 | + <text space="nbsp" class="items font28r" wx:if="{{item.type == '2'}}">{{item.content}}</text> | ||
| 358 | + </block> | ||
| 359 | + </view> | ||
| 360 | + <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)))}}"> | ||
| 361 | + <view class="titleInfo">{{store.title ? store.title : '餐厅介绍'}}</view> | ||
| 362 | + <image wx:if="{{marketing.logo}}" src="{{marketing.logo}}" bindtap="lookImgs" data-url="{{marketing.logo}}" mode="widthFix" /> | ||
| 363 | + <image wx:if="{{home.image}}" src="{{home.image}}" bindtap="lookImgs" data-url="{{home.image}}" class="homeImage" mode="widthFix"></image> | ||
| 364 | + <view class="labelBox" wx:if="{{store && !store.content && store.introduce && (!store.is_introduce || store.is_introduce!='0')}}"> | ||
| 365 | + <text space="nbsp" class="texts font28r">{{store.introduce}}</text> | ||
| 366 | + </view> | ||
| 367 | + <block wx:if="{{store.images && store.images.length>0 && (!store.is_images || store.is_images!='0')}}"> | ||
| 368 | + <block wx:for="{{store.images}}" wx:key="arryIndex" wx:for-index="arryIndex"> | ||
| 369 | + <image src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{store.images}}" mode="widthFix" /> | ||
| 370 | + </block> | ||
| 371 | + </block> | ||
| 372 | + <view class="labelBox" wx:if="{{store.content && store.content.length>0}}"> | ||
| 373 | + <template is="richText" data="{{content: store.content, imgs: '', textClass: 'font32r'}}" /> | ||
| 374 | + </view> | ||
| 375 | + </view> | ||
| 376 | + <view class="introduce" wx:if="{{signboard && ((signboard.swich=='1' && signboard.images && signboard.images.length>0) || (signboard.content && signboard.content.length>0))}}"> | ||
| 377 | + <view class="titleInfo">{{signboard.title ? signboard.title : '特色菜品'}}</view> | ||
| 378 | + <block wx:if="{{signboard.images && signboard.images.length>0}}"> | ||
| 379 | + <block wx:for="{{signboard.images}}" wx:key="arryIndex" wx:for-index="arryIndex"> | ||
| 380 | + <image src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{signboard.images}}" mode="widthFix" /> | ||
| 381 | + </block> | ||
| 382 | + </block> | ||
| 383 | + <view class="labelBox" wx:if="{{signboard.content && signboard.content.length>0}}"> | ||
| 384 | + <template is="richText" data="{{content: signboard.content, imgs: '', textClass: 'font32r'}}" /> | ||
| 385 | + </view> | ||
| 386 | + </view> | ||
| 387 | + <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))}}"> | ||
| 388 | + <view class="introduce"> | ||
| 389 | + <view class="titleInfo">{{chef.title ? chef.title : '主厨介绍'}}</view> | ||
| 390 | + <view class="labelBox" wx:if="{{chef.introduce && (!chef.is_introduce || chef.is_introduce!='0')}}"> | ||
| 391 | + <text class="texts" space="nbsp">{{chef.introduce}}</text> | ||
| 392 | + </view> | ||
| 393 | + <image wx:if="{{(!chef.is_images || chef.is_images!='0') && chef.image}}" src="{{chef.image}}" bindtap="lookImgs" data-url="{{chef.image}}" mode="widthFix" /> | ||
| 394 | + <view class="labelBox" wx:if="{{chef.content && chef.content.length>0}}"> | ||
| 395 | + <template is="richText" data="{{content: chef.content, imgs: '', textClass: 'font32r'}}" /> | ||
| 396 | + </view> | ||
| 397 | + </view> | ||
| 398 | + </block> | ||
| 399 | + <view class="introduce" wx:if="{{reserve && ((reserve.is_introduce_all=='1' && (reserve.park_info || (reserve.park_info_images && reserve.park_info_images.length>0))) || (reserve.content && reserve.content.length>0))}}"> | ||
| 400 | + <view class="sectionTitle">{{reserve.title ? reserve.title : '停车指引'}}</view> | ||
| 401 | + <block wx:if="{{!reserve.content || reserve.content.length == '0'}}"> | ||
| 402 | + <view class="labelBox" wx:if="{{reserve.park_info}}"> | ||
| 403 | + <text class="texts" space="nbsp">{{reserve.park_info}}</text> | ||
| 404 | + </view> | ||
| 405 | + <block wx:for="{{reserve.park_info_images}}" wx:key="arryIndex" wx:for-index="arryIndex"> | ||
| 406 | + <image src="{{item}}" bindtap="lookImgs" data-url="{{item}}" data-imgs="{{reserve.park_info_images}}" mode="widthFix" /> | ||
| 407 | + </block> | ||
| 408 | + </block> | ||
| 409 | + <view class="labelBox" wx:if="{{reserve.content && reserve.content.length>0}}"> | ||
| 410 | + <template is="richText" data="{{content: reserve.content, imgs: '', textClass: 'font32r'}}" /> | ||
| 411 | + </view> | ||
| 412 | + </view> | ||
| 413 | + <view class="vips businessBox"> | ||
| 414 | + <view class="businessBox"> | ||
| 415 | + 周到安排提供技术支持<text bindtap="call" data-phone="4000009690">4000009690</text>, | ||
| 416 | + <view bindtap="gotoJoinSeller" style="text-decoration: underline;">我是商家,我要试用</view> | ||
| 417 | + </view> | ||
| 418 | + </view> | ||
| 419 | + </view> | ||
| 420 | + <view class="{{(!marketing || (marketing.is_transpond!='1' && marketing.is_online_book!='1'))?'more more1':'more'}}" wx:if="{{showMoreTip}}"> | ||
| 421 | + <view class="moreText">滑动查看更多</view> | ||
| 422 | + <image src="https://qn.colorcun.com/jt1.png" mode="" /> | ||
| 423 | + </view> | ||
| 424 | + <view class="toastBox" wx:if="{{toastBool}}"> | ||
| 425 | + {{toastText}} | ||
| 426 | + </view> | ||
| 427 | + </view> | ||
| 428 | + </view> | ||
| 429 | + </scroll-view> | ||
| 430 | + <template is="actionBar" data="{{barWrapClass: 'flex-lr sharewidth', barShow: barShow, showMoreOnline: showMoreOnline, threeBtnMore: threeBtnMore, showMoreCall: showMoreCall, threeBtnCall: threeBtnCall, seller: seller, canPay: canPay, threeBtnPay: threeBtnPay, isOwner: isOwner, canShare: canShare, isOver: isOver, guestShareCls: guestShareCls, canMeet: canMeet, needLogin: needLogin}}" /> | ||
| 431 | +</view> | ||
| 432 | +<painter palette="{{wxml}}" style="position: absolute; top: -9999rpx;" bind:imgOK="onImgOK" /> | ||
| 433 | +<!-- 截屏提示弹窗 --> | ||
| 434 | +<template is="payModal" data="{{detail: detail, options: options, marketing: marketing, imgSrc: imgSrc}}" /> | ||
| 435 | +<!-- 领券弹窗(2~12 通用;13 保持页面内独立) --> | ||
| 436 | +<template is="couponModal" data="{{seller: seller, reserve: reserve, totalPrice: totalPrice, purePhoneNumber: purePhoneNumber, countDown: countDown}}" /> |
| 1 | +.pageBox { | ||
| 2 | + position: relative; | ||
| 3 | + width: 100%; | ||
| 4 | + height: 100vh; | ||
| 5 | + overflow: hidden; | ||
| 6 | +} | ||
| 7 | + | ||
| 8 | +.page-background { | ||
| 9 | + position: fixed; | ||
| 10 | + z-index: 0; | ||
| 11 | + top: -70rpx; | ||
| 12 | + right: -70rpx; | ||
| 13 | + bottom: -70rpx; | ||
| 14 | + left: -70rpx; | ||
| 15 | + overflow: hidden; | ||
| 16 | + pointer-events: none; | ||
| 17 | +} | ||
| 18 | + | ||
| 19 | +.page-blur-image { | ||
| 20 | + position: absolute; | ||
| 21 | + z-index: 0; | ||
| 22 | + left: 0; | ||
| 23 | + width: 100%; | ||
| 24 | + opacity: 1; | ||
| 25 | + filter: blur(72rpx); | ||
| 26 | + will-change: filter; | ||
| 27 | +} | ||
| 28 | + | ||
| 29 | +.prepared-bottom-strip { | ||
| 30 | + top: 0; | ||
| 31 | + height: 100%; | ||
| 32 | +} | ||
| 33 | + | ||
| 34 | +.source-bottom-crop { | ||
| 35 | + bottom: 0; | ||
| 36 | + height: 560%; | ||
| 37 | +} | ||
| 38 | + | ||
| 39 | +.scroll { | ||
| 40 | + position: relative; | ||
| 41 | + z-index: 1; | ||
| 42 | + box-sizing: border-box; | ||
| 43 | +} | ||
| 44 | + | ||
| 45 | +.scroll-wrap { | ||
| 46 | + position: relative; | ||
| 47 | + width: 100%; | ||
| 48 | +} | ||
| 49 | + | ||
| 50 | +.hero-image { | ||
| 51 | + position: absolute; | ||
| 52 | + z-index: 1; | ||
| 53 | + top: 0; | ||
| 54 | + left: 0; | ||
| 55 | + width: 100%; | ||
| 56 | + pointer-events: none; | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | +.page-theme-fade { | ||
| 60 | + position: absolute; | ||
| 61 | + z-index: 1; | ||
| 62 | + top: 0; | ||
| 63 | + left: 0; | ||
| 64 | + width: 100%; | ||
| 65 | + pointer-events: none; | ||
| 66 | +} | ||
| 67 | + | ||
| 68 | +.scroll-body { | ||
| 69 | + position: relative; | ||
| 70 | + z-index: 2; | ||
| 71 | + box-sizing: border-box; | ||
| 72 | + padding-bottom: 200rpx; | ||
| 73 | + color: #fff; | ||
| 74 | +} | ||
| 75 | + | ||
| 76 | +/* ========== 共用 UI ========== */ | ||
| 77 | + | ||
| 78 | +.appointment { | ||
| 79 | + padding: 0 40rpx 60rpx; | ||
| 80 | +} | ||
| 81 | + | ||
| 82 | +.notifyTitle { | ||
| 83 | + display: flex; | ||
| 84 | + align-items: center; | ||
| 85 | + justify-content: center; | ||
| 86 | + margin-bottom: 20rpx; | ||
| 87 | +} | ||
| 88 | + | ||
| 89 | +.notifyTitle text { | ||
| 90 | + width: 20rpx; | ||
| 91 | + height: 20rpx; | ||
| 92 | + background: #fff; | ||
| 93 | +} | ||
| 94 | + | ||
| 95 | +.notifyTitle view { | ||
| 96 | + font-family: "PingFang SC"; | ||
| 97 | + color: #fff; | ||
| 98 | + font-weight: 600; | ||
| 99 | + margin: 0 20rpx; | ||
| 100 | +} | ||
| 101 | + | ||
| 102 | +.notifyContent { | ||
| 103 | + display: flex; | ||
| 104 | + flex-wrap: wrap; | ||
| 105 | + justify-content: space-between; | ||
| 106 | +} | ||
| 107 | + | ||
| 108 | +.notifyItems { | ||
| 109 | + width: 49%; | ||
| 110 | + display: flex; | ||
| 111 | + align-items: center; | ||
| 112 | + margin-top: 20rpx; | ||
| 113 | +} | ||
| 114 | + | ||
| 115 | +.notifyItems .imageBox { | ||
| 116 | + width: 90rpx; | ||
| 117 | + height: 90rpx; | ||
| 118 | + border: 4rpx solid #cbcbcb; | ||
| 119 | + box-sizing: border-box; | ||
| 120 | + border-radius: 50%; | ||
| 121 | + flex-shrink: 0; | ||
| 122 | +} | ||
| 123 | + | ||
| 124 | +.notifyItems .imageBox image { | ||
| 125 | + width: 100%; | ||
| 126 | + height: 100%; | ||
| 127 | + border-radius: 50%; | ||
| 128 | + flex-shrink: 0; | ||
| 129 | +} | ||
| 130 | + | ||
| 131 | +.notifyText { | ||
| 132 | + margin-left: 14rpx; | ||
| 133 | + overflow: hidden; | ||
| 134 | + word-break: break-all; | ||
| 135 | + text-overflow: ellipsis; | ||
| 136 | + display: -webkit-box; | ||
| 137 | + -webkit-box-orient: vertical; | ||
| 138 | + -webkit-line-clamp: 1; | ||
| 139 | + color: #fff; | ||
| 140 | +} | ||
| 141 | + | ||
| 142 | +.more { | ||
| 143 | + height: 80rpx; | ||
| 144 | + width: 100%; | ||
| 145 | + position: fixed; | ||
| 146 | + bottom: 160rpx; | ||
| 147 | + display: flex; | ||
| 148 | + align-items: center; | ||
| 149 | + justify-content: center; | ||
| 150 | + flex-direction: column; | ||
| 151 | + background: rgba(0, 0, 0, .4); | ||
| 152 | +} | ||
| 153 | + | ||
| 154 | +.more1 { | ||
| 155 | + bottom: 40rpx; | ||
| 156 | +} | ||
| 157 | + | ||
| 158 | +.moreText { | ||
| 159 | + color: #fff; | ||
| 160 | +} | ||
| 161 | + | ||
| 162 | +.more image { | ||
| 163 | + width: 30rpx; | ||
| 164 | + height: 30rpx; | ||
| 165 | +} | ||
| 166 | + | ||
| 167 | +.marLeft { | ||
| 168 | + margin-left: 10rpx; | ||
| 169 | + font-family: "PingFang SC"; | ||
| 170 | + font-weight: 600; | ||
| 171 | + font-size: 40rpx; | ||
| 172 | + line-height: 56rpx; | ||
| 173 | +} | ||
| 174 | + | ||
| 175 | +.heroBlock { | ||
| 176 | + text-align: center; | ||
| 177 | + margin-bottom: 60rpx; | ||
| 178 | + padding: 0 40rpx; | ||
| 179 | +} | ||
| 180 | + | ||
| 181 | +.heroBlock.style2 { | ||
| 182 | + box-sizing: border-box; | ||
| 183 | + padding: 42rpx 32rpx 10rpx 32rpx; | ||
| 184 | + margin: 0 40rpx 0; | ||
| 185 | + border-radius: 20rpx; | ||
| 186 | + border: none; | ||
| 187 | + background: transparent; | ||
| 188 | +} | ||
| 189 | + | ||
| 190 | +.heroBlock.style3 { | ||
| 191 | + box-sizing: border-box; | ||
| 192 | + padding: 42rpx 0 0; | ||
| 193 | + margin: 0 40rpx 60rpx; | ||
| 194 | + border-radius: 20rpx; | ||
| 195 | + border: none; | ||
| 196 | + background: transparent; | ||
| 197 | +} | ||
| 198 | + | ||
| 199 | +.bgEditBar { | ||
| 200 | + display: flex; | ||
| 201 | + justify-content: center; | ||
| 202 | + align-items: flex-start; | ||
| 203 | + margin-bottom: 14rpx; | ||
| 204 | +} | ||
| 205 | + | ||
| 206 | +.bgEditBtn { | ||
| 207 | + box-sizing: border-box; | ||
| 208 | + min-width: 130rpx; | ||
| 209 | + height: 60rpx; | ||
| 210 | + border-radius: 30rpx; | ||
| 211 | + font-family: "PingFang SC"; | ||
| 212 | + font-weight: 500; | ||
| 213 | + font-size: 28rpx; | ||
| 214 | + line-height: 60rpx; | ||
| 215 | + text-align: center; | ||
| 216 | + text-shadow: none; | ||
| 217 | + border: 2rpx solid; | ||
| 218 | + background: rgba(0, 0, 0, .2); | ||
| 219 | + border-color: rgba(255, 255, 255, 0.5); | ||
| 220 | + padding: 0 20rpx; | ||
| 221 | +} | ||
| 222 | + | ||
| 223 | +.bgEditBtnChange { | ||
| 224 | + margin-right: 24rpx; | ||
| 225 | +} | ||
| 226 | + | ||
| 227 | +.bgEditSaveWrap { | ||
| 228 | + display: flex; | ||
| 229 | + flex-direction: column; | ||
| 230 | + align-items: center; | ||
| 231 | +} | ||
| 232 | + | ||
| 233 | +.bgEditBtnSave { | ||
| 234 | + color: #fff; | ||
| 235 | + line-height: 56rpx; | ||
| 236 | + display: flex; | ||
| 237 | + align-items: center; | ||
| 238 | + justify-content: center; | ||
| 239 | +} | ||
| 240 | + | ||
| 241 | +.bgEditBtnDisabled { | ||
| 242 | + opacity: 0.5; | ||
| 243 | +} | ||
| 244 | + | ||
| 245 | +.bgEditSaveTip { | ||
| 246 | + color: #fff; | ||
| 247 | + font-family: "PingFang SC"; | ||
| 248 | + font-weight: 400; | ||
| 249 | + font-size: 28rpx; | ||
| 250 | + line-height: 30rpx; | ||
| 251 | + text-shadow: none; | ||
| 252 | +} | ||
| 253 | + | ||
| 254 | +.bookInfo { | ||
| 255 | + text-align: left; | ||
| 256 | + border-radius: 20rpx; | ||
| 257 | + position: relative; | ||
| 258 | +} | ||
| 259 | + | ||
| 260 | +.borderSty { | ||
| 261 | + box-sizing: border-box; | ||
| 262 | + border-radius: 20rpx; | ||
| 263 | +} | ||
| 264 | + | ||
| 265 | +.infoItem { | ||
| 266 | + display: flex; | ||
| 267 | + flex-direction: column; | ||
| 268 | + align-items: flex-start; | ||
| 269 | + margin-bottom: 24rpx; | ||
| 270 | +} | ||
| 271 | + | ||
| 272 | +.label { | ||
| 273 | + flex-shrink: 0; | ||
| 274 | + margin: 0 0 6rpx; | ||
| 275 | + color: #ffffff; | ||
| 276 | + font-family: "PingFang SC"; | ||
| 277 | + font-weight: 400; | ||
| 278 | + font-size: 24rpx; | ||
| 279 | + line-height: 34rpx; | ||
| 280 | +} | ||
| 281 | + | ||
| 282 | +.contentData { | ||
| 283 | + font-family: "PingFang SC"; | ||
| 284 | + font-weight: 600; | ||
| 285 | + font-size: 40rpx; | ||
| 286 | + line-height: 56rpx; | ||
| 287 | + display: flex; | ||
| 288 | + align-items: center; | ||
| 289 | +} | ||
| 290 | + | ||
| 291 | +.contentData1 { | ||
| 292 | + font-size: 44rpx; | ||
| 293 | +} | ||
| 294 | + | ||
| 295 | +.texts1 { | ||
| 296 | + margin: 0 24rpx; | ||
| 297 | +} | ||
| 298 | + | ||
| 299 | +.contentData2 { | ||
| 300 | + font-size: 32rpx; | ||
| 301 | +} | ||
| 302 | + | ||
| 303 | +.contentData3 { | ||
| 304 | + margin-bottom: 50rpx; | ||
| 305 | +} | ||
| 306 | + | ||
| 307 | +.contentWithBtn { | ||
| 308 | + display: block; | ||
| 309 | + width: 100%; | ||
| 310 | +} | ||
| 311 | + | ||
| 312 | +.contentWithBtn>text, | ||
| 313 | +.contentDataPhone, | ||
| 314 | +.divider { | ||
| 315 | + display: inline; | ||
| 316 | + vertical-align: middle; | ||
| 317 | +} | ||
| 318 | + | ||
| 319 | +.contentWithBtn .miniBtn { | ||
| 320 | + display: inline-flex; | ||
| 321 | + vertical-align: middle; | ||
| 322 | + margin-left: 12rpx; | ||
| 323 | +} | ||
| 324 | + | ||
| 325 | +.phoneRow { | ||
| 326 | + display: flex; | ||
| 327 | + align-items: center; | ||
| 328 | + width: 100%; | ||
| 329 | +} | ||
| 330 | + | ||
| 331 | +.phoneRow .contentDataPhone { | ||
| 332 | + flex: 1; | ||
| 333 | + min-width: 0; | ||
| 334 | + margin-right: 20rpx; | ||
| 335 | +} | ||
| 336 | + | ||
| 337 | +.phoneRow .miniBtn { | ||
| 338 | + flex-shrink: 0; | ||
| 339 | +} | ||
| 340 | + | ||
| 341 | +.phoneMultiList { | ||
| 342 | + display: flex; | ||
| 343 | + flex-direction: column; | ||
| 344 | + align-items: flex-start; | ||
| 345 | + width: 100%; | ||
| 346 | +} | ||
| 347 | + | ||
| 348 | +.phoneMultiItem { | ||
| 349 | + display: block; | ||
| 350 | + line-height: 56rpx; | ||
| 351 | +} | ||
| 352 | + | ||
| 353 | +.phoneMultiBtn { | ||
| 354 | + margin-top: 16rpx; | ||
| 355 | +} | ||
| 356 | + | ||
| 357 | +.bookData { | ||
| 358 | + color: #ffffff; | ||
| 359 | + font-family: "PingFang SC"; | ||
| 360 | + font-weight: 500; | ||
| 361 | + font-size: 28rpx; | ||
| 362 | + line-height: 40rpx; | ||
| 363 | +} | ||
| 364 | + | ||
| 365 | +.valueRow { | ||
| 366 | + display: flex; | ||
| 367 | + align-items: center; | ||
| 368 | + width: 100%; | ||
| 369 | +} | ||
| 370 | + | ||
| 371 | +.valueRow .contentData { | ||
| 372 | + margin-right: 20rpx; | ||
| 373 | +} | ||
| 374 | + | ||
| 375 | +.miniBtn { | ||
| 376 | + flex-shrink: 0; | ||
| 377 | + display: inline-flex; | ||
| 378 | + align-items: center; | ||
| 379 | + justify-content: center; | ||
| 380 | + height: 48rpx; | ||
| 381 | + padding: 0 20rpx; | ||
| 382 | + font-size: 22rpx; | ||
| 383 | + line-height: 1; | ||
| 384 | + border-radius: 198rpx; | ||
| 385 | + background: transparent; | ||
| 386 | + border: 2rpx solid #ffffff; | ||
| 387 | + box-sizing: border-box; | ||
| 388 | + width: max-content; | ||
| 389 | +} | ||
| 390 | + | ||
| 391 | +.miniBtn text { | ||
| 392 | + font-weight: 600; | ||
| 393 | +} | ||
| 394 | + | ||
| 395 | +.titleInfo { | ||
| 396 | + color: #ffffff; | ||
| 397 | + font-family: "PingFang SC"; | ||
| 398 | + font-weight: 600; | ||
| 399 | + font-size: 32rpx; | ||
| 400 | + margin: 20rpx 0; | ||
| 401 | + text-align: center; | ||
| 402 | +} | ||
| 403 | + | ||
| 404 | +.miniBtn image { | ||
| 405 | + width: 24rpx; | ||
| 406 | + height: 24rpx; | ||
| 407 | + margin-right: 4rpx; | ||
| 408 | +} | ||
| 409 | + | ||
| 410 | +.valueRow .arrivalImg { | ||
| 411 | + width: 24rpx; | ||
| 412 | + height: 24rpx; | ||
| 413 | + margin: 0 4rpx 4rpx 0; | ||
| 414 | +} | ||
| 415 | + | ||
| 416 | +/* ========== 字体 ========== */ | ||
| 417 | + | ||
| 418 | +.heroTitle { | ||
| 419 | + font-family: "Noto Serif SC", "Songti SC", serif; | ||
| 420 | + font-weight: 700; | ||
| 421 | + font-size: 100rpx; | ||
| 422 | + letter-spacing: 8rpx; | ||
| 423 | +} | ||
| 424 | + | ||
| 425 | +.titleFont1 { | ||
| 426 | + font-family: "Noto Sans SC", "PingFang SC", sans-serif; | ||
| 427 | +} | ||
| 428 | + | ||
| 429 | +.titleFont2 { | ||
| 430 | + font-family: "Noto Serif SC", "Songti SC", serif; | ||
| 431 | +} | ||
| 432 | + | ||
| 433 | +.titleFont3 { | ||
| 434 | + font-family: "XuanZongTi", "SJxingkai-C", "Noto Serif SC", serif; | ||
| 435 | + font-weight: 400; | ||
| 436 | +} | ||
| 437 | + | ||
| 438 | +.titleSize1 { | ||
| 439 | + font-size: 100rpx; | ||
| 440 | +} | ||
| 441 | + | ||
| 442 | +.titleSize2 { | ||
| 443 | + font-size: 80rpx; | ||
| 444 | +} | ||
| 445 | + | ||
| 446 | +.titleSize3 { | ||
| 447 | + font-size: 60rpx; | ||
| 448 | +} | ||
| 449 | + | ||
| 450 | +.heroSeller { | ||
| 451 | + color: #fff; | ||
| 452 | + /* 店名:系统黑体,不依赖网络字库 */ | ||
| 453 | + font-family: "PingFang SC", "Heiti SC", "Source Han Sans SC", "Noto Sans CJK SC", sans-serif; | ||
| 454 | + font-weight: 700; | ||
| 455 | + font-size: 56rpx; | ||
| 456 | + line-height: 68rpx; | ||
| 457 | +} | ||
| 458 | + | ||
| 459 | +.shopFont1 { | ||
| 460 | + font-family: "PingFang SC", "Heiti SC", "Source Han Sans SC", "Noto Sans CJK SC", sans-serif; | ||
| 461 | +} | ||
| 462 | + | ||
| 463 | +/* 样式4店名:苹方;安卓无苹方时回退系统默认 */ | ||
| 464 | +.shopFontPing { | ||
| 465 | + font-family: "PingFang SC", "PingFang", "Heiti SC", sans-serif; | ||
| 466 | +} | ||
| 467 | + | ||
| 468 | +.shopSize1 { | ||
| 469 | + font-size: 56rpx; | ||
| 470 | + line-height: 68rpx; | ||
| 471 | +} | ||
| 472 | + | ||
| 473 | +.shopSize2 { | ||
| 474 | + font-size: 44rpx; | ||
| 475 | + line-height: 56rpx; | ||
| 476 | +} | ||
| 477 | + | ||
| 478 | +.shopSize3 { | ||
| 479 | + font-size: 32rpx; | ||
| 480 | + line-height: 44rpx; | ||
| 481 | +} | ||
| 482 | + | ||
| 483 | +.shopWrap { | ||
| 484 | + max-width: 90%; | ||
| 485 | + text-align: center; | ||
| 486 | + white-space: normal; | ||
| 487 | + word-break: break-all; | ||
| 488 | +} | ||
| 489 | + | ||
| 490 | +.heroSlogan { | ||
| 491 | + margin-top: 8rpx; | ||
| 492 | + color: #fff; | ||
| 493 | + font-family: "PingFang SC"; | ||
| 494 | + font-weight: 500; | ||
| 495 | + font-size: 28rpx; | ||
| 496 | + line-height: 40rpx; | ||
| 497 | +} | ||
| 498 | + | ||
| 499 | +/* ========== 入口 ========== */ | ||
| 500 | + | ||
| 501 | +.entrance { | ||
| 502 | + display: flex; | ||
| 503 | + flex-direction: column; | ||
| 504 | + position: absolute; | ||
| 505 | + right: 0; | ||
| 506 | + top: 16%; | ||
| 507 | + z-index: 200; | ||
| 508 | + border-radius: 198rpx; | ||
| 509 | + padding: 30rpx 8rpx; | ||
| 510 | +} | ||
| 511 | + | ||
| 512 | +.entrance image { | ||
| 513 | + width: 52rpx; | ||
| 514 | + height: 52rpx; | ||
| 515 | +} | ||
| 516 | + | ||
| 517 | +.entranceItem { | ||
| 518 | + display: flex; | ||
| 519 | + flex-direction: column; | ||
| 520 | + align-items: center; | ||
| 521 | + color: #fff; | ||
| 522 | + margin-bottom: 32rpx; | ||
| 523 | + padding: 0; | ||
| 524 | + line-height: 34rpx; | ||
| 525 | + background: transparent; | ||
| 526 | + font-family: "PingFang SC"; | ||
| 527 | + font-weight: 500; | ||
| 528 | + font-size: 24rpx; | ||
| 529 | + border: none; | ||
| 530 | +} | ||
| 531 | + | ||
| 532 | +.entranceItem::after { | ||
| 533 | + border: none; | ||
| 534 | +} | ||
| 535 | + | ||
| 536 | +.entranceItem:last-child { | ||
| 537 | + margin-bottom: 0; | ||
| 538 | +} | ||
| 539 | + | ||
| 540 | +.entranceItem view { | ||
| 541 | + color: #fff; | ||
| 542 | + font-family: "PingFang SC"; | ||
| 543 | + font-weight: 500; | ||
| 544 | + font-size: 24rpx; | ||
| 545 | + line-height: 34rpx; | ||
| 546 | + margin-top: 20rpx; | ||
| 547 | +} | ||
| 548 | + | ||
| 549 | +.style1 .heroTitle { | ||
| 550 | + margin-bottom: 20rpx; | ||
| 551 | +} | ||
| 552 | + | ||
| 553 | +.style2 .entrance, | ||
| 554 | +.style3 .entrance, | ||
| 555 | +.style4 .entrance { | ||
| 556 | + position: relative; | ||
| 557 | + right: auto; | ||
| 558 | + top: auto; | ||
| 559 | + flex-direction: row; | ||
| 560 | + flex-wrap: wrap; | ||
| 561 | + justify-content: space-between; | ||
| 562 | + align-items: center; | ||
| 563 | + box-sizing: border-box; | ||
| 564 | + padding: 28rpx 18rpx; | ||
| 565 | + border-radius: 24rpx; | ||
| 566 | + margin: 0 40rpx 60rpx; | ||
| 567 | + border: 2rpx solid transparent; | ||
| 568 | + background: transparent; | ||
| 569 | +} | ||
| 570 | + | ||
| 571 | +.style2 .entrance .entranceItem, | ||
| 572 | +.style3 .entrance .entranceItem, | ||
| 573 | +.style4 .entrance .entranceItem { | ||
| 574 | + margin: 0 18rpx; | ||
| 575 | + flex-shrink: 0; | ||
| 576 | + padding: 0; | ||
| 577 | +} | ||
| 578 | + | ||
| 579 | +/* ========== 样式2 ========== */ | ||
| 580 | + | ||
| 581 | +.style2 .heroTitle { | ||
| 582 | + display: none; | ||
| 583 | +} | ||
| 584 | + | ||
| 585 | +.style2 .bookInfo { | ||
| 586 | + text-align: center; | ||
| 587 | + margin: 24rpx 0 50rpx; | ||
| 588 | + background: transparent; | ||
| 589 | + border: none; | ||
| 590 | + padding: 0; | ||
| 591 | +} | ||
| 592 | + | ||
| 593 | +.bookWave { | ||
| 594 | + display: flex; | ||
| 595 | + align-items: center; | ||
| 596 | + justify-content: center; | ||
| 597 | + width: 100%; | ||
| 598 | + margin: 70rpx 0 70rpx; | ||
| 599 | +} | ||
| 600 | + | ||
| 601 | +.waveLine { | ||
| 602 | + width: 120rpx; | ||
| 603 | + height: 4rpx; | ||
| 604 | + background: #ffe6c5; | ||
| 605 | + flex-shrink: 0; | ||
| 606 | +} | ||
| 607 | + | ||
| 608 | +.waveBars { | ||
| 609 | + display: flex; | ||
| 610 | + align-items: center; | ||
| 611 | + height: 48rpx; | ||
| 612 | + margin: 0 16rpx; | ||
| 613 | +} | ||
| 614 | + | ||
| 615 | +.waveBar { | ||
| 616 | + width: 4rpx; | ||
| 617 | + margin: 0 6rpx; | ||
| 618 | + background: #ffe6c5; | ||
| 619 | + border-radius: 2rpx; | ||
| 620 | +} | ||
| 621 | + | ||
| 622 | +.waveBar:nth-child(1), | ||
| 623 | +.waveBar:nth-child(9) { | ||
| 624 | + height: 4rpx; | ||
| 625 | +} | ||
| 626 | + | ||
| 627 | +.waveBar:nth-child(2), | ||
| 628 | +.waveBar:nth-child(8) { | ||
| 629 | + height: 12rpx; | ||
| 630 | +} | ||
| 631 | + | ||
| 632 | +.waveBar:nth-child(3), | ||
| 633 | +.waveBar:nth-child(7) { | ||
| 634 | + height: 20rpx; | ||
| 635 | +} | ||
| 636 | + | ||
| 637 | +.waveBar:nth-child(4), | ||
| 638 | +.waveBar:nth-child(6) { | ||
| 639 | + height: 28rpx; | ||
| 640 | +} | ||
| 641 | + | ||
| 642 | +.waveBar:nth-child(5) { | ||
| 643 | + height: 36rpx; | ||
| 644 | +} | ||
| 645 | + | ||
| 646 | +.style2 .infoItem { | ||
| 647 | + align-items: center; | ||
| 648 | + margin-bottom: 28rpx; | ||
| 649 | +} | ||
| 650 | + | ||
| 651 | +.style2 .contentWithBtn { | ||
| 652 | + display: flex; | ||
| 653 | + flex-wrap: wrap; | ||
| 654 | + justify-content: center; | ||
| 655 | + align-items: center; | ||
| 656 | + text-align: center; | ||
| 657 | +} | ||
| 658 | + | ||
| 659 | +.style2 .contentWithBtn .miniBtn { | ||
| 660 | + margin-left: 12rpx; | ||
| 661 | + margin-top: 8rpx; | ||
| 662 | +} | ||
| 663 | + | ||
| 664 | +/* ========== 样式3 ========== */ | ||
| 665 | + | ||
| 666 | +.style3 .heroTitle { | ||
| 667 | + display: none; | ||
| 668 | +} | ||
| 669 | + | ||
| 670 | +.style3 .heroSeller, | ||
| 671 | +.style3 .heroSlogan { | ||
| 672 | + width: 100%; | ||
| 673 | + text-align: left; | ||
| 674 | +} | ||
| 675 | + | ||
| 676 | +.style3 .bookInfo { | ||
| 677 | + width: 100%; | ||
| 678 | + text-align: left; | ||
| 679 | + position: relative; | ||
| 680 | + box-sizing: border-box; | ||
| 681 | + margin: 36rpx 0 40rpx; | ||
| 682 | + background: transparent; | ||
| 683 | + border: none; | ||
| 684 | + padding: 0; | ||
| 685 | +} | ||
| 686 | + | ||
| 687 | +.style3 .infoItem { | ||
| 688 | + align-items: center; | ||
| 689 | + flex-direction: row; | ||
| 690 | + width: 85%; | ||
| 691 | +} | ||
| 692 | + | ||
| 693 | +.style3 .contentData, | ||
| 694 | +.style3 .marLeft { | ||
| 695 | + font-size: 32rpx; | ||
| 696 | +} | ||
| 697 | + | ||
| 698 | +.style3 .label { | ||
| 699 | + margin-right: 20rpx; | ||
| 700 | + flex-shrink: 0; | ||
| 701 | +} | ||
| 702 | + | ||
| 703 | +.style3 .infoLine { | ||
| 704 | + align-items: baseline; | ||
| 705 | +} | ||
| 706 | + | ||
| 707 | +.style3 .infoLine .label { | ||
| 708 | + flex-shrink: 0; | ||
| 709 | + margin-right: 20rpx; | ||
| 710 | +} | ||
| 711 | + | ||
| 712 | +.style3 .infoLine .infoRight { | ||
| 713 | + flex: 1; | ||
| 714 | + min-width: 0; | ||
| 715 | + width: auto; | ||
| 716 | + display: block; | ||
| 717 | + line-height: 48rpx; | ||
| 718 | + text-align: left; | ||
| 719 | +} | ||
| 720 | + | ||
| 721 | +.style3 .infoLine .infoRight>text, | ||
| 722 | +.style3 .infoLine .infoRight .contentDataPhone { | ||
| 723 | + display: inline; | ||
| 724 | + vertical-align: baseline; | ||
| 725 | +} | ||
| 726 | + | ||
| 727 | +.style3 .infoLine .miniBtn { | ||
| 728 | + display: inline-flex; | ||
| 729 | + vertical-align: middle; | ||
| 730 | + margin-left: 12rpx; | ||
| 731 | + margin-top: 0; | ||
| 732 | +} | ||
| 733 | + | ||
| 734 | +.bookSideText { | ||
| 735 | + position: absolute; | ||
| 736 | + right: 20rpx; | ||
| 737 | + top: 8%; | ||
| 738 | + writing-mode: vertical-rl; | ||
| 739 | + font-family: "Noto Serif SC", "Songti SC", serif; | ||
| 740 | + font-weight: 700; | ||
| 741 | + font-size: 72rpx; | ||
| 742 | + letter-spacing: 12rpx; | ||
| 743 | + line-height: 1; | ||
| 744 | + background-image: linear-gradient(180deg, #ffe6c5 0%, #c7a17d 100%); | ||
| 745 | + -webkit-background-clip: text; | ||
| 746 | + background-clip: text; | ||
| 747 | + color: transparent; | ||
| 748 | + -webkit-text-fill-color: transparent; | ||
| 749 | + pointer-events: none; | ||
| 750 | +} | ||
| 751 | + | ||
| 752 | +.style3 .bookSideText { | ||
| 753 | + font-size: 100rpx; | ||
| 754 | +} | ||
| 755 | + | ||
| 756 | +/* ========== 样式4 ========== */ | ||
| 757 | + | ||
| 758 | +.style4 { | ||
| 759 | + text-align: left; | ||
| 760 | +} | ||
| 761 | + | ||
| 762 | +.style4 .heroSeller, | ||
| 763 | +.style4 .heroSlogan { | ||
| 764 | + display: none; | ||
| 765 | +} | ||
| 766 | + | ||
| 767 | +.style4 .heroTitle { | ||
| 768 | + text-align: left; | ||
| 769 | + margin-bottom: 16rpx; | ||
| 770 | +} | ||
| 771 | + | ||
| 772 | +.style4 .bookInfo { | ||
| 773 | + text-align: left; | ||
| 774 | + margin: 0 0 40rpx; | ||
| 775 | +} | ||
| 776 | + | ||
| 777 | +.style4 .bookInvite { | ||
| 778 | + margin: 12rpx 0 28rpx; | ||
| 779 | + font-family: "PingFang SC"; | ||
| 780 | + font-weight: 600; | ||
| 781 | + font-size: 40rpx; | ||
| 782 | + line-height: 56rpx; | ||
| 783 | + color: #fff; | ||
| 784 | +} | ||
| 785 | + | ||
| 786 | +.style4 .bookDivider { | ||
| 787 | + width: 100%; | ||
| 788 | + height: 2rpx; | ||
| 789 | + margin: 0 0 32rpx; | ||
| 790 | +} | ||
| 791 | + | ||
| 792 | +.style4 .style4Item { | ||
| 793 | + flex-direction: column; | ||
| 794 | + align-items: flex-start; | ||
| 795 | + margin-bottom: 32rpx; | ||
| 796 | +} | ||
| 797 | + | ||
| 798 | +.style4 .style4Item .label { | ||
| 799 | + margin: 0 0 8rpx; | ||
| 800 | + color: #fff; | ||
| 801 | +} | ||
| 802 | + | ||
| 803 | +.style4 .style4Item .contentWithBtn>text, | ||
| 804 | +.style4 .style4Item .contentWithBtn .contentDataPhone { | ||
| 805 | + display: inline; | ||
| 806 | + vertical-align: baseline; | ||
| 807 | + line-height: 60rpx; | ||
| 808 | +} | ||
| 809 | + | ||
| 810 | +.style4 .style4Item .miniBtn { | ||
| 811 | + display: inline-flex; | ||
| 812 | + vertical-align: middle; | ||
| 813 | + margin-left: 12rpx; | ||
| 814 | +} | ||
| 815 | + | ||
| 816 | +.style4 .placeBox { | ||
| 817 | + display: block; | ||
| 818 | + width: 100%; | ||
| 819 | +} | ||
| 820 | + | ||
| 821 | +.style4 .placeShop, | ||
| 822 | +.style4 .placeTable { | ||
| 823 | + display: block; | ||
| 824 | + width: 100%; | ||
| 825 | +} | ||
| 826 | + | ||
| 827 | +.style4 .timeBox { | ||
| 828 | + display: block; | ||
| 829 | + width: 100%; | ||
| 830 | +} | ||
| 831 | + | ||
| 832 | +.style4 .timeDate, | ||
| 833 | +.style4 .timeSlot { | ||
| 834 | + display: flex; | ||
| 835 | + width: 100%; | ||
| 836 | +} | ||
| 837 | + | ||
| 838 | +.style4 .timeDate, | ||
| 839 | +.style4 .placeShop, | ||
| 840 | +.style4 .placeTable, | ||
| 841 | +.style4 .timeSlot { | ||
| 842 | + line-height: 60rpx; | ||
| 843 | +} | ||
| 844 | + | ||
| 845 | +.style4 .heroTitle, | ||
| 846 | +.style4 .bookData, | ||
| 847 | +.style4 .bookInvite { | ||
| 848 | + color: #fff; | ||
| 849 | + -webkit-text-fill-color: #fff; | ||
| 850 | + background-image: none; | ||
| 851 | +} | ||
| 852 | + | ||
| 853 | +/* ========== 内容模块 ========== */ | ||
| 854 | + | ||
| 855 | +.receptionBox { | ||
| 856 | + display: flex; | ||
| 857 | + align-items: stretch; | ||
| 858 | + margin: 0 40rpx 60rpx; | ||
| 859 | + border-radius: 24rpx; | ||
| 860 | + padding: 40rpx 20rpx 40rpx 28rpx; | ||
| 861 | + background: transparent; | ||
| 862 | + border: none; | ||
| 863 | + color: #fff; | ||
| 864 | +} | ||
| 865 | + | ||
| 866 | +.peopleInfo { | ||
| 867 | + width: 160rpx; | ||
| 868 | + flex-shrink: 0; | ||
| 869 | + display: flex; | ||
| 870 | + flex-direction: column; | ||
| 871 | + align-items: center; | ||
| 872 | + text-align: center; | ||
| 873 | +} | ||
| 874 | + | ||
| 875 | +.headerimg, | ||
| 876 | +.noHeaderimg { | ||
| 877 | + width: 108rpx; | ||
| 878 | + height: 108rpx; | ||
| 879 | + border-radius: 50%; | ||
| 880 | + background: #ddd; | ||
| 881 | +} | ||
| 882 | + | ||
| 883 | +.peopleName { | ||
| 884 | + margin-top: 12rpx; | ||
| 885 | + color: #fff; | ||
| 886 | + font-weight: 600; | ||
| 887 | + line-height: 1.3; | ||
| 888 | + word-break: break-all; | ||
| 889 | +} | ||
| 890 | + | ||
| 891 | +.peopleRole { | ||
| 892 | + margin-top: 4rpx; | ||
| 893 | + color: #fff; | ||
| 894 | + line-height: 1.3; | ||
| 895 | +} | ||
| 896 | + | ||
| 897 | +.handleInfo { | ||
| 898 | + flex: 1; | ||
| 899 | + margin-left: 20rpx; | ||
| 900 | + display: flex; | ||
| 901 | + flex-direction: column; | ||
| 902 | + min-width: 0; | ||
| 903 | +} | ||
| 904 | + | ||
| 905 | +.title1 { | ||
| 906 | + font-weight: 600; | ||
| 907 | + color: #fff; | ||
| 908 | + line-height: 1.4; | ||
| 909 | +} | ||
| 910 | + | ||
| 911 | +.receptionBox .texts { | ||
| 912 | + margin-top: 8rpx; | ||
| 913 | + color: #fff; | ||
| 914 | + line-height: 1.5; | ||
| 915 | +} | ||
| 916 | + | ||
| 917 | +.contactBtns { | ||
| 918 | + display: flex; | ||
| 919 | + margin-top: auto; | ||
| 920 | + padding-top: 24rpx; | ||
| 921 | + justify-content: space-between; | ||
| 922 | +} | ||
| 923 | + | ||
| 924 | +.brownFont { | ||
| 925 | + width: 48%; | ||
| 926 | + height: 64rpx; | ||
| 927 | + border-radius: 999rpx; | ||
| 928 | + border: 2rpx solid #fff; | ||
| 929 | + color: #fff; | ||
| 930 | + background: transparent; | ||
| 931 | + display: flex; | ||
| 932 | + align-items: center; | ||
| 933 | + justify-content: center; | ||
| 934 | + box-sizing: border-box; | ||
| 935 | +} | ||
| 936 | + | ||
| 937 | +.brownFont image { | ||
| 938 | + width: 28rpx; | ||
| 939 | + height: 28rpx; | ||
| 940 | + margin-right: 8rpx; | ||
| 941 | +} | ||
| 942 | + | ||
| 943 | +.welcomeInfo { | ||
| 944 | + text-align: center; | ||
| 945 | + color: #fff; | ||
| 946 | + margin-bottom: 80rpx; | ||
| 947 | + display: block; | ||
| 948 | + font-weight: 600; | ||
| 949 | +} | ||
| 950 | + | ||
| 951 | +.roomSwiperWrap { | ||
| 952 | + width: 100%; | ||
| 953 | + padding: 0 20rpx; | ||
| 954 | + box-sizing: border-box; | ||
| 955 | + margin-bottom: 80rpx; | ||
| 956 | +} | ||
| 957 | + | ||
| 958 | +.roomSwiper { | ||
| 959 | + width: 100%; | ||
| 960 | + height: 480rpx; | ||
| 961 | + border-radius: 16rpx; | ||
| 962 | + overflow: hidden; | ||
| 963 | + box-sizing: border-box; | ||
| 964 | + border: 2rpx solid rgba(255, 255, 255, 0.35); | ||
| 965 | +} | ||
| 966 | + | ||
| 967 | +.roomSlide { | ||
| 968 | + position: relative; | ||
| 969 | + width: 100%; | ||
| 970 | + height: 100%; | ||
| 971 | +} | ||
| 972 | + | ||
| 973 | +.roomSlideImg { | ||
| 974 | + width: 100%; | ||
| 975 | + height: 100%; | ||
| 976 | + display: block; | ||
| 977 | +} | ||
| 978 | + | ||
| 979 | +.roomSlideName { | ||
| 980 | + position: absolute; | ||
| 981 | + left: 0; | ||
| 982 | + right: 0; | ||
| 983 | + bottom: 0; | ||
| 984 | + height: 80rpx; | ||
| 985 | + line-height: 80rpx; | ||
| 986 | + text-align: center; | ||
| 987 | + background: rgba(96, 96, 96, 0.92); | ||
| 988 | + color: #ffffff; | ||
| 989 | + font-family: "PingFang SC"; | ||
| 990 | + font-weight: 500; | ||
| 991 | + font-size: 32rpx; | ||
| 992 | + overflow: hidden; | ||
| 993 | + text-overflow: ellipsis; | ||
| 994 | + white-space: nowrap; | ||
| 995 | + padding: 0 24rpx; | ||
| 996 | + box-sizing: border-box; | ||
| 997 | +} | ||
| 998 | + | ||
| 999 | +.publicModule { | ||
| 1000 | + margin: 20rpx 0; | ||
| 1001 | + padding: 20rpx 0 40rpx; | ||
| 1002 | + border-radius: 20rpx; | ||
| 1003 | + display: flex; | ||
| 1004 | + align-items: center; | ||
| 1005 | + flex-direction: column; | ||
| 1006 | + color: #fff; | ||
| 1007 | +} | ||
| 1008 | + | ||
| 1009 | +.rechargeItems { | ||
| 1010 | + display: flex; | ||
| 1011 | + min-height: 160rpx; | ||
| 1012 | + border-radius: 20rpx; | ||
| 1013 | + border: 2rpx dashed #fff; | ||
| 1014 | + position: relative; | ||
| 1015 | + padding: 20rpx 40rpx; | ||
| 1016 | + flex-direction: column; | ||
| 1017 | + background: transparent; | ||
| 1018 | + margin: 0 20rpx 24rpx; | ||
| 1019 | + align-self: stretch; | ||
| 1020 | + box-sizing: border-box; | ||
| 1021 | +} | ||
| 1022 | + | ||
| 1023 | +.rechargeTitle { | ||
| 1024 | + font-weight: 600; | ||
| 1025 | + letter-spacing: 4rpx; | ||
| 1026 | + line-height: 50rpx; | ||
| 1027 | + font-family: "PingFang SC"; | ||
| 1028 | +} | ||
| 1029 | + | ||
| 1030 | +.limitation { | ||
| 1031 | + margin-top: 8rpx; | ||
| 1032 | + color: #fff; | ||
| 1033 | + font-family: "PingFang SC"; | ||
| 1034 | + font-weight: 500; | ||
| 1035 | + font-size: 24rpx; | ||
| 1036 | + line-height: 34rpx; | ||
| 1037 | +} | ||
| 1038 | + | ||
| 1039 | +.favouredPolicy { | ||
| 1040 | + margin-top: 16rpx; | ||
| 1041 | + color: #fff; | ||
| 1042 | + text-decoration: underline; | ||
| 1043 | +} | ||
| 1044 | + | ||
| 1045 | +.introduce, | ||
| 1046 | +.preferentialCoupon, | ||
| 1047 | +.reserveBox { | ||
| 1048 | + position: relative; | ||
| 1049 | + z-index: 2; | ||
| 1050 | +} | ||
| 1051 | + | ||
| 1052 | +.introduce { | ||
| 1053 | + box-sizing: border-box; | ||
| 1054 | + padding-bottom: 20rpx; | ||
| 1055 | + margin: 0 20rpx 20rpx; | ||
| 1056 | +} | ||
| 1057 | + | ||
| 1058 | +.introduce image, | ||
| 1059 | +.homeImage { | ||
| 1060 | + width: 100%; | ||
| 1061 | + margin-bottom: 20rpx; | ||
| 1062 | + display: block !important; | ||
| 1063 | + vertical-align: top; | ||
| 1064 | + box-sizing: border-box; | ||
| 1065 | +} | ||
| 1066 | + | ||
| 1067 | +.introduce image:nth-last-of-type(1) { | ||
| 1068 | + margin-bottom: 0; | ||
| 1069 | +} | ||
| 1070 | + | ||
| 1071 | +.labelBox { | ||
| 1072 | + width: 100%; | ||
| 1073 | + margin-top: 20rpx; | ||
| 1074 | +} | ||
| 1075 | + | ||
| 1076 | +.labelBox view, | ||
| 1077 | +.labelBox text, | ||
| 1078 | +.labelBox image { | ||
| 1079 | + margin-bottom: 20rpx !important; | ||
| 1080 | +} | ||
| 1081 | + | ||
| 1082 | +.texts { | ||
| 1083 | + line-height: 40rpx; | ||
| 1084 | + color: #fff; | ||
| 1085 | + font-family: PingFang SC; | ||
| 1086 | + font-weight: 500; | ||
| 1087 | + display: block; | ||
| 1088 | +} | ||
| 1089 | + | ||
| 1090 | +.reserveBox { | ||
| 1091 | + margin: 20rpx; | ||
| 1092 | +} | ||
| 1093 | + | ||
| 1094 | +.reserveBox .title { | ||
| 1095 | + margin-bottom: 20rpx; | ||
| 1096 | + color: #fff; | ||
| 1097 | + font-family: "PingFang SC"; | ||
| 1098 | + font-weight: 600; | ||
| 1099 | + line-height: 44rpx; | ||
| 1100 | +} | ||
| 1101 | + | ||
| 1102 | +.items { | ||
| 1103 | + width: 100%; | ||
| 1104 | + margin-bottom: 20rpx; | ||
| 1105 | + color: #fff; | ||
| 1106 | + font-family: PingFang SC; | ||
| 1107 | + display: block; | ||
| 1108 | +} | ||
| 1109 | + | ||
| 1110 | +.videoBox { | ||
| 1111 | + display: flex; | ||
| 1112 | + flex-wrap: wrap; | ||
| 1113 | + align-items: center; | ||
| 1114 | + justify-content: center; | ||
| 1115 | +} | ||
| 1116 | + | ||
| 1117 | +.videoBox video { | ||
| 1118 | + width: 100%; | ||
| 1119 | + box-sizing: border-box; | ||
| 1120 | +} | ||
| 1121 | + | ||
| 1122 | +.preferentialCoupon navigator { | ||
| 1123 | + margin: 0 20rpx; | ||
| 1124 | + box-sizing: border-box; | ||
| 1125 | +} | ||
| 1126 | + | ||
| 1127 | +.publicModule navigator { | ||
| 1128 | + width: 100%; | ||
| 1129 | +} | ||
| 1130 | + | ||
| 1131 | +.preferentialItems { | ||
| 1132 | + display: flex; | ||
| 1133 | + background: linear-gradient(180deg, #ffefd0 0%, #ffdc9b 100%); | ||
| 1134 | + margin-bottom: 20rpx; | ||
| 1135 | + min-height: 160rpx; | ||
| 1136 | + padding-bottom: 10rpx; | ||
| 1137 | + border-radius: 20rpx; | ||
| 1138 | +} | ||
| 1139 | + | ||
| 1140 | +.sectionTitle { | ||
| 1141 | + display: flex; | ||
| 1142 | + align-items: center; | ||
| 1143 | + justify-content: center; | ||
| 1144 | + align-self: stretch; | ||
| 1145 | + width: 100%; | ||
| 1146 | + box-sizing: border-box; | ||
| 1147 | + margin-bottom: 20rpx; | ||
| 1148 | + color: #ffffff; | ||
| 1149 | + font-family: "PingFang SC"; | ||
| 1150 | + font-weight: 600; | ||
| 1151 | + font-size: 40rpx; | ||
| 1152 | + line-height: 56rpx; | ||
| 1153 | +} | ||
| 1154 | + | ||
| 1155 | +.heroBlock .bookSectionTitle { | ||
| 1156 | + display: none; | ||
| 1157 | +} | ||
| 1158 | + | ||
| 1159 | +.sectionTitle::before { | ||
| 1160 | + content: ''; | ||
| 1161 | + flex: 1; | ||
| 1162 | + height: 2rpx; | ||
| 1163 | + margin-right: 24rpx; | ||
| 1164 | + background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.95)); | ||
| 1165 | +} | ||
| 1166 | + | ||
| 1167 | +.sectionTitle::after { | ||
| 1168 | + content: ''; | ||
| 1169 | + flex: 1; | ||
| 1170 | + height: 2rpx; | ||
| 1171 | + margin-left: 24rpx; | ||
| 1172 | + background: linear-gradient(to left, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.95)); | ||
| 1173 | +} | ||
| 1174 | + | ||
| 1175 | +.itemLeft { | ||
| 1176 | + width: 26%; | ||
| 1177 | + display: flex; | ||
| 1178 | + flex-direction: column; | ||
| 1179 | + justify-content: center; | ||
| 1180 | + position: relative; | ||
| 1181 | +} | ||
| 1182 | + | ||
| 1183 | +.itemRight { | ||
| 1184 | + width: 74%; | ||
| 1185 | + padding-right: 10rpx; | ||
| 1186 | + margin-left: 18rpx; | ||
| 1187 | + display: flex; | ||
| 1188 | + align-items: center; | ||
| 1189 | +} | ||
| 1190 | + | ||
| 1191 | +.couponLine { | ||
| 1192 | + margin: 24rpx 0 4rpx; | ||
| 1193 | + border-right: 2rpx dashed #f6231b; | ||
| 1194 | +} | ||
| 1195 | + | ||
| 1196 | +.discountText { | ||
| 1197 | + text-align: center; | ||
| 1198 | + color: #ffefc5; | ||
| 1199 | + border-radius: 6rpx; | ||
| 1200 | + font-family: PingFang SC; | ||
| 1201 | + background: #fd4d59; | ||
| 1202 | + width: max-content; | ||
| 1203 | + padding: 6rpx; | ||
| 1204 | + position: absolute; | ||
| 1205 | + left: 16rpx; | ||
| 1206 | + top: 12rpx; | ||
| 1207 | +} | ||
| 1208 | + | ||
| 1209 | +.discountText1 { | ||
| 1210 | + text-align: center; | ||
| 1211 | + border-radius: 6rpx; | ||
| 1212 | + font-family: PingFang SC; | ||
| 1213 | + background: transparent; | ||
| 1214 | + width: max-content; | ||
| 1215 | + padding: 2rpx 8rpx; | ||
| 1216 | + position: absolute; | ||
| 1217 | + left: 16rpx; | ||
| 1218 | + top: 12rpx; | ||
| 1219 | +} | ||
| 1220 | + | ||
| 1221 | +.discountText2 { | ||
| 1222 | + background: #fd4d59; | ||
| 1223 | + color: #fff; | ||
| 1224 | +} | ||
| 1225 | + | ||
| 1226 | +.discountText3 { | ||
| 1227 | + color: #fd4d59; | ||
| 1228 | + border: 2rpx solid #fd4d59; | ||
| 1229 | +} | ||
| 1230 | + | ||
| 1231 | +.priceText { | ||
| 1232 | + display: flex; | ||
| 1233 | + align-items: baseline; | ||
| 1234 | + justify-content: center; | ||
| 1235 | + font-family: PingFang SC; | ||
| 1236 | + color: #f6231b; | ||
| 1237 | + font-weight: 600; | ||
| 1238 | + font-size: 48rpx; | ||
| 1239 | + margin-top: 6rpx; | ||
| 1240 | +} | ||
| 1241 | + | ||
| 1242 | +.priceText text { | ||
| 1243 | + font-size: 48rpx; | ||
| 1244 | +} | ||
| 1245 | + | ||
| 1246 | +.icons { | ||
| 1247 | + color: #f6231b; | ||
| 1248 | + text-align: center; | ||
| 1249 | +} | ||
| 1250 | + | ||
| 1251 | +.btns { | ||
| 1252 | + margin: 24rpx 20rpx 0 0; | ||
| 1253 | + display: flex; | ||
| 1254 | + justify-content: space-evenly; | ||
| 1255 | + align-items: baseline; | ||
| 1256 | + flex-direction: column; | ||
| 1257 | + height: 90%; | ||
| 1258 | + flex: 1; | ||
| 1259 | +} | ||
| 1260 | + | ||
| 1261 | +.anameText { | ||
| 1262 | + font-weight: 600; | ||
| 1263 | + color: #894C16; | ||
| 1264 | +} | ||
| 1265 | + | ||
| 1266 | +.btnBox { | ||
| 1267 | + display: flex; | ||
| 1268 | + flex-direction: column; | ||
| 1269 | +} | ||
| 1270 | + | ||
| 1271 | +.orderingFood { | ||
| 1272 | + padding: 0 20rpx; | ||
| 1273 | + color: #fff; | ||
| 1274 | + border: none; | ||
| 1275 | + text-align: center; | ||
| 1276 | + border-radius: 20rpx; | ||
| 1277 | + line-height: 44rpx; | ||
| 1278 | + height: 44rpx; | ||
| 1279 | + width: max-content; | ||
| 1280 | + flex-shrink: 0; | ||
| 1281 | + background: #894C16; | ||
| 1282 | +} | ||
| 1283 | + | ||
| 1284 | +.orderingFood1 { | ||
| 1285 | + border: 2rpx solid #894C16 !important; | ||
| 1286 | + background: transparent !important; | ||
| 1287 | + color: #894C16 !important; | ||
| 1288 | + font-weight: 600; | ||
| 1289 | +} | ||
| 1290 | + | ||
| 1291 | +.orderingFood2 { | ||
| 1292 | + border: none !important; | ||
| 1293 | + background: #894C16 !important; | ||
| 1294 | + color: #fff !important; | ||
| 1295 | + font-weight: 400; | ||
| 1296 | + padding: 0 34rpx; | ||
| 1297 | +} | ||
| 1298 | + | ||
| 1299 | +.grantNum { | ||
| 1300 | + display: flex; | ||
| 1301 | + flex-direction: column; | ||
| 1302 | + align-items: center; | ||
| 1303 | + color: #c36607; | ||
| 1304 | + margin-top: 10rpx; | ||
| 1305 | +} | ||
| 1306 | + | ||
| 1307 | +.grantNum text { | ||
| 1308 | + color: #f6231b; | ||
| 1309 | + margin-right: 10rpx; | ||
| 1310 | +} | ||
| 1311 | + | ||
| 1312 | +.bottom { | ||
| 1313 | + margin-top: 4rpx; | ||
| 1314 | + width: 100%; | ||
| 1315 | + color: #c36607; | ||
| 1316 | + font-family: PingFang SC; | ||
| 1317 | + font-weight: 500; | ||
| 1318 | + display: -webkit-box; | ||
| 1319 | + word-break: break-all; | ||
| 1320 | + word-wrap: break-word; | ||
| 1321 | + overflow: hidden; | ||
| 1322 | + text-align: left; | ||
| 1323 | +} | ||
| 1324 | + | ||
| 1325 | +.nodate { | ||
| 1326 | + padding-left: 20rpx; | ||
| 1327 | +} | ||
| 1328 | + | ||
| 1329 | +.vips { | ||
| 1330 | + display: flex; | ||
| 1331 | + flex-direction: column; | ||
| 1332 | + justify-content: center; | ||
| 1333 | + align-items: center; | ||
| 1334 | + margin-bottom: 20rpx; | ||
| 1335 | +} | ||
| 1336 | + | ||
| 1337 | +.businessBox { | ||
| 1338 | + color: #fff; | ||
| 1339 | + font-size: 22rpx; | ||
| 1340 | + text-align: center; | ||
| 1341 | + font-family: PingFang SC; | ||
| 1342 | + display: flex; | ||
| 1343 | +} | ||
| 1344 | + | ||
| 1345 | +.businessBox text { | ||
| 1346 | + text-decoration: underline; | ||
| 1347 | +} | ||
| 1348 | + | ||
| 1349 | +.sharewidth { | ||
| 1350 | + position: fixed; | ||
| 1351 | + left: 0; | ||
| 1352 | + bottom: 0; | ||
| 1353 | + height: 160rpx; | ||
| 1354 | + padding: 0 40rpx; | ||
| 1355 | + box-sizing: border-box; | ||
| 1356 | + z-index: 100; | ||
| 1357 | + justify-content: space-between; | ||
| 1358 | + width: 100%; | ||
| 1359 | + background: #fff; | ||
| 1360 | +} | ||
| 1361 | + | ||
| 1362 | +.shareItem, | ||
| 1363 | +.moreBtn, | ||
| 1364 | +.paymenBtn { | ||
| 1365 | + width: inherit; | ||
| 1366 | + background: transparent; | ||
| 1367 | + color: #C48138; | ||
| 1368 | + border: 2rpx solid #C48138; | ||
| 1369 | + height: 80rpx; | ||
| 1370 | + border-radius: 42rpx; | ||
| 1371 | + font-weight: 600; | ||
| 1372 | + margin-right: 20rpx; | ||
| 1373 | + padding: 0; | ||
| 1374 | +} | ||
| 1375 | + | ||
| 1376 | +.threeBtn { | ||
| 1377 | + width: auto; | ||
| 1378 | + padding: 0 24rpx; | ||
| 1379 | + flex-shrink: 0; | ||
| 1380 | +} | ||
| 1381 | + | ||
| 1382 | +.shareItem { | ||
| 1383 | + margin-right: 0; | ||
| 1384 | + background: #C48138; | ||
| 1385 | + color: #fff; | ||
| 1386 | + animation-name: scaleDraw; | ||
| 1387 | + animation-timing-function: ease-in-out; | ||
| 1388 | + animation-iteration-count: infinite; | ||
| 1389 | + animation-duration: 2s; | ||
| 1390 | +} | ||
| 1391 | + | ||
| 1392 | +.shareItem1 { | ||
| 1393 | + padding: 0; | ||
| 1394 | + margin-right: 0; | ||
| 1395 | + background: #C48138; | ||
| 1396 | + color: #fff; | ||
| 1397 | + animation: none; | ||
| 1398 | +} | ||
| 1399 | + | ||
| 1400 | +.paymenBtn1 { | ||
| 1401 | + margin-right: 20rpx; | ||
| 1402 | +} | ||
| 1403 | + | ||
| 1404 | +@keyframes scaleDraw { | ||
| 1405 | + 0% { | ||
| 1406 | + transform: scale(1); | ||
| 1407 | + } | ||
| 1408 | + | ||
| 1409 | + 25% { | ||
| 1410 | + transform: scale(1.1); | ||
| 1411 | + } | ||
| 1412 | + | ||
| 1413 | + 50% { | ||
| 1414 | + transform: scale(1); | ||
| 1415 | + } | ||
| 1416 | + | ||
| 1417 | + 75% { | ||
| 1418 | + transform: scale(1.1); | ||
| 1419 | + } | ||
| 1420 | +} | ||
| 1421 | + | ||
| 1422 | +.musicImg { | ||
| 1423 | + width: 62rpx; | ||
| 1424 | + height: 62rpx; | ||
| 1425 | + position: fixed !important; | ||
| 1426 | + right: 8%; | ||
| 1427 | + top: 22%; | ||
| 1428 | + z-index: 300; | ||
| 1429 | +} | ||
| 1430 | + | ||
| 1431 | +.giftImg { | ||
| 1432 | + width: 108rpx; | ||
| 1433 | + height: 116rpx; | ||
| 1434 | + position: fixed !important; | ||
| 1435 | + right: 4%; | ||
| 1436 | + top: 28%; | ||
| 1437 | + z-index: 300; | ||
| 1438 | + transform-origin: 50% 100%; | ||
| 1439 | +} | ||
| 1440 | + | ||
| 1441 | +.giftImg1 { | ||
| 1442 | + transform: scale(0); | ||
| 1443 | +} | ||
| 1444 | + | ||
| 1445 | +.cannotImg { | ||
| 1446 | + width: 200rpx; | ||
| 1447 | + height: 66rpx; | ||
| 1448 | + transform: rotate(-45deg); | ||
| 1449 | + position: fixed; | ||
| 1450 | + left: 38%; | ||
| 1451 | + z-index: 999; | ||
| 1452 | + top: 50%; | ||
| 1453 | +} | ||
| 1454 | + | ||
| 1455 | +.fullscreenMask { | ||
| 1456 | + position: fixed; | ||
| 1457 | + top: 35%; | ||
| 1458 | + margin: 0 auto; | ||
| 1459 | + height: 580rpx; | ||
| 1460 | + z-index: 100; | ||
| 1461 | + color: #fff; | ||
| 1462 | + display: flex; | ||
| 1463 | + align-items: center; | ||
| 1464 | + justify-content: center; | ||
| 1465 | + border-radius: 50%; | ||
| 1466 | + width: 100%; | ||
| 1467 | +} | ||
| 1468 | + | ||
| 1469 | +.fullscreenMask image { | ||
| 1470 | + width: 544rpx; | ||
| 1471 | + height: 600rpx; | ||
| 1472 | +} | ||
| 1473 | + | ||
| 1474 | +.targetPoint { | ||
| 1475 | + position: fixed; | ||
| 1476 | + width: 108rpx; | ||
| 1477 | + height: 116rpx; | ||
| 1478 | + background: transparent; | ||
| 1479 | + z-index: 100; | ||
| 1480 | +} | ||
| 1481 | + | ||
| 1482 | +.titleModal { | ||
| 1483 | + width: 100%; | ||
| 1484 | + color: #000; | ||
| 1485 | + font-family: PingFang SC; | ||
| 1486 | + font-weight: 500; | ||
| 1487 | + font-size: 44rpx; | ||
| 1488 | + text-align: center; | ||
| 1489 | + position: relative; | ||
| 1490 | +} | ||
| 1491 | + | ||
| 1492 | +.explain { | ||
| 1493 | + padding: 0 40rpx; | ||
| 1494 | + font-size: 30rpx; | ||
| 1495 | + color: #000; | ||
| 1496 | + line-height: 40rpx; | ||
| 1497 | + text-align: center; | ||
| 1498 | +} | ||
| 1499 | + | ||
| 1500 | +.screenshotBtns { | ||
| 1501 | + width: 100%; | ||
| 1502 | + display: flex; | ||
| 1503 | + justify-content: space-between; | ||
| 1504 | + box-sizing: border-box; | ||
| 1505 | + padding: 52rpx 22rpx 0; | ||
| 1506 | +} | ||
| 1507 | + | ||
| 1508 | +.btnsLeft, | ||
| 1509 | +.btnsRight { | ||
| 1510 | + width: 43%; | ||
| 1511 | + border-radius: 42rpx; | ||
| 1512 | + bottom: 10%; | ||
| 1513 | +} | ||
| 1514 | + | ||
| 1515 | +.btnsLeft { | ||
| 1516 | + background: #fff; | ||
| 1517 | + border: 2rpx solid #0346a5; | ||
| 1518 | + color: #0346a5; | ||
| 1519 | +} | ||
| 1520 | + | ||
| 1521 | +.btnsRight { | ||
| 1522 | + background: linear-gradient(104.24deg, #4c8dad -57.47%, #0143a3 55.72%, #42a5ff 148.72%); | ||
| 1523 | + color: #fff; | ||
| 1524 | +} | ||
| 1525 | + | ||
| 1526 | +#payModal { | ||
| 1527 | + display: flex; | ||
| 1528 | + align-items: center; | ||
| 1529 | +} | ||
| 1530 | + | ||
| 1531 | +.mymodal { | ||
| 1532 | + top: 30% !important; | ||
| 1533 | + width: 80% !important; | ||
| 1534 | + margin: 0 auto !important; | ||
| 1535 | + left: 0 !important; | ||
| 1536 | + right: 0 !important; | ||
| 1537 | +} | ||
| 1538 | + | ||
| 1539 | +.mymodal .mymodal-content { | ||
| 1540 | + height: auto !important; | ||
| 1541 | +} | ||
| 1542 | + | ||
| 1543 | +#couponModal .titleModal { | ||
| 1544 | + position: relative; | ||
| 1545 | + width: 544rpx; | ||
| 1546 | + background: #f14033; | ||
| 1547 | + border-top-left-radius: 20rpx; | ||
| 1548 | + border-top-right-radius: 20rpx; | ||
| 1549 | + margin: 94% auto 0; | ||
| 1550 | +} | ||
| 1551 | + | ||
| 1552 | +#couponModal .couponWrap { | ||
| 1553 | + position: relative; | ||
| 1554 | + width: 544rpx; | ||
| 1555 | + margin: 0 auto; | ||
| 1556 | + background: #f14033; | ||
| 1557 | + border-bottom-left-radius: 20rpx; | ||
| 1558 | + border-bottom-right-radius: 20rpx; | ||
| 1559 | +} | ||
| 1560 | + | ||
| 1561 | +#couponModal .mymodal-title { | ||
| 1562 | + padding: 0 80rpx; | ||
| 1563 | +} | ||
| 1564 | + | ||
| 1565 | +#couponModal .mymodal-content { | ||
| 1566 | + padding: 0 80rpx 40rpx; | ||
| 1567 | +} | ||
| 1568 | + | ||
| 1569 | +#couponModal .mymodal { | ||
| 1570 | + background: rgba(0, 0, 0, 0.8); | ||
| 1571 | + width: 100% !important; | ||
| 1572 | + top: 0 !important; | ||
| 1573 | + height: auto !important; | ||
| 1574 | + z-index: 300; | ||
| 1575 | +} | ||
| 1576 | + | ||
| 1577 | +.nameInfo { | ||
| 1578 | + font-family: PingFang SC; | ||
| 1579 | + font-weight: 500; | ||
| 1580 | + line-height: 38rpx; | ||
| 1581 | + color: #fff; | ||
| 1582 | + margin-bottom: 28rpx; | ||
| 1583 | + text-align: center; | ||
| 1584 | + padding: 44rpx 30rpx 0; | ||
| 1585 | +} | ||
| 1586 | + | ||
| 1587 | +.couponTotal { | ||
| 1588 | + color: #fff; | ||
| 1589 | + font-family: PingFang SC; | ||
| 1590 | + font-weight: 500; | ||
| 1591 | + line-height: 48rpx; | ||
| 1592 | + padding-bottom: 16rpx; | ||
| 1593 | +} | ||
| 1594 | + | ||
| 1595 | +.counterText { | ||
| 1596 | + color: #ffc806; | ||
| 1597 | + font-weight: 600; | ||
| 1598 | + display: flex; | ||
| 1599 | + font-size: 100rpx; | ||
| 1600 | + align-items: flex-end; | ||
| 1601 | + justify-content: center; | ||
| 1602 | + margin: 16rpx 0; | ||
| 1603 | +} | ||
| 1604 | + | ||
| 1605 | +.couponInfo { | ||
| 1606 | + color: #fff; | ||
| 1607 | + text-align: center; | ||
| 1608 | + margin-bottom: 20rpx; | ||
| 1609 | + font-weight: 600; | ||
| 1610 | + display: flex; | ||
| 1611 | + flex-direction: column; | ||
| 1612 | + align-items: center; | ||
| 1613 | + line-height: 78rpx; | ||
| 1614 | +} | ||
| 1615 | + | ||
| 1616 | +.couponBtn { | ||
| 1617 | + width: 80%; | ||
| 1618 | + margin: 16rpx auto 20rpx; | ||
| 1619 | + background: #fff; | ||
| 1620 | + font-weight: 600; | ||
| 1621 | + text-align: center; | ||
| 1622 | + padding: 12rpx 0; | ||
| 1623 | + color: #f14033; | ||
| 1624 | + border-radius: 8rpx; | ||
| 1625 | + height: 60rpx; | ||
| 1626 | + line-height: 60rpx; | ||
| 1627 | + display: flex; | ||
| 1628 | + align-items: center; | ||
| 1629 | + justify-content: center; | ||
| 1630 | +} | ||
| 1631 | + | ||
| 1632 | +.couponBtn1 { | ||
| 1633 | + padding: 18rpx 0; | ||
| 1634 | + border-radius: 198rpx; | ||
| 1635 | + font-weight: 600; | ||
| 1636 | +} | ||
| 1637 | + | ||
| 1638 | +.couponText { | ||
| 1639 | + color: #fff; | ||
| 1640 | + text-decoration: underline; | ||
| 1641 | + text-align: center; | ||
| 1642 | + padding-bottom: 44rpx; | ||
| 1643 | + font-weight: 600; | ||
| 1644 | + letter-spacing: 2rpx; | ||
| 1645 | +} | ||
| 1646 | + | ||
| 1647 | +.closeImg { | ||
| 1648 | + width: 60rpx; | ||
| 1649 | + height: 60rpx; | ||
| 1650 | + position: absolute; | ||
| 1651 | + right: 6%; | ||
| 1652 | + top: 9%; | ||
| 1653 | + z-index: 250 !important; | ||
| 1654 | +} | ||
| 1655 | + | ||
| 1656 | +.closeBox { | ||
| 1657 | + margin-top: 20rpx; | ||
| 1658 | + color: #fff; | ||
| 1659 | + font-family: PingFang SC; | ||
| 1660 | + font-weight: 400; | ||
| 1661 | + display: flex; | ||
| 1662 | + align-items: center; | ||
| 1663 | + justify-content: center; | ||
| 1664 | +} | ||
| 1665 | + | ||
| 1666 | +/* ========== 主题色(置底,便于覆盖) ========== */ | ||
| 1667 | + | ||
| 1668 | +/* 1. 主题底色 + page-theme-fade */ | ||
| 1669 | + | ||
| 1670 | +.pagepearlWhite { | ||
| 1671 | + background-color: rgba(70, 68, 68, 1); | ||
| 1672 | +} | ||
| 1673 | + | ||
| 1674 | +.pagepearlWhite.style4 .bookDivider { | ||
| 1675 | + background: #fff; | ||
| 1676 | +} | ||
| 1677 | + | ||
| 1678 | +.pageturmeric { | ||
| 1679 | + background-color: #C4A26F; | ||
| 1680 | +} | ||
| 1681 | + | ||
| 1682 | +.pageturmeric .page-theme-fade { | ||
| 1683 | + background: linear-gradient(180deg, rgba(196, 162, 111, 0) 0%, rgba(196, 162, 111, 0.12) 70%, rgba(196, 162, 111, 0.55) 80%, #C4A26F 100%); | ||
| 1684 | +} | ||
| 1685 | + | ||
| 1686 | +.pagestoneGreen { | ||
| 1687 | + background-color: #45675A; | ||
| 1688 | +} | ||
| 1689 | + | ||
| 1690 | +.pagestoneGreen .page-theme-fade { | ||
| 1691 | + background: linear-gradient(180deg, rgba(69, 103, 90, 0) 0%, rgba(69, 103, 90, 0.12) 70%, rgba(69, 103, 90, 0.55) 80%, #45675a 100%); | ||
| 1692 | +} | ||
| 1693 | + | ||
| 1694 | +.pagelanCaiHe { | ||
| 1695 | + background-color: #076CDB; | ||
| 1696 | +} | ||
| 1697 | + | ||
| 1698 | +.pagelanCaiHe .page-theme-fade { | ||
| 1699 | + background: linear-gradient(180deg, rgba(7, 108, 219, 0) 0%, rgba(7, 108, 219, 0.12) 70%, rgba(7, 108, 219, 0.55) 80%, #076cdb 100%); | ||
| 1700 | +} | ||
| 1701 | + | ||
| 1702 | +.pageultramarine { | ||
| 1703 | + background-color: #335D89; | ||
| 1704 | +} | ||
| 1705 | + | ||
| 1706 | +.pageultramarine .page-theme-fade { | ||
| 1707 | + background: linear-gradient(180deg, rgba(51, 93, 137, 0) 0%, rgba(51, 93, 137, 0.12) 70%, rgba(51, 93, 137, 0.55) 80%, #335d89 100%); | ||
| 1708 | +} | ||
| 1709 | + | ||
| 1710 | +.pagechinaRed { | ||
| 1711 | + background-color: #C83F32; | ||
| 1712 | +} | ||
| 1713 | + | ||
| 1714 | +.pagechinaRed .page-theme-fade { | ||
| 1715 | + background: linear-gradient(180deg, rgba(200, 63, 50, 0) 0%, rgba(200, 63, 50, 0.12) 70%, rgba(200, 63, 50, 0.55) 80%, #c83f32 100%); | ||
| 1716 | +} | ||
| 1717 | + | ||
| 1718 | +.pagecrimson { | ||
| 1719 | + background-color: #791013; | ||
| 1720 | +} | ||
| 1721 | + | ||
| 1722 | +.pagecrimson .page-theme-fade { | ||
| 1723 | + background: linear-gradient(180deg, rgba(121, 16, 19, 0) 0%, rgba(121, 16, 19, 0.12) 70%, rgba(121, 16, 19, 0.55) 80%, #791013 100%); | ||
| 1724 | +} | ||
| 1725 | + | ||
| 1726 | +.pageblackBlueGradient { | ||
| 1727 | + background-color: #181716; | ||
| 1728 | +} | ||
| 1729 | + | ||
| 1730 | +.pageblackBlueGradient .page-theme-fade { | ||
| 1731 | + background: linear-gradient(180deg, rgba(24, 23, 22, 0) 0%, rgba(24, 23, 22, 0.12) 70%, rgba(24, 23, 22, 0.55) 80%, #181716 100%); | ||
| 1732 | +} | ||
| 1733 | + | ||
| 1734 | +/* 2. pagepearlWhite 组件覆盖 */ | ||
| 1735 | + | ||
| 1736 | +.pagepearlWhite .hero-image, | ||
| 1737 | +.isCustom .hero-image { | ||
| 1738 | + -webkit-mask-image: linear-gradient(to bottom, | ||
| 1739 | + #000000 0%, | ||
| 1740 | + #000000 66%, | ||
| 1741 | + rgba(0, 0, 0, .90) 74%, | ||
| 1742 | + rgba(0, 0, 0, .42) 88%, | ||
| 1743 | + transparent 100%); | ||
| 1744 | + mask-image: linear-gradient(to bottom, | ||
| 1745 | + #000000 0%, | ||
| 1746 | + #000000 66%, | ||
| 1747 | + rgba(0, 0, 0, .90) 74%, | ||
| 1748 | + rgba(0, 0, 0, .42) 88%, | ||
| 1749 | + transparent 100%); | ||
| 1750 | +} | ||
| 1751 | + | ||
| 1752 | +.pagepearlWhite.style1 .bookInfo { | ||
| 1753 | + box-sizing: border-box; | ||
| 1754 | + padding: 22rpx; | ||
| 1755 | + margin: 0 20rpx; | ||
| 1756 | +} | ||
| 1757 | + | ||
| 1758 | +.pagepearlWhite.style2 .bookInfo { | ||
| 1759 | + margin: 24rpx 0 0; | ||
| 1760 | +} | ||
| 1761 | + | ||
| 1762 | +.pagepearlWhite .entrance { | ||
| 1763 | + margin: 0 40rpx 24rpx; | ||
| 1764 | + box-sizing: border-box; | ||
| 1765 | +} | ||
| 1766 | + | ||
| 1767 | +.pagepearlWhite .receptionBox { | ||
| 1768 | + background: transparent; | ||
| 1769 | + border: none; | ||
| 1770 | +} | ||
| 1771 | + | ||
| 1772 | +/* 3. pageturmeric 覆盖 */ | ||
| 1773 | + | ||
| 1774 | +.pageturmeric .waveLine, | ||
| 1775 | +.pageturmeric .waveBar { | ||
| 1776 | + background: #815635; | ||
| 1777 | +} | ||
| 1778 | + | ||
| 1779 | +.pageturmeric .style4 .heroTitle, | ||
| 1780 | +.pageturmeric .style4 .bookData, | ||
| 1781 | +.pageturmeric .style4 .bookInvite { | ||
| 1782 | + color: #894C16; | ||
| 1783 | + -webkit-text-fill-color: #894C16; | ||
| 1784 | + background-image: none; | ||
| 1785 | +} | ||
| 1786 | + | ||
| 1787 | +.pageturmeric .style4 .style4Item .label { | ||
| 1788 | + color: #FFEFC5; | ||
| 1789 | +} | ||
| 1790 | + | ||
| 1791 | +.pageturmeric .style4 .style4Item .contentData, | ||
| 1792 | +.pageturmeric .style4 .style4Item .contentDataPhone { | ||
| 1793 | + color: #894C16; | ||
| 1794 | +} | ||
| 1795 | + | ||
| 1796 | +.pageturmeric .style4 .bookDivider { | ||
| 1797 | + background: rgba(137, 76, 22, 0.35); | ||
| 1798 | +} | ||
| 1799 | + | ||
| 1800 | +.pageturmeric .bookSideText { | ||
| 1801 | + background-image: linear-gradient(180deg, #c37a3a 0%, #894c16 100%); | ||
| 1802 | +} | ||
| 1803 | + | ||
| 1804 | +.pageturmeric .heroTitle { | ||
| 1805 | + background-image: linear-gradient(180deg, #c37a3a 0%, #894c16 100%); | ||
| 1806 | + -webkit-background-clip: text; | ||
| 1807 | + background-clip: text; | ||
| 1808 | + color: transparent; | ||
| 1809 | +} | ||
| 1810 | + | ||
| 1811 | +.pageturmeric .style2 .heroSeller, | ||
| 1812 | +.pageturmeric .style2 .heroSlogan, | ||
| 1813 | +.pageturmeric .style2 .bookData, | ||
| 1814 | +.pageturmeric .style2.welcomeInfo, | ||
| 1815 | +.pageturmeric .style3.welcomeInfo { | ||
| 1816 | + color: #894C16; | ||
| 1817 | +} | ||
| 1818 | + | ||
| 1819 | +.pageturmeric .entranceItem view { | ||
| 1820 | + color: #FFEFC5; | ||
| 1821 | +} | ||
| 1822 | + | ||
| 1823 | +.pageturmeric .scroll-body, | ||
| 1824 | +.pageturmeric .infoItem>.contentData:not(.bookData):not(.contentWithBtn), | ||
| 1825 | +.pageturmeric .valueRow>.contentData, | ||
| 1826 | +.pageturmeric .contentDataPhone, | ||
| 1827 | +.pageturmeric .divider, | ||
| 1828 | +.pageturmeric .contentWithBtn>text, | ||
| 1829 | +.pageturmeric .sectionTitle, | ||
| 1830 | +.pageturmeric .peopleName, | ||
| 1831 | +.pageturmeric .peopleRole, | ||
| 1832 | +.pageturmeric .title1, | ||
| 1833 | +.pageturmeric .receptionBox .texts, | ||
| 1834 | +.pageturmeric .limitation, | ||
| 1835 | +.pageturmeric .rechargeTitle { | ||
| 1836 | + color: #894C16; | ||
| 1837 | +} | ||
| 1838 | + | ||
| 1839 | +.pageturmeric .rechargeItems { | ||
| 1840 | + background: #FFEFC5; | ||
| 1841 | + border: none; | ||
| 1842 | +} | ||
| 1843 | + | ||
| 1844 | +.pageturmeric .bookData { | ||
| 1845 | + color: #fff; | ||
| 1846 | +} | ||
| 1847 | + | ||
| 1848 | +.pageturmeric .miniBtn { | ||
| 1849 | + background: #FFEFC5; | ||
| 1850 | + color: #894C16; | ||
| 1851 | + border: none; | ||
| 1852 | +} | ||
| 1853 | + | ||
| 1854 | +.pageturmeric .entranceFeedback { | ||
| 1855 | + padding: 12rpx 10rpx; | ||
| 1856 | + border-radius: 24rpx; | ||
| 1857 | + color: #894C16; | ||
| 1858 | +} | ||
| 1859 | + | ||
| 1860 | +.pageturmeric .receptionBox { | ||
| 1861 | + background: #FFEFC5; | ||
| 1862 | + border-color: transparent; | ||
| 1863 | + color: #894C16; | ||
| 1864 | + border: none; | ||
| 1865 | +} | ||
| 1866 | + | ||
| 1867 | +.pageturmeric .brownFont { | ||
| 1868 | + border-color: #894C16; | ||
| 1869 | + color: #894C16; | ||
| 1870 | + background: transparent; | ||
| 1871 | +} | ||
| 1872 | + | ||
| 1873 | +.pageturmeric .welcomeInfo { | ||
| 1874 | + color: #fff; | ||
| 1875 | + background-image: none; | ||
| 1876 | + -webkit-background-clip: border-box; | ||
| 1877 | + background-clip: border-box; | ||
| 1878 | +} | ||
| 1879 | + | ||
| 1880 | +.pageturmeric .sectionTitle::before { | ||
| 1881 | + background: linear-gradient(to right, rgba(137, 76, 22, 0), rgba(137, 76, 22, 0.95)); | ||
| 1882 | +} | ||
| 1883 | + | ||
| 1884 | +.pageturmeric .sectionTitle::after { | ||
| 1885 | + background: linear-gradient(to left, rgba(137, 76, 22, 0), rgba(137, 76, 22, 0.95)); | ||
| 1886 | +} | ||
| 1887 | + | ||
| 1888 | +.pageturmeric .moreBtn, | ||
| 1889 | +.pageturmeric .paymenBtn { | ||
| 1890 | + color: #894C16; | ||
| 1891 | + border-color: #894C16; | ||
| 1892 | + background: transparent; | ||
| 1893 | +} | ||
| 1894 | + | ||
| 1895 | +.pageturmeric .shareItem, | ||
| 1896 | +.pageturmeric .shareItem1 { | ||
| 1897 | + background: #894C16; | ||
| 1898 | + color: #fff; | ||
| 1899 | + border-color: transparent; | ||
| 1900 | +} | ||
| 1901 | + | ||
| 1902 | +/* 4. pagecolor 覆盖(非白非金彩系共用) */ | ||
| 1903 | + | ||
| 1904 | +.pagecolor.style4 .bookDivider { | ||
| 1905 | + background: linear-gradient(180deg, #ffe6c5 0%, #c7a17d 100%); | ||
| 1906 | +} | ||
| 1907 | + | ||
| 1908 | +.pagecolor .style4 .heroTitle, | ||
| 1909 | +.pagecolor .style4 .bookData, | ||
| 1910 | +.pagecolor .style4 .bookInvite { | ||
| 1911 | + background-image: linear-gradient(180deg, #ffe6c5 0%, #c7a17d 100%); | ||
| 1912 | + -webkit-background-clip: text; | ||
| 1913 | + background-clip: text; | ||
| 1914 | + color: transparent; | ||
| 1915 | + -webkit-text-fill-color: transparent; | ||
| 1916 | +} | ||
| 1917 | + | ||
| 1918 | +.pagecolor .heroTitle, | ||
| 1919 | +.pagecolor .infoItem>.contentData:not(.bookData):not(.contentWithBtn), | ||
| 1920 | +.pagecolor .valueRow>.contentData, | ||
| 1921 | +.pagecolor .contentDataPhone, | ||
| 1922 | +.pagecolor .divider, | ||
| 1923 | +.pagecolor .contentWithBtn>text, | ||
| 1924 | +.pagecolor .welcomeInfo, | ||
| 1925 | +.pagecolor .sectionTitle, | ||
| 1926 | +.pagecolor .style2 .heroSeller, | ||
| 1927 | +.pagecolor .style2 .heroSlogan, | ||
| 1928 | +.pagecolor .style2 .bookData, | ||
| 1929 | +.pagecolor .style2.welcomeInf, | ||
| 1930 | +.pagecolor .style3 .heroSeller, | ||
| 1931 | +.pagecolor .style3 .heroSlogan { | ||
| 1932 | + background-image: linear-gradient(180deg, #ffe6c5 0%, #c7a17d 100%); | ||
| 1933 | + -webkit-background-clip: text; | ||
| 1934 | + background-clip: text; | ||
| 1935 | + color: transparent; | ||
| 1936 | +} | ||
| 1937 | + | ||
| 1938 | +.pagecolor .style4 .style4Item .contentData { | ||
| 1939 | + width: 100%; | ||
| 1940 | + font-size: 40rpx; | ||
| 1941 | + line-height: 48rpx; | ||
| 1942 | + color: #fff !important; | ||
| 1943 | +} | ||
| 1944 | + | ||
| 1945 | +.pagecolor .rechargeTitle, | ||
| 1946 | +.pagecolor .limitation { | ||
| 1947 | + color: #894C16; | ||
| 1948 | +} | ||
| 1949 | + | ||
| 1950 | +.pagecolor .rechargeItems { | ||
| 1951 | + background: #ffefc5; | ||
| 1952 | +} | ||
| 1953 | + | ||
| 1954 | +.pagecolor .scroll-body { | ||
| 1955 | + color: #ffe6c5; | ||
| 1956 | +} | ||
| 1957 | + | ||
| 1958 | +.pagecolor .entranceItem view { | ||
| 1959 | + color: #ffe6c5; | ||
| 1960 | +} | ||
| 1961 | + | ||
| 1962 | +.pagecolor .bookData { | ||
| 1963 | + color: #fff; | ||
| 1964 | + background-image: none; | ||
| 1965 | + -webkit-background-clip: border-box; | ||
| 1966 | + background-clip: border-box; | ||
| 1967 | +} | ||
| 1968 | + | ||
| 1969 | +.pagecolor .miniBtn { | ||
| 1970 | + background: linear-gradient(180deg, #ffe6c5 0%, #c7a17d 100%); | ||
| 1971 | + border-color: transparent; | ||
| 1972 | + color: #000; | ||
| 1973 | + border: none; | ||
| 1974 | +} | ||
| 1975 | + | ||
| 1976 | +.pagecolor .entranceFeedback { | ||
| 1977 | + padding: 12rpx 10rpx; | ||
| 1978 | + border-radius: 24rpx; | ||
| 1979 | + color: #000; | ||
| 1980 | +} | ||
| 1981 | + | ||
| 1982 | +.pagecolor .receptionBox { | ||
| 1983 | + background: linear-gradient(180deg, #ffe6c5 0%, #c7a17d 100%); | ||
| 1984 | + border-color: transparent; | ||
| 1985 | + color: #000; | ||
| 1986 | + border: none; | ||
| 1987 | +} | ||
| 1988 | + | ||
| 1989 | +.pagecolor .peopleName, | ||
| 1990 | +.pagecolor .peopleRole, | ||
| 1991 | +.pagecolor .title1, | ||
| 1992 | +.pagecolor .receptionBox .texts { | ||
| 1993 | + color: #000; | ||
| 1994 | +} | ||
| 1995 | + | ||
| 1996 | +.pagecolor .brownFont { | ||
| 1997 | + border-color: #000; | ||
| 1998 | + color: #000; | ||
| 1999 | + background: transparent; | ||
| 2000 | +} | ||
| 2001 | + | ||
| 2002 | +.pagecolor .sectionTitle::before { | ||
| 2003 | + background: linear-gradient(to right, rgba(199, 161, 125, 0), rgba(199, 161, 125, 0.95)); | ||
| 2004 | +} | ||
| 2005 | + | ||
| 2006 | +.pagecolor .sectionTitle::after { | ||
| 2007 | + background: linear-gradient(to left, rgba(199, 161, 125, 0), rgba(199, 161, 125, 0.95)); | ||
| 2008 | +} | ||
| 2009 | + | ||
| 2010 | +.pagecolor .moreBtn, | ||
| 2011 | +.pagecolor .paymenBtn { | ||
| 2012 | + position: relative; | ||
| 2013 | + border: none; | ||
| 2014 | + background-image: linear-gradient(180deg, #ffe6c5 0%, #c7a17d 100%); | ||
| 2015 | + -webkit-background-clip: text; | ||
| 2016 | + background-clip: text; | ||
| 2017 | + color: transparent; | ||
| 2018 | + -webkit-text-fill-color: transparent; | ||
| 2019 | +} | ||
| 2020 | + | ||
| 2021 | +.pagecolor .moreBtn::after, | ||
| 2022 | +.pagecolor .paymenBtn::after { | ||
| 2023 | + content: ''; | ||
| 2024 | + position: absolute; | ||
| 2025 | + left: 0; | ||
| 2026 | + top: 0; | ||
| 2027 | + right: 0; | ||
| 2028 | + bottom: 0; | ||
| 2029 | + border-radius: 42rpx; | ||
| 2030 | + padding: 2rpx; | ||
| 2031 | + background: linear-gradient(180deg, #ffe6c5 0%, #c7a17d 100%); | ||
| 2032 | + -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); | ||
| 2033 | + -webkit-mask-composite: xor; | ||
| 2034 | + mask-composite: exclude; | ||
| 2035 | + pointer-events: none; | ||
| 2036 | + box-sizing: border-box; | ||
| 2037 | + border: none; | ||
| 2038 | + width: auto; | ||
| 2039 | + height: auto; | ||
| 2040 | + transform: none; | ||
| 2041 | +} | ||
| 2042 | + | ||
| 2043 | +.pagecolor .shareItem, | ||
| 2044 | +.pagecolor .shareItem1 { | ||
| 2045 | + background: linear-gradient(180deg, #ffe6c5 0%, #c7a17d 100%); | ||
| 2046 | + color: #000; | ||
| 2047 | + border-color: transparent; | ||
| 2048 | + border: none; | ||
| 2049 | +} | ||
| 2050 | + | ||
| 2051 | +.pagecolor .style4 .timeSlot>text, | ||
| 2052 | +.pagecolor .style4 .style4Item .contentWithBtn>text, | ||
| 2053 | +.pagecolor .style4 .style4Item .contentDataPhone { | ||
| 2054 | + background-image: none; | ||
| 2055 | + -webkit-background-clip: border-box; | ||
| 2056 | + background-clip: border-box; | ||
| 2057 | + color: #fff; | ||
| 2058 | + -webkit-text-fill-color: #fff; | ||
| 2059 | +} | ||
| 2060 | + | ||
| 2061 | +.pagecolor .style4 .miniBtn, | ||
| 2062 | +.pagecolor .style4 .miniBtn text { | ||
| 2063 | + color: #000; | ||
| 2064 | +} | ||
| 2065 | + | ||
| 2066 | +/* 5. isCustom 文字色覆盖(边框/背景见下方「版块边框背景」专区) */ | ||
| 2067 | + | ||
| 2068 | +.isCustom .waveLine, | ||
| 2069 | +.isCustom .waveBar { | ||
| 2070 | + background: #fff; | ||
| 2071 | +} | ||
| 2072 | + | ||
| 2073 | +.isCustom .style4 .heroTitle, | ||
| 2074 | +.isCustom .style4 .bookData, | ||
| 2075 | +.isCustom .style4 .bookInvite { | ||
| 2076 | + background-image: none; | ||
| 2077 | + color: #fff; | ||
| 2078 | + -webkit-text-fill-color: #fff; | ||
| 2079 | +} | ||
| 2080 | + | ||
| 2081 | +.isCustom .bookSideText { | ||
| 2082 | + background-image: none; | ||
| 2083 | + color: #fff; | ||
| 2084 | + -webkit-text-fill-color: #fff; | ||
| 2085 | +} | ||
| 2086 | + | ||
| 2087 | +/* ============================================================================ | ||
| 2088 | + * 版块边框 / 背景(集中配置,方便改 margin、padding) | ||
| 2089 | + * --------------------------------------------------------------------------- | ||
| 2090 | + * 样式1:主题色无边框无底;自定义 → bookInfo、borderSty | ||
| 2091 | + * 样式2:主题色 → entrance;自定义 → heroBlock.style2、entrance、borderSty | ||
| 2092 | + * 样式3:主题色 → entrance;自定义 → bookInfo、entrance、borderSty | ||
| 2093 | + * 样式4:主题色 → entrance;自定义 → heroBlock.style4、entrance、borderSty | ||
| 2094 | + * 全样式自定义:receptionBox 都要有底+渐变边框 | ||
| 2095 | + * ============================================================================ */ | ||
| 2096 | + | ||
| 2097 | +/* --- 渐变描边公用(主题色非金 entrance / 自定义版块) --- */ | ||
| 2098 | +.panelGradBorder::before, | ||
| 2099 | +.pagecolor.style2 .entrance::before, | ||
| 2100 | +.pagecolor.style3 .entrance::before, | ||
| 2101 | +.pagecolor.style4 .entrance::before, | ||
| 2102 | +.isCustom.style1 .bookInfo::before, | ||
| 2103 | +.isCustom.style1 .borderSty::before, | ||
| 2104 | +.isCustom.style2 .heroBlock.style2::before, | ||
| 2105 | +.isCustom.style2 .entrance::before, | ||
| 2106 | +.isCustom.style2 .borderSty::before, | ||
| 2107 | +.isCustom.style3 .bookInfo::before, | ||
| 2108 | +.isCustom.style3 .entrance::before, | ||
| 2109 | +.isCustom.style3 .borderSty::before, | ||
| 2110 | +.isCustom.style4 .heroBlock.style4::before, | ||
| 2111 | +.isCustom.style4 .entrance::before, | ||
| 2112 | +.isCustom.style4 .borderSty::before, | ||
| 2113 | +.isCustom .receptionBox::before { | ||
| 2114 | + content: ''; | ||
| 2115 | + position: absolute; | ||
| 2116 | + left: 0; | ||
| 2117 | + top: 0; | ||
| 2118 | + right: 0; | ||
| 2119 | + bottom: 0; | ||
| 2120 | + border-radius: inherit; | ||
| 2121 | + padding: 2rpx; | ||
| 2122 | + background: linear-gradient(180deg, #ffe6c5 0%, #c7a17d 100%); | ||
| 2123 | + -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); | ||
| 2124 | + -webkit-mask-composite: xor; | ||
| 2125 | + mask-composite: exclude; | ||
| 2126 | + pointer-events: none; | ||
| 2127 | + box-sizing: border-box; | ||
| 2128 | + z-index: 0; | ||
| 2129 | +} | ||
| 2130 | + | ||
| 2131 | +/* ========== 自定义 · 全样式 receptionBox ========== */ | ||
| 2132 | +.isCustom .receptionBox { | ||
| 2133 | + position: relative; | ||
| 2134 | + box-sizing: border-box; | ||
| 2135 | + background: rgba(0, 0, 0, 0.1); | ||
| 2136 | + border: none; | ||
| 2137 | + border-radius: 24rpx; | ||
| 2138 | + padding: 40rpx 20rpx 40rpx 28rpx; | ||
| 2139 | + margin: 0 40rpx 60rpx; | ||
| 2140 | + color: #fff; | ||
| 2141 | +} | ||
| 2142 | + | ||
| 2143 | +.isCustom .receptionBox .peopleName, | ||
| 2144 | +.isCustom .receptionBox .peopleRole, | ||
| 2145 | +.isCustom .receptionBox .title1, | ||
| 2146 | +.isCustom .receptionBox .texts { | ||
| 2147 | + color: #fff; | ||
| 2148 | +} | ||
| 2149 | + | ||
| 2150 | +/* ========== 样式1 ========== */ | ||
| 2151 | +/* 主题色:不加边框/背景 */ | ||
| 2152 | + | ||
| 2153 | +/* 自定义:bookInfo、borderSty */ | ||
| 2154 | +.isCustom.style1 .bookInfo, | ||
| 2155 | +.isCustom.style1 .borderSty { | ||
| 2156 | + position: relative; | ||
| 2157 | + box-sizing: border-box; | ||
| 2158 | + background: rgba(0, 0, 0, 0.1); | ||
| 2159 | + border: none; | ||
| 2160 | + border-radius: 20rpx; | ||
| 2161 | +} | ||
| 2162 | + | ||
| 2163 | +.isCustom.style1 .bookInfo { | ||
| 2164 | + padding: 22rpx; | ||
| 2165 | + margin: 60rpx 0 0 0; | ||
| 2166 | +} | ||
| 2167 | + | ||
| 2168 | +.style1 .bookInfo>.heroSlogan { | ||
| 2169 | + margin: 0 0 20rpx; | ||
| 2170 | + text-align: left; | ||
| 2171 | +} | ||
| 2172 | + | ||
| 2173 | +.isCustom.style1 .borderSty { | ||
| 2174 | + padding: 24rpx 0; | ||
| 2175 | + margin: 0 20rpx 0; | ||
| 2176 | +} | ||
| 2177 | + | ||
| 2178 | +/* ========== 样式2 ========== */ | ||
| 2179 | +/* 主题色:仅 entrance */ | ||
| 2180 | +.pageturmeric.style2 .entrance { | ||
| 2181 | + border: 2rpx solid #FFEFC5; | ||
| 2182 | + background: transparent; | ||
| 2183 | +} | ||
| 2184 | + | ||
| 2185 | +.pageturmeric.style2 .entrance::before { | ||
| 2186 | + display: none; | ||
| 2187 | +} | ||
| 2188 | + | ||
| 2189 | +.pagecolor.style2 .entrance { | ||
| 2190 | + border: none; | ||
| 2191 | + background: rgba(0, 0, 0, 0.1); | ||
| 2192 | +} | ||
| 2193 | + | ||
| 2194 | +/* 自定义:heroBlock.style2、entrance、borderSty */ | ||
| 2195 | +.isCustom.style2 .heroBlock.style2, | ||
| 2196 | +.isCustom.style2 .entrance, | ||
| 2197 | +.isCustom.style2 .borderSty { | ||
| 2198 | + position: relative; | ||
| 2199 | + box-sizing: border-box; | ||
| 2200 | + background: rgba(0, 0, 0, 0.1); | ||
| 2201 | + border: none; | ||
| 2202 | + border-radius: 20rpx; | ||
| 2203 | +} | ||
| 2204 | + | ||
| 2205 | +.isCustom.style2 .heroBlock.style2 { | ||
| 2206 | + padding: 42rpx 32rpx 10rpx 32rpx; | ||
| 2207 | + margin: 0 40rpx 80rpx; | ||
| 2208 | +} | ||
| 2209 | + | ||
| 2210 | +.isCustom.style2 .entrance { | ||
| 2211 | + border-radius: 24rpx; | ||
| 2212 | + padding: 28rpx 18rpx; | ||
| 2213 | + margin: 0 40rpx 60rpx; | ||
| 2214 | +} | ||
| 2215 | + | ||
| 2216 | +.isCustom.style2 .borderSty { | ||
| 2217 | + padding: 24rpx 0; | ||
| 2218 | + margin: 0 20rpx 60rpx; | ||
| 2219 | +} | ||
| 2220 | + | ||
| 2221 | +/* ========== 样式3 ========== */ | ||
| 2222 | +/* 主题色:仅 entrance */ | ||
| 2223 | +.pageturmeric.style3 .entrance { | ||
| 2224 | + border: 2rpx solid #FFEFC5; | ||
| 2225 | + background: transparent; | ||
| 2226 | +} | ||
| 2227 | + | ||
| 2228 | +.pageturmeric.style3 .entrance::before { | ||
| 2229 | + display: none; | ||
| 2230 | +} | ||
| 2231 | + | ||
| 2232 | +.pagecolor.style3 .entrance { | ||
| 2233 | + border: none; | ||
| 2234 | + background: rgba(0, 0, 0, 0.1); | ||
| 2235 | +} | ||
| 2236 | + | ||
| 2237 | +/* 自定义:bookInfo、entrance、borderSty */ | ||
| 2238 | +.isCustom.style3 .bookInfo, | ||
| 2239 | +.isCustom.style3 .entrance, | ||
| 2240 | +.isCustom.style3 .borderSty { | ||
| 2241 | + position: relative; | ||
| 2242 | + box-sizing: border-box; | ||
| 2243 | + background: rgba(0, 0, 0, 0.1); | ||
| 2244 | + border: none; | ||
| 2245 | + border-radius: 20rpx; | ||
| 2246 | +} | ||
| 2247 | + | ||
| 2248 | +.isCustom.style3 .bookInfo { | ||
| 2249 | + padding: 42rpx 22rpx 18rpx 22rpx; | ||
| 2250 | + margin-top: 60rpx; | ||
| 2251 | +} | ||
| 2252 | + | ||
| 2253 | +.isCustom.style3 .entrance { | ||
| 2254 | + border-radius: 24rpx; | ||
| 2255 | + padding: 28rpx 18rpx; | ||
| 2256 | + margin: 0 40rpx 60rpx; | ||
| 2257 | +} | ||
| 2258 | + | ||
| 2259 | +.isCustom.style3 .borderSty { | ||
| 2260 | + padding: 24rpx 0; | ||
| 2261 | + margin: 0 40rpx 60rpx; | ||
| 2262 | +} | ||
| 2263 | + | ||
| 2264 | +/* ========== 样式4 ========== */ | ||
| 2265 | +/* 主题色:仅 entrance */ | ||
| 2266 | +.pageturmeric.style4 .entrance { | ||
| 2267 | + border: 2rpx solid #FFEFC5; | ||
| 2268 | + background: transparent; | ||
| 2269 | +} | ||
| 2270 | + | ||
| 2271 | +.pageturmeric.style4 .entrance::before { | ||
| 2272 | + display: none; | ||
| 2273 | +} | ||
| 2274 | + | ||
| 2275 | +.pagecolor.style4 .entrance { | ||
| 2276 | + border: none; | ||
| 2277 | + background: rgba(0, 0, 0, 0.1); | ||
| 2278 | +} | ||
| 2279 | + | ||
| 2280 | +/* 自定义:heroBlock.style4、entrance、borderSty */ | ||
| 2281 | +.heroBlock.style1 .entrance { | ||
| 2282 | + margin: 0 12rpx 24rpx; | ||
| 2283 | +} | ||
| 2284 | + | ||
| 2285 | +.isCustom.style4 .heroBlock.style4, | ||
| 2286 | +.isCustom.style4 .entrance, | ||
| 2287 | +.isCustom.style4 .borderSty { | ||
| 2288 | + position: relative; | ||
| 2289 | + box-sizing: border-box; | ||
| 2290 | + background: rgba(0, 0, 0, 0.1); | ||
| 2291 | + border: none; | ||
| 2292 | + border-radius: 20rpx; | ||
| 2293 | +} | ||
| 2294 | + | ||
| 2295 | +.isCustom.style4 .heroBlock.style4 { | ||
| 2296 | + padding: 32rpx 22rpx 10rpx; | ||
| 2297 | + margin: 0 40rpx 60rpx; | ||
| 2298 | +} | ||
| 2299 | + | ||
| 2300 | +.isCustom.style4 .entrance { | ||
| 2301 | + border-radius: 24rpx; | ||
| 2302 | + padding: 28rpx 18rpx; | ||
| 2303 | + margin: 0 40rpx 60rpx; | ||
| 2304 | +} | ||
| 2305 | + | ||
| 2306 | +.isCustom.style4 .borderSty { | ||
| 2307 | + padding: 24rpx 0; | ||
| 2308 | + margin: 0 20rpx 60rpx; | ||
| 2309 | +} |
| @@ -59,7 +59,7 @@ Page({ | @@ -59,7 +59,7 @@ Page({ | ||
| 59 | if (recharge_list.is_price == '1') item.priceInfo = '会员充值满' + item.recharge_money + '元赠送' + item.recharge_list.price + '元余额'; | 59 | if (recharge_list.is_price == '1') item.priceInfo = '会员充值满' + item.recharge_money + '元赠送' + item.recharge_list.price + '元余额'; |
| 60 | if (recharge_list.is_score == '1') item.scoreInfo = '会员充值满' + item.recharge_money + '元赠送' + item.recharge_list.score + '积分'; | 60 | if (recharge_list.is_score == '1') item.scoreInfo = '会员充值满' + item.recharge_money + '元赠送' + item.recharge_list.score + '积分'; |
| 61 | if (recharge_list.is_coupons == '1' && recharge_list.coupons_names.length > 0) item.certificate = recharge_list.coupons_names.join('、'); | 61 | if (recharge_list.is_coupons == '1' && recharge_list.coupons_names.length > 0) item.certificate = recharge_list.coupons_names.join('、'); |
| 62 | - item.timeStr = util.unixtoTime(item.stime, 'YYYY-MM-DD') + ' - ' + util.unixtoTime(item.etime, 'YYYY-MM-DD') | 62 | + item.timeStr = (item.timeStr && item.timeStr) ? util.unixtoTime(item.stime, 'YYYY-MM-DD') + ' - ' + util.unixtoTime(item.etime, 'YYYY-MM-DD') : ''; |
| 63 | }) | 63 | }) |
| 64 | // 筛选出 未过期的 && 开启状态的充值活动 | 64 | // 筛选出 未过期的 && 开启状态的充值活动 |
| 65 | recharge_data = recharge_data.filter(item => { | 65 | recharge_data = recharge_data.filter(item => { |
| @@ -6,23 +6,58 @@ | @@ -6,23 +6,58 @@ | ||
| 6 | "miniprogram": { | 6 | "miniprogram": { |
| 7 | "list": [ | 7 | "list": [ |
| 8 | { | 8 | { |
| 9 | - "name": "免费券付费券付款页", | ||
| 10 | - "pathName": "pack-activity/pack/buyFreeCoupon", | ||
| 11 | - "query": "sid=4352", | 9 | + "name": "测试-----新邀请函入口页", |
| 10 | + "pathName": "pages/customer/detail_owner_invitation_new", | ||
| 11 | + "query": "id=3359188&hasInvitation=1&hasSellerShare=1&uid=", | ||
| 12 | + "launchMode": "default", | ||
| 13 | + "scene": null | ||
| 14 | + }, | ||
| 15 | + { | ||
| 16 | + "name": "新版邀请函背景色背景图", | ||
| 17 | + "pathName": "pack-invitation/pages/detail_owner_invitation14", | ||
| 18 | + "query": "id=3203230&tplid=undefined&onlineReserve=1&hasInvitation=1&hasSellerShare=1&isDeposit=1&isMeeting=1&paymentId=&showSex=2", | ||
| 19 | + "launchMode": "default", | ||
| 20 | + "scene": null | ||
| 21 | + }, | ||
| 22 | + { | ||
| 23 | + "name": "aibook", | ||
| 24 | + "pathName": "pages/customer/aiBook", | ||
| 25 | + "query": "", | ||
| 12 | "launchMode": "default", | 26 | "launchMode": "default", |
| 13 | "scene": null | 27 | "scene": null |
| 14 | }, | 28 | }, |
| 15 | { | 29 | { |
| 16 | "name": "4352-----新邀请函入口页", | 30 | "name": "4352-----新邀请函入口页", |
| 17 | "pathName": "pages/customer/detail_owner_invitation_new", | 31 | "pathName": "pages/customer/detail_owner_invitation_new", |
| 18 | - "query": "id=3206045&hasInvitation=1&hasSellerShare=&uid=7035&fromid=oB-xJ5NGdgXHM0Pdsq2kAf7z-n9k", | 32 | + "query": "id=3206045&hasInvitation=1&hasSellerShare=1&uid=7035", |
| 19 | "launchMode": "default", | 33 | "launchMode": "default", |
| 20 | "scene": null | 34 | "scene": null |
| 21 | }, | 35 | }, |
| 22 | { | 36 | { |
| 23 | - "name": "测试-----新邀请函入口页", | ||
| 24 | - "pathName": "pages/customer/detail_owner_invitation_new", | ||
| 25 | - "query": "id=3163225&hasInvitation=1&hasSellerShare=1&uid=", | 37 | + "name": "订个包间效果", |
| 38 | + "pathName": "pack-invitation/pages/detail_owner_invitation16", | ||
| 39 | + "query": "id=3206045&hasInvitation=1&hasSellerShare=1&uid=7035", | ||
| 40 | + "launchMode": "default", | ||
| 41 | + "scene": null | ||
| 42 | + }, | ||
| 43 | + { | ||
| 44 | + "name": "登陆", | ||
| 45 | + "pathName": "pages/customer/login", | ||
| 46 | + "query": "types=1", | ||
| 47 | + "launchMode": "default", | ||
| 48 | + "scene": null | ||
| 49 | + }, | ||
| 50 | + { | ||
| 51 | + "name": "效果图2", | ||
| 52 | + "pathName": "pack-invitation/pages/detail_owner_invitation15", | ||
| 53 | + "query": "", | ||
| 54 | + "launchMode": "default", | ||
| 55 | + "scene": null | ||
| 56 | + }, | ||
| 57 | + { | ||
| 58 | + "name": "免费券付费券付款页", | ||
| 59 | + "pathName": "pack-activity/pack/buyFreeCoupon", | ||
| 60 | + "query": "sid=8", | ||
| 26 | "launchMode": "default", | 61 | "launchMode": "default", |
| 27 | "scene": null | 62 | "scene": null |
| 28 | }, | 63 | }, |
| @@ -111,13 +146,6 @@ | @@ -111,13 +146,6 @@ | ||
| 111 | "scene": null | 146 | "scene": null |
| 112 | }, | 147 | }, |
| 113 | { | 148 | { |
| 114 | - "name": "登陆", | ||
| 115 | - "pathName": "pages/customer/login", | ||
| 116 | - "query": "", | ||
| 117 | - "launchMode": "default", | ||
| 118 | - "scene": null | ||
| 119 | - }, | ||
| 120 | - { | ||
| 121 | "name": "意见反馈", | 149 | "name": "意见反馈", |
| 122 | "pathName": "pages/pinglun/createOpinion", | 150 | "pathName": "pages/pinglun/createOpinion", |
| 123 | "query": "oid=392094&sellid=4352&sellName=14&types=1", | 151 | "query": "oid=392094&sellid=4352&sellName=14&types=1", |
-
Please register or login to post a comment