6674 lines
188 KiB
Vue
6674 lines
188 KiB
Vue
<template>
|
||
<view class="page">
|
||
<block v-if="(isdata)">
|
||
<header-nav-menu ref="headerNavMenu" :menu="nav_nemu"></header-nav-menu>
|
||
<scroll-view class='u-pa1 fix-titlenview-trans' scroll-y="true" :scroll-top="scposition" @scroll="scrolltoupper">
|
||
<view class="m-banner-ad">
|
||
<swiper :indicator-dots="false" autoplay="true" interval="3000" duration="300" @change="swiperImg">
|
||
<swiper-item v-for="(item, ii) in ProductInfo.productPicList" :key="ii">
|
||
<view class="no_goods" v-if="product_freight_info.if_store==0">
|
||
<view class="no_shadow"></view>
|
||
<text class="no_goods_tip">{{ __('售罄,补货中') }}</text>
|
||
</view>
|
||
<image lazy-load class="slide-image" mode="aspectFill" :src="(item.Path)" :data-src="(item.Path)" @click="previewProductImg" />
|
||
</swiper-item>
|
||
</swiper>
|
||
<navigator v-if="(ProductInfo.product_video)" :url="ProductInfo.pv_url" class="video">
|
||
<image lazy-load src="/static/images/play.png" style="width:100rpx;height:100rpx"></image>
|
||
</navigator>
|
||
<view class="indicator-point" v-if="ProductInfo.productPicList.length">
|
||
{{ currentSwipperImageIndex }}/{{ ProductInfo.productPicList.length }}
|
||
</view>
|
||
|
||
<view class="u-p-opt">
|
||
<view style='position:relative'>
|
||
<view :class="'navtext'" @click="PDCollection" :data-id="(ProductInfo.item_id)" v-if="false">
|
||
<view class="quicknav">
|
||
<view :class="['iconfont', isCollection?'icon-favoritesfilling':'icon-favorite', isCollection?' highlight ':'']"></view>
|
||
</view>
|
||
</view>
|
||
<view :class="'navtext'" @click="addToWestore" :data-id="(ProductInfo.item_id)" v-if="Config.PLANTFORM_FX_WESTORE_ENABLE">
|
||
<view class="quicknav">
|
||
<view :class="['iconfont zc zc-add']"></view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view :class="['product-info', ProductInfo.activity_base_row ? 'activity-fixtop' : '']">
|
||
<view class="seckill" v-if="(ProductInfo.isShowCountdown || ProductInfo.is_pa)">
|
||
<view class="seckill-left">
|
||
<view class="discountPrice">{{ __('¥') }}
|
||
<text>{{ number_format(ProductInfo.ShowPrice, 2) }}</text>
|
||
<label class="m-price-tip" v-if="(ProductInfo.activityType=='GROUPBOOKING')">
|
||
{{ sprintf(__('%s人团省¥%s'), ProductInfo.UserLimit, number_format(ProductInfo.SavePrice)) }}
|
||
</label>
|
||
<text v-else class="m-info-delprice">
|
||
{{ __('¥') }} {{ number_format(ProductInfo.product_unit_price, 2) }}
|
||
</text>
|
||
</view>
|
||
</view>
|
||
<view class="seckill-right">
|
||
<view style="display: flex;flex-direction: row-reverse;">
|
||
<image lazy-load src="/static/images/seckill.png" v-if="ProductInfo.activityType!=='GROUPBOOKING'"></image>
|
||
<image lazy-load src="/static/images/groupbook.png" v-if="ProductInfo.activityType=='GROUPBOOKING'"></image>
|
||
</view>
|
||
<view class="Time">
|
||
<text style="margin-right: 5px;">{{ __('还剩') }}</text>
|
||
<text class="time">{{ hours }}</text>
|
||
<text class="time-tip">:</text>
|
||
<text class="time">{{ minutes }}</text>
|
||
<text class="time-tip">:</text>
|
||
<text class="time">{{ seconds }}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="m-cells" style="margin-top:0rpx" v-if="true">
|
||
<view class="m-cell m-info-box">
|
||
<view class="m-cell-bd">
|
||
<view class="m-info-price" v-if="!ProductInfo.isShowCountdown">
|
||
<block v-if="ProductInfo.ShowPrice">
|
||
<text>{{ __('¥') }}</text>
|
||
{{ number_format(ProductInfo.ShowPrice, 2) }}
|
||
<text class="m-info-delprice" v-if="(ProductInfo.activityType=='GROUPBOOKING')">
|
||
{{ __('¥') }}{{ number_format(ProductInfo.ItemSalePrice, 2) }}
|
||
</text>
|
||
</block>
|
||
|
||
<text class="m-info-delprice" v-if="(ProductInfo.MarketPrice) && !(ProductInfo.activityType=='GROUPBOOKING')">
|
||
{{ __('¥') }}{{ number_format(ProductInfo.MarketPrice, 2) }}
|
||
</text>
|
||
|
||
<block v-if="ProductInfo.item_unit_points">
|
||
<text style="margin-left: 20rpx;">+
|
||
<text style="font-size:32rpx">{{ ProductInfo.item_unit_points }}</text>
|
||
{{ __('积分') }}
|
||
</text>
|
||
</block>
|
||
|
||
<block v-if="ProductInfo.item_unit_sp">
|
||
<text style="margin-left: 20rpx;">+
|
||
<text style="font-size:32rpx">{{ ProductInfo.item_unit_sp }}</text>
|
||
{{ __('众宝') }}
|
||
</text>
|
||
</block>
|
||
|
||
<view class="tag-view" v-if="ProductInfo.item_rebate > 0">
|
||
<uni-tag :text="sprintf(__('返利¥%.2f'), number_format(ProductInfo.item_rebate, 2))" type="lancerdt" size="small" inverted="1" circle="true" data-type="groupbuy" style="height: 40rpx;line-height: 40rpx;"></uni-tag>
|
||
</view>
|
||
|
||
<view class="tag-view" v-if="ProductInfo.item_fx_cps > 0">
|
||
<uni-tag :text="sprintf(__('佣金¥%.2f'), number_format(ProductInfo.item_fx_cps, 2))" type="lancerdt" size="small" inverted="1" circle="true" data-type="groupbuy" style="height: 40rpx;line-height: 40rpx;"></uni-tag>
|
||
</view>
|
||
|
||
<view style="display: flex;flex-flow: column;">
|
||
<label class="m-price-tip" v-if="(ProductInfo.activityType=='GROUPBOOKING')">
|
||
{{ sprintf(__('%s人团省¥%s'), ProductInfo.UserLimit, number_format(ProductInfo.SavePrice, 2)) }}
|
||
</label>
|
||
<!--拼团倒计时-->
|
||
<view class="progressBarBox" v-if="(ProductInfo.activityType=='GROUPBOOKING')">
|
||
{{ __('距离结束还剩:') }}
|
||
<block v-if="(days>1)">
|
||
<text class="m-FGB-time">{{ days }}</text>
|
||
<text class="m-FGB-time-tip">{{ __('天') }}</text>
|
||
</block>
|
||
<block v-else>
|
||
<text class="m-FGB-time-tip">:</text>
|
||
<text class="m-FGB-time">{{ hours }}</text>
|
||
<text class="m-FGB-time-tip">:</text>
|
||
<text class="m-FGB-time">{{ minutes }}</text>
|
||
<text class="m-FGB-time-tip">:</text>
|
||
<text class="m-FGB-time">{{ seconds }}</text>
|
||
</block>
|
||
</view>
|
||
</view>
|
||
|
||
|
||
<view class="progressBarBox" v-if="(ProductInfo.activityType=='GROUPBOOKING' && isJoin)">
|
||
<view class="progressBarBox-content">
|
||
<label :style="'width:' + ((ProductInfo.UserNum/ProductInfo.UserLimit)*100) + '%'"></label>
|
||
<view class="progressBarBox-text">
|
||
<text>
|
||
{{ sprintf(__('还差%s人成团'), ProductInfo.UserLimit - ProductInfo.UserNum) }}
|
||
</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<!--拼团倒计时-->
|
||
|
||
<block v-if="plantformInfo.config.product_salenum_flag">
|
||
<view class="selled" v-if="(ProductInfo.is_virtual && ProductInfo.analytics_row && ProductInfo.analytics_row.product_sale_num>0)">
|
||
<view class="num">{{ __('已服务') }}
|
||
<text style="color:red">{{ ProductInfo.analytics_row.product_sale_num || 0 }}</text>
|
||
{{ __('人次') }}
|
||
</view>
|
||
</view>
|
||
<view class="selled" v-if="(!ProductInfo.is_virtual && ProductInfo.analytics_row && ProductInfo.analytics_row.product_sale_num>0)">
|
||
<view class="num">{{ __('已售') }}
|
||
<text style="color:red;margin-left: 2px;">
|
||
{{ ProductInfo.analytics_row.product_sale_num || 0 }}
|
||
</text>
|
||
{{ __('') }}
|
||
</view>
|
||
</view>
|
||
</block>
|
||
<view class="favorite-share">
|
||
<label @click="PDCollection" :data-id="(ProductInfo.item_id)" :class="['iconfont', isCollection?'icon-favoritesfilling':'icon-favorite', isCollection?' highlight ':'']">
|
||
</label>
|
||
<label class="iconfont zc zc-share" @click='onShareBox(1)'></label>
|
||
</view>
|
||
</view>
|
||
<view class="name-box">
|
||
<view class="m-info-name" style="font-weight: bold;">{{ ProductInfo.product_name }}</view>
|
||
<view class="favorite-share" v-if="(ProductInfo.isShowCountdown)">
|
||
<label @click="PDCollection" :data-id="(ProductInfo.item_id)" :class="['iconfont', isCollection?'icon-favoritesfilling':'icon-favorite', isCollection?' highlight ':'']">
|
||
</label>
|
||
<label class="iconfont zc zc-share" @click='onShareBox(1)'></label>
|
||
</view>
|
||
</view>
|
||
<label class="name-subtitle" v-if="ProductInfo.ProductTips">{{ ProductInfo.product_tips || " " }}</label>
|
||
</view>
|
||
</view>
|
||
<view class="m-cell m-cell-access m-info-sp" v-if="(ProductInfo.activity_item_row.activity_type_id == StateCode.ACTIVITY_TYPE_ONE_PIECE_DISCOUNT)">
|
||
<view class="m-cell-bd">
|
||
<text class="m-info-tip" style="color:#0a0322;font-weight:800">{{ __('活动') }}</text>
|
||
<label class="m-imfo-sp-selext" style="color:#0a0322;font-weight:800;font-size:20rpx">
|
||
{{ __('单件折扣 ') }}{{ ProductInfo.one_piece_discount }}{{ __('折') }}
|
||
<block v-if="ProductInfo.activity_item_row.activity_use_level_name">
|
||
{{ __(',需会员等级 ') }}{{ ProductInfo.activity_item_row.activity_use_level_name }}
|
||
</block>
|
||
</label>
|
||
</view>
|
||
</view>
|
||
<view v-if="(ProductInfo.SpecLst.length>0)" class="m-cell m-cell-access m-info-sp" @click="ckselectsp">
|
||
<view class="m-cell-bd">
|
||
<text class="m-info-tip">{{ __('已选') }}</text>
|
||
<label class="m-imfo-sp-selext m-panel-sp-labellist">
|
||
<block v-for="(items, i) in ProductInfo.SpecLst" :key="i">
|
||
<!-- #ifdef H5 -->
|
||
<block v-for="(item, ii) in items.svLst" :key="i + '_' + ii">
|
||
<label v-if="(item.IsChecked)" class="m-panel-sp-sellabel" style="margin: 0;margin-left:10rpx;padding: 0 8rpx;">{{ item.Name }}</label>
|
||
</block>
|
||
<!-- #endif -->
|
||
<!-- #ifndef H5 -->
|
||
<block v-for="(item, ii) in items.svLst" :key="ii">
|
||
<label v-if="(item.IsChecked)" class="m-panel-sp-sellabel" style="margin: 0;margin-left:10rpx;padding: 0 8rpx;">{{ item.Name }}</label>
|
||
</block>
|
||
<!-- #endif -->
|
||
</block>
|
||
</label>
|
||
</view>
|
||
<view class="m-cell-ft"></view>
|
||
</view>
|
||
|
||
|
||
<view v-if="false" class="m-cell m-cell-access m-info-sp" @click="onSelectAddress">
|
||
<view class="m-cell-bd">
|
||
<text class="m-info-tip">{{ __('产地') }}</text>
|
||
<label class="m-imfo-sp-selext">
|
||
南京
|
||
</label>
|
||
|
||
<label class="m-imfo-sp-selext" style="float: right;">
|
||
溯源
|
||
</label>
|
||
</view>
|
||
<view class="m-cell-ft"></view>
|
||
</view>
|
||
|
||
<view v-if="ProductInfo.activity_item_row.activity_type_id == StateCode.ACTIVITY_TYPE_GIFTBAG" class="m-cell m-cell-access m-info-sp" @click="showActivityDetail(1132)">
|
||
<view class="m-cell-bd" style="color:red">
|
||
<text class="m-info-tip">{{ __('组合购') }}</text>
|
||
<label class="m-imfo-sp-selext">
|
||
{{ ProductInfo.activity_item_row.activity_name }}
|
||
</label>
|
||
</view>
|
||
<view class="m-cell-ft">{{ __('查看详情') }}</view>
|
||
</view>
|
||
|
||
<view v-if="ProductInfo.activity_item_row.activity_type_id == StateCode.ACTIVITY_TYPE_GIFT" class="m-cell m-cell-access m-info-sp" @click="showActivityDetail(1102)">
|
||
<view class="m-cell-bd" style="color:red">
|
||
<text class="m-info-tip">{{ __('满即送') }}</text>
|
||
<label class="m-imfo-sp-selext">
|
||
{{ ProductInfo.activity_item_row.activity_name }}
|
||
</label>
|
||
</view>
|
||
<view class="m-cell-ft">{{ __('查看详情') }}</view>
|
||
</view>
|
||
<view v-if="ProductInfo.activity_item_row.activity_type_id == StateCode.ACTIVITY_TYPE_BARGAIN" class="m-cell m-cell-access m-info-sp" @click="showActivityDetail(1101)">
|
||
<view class="m-cell-bd" style="color:red">
|
||
<text class="m-info-tip">{{ __('加价购') }}</text>
|
||
<label class="m-imfo-sp-selext">
|
||
{{ ProductInfo.activity_item_row.activity_name }}
|
||
</label>
|
||
</view>
|
||
<view class="m-cell-ft">{{ __('查看详情') }}</view>
|
||
</view>
|
||
<view v-if="ProductInfo.activity_item_row.activity_type_id == StateCode.ACTIVITY_TYPE_MANHUI" class="m-cell m-cell-access m-info-sp" @click="showActivityDetail(1108)">
|
||
<view class="m-cell-bd" style="color:red">
|
||
<text class="m-info-tip">{{ __('满返') }}</text>
|
||
<label class="m-imfo-sp-selext">
|
||
{{ ProductInfo.activity_item_row.activity_name }}
|
||
</label>
|
||
</view>
|
||
<view class="m-cell-ft">{{ __('查看详情') }}</view>
|
||
</view>
|
||
<view v-if="ProductInfo.activity_item_row.activity_type_id == StateCode.ACTIVITY_TYPE_MULTIPLE_FOLD" class="m-cell m-cell-access m-info-sp" @click="showActivityDetail(1133)">
|
||
<view class="m-cell-bd" style="color:red">
|
||
<text class="m-info-tip">{{ __('多件折') }}</text>
|
||
<label class="m-imfo-sp-selext">
|
||
{{ ProductInfo.activity_item_row.activity_name }}
|
||
</label>
|
||
</view>
|
||
<view class="m-cell-ft">{{ __('查看详情') }}</view>
|
||
</view>
|
||
<view v-if="ProductInfo.activity_item_row.activity_type_id == StateCode.ACTIVITY_TYPE_REDUCTION" class="m-cell m-cell-access m-info-sp" @click="showActivityDetail(1107)">
|
||
<view class="m-cell-bd" style="color:red">
|
||
<text class="m-info-tip">{{ __('满减') }}</text>
|
||
<label class="m-imfo-sp-selext">
|
||
{{ ProductInfo.activity_item_row.activity_name }}
|
||
</label>
|
||
</view>
|
||
<view class="m-cell-ft">{{ __('查看详情') }}</view>
|
||
</view>
|
||
|
||
<view v-if="ProductInfo.activity_item_row.activity_type_id == StateCode.ACTIVITY_TYPE_REDUCTION_AGAIN" class="m-cell m-cell-access m-info-sp" @click="showActivityDetail(1140)">
|
||
<view class="m-cell-bd" style="color:red">
|
||
<text class="m-info-tip">{{ __('折上折') }}</text>
|
||
<label class="m-imfo-sp-selext">
|
||
{{ ProductInfo.activity_item_row.activity_name }}
|
||
</label>
|
||
</view>
|
||
<view class="m-cell-ft">{{ __('查看详情') }}</view>
|
||
</view>
|
||
|
||
<view v-if="ProductInfo.activity_item_row.activity_type_id == StateCode.ACTIVITY_TYPE_DOUBLE_POINTS" class="m-cell m-cell-access m-info-sp" @click="showActivityDetail(1136)">
|
||
<view class="m-cell-bd" style="color:red">
|
||
<text class="m-info-tip">{{ __('多倍积分') }}</text>
|
||
<label class="m-imfo-sp-selext">
|
||
{{ ProductInfo.activity_item_row.activity_name }}
|
||
</label>
|
||
</view>
|
||
<view class="m-cell-ft">{{ __('查看详情') }}</view>
|
||
</view>
|
||
|
||
<view class="m-cell m-cell-access m-info-sp" @click="onSelectAddress" v-if="!(ProductInfo.is_virtual)">
|
||
<view class="m-cell-bd">
|
||
<text class="m-info-tip">{{ __('送至') }}</text>
|
||
<label class="m-imfo-sp-selext">
|
||
{{ product_freight_info.district_info }}
|
||
</label>
|
||
|
||
<label class="m-imfo-sp-selext">
|
||
{{ product_freight_info.if_store_cn }}
|
||
</label>
|
||
|
||
<label class="m-imfo-sp-selext">
|
||
{{ product_freight_info.if_freight_label || '' }}
|
||
</label>
|
||
</view>
|
||
<view class="m-cell-ft"></view>
|
||
</view>
|
||
<view class="m-policy" v-if="(wholesale_policy_rows.length > 0)">
|
||
<view class="m-cell-bd" style="padding:20rpx 30rpx;display:flex;flex-wrap: nowrap;">
|
||
<view class="m-imfo-sp-title" style="width:50%;">
|
||
{{ __('价格') }}
|
||
</view>
|
||
|
||
<view class="m-imfo-sp-title">
|
||
{{ __('起批量') }}
|
||
</view>
|
||
</view>
|
||
<view class="m-cell-bd" style="padding:20rpx 30rpx;display:flex;flex-wrap: nowrap;" v-for="(row,ii) in wholesale_policy_rows" :key="ii">
|
||
<label class="m-imfo-sp-money" style="width:50%;">
|
||
<span>{{ __('¥') }}</span>{{ row.policy_wholesale_price }}
|
||
</label>
|
||
|
||
<label class="m-imfo-sp-selext">
|
||
{{ row.item_quantity_str }}
|
||
</label>
|
||
</view>
|
||
</view>
|
||
|
||
<view v-if="true" class="m-cell m-cell-access m-info-sp">
|
||
<view class="m-cell-bd">
|
||
<text class="m-info-tip">{{ __('服务') }}</text>
|
||
<label class="m-imfo-sp-selext" style="">
|
||
{{ sprintf(__('由 %s 发货并提供售后服务'), store_info.store_name) }}
|
||
</label>
|
||
<view style="margin-left:56rpx;" v-if="ProductInfo.contractlist.length > 0">
|
||
<label style="margin-left: 12rpx;margin-right: 0rpx;font-size: 12px;" v-for="(ct, ci) in ProductInfo.contractlist" :key="ci">
|
||
<image lazy-load :src="(ct.contract_type_icon)" style="margin-top:-6rpx;margin-right: 6rpx;width: 30rpx;height: 30rpx;vertical-align: middle;" />
|
||
{{ ct.contract_type_name }}
|
||
</label>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
|
||
<!-- 优惠券展示 -->
|
||
<view class="m-cells" style="margin-top:0;" v-if="(voucherList.length>0)">
|
||
<view class="m-cell m-cell-access m-info-sp">
|
||
<view class="m-cell-bd coupon">
|
||
<text class="m-info-tip">{{ __('优惠') }}</text>
|
||
<view style="position: relative;">
|
||
<view class="m-coupon-item1" v-for="(item, ii) in voucherList" :key="ii">
|
||
<view class="m-coupon-info">
|
||
<view class="m-coupon-text" style="display: flex;">
|
||
<label style="font-size: 12px;">{{ item.activity_name }}</label>
|
||
<text>
|
||
{{sprintf(__('满¥%s 减¥%s'), item.activity_rule.requirement.buy.subtotal, item.activity_rule.voucher_price)}}{{ item.activity_remark }}
|
||
</text>
|
||
<!-- <text>
|
||
{{sprintf(__('有效日期至:%s'), item.activity_endtime)}}
|
||
</text> -->
|
||
</view>
|
||
<!-- <view class="m-coupon-price">
|
||
<view class="price-content-box ">
|
||
<label>{{__('¥')}}</label>{{number_format(item.activity_rule.voucher_price,1)}}
|
||
</view>
|
||
</view> -->
|
||
</view>
|
||
<!-- <view v-if="(0)" @click="receivenowWeixin" :data-cardId="(item.CardId)" class="m-coupon-btn" :data-id="(item.Id)"
|
||
:data-isreceive="(item.IsCanReceive)">
|
||
<label :class="'btn-coupon ' + ( item.if_gain ? '' : 'btn-coupon-gray')">{{item.IsCanReceive == 0 ? __('立即领取'):__('已经领取') }}</label>
|
||
</view>
|
||
<view class="m-coupon-btn" @click="doReceive" :data-isreceive="(item.if_gain ? '1' : '-1')" :data-id="(item.activity_id)"
|
||
:data-point="(item.activity_rule.requirement.points.needed)">
|
||
<label :class="'btn-coupon ' + ( item.if_gain ? '' : 'btn-coupon-gray')">{{item.if_gain ? __('立即领取'):__('已经领取') }}</label>
|
||
</view> -->
|
||
</view>
|
||
<button @click="showCouponDetail()" type="warn" size="mini" style="position: absolute;top: 50%;right: 0rpx;transform: translateY(-50%);">{{ __('领取') }}
|
||
</button>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<uni-popup ref="popup2" type="bottom">
|
||
<view class="m-coupon-list" v-if="(voucherList.length>0)" style="box-shadow: 2px 9px 11px #001;background:#FFFFFF;border-radius: 7px;height:700rpx;display: flex;flex-direction: column;padding:30rpx">
|
||
<scroll-view scroll-y style="height: calc(100% - 60px)">
|
||
<view class="m-coupon-item" v-for="(item, ii) in voucherList" :key="ii">
|
||
<view class="m-coupon-info">
|
||
<view class="m-coupon-text">
|
||
<label>{{ item.activity_name }}</label>
|
||
<text>
|
||
{{sprintf(__('满¥%s 减¥%s'), item.activity_rule.requirement.buy.subtotal, item.activity_rule.voucher_price)}}{{ item.activity_remark }}
|
||
</text>
|
||
<text>
|
||
{{ sprintf(__('有效日期至:%s'), item.activity_endtime) }}
|
||
</text>
|
||
</view>
|
||
<view class="m-coupon-price">
|
||
<view class="price-content-box ">
|
||
<label>{{ __('¥') }}</label>{{ number_format(item.activity_rule.voucher_price, 1) }}
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view v-if="(0)" @click="receivenowWeixin" :data-cardId="(item.CardId)" class="m-coupon-btn" :data-id="(item.Id)" :data-isreceive="(item.IsCanReceive)">
|
||
<label :class="'btn-coupon ' + ( item.if_gain ? '' : 'btn-coupon-gray')">{{
|
||
item.IsCanReceive == 0 ? __('立即领取') : __('已经领取')
|
||
}}</label>
|
||
</view>
|
||
<view class="m-coupon-btn" @click="doReceive" :data-isreceive="(item.if_gain ? '1' : '-1')" :data-id="(item.activity_id)" :data-point="(item.activity_rule.requirement.points.needed)">
|
||
<label :class="'btn-coupon ' + ( item.if_gain ? '' : 'btn-coupon-gray')">{{
|
||
item.if_gain ? __('立即领取') : __('已经领取')
|
||
}}</label>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
<button v-if="!voucherReceiveAllFlag" class="u-btn u-btn-default" style="margin-top:20rpx;margin:0;padding:0" @click="getCoupon">
|
||
{{ __('一键领取') }}
|
||
</button>
|
||
</view>
|
||
</uni-popup>
|
||
|
||
<view class="m-panel m-panel-access m-comment m-fg-comment" v-if="(ProductInfo.activityType=='GROUPBOOKING' && GB_rows.length>0)">
|
||
<view class="m-panel-hd">{{ __('进行中的拼团') }}</view>
|
||
<view class="m-panel-bd" :style="(!isAll?'max-height:382rpx;overflow:hidden;':'')">
|
||
<view @click="groupBuying" v-for="(item, ii) in GB_rows" :key="ii" :data-gb_id="(item.gb_id)" class="m-media-box m-media-box-appmsg">
|
||
<view class="m-media-box-hd">
|
||
<image lazy-load class="m-media-box-thumb" :src="(item.user_avatar)" />
|
||
</view>
|
||
<view class="m-media-box-bd">
|
||
<label class="m-media-box-title">{{ item.user_nickname }}</label>
|
||
<text class="m-media-box-desc">{{ __('正在开团中') }}</text>
|
||
</view>
|
||
<view class="m-media-box-bd m-media-box-bd-tip">
|
||
<label class="m-media-box-title m-media-box-title-tip">
|
||
{{ sprintf(__('还差%s人成团'), item.gb_quantity - item.gb_amount_quantity) }}
|
||
</label>
|
||
<text v-if="(item.Time.days>=1)" class="m-media-box-desc m-media-box-desc-tip">
|
||
{{ sprintf(__('剩余%s天 结束'), item.Time.days) }}
|
||
</text>
|
||
<text v-else class="m-media-box-desc m-media-box-desc-tip">
|
||
{{ sprintf(__('剩余%s:%s:%s结束'), item.Time.hour, item.Time.min, item.Time.sec) }}
|
||
</text>
|
||
</view>
|
||
<view class="m-media-box-bd">
|
||
<button class="u-btn u-btn-default" style="margin-top:20rpx">{{ __('立即参团') }}</button>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="m-panel-ft" @click="lookall" v-if="(ProductInfo.activityType=='GROUPBOOKING' && GB_rows.length>2)">
|
||
<a href="javascript:void(0);" class="m-cell m-cell-access m-cell-link">
|
||
<view class="m-cell-bd" v-if="(!isAll)">{{ __('查看全部参团') }}</view>
|
||
<view class="m-cell-bd" v-else>{{ __('收起') }}</view>
|
||
<text class="m-cell-ft"></text>
|
||
</a>
|
||
</view>
|
||
</view>
|
||
|
||
<!--参团部分-->
|
||
|
||
|
||
<!--评论-->
|
||
<view class="evaluate" v-if="ProductInfo.last_comment_rows.length > 0 ">
|
||
<view class="evaluate-top">
|
||
<label class="left">{{ __('用户评价') }}({{ ProductInfo.analytics_row ? ProductInfo.analytics_row.product_evaluation_num : 0 }})</label>
|
||
<navigator :url="'/pages/product/commentlist?id=' + (proId)" class="evaluate-right">
|
||
<label class="right">{{ __('全部评价') }}</label>
|
||
</navigator>
|
||
</view>
|
||
<view class="evaluate-bottom">
|
||
<scroll-view scroll-x="true" class="scroll-view_H" style="background:rgba(255,255,255,1);">
|
||
<view class="scroll-view-item_H" v-for="(item, i) in ProductInfo.last_comment_rows" :key="i" style="width: auto;">
|
||
<view class="uesr-evaluate">
|
||
<view class="uesr-evaluate-center">
|
||
<view class="center-top">
|
||
<view class="user-image">
|
||
<image style="width:100%;height:100%;border-radius:50%;" :src="(item.user_avatar)" />
|
||
</view>
|
||
<label class="user-name">{{ item.user_name }}</label>
|
||
</view>
|
||
<view class="user-text"><label>{{ item.comment_content || __('无评论') }}</label></view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
</view>
|
||
</view>
|
||
|
||
<!--店铺信息-->
|
||
<view class="m-store" v-if="(Config.MULTISHOP_ENABLE && !if_saas_status && !isStoreFlag)">
|
||
<view class="m-store-info">
|
||
<view class="m-store-radi">
|
||
<image :src="store_info.store_logo" style="width: 100%;height: 100%;">
|
||
</view>
|
||
<label style="height:29rpx;font-size:30rpx;font-family:Alibaba PuHuiTi;font-weight:500;color:rgba(51,51,51,1);position: absolute;margin-top:14rpx;margin-left:139rpx">{{ store_info.store_name }}</label>
|
||
<label style="width:200rpx;height:23rpx;font-size:24rpx;font-family:Alibaba PuHuiTi;font-weight:400;color:rgba(102,102,102,1);position: absolute;margin-top:60rpx;margin-left:139rpx">{{ sprintf(__('在售商品%s件'), store_info.store_product_num) }}</label>
|
||
<navigator :url="'/pagesub/index/store' + '?store_id=' + (ProductInfo.store_id)" hover-class="none" class="evaluate-right" style="margin-top:32rpx;">
|
||
<label class="right">{{ __('进店看看') }}</label>
|
||
</navigator>
|
||
</view>
|
||
<view v-if="store_info.store_o2o_flag==1 && store_info.store_latitude && store_info.store_longitude && store_info.store_address" style="height: 100rpx;">
|
||
<view style="padding: 0 30rpx;height: 44rpx;">
|
||
<view class="m-cell-bd" style="width: 100%;">
|
||
<text class="m-info-tip" style="margin-right: 10rpx;font-size: 12px;">{{ __('营业时间') }} :</text>
|
||
<text class="m-info-tip" style="font-size: 12px;">{{ store_info.store_opening_hours || '00:00' }} - {{ store_info.store_close_hours || '00:00' }}</text>
|
||
</view>
|
||
</view>
|
||
<view style="padding: 0 30rpx;">
|
||
<view class="m-cell-bd" style="display: flex;" @click.stop="gotomap" :data-address="(store_info.store_address)" :data-name="(store_info.store_name)" :data-lat="(store_info.store_latitude)" :data-lng="(store_info.store_longitude)">
|
||
<view class="m-info-tip location-addr" style="display: flex;flex:1;margin-right: 10rpx;width: 500rpx;float:left;font-size: 12px;">
|
||
{{ store_info.store_address }}
|
||
</view>
|
||
|
||
<label style="display: flex;float:right;">
|
||
<image style="width:20rpx;height:26rpx;margin-top:10rpx;" src='https://static.lancerdt.com/xcxfile/appicon/img/location.png'></image>
|
||
<label class="u-font" style="line-height: 1.8;font-size: 12px;">{{ __('距您') }}
|
||
{{ store_info.distance }}</label>
|
||
</label>
|
||
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<scroll-view class="scroll-view_H" scroll-x="true" style="height:390rpx;margin-top: 0px">
|
||
<navigator :url="(store_info.store_type==3?'/pages/product/details':'/pages/product/detail') + '?pid=' + (item.item_id)" v-for="(item,i) in store_product_list" :key="i" hover-class="none" class="scroll-view-item_H" style="width:210rpx;height:340rpx;margin-left:30rpx;margin-top:20rpx;">
|
||
<view class="m-store-item-image">
|
||
<image :src="item.product_image" style="width: 100%;height: 100%;">
|
||
</view>
|
||
<view class="m-store-item-name"><label class="ellipsis">{{ item.product_name }}</label></view>
|
||
|
||
<view class="m-store-item-price">
|
||
<label>{{ __('¥') }}{{ sprintf(__('%.2f'), number_format(item.item_unit_price, 2)) }}</label>
|
||
</view>
|
||
</navigator>
|
||
</scroll-view>
|
||
</view>
|
||
|
||
<!--店铺信息-->
|
||
<view class="m-panel m-panel-access goods-detail-store" v-if="(chain_rows.length>0)">
|
||
<block v-if="(chain_rows.length>0)">
|
||
<view class="m-panel-hd store_name">
|
||
{{ __('门店信息') }}
|
||
</view>
|
||
<view class="m-panel-bd" style="height: 200rpx;">
|
||
<scroll-view class="m-nearbylist" scroll-y="true" @scrolltolower="scrollbottom">
|
||
<view class='list-box' @click="gopage" :data-chain_id="(item.chain_id)" v-for="(item, index) in chain_rows" :key="index">
|
||
<view class='item-box'>
|
||
<view class='flex-box'>
|
||
<image :src='item.chain_img' class='flex-shop'></image>
|
||
<label class='flex-title'>{{ item.chain_name }}</label>
|
||
<view class='flex-postion'>
|
||
<image src='https://static.lancerdt.com/xcxfile/appicon/img/location.png'></image>
|
||
<label>{{ item.distance }}</label>
|
||
</view>
|
||
</view>
|
||
<view class='flex-info'>
|
||
<view class='flex-info-box' @click.stop="call" :data-phone="item.chain_mobile"><label class='flex-info-title'>{{ __('商家电话:') }}</label><label style='color:#0095fd'>{{ item.chain_mobile }}</label></view>
|
||
<view class='flex-info-box' @click.stop="gotomap" :data-address="(item.chain_district_info)" :data-name="(item.chain_name)" :data-lat="(item.chain_lat)" :data-lng="(item.chain_lng)">
|
||
<label class='flex-info-title'>{{ __('商家地址:') }}</label><label>{{ item.chain_district_info }}</label>
|
||
</view>
|
||
<image src='https://static.lancerdt.com/xcxfile/appicon/img/right.png'></image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
</view>
|
||
</block>
|
||
</view>
|
||
<view v-if="(chain_rows.length>0)" class="m-panel-hd store_name" @click="gochainlist" :data-store_id="(ProductInfo.store_id)" :data-item_id="(ProductInfo.item_id)">
|
||
{{ sprintf(__('查看全部%s家门店地址'), chain_rows.length) }}
|
||
</view>
|
||
|
||
<!--店铺信息-->
|
||
<view class="m-panel m-panel-access goods-detail-store" v-if="(Config.MULTISHOP_ENABLE && !if_saas_status && !isStoreFlag) && false">
|
||
<navigator redirect="true" :url="'/pagesub/index/store?store_id=' + (ProductInfo.store_id)">
|
||
<view class="m-panel-hd store_name" style="height: 44rpx;">
|
||
<label class="iconfont icon-store"></label>
|
||
<label class="icon-mall" v-if="(store_info.store_is_selfsupport)">{{ __('自营') }}</label>
|
||
<label class="icon-mall" style="color:#333;">{{ store_info.store_name }}</label>
|
||
</view>
|
||
<view class="m-panel-bd" style="clear: both;"> <!-- v-if="(!store_info.store_is_selfsupport)" -->
|
||
<view class="store-rate">
|
||
<label class="equal" style="width: 33%;">{{ __('描述相符') }}
|
||
<view style="padding-left: 10rpx;">{{ store_info.store_credit.store_desccredit.credit }}</view>
|
||
<!--<i></i>-->
|
||
</label>
|
||
<label class="equal" style="width: 33%;text-align: center;">{{ __('服务态度') }}
|
||
<view style="padding-left: 10rpx;">
|
||
{{ store_info.store_credit.store_servicecredit.credit || '--' }}
|
||
</view>
|
||
<!--<i></i>-->
|
||
</label>
|
||
<label class="equal" style="width: 33%;text-align: right;">{{ __('发货速度') }}
|
||
<view style="padding-left: 10rpx;">
|
||
{{ store_info.store_credit.store_deliverycredit.credit || '--' }}
|
||
</view>
|
||
<!--<i></i>-->
|
||
</label>
|
||
</view>
|
||
|
||
<view class="item-more"></view>
|
||
</view>
|
||
</navigator>
|
||
</view>
|
||
|
||
|
||
<!--评论-->
|
||
<view :class="'m-panel m-panel-access m-comment ' + ((ProductInfo.analytics_row && ProductInfo.analytics_row.product_evaluation_num>0)?'':'hide')" v-if="false">
|
||
<view class="m-panel-hd">
|
||
{{ __('评价') }}({{ ProductInfo.analytics_row ? ProductInfo.analytics_row.product_evaluation_num : 0 }})
|
||
<label v-if="(ProductInfo.analytics_row && ProductInfo.analytics_row.evaluation_percent)">{{ __('好评度') }}
|
||
<text>{{ ProductInfo.analytics_row.evaluation_percent }}%</text>
|
||
</label>
|
||
</view>
|
||
<view class="m-panel-bd">
|
||
<view class="m-media-box m-media-box-appmsg" v-if="(ProductInfo.last_comment_row)">
|
||
<view class="m-media-box-hd">
|
||
<image lazy-load class="m-media-box-thumb" :src="(ProductInfo.last_comment_row.user_avatar)" />
|
||
</view>
|
||
<view class="m-media-box-bd">
|
||
<label class="m-media-box-title">{{ ProductInfo.last_comment_row.user_nickname }}</label>
|
||
<view class="m-media-box-desc">
|
||
<view style="margin-bottom:10rpx;">
|
||
<label style="margin-right:10rpx;font-size:20rpx;">
|
||
{{ ProductInfo.last_comment_row.item_name }}
|
||
</label>
|
||
</view>
|
||
<label v-if="(ProductInfo.last_comment_row.comment_content!=null)">
|
||
{{ ProductInfo.last_comment_row.comment_content }}
|
||
</label>
|
||
</view>
|
||
|
||
<view class="m-media-box-info">
|
||
<view class="m-media-box-info-meta m-start" v-for="(itemIndex, i) in [1, 2, 3, 4, 5]" :key="i">
|
||
<label :class="'iconfont icon-start ' + ((itemIndex<=ProductInfo.last_comment_row.comment_scores)?'sel':'')" :data-index="(itemIndex)" :data-type="1"></label>
|
||
</view>
|
||
<view class="m-media-box-info-meta m-tiem">{{ ProductInfo.last_comment_row.comment_time }}</view>
|
||
<view class="m-media-list">
|
||
<image lazy-load v-for="(item, ii) in ProductInfo.last_comment_row.comment_image" :key="ii" :src="(item)" @click="ImgTap"></image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="m-panel-ft" v-if="(ProductInfo.analytics_row && ProductInfo.analytics_row.product_evaluation_num>1)">
|
||
<navigator :url="'/pages/product/commentlist?id=' + (proId)" class="m-cell m-cell-access m-cell-link">
|
||
<view class="m-cell-bd">{{ __('查看全部评论') }}</view>
|
||
<text class="m-cell-ft"></text>
|
||
</navigator>
|
||
</view>
|
||
</view>
|
||
|
||
<block v-if="false">
|
||
<!--问答-->
|
||
<view :class="'m-panel m-panel-access m-comment'" v-if="(faq_rows.length>0)" :data-product_id="proId" @click="listFaq">
|
||
<view class="m-cell m-cell-access m-info-sp">
|
||
<view class="m-cell-bd">
|
||
<text class="m-info-tip">
|
||
{{ __('问大家') }}({{ ProductInfo.analytics_row ? ProductInfo.analytics_row.product_ask_num : 0 }})
|
||
</text>
|
||
</view>
|
||
<view class="m-cell-ft">{{ __('查看全部') }}</view>
|
||
</view>
|
||
<view class="m-panel-bd">
|
||
<view class="m-media-box m-media-box-appmsg" style="padding-top: 20rpx;padding-bottom: 20rpx;" v-for="(faq_row, idx) in faq_rows" :key="idx">
|
||
<view class="m-media-box-bd">
|
||
<view class="m-media-box-desc">
|
||
<label style="padding:6rpx;font-size:20rpx;background-color: #f30213;color: #fff;">
|
||
{{ __('问') }}
|
||
</label>
|
||
<label style="margin-left:10rpx;font-size:20rpx;">
|
||
{{ faq_row.story_title }}
|
||
</label>
|
||
<label style="float: right;">
|
||
{{ sprintf(__('%d 个回答'), faq_row.story_comment_count) }}
|
||
</label>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view :class="'m-panel m-panel-access m-comment'" v-else>
|
||
<view class="m-panel-hd">{{ __('暂无问答') }}
|
||
</view>
|
||
</view>
|
||
<view :class="'m-panel m-panel-access m-comment'">
|
||
<view class="m-panel-bd">
|
||
<view class="m-media-box m-media-box-appmsg" style="padding-top: 16rpx;padding-bottom: 16rpx;">
|
||
<view class="m-media-box-bd">
|
||
<view class="m-media-box-desc">
|
||
<label style="padding:6rpx;font-size:20rpx;background-color: #f30213;color: #fff;">
|
||
{{ __('问大家') }}
|
||
</label>
|
||
<label style="margin-left:10rpx;font-size:20rpx;">
|
||
{{ __('宝贝好不好,问过已买过的人') }}
|
||
</label>
|
||
<navigator :url="'/community/community/post?pid=' + proId" class="u-link-btn" style="padding: 5px 10px;border: 1px solid #DB384C;font-size: 11px;color: #DB384C;border-radius: 25px;float: right;">
|
||
{{ __('去提问') }}
|
||
</navigator>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</block>
|
||
|
||
</view>
|
||
<view>
|
||
<view class="m-panel-access m-detail">
|
||
<view class="m-tab">
|
||
<view class="m-navbar">
|
||
<view :class="'m-navbar-item ' + (tapindex==1?'m-navbar-item-on':'')" v-if="(ProductInfo.product_detail)" @click="picDetail">
|
||
{{ __('商品详情') }}
|
||
</view>
|
||
<view :class="'m-navbar-item ' + (tapindex==2?'m-navbar-item-on':'')" v-if="(ProductInfo.product_extension)" @click="spcParam">
|
||
{{ __('规格参数') }}
|
||
</view>
|
||
<view :class="'m-navbar-item ' + (tapindex==3?'m-navbar-item-on':'')" v-if="(ProductInfo.product_param)" @click="packingList">
|
||
{{ __('包装清单') }}
|
||
</view>
|
||
<block v-if="(ProductInfo.activityType=='GROUPBOOKING')">
|
||
<view :class="'m-navbar-item ' + (tapindex==4?'m-navbar-item-on':'')" @click="showFightGroup">
|
||
{{ __('拼团玩法') }}
|
||
</view>
|
||
</block>
|
||
<block v-else>
|
||
</block>
|
||
<view :class="'m-navbar-item ' + (tapindex==5?'m-navbar-item-on':'')" v-if="(ProductInfo.product_service)" @click="showServiceTab">
|
||
{{ __('售后服务') }}
|
||
</view>
|
||
<view :class="'m-navbar-item ' + (tapindex==6?'m-navbar-item-on':'')" v-if="(isVoucher)" @click="showVoucherTab">
|
||
{{ __('优惠信息') }}
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view :class="'m-RichText ' + (tapindex==1?'':'hide')" v-if="ProductInfo.product_detail">
|
||
<wxParse :content="ProductInfo.product_detail" :imageProp="{lazyLoad:true, mode:'widthFix'}" />
|
||
</view>
|
||
<view :class="'m-RichText ' + (tapindex==2?'':'hide')" v-if="ProductInfo.product_extension">
|
||
<wxParse :content="ProductInfo.product_extension" :imageProp="{lazyLoad:true, mode:'widthFix'}" />
|
||
</view>
|
||
<view :class="'m-RichText ' + 'm-Packinglist ' + (tapindex==3?'':'hide')" v-if="ProductInfo.product_param">
|
||
<wxParse :content="ProductInfo.product_param" :imageProp="{lazyLoad:true, mode:'widthFix'}" />
|
||
</view>
|
||
<view v-if="(ProductInfo.activity_type_id == StateCode.ACTIVITY_TYPE_GROUPBOOKING)" :class="'m-Packinglist ' + (tapindex==4?'':'hide')" style="background-color:#fff;font-size:12px;">
|
||
<view class="groupbooking-rule">
|
||
<view class="groupbooking-rule-title">
|
||
<span class="red-dot"></span>{{ __('开团玩法') }}
|
||
</view>
|
||
<view class="groupbooking-rule-line"></view>
|
||
<view class="flex-container">
|
||
<view class="flex-item">
|
||
<image lazy-load class="flex-item-img" src="/static/images/groupbooking/ptg.png" />
|
||
<view>{{ __('开团/参团') }}</view>
|
||
</view>
|
||
<view class="arrow">
|
||
<image lazy-load class="right-arrow" src="/static/images/groupbooking/right_arrow.png" />
|
||
</view>
|
||
<view class="flex-item">
|
||
<image lazy-load class="flex-item-img" src="/static/images/groupbooking/yqhy.png" />
|
||
<view>{{ __('邀请好友') }}</view>
|
||
</view>
|
||
<view class="arrow">
|
||
<image lazy-load class="right-arrow" src="/static/images/groupbooking/right_arrow.png" />
|
||
</view>
|
||
<view class="flex-item">
|
||
<image lazy-load class="flex-item-img" src="/static/images/groupbooking/cg.png" />
|
||
<view>{{ __('拼团完成') }}</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view style="font-size:12px;line-height:50rpx;">
|
||
<view style="text-align:left;">
|
||
{{ __('活动时间') }}:{{ ProductInfo.activity_item_row.activity_starttime }} -
|
||
{{ ProductInfo.activity_item_row.activity_endtime }}
|
||
</view>
|
||
<view style="text-align:left;">
|
||
{{ sprintf(__('开团支付后,需在%s天内邀请%s人参团,人数不足自动退款。'), ProductInfo.DayLimit, ProductInfo.UserLimit) }}
|
||
</view>
|
||
<view style="text-align:left;">{{ __('拼团商品会尽快发货。') }}</view>
|
||
<view style="text-align:left;line-height: 20px;" class="highlight">
|
||
<view>{{ __('① 选择商品') }}</view>
|
||
<view>{{ __('② 支付开团或参团') }}</view>
|
||
<view>{{ __('③ 等待好友参团支付') }}</view>
|
||
<view>{{ __('④ 达到人数拼团成功') }}</view>
|
||
</view>
|
||
<view style="text-align:left;">{{ __('如在限定时间内参团人数没达成,系统自动退款。') }}</view>
|
||
</view>
|
||
|
||
</view>
|
||
|
||
</view>
|
||
<view :class="' m-Packinglist ' + (tapindex==5?'':'hide')" v-if="ProductInfo.product_service">
|
||
<rich-text type="text" :nodes="(ProductInfo.product_service)" />
|
||
</view>
|
||
<view :class="(tapindex==6?'':'hide')">
|
||
<view class="m-coupon-list">
|
||
<block v-if="(voucherList.length>0)">
|
||
<view class="m-coupon-item" v-for="(item, ii) in voucherList" :key="ii">
|
||
<view class="m-coupon-info">
|
||
<view class="m-coupon-text">
|
||
<label>{{ item.activity_name }}</label>
|
||
<text>
|
||
{{sprintf(__('满¥%s 减¥%s'), item.activity_rule.requirement.buy.subtotal, item.activity_rule.voucher_price)}}{{ item.activity_remark }}
|
||
</text>
|
||
<text>
|
||
{{ sprintf(__('有效日期至:%s'), item.activity_endtime) }}
|
||
</text>
|
||
</view>
|
||
<view class="m-coupon-price">
|
||
<view class="price-content-box ">
|
||
<label>{{ __('¥') }}</label>{{ item.activity_rule.voucher_price }}
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view v-if="(0)" @click="receivenowWeixin" :data-cardId="(item.CardId)" class="m-coupon-btn" :data-id="(item.Id)" :data-isreceive="(item.IsCanReceive)">
|
||
<label :class="'btn-coupon ' + ( item.if_gain ? '' : 'btn-coupon-gray')">{{
|
||
item.IsCanReceive == 0 ? __('立即领取') : __('已经领取')
|
||
}}</label>
|
||
</view>
|
||
<view class="m-coupon-btn" @click="doReceive" :data-isreceive="(item.if_gain ? '1' : '-1')" :data-id="(item.activity_id)" :data-point="(item.activity_rule.requirement.points.needed)">
|
||
<label :class="'btn-coupon ' + ( item.if_gain ? '' : 'btn-coupon-gray')">{{
|
||
item.if_gain ? __('立即领取') : __('已经领取')
|
||
}}</label>
|
||
</view>
|
||
</view>
|
||
|
||
</block>
|
||
<view class="m-nullcontent" v-else>
|
||
<view class="m-nullpage-middle">
|
||
<label class="iconfont icon-meiyougengduo"></label>
|
||
<view class="m-null-tip">
|
||
<text>{{ __('亲~什么都没有') }}</text>
|
||
<text>{{ __('没有可领的优惠券~') }}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<!--<view class="msk1" v-if="(0)" @click.stop="outertouch">
|
||
<view class="m-coupon-box" @click.stop="innertouch">
|
||
<view class="m-coupon-box-top">
|
||
|
||
</view>
|
||
<view class="m-coupon-box-content">
|
||
|
||
<view class="m-coupon-box-title">
|
||
优惠券领取成功
|
||
<view class="m-coupon-box-tip">点击右上角分享给好友</view>
|
||
</view>
|
||
<scroll-view scroll-y="true" class="m-coupon-box-list">
|
||
<view class="m-coupon-box-item" v-for="(Coupons)">
|
||
<label>{{item.activity_rule.voucher_price}}</label>
|
||
<text>{{item.activity_name}}</text>
|
||
</view>
|
||
</scroll-view>
|
||
</view>
|
||
<view class="m-coupon-box-bottom">
|
||
|
||
</view>
|
||
<view class="u-close-btn" @click.stop="outertouch">✕</view>
|
||
</view>
|
||
</view>-->
|
||
</view>
|
||
</view>
|
||
<view class="m-tips" v-if="(!IsChannel)">
|
||
<view class="m-tips-logo">
|
||
<image lazy-load mode="aspectFit" src="/static/images/logo_tech.png"></image>
|
||
</view>
|
||
<view class="m-tips-str">{{ __('商城套件系统提供技术支持') }} {{ versionNumber }}</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="u-cleanbox"></view>
|
||
</scroll-view>
|
||
|
||
<view class="is-rest" v-if="store_info.store_biz_state == 2"></view>
|
||
|
||
<view class="m-footer-btn bottom-safearea" :class="ProductInfo.is_virtual ? 'm-fg-btn' : ''" v-if="(ProductInfo.activityType!='GROUPBOOKING') && store_info.store_biz_state != 2">
|
||
|
||
<block v-if="(ProductInfo.is_virtual)">
|
||
<view class="m-footer-btn-list">
|
||
<view class="m-footer-btn-item" style="width: 50%;" :data-id="(proId)" :data-name="(store_info.store_name)" :data-keyword="(ProductInfo.keyWord)" :data-appid="(AppId)" :data-appurl="(chatUrl)" v-if="(Config.MULTISHOP_ENABLE && !if_saas_status && !isStoreFlag)">
|
||
<navigator redirect="true" :url="'/pagesub/index/store?store_id=' + (ProductInfo.store_id)" class="u-go-home1">
|
||
<view class="m-footer-btn-icon">
|
||
<!--<contact-button size="27" type="default-dark" session-from="weapp">
|
||
</contact-button>-->
|
||
<label class="iconfont icon-store "></label>
|
||
</view>
|
||
<text>{{ __('店铺') }}</text>
|
||
</navigator>
|
||
</view>
|
||
<view class="m-footer-btn-item" style="width: 50%;" @click="PDCollection" :data-id="(ProductInfo.item_id)">
|
||
<view class="m-footer-btn-icon">
|
||
<label :class="['iconfont', isCollection?'icon-favoritesfilling':'icon-favorite', isCollection?' highlight ':'']"></label>
|
||
</view>
|
||
<text>{{ isCollection ? __('已收藏') : __('收藏') }}</text>
|
||
</view>
|
||
<view class="m-footer-btn-item" :data-id="(ProductInfo.item_id)" :data-name="(store_info.store_name)" :data-keyword="(ProductInfo.keyWord)" :data-appid="(AppId)" :data-appurl="(chatUrl)" :data-type="10" @click="tplGoToPage" v-if="(chatUrl)" style="width: 50%;">
|
||
<view class="m-footer-btn-icon">
|
||
<!--<contact-button size="27" type="default-dark" session-from="weapp">
|
||
</contact-button>-->
|
||
<label class="iconfont icon-more "></label>
|
||
</view>
|
||
<text>{{ __('客服') }}</text>
|
||
</view>
|
||
</view>
|
||
<block v-if="(!ProductInfo.normalStatus)">
|
||
<view class="m-footer-btn-main m-footer-desable" style="width: 70%;">
|
||
{{ __('立即预约') }}
|
||
</view>
|
||
<view class="m-footer-btn-main m-footer-desable" style="width: 70%;">
|
||
{{ __('商品已下架') }}
|
||
</view>
|
||
</block>
|
||
<block v-else-if="(!ProductInfo.ifStore)">
|
||
<view class="m-footer-btn-main m-footer-desable" style="width: 70%;">
|
||
{{ __('立即预约') }}
|
||
</view>
|
||
<view class="m-footer-btn-main m-footer-desable" style="width: 70%;">
|
||
{{ __('库存不足') }}
|
||
</view>
|
||
</block>
|
||
<block v-else-if="(ProductInfo.Status=='offline'||ProductInfo.Pstatus=='offline'||ProductInfo.IsDelete)">
|
||
<view class="m-footer-btn-main m-footer-desable" style="width: 70%;">
|
||
{{ __('立即预约') }}
|
||
</view>
|
||
<view class="m-footer-btn-main m-footer-desable" style="width: 70%;">
|
||
{{ __('商品已下架') }}
|
||
</view>
|
||
</block>
|
||
<block v-else>
|
||
<view v-if="(ProductInfo.SpecLst.length>0)" class="m-footer-btn-main m-now" style="width: 70%;" @click="ckselectsp1">
|
||
{{ __('立即预约') }}
|
||
</view>
|
||
<view v-else class="m-footer-btn-main m-now" style="width: 70%;" @click.stop="buynow">
|
||
{{ __('立即预约') }}
|
||
</view>
|
||
<!--<view v-if="(ProductInfo.SpecLst.length>0)" class="m-footer-btn-main" @click="ckselectsp">
|
||
{{__('加入购物车')}}
|
||
</view>
|
||
<view v-else class="m-footer-btn-main" @click.stop="addCart">
|
||
{{__('加入购物车')}}
|
||
</view>-->
|
||
</block>
|
||
</block>
|
||
<block v-else>
|
||
<view class="m-footer-btn-list">
|
||
<view class="m-footer-btn-item" :data-id="(proId)" :data-name="(store_info.store_name)" :data-keyword="(ProductInfo.keyWord)" :data-appid="(AppId)" :data-appurl="(chatUrl)" v-if="(Config.MULTISHOP_ENABLE && !if_saas_status && !isStoreFlag)">
|
||
<navigator redirect="true" :url="'/pagesub/index/store?store_id=' + (ProductInfo.store_id)" class="u-go-home1">
|
||
<view class="m-footer-btn-icon">
|
||
<!--<contact-button size="27" type="default-dark" session-from="weapp">
|
||
</contact-button>-->
|
||
<label class="iconfont icon-store "></label>
|
||
</view>
|
||
<text>{{ __('店铺') }}</text>
|
||
</navigator>
|
||
</view>
|
||
<view class="m-footer-btn-item" @click="PDCollection" :data-id="(ProductInfo.item_id)" v-if="(!chatUrl)">
|
||
<view class="m-footer-btn-icon">
|
||
<label :class="['iconfont', isCollection?'icon-favoritesfilling':'icon-favorite', isCollection?'highlight ':'']"></label>
|
||
</view>
|
||
<text>{{ isCollection ? __('已收藏') : __('收藏') }}</text>
|
||
</view>
|
||
|
||
<view class="m-footer-btn-item" :data-id="(proId)" :data-name="(store_info.store_name)" :data-keyword="(ProductInfo.keyWord)" :data-appid="(AppId)" :data-appurl="(chatUrl)" :data-type="10" @click="tplGoToPage" v-if="(chatUrl)">
|
||
<view class="m-footer-btn-icon">
|
||
<!--<contact-button size="27" type="default-dark" session-from="weapp">
|
||
</contact-button>-->
|
||
<label class="iconfont icon-more "></label>
|
||
</view>
|
||
<text>{{ __('客服') }}</text>
|
||
</view>
|
||
<view data-url="/pages/index/cart" class="m-footer-btn-item" @click="goTabBar">
|
||
<view class="m-footer-btn-icon">
|
||
<label class="iconfont icon-cart "></label>
|
||
<uni-badge v-if="cartNum>0" :text="cartNum" type="danger" style="margin-top: -12rpx;margin-left: -12rpx;"></uni-badge>
|
||
</view>
|
||
<text>{{ __('购物车') }}</text>
|
||
</view>
|
||
</view>
|
||
<block v-if="(!ProductInfo.normalStatus)">
|
||
<view class="m-footer-btn-main m-footer-desable m-footer-btn-main-left">
|
||
{{ __('立即购买') }}
|
||
</view>
|
||
<view class="m-footer-btn-main m-footer-desable m-footer-btn-main-right">
|
||
{{ __('商品已下架') }}
|
||
</view>
|
||
</block>
|
||
<block v-else-if="(!ProductInfo.ifStore)">
|
||
<view class="m-footer-btn-main m-footer-desable m-footer-btn-main-left">
|
||
{{ __('立即购买') }}
|
||
</view>
|
||
<view class="m-footer-btn-main m-footer-desable m-footer-btn-main-right">
|
||
{{ __('库存不足') }}
|
||
</view>
|
||
</block>
|
||
<block v-else>
|
||
<block v-if="ProductInfo.activity_type_id == StateCode.ACTIVITY_TYPE_GROUPBOOKING">
|
||
<view v-if="true" class="m-footer-btn-main m-footer-btn-main-left" :data-type="1" @click="ckselectsp">
|
||
{{ __('加入购物车') }}
|
||
</view>
|
||
<view v-if="(ProductInfo.SpecLst.length>0)" class="m-footer-btn-main m-footer-btn-main-right m-now" @click="ckselectsp1">
|
||
{{ isJoin ? __('立即参团') : __('发起拼团') }}
|
||
</view>
|
||
<view v-else class="m-footer-btn-main m-footer-btn-main-right m-now" @click.stop="immediatelyGroupbooking">
|
||
<!-- 不需要选择数量使用: buynow -->
|
||
{{ isJoin ? __('立即参团') : __('发起拼团') }}
|
||
</view>
|
||
</block>
|
||
<block v-else>
|
||
<view class="m-footer-btn-main m-footer-btn-main-left" @click="ckselectsp">
|
||
{{ __('加入购物车') }}
|
||
</view>
|
||
<view v-if="(ProductInfo.SpecLst.length>0)" class="m-footer-btn-main m-footer-btn-main-right m-now" @click="ckselectsp1">
|
||
{{ __('立即购买') }}
|
||
</view>
|
||
<view v-else class="m-footer-btn-main m-footer-btn-main-right m-now" @click.stop="ckselectsp1">
|
||
<!-- 不需要选择数量使用: buynow -->
|
||
{{ __('立即购买') }}
|
||
</view>
|
||
</block>
|
||
</block>
|
||
|
||
|
||
</block>
|
||
</view>
|
||
|
||
<view class="m-footer-btn m-fg-btn bottom-safearea" v-if="(ProductInfo.activityType=='GROUPBOOKING')">
|
||
<view class="m-footer-btn-list">
|
||
<view class="m-footer-btn-item" style="width: 50%;" :data-id="(proId)" :data-name="(store_info.store_name)" :data-keyword="(ProductInfo.keyWord)" :data-appid="(AppId)" :data-appurl="(chatUrl)" v-if="(Config.MULTISHOP_ENABLE && !if_saas_status && !isStoreFlag)">
|
||
<navigator redirect="true" :url="'/pagesub/index/store?store_id=' + (ProductInfo.store_id)" class="u-go-home1">
|
||
<view class="m-footer-btn-icon">
|
||
<!--<contact-button size="27" type="default-dark" session-from="weapp">
|
||
</contact-button>-->
|
||
<label class="iconfont icon-store "></label>
|
||
</view>
|
||
<text>{{ __('店铺') }}</text>
|
||
</navigator>
|
||
</view>
|
||
<view class="m-footer-btn-item" style="width: 50%;" @click="PDCollection" :data-id="(proId)" v-if="(!chatUrl)">
|
||
<view class="m-footer-btn-icon">
|
||
<label :class="'iconfont ' + (isCollection?'icon-favoritesfilling':'icon-favorite') + (isCollection?' highlight ':'')"></label>
|
||
</view>
|
||
<text>{{ isCollection ? __('已收藏') : __('收藏') }}</text>
|
||
</view>
|
||
<view class="m-footer-btn-item" style="width: 50%;" :data-id="(proId)" :data-name="(store_info.store_name)" :data-keyword="(ProductInfo.keyWord)" :data-appid="(AppId)" :data-appurl="(chatUrl)" :data-type="10" @click="tplGoToPage" v-if="(chatUrl)">
|
||
<view class="m-footer-btn-icon">
|
||
<!--<contact-button size="27" type="default-dark" session-from="weapp">
|
||
</contact-button>-->
|
||
<label class="iconfont icon-more "></label>
|
||
</view>
|
||
<text>{{ __('客服') }}</text>
|
||
</view>
|
||
</view>
|
||
|
||
|
||
<block v-if="ProductInfo.activity_type_id == StateCode.ACTIVITY_TYPE_GROUPBOOKING">
|
||
<view v-if="true" class="m-footer-btn-main m-footer-btn-main-left" :data-type="1" @click="ckselectsp">
|
||
<view style="height: 16px;line-height: 26px;font-size: 12px;">{{ __('¥') }}{{ number_format(ProductInfo.ItemSalePrice, 2) }}</view>
|
||
<view style="height: 30px;line-height: 30px;">{{ __('加入购物车') }}</view>
|
||
</view>
|
||
<view v-if="(ProductInfo.SpecLst.length>0)" class="m-footer-btn-main m-footer-btn-main-right m-now" @click="ckselectsp1">
|
||
<view style="height: 16px;line-height: 26px;font-size: 12px;">{{ __('¥') }}{{ number_format(ProductInfo.ShowPrice, 2) }}</view>
|
||
<view style="height: 30px;line-height: 30px;">{{ isJoin ? __('立即参团') : __('发起拼团') }}</view>
|
||
</view>
|
||
<view v-else class="m-footer-btn-main m-footer-btn-main-right m-now" @click.stop="immediatelyGroupbooking">
|
||
<view style="height: 16px;line-height: 26px;font-size: 12px;">{{ __('¥') }}{{ number_format(ProductInfo.ShowPrice, 2) }}</view>
|
||
<!-- 不需要选择数量使用: buynow -->
|
||
<view style="height: 30px;line-height: 30px;">{{ isJoin ? __('立即参团') : __('发起拼团') }}</view>
|
||
</view>
|
||
</block>
|
||
<block v-else>
|
||
<view class="m-footer-btn-main m-footer-btn-main-left" @click="ckselectsp">
|
||
{{ __('加入购物车') }}
|
||
</view>
|
||
<view v-if="(ProductInfo.SpecLst.length>0)" class="m-footer-btn-main m-footer-btn-main-right m-now" @click="ckselectsp1">
|
||
{{ __('立即购买') }}
|
||
</view>
|
||
<view v-else class="m-footer-btn-main m-footer-btn-main-right m-now" @click.stop="ckselectsp1">
|
||
<!-- 不需要选择数量使用: buynow -->
|
||
{{ __('立即购买') }}
|
||
</view>
|
||
</block>
|
||
</view>
|
||
|
||
<view :class="'m-panel-sp ' + (selectsp==0?'hide':'') " @click.stop="closesp">
|
||
<view :class="'m-panel-sp-content ' + (selectct==0?'bounceOutDown animated':'bounceInUp animated')" @click.stop>
|
||
<view class="m-panel-sp-pinfo">
|
||
<view class="m-panel-sp-pimg">
|
||
<image lazy-load :src="(selectimg||ProductInfo.productPicList[0].Path)" />
|
||
</view>
|
||
<view class="m-panel-sp-pname">
|
||
<view class="m-pprice" v-if="(ProductInfo.activityType=='GROUPBOOKING'&&isModified)">
|
||
{{ __('¥') }}{{ number_format(ProductInfo.ItemSalePrice, 2) }}
|
||
</view>
|
||
<view class="m-pprice" v-if="(ProductInfo.activityType!='GROUPBOOKING')">
|
||
|
||
<block v-if="ProductInfo.ShowPrice">
|
||
{{ __('¥') }}{{ number_format(ProductInfo.ShowPrice, 2) }}
|
||
</block>
|
||
|
||
<block v-if="ProductInfo.item_unit_points">
|
||
<text style="margin-left: 20rpx;font-size: 22rpx;">+
|
||
<text style="font-size:26rpx">{{ ProductInfo.item_unit_points }}</text>
|
||
{{ __('积分') }}
|
||
</text>
|
||
</block>
|
||
|
||
<block v-if="ProductInfo.item_unit_sp">
|
||
<text style="margin-left: 20rpx;font-size: 22rpx;">+
|
||
<text style="font-size:26rpx">{{ ProductInfo.item_unit_sp }}</text>
|
||
{{ __('众宝') }}
|
||
</text>
|
||
</block>
|
||
|
||
</view>
|
||
<view class="m-pprice" v-if="(ProductInfo.activityType=='GROUPBOOKING'&&!isModified)">
|
||
{{ __('¥') }}{{ number_format(ProductInfo.ShowPrice, 2) }}
|
||
</view>
|
||
|
||
<view class="m-pstock">{{ sprintf(__('库存%s件'), ProductInfo.ifStore ? ProductInfo.item_quantity : 0) }}
|
||
</view>
|
||
<view v-if="(ProductInfo.SpecLst.length)" class="m-pspec">{{ __('已选择:') }}
|
||
<block v-for="(items, i) in ProductInfo.SpecLst" :key="i">
|
||
<!-- #ifdef H5 -->
|
||
<block v-for="(item, ii) in items.svLst" :key="i + '_' + ii">
|
||
<span v-if="(item.IsChecked)" style="margin-left: 4rpx;">{{ item.Name }}</span>
|
||
</block>
|
||
<!-- #endif -->
|
||
<!-- #ifndef H5 -->
|
||
<block v-for="(item, ii) in items.svLst" :key="ii">
|
||
<span v-if="(item.IsChecked)" style="margin-left: 4rpx;">{{ item.Name }}</span>
|
||
</block>
|
||
<!-- #endif -->
|
||
</block>
|
||
</view>
|
||
</view>
|
||
<view class="uni-icon uni-icon-closeempty m-panel-sp-icon" color="#888" @click="closesp"></view>
|
||
</view>
|
||
<scroll-view class="m-panel-sp-listbox" scroll-y="true">
|
||
<block v-if="b2bFlag && ProductInfo.product_spec.length>0">
|
||
<view class="m-panel-sp-listbox-item">
|
||
<block v-if="(ProductInfo.product_spec[0])">
|
||
<text>{{ ProductInfo.product_spec[0].name }}:</text>
|
||
<block v-for="(items, key1) in ProductInfo.product_spec[0].item" :key="key1">
|
||
<view class="m-panel-sp-labellist1">
|
||
<!-- {{key1}}
|
||
{{ProductInfo.product_spec[0].item}}
|
||
{{typeof(ProductInfo.item_spec[key1])}} :data-unit_id="ProductInfo.item_spec[key1].id"-->
|
||
<label :class="items.select ? 'm-panel-sp-sellabel' : 'm-panel-sp-sellabel-no'" @click="selectS(items, key1, items.name, $event)" :data-ckid="items.select ? ProductInfo.SpecLst[0].svLst[key1].Id : items.id" :data-unit_id="1" :data-spid="items.id" :data-enable="(ProductInfo.spec_item_map[items.id])">{{ items.name }}</label>
|
||
<!-- ckid-颜色id unitid-规格id spid 规格商品id-->
|
||
</view>
|
||
<view class="m-panel-sp-labellist" :class="items.select ? 'm-panel-sp-labellist' : 'm-panel-sp-labellist2'">
|
||
</view>
|
||
</block>
|
||
</block>
|
||
<block v-for="(item, ii) in product_uniqid" :key="ii">
|
||
<label :class="item[6] == color ? 'm-panel-sp-sellabel m-ys' : 'm-panel-sp-sellabel1 m-ys'" style="width:94%;float:left;height:50rpx;line-height:50rpx;overflow:hidden;padding-left:10rpx;">
|
||
{{ item[4] }}
|
||
<view class="u-cart-num" style="margin-top:-6rpx;float:right">
|
||
<view class="example-body" style="height:100%">
|
||
<uni-number-box :min="0" :max="item[5]" :value="numberValue" :id="ii" @change="changes($event, ii)" />
|
||
</view>
|
||
</view>
|
||
<text style="float:right">{{ sprintf(__('库存%s件'), item[5] ? item[5] : 0) }}</text>
|
||
</label>
|
||
</block>
|
||
</view>
|
||
</block>
|
||
<block v-for="(items, key1) in ProductInfo.SpecLst" :key="key1" v-else>
|
||
<view class="m-panel-sp-listbox-item">
|
||
<view class="m-cells-title">{{ items.Name }}</view>
|
||
<view class="m-panel-sp-labellist">
|
||
<text>{{ ProductInfo.product_spec[key1].name }}:</text>
|
||
<!-- #ifdef H5 -->
|
||
<block v-for="(item, ii) in items.svLst" :key="key1 + '_' + ii">
|
||
<label v-if="(item.IsChecked)" class="m-panel-sp-sellabel">{{ item.Name }}</label>
|
||
<label v-else :data-ckid="(items.ckid)" :data-unit_id="(items.unit_id)" :data-spid="(item.Id)" :data-enable="(ProductInfo.spec_item_map[item.Id])" :class="(ProductInfo.spec_item_map[item.Id] ? ' ' : 'item_disabled')" @click.stop="selectSpec">{{ item.Name }}
|
||
</label>
|
||
</block>
|
||
<!-- #endif -->
|
||
<!-- #ifndef H5 -->
|
||
<block v-for="(item, ii) in items.svLst" :key="ii">
|
||
<label v-if="(item.IsChecked)" class="m-panel-sp-sellabel">{{ item.Name }}</label>
|
||
<label v-else :data-ckid="(items.ckid)" :data-unit_id="(items.unit_id)" :data-spid="(item.Id)" :data-enable="(ProductInfo.spec_item_map[item.Id])" :class="(ProductInfo.spec_item_map[item.Id] ? ' ' : 'item_disabled')" @click.stop="selectSpec">{{ item.Name }}
|
||
</label>
|
||
</block>
|
||
<!-- #endif -->
|
||
</view>
|
||
</view>
|
||
</block>
|
||
|
||
<!-- <view style="height:96rpx;width:100%;"></view> -->
|
||
</scroll-view>
|
||
<view style="height:calc(140rpx + env(safe-area-inset-bottom))"></view>
|
||
<view :class="['m-m-panel-sp-btn', (ProductInfo.ifStore && ProductInfo.normalStatus) ? '' : 'm-footer-desable']">
|
||
<view class="m-pprice" style="width:50%;float:left;height:100rpx;line-height:100rpx;text-align:center" v-if="b2bFlag && ProductInfo.product_spec.length>0">
|
||
{{ __('¥') }}{{ number_format(price, 2) }} {{ __('数量:') }} {{ quantity }}
|
||
</view>
|
||
<view class="m-m-panel-sp-lbtn" :style="(ProductInfo.activity_type_id == StateCode.ACTIVITY_TYPE_GROUPBOOKING&&isModified==false?'display:none':'')" v-else>
|
||
<view style="width: 100rpx">{{ __('数量') }}</view>
|
||
<view class="u-cart-num" style="margin-top:10rpx">
|
||
<view class="u-num-btn" @click.stop="sub">-</view>
|
||
<input type="number" v-model="numval" @blur="writenum" />
|
||
<view class="u-num-btn" @click.stop="add">+</view>
|
||
</view>
|
||
</view>
|
||
|
||
<block v-if="(ProductInfo.activity_type_id == StateCode.ACTIVITY_TYPE_GROUPBOOKING)">
|
||
<view v-if="(!ProductInfo.normalStatus)" class="m-m-panel-sp-rbtn m-footer-btn-main-right m-footer-desable" style="width:100%">
|
||
{{ __('商品已下架') }}
|
||
</view>
|
||
<view v-else-if="(!ProductInfo.ifStore)" class="m-m-panel-sp-rbtn m-footer-btn-main-right m-footer-desable" style="width:100%">
|
||
{{ __('库存不足') }}
|
||
</view>
|
||
<block v-else>
|
||
<block v-if="(addCartFlag)">
|
||
<view v-if="(b2bFlag && ProductInfo.product_spec.length>0)" class="m-m-panel-sp-rbtn m-footer-btn-main" style="width:100%" @click.stop="addCart">
|
||
{{ __('加入购物车') }}
|
||
</view>
|
||
<view v-else class="m-m-panel-sp-rbtn m-footer-btn-main-right" style="width:100%" @click.stop="addCart">
|
||
{{ __('加入购物车') }}
|
||
</view>
|
||
</block>
|
||
<view class="m-m-panel-sp-rbtn m-footer-btn-main-right" style="width:100%" @click.stop="immediatelyGroupbooking" v-else-if="(!isJoin)">
|
||
{{ __('立即开团') }}
|
||
</view>
|
||
<view class="m-m-panel-sp-rbtn m-footer-btn-main-right" style="width:100%" @click.stop="immediatelyGroupbooking" v-else-if="(isJoin)">
|
||
{{ __('立即参团') }}
|
||
</view>
|
||
</block>
|
||
</block>
|
||
<block v-else>
|
||
<view v-if="(!ProductInfo.normalStatus)" class="m-m-panel-sp-rbtn m-footer-btn-main-right m-footer-desable" style="width:100%">
|
||
{{ __('商品已下架') }}
|
||
</view>
|
||
<view v-else-if="(!ProductInfo.ifStore)" class="m-m-panel-sp-rbtn m-footer-btn-main-right m-footer-desable" style="width:100%">
|
||
{{ __('库存不足') }}
|
||
</view>
|
||
<block v-else-if="ProductInfo.kind_id != 1201">
|
||
<view class="m-m-panel-sp-rbtn m-footer-btn-main-right" @click.stop="buynow">
|
||
{{ __('立即预约') }}
|
||
</view>
|
||
</block>
|
||
<block v-else>
|
||
<block v-if="(addCartFlag)">
|
||
<view v-if="(b2bFlag && ProductInfo.product_spec.length>0)" class="m-m-panel-sp-rbtn m-footer-btn-main" @click.stop="addCart">
|
||
{{ __('加入购物车') }}
|
||
</view>
|
||
<view v-else class="m-m-panel-sp-rbtn m-footer-btn-main-right" @click.stop="addCart">
|
||
{{ __('加入购物车') }}
|
||
</view>
|
||
</block>
|
||
<block v-else-if="(buyFlag)">
|
||
<view v-if="(b2bFlag && ProductInfo.product_spec.length>0)" class="m-m-panel-sp-rbtn m-footer-btn-main" @click.stop="buynow">
|
||
{{ __('立即购买') }}
|
||
</view>
|
||
<view v-else class="m-m-panel-sp-rbtn m-footer-btn-main-right" @click.stop="buynow">
|
||
<label v-if="ProductInfo.kind_id != 1201">{{ __('立即预约') }}</label>
|
||
<label v-else>{{ __('立即购买') }}</label>
|
||
</view>
|
||
</block>
|
||
</block>
|
||
</block>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</block>
|
||
<view class="m-nullpage" v-else>
|
||
<view class="m-nullpage-middle" v-if="loaded">
|
||
<label class="iconfont icon-meiyougengduo"></label>
|
||
<view class="m-null-tip">
|
||
<text>{{ __('什么都没有!') }}</text>
|
||
</view>
|
||
</view>
|
||
<view class="m-nullpage-middle" v-else>
|
||
<loading></loading>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 弹出层 -->
|
||
<uni-popup ref="popup" type="center">
|
||
<block v-if="activity_type_id == StateCode.ACTIVITY_TYPE_GIFTBAG">
|
||
<view class="uni-banner giftbag" v-if="ProductInfo.giftbag_item_data" style="box-shadow: 2px 9px 11px #001;background:#FFFFFF;border-radius: 7px;width: 680rpx;height:700rpx;padding:26rpx;">
|
||
<label class="activity-title">{{ ProductInfo.activity_item_row.activity_name }}</label>
|
||
<scroll-view class="scroll-view_H" scroll-x="true">
|
||
<view class="scroll-view-item_H" v-for="(g_b_item,i) in ProductInfo.giftbag_item_data" :key="i">
|
||
<view>
|
||
<view hover-class="none" :data-pid="(g_b_item.item_id)" :data-state="(g_b_item.product_state_id)" @click="gotoDetail">
|
||
<view class="product-l-img">
|
||
<image style="width:100%;height:100%" :src="g_b_item.product_image" />
|
||
</view>
|
||
|
||
<view class="product-l-price">
|
||
<view class="product_name">
|
||
<label>{{ g_b_item.product_name }}</label>
|
||
</view>
|
||
<view class="m-project-tips" v-if="false">
|
||
<label>X{{ (g_b_item.activity_quantity) }}</label>
|
||
</view>
|
||
<view class="price-new" style="color:#c0a080;">
|
||
<label>{{ __('¥') }}{{ number_format(g_b_item.item_unit_price, 2) }}</label>
|
||
<label style="margin-left: 10rpx">x {{ (g_b_item.activity_quantity) }}</label>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
|
||
<view class="gift-rule">
|
||
{{ __('套餐内包含以上商品,原价共') }}
|
||
<span style="color: red;font-size: 16px;font-weight: bold;">{{ ProductInfo.activity_old_price }}</span>
|
||
{{ __('元,组合购买价') }}
|
||
<span style="color: red;font-size: 16px;font-weight: bold;">{{ ProductInfo.activity_item_row.activity_rule.giftbag_amount }}</span>
|
||
{{ __('元,可省去') }}<span style="color: red;font-size: 16px;font-weight: bold;">{{ ProductInfo.activity_diff_price }}</span>{{ __('元') }}
|
||
</view>
|
||
|
||
<view class="go_buy">
|
||
<button type="warn" class="mini-btn" @click="goGiftBag" style="border-radius:7px!important;line-height:96rpx;height: 48px;background:#2c394d;font-size:18px;width: 100%;">
|
||
{{ __('立即购买') }}
|
||
</button>
|
||
</view>
|
||
</view>
|
||
</block>
|
||
|
||
<block v-if="activity_type_id == StateCode.ACTIVITY_TYPE_GIFT">
|
||
<view class="uni-banner giftbag" v-if="ProductInfo.gift_rows" style="box-shadow: 2px 9px 11px #001;background:#FFFFFF;border-radius: 7px;width: 680rpx;height:700rpx;padding:26rpx;">
|
||
<label class="activity-title">{{ ProductInfo.activity_item_row.activity_name }}</label>
|
||
<scroll-view class="scroll-view_H" scroll-x="true">
|
||
<view class="scroll-view-item_H" v-for="(g_item,i) in ProductInfo.activity_item_row.activity_rule.item_rows" :key="i">
|
||
<view>
|
||
<view hover-class="none" :data-pid="(g_item.item_id)" :data-state="(g_item.product_state_id)" @click="gotoDetail">
|
||
<view class="product-l-img">
|
||
<image style="width:100%;height:100%" :src="g_item.product_image" />
|
||
</view>
|
||
|
||
<view class="product-l-price">
|
||
<view class="product_name">
|
||
<label>{{ g_item.product_name }}</label>
|
||
</view>
|
||
<view class="m-project-tips">
|
||
<label></label>
|
||
</view>
|
||
<view class="price-new" style="color:#c0a080;">
|
||
<label>{{ __('¥') }}{{ number_format(g_item.item_unit_price, 2) }}</label>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
<block v-if="ProductInfo.activity_item_row.activity_rule.activity_join_mode == 1">
|
||
<view class="gift-rule" v-for="(rule,r) in ProductInfo.activity_item_row.activity_rule.rule" :key="r">
|
||
<!--按数量-->
|
||
{{ sprintf(__('当前商品购买%s件,赠送以上商品自选最多%s件'), rule.total, rule.max_num) }}
|
||
</view>
|
||
</block>
|
||
|
||
<block v-else>
|
||
<view class="gift-rule" v-for="(rule,r) in ProductInfo.activity_item_row.activity_rule.rule" :key="r">
|
||
<!--按数量-->
|
||
{{ sprintf(__('当前商品购买满%s元,赠送以上商品自选最多%s件'), rule.total, rule.max_num) }}
|
||
</view>
|
||
</block>
|
||
</view>
|
||
</block>
|
||
|
||
<block v-if="activity_type_id == StateCode.ACTIVITY_TYPE_BARGAIN">
|
||
<view class="uni-banner giftbag" v-if="ProductInfo.activity_item_row" style="box-shadow: 2px 9px 11px #001;background:#FFFFFF;border-radius: 7px;width: 680rpx;height:700rpx;padding:26rpx;">
|
||
<label class="activity-title">{{ ProductInfo.activity_item_row.activity_name }}</label>
|
||
<scroll-view class="scroll-view_H" scroll-x="true">
|
||
<view class="scroll-view-item_H" v-for="(g_item,i) in ProductInfo.activity_item_row.activity_rule.item_rows" :key="i">
|
||
<view>
|
||
<view hover-class="none" :data-pid="(g_item.item_id)" :data-state="(g_item.product_state_id)" @click="gotoDetail">
|
||
<view class="product-l-img">
|
||
<image style="width:100%;height:100%" :src="g_item.product_image" />
|
||
</view>
|
||
|
||
<view class="product-l-price">
|
||
<view class="product_name">
|
||
<label>{{ g_item.product_name }}</label>
|
||
</view>
|
||
<view class="m-project-tips">
|
||
<label></label>
|
||
</view>
|
||
<view class="price-new" style="color:#c0a080;">
|
||
<label>{{ __('¥') }}{{ number_format(g_item.item_replace_price, 2) }}</label>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
|
||
<block>
|
||
<view class="gift-rule" v-for="(rule,r) in ProductInfo.activity_item_row.activity_rule.rule" :key="r">
|
||
<!--按数量-->
|
||
{{ sprintf(__('购买同一加价购活动商品满%s元,可换购商品%s件'), rule.total, rule.max_num) }}
|
||
</view>
|
||
</block>
|
||
</view>
|
||
</block>
|
||
|
||
<block v-if="activity_type_id == StateCode.ACTIVITY_TYPE_REDUCTION">
|
||
<view class="uni-banner giftbag" v-if="ProductInfo.activity_item_row" style="box-shadow: 2px 9px 11px #001;background:#FFFFFF;border-radius: 7px;width: 680rpx;padding:26rpx;">
|
||
<label class="activity-title">{{ ProductInfo.activity_item_row.activity_title }}</label>
|
||
<scroll-view class="scroll-view_H" scroll-x="true">
|
||
<view class="scroll-view-item_H" v-if="ProductInfo.activity_item_row" v-for="(reduction_again_item,i) in ProductInfo.activity_item_row.reduction_item_data" :key="i">
|
||
<view>
|
||
<view hover-class="none" :data-pid="(reduction_again_item.item_id)" :data-state="(reduction_again_item.product_state_id)" @click="gotoDetail">
|
||
<view class="product-l-img">
|
||
<image style="width:100%;height:100%" :src="reduction_again_item.product_image" />
|
||
</view>
|
||
|
||
<view class="product-l-price">
|
||
<view class="product_name">
|
||
<label>{{ reduction_again_item.product_name }}</label>
|
||
</view>
|
||
<view class="price-new" style="color:#c0a080;">
|
||
<label>{{ __('¥') }}{{ number_format(reduction_again_item.item_unit_price, 2) }}</label>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
|
||
<view class="gift-rule">
|
||
<view v-if="ProductInfo.activity_item_row.reduction_rule" v-for="(rule_items, r) in ProductInfo.activity_item_row.reduction_rule" :key="r">
|
||
满<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.total }}</span>元,可省去<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.max_num }}</span>元
|
||
</view>
|
||
</view>
|
||
|
||
</view>
|
||
</block>
|
||
|
||
<block v-if="activity_type_id == StateCode.ACTIVITY_TYPE_MANHUI">
|
||
<view class="uni-banner giftbag" v-if="ProductInfo.activity_item_row" style="box-shadow: 2px 9px 11px #001;background:#FFFFFF;border-radius: 7px;width: 680rpx;padding:26rpx;">
|
||
<label class="activity-title">{{ ProductInfo.activity_item_row.activity_title }}</label>
|
||
<scroll-view class="scroll-view_H" scroll-x="true">
|
||
<view class="scroll-view-item_H" v-if="ProductInfo.activity_item_row" v-for="(reduction_again_item,i) in ProductInfo.activity_item_row.activity_rule.item_rows" :key="i">
|
||
<view>
|
||
<view hover-class="none" :data-pid="(reduction_again_item.item_id)" :data-state="(reduction_again_item.product_state_id)" @click="gotoDetail">
|
||
<view class="product-l-img">
|
||
<image style="width:100%;height:100%" :src="reduction_again_item.product_image" />
|
||
</view>
|
||
|
||
<view class="product-l-price">
|
||
<view class="product_name">
|
||
<label>{{ reduction_again_item.product_name }}</label>
|
||
</view>
|
||
<view class="price-new" style="color:#c0a080;">
|
||
<label>{{ __('¥') }}{{ number_format(reduction_again_item.item_unit_price, 2) }}</label>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
|
||
<view class="gift-rule">
|
||
<view v-if="ProductInfo.activity_item_row.activity_rule" v-for="(rule_items, r) in ProductInfo.activity_item_row.activity_rule.rule" :key="r">
|
||
单笔订单满<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.total }}</span>元,可返<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.activity_title }}</span>满返券
|
||
</view>
|
||
</view>
|
||
|
||
</view>
|
||
</block>
|
||
|
||
<block v-if="activity_type_id == StateCode.ACTIVITY_TYPE_MULTIPLE_FOLD">
|
||
<view class="uni-banner giftbag" v-if="ProductInfo.fold_rows" style="box-shadow: 2px 9px 11px #001;background:#FFFFFF;border-radius: 7px;width: 680rpx;padding:26rpx;">
|
||
<label class="activity-title">{{ ProductInfo.activity_item_row.activity_title }}</label>
|
||
<scroll-view class="scroll-view_H" scroll-x="true">
|
||
<view class="scroll-view-item_H" v-if="ProductInfo.fold_rows" v-for="(fold_rows_item,i) in ProductInfo.fold_rows" :key="i">
|
||
<view>
|
||
<view hover-class="none" :data-pid="(fold_rows_item.item_id)" :data-state="(fold_rows_item.product_state_id)" @click="gotoDetail">
|
||
<view class="product-l-img">
|
||
<image style="width:100%;height:100%" :src="fold_rows_item.product_image" />
|
||
</view>
|
||
|
||
<view class="product-l-price">
|
||
<view class="product_name">
|
||
<label>{{ fold_rows_item.product_name }}</label>
|
||
</view>
|
||
<view class="price-new" style="color:#c0a080;">
|
||
<label>{{ __('¥') }}{{ number_format(fold_rows_item.item_unit_price, 2) }}</label>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
|
||
<view class="gift-rule">
|
||
<view v-if="ProductInfo.activity_item_row.activity_rule.rule" v-for="(rule_items, r) in ProductInfo.activity_item_row.activity_rule.rule" :key="r">
|
||
购买活动任意产品满<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.total }}</span>件,可打<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.max_num / 10 }}</span>折
|
||
</view>
|
||
</view>
|
||
|
||
</view>
|
||
</block>
|
||
<block v-if="activity_type_id == StateCode.ACTIVITY_TYPE_REDUCTION_AGAIN">
|
||
<view class="uni-banner giftbag" v-if="ProductInfo.activity_item_row" style="box-shadow: 2px 9px 11px #001;background:#FFFFFF;border-radius: 7px;width: 680rpx;padding:26rpx;">
|
||
<label class="activity-title">{{ ProductInfo.activity_item_row.activity_title }}</label>
|
||
<scroll-view class="scroll-view_H" scroll-x="true">
|
||
<view class="scroll-view-item_H" v-for="(reduction_again_item,i) in ProductInfo.activity_item_row.activity_rule.item_rows" :key="i">
|
||
<view>
|
||
<view hover-class="none" :data-pid="(reduction_again_item.item_id)" :data-state="(reduction_again_item.product_state_id)" @click="gotoDetail">
|
||
<view class="product-l-img">
|
||
<image style="width:100%;height:100%" :src="reduction_again_item.product_image" />
|
||
</view>
|
||
|
||
<view class="product-l-price">
|
||
<view class="product_name">
|
||
<label>{{ reduction_again_item.product_name }}</label>
|
||
</view>
|
||
<view class="price-new" style="color:#c0a080;">
|
||
<label>{{ __('¥') }}{{ number_format(reduction_again_item.item_unit_price, 2) }}</label>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
|
||
<view class="gift-rule">
|
||
<view v-if="ProductInfo.activity_item_row.activity_rule.rule" v-for="(rule_items, r) in ProductInfo.activity_item_row.activity_rule.rule" :key="r">
|
||
单笔订单满<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.total }}</span>元,可折上折<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.max_num }}</span>元
|
||
</view>
|
||
</view>
|
||
|
||
</view>
|
||
</block>
|
||
<block v-if="activity_type_id == StateCode.ACTIVITY_TYPE_DOUBLE_POINTS">
|
||
<view class="uni-banner giftbag" v-if="ProductInfo.activity_item_row" style="box-shadow: 2px 9px 11px #001;background:#FFFFFF;border-radius: 7px;width: 680rpx;padding:26rpx;">
|
||
<label class="activity-title">{{ ProductInfo.activity_item_row.activity_title }}</label>
|
||
<scroll-view class="scroll-view_H" scroll-x="true">
|
||
<view class="scroll-view-item_H" v-for="(reduction_again_item,i) in ProductInfo.activity_item_row.activity_rule.item_rows" :key="i">
|
||
<view>
|
||
<view hover-class="none" :data-pid="(reduction_again_item.item_id)" :data-state="(reduction_again_item.product_state_id)" @click="gotoDetail">
|
||
<view class="product-l-img">
|
||
<image style="width:100%;height:100%" :src="reduction_again_item.product_image" />
|
||
</view>
|
||
|
||
<view class="product-l-price">
|
||
<view class="product_name">
|
||
<label>{{ reduction_again_item.product_name }}</label>
|
||
</view>
|
||
<view class="price-new" style="color:#c0a080;">
|
||
<label>{{ __('¥') }}{{ number_format(reduction_again_item.item_unit_price, 2) }}</label>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
|
||
<view class="gift-rule">
|
||
<view v-if="ProductInfo.activity_item_row.activity_rule.rule" v-for="(rule_items, r) in ProductInfo.activity_item_row.activity_rule.rule" :key="r">
|
||
<view v-if="ProductInfo.activity_item_row.activity_rule.activity_join_mode == 2">
|
||
单笔订单满<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.total }}</span>元,可返积分倍数<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.points_double }}</span>,
|
||
返积分基数<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.points_standard }}</span>
|
||
</view>
|
||
<view v-else>
|
||
单笔订单该活动商品件数满<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.total }}</span>件,可返积分倍数<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.points_double }}</span>,
|
||
返积分基数<span style="color: red;font-size: 16px;font-weight: bold;">{{ rule_items.points_standard }}</span>
|
||
</view>
|
||
|
||
</view>
|
||
</view>
|
||
|
||
</view>
|
||
</block>
|
||
|
||
|
||
</uni-popup>
|
||
|
||
<view :class="'m-panel-sp ' + (shareBoxFlag==0?'hide':'') " @click.stop="closeNativeShare">
|
||
<view :class="'m-panel-sp-content ' + (shareContetnFlag==0?'bounceOutDown animated':'bounceInUp animated')" @click.stop>
|
||
<view class="page-body">
|
||
<!-- #ifdef APP-PLUS -->
|
||
<view class="btn-area" v-if="providerList.length > 0">
|
||
<block v-for="(value,index) in providerList" :key="index">
|
||
<button type="primary" v-if="value" :disabled="shareType === 5 && value.name !== '分享到微信好友'" @tap="share(value)">{{ value.name }}
|
||
</button>
|
||
</block>
|
||
</view>
|
||
<!-- #endif -->
|
||
<!-- #ifdef MP-WEIXIN -->
|
||
<view class="btn-area">
|
||
<button type="primary" open-type="share">{{ __('分享') }}</button>
|
||
</view>
|
||
<!-- #endif -->
|
||
|
||
<view class="uni-icon uni-icon-closeempty m-panel-sp-icon" color="#888" @click="closeNativeShare"></view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- #ifdef APP-PLUS -->
|
||
<share-box-app :shareDataDefault="shareData" ref="shareBoxApp"></share-box-app>
|
||
<!-- #endif -->
|
||
|
||
<!-- #ifdef H5 -->
|
||
<share-box-h5 :shareDataDefault="shareData" ref="shareBoxH5"></share-box-h5>
|
||
<!-- #endif -->
|
||
|
||
<!-- #ifndef APP-PLUS -->
|
||
<share-box-mp :shareDataDefault="shareData" @cancelShare="cancelShare" @showCodeImg="showCodeImg" @shareQRCode="shareQRCode" @saveImg="saveImg" ref="shareBoxMp"></share-box-mp>
|
||
<!-- #endif -->
|
||
|
||
<mpvue-city-picker :themeColor="themeColor" ref="mpvueCityPicker" :pickerValueDefault="cityPickerValueDefault" @onCancel="onCancel" @onConfirm="onConfirm"></mpvue-city-picker>
|
||
|
||
<quick-nav @onReturnTop="onReturnTop" @onShareBox="onShareBox" :isquicknav="isquicknav" v-show="selectsp==0"></quick-nav>
|
||
<loginPopup :show="showLoginPopup" @close="closeLoginPopup"></loginPopup>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
function getNowFormatDate() {
|
||
var e = new Date(),
|
||
t = "-",
|
||
n = e.getMonth() + 1,
|
||
r = e.getDate();
|
||
n >= 1 && n <= 9 && (n = "0" + n), r >= 0 && r <= 9 && (r = "0" + r);
|
||
var i = e.getFullYear() + t + n + t + r;
|
||
return i;
|
||
}
|
||
|
||
import uniPopup from "../../components/uni-popup/uni-popup.vue";
|
||
import mpvueCityPicker from "../../components/mpvue-citypicker/mpvueCityPicker.vue";
|
||
|
||
import wxParse from "@/components/u-parse/u-parse.vue";
|
||
|
||
import shareBoxMp from "../../components/share-box-mp.vue";
|
||
import shareBoxApp from "../../components/share-box-app.vue";
|
||
import shareBoxH5 from "../../components/share-box-h5.vue";
|
||
|
||
import quickNav from "../../components/quick-nav.vue";
|
||
import headerNavMenu from "../../components/header-nav-menu.vue";
|
||
|
||
import uniBadge from "../../components/uni-badge.vue";
|
||
import uniNumberBox from "@/components/uni-number-box/uni-number-box.vue";
|
||
import uniTag from "@/components/uni-tag/uni-tag.vue";
|
||
import loading from "@/components/loading.vue";
|
||
import { mapMutations, mapState } from "vuex";
|
||
import loginPopup from "../../components/loginPopup.vue";
|
||
var intervalDate;
|
||
var intervalPt;
|
||
var intervalCt;
|
||
var intervalTimeAct;
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
numberValue: 0,
|
||
b2bFlag: 0,
|
||
proIds: [],
|
||
product_uniqid: [],
|
||
ss: ["ss1", "ss2", "ss3", "ss4", "ss5"],
|
||
color: "",
|
||
price: 0,
|
||
quantity: 0,
|
||
|
||
options: {},
|
||
isMore: false,
|
||
selectsp: 0,
|
||
selectct: 0,
|
||
proId: 0,
|
||
CommentImgList: [],
|
||
splist: [],
|
||
splistStr: [],
|
||
numval: 1,
|
||
stock: 1,
|
||
inputval: 1,
|
||
skuid: 0,
|
||
selectimg: "",
|
||
pname: "",
|
||
desc: "",
|
||
isCollection: false,
|
||
MEID: 0,
|
||
activity_id: 0,
|
||
activity_type_id: 0,
|
||
gb_id: null,
|
||
eventId: 0,
|
||
Parameters: [],
|
||
acticity_ids: [],
|
||
isdata: false,
|
||
loaded: false,
|
||
tapindex: 1,
|
||
IsChannel: true,
|
||
FGInfo: {},
|
||
GB_rows: [],
|
||
isAll: false,
|
||
Time: {},
|
||
ProductInfo: {
|
||
productPicList: [],
|
||
last_comment_row: {},
|
||
last_comment_rows: [],
|
||
analytics_row: {},
|
||
contractlist: [],
|
||
},
|
||
store_product_list: [],
|
||
store_product_num: 0,
|
||
faq_rows: [],
|
||
store_info: {},
|
||
chain_rows: [],
|
||
Coupons: [],
|
||
isCancelSuccess: true,
|
||
isCancel: true,
|
||
CouponAmount: 0,
|
||
user_is_new: 0,
|
||
addCartFlag: false, //{{__('加入购物车')}}标记
|
||
buyFlag: false, //{{__('立即购买')}}标记
|
||
isVoucher: false,
|
||
virtual_flag: false,
|
||
versionNumber: "",
|
||
CashData: {},
|
||
PageQRCodeInfo: {
|
||
Path: "",
|
||
IsShare: false,
|
||
IsShareBox: false,
|
||
IsJT: false,
|
||
},
|
||
isModified: true,
|
||
timer: null,
|
||
days: "",
|
||
hours: "",
|
||
minutes: "",
|
||
seconds: "",
|
||
isShare: true,
|
||
if_saas_status: false,
|
||
isStoreFlag: 0, //店铺内打开
|
||
voucherList: [],
|
||
voucherReceiveAllFlag: false,
|
||
|
||
AppId: "",
|
||
chatUrl: "",
|
||
|
||
isJoin: false,
|
||
|
||
ispage: false,
|
||
|
||
shareData: {
|
||
shareText: "同城特惠,一站式购买小发精选好物。",
|
||
shareTitle: "大型综合体商城,30分钟送货到家",
|
||
href: "https://gpxscs.cn/",
|
||
image: "",
|
||
price: 0,
|
||
},
|
||
|
||
shareText: "同城特惠,一站式购买小发精选好物。",
|
||
shareTitle: "大型综合体商城,30分钟送货到家",
|
||
href: "https://gpxscs.cn/",
|
||
image: "",
|
||
|
||
shareBoxFlag: 0,
|
||
shareContetnFlag: 0,
|
||
|
||
shareType: 0,
|
||
providerList: [],
|
||
|
||
wholesale_policy_rows: [],
|
||
scposition: 0,
|
||
old: {
|
||
scposition: 0,
|
||
},
|
||
isnav: true,
|
||
screenHeight: 0,
|
||
isquicknav: false,
|
||
|
||
Id: 0,
|
||
needed_point: 0,
|
||
|
||
cityPickerValueDefault: [1, 2, 3],
|
||
themeColor: "#007AFF",
|
||
product_freight_info: {
|
||
content: "无货",
|
||
district_info: "上海市/上海市",
|
||
if_store: false,
|
||
},
|
||
|
||
latitude: "",
|
||
longitude: "",
|
||
url: "",
|
||
is_chain: 0,
|
||
currentSwipperImageIndex: 1,
|
||
showLoginPopup: false,
|
||
};
|
||
},
|
||
metaInfo() {
|
||
return {
|
||
meta: [
|
||
{
|
||
name: "og:url",
|
||
content: this.$.sprintf(
|
||
"%s/h5/pages/product/detail?pid=%d&uid=%d",
|
||
this.Config.SiteUrl,
|
||
this.proId,
|
||
this.userInfo.user_id
|
||
),
|
||
},
|
||
{
|
||
name: "og:type",
|
||
content: "article",
|
||
},
|
||
{
|
||
name: "og:title",
|
||
content: this.pname,
|
||
},
|
||
{
|
||
name: "og:description",
|
||
content: this.desc || this.pname,
|
||
},
|
||
{
|
||
name: "og:image",
|
||
content: this.ProductInfo.productPicList.length
|
||
? this.ProductInfo.productPicList[0].Path
|
||
: "",
|
||
},
|
||
],
|
||
|
||
title: this.pname,
|
||
};
|
||
},
|
||
components: {
|
||
shareBoxMp,
|
||
shareBoxApp,
|
||
shareBoxH5,
|
||
quickNav,
|
||
uniBadge,
|
||
mpvueCityPicker,
|
||
wxParse,
|
||
uniTag,
|
||
uniNumberBox,
|
||
loading,
|
||
headerNavMenu,
|
||
uniPopup,
|
||
loginPopup,
|
||
},
|
||
computed: {
|
||
...mapState([
|
||
"Config",
|
||
"StateCode",
|
||
"notice",
|
||
"plantformInfo",
|
||
"shopInfo",
|
||
"userInfo",
|
||
"hasLogin",
|
||
"cartNum",
|
||
]),
|
||
nav_nemu: function () {
|
||
return [
|
||
{
|
||
url: "/pages/index/index",
|
||
type: "switchTab",
|
||
icon: "zc-dianpu",
|
||
name: this.__("首页"),
|
||
},
|
||
{
|
||
url: "/member/member/message",
|
||
type: "navigate",
|
||
icon: "zc-zaixian-im",
|
||
name: this.__("消息"),
|
||
},
|
||
{
|
||
url: "/member/member/favorites",
|
||
type: "navigate",
|
||
icon: "zc-shoucang11",
|
||
name: this.__("我的关注"),
|
||
},
|
||
{
|
||
url: "/member/member/browse",
|
||
type: "navigate",
|
||
icon: "zc-zuji",
|
||
name: this.__("浏览记录"),
|
||
},
|
||
];
|
||
},
|
||
},
|
||
onLoad: async function (options) {
|
||
uni.setNavigationBarTitle({
|
||
title: this.__("商品详情"),
|
||
});
|
||
|
||
await this.$onLaunched;
|
||
var that = this;
|
||
if (options.scene) {
|
||
var scene = decodeURIComponent(options.scene);
|
||
var opts = {};
|
||
|
||
opts = that.$.parse_str(scene);
|
||
|
||
options = Object.assign(options, opts);
|
||
}
|
||
|
||
that.$.getSystemInfo({
|
||
success: function (t) {
|
||
that.setData({
|
||
screenHeight: t.screenHeight,
|
||
});
|
||
},
|
||
});
|
||
|
||
this.setData({
|
||
options: options,
|
||
isStoreFlag: options.is_store_flag ? parseInt(options.is_store_flag) : 0,
|
||
if_saas_status: this.Config.SAAS_STATUS,
|
||
});
|
||
|
||
/*
|
||
this.setData({
|
||
versionNumber: this.plantformInfo.versionNumber
|
||
});
|
||
*/
|
||
var n = {
|
||
productId: options.pid,
|
||
};
|
||
that.InitData(options);
|
||
|
||
this.getPlantformInfo(function (plantformInfo) {
|
||
that.setData({
|
||
b2bFlag: plantformInfo.config.b2b_flag,
|
||
});
|
||
});
|
||
},
|
||
onShareAppMessage() {
|
||
// #ifdef MP-WEIXIN
|
||
wx.showShareMenu({
|
||
withShareTicket: true,
|
||
menus: ["shareAppMessage", "shareTimeline"],
|
||
});
|
||
// #endif
|
||
|
||
return {
|
||
imageUrl: this.ProductInfo.productPicList[0].Path,
|
||
title: this.pname,
|
||
path:
|
||
"/pages/product/detail?pid=" +
|
||
this.proId +
|
||
"&uid=" +
|
||
this.userInfo.user_id,
|
||
};
|
||
},
|
||
/**
|
||
* 用户点击右上角分享朋友圈
|
||
*/
|
||
onShareTimeline: function () {
|
||
return {
|
||
title: this.pname,
|
||
query: {
|
||
uid: this.userInfo.user_id,
|
||
pid: this.proId,
|
||
},
|
||
imageUrl: this.ProductInfo.productPicList[0].Path,
|
||
};
|
||
},
|
||
onBackPress() {
|
||
if (this.$refs.mpvueCityPicker.showPicker) {
|
||
this.$refs.mpvueCityPicker.pickerCancel();
|
||
return true;
|
||
}
|
||
|
||
// #ifdef APP-PLUS
|
||
if (this.$refs.shareBoxApp.showBoxView) {
|
||
this.$refs.shareBoxApp.cancel();
|
||
return true;
|
||
}
|
||
// #endif
|
||
|
||
// #ifdef H5
|
||
if (this.$refs.shareBoxH5.showBoxView) {
|
||
this.$refs.shareBoxH5.cancel();
|
||
return true;
|
||
}
|
||
// #endif
|
||
|
||
// #ifdef MP-WEIXIN
|
||
if (this.$refs.shareBoxMp.showBoxView) {
|
||
this.$refs.shareBoxMp.cancel();
|
||
return true;
|
||
}
|
||
// #endif
|
||
},
|
||
onUnload() {
|
||
clearInterval(intervalDate);
|
||
clearInterval(intervalPt);
|
||
clearInterval(intervalCt);
|
||
clearInterval(intervalTimeAct);
|
||
|
||
this.showLoginPopup = false;
|
||
|
||
if (this.$refs.mpvueCityPicker.showPicker) {
|
||
this.$refs.mpvueCityPicker.pickerCancel();
|
||
}
|
||
|
||
// #ifdef APP-PLUS
|
||
if (this.$refs.shareBoxApp.showBoxView) {
|
||
this.$refs.shareBoxApp.cancel();
|
||
}
|
||
// #endif
|
||
|
||
// #ifdef H5
|
||
if (this.$refs.shareBoxH5.showBoxView) {
|
||
this.$refs.shareBoxH5.cancel();
|
||
}
|
||
// #endif
|
||
|
||
// #ifdef MP-WEIXIN
|
||
if (this.$refs.shareBoxMp.showBoxView) {
|
||
this.$refs.shareBoxMp.cancel();
|
||
}
|
||
// #endif
|
||
},
|
||
onNavigationBarButtonTap(e) {
|
||
var that = this;
|
||
|
||
if (e.index === 0) {
|
||
that.onMenu(e);
|
||
} else if (e.index === 1) {
|
||
that.onShareBox(e);
|
||
} else {
|
||
uni.showToast({
|
||
title: "你点了收藏按钮",
|
||
icon: "none",
|
||
});
|
||
}
|
||
},
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh: function () {
|
||
this.InitProduct(true);
|
||
},
|
||
methods: {
|
||
...mapMutations([
|
||
"login",
|
||
"logout",
|
||
"getPlantformInfo",
|
||
"forceUserInfo",
|
||
"getUserInfo",
|
||
"setCartNum",
|
||
]),
|
||
//生成的海报图片
|
||
createPoster(e) {
|
||
this.productPoster = e;
|
||
if (this.productPoster) {
|
||
uni.hideLoading();
|
||
this.$refs.shareBoxMp.path = this.productPoster;
|
||
}
|
||
},
|
||
|
||
swiperImg: function (e) {
|
||
this.currentSwipperImageIndex = e.detail.current + 1;
|
||
},
|
||
InitData: function (options) {
|
||
var that = this;
|
||
this.setData({
|
||
proId: options.pid,
|
||
splistStr: [],
|
||
gb_id: parseInt(options.gb_id),
|
||
isJoin:
|
||
!that.$.isNull(options.gb_id) && options.gb_id != 0 ? true : false,
|
||
});
|
||
|
||
that.$.isNull(this.userInfo)
|
||
? this.getUserInfo(function (user) {
|
||
that.InitProduct(false);
|
||
that.setData({
|
||
IsChannel: this.shopInfo.IsChannel,
|
||
});
|
||
that.setData({
|
||
user_is_new: 0,
|
||
//user_is_new: this.userInfo.user_is_new,
|
||
CouponAmount: 10,
|
||
//CouponAmount: this.userInfo.CouponAmount
|
||
});
|
||
})
|
||
: that.InitProduct(false);
|
||
|
||
//that.notice.postNotificationName("RefreshProduct", false)
|
||
},
|
||
initChain: function () {
|
||
let that = this;
|
||
|
||
that.$.getLocation({
|
||
type: "wgs84",
|
||
success: function (response) {
|
||
that.setData({
|
||
latitude: response.latitude,
|
||
longitude: response.longitude,
|
||
});
|
||
|
||
that.getNearChain();
|
||
},
|
||
fail: function () {
|
||
that.setData({
|
||
isdata: true,
|
||
});
|
||
|
||
that.$.confirm(that.__("手机定位失败"));
|
||
|
||
that.getNearChain();
|
||
},
|
||
});
|
||
},
|
||
getNearChain: function () {
|
||
let that = this;
|
||
|
||
let chain_params = {
|
||
store_id: that.store_info.store_id,
|
||
item_id: that.proId,
|
||
lat: that.latitude,
|
||
lng: that.longitude,
|
||
};
|
||
|
||
that.$.request({
|
||
url: that.Config.URL.store.getNearChain,
|
||
data: chain_params,
|
||
loading: false,
|
||
success: function (data, status, msg, code) {
|
||
if (status == 200) {
|
||
for (let i = 0; i < data.items.length; i++) {
|
||
data.items[i]["distance"] = that.$.distanceFormat(
|
||
data.items[i]["distance"]
|
||
);
|
||
|
||
let coord = that.$.bMapTransQQMap(
|
||
data.items[i]["chain_lng"],
|
||
data.items[i]["chain_lat"]
|
||
);
|
||
data.items[i]["chain_lng"] = coord.lng;
|
||
data.items[i]["chain_lat"] = coord.lat;
|
||
}
|
||
|
||
that.setData({
|
||
chain_rows: data.items,
|
||
});
|
||
}
|
||
},
|
||
});
|
||
},
|
||
|
||
gotomap: function (e) {
|
||
console.info(e);
|
||
var that = this;
|
||
|
||
that.$.openLocation({
|
||
latitude: parseFloat(e.currentTarget.dataset.lat),
|
||
longitude: parseFloat(e.currentTarget.dataset.lng),
|
||
name: e.currentTarget.dataset.name,
|
||
address: e.currentTarget.dataset.address,
|
||
scale: 28,
|
||
});
|
||
},
|
||
|
||
gopage: function (e) {
|
||
var that = this;
|
||
|
||
this.$.gotopage(
|
||
"/chain/chain/index?chain_id=" + e.currentTarget.dataset.chain_id
|
||
);
|
||
},
|
||
|
||
call: function (e) {
|
||
let that = this;
|
||
that.$.makePhoneCall({
|
||
phoneNumber: e.currentTarget.dataset.phone,
|
||
});
|
||
},
|
||
|
||
InitProduct: function (force_refresh) {
|
||
if (typeof force_refresh == "undefined") {
|
||
force_refresh = true;
|
||
}
|
||
|
||
var that = this;
|
||
|
||
//存入本地
|
||
let district_id = uni.getStorageSync("district_id");
|
||
|
||
var params = {
|
||
item_id: that.proId,
|
||
gb_id: that.gb_id,
|
||
comment_flag: 1, //如果有,则读取一条评论
|
||
};
|
||
|
||
if (district_id) {
|
||
params.district_id = district_id;
|
||
}
|
||
|
||
that.$.request({
|
||
url: this.Config.URL.product.item,
|
||
data: params,
|
||
loading: false,
|
||
ajaxCache: {
|
||
timeout: this.Config.CACHE_EXPIRE,
|
||
forceRefresh: force_refresh,
|
||
},
|
||
|
||
success: function (data, status, msg, code) {
|
||
if (200 == status) {
|
||
clearInterval(intervalDate);
|
||
clearInterval(intervalPt);
|
||
clearInterval(intervalCt);
|
||
clearInterval(intervalTimeAct);
|
||
that.$report("fb_mobile_content_view", data.item_row);
|
||
|
||
that.setData({
|
||
product_freight_info: data.product_freight_info,
|
||
});
|
||
data.item_row.ProductName = data.item_row.product_item_name;
|
||
data.item_row.ProductTips = data.item_row.product_tips;
|
||
data.item_row.MarketPrice = Math.max(
|
||
data.item_row.item_unit_price,
|
||
data.item_row.item_sale_price,
|
||
data.item_row.item_market_price
|
||
);
|
||
data.item_row.ItemSalePrice = data.item_row.item_unit_price;
|
||
data.item_row.ShowPrice = data.item_row.item_sale_price;
|
||
|
||
if (data.item_row.MarketPrice <= data.item_row.ItemSalePrice) {
|
||
data.item_row.MarketPrice = 0;
|
||
}
|
||
|
||
data.item_row.normalStatus =
|
||
data.item_row.product_state_id ==
|
||
that.StateCode.PRODUCT_STATE_NORMAL;
|
||
data.item_row.ifStore = data.product_freight_info.if_store;
|
||
data.item_row.isShowCountdown =
|
||
that.StateCode.ACTIVITY_TYPE_LIMITED_DISCOUNT ==
|
||
data.item_row.activity_type_id ||
|
||
that.StateCode.ACTIVITY_TYPE_GROUPBOOKING ==
|
||
data.item_row.activity_type_id
|
||
? true
|
||
: false;
|
||
data.item_row.activityType =
|
||
that.StateCode.ACTIVITY_TYPE_GROUPBOOKING ==
|
||
data.item_row.activity_type_id
|
||
? "GROUPBOOKING"
|
||
: false;
|
||
data.item_row.productPicList = [];
|
||
|
||
data.item_row.pv_url =
|
||
"/pagesub/video/video?pid=" +
|
||
data.item_row.product_id +
|
||
"&url=" +
|
||
encodeURIComponent(data.item_row.product_video) +
|
||
"&title=" +
|
||
encodeURIComponent(data.item_row.product_name);
|
||
|
||
for (var i = 0; i < data.item_row.item_image_row.length; i++) {
|
||
data.item_row.productPicList[i] = {};
|
||
data.item_row.productPicList[i].Path =
|
||
data.item_row.item_image_row[i];
|
||
data.item_row.productPicList[i].Video = false;
|
||
}
|
||
data.item_row.SpecLst = [];
|
||
|
||
//for b2b
|
||
data.item_row.Ids = [];
|
||
|
||
for (var t in data.item_row.product_spec) {
|
||
for (var s in data.item_row.product_spec[t].item) {
|
||
if (data.item_row.product_spec[t].item[s].select == 1) {
|
||
that.setData({
|
||
color: data.item_row.product_spec[0].item[0].name,
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
for (var n in data.item_row.product_spec) {
|
||
data.item_row.SpecLst[n] = {};
|
||
data.item_row.SpecLst[n].svLst = [];
|
||
data.item_row.SpecLst[n].unit_id =
|
||
data.item_row.product_spec[n].id;
|
||
|
||
//for b2b
|
||
data.item_row.Ids[n] = {};
|
||
data.item_row.Ids[n].info = [];
|
||
data.item_row.Ids[n].id = data.item_row.product_spec[n].id;
|
||
|
||
for (var r in data.item_row.product_spec[n].item) {
|
||
data.item_row.SpecLst[n].svLst[r] = {};
|
||
data.item_row.SpecLst[n].svLst[r].Id =
|
||
data.item_row.product_spec[n].item[r].id;
|
||
data.item_row.SpecLst[n].svLst[r].Name =
|
||
data.item_row.product_spec[n].item[r].name;
|
||
data.item_row.Ids[n].info[r] =
|
||
data.item_row.product_spec[n].item[r].id; //for b2b
|
||
if (
|
||
data.item_row.item_spec[n].item.id ==
|
||
data.item_row.product_spec[n].item[r].id
|
||
) {
|
||
data.item_row.SpecLst[n].svLst[r].IsChecked = true;
|
||
} else {
|
||
data.item_row.SpecLst[n].svLst[r].IsChecked = false;
|
||
}
|
||
if (
|
||
!that.selectimg &&
|
||
data.item_row.product_spec_image_row[
|
||
data.item_row.product_spec[n].item[r].id
|
||
]
|
||
) {
|
||
data.item_row.SpecLst[n].svLst[r].imagePath =
|
||
data.item_row.product_spec_image_row[
|
||
data.item_row.product_spec[n].item[r].id
|
||
];
|
||
} else {
|
||
//data.item_row.SpecLst[n].svLst[r].imagePath = data.item_row.product_image;
|
||
data.item_row.SpecLst[n].svLst[r].imagePath =
|
||
data.item_row.product_image ||
|
||
data.item_row.product_spec_image_row[
|
||
data.item_row.product_spec[n].item[r].id
|
||
];
|
||
}
|
||
}
|
||
}
|
||
|
||
//倒计时
|
||
//activity_item_row.activity_endtime
|
||
if (data.item_row.isShowCountdown || data.item_row.is_pa) {
|
||
if (data.item_row.is_pa) {
|
||
data.item_row.product_sale_time = that.$.strtotime(
|
||
data.item_row.pa_endtime
|
||
);
|
||
} else {
|
||
data.item_row.product_sale_time = that.$.strtotime(
|
||
data.item_row.activity_item_row.activity_endtime
|
||
);
|
||
}
|
||
|
||
let end_diff_time =
|
||
data.item_row.product_sale_time * 1000 - new Date().getTime();
|
||
|
||
intervalCt = setInterval(function () {
|
||
var n = (end_diff_time -= 1e3);
|
||
n < 0
|
||
? (clearInterval(),
|
||
that.setData({
|
||
hours: "00",
|
||
minutes: "00",
|
||
seconds: "00",
|
||
}))
|
||
: that.setData({
|
||
hours: that.$.doubleNum(Math.floor(n / 1e3 / 60 / 60)),
|
||
minutes: that.$.doubleNum(
|
||
Math.floor((n / 1e3 / 60) % 60)
|
||
),
|
||
seconds: that.$.doubleNum(Math.floor((n / 1e3) % 60)),
|
||
});
|
||
}, 1e3);
|
||
}
|
||
|
||
//拼团
|
||
if (data.item_row.activityType == "GROUPBOOKING") {
|
||
data.item_row.EventStartTime =
|
||
data.item_row.activity_item_row.activity_rule.activity_starttime;
|
||
data.item_row.EventEndTime =
|
||
data.item_row.activity_item_row.activity_rule.activity_endtime;
|
||
|
||
data.item_row.DayLimit =
|
||
data.item_row.activity_item_row.activity_rule.group_days_limit;
|
||
data.item_row.UserLimit =
|
||
data.item_row.activity_item_row.activity_rule.group_quantity;
|
||
data.item_row.SavePrice =
|
||
data.item_row.item_unit_price - data.item_row.item_sale_price;
|
||
data.item_row.UserNum =
|
||
data.item_row.activity_item_row.gb_amount_quantity;
|
||
//data.item_row.end_diff_time = (new Date(data.item_row.activity_item_row.activity_endtime.replace(/-/g, "/")))
|
||
data.item_row.end_diff_time =
|
||
new Date(
|
||
data.item_row.activity_item_row.activity_endtime
|
||
).getTime() - new Date().getTime();
|
||
that.setData({
|
||
activity_id: data.item_row.activity_id,
|
||
});
|
||
|
||
/*
|
||
intervalPt = setInterval(function(clear) {
|
||
var n = data.item_row.end_diff_time -= 1e3;
|
||
if (n < 0) {
|
||
clearInterval(clear);
|
||
that.setData({
|
||
days: "00",
|
||
hours: "00",
|
||
minutes: "00",
|
||
seconds: "00",
|
||
});
|
||
} else {
|
||
that.setData({
|
||
days: that.$.doubleNum(Math.floor(n / 1e3 / 60 / 60 / 24)),
|
||
hours: that.$.doubleNum(Math.floor(n / 1e3 / 60 / 60 % 24)),
|
||
minutes: that.$.doubleNum(Math.floor(n / 1e3 / 60 % 60)),
|
||
seconds: that.$.doubleNum(Math.floor(n / 1e3 % 60)),
|
||
});
|
||
}
|
||
}, 1e3);
|
||
|
||
*/
|
||
}
|
||
|
||
if (!that.$.isNull(data.item_row.activityType)) {
|
||
if (
|
||
data.item_row.activityType == "GROUPBOOKING" &&
|
||
data.item_row.activity_id > 0
|
||
) {
|
||
that.findOffered(data.item_row.activity_id);
|
||
|
||
clearInterval(intervalTimeAct);
|
||
intervalTimeAct = setInterval(function () {
|
||
that.setData({
|
||
Time: that.$.FormatTime(
|
||
data.item_row.activity_item_row.activity_endtime
|
||
),
|
||
MEID: data.item_row.activity_id,
|
||
});
|
||
}, 1e3);
|
||
}
|
||
}
|
||
|
||
if (data.item_row.SpecLst.length > 0) {
|
||
for (var n in data.item_row.SpecLst) {
|
||
for (var r in data.item_row.SpecLst[n].svLst) {
|
||
data.item_row.SpecLst[n].svLst[r].IsChecked &&
|
||
((data.item_row.SpecLst[n].ckid =
|
||
data.item_row.SpecLst[n].svLst[r].Id),
|
||
that.splist.push(data.item_row.SpecLst[n].svLst[r].Id),
|
||
that.splistStr.push(data.item_row.SpecLst[n].svLst[r].Name),
|
||
that.setData({
|
||
selectimg: data.item_row.SpecLst[n].svLst[r].imagePath,
|
||
}));
|
||
|
||
data.item_row.product_spec[n].item[r].IsChecked &&
|
||
((data.item_row.product_spec[n].ckid =
|
||
data.item_row.product_spec[n].item[r].id),
|
||
that.splist.push(data.item_row.product_spec[n].item[r].id),
|
||
that.splistStr.push(
|
||
data.item_row.product_spec[n].item[r].name
|
||
),
|
||
that.setData({
|
||
selectimg:
|
||
data.item_row.product_spec[n].item[r].imagePath,
|
||
}));
|
||
}
|
||
}
|
||
} else {
|
||
that.setData({
|
||
selectimg: data.item_row.product_image,
|
||
});
|
||
}
|
||
|
||
var perm_id = that.$.getStorageSync("uid");
|
||
var perm_key = that.$.getStorageSync("ukey");
|
||
that.$.setNavigationBarTitle({
|
||
title: data.item_row.product_item_name,
|
||
});
|
||
|
||
//data.item_row.product_detail = '<style>img{max-width:100%!important;height:auto;}</style>' + data.item_row.product_detail;
|
||
//data.item_row.product_detail = data.item_row.product_detail.replace(/\<img/gi, '<img style="max-width:100%;height:auto" ')
|
||
|
||
data.item_row.product_detail &&
|
||
(data.item_row.product_detail =
|
||
data.item_row.product_detail.replace(
|
||
new RegExp("<img ", "gm"),
|
||
'<img style="max-width:100%;height:auto;display: flex;" '
|
||
));
|
||
data.item_row.product_param &&
|
||
(data.item_row.product_param =
|
||
data.item_row.product_param.replace(
|
||
new RegExp("<img ", "gm"),
|
||
'<img style="max-width:100%;height:auto;display: flex;" '
|
||
));
|
||
data.item_row.product_extension &&
|
||
(data.item_row.product_extension =
|
||
data.item_row.product_extension.replace(
|
||
new RegExp("<img ", "gm"),
|
||
'<img style="max-width:100%;height:auto;display: flex;" '
|
||
));
|
||
data.item_row.product_service &&
|
||
(data.item_row.product_service =
|
||
data.item_row.product_service.replace(
|
||
new RegExp("<img ", "gm"),
|
||
'<img style="max-width:100%;height:auto;display: flex;" '
|
||
));
|
||
|
||
let chat_url = that.$.sprintf(
|
||
"/im/chat/chat?uid=%s&item_id=%s",
|
||
data.store_info.user_id,
|
||
data.item_row.item_id
|
||
);
|
||
that.setData({
|
||
chatUrl: chat_url,
|
||
});
|
||
|
||
if (true) {
|
||
/*
|
||
that.$.request({
|
||
url: that.Config.URL.user.kefu_config,
|
||
data: {user_id: data.store_info.user_id, store_id:data.store_info.store_id},
|
||
loading: false,
|
||
success: function(rd, r_status, r_msg, code) {
|
||
if (r_status == 200) {
|
||
let chat_url = that.$.sprintf("/im/chat/chat?uid=%s&item_id=%s", rd.friend_id, data.item_row.item_id);
|
||
that.setData({
|
||
chatUrl: chat_url
|
||
});
|
||
}
|
||
else
|
||
{
|
||
that.$.alert(r_msg);
|
||
}
|
||
}
|
||
});
|
||
*/
|
||
} else {
|
||
}
|
||
|
||
that.setData({
|
||
ProductInfo: data.item_row,
|
||
product_uniqid: data.item_row.product_uniqid,
|
||
store_info: data.store_info,
|
||
isCollection: data.is_favorite > 0 ? true : false,
|
||
skuid: data.item_row.item_id,
|
||
Parameters: data.item_row.product_param,
|
||
desc: data.item_row.ProductTips,
|
||
pname: data.item_row.product_item_name,
|
||
stock: data.item_row.item_quantity,
|
||
});
|
||
|
||
that.store_info.distance = 0;
|
||
/*
|
||
var i = data.item_row.product_detail;
|
||
i = i.replace(/&nbsp;/g, "");
|
||
//WxParse.wxParse("pinfo", "html", i, that);
|
||
|
||
var p = data.item_row.product_param;
|
||
p = p.replace(/&nbsp;/g, "");
|
||
//WxParse.wxParse("product_param", "html", p, that);
|
||
|
||
var c = data.item_row.product_extension;
|
||
c = c.replace(/&nbsp;/g, "");
|
||
WxParse.wxParse("product_extension", "html", c, that);
|
||
|
||
var s = data.item_row.product_service;
|
||
s = s.replace(/&nbsp;/g, "");
|
||
//WxParse.wxParse("Services", "html", s, that);
|
||
*/
|
||
|
||
that.setData({
|
||
isdata: true,
|
||
});
|
||
|
||
that.getCouponlist();
|
||
|
||
if (that.Config.CHAIN_ENABLE) {
|
||
that.initChain();
|
||
}
|
||
|
||
//读取帮助信息
|
||
that.getFaq(data.item_row.product_id);
|
||
|
||
//计算店铺距离
|
||
|
||
/**
|
||
* 计算两个经纬度的距离(米)
|
||
*/
|
||
let getDistance = function (lat1, lng1, lat2, lng2) {
|
||
var radLat1 = (lat1 * Math.PI) / 180.0;
|
||
var radLat2 = (lat2 * Math.PI) / 180.0;
|
||
var a = radLat1 - radLat2;
|
||
var b = (lng1 * Math.PI) / 180.0 - (lng2 * Math.PI) / 180.0;
|
||
var s =
|
||
2 *
|
||
Math.asin(
|
||
Math.sqrt(
|
||
Math.pow(Math.sin(a / 2), 2) +
|
||
Math.cos(radLat1) *
|
||
Math.cos(radLat2) *
|
||
Math.pow(Math.sin(b / 2), 2)
|
||
)
|
||
);
|
||
s = s * 6378.137; // EARTH_RADIUS;
|
||
s = Math.round(s * 10000) / 10;
|
||
return s;
|
||
};
|
||
|
||
that.store_info.store_o2o_flag = 1;
|
||
if (that.store_info.store_o2o_flag) {
|
||
that.$.getLocation({
|
||
type: "wgs84",
|
||
success: function (response) {
|
||
that.setData({
|
||
latitude: response.latitude,
|
||
longitude: response.longitude,
|
||
});
|
||
|
||
//that.store_info.distance = 100;
|
||
|
||
let d = getDistance(
|
||
that.latitude,
|
||
that.longitude,
|
||
that.store_info.store_latitude,
|
||
that.store_info.store_longitude
|
||
);
|
||
console.info(
|
||
that.latitude,
|
||
that.longitude,
|
||
that.store_info.store_latitude,
|
||
that.store_info.store_longitude
|
||
);
|
||
console.info(d);
|
||
that.store_info.distance = that.$.distanceFormat(d || 0);
|
||
},
|
||
fail: function () {},
|
||
});
|
||
}
|
||
} else {
|
||
that.setData({
|
||
isdata: false,
|
||
});
|
||
}
|
||
|
||
if (200 != status) {
|
||
} else {
|
||
//初始化微信分享
|
||
let $title = that.pname;
|
||
let $desc = that.desc;
|
||
let $link = that.$.sprintf(
|
||
"%s/h5/pages/product/detail?pid=%s",
|
||
that.Config.SiteUrl,
|
||
that.proId
|
||
);
|
||
let $img_url = that.ProductInfo.productPicList[0].Path;
|
||
|
||
//初始化微信分享
|
||
that.$.wxShare($title, $desc, $link, $img_url);
|
||
|
||
that.getStoreProdcutList();
|
||
}
|
||
|
||
that.setData({
|
||
loaded: true,
|
||
});
|
||
|
||
that.$.stopPullDownRefresh();
|
||
},
|
||
complete: function (res, status) {},
|
||
});
|
||
},
|
||
|
||
getFaq: function (product_id) {
|
||
let that = this;
|
||
|
||
let faq_params = {
|
||
product_id: product_id,
|
||
rows: 2,
|
||
};
|
||
that.$.request({
|
||
url: this.Config.URL.sns.story_lists,
|
||
data: faq_params,
|
||
loading: false,
|
||
/*
|
||
ajaxCache: {
|
||
timeout: Config.CACHE_EXPIRE
|
||
}, */
|
||
success: function (data, status, msg, code) {
|
||
if (status == 200) {
|
||
that.faq_rows = data.items;
|
||
|
||
if ("analytics_row" in that.ProductInfo) {
|
||
if (
|
||
that.ProductInfo.analytics_row &&
|
||
"product_ask_num" in that.ProductInfo.analytics_row
|
||
) {
|
||
that.ProductInfo.analytics_row.product_ask_num = data.records;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
});
|
||
},
|
||
|
||
listFaq: function (e) {
|
||
//this.$.gopage(this.$.sprintf('/community/community/lists?pid=%s', e.currentTarget.dataset.product_id));
|
||
this.$.gopage(
|
||
this.$.sprintf(
|
||
"/community/community/lists?pid=%s",
|
||
this.ProductInfo.product_id
|
||
)
|
||
);
|
||
},
|
||
|
||
ckselectsp: function (e) {
|
||
if (!this.hasLogin) {
|
||
this.showLoginPopup = true;
|
||
return;
|
||
}
|
||
this.setData({
|
||
//change: e.currentTarget.offsetLeft,
|
||
selectsp: 1,
|
||
selectct: 1,
|
||
addCartFlag: true,
|
||
buyFlag: false,
|
||
}),
|
||
e.currentTarget.dataset.type == 1
|
||
? this.setData({
|
||
isModified: true,
|
||
})
|
||
: this.setData({
|
||
isModified: false,
|
||
});
|
||
},
|
||
ckselectsp1: function (e) {
|
||
if (!this.hasLogin) {
|
||
this.showLoginPopup = true;
|
||
return;
|
||
}
|
||
// console.log(this)
|
||
|
||
this.setData({
|
||
//change: e.currentTarget.offsetLeft,
|
||
selectsp: 1,
|
||
selectct: 1,
|
||
buyFlag: true,
|
||
addCartFlag: false,
|
||
});
|
||
},
|
||
closesp: function (e) {
|
||
var that = this;
|
||
that.setData({
|
||
selectct: 0,
|
||
/*flag: false*/
|
||
});
|
||
|
||
setTimeout(function () {
|
||
that.setData({
|
||
selectsp: 0,
|
||
});
|
||
}, 1e2);
|
||
},
|
||
|
||
selectSpec: function (e) {
|
||
let that = this;
|
||
if (!e.target.dataset.enable) {
|
||
return;
|
||
}
|
||
|
||
/*
|
||
this.setData({
|
||
buyFlag: true,
|
||
addCartFlag: false
|
||
})
|
||
*/
|
||
|
||
/*$(self).addClass("current").siblings().removeClass("current");
|
||
//拼接属性
|
||
var curEle = $(".spec").find("a.current");
|
||
var curSpec = [];
|
||
that.$.each(curEle, function (i, v)
|
||
{
|
||
// convert to int type then sort
|
||
curSpec.push(parseInt($(v).attr("specs_value_id")) || 0);
|
||
});
|
||
var spec_string = curSpec.sort(function (a, b)
|
||
{
|
||
return a - b;
|
||
}).join("-");
|
||
//获取商品ID
|
||
window.item_id = myData.product_uniqid[spec_string][0];
|
||
get_detail(window.item_id);*/
|
||
var params = {
|
||
spid: e.target.dataset.spid,
|
||
ckid: e.target.dataset.ckid,
|
||
unit_id: e.target.dataset.unit_id,
|
||
},
|
||
n = [],
|
||
r = this.splist;
|
||
|
||
var uniqid,
|
||
spec_ids = [];
|
||
for (var spec_key in that.ProductInfo.item_spec) {
|
||
if (params.unit_id == that.ProductInfo.item_spec[spec_key].id) {
|
||
spec_ids.push(params.spid);
|
||
} else {
|
||
spec_ids.push(that.ProductInfo.item_spec[spec_key].item.id);
|
||
}
|
||
}
|
||
|
||
uniqid = spec_ids
|
||
.sort(function (a, b) {
|
||
return a - b;
|
||
})
|
||
.join("-");
|
||
|
||
var item_id = that.ProductInfo.product_uniqid[uniqid][0];
|
||
|
||
if (that.b2bFlag) {
|
||
return;
|
||
}
|
||
|
||
that.setData({
|
||
proId: item_id,
|
||
});
|
||
|
||
that.InitProduct(false);
|
||
|
||
/*
|
||
that.$.xsr(that.$.makeUrl(api.GetProductlistSpc, params), function (t) {
|
||
that.$.isNull(t.Info[0].activityType) || t.Info[0].activityType == "GROUPBOOKING" && t.Info[0].activity_id > 0 && that.findOffered(t.Info[0].activity_id);
|
||
for (var n in t.Info[0].SpecLst) for (var r in t.Info[0].SpecLst[n].svLst) t.Info[0].SpecLst[n].svLst[r].IsChecked && (t.Info[0].SpecLst[n].ckid = t.Info[0].SpecLst[n].svLst[r].Id, that.splist.push(t.Info[0].SpecLst[n].svLst[r].Id), that.splistStr.push(t.Info[0].SpecLst[n].svLst[r].Name)), t.Info[0].SpecLst[n].svLst[r].Id == e.target.dataset.spid && that.setData({selectimg: t.Info[0].SpecLst[n].svLst[r].imagePath});
|
||
that.$.setNavigationBarTitle({title: t.Info[0].SalesName}), that.setData({
|
||
ProductInfo: t.Info[0],
|
||
skuid: t.Info[0].item_id,
|
||
pname: t.Info[0].ProductName,
|
||
Parameters: t.Info[0].ProductParameters ? that.Grouping(t.Info[0].ProductParameters) : [],
|
||
stock: t.Info[0].Stock
|
||
})
|
||
})
|
||
*/
|
||
},
|
||
sub: function () {
|
||
this.unifiedNum(2);
|
||
},
|
||
add: function () {
|
||
this.unifiedNum(1);
|
||
},
|
||
writenum: function (e) {
|
||
this.setData({
|
||
inputval: e.detail.value,
|
||
}),
|
||
this.unifiedNum(3);
|
||
},
|
||
unifiedNum: function (e) {
|
||
let that = this;
|
||
var t = {
|
||
value: parseInt(this.numval),
|
||
stock: parseInt(this.stock),
|
||
inputval: parseInt(this.inputval),
|
||
};
|
||
if (t.stock <= 0) {
|
||
that.$.alert(that.__("亲~商品没有库存啦!"));
|
||
return;
|
||
}
|
||
e == 1
|
||
? (t.value = t.value + 1)
|
||
: e == 2
|
||
? (t.value = t.value - 1)
|
||
: ((t.value = t.inputval),
|
||
this.setData({
|
||
numval: t.inputval,
|
||
}));
|
||
if (t.value > t.stock) {
|
||
this.setData({
|
||
numval: t.stock,
|
||
});
|
||
return;
|
||
}
|
||
if (t.value <= 0) {
|
||
this.setData({
|
||
numval: 1,
|
||
});
|
||
return;
|
||
}
|
||
this.setData({
|
||
numval: t.value,
|
||
});
|
||
},
|
||
addCart: async function () {
|
||
var that = this;
|
||
|
||
if (that.b2bFlag) {
|
||
that.addCartBat();
|
||
return;
|
||
}
|
||
|
||
var params = {
|
||
item_id: that.proId,
|
||
proName: that.pname,
|
||
cart_quantity: that.numval,
|
||
activity_id: that.ProductInfo.activity_id,
|
||
|
||
SKU_Id: that.skuid,
|
||
};
|
||
|
||
if (that.stock <= 0) {
|
||
that.$.alert("亲~商品没有库存啦!");
|
||
return;
|
||
}
|
||
|
||
await this.$store.dispatch(`addCart`, {
|
||
params: params,
|
||
callback: (data, status, msg, code) => {
|
||
if (status == 200) {
|
||
that.$.alert(that.__("添加购物车成功"));
|
||
|
||
that.setData({
|
||
numval: 1,
|
||
inputval: 1,
|
||
});
|
||
|
||
if (that.plantformInfo.prodcut_addcart_flag) {
|
||
that.$store.dispatch(`getCartList`, function (data) {});
|
||
}
|
||
}
|
||
|
||
that.setData({
|
||
selectct: 0,
|
||
});
|
||
|
||
setTimeout(function () {
|
||
that.setData({
|
||
selectsp: 0,
|
||
});
|
||
}, 1e3);
|
||
},
|
||
});
|
||
|
||
/*
|
||
that.$.request({
|
||
url: this.Config.URL.cart.add,
|
||
data: params,
|
||
success: function (data, status, msg, code) {
|
||
if (status == 200) {
|
||
//that.notice.postNotificationName("RefreshProduct", true);
|
||
that.$report('fb_mobile_add_to_cart', data);
|
||
|
||
//
|
||
that.notice.postNotificationName("RefreshCart", parseInt(that.numval));
|
||
|
||
that.setCartNum({
|
||
type: 'add',
|
||
num: parseInt(that.numval)
|
||
});
|
||
|
||
that.$.alert(that.__('添加购物车成功'));
|
||
|
||
that.setData({
|
||
numval: 1,
|
||
inputval: 1
|
||
})
|
||
|
||
}
|
||
|
||
that.setData({
|
||
selectct: 0
|
||
});
|
||
|
||
setTimeout(function () {
|
||
that.setData({
|
||
selectsp: 0
|
||
})
|
||
}, 1e3);
|
||
}
|
||
});
|
||
*/
|
||
},
|
||
|
||
//for b2b
|
||
//商品数量
|
||
changes(e, id) {
|
||
var that = this;
|
||
var t = that.product_uniqid[id][0];
|
||
that.proIds[id] = {
|
||
item_id: t,
|
||
quantity: e,
|
||
};
|
||
this.setprice();
|
||
},
|
||
|
||
//计算价格
|
||
setprice: function () {
|
||
var that = this;
|
||
var price = 0;
|
||
var quantity = 0;
|
||
for (var i in that.proIds) {
|
||
price = price + that.proIds[i].quantity * that.product_uniqid[i][1];
|
||
quantity += that.proIds[i].quantity;
|
||
}
|
||
|
||
this.setData({
|
||
price: price,
|
||
quantity: quantity,
|
||
});
|
||
},
|
||
selectS: function (e, k, d, evnet) {
|
||
var that = this;
|
||
that.setData({
|
||
color: d,
|
||
});
|
||
if (e.select == 1) {
|
||
return true;
|
||
}
|
||
// evnet.target.dataset.unit_id = 1002;
|
||
var p = that.ProductInfo.product_spec[0].item;
|
||
for (var l = 0; l < p.length; l++) {
|
||
if (p[l].select == 1) {
|
||
p[l].select = 0;
|
||
}
|
||
}
|
||
|
||
e.select = 1;
|
||
// this.setData({
|
||
// proId: items.id
|
||
// });
|
||
that.selectSpec(evnet);
|
||
},
|
||
|
||
addCartBat: function () {
|
||
var that = this;
|
||
var pat = [];
|
||
if (that.ProductInfo.SpecLst.length > 0) {
|
||
for (var i in that.proIds) {
|
||
if (that.proIds[i].quantity > 0) {
|
||
pat.push(that.proIds[i]);
|
||
}
|
||
}
|
||
|
||
if (pat.length <= 0) {
|
||
that.$.alert("亲~请选择商品!");
|
||
return;
|
||
}
|
||
} else {
|
||
pat = [
|
||
{
|
||
item_id: that.options.pid,
|
||
quantity: 1,
|
||
},
|
||
];
|
||
}
|
||
var params = {
|
||
par: JSON.stringify(pat),
|
||
prd: that.options.pid,
|
||
};
|
||
that.$.request({
|
||
url: this.Config.URL.cart.batchadd,
|
||
data: params,
|
||
success: function (data, status, msg, code) {
|
||
if (status == 200) {
|
||
//that.notice.postNotificationName("RefreshProduct", true);
|
||
|
||
//
|
||
that.notice.postNotificationName("RefreshCart", that.numval);
|
||
|
||
that.setCartNum({
|
||
type: "add",
|
||
num: that.numval,
|
||
});
|
||
|
||
that.$.alert("添加进货车成功");
|
||
|
||
that.setData({
|
||
numval: 1,
|
||
inputval: 1,
|
||
});
|
||
} else {
|
||
that.$.alert(msg);
|
||
}
|
||
|
||
that.setData({
|
||
selectct: 0,
|
||
});
|
||
|
||
setTimeout(function () {
|
||
that.setData({
|
||
selectsp: 0,
|
||
});
|
||
}, 1e3);
|
||
},
|
||
});
|
||
},
|
||
|
||
PDCollection: function (e) {
|
||
var that = this;
|
||
if (this.isCollection) {
|
||
var params = {
|
||
item_id: e.currentTarget.dataset.id,
|
||
};
|
||
|
||
that.$.request({
|
||
url: this.Config.URL.user.wish_item_remove,
|
||
data: params,
|
||
success: function (data, status, msg, code) {
|
||
if (200 == status) {
|
||
that.setData({
|
||
isCollection: false,
|
||
});
|
||
}
|
||
|
||
that.$.alert(that.__("已取消收藏!"));
|
||
},
|
||
});
|
||
} else {
|
||
var params = {
|
||
item_id: e.currentTarget.dataset.id,
|
||
};
|
||
that.$.request({
|
||
url: this.Config.URL.user.wish_item_add,
|
||
data: params,
|
||
success: function (data, status, msg, code) {
|
||
if (200 == status) {
|
||
that.setData({
|
||
isCollection: true,
|
||
});
|
||
}
|
||
|
||
that.$.alert(that.__("已收藏!"));
|
||
},
|
||
});
|
||
}
|
||
},
|
||
|
||
addToWestore: function (e) {
|
||
var that = this;
|
||
|
||
var params = {
|
||
item_id: e.currentTarget.dataset.id,
|
||
store_id: this.store_info.store_id,
|
||
product_id: this.ProductInfo.product_id,
|
||
};
|
||
|
||
that.$.request({
|
||
url: this.Config.URL.user.direct_store_add,
|
||
data: params,
|
||
success: function (data, status, msg, code) {
|
||
if (status == 200) {
|
||
that.$.alert(msg);
|
||
} else {
|
||
that.$.alert(msg);
|
||
}
|
||
},
|
||
});
|
||
},
|
||
picDetail: function () {
|
||
this.setData({
|
||
tapindex: 1,
|
||
});
|
||
},
|
||
spcParam: function () {
|
||
this.setData({
|
||
tapindex: 2,
|
||
});
|
||
},
|
||
|
||
packingList: function () {
|
||
this.setData({
|
||
tapindex: 3,
|
||
});
|
||
},
|
||
|
||
showFightGroup: function () {
|
||
this.setData({
|
||
tapindex: 4,
|
||
});
|
||
},
|
||
|
||
showServiceTab: function () {
|
||
this.setData({
|
||
tapindex: 5,
|
||
});
|
||
},
|
||
|
||
showVoucherTab: function () {
|
||
//this.getCouponlist()
|
||
this.setData({
|
||
tapindex: 6,
|
||
});
|
||
},
|
||
|
||
Grouping: function (e) {
|
||
var t = {},
|
||
n = [];
|
||
for (var r = 0; r < e.length; r++) {
|
||
var i = e[r];
|
||
if (!t[i.ParameterGroupId])
|
||
n.push({
|
||
ParameterGroupId: i.ParameterGroupId,
|
||
name: i.ParameterGroupName,
|
||
data: [i],
|
||
}),
|
||
(t[i.ParameterGroupId] = i);
|
||
else
|
||
for (var s = 0; s < n.length; s++) {
|
||
var o = n[s];
|
||
if (o.ParameterGroupId == i.ParameterGroupId) {
|
||
o.push(i);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return n;
|
||
},
|
||
//单规格,不需要选规格,默认购买一个。
|
||
buynow: function (e) {
|
||
var that = this;
|
||
var params = {
|
||
item_id: that.proId,
|
||
proName: that.pname,
|
||
cart_quantity: that.numval,
|
||
activity_id: that.ProductInfo.activity_id,
|
||
|
||
SKU_Id: that.skuid,
|
||
};
|
||
|
||
//for b2b
|
||
if (that.b2bFlag && that.ProductInfo.SpecLst.length > 0) {
|
||
var pat = [];
|
||
for (var i in that.proIds) {
|
||
if (that.proIds[i].quantity > 0) {
|
||
var t = that.proIds[i].item_id + "|" + that.proIds[i].quantity;
|
||
pat.push(t);
|
||
}
|
||
}
|
||
|
||
if (pat.length <= 0) {
|
||
that.$.alert("亲~请选择商品!");
|
||
return;
|
||
}
|
||
var str = pat.join(",");
|
||
that.$.navigateTo({
|
||
url:
|
||
"/pages/checkout/checkout?ifcart=0&cart_id=" +
|
||
str +
|
||
"&prd=" +
|
||
that.options.pid,
|
||
}),
|
||
this.setData({
|
||
selectct: 0,
|
||
});
|
||
} else {
|
||
that.$.navigateTo({
|
||
url:
|
||
"/pages/checkout/checkout?ifcart=0&cart_id=" +
|
||
params.item_id +
|
||
"|" +
|
||
params.cart_quantity,
|
||
}),
|
||
this.setData({
|
||
selectct: 0,
|
||
});
|
||
}
|
||
|
||
var n = this;
|
||
setTimeout(function () {
|
||
n.setData({
|
||
selectsp: 0,
|
||
});
|
||
}, 1e3);
|
||
},
|
||
checkChainProduct: function (e) {
|
||
var that = this;
|
||
var params = {
|
||
item_id: that.proId,
|
||
proName: that.pname,
|
||
cart_quantity: that.numval,
|
||
activity_id: that.ProductInfo.activity_id,
|
||
SKU_Id: that.skuid,
|
||
};
|
||
|
||
that.$.request({
|
||
url: that.Config.URL.isProduct,
|
||
data: params,
|
||
dataType: "json",
|
||
success: function (data, status, msg, code) {
|
||
if (data.length == 0) {
|
||
that.$.showModal({
|
||
title: that.__("提示"),
|
||
content: that.__("您的默认门店没有该商品,是否继续购买?"),
|
||
success: function (res) {
|
||
if (res.confirm) {
|
||
that.setData({
|
||
url:
|
||
"/pages/checkout/checkout?ifcart=0&cart_id=" +
|
||
params.item_id +
|
||
"|" +
|
||
params.cart_quantity,
|
||
});
|
||
}
|
||
},
|
||
});
|
||
} else {
|
||
that.setData({
|
||
url:
|
||
"/pages/checkout/checkout?ifcart=0&cart_id=" +
|
||
params.item_id +
|
||
"|" +
|
||
params.cart_quantity +
|
||
"&chain_id=" +
|
||
data.chain_id,
|
||
});
|
||
}
|
||
},
|
||
});
|
||
},
|
||
ILObuynow: function (e) {
|
||
let that = this;
|
||
var t = {
|
||
Amount: this.numval,
|
||
ProductId: this.proId,
|
||
item_id: this.skuid,
|
||
AddTime: getNowFormatDate(),
|
||
orderType: 0,
|
||
isFightGroup: "1",
|
||
ProductSaleName: this.pname,
|
||
|
||
speStr: JSON.stringify(this.splistStr)
|
||
.replace("[", "")
|
||
.replace("]", "")
|
||
.replace(/\,/g, " ")
|
||
.replace(/\"/g, ""),
|
||
};
|
||
that.$.navigateTo({
|
||
url:
|
||
"/pages/checkout/checkout?ifcart=0&cart_id=" +
|
||
this.proId +
|
||
"|" +
|
||
this.numval,
|
||
});
|
||
},
|
||
immediatelyGroupbooking: function () {
|
||
var that = this;
|
||
var e = {
|
||
Amount: 1,
|
||
ProductId: this.proId,
|
||
orderType: 1,
|
||
activity_id: this.MEID,
|
||
isOwner: "true",
|
||
isFightGroup: "2",
|
||
item_id: this.skuid,
|
||
AddTime: getNowFormatDate(),
|
||
ownGroupId: 0,
|
||
ProductSaleName: this.pname,
|
||
|
||
speStr: JSON.stringify(this.splistStr)
|
||
.replace("[", "")
|
||
.replace("]", "")
|
||
.replace(/\,/g, " ")
|
||
.replace(/\"/g, ""),
|
||
};
|
||
|
||
//console.info("/pages/checkout/checkout?single_activity=1&ifcart=0&cart_id=" + that.proId + "|" + 1 + "&activity_id=" + this.activity_id + "&gb_id=" + this.gb_id);
|
||
that.$.navigateTo({
|
||
url:
|
||
"/pages/checkout/checkout?single_activity=1&ifcart=0&cart_id=" +
|
||
that.proId +
|
||
"|" +
|
||
1 +
|
||
"&activity_id=" +
|
||
this.activity_id +
|
||
"&gb_id=" +
|
||
this.gb_id,
|
||
success: function () {
|
||
//console.info('success');
|
||
},
|
||
fail: function () {
|
||
//console.info('fail');
|
||
},
|
||
complete: function () {
|
||
//console.info('complete');
|
||
},
|
||
});
|
||
},
|
||
groupBuying: function (e) {
|
||
var that = this,
|
||
gb_id = e.currentTarget.dataset.gb_id;
|
||
that.$.navigateTo({
|
||
url:
|
||
"/pages/checkout/checkout?single_activity=1&ifcart=0&cart_id=" +
|
||
that.proId +
|
||
"|" +
|
||
1 +
|
||
"&activity_id=" +
|
||
that.activity_id +
|
||
"&gb_id=" +
|
||
gb_id,
|
||
});
|
||
},
|
||
findOffered: function (activity_id) {
|
||
var that = this;
|
||
var params = {
|
||
activity_id: activity_id,
|
||
rows: 4,
|
||
};
|
||
|
||
that.setData({
|
||
GB_rows: [],
|
||
});
|
||
|
||
that.$.request({
|
||
url: this.Config.URL.user.listsGroupbooking,
|
||
data: params,
|
||
loading: false,
|
||
success: function (data, status, msg, code) {
|
||
if (200 == status && data.items.length > 0) {
|
||
intervalDate = setInterval(function () {
|
||
data.items.forEach(function (e) {
|
||
e.Time = {};
|
||
e.end_diff_time =
|
||
new Date(e.gb_endtime.replace(/-/g, "/")).getTime() -
|
||
new Date().getTime();
|
||
var n = e.end_diff_time - 1e3;
|
||
|
||
if (n < 0) {
|
||
e.Time.days = "00";
|
||
e.Time.hour = "00";
|
||
e.Time.min = "00";
|
||
e.Time.sec = "00";
|
||
} else {
|
||
e.Time.days = that.$.doubleNum(
|
||
Math.floor(n / 1e3 / 60 / 60 / 24)
|
||
);
|
||
e.Time.hour = that.$.doubleNum(
|
||
Math.floor((n / 1e3 / 60 / 60) % 24)
|
||
);
|
||
e.Time.min = that.$.doubleNum(
|
||
Math.floor((n / 1e3 / 60) % 60)
|
||
);
|
||
e.Time.sec = that.$.doubleNum(Math.floor((n / 1e3) % 60));
|
||
}
|
||
// e.Time = that.$.FormatTime(e.activity_endtime)
|
||
});
|
||
that.setData({
|
||
GB_rows: data.items,
|
||
});
|
||
}, 1e3);
|
||
} else {
|
||
that.setData({
|
||
/*flag: false,*/
|
||
ispage: false,
|
||
});
|
||
}
|
||
},
|
||
});
|
||
/* 拼团 that.$.xsr(that.$.makeUrl(fgapi.GetGoingGroupEventByEventId, {EventId: e}), function (e) {
|
||
e.Info.length > 0 && (intervalDate = setInterval(function () {
|
||
e.Info.forEach(function (e) {
|
||
e.Time = that.$.FormatTime(e.EventEndTimeStr)
|
||
}), that.setData({GB_rows: e.Info})
|
||
},
|
||
1e3))
|
||
})*/
|
||
},
|
||
lookall: function () {
|
||
this.isAll
|
||
? this.setData({
|
||
isAll: false,
|
||
})
|
||
: this.setData({
|
||
isAll: true,
|
||
});
|
||
},
|
||
userFGType: function (e, t) {
|
||
let that = this;
|
||
var n = {
|
||
OwnGroupId: e,
|
||
};
|
||
/* 加入拼团that.$.xsr(that.$.makeUrl(fgapi.IsUserJoinGroupEvnet, n), function (e) {
|
||
that.$.isNull(e) ? t() || "" : e.Code != 1 ? e.Info[0].IsSuccess ? that.$.alert("恭喜您已经参团成功!") : e.Info[0].IsPaySuccess ? that.$.alert("您已经参加过该团!") : that.$.alert("您已经参加过该团,请尽快支付!") : t() || ""
|
||
})*/
|
||
},
|
||
/*
|
||
doReceive: function () {
|
||
this.cancel(), this.userReceiveCoupon()
|
||
},*/
|
||
cancel: function () {
|
||
this.setData({
|
||
isCancel: false,
|
||
});
|
||
},
|
||
cancelsuccess: function () {
|
||
this.setData({
|
||
isCancelSuccess: true,
|
||
});
|
||
},
|
||
//优惠券一键领取
|
||
getCoupon() {
|
||
const counPonList = this.voucherList.filter((item) => {
|
||
if (item.if_gain) {
|
||
return item.activity_id;
|
||
}
|
||
});
|
||
|
||
if (counPonList.length == 0) {
|
||
this.voucherReceiveAllFlag = false;
|
||
}
|
||
|
||
const couponIds = counPonList.map((item) => item.activity_id);
|
||
|
||
couponIds.forEach((id, index) => {
|
||
this.addVoucher(id, index === couponIds.length - 1);
|
||
});
|
||
},
|
||
doReceive: function (e) {
|
||
var that = this;
|
||
if (e.currentTarget.dataset.isreceive == -1) {
|
||
return;
|
||
}
|
||
that.setData({
|
||
Id: e.currentTarget.dataset.id,
|
||
needed_point: e.currentTarget.dataset.point,
|
||
});
|
||
that.getUserReceiveCoupon();
|
||
},
|
||
getUserReceiveCoupon: function () {
|
||
var point = this.voucherList.needed_point,
|
||
that = this;
|
||
if (point > 0) {
|
||
that.$.confirm(
|
||
that.sprintf(that.__("确定消耗 %d 兑换优惠券?"), point),
|
||
function (e) {
|
||
if (e.confirm) {
|
||
that.addVoucher();
|
||
}
|
||
},
|
||
true
|
||
);
|
||
} else {
|
||
that.addVoucher();
|
||
}
|
||
},
|
||
addVoucher: function () {
|
||
var that = this;
|
||
var params = {
|
||
activity_id: this.Id,
|
||
Code: this.Code,
|
||
user_is_new: 0,
|
||
};
|
||
that.$.request({
|
||
url: this.Config.URL.user.voucher_add,
|
||
data: params,
|
||
success: function (data, status, msg, code) {
|
||
if (200 == status) {
|
||
that.$.alert(that.__("领取成功!"));
|
||
that.getCouponlist();
|
||
} else {
|
||
that.$.alert(msg);
|
||
}
|
||
},
|
||
});
|
||
},
|
||
gotoDetail: function (e) {
|
||
console.log(e);
|
||
var state = e.currentTarget.dataset.state;
|
||
var pid = e.currentTarget.dataset.pid;
|
||
|
||
this.$.navigateTo({
|
||
url: "/pages/product/detail?pid=" + pid,
|
||
});
|
||
},
|
||
ImgTap: function (e) {
|
||
var that = this,
|
||
n = [];
|
||
for (var r in this.ProductInfo.last_comment_row.comment_image)
|
||
n.push(this.ProductInfo.last_comment_row.comment_image[r]);
|
||
var i = e.target.dataset.src;
|
||
that.$.previewImage({
|
||
current: i,
|
||
urls: n,
|
||
});
|
||
},
|
||
previewProductImg: function (e) {
|
||
var that = this,
|
||
n = [];
|
||
for (var r in this.ProductInfo.productPicList) {
|
||
n.push(this.ProductInfo.productPicList[r].Path);
|
||
}
|
||
|
||
var i = e.target.dataset.src;
|
||
|
||
that.$.previewImage({
|
||
current: i,
|
||
urls: n,
|
||
});
|
||
},
|
||
|
||
goTabBar: function (e) {
|
||
var that = this;
|
||
that.$.goToTabBar(that, e.currentTarget.dataset.url);
|
||
},
|
||
|
||
cancelShare: function (e) {},
|
||
showCodeImg: function (e) {},
|
||
shareQRCode: function (e) {},
|
||
saveImg: function (e) {},
|
||
|
||
shareBox: function (e) {
|
||
// 如允许点击超链接跳转,则应该打开一个新页面,并传入href,由新页面内嵌webview组件负责显示该链接内容
|
||
// #ifdef APP-PLUS
|
||
this.setData({
|
||
shareBoxFlag: 1,
|
||
shareContetnFlag: 1,
|
||
});
|
||
// #endif
|
||
// #ifdef MP-WEIXIN
|
||
this.setData({
|
||
PageQRCodeInfo: {
|
||
Path: "",
|
||
IsShare: true,
|
||
IsShareBox: true,
|
||
IsJT: false,
|
||
},
|
||
});
|
||
// #endif
|
||
},
|
||
|
||
//跳转门店列表
|
||
gochainlist: function (e) {
|
||
this.$.gotopage(
|
||
"/chain/chain/list?store_id=" +
|
||
e.currentTarget.dataset.store_id +
|
||
"&item_id=" +
|
||
e.currentTarget.dataset.item_id
|
||
);
|
||
},
|
||
/* 商品优惠券 */
|
||
getCouponlist: function () {
|
||
var params = {
|
||
store_id: this.store_info.store_id,
|
||
// item_id: this.skuid
|
||
},
|
||
that = this;
|
||
that.$.request({
|
||
url: this.Config.URL.point.voucher,
|
||
data: params,
|
||
loading: false,
|
||
success: function (data, status, msg, code) {
|
||
for (let i = 0; data.items.length > i; i++) {
|
||
data.items[i].activity_endtime = that.$.dateFormat(
|
||
data.items[i].activity_endtime,
|
||
"yyyy-MM-dd"
|
||
);
|
||
}
|
||
if (200 == status && data.items.length > 0) {
|
||
that.setData({
|
||
voucherList: data.items,
|
||
isVoucher: true,
|
||
});
|
||
|
||
const counPonList = that.voucherList.filter((item) => {
|
||
if (item.if_gain) {
|
||
return item.activity_id;
|
||
}
|
||
});
|
||
|
||
if (counPonList.length > 0) {
|
||
that.voucherReceiveAllFlag = false;
|
||
} else {
|
||
that.voucherReceiveAllFlag = true;
|
||
}
|
||
|
||
//判断是否显示
|
||
if (6 == that.tapindex) {
|
||
} else {
|
||
//判断是否显示代金券
|
||
if (
|
||
that.ProductInfo.product_detail ||
|
||
that.ProductInfo.product_extension ||
|
||
that.ProductInfo.product_param ||
|
||
that.ProductInfo.activityType == "GROUPBOOKING" ||
|
||
that.ProductInfo.product_service
|
||
) {
|
||
} else {
|
||
that.setData({
|
||
tapindex: 6,
|
||
});
|
||
}
|
||
}
|
||
} else {
|
||
that.setData({
|
||
isVoucher: false,
|
||
});
|
||
}
|
||
},
|
||
fail: function (data) {
|
||
that.setData({
|
||
isVoucher: false,
|
||
});
|
||
},
|
||
});
|
||
},
|
||
getStoreProdcutList: function () {
|
||
var that = this;
|
||
var params = {
|
||
store_id: this.ProductInfo.store_id,
|
||
};
|
||
// console.log(params)
|
||
that.$.request({
|
||
url: this.Config.URL.store.product,
|
||
data: params,
|
||
loading: false,
|
||
ajaxCache: {
|
||
timeout: this.Config.CACHE_EXPIRE,
|
||
},
|
||
success: function (data, status, msg, code) {
|
||
that.setData({
|
||
store_product_list: data.items,
|
||
store_product_num:
|
||
data.items.length >= 30
|
||
? data.items.length + "+"
|
||
: data.items.length, //在售商品
|
||
});
|
||
},
|
||
});
|
||
},
|
||
outertouch: function () {
|
||
this.setData({
|
||
virtual_flag: true,
|
||
});
|
||
},
|
||
innertouch: function () {
|
||
this.setData({
|
||
virtual_flag: false,
|
||
});
|
||
},
|
||
tplGoToPage: function (e) {
|
||
let that = this;
|
||
|
||
if (!this.hasLogin) {
|
||
this.showLoginPopup = true;
|
||
return;
|
||
}
|
||
|
||
//先判断是否登录
|
||
this.forceUserInfo(function (user) {
|
||
var t = e.currentTarget.dataset;
|
||
//that.$.gopage(t.appurl);
|
||
|
||
that.$.request({
|
||
url: that.Config.URL.user.kefu_config,
|
||
data: {
|
||
user_id: that.store_info.user_id,
|
||
store_id: that.store_info.store_id,
|
||
},
|
||
loading: false,
|
||
success: function (rd, r_status, r_msg, code) {
|
||
if (r_status == 200) {
|
||
let chat_url = that.$.sprintf(
|
||
"/im/chat/chat?uid=%s&item_id=%s",
|
||
rd.friend_id,
|
||
that.skuid
|
||
);
|
||
|
||
that.setData({
|
||
chatUrl: chat_url,
|
||
});
|
||
|
||
that.$.gopage(chat_url);
|
||
} else {
|
||
that.$.alert(r_msg);
|
||
}
|
||
},
|
||
});
|
||
});
|
||
|
||
return;
|
||
|
||
switch (parseInt(t.type)) {
|
||
case 1:
|
||
that.$.gopage("/pages/product/detail?pid=" + t.id);
|
||
break;
|
||
case 2:
|
||
that.$.gopage(
|
||
"/pages/product/list?store_category_id=" +
|
||
(t.id || 0) +
|
||
"&cname=" +
|
||
t.name
|
||
);
|
||
break;
|
||
case 3:
|
||
that.$.gopage("/pages/product/list?pname=" + t.keyword);
|
||
break;
|
||
case 4:
|
||
that.$.gopage(t.appurl);
|
||
break;
|
||
case 5:
|
||
that.$.gopage(t.appurl);
|
||
break;
|
||
case 6:
|
||
that.$.gopage(t.appurl);
|
||
break;
|
||
case 7:
|
||
that.$.navigateToMiniProgram({
|
||
appId: t.appid,
|
||
path: t.appurl,
|
||
});
|
||
break;
|
||
case 8:
|
||
that.$.gopage("/pagesub/diy-page/diy-page?id=" + t.id);
|
||
break;
|
||
case 9:
|
||
that.$.gopage(
|
||
"/pagesub/webpage/webpage?u=" +
|
||
encodeURIComponent(t.appurl) +
|
||
"&tn=" +
|
||
t.name +
|
||
"&tc=" +
|
||
t.appid +
|
||
"&tb=" +
|
||
t.keyword
|
||
);
|
||
break;
|
||
case 10:
|
||
that.$.gopage(
|
||
"/pagesub/webpage/web?u=" +
|
||
encodeURIComponent(t.appurl) +
|
||
"&tn=" +
|
||
t.name +
|
||
"&tc=" +
|
||
t.appid +
|
||
"&tb=" +
|
||
t.keyword
|
||
);
|
||
}
|
||
},
|
||
closeNativeShare: function () {
|
||
var that = this;
|
||
that.setData({
|
||
shareContetnFlag: 0,
|
||
flag: false,
|
||
});
|
||
|
||
setTimeout(function () {
|
||
that.setData({
|
||
shareBoxFlag: 0,
|
||
});
|
||
}, 1e2);
|
||
},
|
||
scrolltoupper: function (t) {
|
||
this.old.scposition = t.detail.scrollTop;
|
||
|
||
t.detail.scrollTop >= this.screenHeight
|
||
? this.setData({
|
||
isquicknav: true,
|
||
})
|
||
: this.setData({
|
||
isquicknav: false,
|
||
});
|
||
},
|
||
onMenu: function (t) {
|
||
this.$refs.headerNavMenu.showBoxView =
|
||
!this.$refs.headerNavMenu.showBoxView;
|
||
},
|
||
onShareBox: function (e) {
|
||
let that = this;
|
||
var $href = that.$.sprintf(
|
||
"%s/tmpl/product_detail.html?item_id=%d&FX=%d",
|
||
this.Config.WapSiteUrl,
|
||
this.skuid,
|
||
this.userInfo.user_id
|
||
);
|
||
|
||
$href = that.$.sprintf(
|
||
"%s/h5/pages/product/detail?pid=%d&uid=%d",
|
||
that.Config.SiteUrl,
|
||
this.proId,
|
||
this.userInfo.user_id
|
||
);
|
||
// 如允许点击超链接跳转,则应该打开一个新页面,并传入href,由新页面内嵌webview组件负责显示该链接内容
|
||
// #ifdef APP-PLUS
|
||
|
||
// #endif
|
||
|
||
// #ifdef MP-WEIXIN
|
||
$href = that.$.sprintf(
|
||
"%s/pages/product/detail?pid=%d&uid=%d",
|
||
this.Config.WapSiteUrl,
|
||
this.proId,
|
||
this.userInfo.user_id
|
||
);
|
||
// #endif
|
||
|
||
this.setData({
|
||
shareData: {
|
||
shareTitle: this.pname,
|
||
shareText: this.desc,
|
||
href: $href,
|
||
image: this.ProductInfo.productPicList[0].Path,
|
||
price: this.number_format(this.ProductInfo.ItemSalePrice, 2),
|
||
},
|
||
});
|
||
|
||
// 如允许点击超链接跳转,则应该打开一个新页面,并传入href,由新页面内嵌webview组件负责显示该链接内容
|
||
// #ifdef APP-PLUS
|
||
this.$refs.shareBoxApp.show();
|
||
// #endif
|
||
|
||
//海报
|
||
if (e == 3) {
|
||
// #ifndef APP-PLUS
|
||
this.$refs.shareBoxMp.show();
|
||
// #endif
|
||
} else {
|
||
// #ifdef H5
|
||
if (that.$.ifUniApp()) {
|
||
this.$refs.shareBoxH5.show();
|
||
} else {
|
||
this.$refs.shareBoxMp.show();
|
||
}
|
||
// #endif
|
||
|
||
// #ifdef MP-WEIXIN
|
||
this.$refs.shareBoxMp.show();
|
||
// #endif
|
||
}
|
||
},
|
||
onReturnTop: function () {
|
||
let that = this;
|
||
// 清除上一次的定时器
|
||
if (that.timer !== null) {
|
||
clearInterval(that.timer);
|
||
}
|
||
that.setData({
|
||
scposition: this.old.scposition,
|
||
});
|
||
|
||
that.timer = setInterval(function () {
|
||
let speed = that.scposition / 4;
|
||
speed = Math.ceil(speed);
|
||
if (that.scposition <= 0 || !that.scposition) {
|
||
clearInterval(that.timer);
|
||
}
|
||
that.scposition = that.scposition - speed;
|
||
}, 30);
|
||
},
|
||
|
||
scrollbottom: function () {
|
||
if (this.flag) {
|
||
var e = this;
|
||
e.setData({
|
||
flag: false,
|
||
}),
|
||
clearTimeout(t);
|
||
var t = setTimeout(function () {
|
||
e.setData({
|
||
type: e.type,
|
||
page: parseInt(e.page) + 1,
|
||
rows: 10,
|
||
}),
|
||
e.getNearChain();
|
||
}, 500);
|
||
}
|
||
},
|
||
// 三级联动选择
|
||
onSelectAddress(e) {
|
||
this.$refs.mpvueCityPicker.show();
|
||
},
|
||
|
||
onCancel(e) {
|
||
//console.log(e)
|
||
},
|
||
|
||
onConfirm(e) {
|
||
let that = this;
|
||
let district_info = that.$.isNull(e.label.toString())
|
||
? that.__("请选择地址")
|
||
: e.label.toString();
|
||
let product_freight_info = this.product_freight_info;
|
||
product_freight_info.district_info = district_info;
|
||
|
||
let item_row = this.ProductInfo;
|
||
|
||
this.setData({
|
||
product_freight_info: product_freight_info,
|
||
});
|
||
|
||
var params = {
|
||
item_id: this.proId,
|
||
district_id: e.value[1],
|
||
};
|
||
|
||
//
|
||
|
||
//存入本地
|
||
uni.setStorageSync("district_id", params.district_id);
|
||
|
||
that.$.request({
|
||
url: this.Config.URL.product.shipping_district,
|
||
data: params,
|
||
success: function (data, status, msg, code) {
|
||
if (200 == status) {
|
||
item_row.ifStore = data.product_freight_info.if_store;
|
||
|
||
that.setData({
|
||
product_freight_info: data.product_freight_info,
|
||
ProductInfo: item_row,
|
||
});
|
||
}
|
||
},
|
||
});
|
||
},
|
||
showActivityDetail(e) {
|
||
var that = this;
|
||
that.activity_type_id = e;
|
||
that.$refs.popup.open();
|
||
},
|
||
showCouponDetail() {
|
||
var that = this;
|
||
that.$refs.popup2.open();
|
||
},
|
||
|
||
goGiftBag() {
|
||
var that = this;
|
||
uni.navigateTo({
|
||
url: "/activity/giftbag/detail?aid=" + that.ProductInfo.activity_id,
|
||
});
|
||
},
|
||
closeLoginPopup() {
|
||
this.showLoginPopup = false;
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
|
||
|
||
<style lang="scss">
|
||
@import "../../styles/_variables.scss";
|
||
|
||
.page-body {
|
||
padding: 40rpx;
|
||
|
||
button {
|
||
margin: 20rpx 20rpx;
|
||
}
|
||
|
||
.m-panel-sp-icon {
|
||
position: absolute;
|
||
right: 20rpx;
|
||
top: 10rpx;
|
||
|
||
color: #888;
|
||
}
|
||
}
|
||
|
||
.discuss-evaluate {
|
||
background: #fff;
|
||
margin-top: 10rpx;
|
||
|
||
.discuss-evaluate-top {
|
||
position: relative;
|
||
height: 70rpx;
|
||
background: rgba(255, 255, 255, 1);
|
||
margin-top: 24rpx;
|
||
margin-left: 30rpx;
|
||
padding-top: 10rpx;
|
||
}
|
||
}
|
||
|
||
.discuss-item {
|
||
.user-evaluate-center {
|
||
height: 200rpx;
|
||
border-bottom: 1px dotted #ccc;
|
||
|
||
.user-text {
|
||
height: auto;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
display: -webkit-box;
|
||
-webkit-line-clamp: 2;
|
||
-webkit-box-orient: vertical;
|
||
margin-right: 20rpx;
|
||
text-indent: 1em;
|
||
}
|
||
|
||
.user-no-text {
|
||
text-align: center;
|
||
}
|
||
}
|
||
}
|
||
|
||
.m-banner-ad {
|
||
width: 750rpx;
|
||
height: 750rpx;
|
||
position: relative;
|
||
background-color: #fff;
|
||
}
|
||
|
||
.m-banner-ad swiper {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.slide-image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.m-detail {
|
||
/*min-height: 500rpx;*/
|
||
}
|
||
|
||
.m-info-box {
|
||
font-size: 32rpx;
|
||
}
|
||
|
||
.m-cells {
|
||
margin-top: 20rpx;
|
||
background: transparent;
|
||
border-radius: 12rpx;
|
||
|
||
.m-cell {
|
||
background: #ffffff;
|
||
padding: 24rpx 24rpx;
|
||
margin-bottom: 20rpx;
|
||
border-radius: 12rpx;
|
||
}
|
||
}
|
||
|
||
.m-info-box label {
|
||
color: $default-skin-bg;
|
||
display: block;
|
||
font-size: 28rpx;
|
||
}
|
||
|
||
.m-info-price {
|
||
color: $secondary-skin-color;
|
||
font-size: 48rpx;
|
||
font-family: PingFangSC-Medium, PingFang SC;
|
||
font-weight: 500;
|
||
line-height: 66rpx;
|
||
|
||
span {
|
||
padding: 0 8rpx;
|
||
}
|
||
}
|
||
|
||
.m-info-price text {
|
||
font-size: 12px;
|
||
font-family: PingFangSC-Light, PingFang SC;
|
||
font-weight: 300;
|
||
//color: #888888;
|
||
line-height: 40rpx;
|
||
}
|
||
|
||
.m-info-delprice {
|
||
color: #888;
|
||
margin-left: 10rpx;
|
||
text-decoration: line-through;
|
||
position: relative;
|
||
}
|
||
|
||
/*优惠券样式 start*/
|
||
.m-coupon-list {
|
||
margin-top: 36rpx;
|
||
}
|
||
|
||
.m-coupon-item {
|
||
width: 700rpx;
|
||
height: 192rpx;
|
||
margin: 10rpx auto;
|
||
background: url(https://static.lancerdt.com/xcxfile/appicon/Coupon_V2.png)
|
||
no-repeat;
|
||
background-size: contain;
|
||
box-sizing: border-box;
|
||
padding: 12rpx;
|
||
}
|
||
|
||
.m-coupon-info {
|
||
float: left;
|
||
width: 486rpx;
|
||
margin-left: 30rpx;
|
||
margin-top: 9.5rpx;
|
||
}
|
||
|
||
.m-coupon-btn {
|
||
float: left;
|
||
width: 110rpx;
|
||
margin-left: 30rpx;
|
||
line-height: 36rpx;
|
||
text-align: center;
|
||
font-size: 24rpx;
|
||
color: #fff;
|
||
}
|
||
|
||
.btn-coupon {
|
||
display: inline-block;
|
||
width: 28rpx;
|
||
}
|
||
|
||
.btn-coupon-gray {
|
||
//color: #888;
|
||
}
|
||
|
||
.m-coupon-text {
|
||
float: left;
|
||
width: 300rpx;
|
||
}
|
||
|
||
.m-coupon-text label {
|
||
display: inline-block;
|
||
color: #333;
|
||
font-size: 28rpx;
|
||
width: 250rpx;
|
||
overflow: hidden;
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
line-height: 32rpx;
|
||
}
|
||
|
||
.m-coupon-text text {
|
||
display: inline-block;
|
||
width: 350rpx;
|
||
font-size: 24rpx;
|
||
color: #888;
|
||
overflow: hidden;
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
line-height: 32rpx;
|
||
}
|
||
|
||
.m-coupon-price {
|
||
float: left;
|
||
height: 132rpx;
|
||
color: $default-skin-bg;
|
||
font-weight: bold;
|
||
line-height: 132rpx;
|
||
width: 180rpx;
|
||
position: relative;
|
||
font-size: 75rpx;
|
||
}
|
||
|
||
.price-content-box {
|
||
position: absolute;
|
||
left: -35rpx;
|
||
text-align: center;
|
||
width: 280rpx;
|
||
font-size: 40rpx;
|
||
}
|
||
|
||
.price-content-box label {
|
||
font-size: 32rpx;
|
||
}
|
||
|
||
/*优惠券样式 end*/
|
||
|
||
.dis {
|
||
display: flex;
|
||
justify-content: flex-end;
|
||
/*width: 360rpx;*/
|
||
flex: 1;
|
||
float: right;
|
||
line-height: 74rpx;
|
||
}
|
||
|
||
.dis .num {
|
||
font-size: 24rpx;
|
||
font-weight: bold;
|
||
color: #717171;
|
||
padding-right: 20rpx;
|
||
text-align: right;
|
||
}
|
||
|
||
.selled {
|
||
display: flex;
|
||
justify-content: flex-end;
|
||
width: 180rpx;
|
||
float: right;
|
||
line-height: 74rpx;
|
||
flex: 1;
|
||
}
|
||
|
||
.selled .num {
|
||
font-size: 24rpx;
|
||
color: #717171;
|
||
padding-right: 20rpx;
|
||
text-align: right;
|
||
}
|
||
|
||
.m-info-tip {
|
||
font-size: 28rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #888888;
|
||
//line-height: 60rpx;
|
||
}
|
||
|
||
.m-info-sp {
|
||
font-size: 28rpx;
|
||
}
|
||
|
||
.m-info-sp label {
|
||
margin-left: 20rpx;
|
||
}
|
||
|
||
.m-comment .m-media-box-title {
|
||
font-size: 28rpx;
|
||
}
|
||
|
||
.m-comment .m-media-box-hd {
|
||
border-radius: 100%;
|
||
overflow: hidden;
|
||
vertical-align: top;
|
||
}
|
||
|
||
.m-start label {
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
.m-media-box-info-meta {
|
||
padding-right: 5rpx;
|
||
}
|
||
|
||
.sel {
|
||
color: $default-skin-bg;
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
.m-tiem {
|
||
float: right;
|
||
}
|
||
|
||
.m-panel-hd label {
|
||
float: right;
|
||
}
|
||
|
||
.m-panel-hd text {
|
||
color: $default-skin-bg;
|
||
margin-left: 10rpx;
|
||
}
|
||
|
||
.m-comment .m-media-box-info-meta {
|
||
font-size: 24rpx;
|
||
font-weight: 100;
|
||
}
|
||
|
||
.g-flex-item {
|
||
font-size: 28rpx;
|
||
padding: 10rpx;
|
||
border-top: 1rpx solid #d5d5d5;
|
||
border-right: 1rpx solid #d5d5d5;
|
||
}
|
||
|
||
.m-Packinglist {
|
||
font-size: 28rpx;
|
||
padding: 20rpx;
|
||
}
|
||
|
||
/*底部按钮 start*/
|
||
.m-footer-btn {
|
||
width: 94%;
|
||
padding: 0rpx 24rpx;
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 0;
|
||
background-color: #fff;
|
||
text-align: center;
|
||
z-index: 3;
|
||
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: center;
|
||
border-top: 2rpx solid #eeeeee;
|
||
|
||
.iconfont {
|
||
font-size: 20px;
|
||
font-weight: 600;
|
||
}
|
||
}
|
||
|
||
.m-footer-btn-list {
|
||
/*width: 50%;*/
|
||
height: 100%;
|
||
position: relative;
|
||
float: left;
|
||
display: flex;
|
||
flex-direction: row;
|
||
}
|
||
|
||
.m-footer-btn-list::before {
|
||
// content: " ";
|
||
position: absolute;
|
||
left: 0;
|
||
top: -2rpx;
|
||
right: 0;
|
||
height: 2rpx;
|
||
border-bottom: 2rpx solid #d5d5d5;
|
||
color: #cccccc;
|
||
-webkit-transform-origin: 0 100%;
|
||
transform-origin: 0 100%;
|
||
-webkit-transform: scaleY(0.5);
|
||
transform: scaleY(0.5);
|
||
// z-index: 3;
|
||
}
|
||
|
||
.m-footer-btn-item {
|
||
position: relative;
|
||
float: left;
|
||
width: 110rpx;
|
||
font-size: 24rpx;
|
||
color: #888;
|
||
line-height: 40rpx;
|
||
padding: 8rpx 0;
|
||
// border-right: 1rpx solid #d5d5d5;
|
||
box-sizing: border-box;
|
||
flex: 1;
|
||
}
|
||
|
||
.no_goods {
|
||
.no_shadow {
|
||
height: 100%;
|
||
width: 100%;
|
||
position: absolute;
|
||
z-index: 11;
|
||
opacity: 0.7;
|
||
background-color: #b2b2b2;
|
||
}
|
||
|
||
.no_goods_tip {
|
||
height: 100%;
|
||
width: 100%;
|
||
position: absolute;
|
||
left: 0;
|
||
top: 0;
|
||
z-index: 12;
|
||
text-align: center;
|
||
height: 120rpx;
|
||
line-height: 120rpx;
|
||
}
|
||
|
||
position: absolute;
|
||
z-index: 10;
|
||
height: 120rpx;
|
||
line-height: 120rpx;
|
||
color: #fff;
|
||
font-size: 26rpx;
|
||
width: 100%;
|
||
bottom: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
}
|
||
|
||
.m-footer-btn-item:last-child {
|
||
border: none;
|
||
}
|
||
|
||
.m-footer-btn-icon {
|
||
width: 50rpx;
|
||
height: 50rpx;
|
||
line-height: 50rpx;
|
||
margin: 0 auto;
|
||
position: relative;
|
||
}
|
||
|
||
.m-footer-btn-item image {
|
||
width: 40rpx;
|
||
height: 40rpx;
|
||
}
|
||
|
||
.m-footer-btn-item contact-button {
|
||
position: absolute;
|
||
width: 100%;
|
||
height: 100%;
|
||
left: 0;
|
||
top: 0;
|
||
opacity: 0;
|
||
}
|
||
|
||
.m-footer-btn-main {
|
||
width: 25%;
|
||
// height: 100%;
|
||
float: left;
|
||
background-color: #ff9402;
|
||
color: #fff;
|
||
|
||
height: 48px;
|
||
line-height: 92rpx;
|
||
font-weight: 500;
|
||
font-size: 32rpx;
|
||
flex: 1;
|
||
|
||
border-radius: 18rpx;
|
||
}
|
||
|
||
.m-footer-desable {
|
||
-webkit-filter: grayscale(1);
|
||
filter: grayscale(1);
|
||
}
|
||
|
||
.m-now {
|
||
background-color: #ff0136;
|
||
}
|
||
|
||
/*底部按钮 end*/
|
||
/*选择规格遮罩 start*/
|
||
.m-panel-sp {
|
||
position: fixed;
|
||
width: 100%;
|
||
height: 100%;
|
||
top: 0;
|
||
left: 0;
|
||
z-index: 4;
|
||
background-color: rgba(0, 0, 0, 0.2);
|
||
}
|
||
|
||
.m-panel-sp-content {
|
||
background-color: #fff;
|
||
position: absolute;
|
||
width: 100%;
|
||
bottom: 0;
|
||
box-shadow: 0px -10rpx 15rpx rgba(0, 0, 0, 0.35);
|
||
border-radius: 20rpx;
|
||
}
|
||
|
||
.m-panel-sp-pinfo {
|
||
height: 170rpx;
|
||
box-sizing: border-box;
|
||
padding: 20rpx;
|
||
position: relative;
|
||
|
||
padding-bottom: 0;
|
||
}
|
||
|
||
.m-panel-sp-pimg {
|
||
width: 200rpx;
|
||
height: 200rpx;
|
||
position: absolute;
|
||
top: -50rpx;
|
||
background-color: #fff;
|
||
border-radius: 8rpx;
|
||
box-sizing: border-box;
|
||
padding: 10rpx;
|
||
box-shadow: 0px 0rpx 10rpx rgba(0, 0, 0, 0.35);
|
||
float: left;
|
||
}
|
||
|
||
.m-panel-sp-pimg image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.m-panel-sp-pname {
|
||
float: left;
|
||
margin-left: 216rpx;
|
||
font-size: 28rpx;
|
||
line-height: 40rpx;
|
||
|
||
margin-top: 6rpx;
|
||
}
|
||
|
||
.m-panel-sp-pname .m-pprice {
|
||
color: $default-skin-bg;
|
||
font-size: 32rpx;
|
||
line-height: 50rpx;
|
||
font-weight: bold;
|
||
|
||
display: inline;
|
||
}
|
||
|
||
.m-panel-sp-icon {
|
||
position: absolute;
|
||
right: 10rpx;
|
||
top: 10rpx;
|
||
z-index: 9999;
|
||
}
|
||
|
||
/* .m-panel-sp-listbox{height: 604rpx;} */
|
||
.m-panel-sp-listbox-item {
|
||
//border-top: 1rpx solid #d5d5d5;
|
||
box-sizing: border-box;
|
||
padding: 10rpx 20rpx;
|
||
}
|
||
|
||
.m-panel-sp-listbox-item .m-cells-title {
|
||
color: black;
|
||
padding-left: 0;
|
||
}
|
||
|
||
.m-panel-sp-labellist {
|
||
}
|
||
|
||
.m-panel-sp-labellist label {
|
||
display: inline-block;
|
||
font-size: 24rpx;
|
||
padding: 10rpx 15rpx;
|
||
border-radius: 8rpx;
|
||
margin: 10rpx;
|
||
color: #888;
|
||
border: 1rpx solid #d5d5d5;
|
||
}
|
||
|
||
/* for b2b */
|
||
.m-panel-sp-labellist1 label {
|
||
display: block;
|
||
font-size: 24rpx;
|
||
padding: 10rpx 15rpx;
|
||
border-radius: 8rpx;
|
||
margin: 10rpx;
|
||
color: #888;
|
||
border: 1rpx solid #d5d5d5;
|
||
float: left;
|
||
/*width: 8%;*/
|
||
text-align: center;
|
||
margin-top: 13px;
|
||
margin-bottom: 25px;
|
||
}
|
||
|
||
.m-panel-sp-sellabel-no {
|
||
/*
|
||
color: #d5d5d5 !important;
|
||
border: 1rpx solid #d5d5d5 !important;
|
||
*/
|
||
float: left !important;
|
||
// position: absolute;
|
||
left: 20%;
|
||
top: 9.3%;
|
||
}
|
||
|
||
.uni-numbox {
|
||
// margin-left: 64%;
|
||
display: inline-flex;
|
||
height: 100% !important;
|
||
width: 100%;
|
||
}
|
||
|
||
.uni-numbox__plus {
|
||
height: 100%;
|
||
}
|
||
|
||
.m-panel-sp-labellist2 {
|
||
display: none;
|
||
}
|
||
|
||
.m-panel-sp-sellabel1 {
|
||
display: none !important;
|
||
}
|
||
|
||
.m-ys {
|
||
float: left;
|
||
height: 35px;
|
||
line-height: 35px;
|
||
overflow: hidden;
|
||
width: 100%;
|
||
border-radius: 5px;
|
||
margin: 5px;
|
||
}
|
||
|
||
/* end for b2b */
|
||
.product-info {
|
||
.m-panel-sp-sellabel {
|
||
border: 0 !important;
|
||
color: #888 !important;
|
||
margin: 0 5px;
|
||
padding: 0;
|
||
|
||
font-size: 14px;
|
||
}
|
||
}
|
||
|
||
.activity-fixtop {
|
||
padding-top: 1px !important;
|
||
}
|
||
|
||
.m-panel-sp-sellabel {
|
||
color: $default-skin-bg !important;
|
||
border: 1rpx solid $default-skin-bg !important;
|
||
}
|
||
|
||
.m-panel-sp-sellabel-b2b {
|
||
color: #888 !important;
|
||
border: 1px solid #d5d5d5 !important;
|
||
}
|
||
|
||
.m-panel-sp-sellabel-b2b-h {
|
||
color: $default-skin-bg !important;
|
||
border: 1rpx solid $default-skin-bg !important;
|
||
}
|
||
|
||
.m-m-panel-sp-btn {
|
||
height: 80rpx;
|
||
//width: 100%;
|
||
width: 94%;
|
||
position: absolute;
|
||
bottom: 0;
|
||
left: 0;
|
||
|
||
background-color: #fff;
|
||
bottom: 0;
|
||
bottom: constant(safe-area-inset-bottom);
|
||
bottom: env(safe-area-inset-bottom);
|
||
padding: 24rpx;
|
||
display: flex;
|
||
}
|
||
|
||
.m-m-panel-sp-lbtn {
|
||
float: left;
|
||
width: 50%;
|
||
//border-top: 1rpx solid #d5d5d5;
|
||
border: 2rpx solid $default-skin-bg;
|
||
border-right: 0;
|
||
text-align: center;
|
||
border-radius: 9px 0px 0px 9px;
|
||
|
||
display: flex;
|
||
line-height: 76rpx;
|
||
height: 76rpx;
|
||
}
|
||
|
||
.m-m-panel-sp-rbtn {
|
||
width: 50%;
|
||
float: left;
|
||
background-color: $default-skin-bg;
|
||
line-height: 80rpx;
|
||
font-size: 32rpx;
|
||
color: #fff;
|
||
text-align: center;
|
||
font-weight: 500;
|
||
}
|
||
|
||
/*选择规格遮罩 end*/
|
||
.m-null-product {
|
||
color: #888;
|
||
font-size: 32rpx;
|
||
text-align: center;
|
||
position: absolute;
|
||
top: 50%;
|
||
left: 50%;
|
||
margin-left: -80rpx;
|
||
margin-top: -76rpx;
|
||
}
|
||
|
||
.m-null-product label {
|
||
font-size: 100rpx;
|
||
}
|
||
|
||
.m-navbar {
|
||
background-color: transparent;
|
||
}
|
||
|
||
.m-navbar-item {
|
||
padding: 20rpx 0;
|
||
font-size: 14px;
|
||
}
|
||
|
||
.m-navbar-item:after {
|
||
border: none;
|
||
}
|
||
|
||
.m-navbar-item.m-navbar-item-on {
|
||
background-color: transparent;
|
||
//background-color: #fff;
|
||
//color: $default-skin-bg;
|
||
}
|
||
|
||
.m-navbar-item.m-navbar-item-on::before {
|
||
content: " ";
|
||
position: absolute;
|
||
left: 0;
|
||
bottom: 0;
|
||
right: 0;
|
||
height: 6rpx;
|
||
//border-bottom: 6rpx solid $default-skin-bg;
|
||
color: #cccccc;
|
||
-webkit-transform-origin: 0 100%;
|
||
transform-origin: 0 100%;
|
||
-webkit-transform: scaleY(0.5);
|
||
transform: scaleY(0.5);
|
||
z-index: 3;
|
||
}
|
||
|
||
/*拼团*/
|
||
.progressBarBox {
|
||
float: right;
|
||
color: #888;
|
||
font-size: 24rpx;
|
||
margin-right: 20rpx;
|
||
font-weight: 200;
|
||
line-height: 64rpx;
|
||
}
|
||
|
||
.progressBarBox label {
|
||
color: #333;
|
||
font-weight: 200;
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
.m-FGB-time {
|
||
display: inline-block;
|
||
background-color: #666666;
|
||
padding: 5rpx;
|
||
color: #fff !important;
|
||
border-radius: 4rpx;
|
||
min-width: 28rpx;
|
||
height: 28rpx;
|
||
line-height: 28rpx;
|
||
text-align: center;
|
||
}
|
||
|
||
.m-FGB-time-tip {
|
||
margin: 0 4rpx;
|
||
}
|
||
|
||
.m-fightGroupsBox .m-media-box-bd {
|
||
font-size: 24rpx;
|
||
color: #888;
|
||
padding: 10rpx 30rpx;
|
||
line-height: 40rpx;
|
||
}
|
||
|
||
.u-fg {
|
||
font-size: 32rpx;
|
||
line-height: 40rpx;
|
||
box-sizing: border-box;
|
||
padding: 10rpx;
|
||
}
|
||
|
||
.u-fg view:first-child {
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
.m-fg-btn .m-footer-btn-list {
|
||
width: 30%;
|
||
}
|
||
|
||
.m-fg-btn .m-footer-btn-main {
|
||
width: 35%;
|
||
}
|
||
|
||
.m-fg-comment {
|
||
margin-bottom: 20rpx;
|
||
margin-top: 0px;
|
||
}
|
||
|
||
.m-fg-comment .m-media-box {
|
||
padding: 24rpx 15rpx;
|
||
}
|
||
|
||
.m-fg-comment .m-media-box-bd {
|
||
line-height: 50rpx;
|
||
display: block;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
}
|
||
|
||
.m-media-box-title-tip {
|
||
color: $default-skin-bg;
|
||
font-size: 24rpx !important;
|
||
}
|
||
|
||
.m-media-box-desc-tip {
|
||
color: #333;
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
.m-media-box-bd .u-btn {
|
||
padding: 0;
|
||
margin: 0 20rpx;
|
||
width: 160rpx;
|
||
float: right;
|
||
font-size: 24rpx;
|
||
line-height: 50rpx;
|
||
margin-top: 10rpx;
|
||
}
|
||
|
||
.m-fg-comment .m-media-box-hd {
|
||
margin-right: 10rpx;
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
}
|
||
|
||
.m-media-box-bd-tip {
|
||
text-align: center;
|
||
}
|
||
|
||
.m-price-tip {
|
||
padding: 5rpx 10rpx;
|
||
color: #fff !important;
|
||
background-color: $default-skin-bg;
|
||
display: inline-block !important;
|
||
font-weight: 200;
|
||
font-size: 24rpx !important;
|
||
position: relative;
|
||
margin-left: 10rpx;
|
||
border-radius: 4rpx;
|
||
top: -10rpx;
|
||
}
|
||
|
||
.m-price-tip::after {
|
||
position: absolute;
|
||
content: "";
|
||
border: solid 10rpx $default-skin-bg;
|
||
border-color: transparent $default-skin-bg transparent transparent;
|
||
left: -15rpx;
|
||
top: 50%;
|
||
margin-top: -10rpx;
|
||
}
|
||
|
||
.progressBarBox-content {
|
||
width: 160rpx;
|
||
height: 15rpx;
|
||
background-color: #d5d5d5;
|
||
border-radius: 20rpx;
|
||
}
|
||
|
||
.progressBarBox-content label {
|
||
height: 15rpx;
|
||
background-color: #ffc001;
|
||
border-radius: 20rpx;
|
||
}
|
||
|
||
.progressBarBox-text {
|
||
text-align: center;
|
||
}
|
||
|
||
.progressBarBox-text text {
|
||
font-size: 24rpx !important;
|
||
font-weight: 200;
|
||
}
|
||
|
||
/*拼团*/
|
||
/*当前拼团*/
|
||
.currentFG {
|
||
padding: 20rpx;
|
||
background-color: #fff;
|
||
margin-top: 20rpx;
|
||
text-align: center;
|
||
}
|
||
|
||
.currentFG-item {
|
||
display: inline-block;
|
||
width: 100rpx;
|
||
height: 100rpx;
|
||
border-radius: 100%;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.currentFG-item image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
/*当前拼团*/
|
||
.u-tap-btn {
|
||
position: fixed;
|
||
right: 20rpx;
|
||
bottom: 150rpx;
|
||
z-index: 3;
|
||
}
|
||
|
||
.u-go-home {
|
||
border-radius: 100%;
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
border: 1px solid #eee;
|
||
font-size: 20rpx;
|
||
text-align: center;
|
||
background-color: #fff;
|
||
box-shadow: 0px 4rpx 8rpx rgba(0, 0, 0, 0.35);
|
||
z-index: 2;
|
||
opacity: 0.8;
|
||
line-height: 80rpx;
|
||
margin-bottom: 20rpx;
|
||
}
|
||
|
||
.u-go-home .iconfont {
|
||
font-size: 40rpx;
|
||
}
|
||
|
||
.m-media-list {
|
||
float: left;
|
||
width: 100%;
|
||
}
|
||
|
||
.m-media-list image {
|
||
width: 115rpx;
|
||
height: 115rpx;
|
||
box-sizing: border-box;
|
||
margin: 10rpx;
|
||
border: 1rpx solid #eee;
|
||
}
|
||
|
||
.m-media-box-appmsg {
|
||
align-items: initial;
|
||
}
|
||
|
||
.wxParse-p image {
|
||
vertical-align: top;
|
||
}
|
||
|
||
.video {
|
||
position: absolute;
|
||
bottom: 40rpx;
|
||
left: 44%;
|
||
}
|
||
|
||
.seckill {
|
||
display: flex;
|
||
height: 120rpx;
|
||
color: #fff;
|
||
background: linear-gradient(270deg, #db384c 0%, #ff7495 100%);
|
||
border-radius: 11px 11px 0 0;
|
||
position: relative;
|
||
//bottom: -11px;
|
||
//padding-bottom: 11px;
|
||
}
|
||
|
||
.seckill-left {
|
||
width: 70%;
|
||
padding-left: 20rpx;
|
||
//background: #ff0136;
|
||
display: flex;
|
||
flex-flow: column;
|
||
|
||
margin: auto;
|
||
}
|
||
|
||
.seckill-right {
|
||
width: 35%;
|
||
//background: rgb(254, 234, 233);
|
||
display: flex;
|
||
//align-items: center;
|
||
justify-content: center;
|
||
flex-flow: column;
|
||
|
||
text-align: right;
|
||
padding-right: 20rpx;
|
||
margin-top: 10rpx;
|
||
|
||
image {
|
||
width: 166rpx;
|
||
height: 44rpx;
|
||
}
|
||
}
|
||
|
||
.seckill-left .discountPrice {
|
||
margin-top: 2rpx;
|
||
|
||
text.m-info-delprice {
|
||
font-size: 12px;
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.seckill-left .discountPrice text {
|
||
font-size: 56rpx;
|
||
}
|
||
|
||
.seckill-left .Price {
|
||
display: flex;
|
||
margin-bottom: 10rpx;
|
||
}
|
||
|
||
.seckill-left .Price image {
|
||
width: 166rpx;
|
||
height: 44rpx;
|
||
}
|
||
|
||
.seckill-left .Price view {
|
||
text-decoration: line-through;
|
||
margin-left: 20rpx;
|
||
font-size: 28rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
.seckill-right .endTime {
|
||
//color: #ff0136;
|
||
margin-bottom: 16rpx;
|
||
}
|
||
|
||
.seckill-right .Time {
|
||
font-size: 12px;
|
||
padding-top: 4rpx;
|
||
}
|
||
|
||
.seckill-right .time {
|
||
//padding: 8rpx 8rpx;
|
||
font-size: 14px;
|
||
border-radius: 10rpx;
|
||
//background: #ff0136
|
||
}
|
||
|
||
.seckill-right .time-tip {
|
||
//color: #ff0136;
|
||
//margin: 0 6rpx
|
||
}
|
||
|
||
// 拼团信息
|
||
.groupbooking {
|
||
display: flex;
|
||
height: 140rpx;
|
||
color: #fff;
|
||
background: linear-gradient(270deg, #ff3055 0%, #ff564e 100%);
|
||
height: 160rpx;
|
||
|
||
.m-info-price {
|
||
color: $secondary-skin-color;
|
||
font-size: 48rpx;
|
||
font-family: PingFangSC-Medium, PingFang SC;
|
||
font-weight: 500;
|
||
|
||
span {
|
||
padding: 0 8rpx;
|
||
}
|
||
}
|
||
|
||
.m-info-price text {
|
||
font-size: 28rpx;
|
||
font-weight: 300;
|
||
}
|
||
|
||
.progressBarBox {
|
||
position: relative;
|
||
bottom: 0rpx;
|
||
left: 140rpx;
|
||
}
|
||
}
|
||
|
||
.groupbooking .label .userLimt {
|
||
background-color: #fff;
|
||
padding: 20rpx 30rpx;
|
||
width: 80rpx;
|
||
height: 22rpx;
|
||
border-radius: 100rpx;
|
||
font-size: 22rpx;
|
||
font-weight: bold;
|
||
display: flex;
|
||
color: $default-skin-bg;
|
||
justify-content: center;
|
||
align-items: center;
|
||
position: relative;
|
||
left: 200rpx;
|
||
bottom: 65rpx;
|
||
}
|
||
|
||
.groupbooking .label {
|
||
color: #fff;
|
||
margin: 10rpx;
|
||
}
|
||
|
||
.groupbooking .endlabel {
|
||
color: #febea1;
|
||
}
|
||
|
||
.groupbooking .m-info-delprice {
|
||
color: #ffb2b2;
|
||
position: relative;
|
||
top: 40rpx;
|
||
right: 180rpx;
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
.groupbooking-name {
|
||
background: #fff;
|
||
height: 100rpx;
|
||
padding: 20rpx;
|
||
margin-bottom: 20rpx;
|
||
}
|
||
|
||
.groupbooking-rule {
|
||
background: #fff;
|
||
padding: 20rpx;
|
||
margin-bottom: 20rpx;
|
||
font-size: 30rpx;
|
||
|
||
.groupbooking-rule-title {
|
||
padding: 10rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
.red-dot {
|
||
content: "";
|
||
width: 6rpx;
|
||
height: 32rpx;
|
||
background-color: red;
|
||
margin-right: 8px;
|
||
}
|
||
|
||
.groupbooking-rule-line {
|
||
border-bottom: 2rpx solid #eee;
|
||
}
|
||
|
||
.flex-container {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: 20rpx;
|
||
}
|
||
|
||
.flex-item {
|
||
text-align: center;
|
||
}
|
||
|
||
.arrow {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
.flex-item-img {
|
||
width: 50rpx;
|
||
height: 50rpx;
|
||
}
|
||
|
||
.right-arrow {
|
||
width: 40rpx;
|
||
height: 40rpx;
|
||
}
|
||
}
|
||
|
||
/* 店铺信息 */
|
||
|
||
.goods-detail-store .store_name {
|
||
font-size: 32rpx;
|
||
color: #333;
|
||
}
|
||
|
||
.m-cells::after {
|
||
height: 0;
|
||
border-bottom: 0;
|
||
}
|
||
|
||
.goods-detail-store label {
|
||
font-size: 44rpx;
|
||
float: left;
|
||
line-height: 48rpx;
|
||
}
|
||
|
||
.goods-detail-store label.icon-mall {
|
||
color: #f30213;
|
||
font-size: 32rpx !important;
|
||
margin: auto 6rpx;
|
||
}
|
||
|
||
.goods-detail-store .store-rate {
|
||
margin: 6rpx 30rpx 0rpx;
|
||
}
|
||
|
||
.goods-detail-store .store-rate label {
|
||
display: inline-block;
|
||
width: 33.33%;
|
||
height: 80rpx;
|
||
font-size: 26rpx;
|
||
line-height: 80rpx;
|
||
color: #999999;
|
||
padding: auto 60rpx;
|
||
}
|
||
|
||
.goods-detail-store .store-rate label view {
|
||
display: inline-block;
|
||
vertical-align: middle;
|
||
font-size: 26rpx;
|
||
font-weight: 600;
|
||
}
|
||
|
||
.goods-detail-store .store-rate label i {
|
||
display: inline-block;
|
||
vertical-align: middle;
|
||
width: 0.7rem;
|
||
height: 0.7rem;
|
||
font-size: 0.45rem;
|
||
line-height: 0.7rem;
|
||
font-style: normal;
|
||
text-align: center;
|
||
border-radius: 0.1rem;
|
||
}
|
||
|
||
.goods-detail-store .store-rate label.equal view,
|
||
.goods-detail-store .store-rate label.high view {
|
||
margin-left: 4rpx;
|
||
color: #f30213;
|
||
}
|
||
|
||
.goods-detail-store .store-rate label.equal i,
|
||
.goods-detail-store .store-rate label.high i {
|
||
color: #fff;
|
||
background-color: #f30213;
|
||
}
|
||
|
||
.goods-detail-store .store-rate label.low view {
|
||
color: #48cfae;
|
||
}
|
||
|
||
.goods-detail-store .store-rate label.low i {
|
||
color: #fff;
|
||
background-color: #48cfae;
|
||
}
|
||
|
||
/* share */
|
||
.textarea-wrp {
|
||
padding: 0 20rpx;
|
||
}
|
||
|
||
.page-section {
|
||
margin-bottom: 20rpx;
|
||
}
|
||
|
||
.textarea {
|
||
border: 2rpx solid #d8d8d8;
|
||
padding: 10rpx;
|
||
height: 90rpx;
|
||
width: 690rpx;
|
||
}
|
||
|
||
.uni-input {
|
||
border: 2rpx solid #d8d8d8;
|
||
padding: 0 10rpx;
|
||
width: 690rpx;
|
||
}
|
||
|
||
.uni-uploader-body {
|
||
display: flex;
|
||
justify-content: center;
|
||
}
|
||
|
||
radio-group {
|
||
box-sizing: border-box;
|
||
width: 100%;
|
||
padding: 0 30rpx;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.item_disabled {
|
||
background-color: #ddd !important;
|
||
cursor: not-allowed;
|
||
}
|
||
|
||
.m-footer-btn-icon .uni-badge {
|
||
position: absolute;
|
||
z-index: 9;
|
||
margin-left: -4rpx;
|
||
margin-top: -10rpx;
|
||
}
|
||
|
||
/* */
|
||
.u-p-opt {
|
||
position: absolute;
|
||
right: 20rpx;
|
||
bottom: 110rpx;
|
||
}
|
||
|
||
.navtext {
|
||
margin-bottom: 20rpx;
|
||
}
|
||
|
||
.quicknav {
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
border-radius: 50%;
|
||
border: 1rpx solid #eee;
|
||
|
||
.iconfont {
|
||
text-align: center;
|
||
vertical-align: middle;
|
||
line-height: 80rpx;
|
||
height: 80rpx;
|
||
font-size: 40rpx;
|
||
}
|
||
|
||
.iconfont.zc {
|
||
text-align: center;
|
||
vertical-align: middle;
|
||
line-height: 80rpx;
|
||
height: 80rpx;
|
||
font-size: 40rpx;
|
||
color: #7a7a7a;
|
||
}
|
||
}
|
||
|
||
.u-p-opt .navtext:first-child {
|
||
}
|
||
|
||
.u-p-opt .navtext:last-child {
|
||
margin-bottom: 0rpx;
|
||
}
|
||
|
||
/* 修正"app-plus": {
|
||
"titleNView": {
|
||
"type": "transparent"
|
||
|
||
scroll view 问题
|
||
*/
|
||
.fix-titlenview-trans {
|
||
height: calc(100% + 88rpx);
|
||
}
|
||
|
||
/* near chain*/
|
||
.m-nearbylist label {
|
||
font-size: 26rpx;
|
||
}
|
||
|
||
.list-box {
|
||
background-color: #fff;
|
||
color: #333;
|
||
}
|
||
|
||
.item-box {
|
||
padding: 20rpx;
|
||
border-bottom: 1rpx solid #eee;
|
||
}
|
||
|
||
.flex-box {
|
||
display: flex;
|
||
align-items: center;
|
||
position: relative;
|
||
}
|
||
|
||
.flex-shop {
|
||
width: 30rpx;
|
||
height: 30rpx;
|
||
}
|
||
|
||
.m-imfo-sp-selext-name {
|
||
margin-left: 25rpx;
|
||
max-width: 60%;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
display: -webkit-box;
|
||
-webkit-line-clamp: 1;
|
||
-webkit-box-orient: vertical;
|
||
}
|
||
|
||
.flex-title {
|
||
font-size: 30rpx;
|
||
margin-left: 10rpx;
|
||
max-width: 75%;
|
||
overflow: hidden;
|
||
height: 40rpx;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.flex-postion {
|
||
display: flex;
|
||
align-items: center;
|
||
position: absolute;
|
||
right: 0;
|
||
}
|
||
|
||
.flex-postion image {
|
||
width: 20rpx;
|
||
height: 26rpx;
|
||
}
|
||
|
||
.flex-postion label {
|
||
font-size: 24rpx;
|
||
color: #9b9b9b;
|
||
margin-left: 10rpx;
|
||
}
|
||
|
||
.m-nearbylist {
|
||
position: absolute;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
.flex-info {
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
}
|
||
|
||
.flex-info view {
|
||
margin: 10rpx 0 0 0;
|
||
font-size: 28rpx;
|
||
}
|
||
|
||
.flex-info-box {
|
||
display: flex;
|
||
align-items: flex-start;
|
||
}
|
||
|
||
.flex-info label {
|
||
display: inline-block;
|
||
vertical-align: top;
|
||
word-wrap: break-word;
|
||
width: 520rpx;
|
||
}
|
||
|
||
.flex-info image {
|
||
width: 40rpx;
|
||
height: 40rpx;
|
||
position: absolute;
|
||
right: 10rpx;
|
||
}
|
||
|
||
.flex-info-title {
|
||
flex-basis: 145rpx;
|
||
}
|
||
|
||
.open_ba {
|
||
width: 80%;
|
||
margin: 0 auto;
|
||
}
|
||
|
||
.open_dl {
|
||
width: 34%;
|
||
height: 79rpx;
|
||
background: #33cc66;
|
||
border-radius: 20rpx;
|
||
text-align: center;
|
||
color: #fff;
|
||
margin: 79rpx auto 0 auto;
|
||
line-height: 75rpx;
|
||
}
|
||
|
||
.nearbylist-item {
|
||
padding: 20rpx 30rpx;
|
||
border-bottom: 1px solid #eee;
|
||
background: white;
|
||
}
|
||
|
||
.nearbylist-item:last-child {
|
||
border: none;
|
||
}
|
||
|
||
.item-info {
|
||
position: relative;
|
||
font-size: 28rpx;
|
||
}
|
||
|
||
.item-name {
|
||
display: inline-block;
|
||
font-size: 30rpx;
|
||
}
|
||
|
||
.item-phone {
|
||
line-height: 45rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
.item-distance {
|
||
float: right;
|
||
font-size: 26rpx;
|
||
color: #bbb;
|
||
}
|
||
|
||
.item-address {
|
||
position: relative;
|
||
font-size: 26rpx;
|
||
color: #bbb;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
display: -webkit-box;
|
||
-webkit-box-orient: vertical;
|
||
-webkit-line-clamp: 1;
|
||
margin-right: 40rpx;
|
||
line-height: 40rpx;
|
||
}
|
||
|
||
.item-info::after {
|
||
content: " ";
|
||
display: inline-block;
|
||
height: 12rpx;
|
||
width: 12rpx;
|
||
border-width: 4rpx 4rpx 0 0;
|
||
border-color: #ebebe7;
|
||
border-style: solid;
|
||
-webkit-transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0);
|
||
transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0);
|
||
top: -4rpx;
|
||
position: absolute;
|
||
top: 72%;
|
||
right: 4rpx;
|
||
padding: 3rpx;
|
||
}
|
||
|
||
.m-nearbylist {
|
||
height: 100%;
|
||
position: absolute;
|
||
}
|
||
|
||
.tag-view {
|
||
/* #ifndef APP-PLUS-NVUE */
|
||
display: inline-flex;
|
||
/* #endif */
|
||
flex-direction: column;
|
||
margin: 10rpx 15rpx;
|
||
justify-content: center;
|
||
}
|
||
|
||
.evaluate {
|
||
height: 360rpx;
|
||
background: rgba(255, 255, 255, 1);
|
||
|
||
margin-bottom: 10px;
|
||
border-radius: 6px;
|
||
}
|
||
|
||
.evaluate-top {
|
||
position: relative;
|
||
height: 80rpx;
|
||
background: rgba(255, 255, 255, 1);
|
||
padding-top: 20rpx;
|
||
margin-left: 30rpx;
|
||
}
|
||
|
||
.right {
|
||
width: 150rpx;
|
||
height: 24rpx;
|
||
font-size: 26rpx;
|
||
font-family: Alibaba PuHuiTi;
|
||
font-weight: 400;
|
||
color: $main-skin-color;
|
||
|
||
margin-right: 8rpx;
|
||
}
|
||
|
||
.evaluate-right {
|
||
position: absolute;
|
||
margin-top: -52rpx;
|
||
right: 56rpx;
|
||
|
||
&:after {
|
||
content: " ";
|
||
display: inline-block;
|
||
height: 12rpx;
|
||
width: 12rpx;
|
||
border-width: 4rpx 4rpx 0 0;
|
||
border-color: #999999;
|
||
border-style: solid;
|
||
-webkit-transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0);
|
||
transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0);
|
||
position: relative;
|
||
top: -4rpx;
|
||
position: absolute;
|
||
top: 50%;
|
||
margin-top: -8rpx;
|
||
/*right: 4rpx;*/
|
||
}
|
||
}
|
||
|
||
.evaluate-bottom {
|
||
background: rgba(255, 255, 255, 1);
|
||
//position: absolute;
|
||
//margin-top: 80rpx;
|
||
}
|
||
|
||
.uesr-evaluate {
|
||
width: 644rpx;
|
||
height: 200rpx;
|
||
// background:rgba(244,244,244,1);
|
||
border-radius: 8rpx;
|
||
float: left;
|
||
padding-top: 20rpx;
|
||
padding-left: 30rpx;
|
||
}
|
||
|
||
.uesr-evaluate-center {
|
||
width: 100%;
|
||
height: 200rpx;
|
||
background: rgba(244, 244, 244, 1);
|
||
border-radius: 0rpx 8rpx 8rpx 0rpx;
|
||
float: left;
|
||
}
|
||
|
||
.more-items {
|
||
}
|
||
|
||
.more-items-title {
|
||
width: 100%;
|
||
height: 100rpx;
|
||
background: rgba(244, 244, 244, 1);
|
||
}
|
||
|
||
.uesr-evaluate-image {
|
||
width: 200rpx;
|
||
height: 200rpx;
|
||
border-radius: 0rpx 8rpx 8rpx 0rpx;
|
||
background: rgba(255, 255, 255, 1);
|
||
float: left;
|
||
}
|
||
|
||
.center-top {
|
||
width: 360rpx;
|
||
height: 60rpx;
|
||
// background:rgba(255,255,255,1);
|
||
margin: 20rpx 20rpx;
|
||
text-align: left;
|
||
}
|
||
|
||
.user-image {
|
||
width: 60rpx;
|
||
height: 60rpx;
|
||
background: rgba(244, 244, 244, 1);
|
||
border-radius: 50%;
|
||
float: left;
|
||
}
|
||
|
||
.user-name {
|
||
width: 176rpx;
|
||
height: 24rpx;
|
||
font-size: 26rpx;
|
||
font-family: Alibaba PuHuiTi;
|
||
font-weight: 400;
|
||
color: rgba(153, 153, 153, 1);
|
||
margin: 0 20rpx;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.user-text {
|
||
/* width:360rpx; */
|
||
height: 80rpx;
|
||
// background:rgba(255,255,255,1);
|
||
margin-left: 20rpx;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
|
||
}
|
||
|
||
.user-text label {
|
||
width: 360rpx;
|
||
height: 80rpx;
|
||
font-size: 32rpx;
|
||
font-family: Alibaba PuHuiTi;
|
||
line-height: 22rpx;
|
||
font-weight: 400;
|
||
color: rgba(51, 51, 51, 1);
|
||
word-wrap: break-word;
|
||
word-break: normal;
|
||
}
|
||
|
||
.p-adds {
|
||
width: 750rpx;
|
||
height: 100rpx;
|
||
background: rgba(255, 255, 255, 1);
|
||
margin-top: 20rpx;
|
||
}
|
||
|
||
.p-adds-left {
|
||
width: 100rpx;
|
||
height: 100rpx;
|
||
float: left;
|
||
}
|
||
|
||
.p-adds-left label {
|
||
width: 60rpx;
|
||
height: 25rpx;
|
||
font-size: 26rpx;
|
||
font-family: Alibaba PuHuiTi;
|
||
font-weight: 400;
|
||
color: rgba(153, 153, 153, 1);
|
||
position: absolute;
|
||
margin-left: 30rpx;
|
||
margin-top: 30rpx;
|
||
}
|
||
|
||
.p-adds-right {
|
||
width: 600rpx;
|
||
height: 100rpx;
|
||
float: right;
|
||
}
|
||
|
||
.p-adds-right label {
|
||
position: absolute;
|
||
margin-top: 30rpx;
|
||
font-size: 26rpx;
|
||
font-family: Alibaba PuHuiTi;
|
||
font-weight: 400;
|
||
color: rgba(51, 51, 51, 1);
|
||
}
|
||
|
||
.evaluate-top .left {
|
||
width: 228rpx;
|
||
height: 31rpx;
|
||
font-size: 32rpx;
|
||
font-family: Alibaba PuHuiTi;
|
||
font-weight: 500;
|
||
color: rgba(51, 51, 51, 1);
|
||
}
|
||
|
||
.m-store {
|
||
//width: 100%;
|
||
//height: 460rpx;
|
||
background: rgba(255, 255, 255, 1);
|
||
margin-bottom: 20rpx;
|
||
border-radius: 6px;
|
||
}
|
||
|
||
.is-rest{
|
||
position: fixed;
|
||
height: 10%;
|
||
width: 100%;
|
||
bottom: 0;
|
||
|
||
&::before{
|
||
content: "门店已打烊";
|
||
position: absolute;
|
||
bottom: 0;
|
||
height: 100%;
|
||
width: 100%;
|
||
text-align: center;
|
||
line-height: 100rpx;
|
||
background-color: rgba(0, 0, 0, 0.7);
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.m-store-info {
|
||
position: relative;
|
||
//width: 750rpx;
|
||
height: 120rpx;
|
||
background: rgba(255, 255, 255, 1);
|
||
|
||
padding: 24rpx;
|
||
padding-left: 0px;
|
||
padding-bottom: 0px;
|
||
background: #ffffff;
|
||
border-radius: 12rpx;
|
||
|
||
.info-brand {
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #888888;
|
||
line-height: 40rpx;
|
||
padding: 20rpx 0;
|
||
|
||
label {
|
||
padding: 0 20rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #222222;
|
||
}
|
||
}
|
||
|
||
.m-store-name {
|
||
padding: 0 30rpx;
|
||
|
||
.m-name {
|
||
font-size: 32rpx;
|
||
font-family: PingFangSC-Medium, PingFang SC;
|
||
font-weight: 500;
|
||
color: #222222;
|
||
line-height: 44rpx;
|
||
}
|
||
|
||
.m-quantity {
|
||
font-size: 28rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #555555;
|
||
line-height: 40rpx;
|
||
padding: 6rpx 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
.m-store-radi {
|
||
width: 80rpx;
|
||
height: 80rpx;
|
||
background: linear-gradient(
|
||
45deg,
|
||
rgba(105, 178, 25, 1),
|
||
rgba(121, 202, 32, 1)
|
||
);
|
||
border-radius: 50%;
|
||
position: absolute;
|
||
margin: 20rpx 30rpx;
|
||
}
|
||
|
||
.m-store-radi label {
|
||
width: 58rpx;
|
||
height: 28rpx;
|
||
font-size: 30rpx;
|
||
font-family: Alibaba PuHuiTi;
|
||
font-weight: 500;
|
||
color: rgba(255, 255, 255, 1);
|
||
position: absolute;
|
||
margin: 12rpx;
|
||
}
|
||
|
||
.m-store-items {
|
||
width: 100%;
|
||
height: 380rpx;
|
||
background: rgba(255, 255, 255, 1);
|
||
white-space: normal;
|
||
}
|
||
|
||
.m-store-item {
|
||
width: 210rpx;
|
||
height: 340rpx;
|
||
// background:rgba(244,255,232,1);
|
||
float: left;
|
||
margin-top: 20rpx;
|
||
margin-left: 30rpx;
|
||
}
|
||
|
||
.m-store-item-image {
|
||
width: 210rpx;
|
||
height: 210rpx;
|
||
border-radius: 8rpx;
|
||
background: rgba(242, 242, 242, 1);
|
||
}
|
||
|
||
.m-store-item-name label {
|
||
/* width:150rpx; */
|
||
height: 60rpx;
|
||
font-size: 26rpx;
|
||
font-family: Alibaba PuHuiTi;
|
||
font-weight: 400;
|
||
color: rgba(51, 51, 51, 1);
|
||
line-height: 60rpx;
|
||
display: -webkit-box;
|
||
-webkit-box-orient: vertical;
|
||
-webkit-line-clamp: 1;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.m-store-item-price label {
|
||
width: 100px;
|
||
height: 30px;
|
||
font-size: 20rpx;
|
||
font-family: Alibaba PuHuiTi;
|
||
font-weight: 400;
|
||
color: #ff5a00;
|
||
text-align: center;
|
||
}
|
||
|
||
.scroll-view_H {
|
||
white-space: nowrap;
|
||
width: 100%;
|
||
background-color: #fff;
|
||
margin-top: 24rpx;
|
||
border-radius: 12rpx;
|
||
}
|
||
|
||
.scroll-view-item {
|
||
height: 300rpx;
|
||
line-height: 300rpx;
|
||
text-align: center;
|
||
font-size: 36rpx;
|
||
}
|
||
|
||
.scroll-view-item_H {
|
||
display: inline-block;
|
||
/* height: 260rpx; */
|
||
// line-height: 300rpx;
|
||
text-align: center;
|
||
font-size: 36rpx;
|
||
}
|
||
|
||
.m-policy {
|
||
background-color: #ffe7d0;
|
||
}
|
||
|
||
.m-imfo-sp-title {
|
||
color: #a5988f;
|
||
}
|
||
|
||
.m-imfo-sp-money {
|
||
color: #ff7300;
|
||
}
|
||
|
||
.bottom-safearea {
|
||
padding-bottom: 0;
|
||
padding-bottom: constant(safe-area-inset-bottom);
|
||
padding-bottom: env(safe-area-inset-bottom);
|
||
}
|
||
|
||
.activity-title {
|
||
height: 96rpx;
|
||
width: 100%;
|
||
line-height: 96rpx;
|
||
/* padding: 5px; */
|
||
text-align: center;
|
||
font-size: 52rpx;
|
||
color: #c0a080;
|
||
display: block;
|
||
}
|
||
|
||
.product-item {
|
||
border: 1px dashed #c5a789;
|
||
height: 500rpx;
|
||
margin-top: 20rpx;
|
||
overflow-y: scroll;
|
||
overflow-x: none;
|
||
padding: 10px;
|
||
border-radius: 8px;
|
||
}
|
||
|
||
.gift-item {
|
||
border: 1px solid #dadadc;
|
||
margin-top: 2px;
|
||
}
|
||
|
||
.gift-rule {
|
||
margin-top: 18rpx;
|
||
font-size: 24rpx;
|
||
margin-bottom: 18rpx;
|
||
color: #c0a080;
|
||
}
|
||
|
||
.scroll-view_H {
|
||
white-space: nowrap;
|
||
width: 100%;
|
||
height: 344rpx;
|
||
}
|
||
|
||
.scroll-view-item {
|
||
height: 300rpx;
|
||
line-height: 300rpx;
|
||
text-align: center;
|
||
font-size: 36rpx;
|
||
}
|
||
|
||
.scroll-view-item_H {
|
||
display: inline-block;
|
||
//width: 640rpx;
|
||
height: 344rpx;
|
||
background: #ffffff;
|
||
opacity: 1;
|
||
border-radius: 16rpx;
|
||
margin-right: 24rpx;
|
||
}
|
||
|
||
.product-l-img {
|
||
width: 240rpx;
|
||
height: 240rpx;
|
||
background: rgba(0, 0, 0, 0);
|
||
opacity: 1;
|
||
border-radius: 16rpx 16rpx 0rpx 0rpx;
|
||
}
|
||
|
||
.product-l-price {
|
||
width: 208rpx;
|
||
height: 88rpx;
|
||
background: rgba(255, 255, 255, 1);
|
||
// padding:8rpx 16rpx;
|
||
margin-top: 10px;
|
||
|
||
.product_name {
|
||
font-size: 12px;
|
||
font-family: PingFang SC;
|
||
font-weight: 400;
|
||
line-height: 28rpx;
|
||
color: #002951;
|
||
opacity: 1;
|
||
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.m-project-tips {
|
||
height: 18rpx;
|
||
font-size: 14rpx;
|
||
font-family: PingFang SC;
|
||
font-weight: 400;
|
||
line-height: 18rpx;
|
||
color: #002951;
|
||
opacity: 0.6;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
margin: 4rpx 0rpx;
|
||
}
|
||
|
||
.price-new {
|
||
font-size: 12px;
|
||
font-family: Arial;
|
||
font-weight: 400;
|
||
line-height: 34rpx;
|
||
color: #ff4142;
|
||
opacity: 1;
|
||
margin: 5px 0;
|
||
}
|
||
}
|
||
|
||
.evaluate {
|
||
.scroll-view_H {
|
||
white-space: nowrap;
|
||
width: 100%;
|
||
height: 255rpx;
|
||
// margin-left: 24rpx;
|
||
margin-top: 0px;
|
||
}
|
||
|
||
.scroll-view-item {
|
||
height: 300rpx;
|
||
line-height: 300rpx;
|
||
text-align: center;
|
||
font-size: 36rpx;
|
||
}
|
||
|
||
.scroll-view-item_H {
|
||
display: inline-block;
|
||
height: 260rpx !important;
|
||
// line-height: 300rpx;
|
||
// text-align: center;
|
||
font-size: 36rpx;
|
||
}
|
||
}
|
||
|
||
.sgar {
|
||
color: #fff !important;
|
||
font-weight: 400;
|
||
font-size: 20rpx;
|
||
background: #333959;
|
||
padding: 0rpx 15rpx !important;
|
||
border-radius: 5rpx;
|
||
display: inline-block !important;
|
||
margin: 0rpx 10rpx 0rpx 50rpx !important;
|
||
}
|
||
|
||
.m-cell-bd.coupon {
|
||
display: flex;
|
||
align-items: flex-start;
|
||
line-height: 1;
|
||
|
||
.m-info-tip {
|
||
white-space: nowrap;
|
||
margin-top: 10rpx;
|
||
}
|
||
|
||
.m-coupon-item1 {
|
||
height: initial;
|
||
margin: 0;
|
||
padding: 0;
|
||
|
||
.m-coupon-info {
|
||
margin-left: 24rpx;
|
||
|
||
width: 560rpx;
|
||
}
|
||
|
||
.m-coupon-text {
|
||
width: 100%;
|
||
|
||
uni-text {
|
||
width: 100%;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.product-info {
|
||
padding: 24rpx;
|
||
padding-bottom: 0;
|
||
|
||
.info-content {
|
||
background: #ffffff;
|
||
border-radius: 12rpx;
|
||
border-radius: 11px 11px 0 0;
|
||
padding: 24rpx 0px 24rpx 24rpx;
|
||
|
||
.min-quantity {
|
||
background: #a76e38;
|
||
border-radius: 200rpx 0px 0px 200rpx;
|
||
font-size: 24rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #ffffff;
|
||
line-height: 34rpx;
|
||
padding: 10rpx 18rpx;
|
||
right: 23rpx;
|
||
margin-top: 15rpx;
|
||
}
|
||
|
||
.m-info-name {
|
||
font-size: 32rpx;
|
||
font-family: PingFangSC-Medium, PingFang SC;
|
||
font-weight: 500;
|
||
color: #222222;
|
||
line-height: 44rpx;
|
||
display: -webkit-box;
|
||
-webkit-line-clamp: 3;
|
||
/*设置多少行*/
|
||
-webkit-box-orient: vertical;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
margin: 10rpx 0;
|
||
|
||
padding-right: 24rpx;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.m-info-tips {
|
||
font-size: 26rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #888888;
|
||
padding: 2rpx 0;
|
||
line-height: 36rpx;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
}
|
||
}
|
||
|
||
.m-item {
|
||
border-radius: 4rpx;
|
||
border: 1rpx solid #ff3300;
|
||
font-size: 24rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #ff3300;
|
||
line-height: 34rpx;
|
||
padding: 4rpx;
|
||
}
|
||
|
||
.m-footer-btn-main-left {
|
||
border-radius: 18rpx 0px 0px 18rpx !important;
|
||
}
|
||
|
||
.m-footer-btn-main-right {
|
||
background: $default-skin-bg;
|
||
|
||
border-radius: 0px 18rpx 18rpx 0px !important;
|
||
}
|
||
|
||
.m-m-panel-sp-rbtn {
|
||
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||
}
|
||
|
||
.m-pstock {
|
||
display: inline;
|
||
margin-left: 20rpx;
|
||
}
|
||
|
||
.m-pspec {
|
||
background: #f5f5f5;
|
||
border-radius: 12rpx;
|
||
font-size: 24rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #222222;
|
||
line-height: 34rpx;
|
||
padding: 10rpx;
|
||
margin-top: 10rpx;
|
||
|
||
display: table;
|
||
}
|
||
|
||
.spec-info {
|
||
width: 216rpx;
|
||
height: 290rpx;
|
||
background: #f5f5f5;
|
||
border-radius: 12rpx;
|
||
float: left;
|
||
margin-right: 14rpx;
|
||
margin-right: 14rpx;
|
||
margin-bottom: 14rpx;
|
||
border: 1rpx solid #eeeeee;
|
||
|
||
.spec-image {
|
||
width: 194rpx;
|
||
height: 194rpx;
|
||
padding: 14rpx 12rpx 0rpx 14rpx;
|
||
}
|
||
|
||
.spec-info-name {
|
||
font-size: 24rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #222222;
|
||
line-height: 33rpx;
|
||
padding: 4rpx 10rpx;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
display: -webkit-box;
|
||
-webkit-box-orient: vertical;
|
||
word-wrap: break-word;
|
||
white-space: normal !important;
|
||
-webkit-line-clamp: 2; // 想要超出三行显示 就把这里改成3就好了
|
||
|
||
text-align: center;
|
||
}
|
||
}
|
||
|
||
.spec-checked {
|
||
border: 2rpx solid $default-skin-bg;
|
||
background: rgba(167, 110, 56, 0.1);
|
||
}
|
||
|
||
.m-customized {
|
||
display: flex;
|
||
padding: 46rpx 24rpx;
|
||
font-size: 28rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
line-height: 40rpx;
|
||
|
||
.m-customized-left {
|
||
width: 8%;
|
||
color: #555555;
|
||
}
|
||
|
||
.m-customized-center {
|
||
color: #222222;
|
||
padding: 0 28rpx;
|
||
width: 50%;
|
||
}
|
||
|
||
.m-customized-right {
|
||
color: #222222;
|
||
width: 30%;
|
||
text-align: right;
|
||
}
|
||
}
|
||
|
||
.m-input-quantity {
|
||
padding: 24rpx;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.m-price {
|
||
display: flex;
|
||
justify-content: flex-end;
|
||
font-size: 28rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #222222;
|
||
line-height: 40rpx;
|
||
padding: 22rpx 24rpx;
|
||
}
|
||
|
||
.split-line {
|
||
border: 0.5pt solid #eeeeee;
|
||
width: 100%;
|
||
}
|
||
|
||
.split-lines {
|
||
border: 0.5pt solid #eeeeee;
|
||
width: 360px;
|
||
margin-left: 13px;
|
||
margin-top: 15px;
|
||
}
|
||
|
||
.customized-info {
|
||
display: flex;
|
||
align-items: center;
|
||
padding: 14rpx 24rpx 34rpx 24rpx;
|
||
font-size: 28rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #555555;
|
||
line-height: 40rpx;
|
||
|
||
span {
|
||
padding: 0 18rpx;
|
||
}
|
||
}
|
||
|
||
.policy-quantity {
|
||
font-size: 26rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #888888;
|
||
line-height: 36rpx;
|
||
}
|
||
|
||
.popup-content {
|
||
width: 566rpx;
|
||
position: relative;
|
||
background-repeat: no-repeat;
|
||
background-size: 100% 100%;
|
||
|
||
.p-top {
|
||
width: 100%;
|
||
height: 140rpx;
|
||
}
|
||
|
||
.close-img {
|
||
position: absolute;
|
||
bottom: -132rpx;
|
||
left: 44%;
|
||
|
||
image {
|
||
width: 64rpx;
|
||
height: 64rpx;
|
||
}
|
||
}
|
||
|
||
.p-content {
|
||
font-size: 32rpx;
|
||
line-height: 40rpx;
|
||
text-align: center;
|
||
padding: 50rpx 0;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
}
|
||
|
||
.p-bottom {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
padding: 0 60rpx;
|
||
|
||
.button {
|
||
width: 180rpx;
|
||
height: 80rpx;
|
||
border-radius: 18rpx;
|
||
border: 1rpx solid #a76e38;
|
||
text-align: center;
|
||
line-height: 80rpx;
|
||
margin-top: 15px;
|
||
font-size: 32rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #a76e38;
|
||
}
|
||
|
||
.button-right {
|
||
background: #a76e38;
|
||
color: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.nav-head-box {
|
||
position: fixed;
|
||
left: 0;
|
||
top: 0;
|
||
z-index: 100;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 100%;
|
||
/* #ifdef MP */
|
||
width: 76%;
|
||
/* #endif */
|
||
background: rgba(255, 255, 255, 0);
|
||
|
||
.back {
|
||
position: absolute;
|
||
left: 0;
|
||
top: 13rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 100rpx;
|
||
height: 64rpx;
|
||
|
||
// 返回
|
||
.back-one {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 50rpx;
|
||
height: 50rpx;
|
||
background-color: rgba(0, 0, 0, 0.3);
|
||
border-radius: 100%;
|
||
|
||
text {
|
||
display: flex;
|
||
width: 20rpx;
|
||
height: 20rpx;
|
||
border-left: 2rpx solid #ffffff;
|
||
border-bottom: 2rpx solid #ffffff;
|
||
transform: rotate(45deg);
|
||
}
|
||
}
|
||
|
||
.action {
|
||
background-color: transparent;
|
||
|
||
text {
|
||
border-color: #555555;
|
||
}
|
||
}
|
||
}
|
||
|
||
// 分享更多
|
||
.share {
|
||
position: absolute;
|
||
right: 0;
|
||
top: 13rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 100rpx;
|
||
height: 64rpx;
|
||
}
|
||
}
|
||
|
||
.selext-parameter {
|
||
overflow: hidden; //超出的文本隐藏
|
||
display: -webkit-box;
|
||
-webkit-line-clamp: 1; // 超出多少行
|
||
-webkit-box-orient: vertical;
|
||
}
|
||
|
||
.indicator-point {
|
||
position: absolute;
|
||
background: #000000;
|
||
border-radius: 21px;
|
||
opacity: 0.3;
|
||
right: 24rpx;
|
||
bottom: 38rpx;
|
||
|
||
font-size: 24rpx;
|
||
font-family: PingFangSC-Regular, PingFang SC;
|
||
font-weight: 400;
|
||
color: #ffffff;
|
||
line-height: 34rpx;
|
||
padding: 4rpx 20rpx;
|
||
}
|
||
|
||
.ttd::after {
|
||
content: " ";
|
||
position: absolute;
|
||
left: 0;
|
||
bottom: 0;
|
||
right: 0;
|
||
height: 1px;
|
||
border-bottom: 2rpx solid #ebebe7 !important;
|
||
color: #ebebe7;
|
||
-webkit-transform-origin: 0 0;
|
||
transform-origin: 0 0;
|
||
-webkit-transform: scaleY(0.5);
|
||
transform: scaleY(0.5);
|
||
}
|
||
|
||
/*Grid*/
|
||
.spec-box-grids {
|
||
position: relative;
|
||
overflow: hidden;
|
||
clear: both;
|
||
|
||
background-color: #ffffff;
|
||
white-space: nowrap;
|
||
width: 534rpx;
|
||
|
||
font-size: 14px;
|
||
line-height: 64rpx;
|
||
padding-left: 16rpx;
|
||
|
||
.spec-box-grid {
|
||
margin-right: 14rpx;
|
||
display: inline-block;
|
||
text-align: center;
|
||
|
||
&.active {
|
||
.spec-box-grid-label {
|
||
color: #c0a080;
|
||
// background-color: pink;
|
||
}
|
||
}
|
||
}
|
||
|
||
.spec-box-grid-border {
|
||
border-right: 1rpx solid #d9d9d9;
|
||
border-bottom: 1rpx solid #d9d9d9;
|
||
}
|
||
|
||
.spec-box-grid:active {
|
||
background-color: #ececec;
|
||
}
|
||
|
||
.spec-box-grid-icon {
|
||
width: 68rpx;
|
||
height: 68rpx;
|
||
margin: 0 auto;
|
||
|
||
image {
|
||
display: block;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
|
||
.spec-box-grid-label {
|
||
margin-top: 10rpx;
|
||
}
|
||
|
||
.spec-box-grid-label {
|
||
display: block;
|
||
text-align: center;
|
||
color: #000;
|
||
font-size: 24rpx;
|
||
line-height: 40rpx;
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
overflow: hidden;
|
||
}
|
||
}
|
||
|
||
.spec-box-grids-border {
|
||
border-top: 1rpx solid #d9d9d9;
|
||
border-left: 1rpx solid #d9d9d9;
|
||
}
|
||
|
||
.active {
|
||
background-color: #c0a080;
|
||
}
|
||
|
||
.favorite-share {
|
||
display: flex;
|
||
margin-left: auto;
|
||
text-align: center;
|
||
background: #ffffff;
|
||
line-height: 60rpx;
|
||
color: #999;
|
||
|
||
.iconfont {
|
||
font-size: 22px;
|
||
color: #999;
|
||
line-height: 24px;
|
||
}
|
||
|
||
label:first-child {
|
||
margin-right: 20rpx;
|
||
}
|
||
|
||
.highlight {
|
||
color: #db384c !important;
|
||
}
|
||
|
||
margin-top: auto;
|
||
margin-bottom: auto;
|
||
}
|
||
|
||
.icon-share {
|
||
font-weight: 700;
|
||
padding-right: 8rpx;
|
||
}
|
||
|
||
.m-info-price {
|
||
display: flex;
|
||
align-items: center;
|
||
// padding-right: 24rpx;
|
||
}
|
||
|
||
.name-box {
|
||
display: flex;
|
||
}
|
||
|
||
.name-subtitle {
|
||
}
|
||
|
||
.m-info-box {
|
||
label {
|
||
color: #888;
|
||
//margin-top: 16rpx;
|
||
}
|
||
}
|
||
|
||
/* #ifdef MP */
|
||
.icon-cart {
|
||
margin-left: -2rpx;
|
||
}
|
||
|
||
/* #endif */
|
||
|
||
.detail-text {
|
||
line-height: 36px;
|
||
height: 30px;
|
||
margin-right: 12px;
|
||
|
||
.text {
|
||
margin-right: 10rpx;
|
||
}
|
||
}
|
||
|
||
.ap {
|
||
color: red;
|
||
font-size: 16px;
|
||
font-weight: bold;
|
||
margin: auto 6rpx;
|
||
}
|
||
|
||
.activity-intro-box {
|
||
.activity-intro-desc {
|
||
font-size: 12px;
|
||
flex: 1;
|
||
line-height: 64rpx;
|
||
}
|
||
}
|
||
|
||
// /deep/ .m-panel-sp-listbox {
|
||
// .uni-scroll-view{
|
||
// position: unset;
|
||
// }
|
||
// }
|
||
</style> |