|
|
|
@ -1,26 +1,27 @@ |
|
|
|
|
<template> |
|
|
|
|
<view class="detail"> |
|
|
|
|
|
|
|
|
|
<u-navbar> |
|
|
|
|
<view class="slot-wrap"> |
|
|
|
|
<input type="text" @click="toSearch()" disabled placeholder="iPhone15" class="searInput" /> |
|
|
|
|
<image style="width: 50rpx; height: 50rpx;" @click="goHome()" :src="$picUrl+'/static/detail/home.png'"></image> |
|
|
|
|
<view class="search"> |
|
|
|
|
<input type="text" @click="toSearch()" disabled placeholder="iPhone15" class="searInput" /> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</u-navbar> |
|
|
|
|
|
|
|
|
|
<view class="head"> |
|
|
|
|
<view class="share"> |
|
|
|
|
<view class="share" @click="shareImg()"> |
|
|
|
|
<view class="sp"></view> |
|
|
|
|
<image :src="$picUrl+'/static/detail/share.png'" class="shareIcon" @click="shareImg"></image> |
|
|
|
|
<button open-type="share"></button> |
|
|
|
|
<image src="/static/detail/share.png" mode="" class="shareIcon" @click="shareImg"></image> |
|
|
|
|
</view> |
|
|
|
|
<view class="swiper"> |
|
|
|
|
<swiper class="swiper" circular :indicator-dots="indicatorDots" :autoplay="autoplay" |
|
|
|
|
:interval="interval" :duration="duration"> |
|
|
|
|
<swiper-item v-for="(item,index) in goods.goods_images" :key="index"> |
|
|
|
|
<image :src="item.preview_url" mode="" class="goodsImg"></image> |
|
|
|
|
<swiper class="swiper" :circular="true" autoplay @change="changeSwiper"> |
|
|
|
|
<swiper-item v-for="(item,index) in goods.goods_images1" :key="index" @click="previewImage(index)"> |
|
|
|
|
<image :src="item" class="goodsImg"></image> |
|
|
|
|
</swiper-item> |
|
|
|
|
|
|
|
|
|
</swiper> |
|
|
|
|
<view class="dots" v-if="goods.goods_images && goods.goods_images.length> 0">{{(currenIndex+1)+"/"+goods.goods_images.length}}</view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
@ -31,7 +32,7 @@ |
|
|
|
|
<text>¥</text>{{goods.goods_price_min}} |
|
|
|
|
</view> |
|
|
|
|
<view class="sellPrice" v-if="goods.goods_price_min_dealer"> |
|
|
|
|
<text class="sellLeft">分销价</text>¥{{goods.goods_price_min_dealer}} |
|
|
|
|
<text class="sellLeft">分销价</text>¥{{goods.goods_price_min_dealer?goods.goods_price_min_dealer:0}} |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="right"> |
|
|
|
@ -39,12 +40,11 @@ |
|
|
|
|
¥{{goods.line_price_min}} |
|
|
|
|
</view> |
|
|
|
|
<view class="rightInfo"> |
|
|
|
|
降价通知 |
|
|
|
|
<image :src="$picUrl+'/static/detail/jiangjia.png'"></image> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<!-- v-if="userInfo.user_type==10" --> |
|
|
|
|
<view class="pro"> |
|
|
|
|
<view class="pro" v-if="isLogin || userInfo.user_type==10"> |
|
|
|
|
<view class="proMem"> |
|
|
|
|
<text v-if="userInfo.user_type==10">Plus</text> |
|
|
|
|
<text v-if="userInfo.user_type==20">分销</text> |
|
|
|
@ -52,9 +52,9 @@ |
|
|
|
|
</view> |
|
|
|
|
<view class="proInfo"> |
|
|
|
|
开通<text v-if="userInfo.user_type==10">Plus</text> |
|
|
|
|
<text v-if="userInfo.user_type==20">分销</text>会员预计再省 |
|
|
|
|
<text v-if="userInfo.user_type==20">分销</text>会员预计再省<text style="color: #FF1D1D;">30</text>元 |
|
|
|
|
</view> |
|
|
|
|
<view class="proBtn" @click="goMember"> |
|
|
|
|
<view class="proBtn" @click="goMember()"> |
|
|
|
|
立即开通 |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
@ -63,36 +63,50 @@ |
|
|
|
|
{{goods.goods_name}} |
|
|
|
|
</view> |
|
|
|
|
<view class="goodsOpera"> |
|
|
|
|
<view class="goodsNum" @click="copyNum" v-if="goods.skuList.length>0"> |
|
|
|
|
<view class="goodsNum" @click="copyNum(goods.skuList[0].goods_sku_id)" v-if="goods.specList && goods.specList.length>0"> |
|
|
|
|
<text>{{goods.skuList[0].goods_sku_id}}</text> |
|
|
|
|
<image src="/static/detail/copy.png" mode=""></image> |
|
|
|
|
<image :src="$picUrl+'/static/detail/copy.png'"></image> |
|
|
|
|
</view> |
|
|
|
|
<view class="goodsNum" @click="copyNum(goods.goods_id)" v-else> |
|
|
|
|
<text>{{goods.goods_id}}</text> |
|
|
|
|
<image :src="$picUrl+'/static/detail/copy.png'"></image> |
|
|
|
|
</view> |
|
|
|
|
<view class="operaImg"> |
|
|
|
|
<image src="/static/detail/tip.png" mode="" class="tips"></image> |
|
|
|
|
<image src="/static/detail/ys.png" mode="" class="ys"></image> |
|
|
|
|
<image :src="$picUrl+'/static/detail/jiangjia.png'" class="tips"></image> |
|
|
|
|
<image :src="$picUrl+'/static/detail/tip.png'" class="tips"></image> |
|
|
|
|
<image :src="$picUrl+'/static/detail/ys.png'" class="tips"></image> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="rank" @click="goRanking" v-if="goods.paihang>0"> |
|
|
|
|
<view class="rank" @click="goRanking()" v-if="goods && goods.category"> |
|
|
|
|
<text>排行榜 {{goods.category.name}}热搜榜第{{goods.paihang}}名</text> |
|
|
|
|
<image src="/static/detail/rightIcon.png" mode=""></image> |
|
|
|
|
<image :src="$picUrl+'/static/detail/rightIcon.png'"></image> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="orderInfo"> |
|
|
|
|
<!-- --> |
|
|
|
|
<view class="chosed" @click="choseSku" v-if="goods.spec_type == 20"> |
|
|
|
|
<view class="chosed" v-if="goods.spec_type == 20"> |
|
|
|
|
<view class="title">已选</view> |
|
|
|
|
<view class="info" v-if="goods.skuList.length>0"> |
|
|
|
|
<text v-for="(a,idx) in goods.skuList[0].goods_props" :key="idx" style="margin-right: 10rpx;">{{a.group.name}}{{a.value.name}}</text>1件 |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="chosed" v-else> |
|
|
|
|
<view class="title">已选</view> |
|
|
|
|
<view class="info" v-for="(item, index) in goods.specList" :key="index">{{ item.spec_name }}</view> |
|
|
|
|
<view class="info">1件</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="chosed"> |
|
|
|
|
<view class="title">送至</view> |
|
|
|
|
<view class="info"> |
|
|
|
|
<view class="infoLeft"> |
|
|
|
|
现货 |
|
|
|
|
<image src="../../static/detail/rightIcon.png" mode=""></image> |
|
|
|
|
<image :src="$picUrl+'/static/detail/rightIcon.png'"></image> |
|
|
|
|
</view> |
|
|
|
|
<view class="address"> |
|
|
|
|
{{addressInfo.region?addressInfo.region.province +'-'+addressInfo.region.city+'-'+addressInfo.region.region:''}} |
|
|
|
|
<view class="box" @click="choseAddress()" > |
|
|
|
|
<view class="address"> |
|
|
|
|
{{addressInfo.region?addressInfo.region.province +'-'+addressInfo.region.city+'-'+addressInfo.region.region:'全国'}} |
|
|
|
|
</view> |
|
|
|
|
<u-icon name="arrow-right" color="#7C7C7C"></u-icon> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
@ -101,20 +115,33 @@ |
|
|
|
|
<view class="serveInfo"> |
|
|
|
|
服务 |
|
|
|
|
</view> |
|
|
|
|
<view class="span"> |
|
|
|
|
|
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="business"> |
|
|
|
|
<view class="busSour"> |
|
|
|
|
<text>商家来源:平台认证商户</text> |
|
|
|
|
<view class="box" @click="toFuwu()"> |
|
|
|
|
<view class="business"> |
|
|
|
|
<view class="busSour"> |
|
|
|
|
<text>商家来源:平台认证商户</text> |
|
|
|
|
</view> |
|
|
|
|
<view class="busSour"> |
|
|
|
|
<text>商家名称:{{cityInfo.shop_name}}</text> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<u-icon name="arrow-right" style="float: right;" color="#7C7C7C"></u-icon> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="chosed" v-if="serveList.length>0"> |
|
|
|
|
<view class="title">服务</view> |
|
|
|
|
<!-- <image src="/static/detail/buy.png" mode="" class="buy"></image> --> |
|
|
|
|
<view class="info" v-for="(item,index) in serveList" :key="index">{{item.name}}</view> |
|
|
|
|
<view class="info"> |
|
|
|
|
<image :src="$picUrl+'/static/detail/buy.png'" class="buy"></image> |
|
|
|
|
<text class="li" v-for="(item,index) in serveList" :key="index" style="margin-right: 5rpx;">{{item.name}}</text> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="chosed" v-else> |
|
|
|
|
<view class="title">服务</view> |
|
|
|
|
<view class="info"> |
|
|
|
|
<image :src="$picUrl+'/static/detail/buy.png'" class="buy"></image> |
|
|
|
|
<text class="li" style="margin-right: 5rpx;">正品保障</text> |
|
|
|
|
<text class="li" style="margin-right: 5rpx;">全程跟踪</text> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="about"> |
|
|
|
@ -135,7 +162,7 @@ |
|
|
|
|
{{item.goods_name}} |
|
|
|
|
</view> |
|
|
|
|
<view class="price"> |
|
|
|
|
¥{{item.goods_price_min}} |
|
|
|
|
¥<text>{{item.goods_price_min}}</text> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
@ -143,16 +170,24 @@ |
|
|
|
|
<view class="detail-content" v-html="goods.content"></view> |
|
|
|
|
<view class="footer"> |
|
|
|
|
<view class="fooLeft"> |
|
|
|
|
<view class="footerCus firstBtn"> |
|
|
|
|
<view class="footerCus firstBtn" v-if="isLogin == false" @click="addCar()"> |
|
|
|
|
<view class="cusIcon"> |
|
|
|
|
<image src="/static/detail/customer.png" mode=""></image> |
|
|
|
|
<image src="/static/detail/customer.png"></image> |
|
|
|
|
</view> |
|
|
|
|
<view class="customer"> |
|
|
|
|
客服 |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="footerCus firstBtn" v-else> |
|
|
|
|
<view class="cusIcon"> |
|
|
|
|
<image src="/static/detail/customer.png"></image> |
|
|
|
|
</view> |
|
|
|
|
<view class="customer"> |
|
|
|
|
客服 |
|
|
|
|
</view> |
|
|
|
|
<button open-type="contact"></button> |
|
|
|
|
</view> |
|
|
|
|
<view class="footerCus " @click="shoppingCart"> |
|
|
|
|
<view class="footerCus " @click="shoppingCart()"> |
|
|
|
|
<view class="cusIcon"> |
|
|
|
|
<image src="/static/detail/car.png" mode=""></image> |
|
|
|
|
</view> |
|
|
|
@ -163,7 +198,7 @@ |
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
<view class="fooRight"> |
|
|
|
|
<view class="addCar" v-if="!isPre" @click="addCar"> |
|
|
|
|
<view class="addCar" v-if="!isPre" @click="addCar()"> |
|
|
|
|
加入购物车 |
|
|
|
|
</view> |
|
|
|
|
<view class="buyNow" v-if="!isPre" @click="buyNow"> |
|
|
|
@ -273,6 +308,9 @@ |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view class="toTop" v-if="isTop" @click="openScrollTo()"> |
|
|
|
|
<image :src="$picUrl+'/static/toTop.png'"></image> |
|
|
|
|
</view> |
|
|
|
|
<SkuPopup v-if="!isLoading" v-model="showSkuPopup" :skuMode="skuMode" :goods="goods" @addCart="onAddCart" /> |
|
|
|
|
</view> |
|
|
|
|
</template> |
|
|
|
@ -287,6 +325,9 @@ |
|
|
|
|
}, |
|
|
|
|
data() { |
|
|
|
|
return { |
|
|
|
|
cityInfo: {}, |
|
|
|
|
currenIndex: 0, |
|
|
|
|
isTop: false, |
|
|
|
|
skuMode: 1, |
|
|
|
|
goodShow:false, |
|
|
|
|
showSkuPopup: false, |
|
|
|
@ -307,7 +348,7 @@ |
|
|
|
|
addressList: [], |
|
|
|
|
addressInfo: {}, |
|
|
|
|
serveList:[], |
|
|
|
|
token:'', |
|
|
|
|
isLogin: false, |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
onLoad(options) { |
|
|
|
@ -315,49 +356,44 @@ |
|
|
|
|
this.isPre = options.isPre?options.isPre:null |
|
|
|
|
this.goodsId = options.goodsId?options.goodsId:null |
|
|
|
|
this.pre_id = options.pre_id?options.pre_id:null; |
|
|
|
|
// this.goodsId=options.goodsId; |
|
|
|
|
this.getSuggestGoods() |
|
|
|
|
this.getServeList() |
|
|
|
|
this.getGoodsDetail() |
|
|
|
|
this.cityInfo = uni.getStorageSync("cityInfo"); |
|
|
|
|
}, |
|
|
|
|
onShow() { |
|
|
|
|
if(uni.getStorageSync('AccessToken')){ |
|
|
|
|
this.getAddressList() |
|
|
|
|
this.getSuggestGoods() |
|
|
|
|
this.getServeList() |
|
|
|
|
this.isLogin = true; |
|
|
|
|
this.userInfo = uni.getStorageSync('userInfo'); |
|
|
|
|
}else{ |
|
|
|
|
this.isLogin = false; |
|
|
|
|
this.userInfo = {} |
|
|
|
|
} |
|
|
|
|
this.getGoodsDetail() |
|
|
|
|
}, |
|
|
|
|
onPageScroll(e) { |
|
|
|
|
if (e.scrollTop <= 200 ) { // 当滚动到顶部且向下滑动时为true |
|
|
|
|
this.isTop = false |
|
|
|
|
} else { |
|
|
|
|
this.isTop = true |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
methods: { |
|
|
|
|
copyText(val){ |
|
|
|
|
// 获取要复制的文本内容 |
|
|
|
|
let text = val; |
|
|
|
|
|
|
|
|
|
uni.setClipboardData({ |
|
|
|
|
data: text, |
|
|
|
|
success(res) { |
|
|
|
|
console.log('成功复制到剪贴板'); |
|
|
|
|
}, |
|
|
|
|
fail(err) { |
|
|
|
|
console.error('复制失败', err); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//门店图片预览 |
|
|
|
|
previewImage(i){ |
|
|
|
|
uni.previewImage({ |
|
|
|
|
current: this.goods.goods_images1[i], |
|
|
|
|
urls: this.goods.goods_images1 |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
shareWechat(){ |
|
|
|
|
uni.share({ |
|
|
|
|
provider: "weixin", |
|
|
|
|
scene: "WXSceneSession", |
|
|
|
|
type: 2, |
|
|
|
|
imageUrl: this.goods.goods_image, |
|
|
|
|
success: function (res) { |
|
|
|
|
console.log("success:" + JSON.stringify(res)); |
|
|
|
|
}, |
|
|
|
|
fail: function (err) { |
|
|
|
|
console.log("fail:" + JSON.stringify(err)); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
//监听滚动 |
|
|
|
|
changeSwiper(e){ |
|
|
|
|
this.currenIndex = e.detail.current |
|
|
|
|
}, |
|
|
|
|
openScrollTo(){ |
|
|
|
|
uni.pageScrollTo({ |
|
|
|
|
scrollTop: 0 |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
shareImg(){ |
|
|
|
|
this.openDialog =true |
|
|
|
@ -379,15 +415,15 @@ |
|
|
|
|
getServeList(){ |
|
|
|
|
const that = this |
|
|
|
|
let params = { |
|
|
|
|
goodsId:that.goodsId |
|
|
|
|
goodsId: that.goodsId |
|
|
|
|
} |
|
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
|
GoodsApi.serveList(params).then(res => { |
|
|
|
|
if (res.status == 200) { |
|
|
|
|
that.serveList = res.data.list |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
.catch() |
|
|
|
|
if (res.status == 200) { |
|
|
|
|
that.serveList = res.data.list |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
.catch() |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
// 预约成功去列表 |
|
|
|
@ -415,15 +451,20 @@ |
|
|
|
|
const that = this |
|
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
|
address.list().then(res => { |
|
|
|
|
if (res.status == 200) { |
|
|
|
|
that.addressList = res.data.list |
|
|
|
|
console.log('58555559999',that.addressList) |
|
|
|
|
if (res.status == 200) { |
|
|
|
|
that.addressList = res.data.list |
|
|
|
|
if(res.data.list && res.data.list.length > 0){ |
|
|
|
|
console.log(1111) |
|
|
|
|
that.getDefaultAddress() |
|
|
|
|
}else{ |
|
|
|
|
console.log(222) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
.catch() |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
.catch() |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
//获取收货地址 |
|
|
|
|
getDefaultAddress() { |
|
|
|
|
console.log('5855555') |
|
|
|
|
const that = this |
|
|
|
@ -433,7 +474,6 @@ |
|
|
|
|
for (var i = 0; i < that.addressList.length; i++) { |
|
|
|
|
if (res.data.defaultId == that.addressList[i].address_id) { |
|
|
|
|
that.addressInfo = that.addressList[i]; |
|
|
|
|
|
|
|
|
|
console.log(that.addressInfo,'获取地址') |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -442,6 +482,24 @@ |
|
|
|
|
.catch() |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
//选择地址 |
|
|
|
|
choseAddress() { |
|
|
|
|
if(!uni.getStorageSync("AccessToken")) { |
|
|
|
|
uni.navigateTo({ |
|
|
|
|
url: "/pages/login/index" |
|
|
|
|
}) |
|
|
|
|
return ; |
|
|
|
|
} |
|
|
|
|
if(this.addressList && this.addressList.length > 0){ |
|
|
|
|
uni.navigateTo({ |
|
|
|
|
url: '/pages/address/index' |
|
|
|
|
}) |
|
|
|
|
}else{ |
|
|
|
|
uni.navigateTo({ |
|
|
|
|
url: '/pages/address/create' |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
toSearch() { |
|
|
|
|
uni.navigateTo({ |
|
|
|
|
url: "/pages/search/index" |
|
|
|
@ -450,6 +508,22 @@ |
|
|
|
|
choseSku() { |
|
|
|
|
this.showSkuPopup = true |
|
|
|
|
}, |
|
|
|
|
copyNum(msg) { |
|
|
|
|
uni.setClipboardData({ |
|
|
|
|
data: msg, |
|
|
|
|
success: function () { |
|
|
|
|
uni.getClipboardData({ |
|
|
|
|
success: function (res) { |
|
|
|
|
console.log(res.data); |
|
|
|
|
uni.showToast({ |
|
|
|
|
icon: "none", |
|
|
|
|
title: "复制成功" |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
// 获取商品信息 |
|
|
|
|
getGoodsDetail() { |
|
|
|
|
const that = this |
|
|
|
@ -457,6 +531,16 @@ |
|
|
|
|
GoodsApi.detail(this.goodsId) |
|
|
|
|
.then(result => { |
|
|
|
|
let info = result.data.detail; |
|
|
|
|
info.goods_images1 = [] |
|
|
|
|
if(info.goods_images && info.goods_images.length > 0){ |
|
|
|
|
info.goods_images.map(a=>{ |
|
|
|
|
info.goods_images1.push(a.preview_url) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
if(info.skuList && info.skuList.length > 0){ |
|
|
|
|
info.skuList = info.skuList.reverse(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
info.content = info.content |
|
|
|
|
.replace(/style=""/g,'') |
|
|
|
|
.replace(/<img src=/g,'<img style="width: 100%; display:block" src=') |
|
|
|
@ -465,7 +549,7 @@ |
|
|
|
|
this.$set(this.goods,item,info[item]) |
|
|
|
|
// that.goods[item] = info[item] |
|
|
|
|
}) |
|
|
|
|
console.log(that.goods) |
|
|
|
|
|
|
|
|
|
that.allPicture = info.goods_images.length |
|
|
|
|
}) |
|
|
|
|
.catch() |
|
|
|
@ -477,7 +561,16 @@ |
|
|
|
|
GoodsApi.recommended() |
|
|
|
|
.then(result => { |
|
|
|
|
console.log(result, '获取推荐商品列表') |
|
|
|
|
that.suggestGoodsList = result.data.goodsList |
|
|
|
|
let arr = result.data.goodsList |
|
|
|
|
if(arr && arr.length > 0){ |
|
|
|
|
arr.map(a=>{ |
|
|
|
|
a.goods_price_min = Number(a.goods_price_min) |
|
|
|
|
a.goods_price_max = Number(a.goods_price_max) |
|
|
|
|
a.line_price_min = Number(a.line_price_min) |
|
|
|
|
a.line_price_max = Number(a.line_price_max) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
that.suggestGoodsList = arr |
|
|
|
|
}) |
|
|
|
|
.catch() |
|
|
|
|
}, |
|
|
|
@ -486,10 +579,15 @@ |
|
|
|
|
url: '/pages/index/index' |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
toDetail(goods_id) { |
|
|
|
|
uni.navigateTo({ |
|
|
|
|
url: '/pages/goods/detail?goodsId=' + goods_id |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
goRanking() { |
|
|
|
|
// 跳转排行榜 |
|
|
|
|
uni.navigateTo({ |
|
|
|
|
url: '/pages/activity/charts' |
|
|
|
|
url: '/pages/activity/ranking' |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
goMember() { |
|
|
|
@ -503,6 +601,11 @@ |
|
|
|
|
url: '/pages/member/index' |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
toFuwu() { |
|
|
|
|
uni.navigateTo({ |
|
|
|
|
url: "/pages/news/consult/about" |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
shoppingCart() { |
|
|
|
|
// 购物车 |
|
|
|
|
uni.switchTab({ |
|
|
|
@ -560,7 +663,25 @@ |
|
|
|
|
.detail { |
|
|
|
|
width: 100%; |
|
|
|
|
height: 100%; |
|
|
|
|
padding-bottom: 150rpx; |
|
|
|
|
.toTop{ |
|
|
|
|
position: fixed; |
|
|
|
|
bottom: 230rpx; |
|
|
|
|
right: 32rpx; |
|
|
|
|
width: 47px; |
|
|
|
|
height: 47px; |
|
|
|
|
background: #FFFFFF; |
|
|
|
|
border-radius: 50%; |
|
|
|
|
z-index:999; |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
justify-content: center; |
|
|
|
|
image{ |
|
|
|
|
width: 25px; |
|
|
|
|
height: 25px; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
&-content{ |
|
|
|
|
padding: 30rpx; |
|
|
|
|
font-size: 26rpx; |
|
|
|
@ -573,14 +694,21 @@ |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.slot-wrap { |
|
|
|
|
width: 400rpx; |
|
|
|
|
margin-left: 60rpx; |
|
|
|
|
height: 58rpx; |
|
|
|
|
border-radius: 60rpx 60rpx 60rpx 60rpx; |
|
|
|
|
background-color: #F3F3F3; |
|
|
|
|
width: 100%; |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
padding-left: 20rpx; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
.search{ |
|
|
|
|
width: 400rpx; |
|
|
|
|
height: 58rpx; |
|
|
|
|
border-radius: 60rpx; |
|
|
|
|
background-color: #F3F3F3; |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
padding-left: 20rpx; |
|
|
|
|
box-sizing: border-box; |
|
|
|
|
margin: 0 20rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -615,130 +743,89 @@ |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.head{ |
|
|
|
|
width: 100%; |
|
|
|
|
height: 750rpx; |
|
|
|
|
position: relative; |
|
|
|
|
} |
|
|
|
|
.share { |
|
|
|
|
z-index: 22; |
|
|
|
|
top: 128rpx; |
|
|
|
|
width: 54rpx; |
|
|
|
|
height: 54rpx; |
|
|
|
|
z-index: 10; |
|
|
|
|
top: 28rpx; |
|
|
|
|
width: 74rpx; |
|
|
|
|
height: 74rpx; |
|
|
|
|
position: absolute; |
|
|
|
|
right: 30rpx; |
|
|
|
|
background-color: rgba(255, 255, 255, 1); |
|
|
|
|
border-radius: 50%; |
|
|
|
|
text-align: center; |
|
|
|
|
right: 28rpx; |
|
|
|
|
.sp { |
|
|
|
|
width: 54rpx; |
|
|
|
|
height: 54rpx; |
|
|
|
|
display: none; |
|
|
|
|
} |
|
|
|
|
button{ |
|
|
|
|
width: 100%; |
|
|
|
|
height: 100%; |
|
|
|
|
position: absolute; |
|
|
|
|
left: 0; |
|
|
|
|
top: 0; |
|
|
|
|
z-index: 2; |
|
|
|
|
opacity: 0; |
|
|
|
|
} |
|
|
|
|
.shareIcon { |
|
|
|
|
width: 54rpx; |
|
|
|
|
height: 54rpx; |
|
|
|
|
margin-right: 28rpx; |
|
|
|
|
margin-top: 10rpx; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.swiper { |
|
|
|
|
width: 726rpx; |
|
|
|
|
height: 458rpx; |
|
|
|
|
border-radius: 0rpx 0rpx 0rpx 0rpx; |
|
|
|
|
width: 100%; |
|
|
|
|
height: 750rpx; |
|
|
|
|
opacity: 1; |
|
|
|
|
left: 0; |
|
|
|
|
right: 0; |
|
|
|
|
margin: auto; |
|
|
|
|
|
|
|
|
|
.goodsImg { |
|
|
|
|
margin-left: 30rpx; |
|
|
|
|
// width: 666rpx; |
|
|
|
|
// height: 398rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.goods { |
|
|
|
|
width: 100%; |
|
|
|
|
height: 100%; |
|
|
|
|
white-space: nowrap; |
|
|
|
|
|
|
|
|
|
.goodsItem { |
|
|
|
|
width: 100%; |
|
|
|
|
height: 100%; |
|
|
|
|
|
|
|
|
|
display: inline-block; |
|
|
|
|
position: relative; |
|
|
|
|
|
|
|
|
|
.goodsImg { |
|
|
|
|
margin-left: 30rpx; |
|
|
|
|
width: 666rpx; |
|
|
|
|
height: 398rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.num { |
|
|
|
|
|
|
|
|
|
text-align: center; |
|
|
|
|
display: flex; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
|
|
|
|
|
.numSp { |
|
|
|
|
width: 82rpx; |
|
|
|
|
height: 56rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.numInfo { |
|
|
|
|
width: 82rpx; |
|
|
|
|
height: 56rpx; |
|
|
|
|
background: #262626; |
|
|
|
|
border-radius: 50% 0 0 50%; |
|
|
|
|
font-size: 28rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #FFFFFF; |
|
|
|
|
line-height: 56rpx; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
.dots{ |
|
|
|
|
width: 82rpx; |
|
|
|
|
line-height: 56rpx; |
|
|
|
|
background: rgba(38,38,38,0.85); |
|
|
|
|
position: absolute; |
|
|
|
|
bottom: 20rpx; |
|
|
|
|
right: 0; |
|
|
|
|
z-index: 22; |
|
|
|
|
font-size: 28rpx; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #FFFFFF; |
|
|
|
|
text-align: center; |
|
|
|
|
border-radius: 56rpx 0 0 56rpx; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.goodsInfo { |
|
|
|
|
width: 720rpx; |
|
|
|
|
max-height: 484rpx; |
|
|
|
|
background: #FFFFFF; |
|
|
|
|
border-radius: 6rpx 6rpx 6rpx 6rpx; |
|
|
|
|
opacity: 1; |
|
|
|
|
margin: 30rpx 0 0 16rpx; |
|
|
|
|
|
|
|
|
|
border-radius: 6rpx; |
|
|
|
|
padding-bottom: 30rpx; |
|
|
|
|
overflow: hidden; |
|
|
|
|
margin: 20rpx auto 16rpx; |
|
|
|
|
.goodsPrice { |
|
|
|
|
background-image: url('/static/detail/priceback.png'); |
|
|
|
|
background-image: url('https://www.royaum.com.cn/static/detail/priceback.png'); |
|
|
|
|
width: 720rpx; |
|
|
|
|
height: 136rpx; |
|
|
|
|
background-size: 100% 100%; |
|
|
|
|
background-size: cover; |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
|
|
|
|
|
.left { |
|
|
|
|
margin: 18rpx 0 0 28rpx; |
|
|
|
|
|
|
|
|
|
margin: 0 0 0 28rpx; |
|
|
|
|
.leftPrice { |
|
|
|
|
width: 140rpx; |
|
|
|
|
height: 64rpx; |
|
|
|
|
font-size: 46rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #FFFFFF; |
|
|
|
|
line-height: 64rpx; |
|
|
|
|
|
|
|
|
|
text { |
|
|
|
|
width: 20rpx; |
|
|
|
|
height: 64rpx; |
|
|
|
|
font-size: 32rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #FFFFFF; |
|
|
|
|
line-height: 64rpx; |
|
|
|
@ -749,7 +836,6 @@ |
|
|
|
|
.sellPrice { |
|
|
|
|
height: 34rpx; |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #FFFFFF; |
|
|
|
|
line-height: 34rpx; |
|
|
|
@ -763,12 +849,10 @@ |
|
|
|
|
|
|
|
|
|
.right { |
|
|
|
|
margin-right: 50rpx; |
|
|
|
|
|
|
|
|
|
.rightPrice { |
|
|
|
|
width: 102rpx; |
|
|
|
|
text-align: center; |
|
|
|
|
height: 48rpx; |
|
|
|
|
font-size: 34rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #FFFFFF; |
|
|
|
|
line-height: 48rpx; |
|
|
|
@ -776,19 +860,18 @@ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.rightInfo { |
|
|
|
|
width: 136rpx; |
|
|
|
|
height: 44rpx; |
|
|
|
|
font-size: 34rpx; |
|
|
|
|
font-family: YouSheBiaoTiHei; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #FFFFFF; |
|
|
|
|
line-height: 34rpx; |
|
|
|
|
width: 125rpx; |
|
|
|
|
height: 26rpx; |
|
|
|
|
image{ |
|
|
|
|
width: 100%; |
|
|
|
|
height: 100%; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.pro { |
|
|
|
|
background-image: url('/static/detail/pro.png'); |
|
|
|
|
background-image: url('https://www.royaum.com.cn/static/detail/pro.png'); |
|
|
|
|
background-size: 100% 100%; |
|
|
|
|
width: 690rpx; |
|
|
|
|
height: 82rpx; |
|
|
|
@ -798,12 +881,9 @@ |
|
|
|
|
|
|
|
|
|
.proMem { |
|
|
|
|
width: 142rpx; |
|
|
|
|
height: 40rpx; |
|
|
|
|
font-size: 28rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 500; |
|
|
|
|
color: #966542; |
|
|
|
|
line-height: 33rpx; |
|
|
|
|
margin-left: 18rpx; |
|
|
|
|
padding-right: 24rpx; |
|
|
|
|
border-right: 2rpx solid #EFD4B4; |
|
|
|
@ -811,12 +891,9 @@ |
|
|
|
|
|
|
|
|
|
.proInfo { |
|
|
|
|
width: 304rpx; |
|
|
|
|
height: 34rpx; |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 500; |
|
|
|
|
color: #966542; |
|
|
|
|
line-height: 34rpx; |
|
|
|
|
margin: 0 38rpx 0 26rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -824,12 +901,11 @@ |
|
|
|
|
width: 126rpx; |
|
|
|
|
height: 50rpx; |
|
|
|
|
background: #9F744D; |
|
|
|
|
border-radius: 82rpx 82rpx 82rpx 82rpx; |
|
|
|
|
border-radius: 82rpx; |
|
|
|
|
opacity: 1; |
|
|
|
|
text-align: center; |
|
|
|
|
line-height: 50rpx; |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 500; |
|
|
|
|
color: #FFFFFF; |
|
|
|
|
} |
|
|
|
@ -840,72 +916,67 @@ |
|
|
|
|
.goodsName { |
|
|
|
|
width: 672rpx; |
|
|
|
|
font-size: 28rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #000000; |
|
|
|
|
line-height: 50rpx; |
|
|
|
|
margin: 28rpx 0 0 28rpx; |
|
|
|
|
|
|
|
|
|
margin: 28rpx auto 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.goodsOpera { |
|
|
|
|
margin-left: 28rpx; |
|
|
|
|
display: flex; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
|
|
|
|
|
align-items: center; |
|
|
|
|
.goodsNum { |
|
|
|
|
text { |
|
|
|
|
display: inline-block; |
|
|
|
|
width: 168rpx; |
|
|
|
|
height: 34rpx; |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #8A8A8A; |
|
|
|
|
line-height: 34rpx; |
|
|
|
|
margin-right: 4rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
image { |
|
|
|
|
width: 28rpx; |
|
|
|
|
height: 28rpx; |
|
|
|
|
vertical-align: middle; |
|
|
|
|
margin-left: 10rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.operaImg { |
|
|
|
|
margin-right: 34rpx; |
|
|
|
|
image { |
|
|
|
|
width: 49rpx; |
|
|
|
|
height: 49rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.tips { |
|
|
|
|
margin-right: 6rpx; |
|
|
|
|
margin-left: 10rpx; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.rank { |
|
|
|
|
margin: 22rpx 0 18rpx 28rpx; |
|
|
|
|
width: 670rpx; |
|
|
|
|
height: 58rpx; |
|
|
|
|
background: #FFF3EE; |
|
|
|
|
border-radius: 8rpx 8rpx 8rpx 8rpx; |
|
|
|
|
opacity: 1; |
|
|
|
|
border-radius: 8rpx; |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
padding: 0 28rpx; |
|
|
|
|
|
|
|
|
|
box-sizing: border-box; |
|
|
|
|
margin: 16rpx auto 0; |
|
|
|
|
text { |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #FF1130; |
|
|
|
|
line-height: 58rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
image { |
|
|
|
|
width: 14rpx; |
|
|
|
|
width: 8rpx; |
|
|
|
|
height: 14rpx; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -914,55 +985,46 @@ |
|
|
|
|
|
|
|
|
|
.orderInfo { |
|
|
|
|
width: 720rpx; |
|
|
|
|
height: 256rpx; |
|
|
|
|
background: #FFFFFF; |
|
|
|
|
border-radius: 6rpx 6rpx 6rpx 6rpx; |
|
|
|
|
border-radius: 6rpx; |
|
|
|
|
opacity: 1; |
|
|
|
|
margin: 16rpx 0 0 20rpx; |
|
|
|
|
padding: 24rpx 22rpx 12rpx 32rpx; |
|
|
|
|
|
|
|
|
|
margin: 16rpx auto 20rpx; |
|
|
|
|
padding: 25rpx 25rpx 10rpx; |
|
|
|
|
box-sizing: border-box; |
|
|
|
|
.chosed { |
|
|
|
|
margin-bottom: 18rpx; |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
|
|
|
|
|
.buy { |
|
|
|
|
width: 112rpx; |
|
|
|
|
height: 22rpx; |
|
|
|
|
margin-right: 10rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
align-items: flex-start; |
|
|
|
|
padding-bottom: 18rpx; |
|
|
|
|
overflow: hidden; |
|
|
|
|
.title { |
|
|
|
|
width: 48rpx; |
|
|
|
|
height: 34rpx; |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #C4C4C4; |
|
|
|
|
line-height: 34rpx; |
|
|
|
|
margin-right: 38rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.info { |
|
|
|
|
height: 34rpx; |
|
|
|
|
flex: 1; |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #3D3D3D; |
|
|
|
|
line-height: 34rpx; |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
|
|
|
|
|
.buy { |
|
|
|
|
width: 114rpx; |
|
|
|
|
height: 23rpx; |
|
|
|
|
margin-right: 10rpx; |
|
|
|
|
display: block; |
|
|
|
|
} |
|
|
|
|
.infoLeft { |
|
|
|
|
height: 34rpx; |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #FE3636; |
|
|
|
|
line-height: 34rpx; |
|
|
|
|
|
|
|
|
|
image { |
|
|
|
|
width: 14rpx; |
|
|
|
|
width: 8rpx; |
|
|
|
|
height: 14rpx; |
|
|
|
|
margin: 0 10rpx 0 8rpx; |
|
|
|
|
} |
|
|
|
@ -990,21 +1052,23 @@ |
|
|
|
|
line-height: 34rpx; |
|
|
|
|
margin-right: 38rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.span { |
|
|
|
|
width: 48rpx; |
|
|
|
|
height: 34rpx; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.box{ |
|
|
|
|
display: flex; |
|
|
|
|
align-items: flex-start; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
flex: 1; |
|
|
|
|
} |
|
|
|
|
.business { |
|
|
|
|
.busSour { |
|
|
|
|
height: 34rpx; |
|
|
|
|
height: 40rpx; |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-weight: 400; |
|
|
|
|
color: #3D3D3D; |
|
|
|
|
line-height: 34rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.busName { |
|
|
|
@ -1094,19 +1158,18 @@ |
|
|
|
|
text-overflow: ellipsis; |
|
|
|
|
white-space: normal !important; |
|
|
|
|
word-wrap: break-word; |
|
|
|
|
-webkit-box-orient: vertical; |
|
|
|
|
-webkit-box-align: start; |
|
|
|
|
-webkit-box-pack: center; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.price { |
|
|
|
|
width: 66rpx; |
|
|
|
|
height: 44rpx; |
|
|
|
|
font-size: 32rpx; |
|
|
|
|
font-family: PingFang SC, PingFang SC; |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
font-weight: 500; |
|
|
|
|
color: #ED2B00; |
|
|
|
|
line-height: 38rpx; |
|
|
|
|
text{ |
|
|
|
|
font-size: 32rpx; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|