2020-06-15 00:49:26 +00:00
|
|
|
|
<template>
|
|
|
|
|
<view class="sdetails">
|
2020-07-20 09:17:41 +00:00
|
|
|
|
<u-swiper :list="list" height="500" border-radius="0" mode="dot"></u-swiper>
|
2020-06-15 00:49:26 +00:00
|
|
|
|
<view class="info">
|
2020-07-20 09:17:41 +00:00
|
|
|
|
<view class="title u-line-2">
|
|
|
|
|
<text>{{ goodsInfo.store_name }}</text>{{ goodsInfo.goods_name }}
|
2020-06-15 00:49:26 +00:00
|
|
|
|
</view>
|
|
|
|
|
<view class="pic">
|
2020-06-29 09:24:57 +00:00
|
|
|
|
<text>¥{{ goodsInfo.goods_price }}</text>
|
|
|
|
|
<s>¥{{ goodsInfo.goods_marketprice }}</s>
|
2020-06-15 00:49:26 +00:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="hr"></view>
|
2020-06-29 09:24:57 +00:00
|
|
|
|
<!-- <navs :value="领券"></navs> -->
|
2020-06-30 10:06:50 +00:00
|
|
|
|
<navs :value="'产品规格'"></navs>
|
|
|
|
|
<navs :value="'产品颜色'"></navs>
|
|
|
|
|
<navs :value="'选择尺码'"></navs>
|
2020-07-20 09:17:41 +00:00
|
|
|
|
<view class="hr"></view>
|
|
|
|
|
<view class="group-user" v-if="groupUser.length">
|
|
|
|
|
<view class="top">
|
|
|
|
|
<view class="title">{{ groupUser.length }}人正在拼团,可直接参与</view>
|
|
|
|
|
<view class="view-more">
|
|
|
|
|
<text>查看全部</text>
|
|
|
|
|
<image src="/static/image/common/1.png"></image>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="bottom">
|
|
|
|
|
<view class="left">
|
|
|
|
|
<view class="avatar">
|
|
|
|
|
<image v-for="(user, i) in groupUser" :src="user[0].member_avatar" :key="i"></image>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="all">
|
|
|
|
|
<text>查看全部</text>
|
|
|
|
|
<image src="/static/image/common/1.png"></image>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="right">
|
|
|
|
|
<view class="launch-user">
|
|
|
|
|
<image :src="groupUser[0][0].member_avatar"></image>
|
|
|
|
|
<text class="u-line-1">{{ groupUser[0][0].member_nickname }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="involvement-user">
|
|
|
|
|
<view class="item" v-for="(user, i) in groupUser.slice(1)" :key="i">
|
|
|
|
|
<image :src="user[0].member_avatar"></image>
|
|
|
|
|
<text class="u-line-1">{{ user[0].member_nickname }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2020-06-15 00:49:26 +00:00
|
|
|
|
<view class="xiangqing">
|
|
|
|
|
<view class="heng"></view>
|
|
|
|
|
<view class="title">商品详情</view>
|
|
|
|
|
<view class="heng"></view>
|
|
|
|
|
</view>
|
2020-06-29 09:24:57 +00:00
|
|
|
|
<view class="rich">
|
|
|
|
|
<rich-text :nodes="goodsInfo.mobile_body"></rich-text>
|
|
|
|
|
</view>
|
2020-07-20 09:17:41 +00:00
|
|
|
|
<!-- 拼团 tool -->
|
|
|
|
|
<view class="group-tool" v-if="type==2">
|
|
|
|
|
<view class="launch" @click="withImmediate">发起拼团</view>
|
|
|
|
|
<view class="involvement">参与拼团</view>
|
|
|
|
|
</view>
|
|
|
|
|
<!-- 普通商品 tool -->
|
|
|
|
|
<tloos @buy="buy" @xuanze="xuanze" :id="goodsInfo.goods_commonid" :info="info" v-if="type==1"></tloos>
|
2020-07-07 06:45:57 +00:00
|
|
|
|
<u-toast ref="uToast" />
|
2020-06-15 00:49:26 +00:00
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
<script>
|
|
|
|
|
import navs from "../components/sdetails/navs"
|
|
|
|
|
import tloos from "../components/sdetails/tloos"
|
2020-07-20 09:17:41 +00:00
|
|
|
|
export default {
|
2020-06-15 00:49:26 +00:00
|
|
|
|
name:"sdetails",
|
2020-06-29 09:24:57 +00:00
|
|
|
|
data() {
|
|
|
|
|
return {
|
2020-07-20 09:17:41 +00:00
|
|
|
|
list: [], // 轮播图列表
|
2020-07-07 06:45:57 +00:00
|
|
|
|
goodsInfo: {},
|
|
|
|
|
info:{},
|
|
|
|
|
glist:[],
|
2020-07-20 09:17:41 +00:00
|
|
|
|
id:0,
|
|
|
|
|
type: '', // 商品类型
|
|
|
|
|
groupUser: [], // 拼团用户
|
|
|
|
|
avatarWidth: '',
|
2020-06-29 09:24:57 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2020-06-15 00:49:26 +00:00
|
|
|
|
components:{
|
|
|
|
|
navs,
|
|
|
|
|
tloos
|
|
|
|
|
},
|
2020-06-29 09:24:57 +00:00
|
|
|
|
onLoad(option) {
|
2020-07-20 09:17:41 +00:00
|
|
|
|
this.id = option.id;
|
|
|
|
|
this.init();
|
2020-06-29 09:24:57 +00:00
|
|
|
|
},
|
|
|
|
|
methods: {
|
2020-07-20 09:17:41 +00:00
|
|
|
|
init() {
|
|
|
|
|
this.type = this.$store.getters.getGoodsType;
|
|
|
|
|
const info = this.$store.getters.getGoodsInfo;
|
|
|
|
|
console.log(info);
|
|
|
|
|
this.goodsInfo = info.goods;
|
|
|
|
|
this.groupUser = info.user;
|
|
|
|
|
// 设置轮播图
|
|
|
|
|
let list = [];
|
|
|
|
|
info.goods_image[0].forEach(item => {
|
|
|
|
|
let temp = {
|
|
|
|
|
image: item
|
|
|
|
|
}
|
|
|
|
|
list.push(temp);
|
|
|
|
|
})
|
|
|
|
|
this.list = list;
|
|
|
|
|
this.setTitle();
|
|
|
|
|
},
|
2020-07-07 06:45:57 +00:00
|
|
|
|
buy(info){
|
|
|
|
|
if(info.type == 2){
|
|
|
|
|
this.$u.api.addCart({
|
|
|
|
|
goods_id: this.id,
|
|
|
|
|
quantity: info.value,
|
|
|
|
|
}).then(res => {
|
|
|
|
|
this.$refs.uToast.show({
|
|
|
|
|
title: res.errCode[1],
|
|
|
|
|
type: res.errCode == 0 ? 'success' : 'warning',
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
2020-06-29 09:24:57 +00:00
|
|
|
|
getGoodsDetails(id) {
|
2020-07-07 06:45:57 +00:00
|
|
|
|
this.id = id;
|
2020-06-30 10:06:50 +00:00
|
|
|
|
this.$u.api.getGoodsDetails({ id: id }).then((res)=>{
|
2020-06-29 09:24:57 +00:00
|
|
|
|
if (res.errCode == 0) {
|
2020-07-15 08:21:43 +00:00
|
|
|
|
this.goodsInfo = res.data.goods;
|
|
|
|
|
let list = [];
|
|
|
|
|
res.data.goods_image[0].forEach(item => {
|
2020-06-29 09:24:57 +00:00
|
|
|
|
let temp = {
|
|
|
|
|
image: item
|
|
|
|
|
}
|
2020-07-15 08:21:43 +00:00
|
|
|
|
list.push(temp);
|
2020-06-29 09:24:57 +00:00
|
|
|
|
})
|
2020-07-15 08:21:43 +00:00
|
|
|
|
this.list = list;
|
2020-07-01 09:32:36 +00:00
|
|
|
|
// console.log(this.goodsInfo.mobile_body);
|
2020-06-29 09:24:57 +00:00
|
|
|
|
}
|
2020-07-07 06:45:57 +00:00
|
|
|
|
})
|
|
|
|
|
this.$u.api.goodsInfo({id}).then((res)=>{
|
2020-07-20 09:17:41 +00:00
|
|
|
|
// console.log(res)
|
2020-07-07 06:45:57 +00:00
|
|
|
|
this.info = res.data.goods;
|
|
|
|
|
this.glist = res.data.spec_list;
|
|
|
|
|
})
|
2020-07-20 09:17:41 +00:00
|
|
|
|
},
|
|
|
|
|
withImmediate() {
|
|
|
|
|
this.$u.api.withImmediate({
|
|
|
|
|
pintuan_id: this.id,
|
|
|
|
|
}).then(res => {
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
},
|
2020-07-07 06:45:57 +00:00
|
|
|
|
xuanze(id){
|
2020-07-20 09:17:41 +00:00
|
|
|
|
// console.log(id)
|
2020-07-07 06:45:57 +00:00
|
|
|
|
this.getGoodsDetails(this.glist[id])
|
2020-07-20 09:17:41 +00:00
|
|
|
|
},
|
|
|
|
|
setTitle() {
|
|
|
|
|
let title = '';
|
|
|
|
|
switch (this.type) {
|
|
|
|
|
case 1:
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
title = '拼团商品详情';
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
uni.setNavigationBarTitle({
|
|
|
|
|
title: title
|
|
|
|
|
});
|
|
|
|
|
},
|
2020-06-29 09:24:57 +00:00
|
|
|
|
},
|
2020-06-15 00:49:26 +00:00
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
.sdetails{
|
2020-06-29 09:24:57 +00:00
|
|
|
|
padding-bottom: 98rpx;
|
2020-06-15 00:49:26 +00:00
|
|
|
|
.info{
|
|
|
|
|
padding: 30rpx;
|
|
|
|
|
.title{
|
|
|
|
|
flex-wrap: wrap;
|
2020-06-29 09:24:57 +00:00
|
|
|
|
margin-bottom: 30rpx;
|
2020-06-15 00:49:26 +00:00
|
|
|
|
>text{
|
|
|
|
|
padding: 13rpx;
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
color:#fff;
|
|
|
|
|
margin-right: 13rpx;
|
|
|
|
|
background-color: #FF780F;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
border-radius: 25rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.pic{
|
|
|
|
|
>text{
|
|
|
|
|
font-size: 32rpx;
|
|
|
|
|
color: #FF3131;
|
|
|
|
|
}
|
|
|
|
|
>s{
|
|
|
|
|
font-size: 26rpx;
|
|
|
|
|
color: #999;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
margin-left: 30rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.hr{
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 20rpx;
|
|
|
|
|
background-color: #ececec;
|
|
|
|
|
}
|
2020-07-20 09:17:41 +00:00
|
|
|
|
.group-user {
|
|
|
|
|
padding: 30rpx;
|
|
|
|
|
.top {
|
|
|
|
|
margin-bottom: 28rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
.title {
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
color: rgba(51,51,51,1);
|
|
|
|
|
}
|
|
|
|
|
.view-more {
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
color: rgba(153,153,153,1);
|
|
|
|
|
> image {
|
|
|
|
|
margin-left: 10rpx;
|
|
|
|
|
width: 8rpx;
|
|
|
|
|
height: 16rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.bottom {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
font-size: 22rpx;
|
|
|
|
|
color: rgba(153,153,153,1);
|
|
|
|
|
.left {
|
|
|
|
|
margin-right: 40rpx;
|
|
|
|
|
.avatar {
|
|
|
|
|
width: 120rpx;
|
|
|
|
|
height: 60rpx;
|
|
|
|
|
margin-bottom: 16rpx;
|
|
|
|
|
position: relative;
|
|
|
|
|
@mixin avatar($left, $index) {
|
|
|
|
|
width: 60rpx;
|
|
|
|
|
height: 60rpx;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: $left;
|
|
|
|
|
z-index: $index;
|
|
|
|
|
}
|
|
|
|
|
> image {
|
|
|
|
|
&:first-child {
|
|
|
|
|
background-color: aliceblue;
|
|
|
|
|
@include avatar($left: 0rpx, $index: 7);
|
|
|
|
|
}
|
|
|
|
|
&:nth-child(2) {
|
|
|
|
|
background-color: aquamarine;
|
|
|
|
|
@include avatar($left: 30rpx, $index: 8);
|
|
|
|
|
}
|
|
|
|
|
&:nth-child(3) {
|
|
|
|
|
background-color: antiquewhite;
|
|
|
|
|
@include avatar($left: 60rpx, $index: 9);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.all {
|
|
|
|
|
> image {
|
|
|
|
|
margin-left: 10rpx;
|
|
|
|
|
width: 8rpx;
|
|
|
|
|
height: 16rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.right {
|
|
|
|
|
display: flex;
|
|
|
|
|
image {
|
|
|
|
|
background-color: aquamarine;
|
|
|
|
|
width: 60rpx;
|
|
|
|
|
height: 60rpx;
|
|
|
|
|
margin-bottom: 15rpx;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
}
|
|
|
|
|
.launch-user {
|
|
|
|
|
margin-right: 40rpx;
|
|
|
|
|
text-align: center;
|
|
|
|
|
> text {
|
|
|
|
|
width: 98rpx;
|
|
|
|
|
display: block;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.involvement-user {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
.item {
|
|
|
|
|
text-align: center;
|
|
|
|
|
> text {
|
|
|
|
|
display: block;
|
|
|
|
|
width: 72rpx;
|
|
|
|
|
}
|
|
|
|
|
&:not(:last-child) {
|
|
|
|
|
margin-right: 30rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-06-15 00:49:26 +00:00
|
|
|
|
.xiangqing{
|
|
|
|
|
display: flex;
|
|
|
|
|
height: 85rpx;
|
|
|
|
|
background-color: #ececec;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
.heng{
|
|
|
|
|
width: 79rpx;
|
|
|
|
|
height: 2rpx;
|
|
|
|
|
background-color: #a9a9a9;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
color: #999;
|
|
|
|
|
.title{
|
|
|
|
|
margin: 0 20rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-06-29 09:24:57 +00:00
|
|
|
|
.rich {
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
2020-07-20 09:17:41 +00:00
|
|
|
|
.group-tool {
|
|
|
|
|
position: fixed;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 98rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
font-size: 32rpx;
|
|
|
|
|
color: rgba(255,255,255,1);
|
|
|
|
|
z-index: 99;
|
|
|
|
|
.launch {
|
|
|
|
|
flex: 1;
|
|
|
|
|
background: rgba(253,211,96,1);
|
|
|
|
|
line-height: 98rpx;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
.involvement {
|
|
|
|
|
flex: 1;
|
|
|
|
|
background: rgba(255,120,15,1);
|
|
|
|
|
line-height: 98rpx;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-06-15 00:49:26 +00:00
|
|
|
|
}
|
|
|
|
|
</style>
|