|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
<template> |
|
|
|
|
<view class="group-con"> |
|
|
|
|
<view class="header acea-row row-between-wrapper"> |
|
|
|
|
<view class="header acea-row row-between-wrapper" v-if="storeCombination"> |
|
|
|
|
<view class="pictrue"> |
|
|
|
|
<image :src="storeCombination.image" /> |
|
|
|
|
</view> |
|
|
|
@ -15,20 +15,13 @@
|
|
|
|
|
<view v-if="pinkBool === -1" class="iconfont icon-pintuanshibai"></view> |
|
|
|
|
<view v-else-if="pinkBool === 1" class="iconfont icon-pintuanchenggong font-color-red"></view> |
|
|
|
|
</view> |
|
|
|
|
<view class="wrapper"> |
|
|
|
|
<view class="wrapper" v-if="pinkT"> |
|
|
|
|
<view class="title acea-row row-center-wrapper"> |
|
|
|
|
<view class="line"></view> |
|
|
|
|
<view class="name acea-row row-center-wrapper"> |
|
|
|
|
<text>剩余</text> |
|
|
|
|
<count-down |
|
|
|
|
:isDay="false" |
|
|
|
|
:tipText="false" |
|
|
|
|
:dayText="false" |
|
|
|
|
:hourText="' : '" |
|
|
|
|
:minuteText="' : '" |
|
|
|
|
:secondText="false" |
|
|
|
|
:datatime="pinkT.stopTime/1000" |
|
|
|
|
></count-down> |
|
|
|
|
<count-down :isDay="true" :tipText="'倒计时 '" :dayText="' 天 '" :hourText="' 时 '" :minuteText="' 分 '" |
|
|
|
|
:secondText="' 秒'" :datatime="pinkT.stopTime/1000"></count-down> |
|
|
|
|
<text>结束</text> |
|
|
|
|
</view> |
|
|
|
|
<view class="line"></view> |
|
|
|
@ -38,11 +31,10 @@
|
|
|
|
|
<text class="tips" v-else-if="pinkBool === -1">还差{{ count }}人,拼团失败</text> |
|
|
|
|
<text class="tips font-color-red" v-else-if="pinkBool === 0">拼团中,还差{{ count }}人拼团成功</text> |
|
|
|
|
</view> |
|
|
|
|
<view |
|
|
|
|
class="list acea-row row-middle" |
|
|
|
|
:class="[pinkBool === 1 || pinkBool === -1 ? 'result' : '',iShidden ? 'on' : '']" |
|
|
|
|
> |
|
|
|
|
<view class="pictrue"> |
|
|
|
|
|
|
|
|
|
<view class="list acea-row row-middle" |
|
|
|
|
:class="[pinkBool === 1 || pinkBool === -1 ? 'result' : '',iShidden ? 'on' : '']"> |
|
|
|
|
<view class="pictrue" v-if="pinkT"> |
|
|
|
|
<image :src="pinkT.avatar" /> |
|
|
|
|
</view> |
|
|
|
|
<view class="acea-row row-middle" v-if="pinkAll.length > 0"> |
|
|
|
@ -54,29 +46,17 @@
|
|
|
|
|
<image class="img-none" src="@/static/images/vacancy.png" /> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view |
|
|
|
|
v-if="(pinkBool === 1 || pinkBool === -1) && count > 9" |
|
|
|
|
class="lookAll acea-row row-center-wrapper" |
|
|
|
|
@click="lookAll" |
|
|
|
|
> |
|
|
|
|
<view v-if="(pinkBool === 1 || pinkBool === -1) && count > 9" class="lookAll acea-row row-center-wrapper" |
|
|
|
|
@click="lookAll"> |
|
|
|
|
{{ iShidden ? "收起" : "查看全部" }} |
|
|
|
|
<text class="iconfont" :class="iShidden ? 'icon-xiangshang' : 'icon-xiangxia'"></text> |
|
|
|
|
</view> |
|
|
|
|
<view |
|
|
|
|
class="teamBnt bg-color-red" |
|
|
|
|
v-if="userBool === 1 && isOk == 0 && pinkBool === 0" |
|
|
|
|
@click="goPoster" |
|
|
|
|
>邀请好友参团</view> |
|
|
|
|
<view |
|
|
|
|
class="teamBnt bg-color-red" |
|
|
|
|
v-else-if="userBool === 0 && pinkBool === 0 && count > 0" |
|
|
|
|
@click="pay" |
|
|
|
|
>我要参团</view> |
|
|
|
|
<view |
|
|
|
|
class="teamBnt bg-color-red" |
|
|
|
|
v-if="pinkBool === 1 || pinkBool === -1" |
|
|
|
|
@click="goDetail(storeCombination.id)" |
|
|
|
|
>再次开团</view> |
|
|
|
|
<view class="teamBnt bg-color-red" v-if="userBool === 1 && isOk == 0 && pinkBool === 0" @click="goPoster">邀请好友参团 |
|
|
|
|
</view> |
|
|
|
|
<view class="teamBnt bg-color-red" v-else-if="userBool === 0 && pinkBool === 0 && count > 0" @click="pay">我要参团 |
|
|
|
|
</view> |
|
|
|
|
<view class="teamBnt bg-color-red" v-if="pinkBool === 1 || pinkBool === -1" |
|
|
|
|
@click="goDetail(storeCombination.id)">再次开团</view> |
|
|
|
|
<view class="cancel" @click="getCombinationRemove" v-if="pinkBool === 0 && userBool === 1"> |
|
|
|
|
<text class="iconfont icon-guanbi3"></text> |
|
|
|
|
<text>取消开团</text> |
|
|
|
@ -89,27 +69,36 @@
|
|
|
|
|
</view> |
|
|
|
|
</template> |
|
|
|
|
<script> |
|
|
|
|
import CountDown from "@/components/CountDown"; |
|
|
|
|
import { getCombinationPink, getCombinationRemove } from "@/api/activity"; |
|
|
|
|
import { postCartAdd } from "@/api/store"; |
|
|
|
|
import { isWeixin, parseQuery, handleQrCode } from "@/utils/index"; |
|
|
|
|
import CountDown from "@/components/CountDown"; |
|
|
|
|
import { |
|
|
|
|
getCombinationPink, |
|
|
|
|
getCombinationRemove |
|
|
|
|
} from "@/api/activity"; |
|
|
|
|
import { |
|
|
|
|
postCartAdd |
|
|
|
|
} from "@/api/store"; |
|
|
|
|
import { |
|
|
|
|
isWeixin, |
|
|
|
|
parseQuery, |
|
|
|
|
handleQrCode |
|
|
|
|
} from "@/utils/index"; |
|
|
|
|
|
|
|
|
|
const NAME = "GroupRule"; |
|
|
|
|
export default { |
|
|
|
|
const NAME = "GroupRule"; |
|
|
|
|
export default { |
|
|
|
|
name: NAME, |
|
|
|
|
components: { |
|
|
|
|
CountDown |
|
|
|
|
}, |
|
|
|
|
props: {}, |
|
|
|
|
data: function() { |
|
|
|
|
data: function () { |
|
|
|
|
return { |
|
|
|
|
currentPinkOrder: "", //当前拼团订单 |
|
|
|
|
isOk: 0, //判断拼团是否完成 |
|
|
|
|
pinkBool: 0, //判断拼团是否成功|0=失败,1=成功 |
|
|
|
|
userBool: 0, //判断当前用户是否在团内|0=未在,1=在 |
|
|
|
|
pinkAll: [], //团员 |
|
|
|
|
pinkT: [], //团长信息 |
|
|
|
|
storeCombination: [], //拼团产品 |
|
|
|
|
pinkT: {}, //团长信息 |
|
|
|
|
storeCombination: {}, //拼团产品 |
|
|
|
|
pinkId: 0, |
|
|
|
|
uniqueId: "", |
|
|
|
|
count: 0, //拼团剩余人数 |
|
|
|
@ -125,7 +114,7 @@ export default {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
mounted: function() { |
|
|
|
|
mounted: function () { |
|
|
|
|
var that = this; |
|
|
|
|
let url = handleQrCode(); |
|
|
|
|
if (url) { |
|
|
|
@ -136,7 +125,7 @@ export default {
|
|
|
|
|
that.getCombinationPink(); |
|
|
|
|
}, |
|
|
|
|
methods: { |
|
|
|
|
pay: function() { |
|
|
|
|
pay: function () { |
|
|
|
|
var that = this; |
|
|
|
|
var data = {}; |
|
|
|
|
data.productId = that.storeCombination.productId; |
|
|
|
@ -156,14 +145,13 @@ export default {
|
|
|
|
|
}) |
|
|
|
|
.catch(err => { |
|
|
|
|
uni.showToast({ |
|
|
|
|
title: |
|
|
|
|
err.msg || err.response.data.msg || err.response.data.message, |
|
|
|
|
title: err.msg || err.response.data.msg || err.response.data.message, |
|
|
|
|
icon: "none", |
|
|
|
|
duration: 2000 |
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
goPoster: function() { |
|
|
|
|
goPoster: function () { |
|
|
|
|
var that = this; |
|
|
|
|
this.$yrouter.push({ |
|
|
|
|
path: "/pages/activity/Poster/index", |
|
|
|
@ -173,7 +161,7 @@ export default {
|
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
goOrder: function() { |
|
|
|
|
goOrder: function () { |
|
|
|
|
var that = this; |
|
|
|
|
this.$yrouter.push({ |
|
|
|
|
path: "/pages/order/OrderDetails/index", |
|
|
|
@ -183,13 +171,13 @@ export default {
|
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
//拼团列表 |
|
|
|
|
goList: function() { |
|
|
|
|
goList: function () { |
|
|
|
|
this.$yrouter.push({ |
|
|
|
|
path: "/pages/activity/GoodsGroup/index" |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
//拼团详情 |
|
|
|
|
goDetail: function(id) { |
|
|
|
|
goDetail: function (id) { |
|
|
|
|
this.$yrouter.push({ |
|
|
|
|
path: "/pages/activity/GroupDetails/index", |
|
|
|
|
query: { |
|
|
|
@ -198,7 +186,7 @@ export default {
|
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
//拼团信息 |
|
|
|
|
getCombinationPink: function() { |
|
|
|
|
getCombinationPink: function () { |
|
|
|
|
var that = this; |
|
|
|
|
getCombinationPink(that.pinkId).then(res => { |
|
|
|
|
that.$set(that, "storeCombination", res.data.storeCombination); |
|
|
|
@ -213,7 +201,7 @@ export default {
|
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
//拼团取消 |
|
|
|
|
getCombinationRemove: function() { |
|
|
|
|
getCombinationRemove: function () { |
|
|
|
|
var that = this; |
|
|
|
|
getCombinationRemove({ |
|
|
|
|
id: that.pinkId, |
|
|
|
@ -234,16 +222,16 @@ export default {
|
|
|
|
|
}); |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
lookAll: function() { |
|
|
|
|
lookAll: function () { |
|
|
|
|
this.iShidden = !this.iShidden; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<style lang="less"> |
|
|
|
|
.tips-warp { |
|
|
|
|
.tips-warp { |
|
|
|
|
text-align: center; |
|
|
|
|
margin-top: 20rpx; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
</style> |
|
|
|
|