You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2461 lines
56 KiB

<template>
<view class="body">
<uni-nav-bar backgroundColor="#000000" :statusBar="true" left-icon="left" color="#fff" :leftWidth="navWidth"
:rightWidth="navWidth" :fixed="true" @clickLeft="back">
<view class="input-view">
<!-- <uni-icons class="input-uni-icon" type="search" size="18" color="#999" /> -->
<view class="input-uni-icon">
<image src="../../static/img/seach.png" mode=""></image>
</view>
<navigator url="/pages/index/search">
<input confirm-type="search" class="nav-bar-input" type="text" placeholder="search" />
</navigator>
</view>
<block slot="right">
<view class="nav_right">
<navigator url="/pages/shippingCart/index" open-type="switchTab">
<uni-badge style="position: relative;z-index: 1111;" :text="sum" type="error"
absolute="rightTop">
<image src="../../static/img/shop_cart1.png" mode=""></image>
</uni-badge>
</navigator>
</view>
</block>
</uni-nav-bar>
<view class="uni-margin-wrap">
<uni-swiper-dot :info="goodsDate.gallery_list" :current="current" field="content" mode="nav"
class="page_padding " :class="isvideo?'showvideo':''">
<swiper class="swiper" @change="gridSwiper" :circular="true">
<!-- <swiper-item>
<view class="swiper-item" v-show="goodsDate.goods_video" :style="{display:video?'none':''}" @change="clickImg(-1)">
<video :enable-progress-gesture="false" :mobilenet-hint-type="1"
:http-cache="true" :autoplay="false" :src=" goodsDate.goods_video" class="video_play">
</video></view>
</swiper-item> -->
<swiper-item :touchable="true" v-if="goodsDate.goods_video">
<view class="swiper-item uni-bg-black"
:style="{ background: 'url(' + goodsDate.gallery_list[0].img_url + ')'}">
<video v-if="video" :autoplay="true" :enable-progress-gesture="true"
:mobilenet-hint-type="1" class="video_play" :http-cache="true" @pause="VideoPuse()"
object-fit="contain" :direction="0" :src=" goodsDate.goods_video" :show-mute-btn="true"
@touchstart="touchStart" @touchend="touchEnd">
</video>
<view class="play_icon" v-show="!video" @click="isVideo"></view>
<!-- <view class="next_icon"v-show="Isshownext"></view> -->
<!-- <view class="videoControl">
<image src="/static/img/suspend.png" mode="" class="videoControl_play" @click="isVideo"></image>
<view class="videoControl_progress">
<progress :percent="50" stroke-width="3" activeColor="#B22234" />
<image src="/static/img/video_progress.png" mode="" class="video_progress"></image>
</view>
<view>00:14</view>
<image src="/static/img/zoom.png" mode="" class="videoControl_zoom"></image>
</view>
<image src="/static/img/mute.png" mode="" class="video_mute"></image> -->
</view>
</swiper-item>
<swiper-item v-for="(item,index ) in goodsDate.gallery_list" :key="item.img_url">
<view class="swiper-item">
<image :src="item.img_url" class="swiper-item-image" mode="" @click="clickImg(index)">
</image>
<!-- <img src="" alt="" class="swiper-item-image"> -->
<!-- <image src="../../static/img/play.png" class="video_play" mode="" ></image> -->
</view>
</swiper-item>
<!-- <swiper-item>
<view class="swiper-item uni-bg-blue">C</view>
</swiper-item> -->
</swiper>
</uni-swiper-dot>
</view>
<view class="special" v-if="goodsDate.is_promote==1">
<view class="special_left">
<image src="../../static/img/naozhong.png" mode=""></image>
<text>Flash Sale</text>
</view>
<view class="special_right">
<text>End in</text>
<uni-countdown :showDay="false" :hour="curEndTime |hours" :minute="curEndTime|minutes"
:second="curEndTime|seconds" splitorColor="#FFFFFF" color="#FFFFFF" background-color="#B22234"
class="countdown" />
<image src="../../static/img/right2.png" mode=""></image>
</view>
</view>
<view class="goods_info">
<!-- <view class="goods_info_price">
<text>US${{goodsDate.is_promote==0? goodsDate.shop_price :goodsDate.promote_price}}</text>
<view class="info_price_right">
<image src="/static/img/like_white.png" mode="" v-show="goodsDate.is_attention==0" @click="addLike(goodsDate.id)"></image>
<image src="../../static/icon/like_red.png" mode="" v-show="goodsDate.is_attention==1" @click="removeLike(goodsDate.id)"></image>
<image src="../../static/icon/share_white.png" mode=""@click="Isshare=true"></image>
</view>
</view> -->
<view>{{goodsDate.goods_name}} </view>
<!-- <view class="evaluate">
<uni-rate size="14" :disabled="true" disabledColor="#B22234" :value="goodsDate.comment_summary[0].commentcount==0?'0':'4'" active-color="red" :is-fill="false" />
<view class="evaluate_text">{{goodsDate.comment_summary[0].commentcount==0?'0.0':'4.0'}}</view>
<text>({{goodsDate.comment_summary[0].commentcount}}reviews)</text>
</view> -->
<view class="goods_info_price">
<text>US${{goodsDate.is_promote==0? goodsDate.shop_price :goodsDate.promote_price}}</text>
<view class="info_price_right">
<image src="/static/img/like_white.png" mode="" v-show="goodsDate.is_attention==0"
@click="addLike(goodsDate.id)"></image>
<image src="../../static/icon/like_red.png" mode="" v-show="goodsDate.is_attention==1"
@click="removeLike(goodsDate.id)"></image>
<image src="../../static/icon/share_white.png" mode="" @click="Isshare=true"></image>
</view>
</view>
<view class="variations">
<view class="variations_title">
<view class="variations_title_left" v-if="sizenum>0||colorNum >0">Variations</view>
<text v-if="item.goods_attrs.length>0" class="text_margin"
v-for="(item,index) in goodsDate.attr_list" :key="item.attr_name">
{{ item.goods_attrs.length}}{{item.attr_name}}
</text>
<!-- <text v-if="sizenum>0"class="text_margin" > {{sizenum}}size</text> -->
</view>
<view>
<!-- <view v-for="(item,index) in goodsDate.attr_list" :key="index" class="variations_select">
<view class="variations_select_varieties" >
<view class="select_varieties_image" v-for="(item,index) in 3" :key="index"></view>
</view>
</view> -->
<view class="variations_select_size" v-for="(item,index ) in goods_attr_list" :key="item.attr_id">
<view v-for="(item1,index1 ) in item.list" :key="item1.attr_value">
<view class="select_size_item" v-if="item1.attr_img"
:style="{background:`url(${item1.attr_img})`}" @click="clickImg(index1,item.list)">
</view>
<view class="select_size_item1" v-if="item1.attr_img && tag!=0">{{ item1.attr_value }}
</view>
<view class="select_size_item2" v-if="tag==0">{{ item1.attr_value }}</view>
</view>
<!-- <view class="select_size_item">35</view>
<view class="select_size_item">M</view>
<view class="select_size_item">L</view> -->
</view>
</view>
</view>
</view>
<!-- ssss -->
<view class="transport">
<!-- <view class="goods_title">Shipping to {{addressDate.country_name || 'United States'}}</view> -->
<view class="goods_title title_Mtop" v-if="shipping_list">
<view class="goods_title_left">
<image src="/static/img/transport.png" mode=""></image>
<text>Delivery</text>
</view>
</view>
<scroll-view class="spike1 " scroll-x="true" :show-scrollbar="false">
<view class="spike1_item" v-for="(item,index) in shipping_list" :key="item.shipping_name">
<view class="spike1_item_title">
<view>
{{ item.shipping_name}}: <text class="text_white">US${{ item.shipping_fee}}</text>
</view>
<view>
free on orders <text class="text_white">US${{ item.free_money}}</text>
</view>
<view class="text_bold_200">Estimated to be deliverd on </view>
<view class="text_bold_200">{{ item.shipping_desc }}</view>
</view>
</view>
</scroll-view>
<view class="security">
<view class="goods_title" @click="isSecurity=true">
<view class="goods_title_left">
<image src="/static/img/security.png" mode=""></image>
<text>Shipping security</text>
</view>
<view class="goods_title_right">
<image src="../../static/icon/right_white.png" mode=""></image>
</view>
</view>
<view class="security_content">
<!-- <ul>
<li>{{item.block_title}} </li>
</ul> -->
<view class="icon" v-for="(item,index) in listtext" :key="item.block_title"><text
style="color:#fff;font-size: 28rpx;margin:0 9rpx 0 9rpx;">•</text>{{item.block_title}}
</view>
</view>
</view>
<view class="description goods_title" @click="isAttr=true">
<view class="goods_title_left">
<text>Description</text>
</view>
<view class="goods_title_right">
<!-- <view>#Iron #Pearls,Flowers #Fashionable</view> -->
<view>{{goodsDate.tags}}</view>
<image src="../../static/icon/right_white.png" mode=""></image>
</view>
</view>
</view>
<view class="order_popup" v-show="isAttr">
<view class="order_popup_title">
<text>Description</text>
<image src="../../static/img/close1.png" mode="" @click="isAttr=false"></image>
</view>
<!-- <view class="securityDetails_item_title">{{item.product_sn}}</view> -->
<!-- <scroll-view scroll-y="true" class="descriptionDetails" > -->
<scroll-view scroll-y="true" class="text1">
<view class="text1_item" v-if="Attr_list" :style="{height:max>7?max/7*130+'rpx':''}">
<view class="text1_left"><text>Color</text> </view>
<view class="text1_right"><text>{{ Attr_list }}</text></view>
</view>
<!-- <view class="text1_item" >
<view class="text1_left" ><text>Material</text> </view>
<view class="text1_right"><text>No</text></view>
</view> -->
<view class="text1_item" v-if="goodsDate.brand_name">
<view class="text1_left"><text>Gender</text> </view>
<view class="text1_right"><text>{{ goodsDate.brand_name}}</text></view>
</view>
<!-- <view class="text1_item" v-if="goodsDate.goods_weight">
<view class="text1_left" ><text>Weight</text> </view>
<view class="text1_right"><text>{{ goodsDate.goods_weight}}</text></view>
</view> -->
<view class="text1_item" v-for="(item,index) in goodsDate.property_list" :key="item.attr_name">
<view class="text1_left"><text>{{ item.attr_name }}</text></view>
<view class="text1_right" v-for="(item1,index1) in item.goods_attrs" :key="item1.attr_value">
<text>{{ item1.attr_value}}</text></view>
</view>
<view class="text1_item" v-if="Size_list">
<view class="text1_left"><text>Length</text> </view>
<view class="text1_right" v-if="Size_list ">{{Size_list }}</view>
</view>
<!-- <view>Power Suppy <text>No</text></view>
<view>Type</view>
<view>Length</view> -->
<!-- <view class="text1_right">
<view>{{ Attr_list }}</view>
<view class="text_right">No</view>
<view v-if="goodsDate.cat_name">{{ goodsDate.cat_name}}</view>
<view>{{ Size_list }}</view>
</view> -->
</scroll-view>
<!-- </scroll-view> -->
</view>
<view class="reviews">
<view class="goods_title" @click="goReview">
<view class="goods_title_left">
<text>Reviews({{goodsDate.comment_summary[0].commentcount}})</text>
</view>
<view class="goods_title_right">
<image src="../../static/icon/right_white.png" mode=""></image>
</view>
</view>
<view class="allReviews">
<text>{{goodsDate.comment_summary[0].commentcount==0?'0.0':'4.0'}}</text>
<uni-rate size="20" :disabled="true" disabledColor="#B22234" color="#B22234"
:value="goodsDate.comment_summary[0].commentcount==0?'0':'4'" active-color="red" :is-fill="false" />
</view>
<template v-if="goodsDate.comment_summary[0].commentcount==0">
<view class="reviews_no">No comment yet</view>
</template>
<template v-else>
<view class="reviews_item" v-for="(item,index) in commonlist" :key="index">
<view class="reviews_item_title">
<view class="reviews_item_img">
<image mode="" :src="item.avatar_img_small"></image>
</view>
<view class="reviews_item_one">
<view class="reviews_title_user">
<view class="reviews_title_user_name">{{item.user_name}}</view>
<uni-rate style="margin-left: 2rpx;margin-top: 10rpx;" size="14" :disabled="true"
disabledColor="#B22234" :value="item.comment_rank" active-color="#B22234"
:is-fill="false" />
</view>
<!-- <view class="reviews_title_color">Color:###</view> -->
</view>
<view class="reviews_title_time">{{item.add_time | date}}</view>
</view>
<view class="reviews_item_color">{{item.commentlabels}}</view>
<view class="reviews_item_content">{{item.content}}</view>
<view class="reviews_item_image">
<view class="reviews_image_content" v-for="(item1,index1) in item.attachments"
:key="item1.afile">
<!-- <text> {{ item1.afile}}</text> -->
<image mode=" " :src="item1.afile" v-if="item1.afile"
@click="clickImg(index1,item.attachments)"></image>
</view>
</view>
</view>
</template>
</view>
<view class="productImage">
<template v-if="goodsDate.goods_desc">
<view class="productImage_title">Product lmage gallery</view>
<view class="productImage_image" v-html="goodsDate.goods_desc">
<!-- {{goodsDate.goods_desc}} -->
<!-- <image :src="goodsDate.goods_img" mode=""></image> -->
</view>
</template>
<!-- <view class="recommend recommend1" v-if="goodsDate.category_list">
<view class="recommend_title">Other options</view>
<scroll-view class="spike1 " scroll-x="true" :show-scrollbar="false">
<view class="spike1_item1" v-for="(item,index) in 8" :key="index" >
<view class="spike1_item_img"></view>
<view class="spike1_item_bottom">
<text>US$314.00</text>
</view>
</view>
</scroll-view>
</view> -->
<!-- 产品详情页最后一张图片 -->
<!-- <view class="productImage_image1">
<image :src="goodsDate.goods_thumb" mode=""></image>
</view> -->
<view class="recommend">
<view class="recommend_title">You might also like</view>
<view class="recommend_content">
<view class="recommend_content_item" v-for="(item,index) in catList ">
<view class="recommend_content_item_image">
<image :src="item.thumb" mode="" :key="index" @click="goDetails(item.id)"></image>
</view>
<view class="recommend_content_name"><text>{{item.short_name}}</text></view>
<view class="recommend_content_item_pric">
US${{item.is_promote==0? item.shop_price :item.promote_price}}
<view>
<image src="../../static/icon/cat_white.png" @click="recommendTap(item)"></image>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="footer">
<view class="footer_left">
<text>US${{goodsDate.is_promote==0? goodsDate.shop_price *cartQuery.goods_number:goodsDate.promote_price *cartQuery.goods_number}}</text>
</view>
<view class="footer_right">
<button @click="isCart=true,getDate(ID)">ADD TO CART</button>
</view>
</view>
<view class="mask" @click="isCart=false,isSecurity=false,isAttr=false&&Attr_list,Isshare=false"
v-show="isCart || isSecurity || isAttr ||Isshare"></view>
<view class="order_popup" v-show="isSecurity">
<view class="order_popup_title">
<text>Shipping security</text>
<image src="../../static/img/close1.png" mode="" @click="isSecurity=false"></image>
</view>
<view class="securityDetails" v-for="(item,index) in listtext" :key="item.block_id">
<view class="securityDetails_item">
<view class="securityDetails_item_title">{{item.block_title}}</view>
<view>
{{item.block_title2}}
</view>
</view>
</view>
</view>
<view class="addCard" v-show="isCart">
<image src="/static/img/close1.png" mode="" class="addCard_close" @click="isCart=false"></image>
<scroll-view class="spike1 " scroll-x="true" :show-scrollbar="false">
<image :src="item.img_url" mode="" class="addCard_scroll img_border"
v-for="(item,index) in goodsDate.gallery_list" :key="index" @click="clickImg(index)"></image>
</scroll-view>
<scroll-view class="addCard_body" scroll-y="true">
<view>{{goodsDate.goods_name}} </view>
<view class="addCard_price">US${{goodsDate.is_promote==0? shop_price :goodsDate.promote_price}}</view>
<view v-for="(item,index) in goods_attr_list" :key="item.attr_id">
<view>{{item.name}}</view>
<view class="color_select variations_select_size">
<!-- <view class="select_size_item"
v-for="(item1,index1) in item.goods_attrs"
:key="item1.goods_attr_id"
:class="goods_attr_list[index].goods_attr_id==item1.goods_attr_id?'active_color':''"
@click="selectAttr(item.attr_id,item1.goods_attr_id,index)">
{{item1.attr_value}}
</view> -->
<view class="color_select_item" v-for="(item1,index1) in item.list" :key="item1.attr_value"
:class="goods_attr_list[index].goods_attr_id==item1.goods_attr_id?'active_color':''"
@click="selectAttr(item.attr_id,item1.goods_attr_id,index1,item1.attr_price)">
<view class="color_select_item_zoom">
<image src="/static/icon/big2.png" @click="clickImg(index1)" mode=""
v-if="item1.attr_img!=''"></image>
</view>
<image :src="item1.attr_img" mode="" v-if="item1.attr_img!=''"></image>
<view class="color_select_item_bottom" v-if="item1.attr_img!=''">【{{ item1.attr_value}}】
</view>
<view class="color_select_item_bottom" v-if="!item1.attr_img">{{ item1.attr_value}}</view>
</view>
</view>
</view>
<!-- <view >Size</view>
<view class="variations_select_size">
<view class="select_size_item">34</view>
<view class="select_size_item">35</view>
<view class="select_size_item">36</view>
<view class="select_size_item">37</view>
<view class="select_size_item">38</view>
<view class="select_size_item">M</view>
<view class="select_size_item">L</view>
</view> -->
<view class="quantity">
<text>Quantity</text>
<uni-number-box background="#FFFFFF" v-model="cartQuery.goods_number" :min="1"></uni-number-box>
</view>
</scroll-view>
<!-- <view class="quantity">
<text>Quantity</text>
<uni-number-box background="#FFFFFF" v-model="cartQuery.goods_number" :min="1"></uni-number-box>
</view> -->
<button @click="addCart">ADD TO CART</button>
</view>
<!-- 分享 -->
<view class="Isshare" v-show="Isshare">
<view class="order_popup_title">
<text>Share this product with friends!</text>
<image src="../../static/img/close1.png" mode="" @click="Isshare=false"></image>
</view>
<view class="share_icon">
<view class="icon_item">
<image src="../../static/img/facebook1.png" mode=""></image>
<view>Facebook</view>
</view>
<view class="icon_item" @click="Copylink()">
<image src="../../static/img/copyLink.png" mode="">Copy Link
</view>
<view class="icon_item" @click="Sendmes()">
<image src="../../static/img/Mes.png" mode="">Send SMS
</view>
<view class="icon_item" @click="downloadImg()">
<image src="../../static/img/down.png" mode="">Download
</view>
<view class="icon_item">
<image src="../../static/img/more1.png" mode="">More
</view>
</view>
</view>
<view class="bootom_last" v-if="bootom == 1">-THE END-</view>
</view>
</template>
<script>
import {
defaultRequest,
defaultRequest2,
defaultRequest4
} from '../../api/index.js'
export default {
data() {
return {
navWidth: '80rpx',
current: 0,
max: 0,
isvideo: false,
isSecurity: false,
sum: 0,
bootom: 0,
ID: '',
query: {
_action: 'getgoodsdetail',
goods_id: ''
},
info: [],
isCart: false,
goodsDate: {
comment_summary: [{
comment_summary: '',
commentlabel: ""
}],
gallery_list: [{
content: ''
}],
},
commonlist: [],
user_info: {},
addressDate: {},
colorNum: 0,
sizenum: 0,
//选择规格的数组
goods_attr_list: [],
// 获取该分类的其他商品的请求参数
catQuery: {
_action: 'getgoods',
cat: '',
page_index: 1,
page_size: 10
},
catList: [],
isReachBottom: true,
// 添加到购物车请求参数
cartQuery: {
_action: 'addtocart',
goods_id: '',
goods_parent_id: 0,
goods_number: 1,
goods_attr_id: '',
goods_is_package: 0
},
Is_attr: 0, //是否有规格
listtext: [],
isLogin: -1,
isAttr: false,
Attr_list: '',
video: false,
list: [],
pageNum: 1,
pageSize: 10,
//初始化点击位置的x坐标
startX: 0,
Isshownext: false,
current: 0,
Isshare: false, //分享
Ship: {
_action: 'getgoodsshippingfeelist',
goods_id: '',
goods_count: 1,
country: 4191,
province: 0,
district: 0,
city: 0
},
shipping_list: [],
Size_list: '',
shop_price: 0,
first: 0,
noImgtype: [],
tag: 0,
}
},
computed: {
//当天结束时间
curEndTime() {
const endtime = new Date(new Date().setHours(23, 59, 59, 999)).getTime()
// 获取当前时间
const nowtime = (new Date()).getTime();
var date3 = nowtime - endtime; //时间差的毫秒数
date3 = Math.abs(date3)
return date3;
}
},
filters: {
hours(timestamp) {
var leave1 = timestamp % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
var hours = Math.floor(leave1 / (3600 * 1000))
return hours
},
minutes(timestamp) {
var leave2 = (timestamp % (24 * 3600 * 1000)) % (3600 * 1000) //计算小时数后剩余的毫秒数
var minutes = Math.floor(leave2 / (60 * 1000))
return minutes
},
seconds(timestamp) {
var leave3 = ((timestamp % (24 * 3600 * 1000)) % (3600 * 1000)) % (60 * 1000) //计算分钟数后剩余的毫秒数
var seconds = Math.round(leave3 / 1000)
return seconds
},
date(e) {
let str = e
str = str.substring(0, 10);
const year = str.substring(0, 4)
let date = str.substring(5, 10)
date = date.replace('-', '/')
let time = date + '/' + year
return time
}
},
methods: {
// 跳转到评论详情
goReview() {
uni.navigateTo({
url: './goodsReview?goods_id=' + this.query.goods_id
})
},
onReachBottom() {
console.log(111)
this.bootom = 1
},
recommendTap(item) {
console.log(item)
this.goodsDate = []
uni.showLoading({
title: 'loading',
})
this.getDate(item.id)
this.goods_attr_list = []
setTimeout(() => {
uni.hideLoading()
this.isCart = true
}, 1500)
// this.query.goods_id = item.id
},
isVideo() {
this.video = true
},
// 侧滑
/**
* 触摸开始
* @param {Object} e
*/
touchStart(e) {
if (e.touches.length == 1) {
//设置触摸起始点水平方向位置
this.startX = e.touches[0].clientX;
}
},
/**
* 触摸结束
* @param {Object} e
*/
touchEnd(e) {
if (e.changedTouches.length == 1) {
//手指移动结束后水平位置
var endX = e.changedTouches[0].clientX;
let diff = endX - this.startX;
if (Math.abs(diff) > 20) {
if (diff > 0) {
//console.log("左滑...");
} else {
//console.log("右滑...");
}
}
}
},
// 视频停止
VideoPuse() {
this.video = false
},
getCartNum() {
let data = {
_action: 'getcartgoods'
}
defaultRequest(data).then(res => {
//console.info(res)
if (res.error == 0) {
this.sum = res.data.goods_list.length
// uni.setStorageSync('cartSum',this.sum)
}
})
},
// 添加到购物车
addCart() {
if (this.Is_attr > 0) {
let goods_attr_id = ''
this.goods_attr_list.map(item => {
if (item.goods_attr_id != '') {
goods_attr_id += item.goods_attr_id + ','
}
})
let isall = 1
this.goods_attr_list.map(item => {
//console.log(item.goods_attr_id)
if (item.goods_attr_id == '') {
isall = 0
}
})
if (isall == 0) {
uni.showToast({
title: 'Please select the product specification',
icon: 'none',
duration: 1000
})
return
}
this.cartQuery.goods_attr_id = goods_attr_id.substring(0, goods_attr_id.lastIndexOf(','));
}
console.log(this.cartQuery)
if (this.isLogin == 1) {
defaultRequest2(this.cartQuery).then(res => {
if (res.error == 0) {
this.isCart = false
this.cartQuery.goods_attr_id = ''
if (res.data[0].success) {
setTimeout(() => {
uni.showToast({
title: 'Successfully added',
icon: 'none',
duration: 2000
})
}, 500)
}
this.getCartNum()
}
})
} else if (this.isLogin == 0) {
uni.navigateTo({
url: '../login/index'
})
}
},
// 点击预览图片
clickImg(index, e) {
console.log(e)
let list = []
if (e) {
if (typeof(e) === 'object') {
for (let i in e) {
console.log(e[i].afile)
list.push(e[i].afile)
console.log(list)
}
} else {
e.map(item => {
list.push(item.attr_img)
})
}
wx.previewImage({
urls: list, //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
current: index, // 当前显示图片的http链接,默认是第一个
indicator: 'number',
success: function(res) {},
fail: function(res) {},
complete: function(res) {},
})
} else {
wx.previewImage({
urls: this.info, //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
current: index, // 当前显示图片的http链接,默认是第一个
indicator: 'number',
success: function(res) {},
fail: function(res) {},
complete: function(res) {},
})
}
},
// 其他商品详情
goDetails(id) {
uni.navigateTo({
url: 'index?goodid=' + id
})
},
// 获取该分类的其他商品
getCatList(type) {
defaultRequest4(this.catQuery).then(res => {
//console.info(res)
if (res.error == 0) {
if (res.data) {
if (type == 0) {
this.catList = res.data
} else {
this.catList = this.catList.concat(res.data)
}
} else {
this.isReachBottom = false
uni.showToast({
title: 'No more data yet',
icon: 'none',
duration: 2000
})
this.catQuery.page_index--
}
}
uni.hideNavigationBarLoading();
})
},
// 选择规格
selectAttr(attr_id, goods_attr_id, index1, attr_price) {
this.current = index1
let sum = this.goodsDate.shop_price
if (attr_price) {
sum = parseInt(sum) + parseInt(attr_price)
console.log(sum)
}
this.shop_price = sum
let data = {
attr_id: attr_id,
goods_attr_id: goods_attr_id
}
if (this.goods_attr_list.length == 0) {
this.goods_attr_list.push(data)
} else {
// 判断是否有新的规格加入
let isNew = false
for (let i in this.goods_attr_list) {
let item = this.goods_attr_list[i]
if (item.attr_id == attr_id) {
if (item.goods_attr_id == goods_attr_id) {
this.goods_attr_list[i].goods_attr_id = ''
} else {
this.goods_attr_list[i].goods_attr_id = goods_attr_id
}
isNew = false
break
} else {
isNew = true
}
}
if (isNew) {
this.goods_attr_list.splice(index, 0, data)
}
}
},
// 添加收藏
addLike(id) {
if (this.isLogin == 1) {
let data = {
_action: 'setfaviouritegoods',
goods_id: this.query.goods_id
}
defaultRequest2(data).then(res => {
//console.info(res)
if (res.error == 0) {
uni.showToast({
title: res.message,
icon: 'none',
duration: 2000
})
this.goodsDate.is_attention = 1
}
})
} else if (this.isLogin == 0) {
uni.navigateTo({
url: '../login/index'
})
}
},
// 取消收藏
removeLike(id) {
if (this.isLogin == 1) {
let data = {
_action: 'unsetfaviouritegoods',
goods_id: this.query.goods_id
}
defaultRequest2(data).then(res => {
//console.info(res)
if (res.error == 0) {
uni.showToast({
title: 'ok!',
icon: 'none',
duration: 2000
})
this.goodsDate.is_attention = 0
}
})
}
},
// 添加商品足迹
setFavorites() {
let data = {
_action: 'setgoodsbrowsehistory',
goods_id: this.query.goods_id
}
defaultRequest2(data).then(res => {
//console.info(res)
})
},
//取默认配送方式
getShip() {
this.Ship.goods_id = this.query.goods_id
defaultRequest(this.Ship).then(res => {
if (res.error == 0) {
this.shipping_list = res.shipping_list
//console.log(this.shipping_list,'1123')
}
})
},
// 获取默认地址
getDefaultAddress() {
let data = {
_action: 'getdefaultconsignee'
}
defaultRequest2(data).then(res => {
//console.info(res)
if (res.error == 0) {
this.addressDate = res.data
//console.log(res)
this.Ship = {
_action: 'getgoodsshippingfeelist',
goods_id: this.query.goods_id,
goods_count: 1,
country: res.data.country,
province: res.data.province,
district: res.data.district,
city: res.data.city
}
defaultRequest(this.Ship).then(res => {
if (res.error == 0) {
this.shipping_list = res.shipping_list
console.log(this.shipping_list)
}
})
}
})
},
// 获取商品详情数据
getDate(id, e) {
this.info = []
this.goods_attr_list = []
this.query.goods_id = id
defaultRequest(this.query).then(res => {
if (res.error == 0) {
console.log(res.data)
this.goodsDate = res.data
if (this.goodsDate.comment_list && e == 1) {
if (this.goodsDate.comment_list.length < 2) {
this.commonlist.push(this.goodsDate.comment_list[0])
} else if (this.goodsDate.comment_list.length == 0) {
this.commonlist = []
} else {
for (let i = 0; i < 2; i++) {
this.commonlist.push(this.goodsDate.comment_list[i])
}
}
}
console.log(this.commonlist, '11')
this.shop_price = this.goodsDate.shop_price
this.goodsDate.gallery_list.map(item => {
item.content = ''
this.info.push(item.img_url)
// this.Attr_list = this.goodsDate.attr_list[0].goods_attrs
})
if (this.goodsDate.attr_list) {
console.log(this.goodsDate.attr_list)
this.Is_attr = this.goodsDate.attr_list.length
if (this.Is_attr > 0) {
let Size_list
let Attr_list
this.goodsDate.attr_list.map(item => {
if (item.attr_name) {
this.sizenum = item.goods_attrs.length
}
if (item.attr_name == "Color") {
this.colorNum = item.goods_attrs.length
console.log(this.colorNum)
Attr_list = item.goods_attrs
let i = 0
Attr_list.map(item => {
this.Attr_list += item.attr_value + '、'
i++
})
this.Attr_list = this.Attr_list.substring(0, this.Attr_list
.length - 1)
console.log(i)
this.max = i
} else if (item.attr_name == "Size") {
Size_list = item.goods_attrs
console.log(this.sizenum)
Size_list.map(item => {
this.Size_list += item.attr_value + ' '
})
this.Size_list = this.Size_list.substring(0, this.Size_list
.length - 1)
}
let data = {
name: item.attr_name,
goods_attr_id: '',
attr_id: item.attr_id,
list: item.goods_attrs
}
this.goods_attr_list.push(data)
console.log(this.goods_attr_list)
let list = []
this.goods_attr_list.map(item => {
item.list.map(item1 => {
if (item1.attr_img) {
this.tag++
}
})
})
// console.log(list)
// this.noImgtype = list
})
}
} else {
this.goods_attr_list = []
this.Is_attr = 0
}
this.catQuery.cat = res.data.cat_id
this.getCatList(0)
}
})
},
//当录播有视屏时
gridSwiper(e) {
this.video = false
this.current = e.detail.current
},
//获取保障内容
getSecuritty() {
let data = {
pagecode: 'PRODUCTDETAILPAGE',
_action: 'getpagedata'
}
defaultRequest(data).then(res => {
//console.log(res,'保障内容')
if (res.error == 0) {
this.listtext = res.data.zones[0].blocks
}
})
},
back() {
if (this.first == 2) {
uni.navigateTo({
url: '../category/index'
})
} else {
uni.navigateBack()
}
},
// 分享1复制
Copylink() {
uni.setClipboardData({
data: this.goodsDate.url, //要被复制的内容
success: () => { //复制成功的回调函数
uni.showToast({ //提示
title: 'succeeded',
icon: 'none',
duration: 2000
})
}
});
},
// 2 下载图片
downloadImg() {
uni.downloadFile({
url: this.goodsDate.goods_thumb,
success: (res) => {
if (res.statusCode === 200) {
console.log(res);
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: function(res2) {
console.log(res2)
uni.showToast({
title: 'saved!',
icon: 'none',
duration: 2000
})
},
});
}
}
});
},
//3 发送短信
Sendmes() {
console.log('发送短信')
var msg = plus.messaging.createMessage(plus.messaging.TYPE_SMS);
msg.to = [];
msg.body = 'I discovered amazing products on DOPE PLUS.com, come check them out!' + this.goodsDate.url;
plus.messaging.sendMessage(msg);
},
Require(url) {
return url
}
},
onLoad(e) {
// let goods = JSON.parse(e)
this.isLogin = uni.getStorageSync('isLogin')
if (e.first) {
this.first = e.first
}
//console.log(e,'p')
this.query.goods_id = e.goodid
this.cartQuery.goods_id = e.goodid
this.ID = e.goodid
//console.log(this.query.goods_id)
this.Ship.goods_id = this.query.goods_id
//console.log(this.Ship.goods_id)
this.getSecuritty()
this.getCartNum()
this.getDate(e.goodid, 1)
this.user_info = uni.getStorageSync('user_info')
this.setFavorites()
this.getDefaultAddress()
this.getShip()
if (e.e == 2) {
this.isCart = true
}
console.info(this.shipping_list)
},
onShow() {
this.getCartNum()
},
// 上拉加载
onReachBottom() {
if (!this.isReachBottom) return
if (this.catQuery.page_index >= 5) {
uni.hideNavigationBarLoading();
uni.showToast({
title: 'No more data yet',
icon: 'none',
duration: 2000
})
} else {
this.catQuery.page_index++
this.getCatList(1)
}
},
onPullDownRefresh() {
uni.stopPullDownRefresh()
}
}
</script>
<style>
page {
/* background-color: #F6F5FA; */
padding-bottom: 100rpx;
/* background-color: white; */
}
</style>
<style lang="scss" scoped>
page {
padding-bottom: 100rpx !important;
background-color: #000 !important;
overflow-x: auto !important;
}
.body {
background-color: #000;
color: white;
// padding-bottom: 35px;
overflow: hidden;
box-sizing: border-box;
height: auto;
padding-bottom: -30px;
overflow-x: auto !important;
}
.bg_b {
background-color: #000000;
}
.flex {
display: flex;
}
$nav-height: 30px;
.reviews_no {
padding: 30rpx;
text-align: center;
font-weight: bold;
}
.showvideo {
/deep/ .uni-swiper__dots-nav {
display: none;
}
}
/deep/ .uni-swiper__dots-nav {
background: none;
justify-content: center;
.uni-swiper__dots-nav-item {
padding: 6rpx 24.67rpx;
background-color: rgba(0, 0, 0, 0.2);
border-radius: 25rpx;
}
}
.text1 {
width: 100%;
max-height: 500rpx;
min-height: 200rpx;
padding-left: 4.67rpx;
padding-top: 30.67rpx;
padding-bottom: 30.67rpx;
padding-right: 10rpx;
// padding-right: 45.33rpx;
// line-height: 50rpx;
// text-align: start;
// font-size: 25rpx;
color: #999999;
&:last-child {
margin-bottom: 17.37rpx;
}
.text1_item {
display: flex;
width: 100%;
flex-direction: row;
line-height: 50rpx;
text-align: start;
text {
word-wrap: wrap;
}
.text1_left {
width: 200rpx;
// background-color:red;
height: 50rpx;
color: #999;
font-size: 28rpx;
line-height: 50rpx;
text-align: start;
padding-left: 43.27rpx;
}
.text1_right {
width: 400rpx;
color: #000;
font-size: 28rpx;
// background-color:green;
line-height: 50rpx;
margin-left: 60rpx;
text-align: start;
white-space: wrap;
word-wrap: wrap;
}
}
}
// .description_item{
// padding-left: 54.67rpx;
// padding-top: 30.67rpx;
// line-height: 50rpx;
// text-align: start;
// font-size: 28rpx;
// color: #999999;
// &:last-child{
// margin-bottom: 0;
// }
// }
.securityDetails {
padding-top: 20.67rpx;
// padding-bottom: 120rpx;
padding-left: 54.67rpx;
padding-right: 45.33rpx;
.securityDetails_item {
margin-bottom: 22rpx;
font-size: 24.67rpx;
font-weight: 400;
color: #999999;
// color: #fff;
&:last-child {
margin-bottom: 62.67rpx;
// padding-bottom: 52.67rpx;
}
.securityDetails_item_title {
position: relative;
// color: #333333;
// color: #fff;
font-size: 30rpx;
font-weight: 500;
margin-bottom: 10.33rpx;
&:before {
content: "";
width: 6rpx;
height: 6rpx;
position: absolute;
border-radius: 50%;
background-color: #999999;
left: -25.67rpx;
top: 50%;
margin-top: -3rpx;
}
}
}
}
.variations_select_size {
margin-left: 20.67rpx;
display: flex;
flex-wrap: wrap;
.select_size_item {
background-color: #1b1b1b;
width: 97.67rpx;
height: 97.67rpx;
display: flex;
background-size: 100% !important;
background-repeat: no-repeat;
align-items: center;
justify-content: center;
border-radius: 12.67rpx;
// color: #666666;
color: #fff;
font-size: 24rpx;
margin-right: 18.67rpx;
// border: 1px solid #F8F8F8;
padding: 1rpx 5rpx;
margin-bottom: 16.67rpx;
// &:nth-child(-n+2){
// margin-bottom: 16.67rpx;
// }
}
.select_size_item2 {
background-color: #1b1b1b;
// width: 97.67rpx;
width: auto;
height: 37.67rpx;
display: flex;
background-size: 100% !important;
background-repeat: no-repeat;
align-items: center;
justify-content: center;
border-radius: 12.67rpx;
// color: #666666;
color: #fff;
font-size: 24rpx;
margin-right: 18.67rpx;
// border: 1px solid #F8F8F8;
padding: 1rpx 5rpx;
margin-bottom: 16.67rpx;
// &:nth-child(-n+2){
// margin-bottom: 16.67rpx;
// }
}
.select_size_item1 {
// background-color: red;
width: 97.67rpx;
line-height: 30rpx;
// height: 60rpx;
// overflow: hidden;
display: flex;
text-align: center;
background-size: 100% !important;
background-repeat: no-repeat;
align-items: center;
justify-content: center;
border-radius: 12.67rpx;
// color: #666666;
color: #fff;
font-size: 24rpx;
margin-right: 18.67rpx;
// border: 1px solid #F8F8F8;
padding: 0 5rpx;
margin-bottom: 16.67rpx;
// &:nth-child(-n+2){
// margin-bottom: 16.67rpx;
// }
}
}
.addCard {
z-index: 999;
position: fixed;
bottom: 0;
left: 0;
background-color: white;
padding-left: 29.33rpx;
padding-right: 29.33rpx;
box-sizing: border-box;
padding-top: 77.67rpx;
color: #000;
width: 100%;
// font-size: 30.67rpx;
font-weight: 400;
padding-bottom: 44.67rpx;
.addCard_close {
width: 21.33rpx;
height: 21.33rpx;
position: absolute;
right: 24.67rpx;
top: 18.67rpx;
}
.spike1 {
margin-top: 0;
margin-bottom: 20rpx;
padding-bottom: 0;
border-bottom: none;
.addCard_scroll {
width: 286.67rpx;
height: 286.67rpx;
margin-left: 10.67rpx;
&:first-child {
margin-left: 0;
}
&:last-child {
margin-right: 15rpx;
}
}
}
.addCard_body {
padding-right: 31.33rpx;
max-height: 60vh;
min-height: 400rpx;
.addCard_price {
font-size: 44rpx;
font-weight: bold;
margin-top: 17.33rpx;
margin-bottom: 51.33rpx;
}
.color_select {
display: flex;
color: #666666;
flex-wrap: wrap;
margin-bottom: 59.33rpx;
.color_select_item {
margin-top: 22rpx;
position: relative;
background-color: #F9F7FA;
border-radius: 6.67rpx;
margin-right: 12.67rpx;
// width: auto;
width: 134.67rpx;
image {
width: 134.67rpx;
height: 133.33rpx;
border-radius: 6.67rpx 6.67rpx 0 0;
}
.color_select_item_zoom {
width: 20.33rpx;
height: 20.33rpx;
// background-color: rgba(0, 0, 0, 0.3);
display: flex;
align-items: center;
justify-content: center;
position: absolute;
right: 12.67rpx;
top: 9.33rpx;
z-index: 99;
image {
width: 100%;
height: 100%;
}
}
.color_select_item_bottom {
padding: 10rpx 4rpx;
// padding: 10rpx 0rpx;
font-size: 24rpx;
text-align: center;
}
}
.active_color {
color: #fff;
;
background-color: #000;
border: 1px solid #000000;
}
}
.variations_select_size {
margin-left: 0;
margin-top: 26.67rpx;
margin-bottom: 40.67rpx;
.select_size_item {
background-size: cover;
margin-bottom: 16.67rpx !important;
&:nth-child(4n+4) {
margin-right: 0;
}
}
}
}
}
.quantity {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 43.33rpx;
.uni-numbox {
border: 1px solid #999999;
border-radius: 14rpx;
height: 42.67rpx;
/deep/ .uni-numbox__minus {
border-radius: 14rpx;
}
/deep/.uni-numbox__plus {
border-radius: 14rpx;
}
/deep/.uni-numbox__value {
border-left: 1px solid #999999;
border-right: 1px solid #999999;
height: 100%;
width: 63.33rpx;
font-size: 21.33rpx;
}
}
}
button {
width: 100%;
height: 73.33rpx;
line-height: 73.33rpx;
background-color: #191919;
color: white;
font-weight: bold;
font-size: 26.67rpx;
}
.spike1 {
white-space: nowrap;
width: 100%;
margin-top: 36.67rpx;
padding-bottom: 34rpx;
// border-bottom: 1px solid #E2E2E2;
::-webkit-scrollbar {
width: 0;
height: 0;
// background-color: transparent;
}
.spike1_item {
width: 480rpx;
background-color: #1b1b1b;
padding: 27.33rpx 37.67rpx;
margin-right: 19.33rpx;
font-size: 20rpx;
border-radius: 10rpx;
// border:1rpx solid #ccc;
display: inline-block;
// color: #737373;
color: #fff;
&:last-child {
margin-right: 0;
}
view {
margin-bottom: 10rpx;
}
.text_bold_200 {
font-size: 24rpx;
font-weight: 50;
}
.spike1_item_title {
// font-weight: bold;
font-size: 28rpx;
.text_black {
color: black;
display: inline-block;
margin-left: 10rpx;
}
.text_red {
color: #B22234;
display: inline-block;
margin-left: 10rpx;
}
}
}
.spike1_item1 {
// color: #191919;
color: #fff;
font-size: 29.33rpx;
margin-right: 16.67rpx;
width: 200rpx;
display: inline-block;
font-weight: bold;
.spike1_item_img {
width: 200rpx;
height: 200rpx;
background-color: #999999;
}
.spike1_item_bottom {
padding-left: 9.33rpx;
margin-top: 22.67rpx;
.spike1_item_text {
// color: #9D9D9D;
color: #fff;
font-size: 21.33rpx;
text-decoration: line-through;
}
.spike1_item_text1 {
// color: #9D9D9D;
color: #fff;
font-size: 21.33rpx;
}
}
.spike1_item_bottom1 {
padding-left: 9.33rpx;
margin-top: 19.33rpx;
font-weight: bold;
.spike1_item_text {
// color: #000000;
color: #fff;
font-size: 16rpx;
font-weight: 400;
margin-bottom: 20.67rpx;
white-space: break-spaces;
}
}
}
.spike1_item:last-child {
margin-right: 0;
}
}
.goods_title {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 29.33rpx;
font-weight: 600;
.goods_title_left {
display: flex;
align-items: center;
image {
width: 33.33rpx;
height: 33.33rpx;
margin-right: 14rpx;
}
}
.goods_title_right {
// color: #737373;
color: #fff;
display: flex;
align-items: center;
font-size: 24rpx;
font-weight: 400;
image {
width: 24rpx;
height: 24rpx;
margin-left: 22rpx;
}
}
}
.uni-margin-wrap {
width: 100%;
.swiper {
height: 750rpx;
position: relative;
.swiper-item {
display: flex;
height: 750rpx;
// line-height: 750rpx;
text-align: center;
color: white;
width: 100vw;
.play_icon {
height: 80rpx;
width: 80rpx;
z-index: 99;
// background-color: #999999;
background-image: url('@/static/icon/play.png');
// border-radius: 50%;
background-size: 100%;
background-repeat: no-repeat;
margin: 300rpx auto;
image {
height: 100%;
width: 100%;
}
}
.next_icon {
height: 80rpx;
width: 80rpx;
z-index: 99;
background-image: url('@/static/icon/next.png');
background-size: 100%;
background-repeat: no-repeat;
background-color: #ccc;
border-radius: 50%;
margin-top: 650rpx;
margin-left: 90vw;
float: right;
position: fixed;
}
.swiper-item-image {
width: 100%;
height: 100%;
}
.videoControl {
position: absolute;
bottom: 18.67rpx;
width: 100%;
box-sizing: border-box;
padding-left: 36rpx;
padding-right: 31.33rpx;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 24rpx;
color: white;
.videoControl_progress {
position: relative;
width: 476rpx;
progress {
width: 100%;
}
.video_progress {
width: 30rpx;
height: 30rpx;
position: absolute;
left: 50%;
margin-left: -15rpx;
top: 50%;
margin-top: -15rpx;
}
}
.videoControl_play {
width: 52rpx;
height: 52rpx;
}
.videoControl_zoom {
width: 30.67rpx;
height: 30.67rpx;
}
}
}
.video_mute {
width: 200rpx;
height: 200rpx;
position: fixed;
z-index: 999;
right: 22.67rpx;
bottom: 94.67rpx;
}
.video_play {
width: 100vw;
height: 750rpx;
// left:99%;
// margin-top: 30rpx;
// margin-left: 5vw;
// margin-right: 5vw;
}
.uni-bg-red {
background-color: red;
}
.uni-bg-green {
background-color: green;
}
.uni-bg-blue {
background-color: blue;
}
.uni-bg-black {
background-color: #000000;
background-repeat: no-repeat !important;
height: 100%;
background-size: cover !important;
}
}
}
.uni-navbar {
font-size: 32rpx;
font-weight: bold;
.input-view {
/* #ifndef APP-PLUS-NVUE */
display: flex;
/* #endif */
flex-direction: row;
// width: 500rpx;
flex: 1;
background-color: #F7F7F7;
// height: $nav-height;
height: 60rpx;
border-radius: 20px;
padding: 0 12px;
flex-wrap: nowrap;
margin: 7px 0;
align-items: center;
line-height: 60rpx;
}
.input-uni-icon {
// line-height: $nav-height;
height: 25rpx;
width: 30rpx;
// padding-top: 5.37rpx;
line-height: 0px;
image {
height: 100%;
width: 100%;
margin: 0 auto;
}
}
.nav-bar-input {
height: $nav-height;
line-height: $nav-height;
/* #ifdef APP-PLUS-NVUE */
width: 370rpx;
/* #endif */
padding-left: 10rpx;
// padding: 2rpx 5px;
// padding-bottom: 8rpx;
font-size: 12px;
// background-color: #F7F7F7;
font-weight: 500;
}
/deep/.uni-navbar--border {
border-bottom-width: 0;
border-bottom-style: none;
}
.nav_right {
padding-right: 30rpx;
padding-top: 12px;
image {
width: 44rpx;
height: 44rpx;
}
}
}
.info_price {
font-size: 44rpx;
font-weight: bold;
margin-top: 40rpx !important;
}
.goods_info {
padding: 0 26.67rpx;
padding-top: 20.67rpx;
// padding-bottom: 15.33rpx;
// border-bottom: #F7F7F7 13.33rpx solid;
font-size: 30.67rpx;
font-weight: 400;
.goods_info_price {
display: flex;
align-items: center;
font-size: 44rpx;
font-weight: bold;
margin-top: 23rpx;
justify-content: space-between;
// margin-bottom: 45.33rpx;
.info_price_right {
display: flex;
align-items: center;
image {
width: 40rpx;
height: 40rpx;
&:last-child {
margin-left: 27.33rpx;
}
}
}
}
.evaluate {
margin-top: 28rpx;
display: flex;
align-items: center;
font-size: 24rpx;
// padding-bottom: 33.33rpx;
// border-bottom: 1px solid #E2E2E2;
margin-bottom: 28rpx;
.evaluate_text {
font-weight: 500;
color: #B22234;
margin: 0 10rpx;
}
}
.variations {
font-size: 29.33rpx;
padding-top: 32rpx;
.variations_title {
display: flex;
align-items: center;
margin-bottom: 34.67rpx;
.variations_title_left {
font-weight: bold;
margin-right: 35rpx;
}
}
.variations_select {
display: flex;
align-items: center;
.variations_select_varieties {
display: flex;
.select_varieties_image {
width: 126.67rpx;
height: 126.67rpx;
margin-right: 9.33rpx;
// background-color: #999999;
&:last-child {
margin-right: 0;
}
}
}
}
}
}
.promotion {
padding-top: 36rpx;
padding-left: 30.67rpx;
border-bottom: #F7F7F7 13.33rpx solid;
padding-bottom: 35.33rpx;
.promotion_title {
font-size: 29.33rpx;
font-weight: bold;
margin-bottom: 34rpx;
}
.promotion_content {
display: flex;
align-items: center;
color: #B22234;
font-size: 18rpx;
.promotion_content_item {
background-color: #FBFAF8;
padding: 20rpx 0;
padding-left: 22.67rpx;
display: flex;
align-items: center;
padding-right: 18rpx;
margin-right: 18.67rpx;
image {
width: 57.33rpx;
height: 57.33rpx;
}
.promotion_item_right {
margin-left: 8.67rpx;
.title {
font-weight: 600;
}
}
}
}
}
.transport {
padding: 0 26.67rpx;
// padding-top: 17.33rpx;
// border-bottom: #F7F7F7 13.33rpx solid;
.title_Mtop {
margin-top: 25.33rpx;
}
.security {
padding-top: 36rpx;
padding-bottom: 32.67rpx;
// border-bottom: 1px solid #E2E2E2;
.security_content {
margin-top: 26rpx;
padding-left: 10rpx;
font-weight: 400;
// background-color: #B22234;
display: flex;
flex-wrap: wrap;
.icon {
height: 60rpx;
width: 40%;
line-height: 40rpx;
text-align: start;
// background-color: pink;
// margin: 12rpx;
justify-content: space-between;
align-items: center;
font-size: 24rpx;
}
// ul{
// width: 300rpx;
// padding-left: 0;
// margin-bottom: 50.67rpx;
// &:last-child{
// margin-bottom: 0;
// }
// li{
// width: 150rpx;
// // display: block;
// // float: left;
// margin-left: 50rpx;
// }
// }
}
}
.description {
padding: 34.67rpx 0;
}
}
.reviews {
// border-bottom: #F7F7F7 13.33rpx solid;
padding: 0 26.67rpx;
padding-top: 36rpx;
.allReviews {
background-color: #1b1b1b;
display: flex;
opacity: 0.8;
// background: rgba(0, 0, 0, 0.2);
align-items: center;
padding-left: 26.67rpx;
border-radius: 6.67rpx;
font-size: 45.67rpx;
font-weight: 800;
margin-top: 32.67rpx;
height: 118.67rpx;
color: #fff;
text {
display: inline-block;
margin-right: 42rpx;
}
}
}
.productImage {
.productImage_title {
padding: 35.33rpx 36.67rpx;
font-size: 29.33rpx;
font-weight: bold;
}
.productImage_image {
width: 100%;
min-height: 788rpx;
margin-bottom: 0 !important;
margin-top: 20rpx;
// margin-bottom: 62rpx;
// background-color: #fff;
display: grid;
image {
width: 100%;
height: 100%;
}
}
.productImage_image1 {
width: 100%;
height: 350px;
// background-color: #999999;
image {
width: 100%;
height: 100%;
}
}
.recommend1 {
padding-top: 0;
padding-right: 0;
.spike1 {
border-bottom: none;
}
}
}
.footer {
padding-top: 11rpx;
padding-bottom: 37rpx;
padding-left: 27.33rpx;
padding-right: 19.33rpx;
background-color: white;
position: fixed;
bottom: 0;
width: 100%;
box-sizing: border-box;
border-top: 1px solid #F6F5FA;
z-index: 100;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 36rpx;
.footer_left {
font-weight: bold;
display: flex;
align-items: center;
color: #000;
}
.footer_right {
display: flex;
align-items: center;
font-weight: 400;
button {
height: 73.33rpx;
line-height: 73.33rpx;
background-color: #191919;
margin: 0;
font-size: 26.67rpx;
color: white;
border-radius: 0;
width: 383.33rpx;
}
}
}
.special {
background-image: url('@/static/img/special_bg.png');
background-size: 100% 100%;
width: 100%;
height: 72rpx;
display: flex;
align-items: center;
font-size: 32rpx;
color: #fff;
padding-left: 29.33rpx;
padding-right: 22rpx;
justify-content: space-between;
font-weight: bold;
box-sizing: border-box;
.special_left {
display: flex;
align-items: center;
font-family: Source Han Sans CN;
image {
width: 40rpx;
height: 40rpx;
margin-right: 16rpx;
}
}
.special_right {
display: flex;
align-items: center;
image {
width: 24rpx;
height: 24rpx;
}
.countdown {
margin: 0 12.67rpx;
}
}
}
.Isshare {
z-index: 999;
position: fixed;
bottom: 0;
left: 0;
background-color: white;
padding-left: 29.33rpx;
padding-right: 29.33rpx;
box-sizing: border-box;
padding-top: 77.67rpx;
width: 100%;
font-size: 30.67rpx;
font-weight: 400;
padding-bottom: 74.67rpx;
.order_popup_title {
position: relative;
font-size: 32rpx;
font-weight: bold;
border-bottom: 1px solid #E2E2E2;
display: flex;
color: #000;
align-items: center;
justify-content: center;
// padding-top: 44.67rpx;
padding-bottom: 50.67rpx;
text-align: center;
image {
width: 21.33rpx;
height: 21.33rpx;
position: absolute;
right: 26rpx;
}
}
.share_icon {
display: flex;
width: 100%;
margin: 10rpx 10rpx;
flex-direction: row;
flex-wrap: nowrap;
font-size: 20rpx;
line-height: 40rpx;
text-align: center;
.icon_one {
width: 100rpx;
height: 150rpx;
}
.icon_item {
width: 100rpx;
height: 150rpx;
margin-top: 20rpx;
color: #000;
margin-left: 20.37rpx;
margin-right: 20.36rpx;
background-color: #fff;
image {
width: 100rpx;
height: 100rpx;
}
}
}
}
.text_margin {
margin-right: 10rpx;
font-size: 24rpx;
}
.recommend_content_name,
.recommend_content_item_pric {
padding-left: 20rpx;
padding-right: 20rpx;
}
.recommend_content_item_pric {
display: flex;
justify-content: space-between;
image {
height: 40rpx;
width: 40rpx;
}
}
.recommend_content_name {
font-size: 13px;
height: 52rpx;
line-height: 52rpx;
}
.bootom_last {
// height: 200rpx;
height: 60px;
width: 100%;
color: #fff;
font-size: 25rpx;
// line-height: 200rpx;
line-height: 50px;
text-align: center;
}
// uni-image {
// margin-top: -2px !important;
// }
/deep/.nav_left .uni-image .data-v-af9236d6 {
background-size: 0% !important;
}
/deep/ .uni-navbar__header {
height: auto !important;
}
.footer_right uni-button {
border-radius: 6px !important;
}
.uni-navbar .input-uni-icon {
height: 16px !important;
width: 16px !important;
}
uni-page-body {
// padding-bottom: 30000px !important;
// height: 2000vh;
padding-bottom: 0px !important;
background-color: black !important;
}
uni-page-wrapper {
background: #000;
height: auto;
}
/deep/ body.pages-productDetails-index {
background-color: #000 !important;
// overflow-x: auto !important;
height: 100%;
}
body {
background-color: #000;
}
</style>