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.
1123 lines
32 KiB
1123 lines
32 KiB
<template> |
|
<view class="bargain on"> |
|
<!-- 在header上加 on 为请求支援 --> |
|
<view class="header"> |
|
<cu-custom :isBack="true" :isCenter="true" > |
|
<block slot="backText"> |
|
<view class="backImg"> |
|
<image src="@/static/images/back-btn.png" mode=""></image> |
|
</view> |
|
</block> |
|
<block slot="content"> |
|
<view class="tab-title">砍价详情</view> |
|
</block> |
|
</cu-custom> |
|
</view> |
|
|
|
<view class="content-box"> |
|
<view class="banner"> |
|
<swiper @change="swiperChange"> |
|
<swiper-item> |
|
<image :src="goodsDetail.image" mode="aspectFill"></image> |
|
</swiper-item> |
|
</swiper> |
|
<view class="dots acea-row"> |
|
<view class="dot on"></view> |
|
<!-- <view :class="'dot ' + (swiperCurrent == index?'on':'')" v-for="(item, index) in goodsDetail.sliderImageArr" :key="index"></view> --> |
|
</view> |
|
</view> |
|
<view class="goods-info"> |
|
<view class="price-box acea-row"> |
|
<view class="">¥{{ goodsDetail.minPrice }}</view> |
|
<view class="productPrice">¥{{ goodsDetail.price }}</view> |
|
</view> |
|
<view class="goods-name">{{ goodsDetail.title }}</view> |
|
<view class="info-text">{{ goodsDetail.info }}</view> |
|
</view> |
|
<image class="link-icon left" src="@/static/images/link-icon.png" mode=""></image> |
|
<image class="link-icon right" src="@/static/images/link-icon.png" mode=""></image> |
|
<view class="bargain-state-box"> |
|
<view class="bargain-state"> |
|
<view class="icon"> |
|
<view class="iconfont icon-kanjia"></view> |
|
</view> |
|
<view class="">砍价中</view> |
|
</view> |
|
</view> |
|
</view> |
|
|
|
<view class="content-box" style="padding: 46rpx 42rpx 42rpx;"> |
|
<view class="bargain-info-box acea-row row-between"> |
|
<image class="rule-tishi" src="../../../static/images/icon-tishi.png" mode="" @click="showRule"></image> |
|
<view class="circle-info-box"> |
|
<view class="circle-info acea-row row-column row-center-wrapper"> |
|
<view class="price">¥<text>{{ bargainHelpCount.alreadyPrice || 0 }}</text></view> |
|
<view class="text">已减</view> |
|
</view> |
|
</view> |
|
<view class="right-info-box"> |
|
<view class="" v-if="bargainUserInfo && bargainUid != userInfo.uid"> |
|
<view class="">您的好友已砍{{ bargainHelpCount.alreadyPrice || 0 }}元</view> |
|
<view class="">助力ta再砍一刀!</view> |
|
</view> |
|
<view class="" v-if="bargainUid == userInfo.uid"> |
|
<view class="">{{bargainHelpCount.price === 0?'':'加油!'}}</view> |
|
<view v-if="bargainHelpCount.price === 0">恭喜您砍价成功!</view> |
|
<view v-else class="">还可再砍{{bargainHelpCount.price || 0}}元</view> |
|
</view> |
|
<view class="progress-box"> |
|
<view class="acea-row row-between"> |
|
<view class="">砍价进度</view> |
|
<view class="">{{bargainHelpCount.pricePercent + '%'}}</view> |
|
</view> |
|
<view class="progress"> |
|
<view class="on" :style="{ width: bargainHelpCount.pricePercent + '%' }"></view> |
|
</view> |
|
|
|
</view> |
|
</view> |
|
</view> |
|
<view class="btn-box"> |
|
<view class="acea-row row-center"> |
|
<!-- 参与砍价按钮 同一人--> |
|
<view v-if="participate" class="btn bg-color-red big" @click="goParticipate">立即发起砍价</view> |
|
<!-- 邀请好友按钮 --> |
|
<button class="btn bg-color-red big" open-type="share" v-if="inviteFriends">邀请好友砍一刀</button> |
|
<!-- <view class="btn bg-color-red big" v-if="inviteFriends" @click="goPoster">邀请好友砍一刀</view> --> |
|
|
|
<!-- 支付按钮 --> |
|
<view class="btn bg-color-red big" @click="goPay" v-if="pay">立即支付</view> |
|
</view> |
|
<view class="acea-row row-between"> |
|
<!-- 帮砍好友砍按钮 --> |
|
<view v-if="helpFriendsBargain" class="btn bg-color-red" @click="getBargainHelp">帮好友砍一刀</view> |
|
|
|
<!-- 发起砍价按钮 非同一人--> |
|
<view v-if="bargain" class="btn" @click="getBargainStart">我也要砍价</view> |
|
</view> |
|
</view> |
|
|
|
<view class="help-user-box"> |
|
<view class="acea-row row-between-wrapper"> |
|
<view class="title">助力好友记录</view> |
|
<view class="people">{{bargainHelpList.length || 0}}人已砍价</view> |
|
</view> |
|
<view class="list-box acea-row"> |
|
<view class="item acea-row row-column row-middle" v-for="(item, bargainHelpListIndex) in bargainHelpList" :key="bargainHelpListIndex"> |
|
<view class="img-box"> |
|
<image v-if="item.avatar" class="avatar" :src="item.avatar" mode=""></image> |
|
<view class="noAvatar acea-row row-middle row-center" v-else> |
|
<image src="@/static/images/yanjie-logo.png" mode="widthFix"></image> |
|
</view> |
|
</view> |
|
<view class="name line1" v-text="item.nickname || '微信用户'"></view> |
|
<view class="money">-¥{{ item.price }}</view> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
|
|
<!-- 当前登录的用户和url上携带的用户id不一致视为被邀请砍价 --> |
|
<!-- <view class="wrapper bargain-box on user" v-if="bargainUserInfo && bargainUid != userInfo.uid"> |
|
<view class="people"> |
|
{{ bargainShare.lookCount }}人查看 丨 {{ bargainShare.shareCount }}人分享 丨 {{ bargainShare.userCount }}人参与 |
|
</view> |
|
|
|
帮助砍价、帮砍成功: |
|
|
|
<view class="pictxt acea-row row-center-wrapper"> |
|
<div class="bargain-header"> |
|
<view class="pictrue"><image :src="bargainUserInfo.avatar" /></view> |
|
<view class="text"> |
|
{{ bargainUserInfo.nickname }} |
|
<text>邀请您帮忙砍价</text> |
|
</view> |
|
</div> |
|
</view> |
|
</view> --> |
|
<!-- <view class="wrapper bargain-box time on"> |
|
<div class="pictxt"> |
|
<count-down :isDay="true" :tipText="'倒计时 '" :dayText="' 天 '" :hourText="' 时 '" :minuteText="' 分 '" :secondText="' 秒'" :datatime="goodsDetail.stopTime"></count-down> |
|
</div> |
|
</view> --> |
|
<!-- <view class="wrapper bargain-box bargain-product"> |
|
<view class="pictxt acea-row row-between-wrapper" @click="openAlone"> |
|
<view class="pictrue"> |
|
<image :src="goodsDetail.image" /> |
|
<view class="bargain_view"> |
|
查看商品 |
|
<view class="iconfont icon-jiantou iconfonts"></view> |
|
</view> |
|
</view> |
|
<view class="text acea-row row-column-around"> |
|
<view class="line2" v-text="goodsDetail.title"></view> |
|
<view class="money font-color-red"> |
|
已砍至: ¥ |
|
<text class="num" v-text="bargainHelpCount.remainingPrice"></text> |
|
</view> |
|
<view class="acea-row row-middle"> |
|
<view class="successNum" v-text="`原价:${goodsDetail.price || 0}`"></view> |
|
<view class="successNum" v-text="`已有${bargainSumCount || 0}人砍价成功`"></view> |
|
</view> |
|
</view> |
|
</view> |
|
|
|
// 砍价进度条 |
|
<view class="cu-progress acea-row row-middle round margin-top"> |
|
<view class="acea-row row-middle bg-red" :style="{ width: bargainHelpCount.pricePercent + '%' }"></view> |
|
</view> |
|
|
|
// 砍价进度条下的金额 |
|
<view class="balance acea-row row-between-wrapper"> |
|
<view v-text="`已砍${bargainHelpCount.alreadyPrice || 0}元`"></view> |
|
<view v-if="bargainHelpCount.price === 0">砍价成功</view> |
|
<view v-else v-text="`还剩${bargainHelpCount.price || 0}元`"></view> |
|
</view> |
|
|
|
// 砍价成功: |
|
|
|
// surplusPrice 砍价剩余金额为0 |
|
// bargainUid 砍价人为发起砍价用户 |
|
// userBargainStatus 砍价状态为 |
|
|
|
<view class="bargainSuccess" v-if="pay"> |
|
<span class="iconfont icon-xiaolian"></span> |
|
恭喜您砍价成功,快去支付吧~ |
|
</view> |
|
|
|
// 参与砍价按钮 同一人 |
|
<view v-if="participate" class="bargainBnt" @click="goParticipate">立即发起砍价</view> |
|
|
|
// 邀请好友按钮 |
|
<view v-if="inviteFriends" class="bargainBnt" @click="goPoster">邀请好友帮砍价</view> |
|
|
|
// 帮砍好友砍按钮 |
|
<view v-if="helpFriendsBargain" class="bargainBnt" @click="getBargainHelp">帮好友砍一刀</view> |
|
|
|
// 发起砍价按钮 非同一人 |
|
<view v-if="bargain" class="bargainBnt" @click="getBargainStart">我也要砍价</view> |
|
|
|
// 支付按钮 |
|
<view class="bargainBnt" @click="goPay" v-if="pay">立即支付</view> |
|
|
|
<view class="bargainBnt on" @click="goList">抢更多商品</view> |
|
<view class="tip"> |
|
已有 |
|
<span class="font-color-red" v-text="bargainHelpCount.count"></span> |
|
位好友成功帮您砍价 |
|
</view> |
|
<view class="lock"></view> |
|
</view> --> |
|
|
|
<!-- <view class="bargainGang bargain-box"> |
|
<view class="title font-color-red acea-row row-center-wrapper"> |
|
<view class="pictrue"><image :src="`${$VUE_APP_RESOURCES_URL}/images/left.png`" /></view> |
|
<view class="titleCon">砍价帮</view> |
|
<view class="pictrue on"><image :src="`${$VUE_APP_RESOURCES_URL}/images/left.png`" /></view> |
|
</view> |
|
<view class="list"> |
|
<view class="item acea-row row-between-wrapper" v-for="(item, bargainHelpListIndex) in bargainHelpList" :key="bargainHelpListIndex"> |
|
<view class="pictxt acea-row row-between-wrapper"> |
|
<view class="pictrue"><image :src="item.avatar" /></view> |
|
<view class="text"> |
|
<view class="name line1" v-text="item.nickname"></view> |
|
<view class="line1" v-text="item.add_time"></view> |
|
</view> |
|
</view> |
|
<view class="money font-color-red"> |
|
<text class="iconfont icon-kanjia"></text> |
|
砍掉{{ item.price }}元 |
|
</view> |
|
</view> |
|
</view> |
|
<view class="load font-color-red" v-if="!helpListStatus" @click="getBargainHelpList">点击加载更多</view> |
|
<view class="lock"></view> |
|
</view> --> |
|
<!-- <view class="goodsDetails bargain-box"> |
|
<view class="title font-color-red acea-row row-center-wrapper"> |
|
<view class="pictrue"><image :src="`${$VUE_APP_RESOURCES_URL}/images/left.png`" /></view> |
|
<view class="titleCon">商品详情</view> |
|
<view class="pictrue on"><image :src="`${$VUE_APP_RESOURCES_URL}/images/left.png`" /></view> |
|
</view> |
|
<view class="conter" v-html="goodsDetail.description"></view> |
|
<view class="lock"></view> |
|
</view> --> |
|
<!-- <view class="goodsDetails bargain-box"> |
|
<view class="title font-color-red acea-row row-center-wrapper"> |
|
<view class="pictrue"><image :src="`${$VUE_APP_RESOURCES_URL}/images/left.png`" /></view> |
|
<view class="titleCon">活动规则</view> |
|
<view class="pictrue on"><image :src="`${$VUE_APP_RESOURCES_URL}/images/left.png`" /></view> |
|
</view> |
|
<view class="conter" v-html="goodsDetail.rule"></view> |
|
</view> --> |
|
|
|
<view @touchmove.stop.prevent class="bargainTip" :class="active === true ? 'on' : ''"> |
|
<view class="cutOff" v-if="bargainUid === userInfo.uid"> |
|
您已砍掉 |
|
<text class="font-color-red" v-text="bargainHelpPrice"></text> |
|
元,听说分享次数越多砍价成功的机会越大哦! |
|
</view> |
|
<view class="cutOff on" v-else> |
|
<view class="help font-color-red" v-text="'成功帮砍' + bargainHelpPrice + '元'"></view> |
|
,您也可以砍价低价拿哦,快去挑选心仪的商品吧~ |
|
</view> |
|
<button class="tipBnt" open-type="share" v-if="bargainUid === userInfo.uid">邀请好友帮砍价</button> |
|
<!-- <view class="tipBnt" @click="goPoster" v-if="bargainUid === userInfo.uid">邀请好友帮砍价</view> --> |
|
<view class="tipBnt" @click="getBargainStart" v-else>我也要参与</view> |
|
</view> |
|
|
|
<view class="mask" @touchmove.stop.prevent :hidden="active === false && isShowRule === false" @click="close"> |
|
<view class="bargainTip" style="padding-bottom: 0;" :class="isShowRule === true ? 'on' : ''"> |
|
<view class="rule-content" v-html="goodsDetail.rule"></view> |
|
</view> |
|
</view> |
|
</view> |
|
</template> |
|
<script> |
|
import CountDown from '@/components/CountDown' |
|
import { getBargainDetail, getBargainShare, getBargainStart, getBargainHelp, getBargainHelpPrice, getBargainHelpList, getBargainHelpCount, getBargainStartUser } from '@/api/activity' |
|
import { postCartAdd } from '@/api/store' |
|
import { mapGetters } from 'vuex' |
|
import {} from '@/libs/wechat' |
|
import { isWeixin, parseQuery, handleQrCode } from '@/utils/index' |
|
|
|
const NAME = 'DargainDetails' |
|
|
|
export default { |
|
name: 'DargainDetails', |
|
components: { |
|
CountDown, |
|
}, |
|
props: {}, |
|
data: function () { |
|
return { |
|
bargainId: 0, //砍价编号 |
|
bargainSumCount: 0, //砍价成功人数 |
|
activeMsg: '', |
|
active: false, |
|
bargainHelpPrice: 0, //砍掉金额 |
|
bargainHelpList: [], |
|
helpListStatus: false, //砍价列表是否获取完成 false 未完成 true 完成 |
|
page: 1, //页码 |
|
limit: 6, //数量 |
|
pricePercent: 0, //砍价进度条 |
|
bargainShare: {}, // 砍价分享的消息 |
|
bargainHelpCount: { |
|
pricePercent: 0 |
|
}, // 砍价的信息数据 |
|
goodsDetail: { |
|
minPrice: '', |
|
price: '', |
|
}, // 商品的详情 |
|
bargainUserInfo: [], // 开启砍价用户信息 |
|
bargainUid: 0, // 参与砍价的用户 |
|
pay: false, // 支付 |
|
bargain: false, // 发起砍价 |
|
participate: false, // 参与砍价 |
|
inviteFriends: false, // 邀请好友 |
|
helpFriendsBargain: false, // 帮好友砍 |
|
bargainSuccess: false, // 帮好友砍价成功 |
|
mainBargainSuccess: false, // 砍价成功 |
|
isShowRule: false, // 显示砍价规则弹框 |
|
} |
|
}, |
|
computed: mapGetters(['userInfo', 'isLogin']), |
|
mounted: function () { |
|
this.mountedStart() |
|
}, |
|
methods: { |
|
// 开始处理砍价逻辑 |
|
mountedStart: function () { |
|
var that = this |
|
let url = handleQrCode() |
|
// bargainId 砍价商品id |
|
// bargainUid 发起砍价人 |
|
if (url) { |
|
// 通过二维码进来 |
|
that.bargainId = url.bargainId |
|
that.bargainUid = url.partake |
|
} else { |
|
// 正常途径进来 |
|
that.bargainId = that.$yroute.query.id |
|
that.bargainUid = that.$yroute.query.partake |
|
} |
|
if (this.bargainUid == 0 || !this.bargainUid) { |
|
// url未携带用户uid,填上登录用户uid,跳转 |
|
that.bargainUid = that.userInfo.uid |
|
} |
|
// 获取商品详情 |
|
that.getBargainDetail() |
|
// 砍价数据统计 |
|
that.getBargainShare(0) |
|
if (that.bargainUid !== that.userInfo.uid) { |
|
that.getBargainStartUser() |
|
} |
|
that.getBargainHelpList(); |
|
}, |
|
// 发起砍价 |
|
goParticipate() { |
|
//发起人和当前用户为同一人 |
|
if (this.bargainUid === this.userInfo.uid) { |
|
// 变更为当前用户砍价页面 |
|
this.getBargainStart() |
|
} else { |
|
// 发起人与当前用户非同一人,变更为发起人的砍价页面 |
|
this.getBargainStartUser() |
|
} |
|
this.getBargainHelpCount() |
|
}, |
|
// 查看商品 |
|
openAlone: function () { |
|
this.$yrouter.push({ |
|
path: '/pages/shop/GoodsCon/index', |
|
query: { |
|
id: this.goodsDetail.productId, |
|
}, |
|
}) |
|
}, |
|
// 砍价完成,去支付 |
|
goPay: function () { |
|
var data = {} |
|
var that = this |
|
data.productId = that.goodsDetail.productId |
|
data.cartNum = that.goodsDetail.num |
|
data.uniqueId = '' |
|
data.bargainId = that.bargainId |
|
data.new = 1 |
|
postCartAdd(data) |
|
.then(res => { |
|
that.$yrouter.push({ |
|
path: '/pages/order/OrderSubmission/index', |
|
query: { |
|
id: res.data.cartId, |
|
}, |
|
}) |
|
}) |
|
.catch(err => { |
|
uni.showToast({ |
|
title: err.msg || err.response.data.msg || err.response.data.message, |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
}) |
|
}, |
|
// 生成海报 |
|
goPoster: function () { |
|
var that = this |
|
that.getBargainShare(that.bargainId) |
|
this.$yrouter.push({ |
|
path: '/pages/activity/Poster/index', |
|
query: { |
|
id: that.bargainId, |
|
type: 2, |
|
}, |
|
}) |
|
}, |
|
// 跳转砍价商品列表 |
|
goList: function () { |
|
this.$yrouter.push({ |
|
path: '/pages/activity/GoodsBargain/index', |
|
}) |
|
}, |
|
//砍价分享 |
|
//bargainId 0 获取 查看人数 分享人数 参与人数 |
|
//bargainId 砍价产品编号 添加分享次数 获取 查看人数 分享人数 参与人数 |
|
getBargainShare: function (bargainId) { |
|
var that = this |
|
getBargainShare({ |
|
bargainId: bargainId, |
|
}).then(res => { |
|
that.bargainShare = res.data |
|
}) |
|
}, |
|
// 获取产品详情 |
|
getBargainDetail: function () { |
|
var that = this |
|
uni.showLoading({ |
|
title: '加载中', |
|
mask: true, |
|
}) |
|
getBargainDetail(that.bargainId) |
|
.then(res => { |
|
uni.hideLoading() |
|
that.goodsDetail = res.data.bargain |
|
console.log(that.goodsDetail) |
|
that.goodsDetail.description = that.goodsDetail.description.replace(/\<img/gi, '<img style="max-width:100%;height:auto;"') |
|
that.goodsDetail.rule = that.goodsDetail.rule.replace(/\<img/gi, '<img style="max-width:100%;height:auto;"') |
|
that.getBargainHelpCount() |
|
}) |
|
.catch(res => { |
|
uni.hideLoading() |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
}) |
|
}, |
|
// 开启砍价-发起人与当前用户非同一人 |
|
getBargainStart: function () { |
|
var that = this |
|
getBargainStart({ |
|
bargainId: that.bargainId, |
|
}) |
|
.then(() => { |
|
that.bargainUid = that.userInfo.uid |
|
that.getBargainHelp() |
|
that.getBargainHelpCount() |
|
}) |
|
.catch(res => { |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
}) |
|
}, |
|
// 参与砍价 |
|
getBargainHelp: function () { |
|
var that = this |
|
if (this.bargainHelpCount.price === 0 && that.bargainUid !== that.userInfo.uid) { |
|
return uni.showToast({ |
|
title: '好友已经砍价成功', |
|
icon: 'success', |
|
duration: 2000, |
|
}) |
|
} |
|
var data = { |
|
bargainId: that.bargainId, |
|
bargainUserUid: that.bargainUid, |
|
} |
|
getBargainHelp(data) |
|
.then(res => { |
|
that.activeMsg = res.data.status |
|
if (res.data.status === 'SUCCESSFUL' && that.bargainUid !== that.userInfo.uid) { |
|
uni.showToast({ |
|
title: '您已经砍过了', |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
return |
|
} |
|
that.helpListStatus = false |
|
that.page = 1 |
|
that.bargainHelpList = [] |
|
that.getBargainHelpPrice() |
|
}) |
|
.catch(res => { |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
}) |
|
}, |
|
//获取砍掉的金额 |
|
getBargainHelpPrice: function () { |
|
var that = this |
|
getBargainHelpPrice({ |
|
bargainId: that.bargainId, |
|
bargainUserUid: that.bargainUid, |
|
}) |
|
.then(res => { |
|
that.bargainHelpPrice = res.data.price |
|
that.getBargainHelpCount() |
|
that.getBargainHelpList() |
|
switch (that.activeMsg) { |
|
case 'SUCCESSFUL': |
|
break |
|
case 'SUCCESS': |
|
that.active = true |
|
break |
|
} |
|
}) |
|
.catch(res => { |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
}) |
|
}, |
|
// 砍价帮助列表 |
|
getBargainHelpList: function () { |
|
var that = this |
|
if (that.helpListStatus === true) return |
|
getBargainHelpList({ |
|
bargainId: that.bargainId, |
|
bargainUserUid: that.bargainUid, |
|
page: that.page, |
|
limit: that.limit, |
|
}) |
|
.then(res => { |
|
that.helpListStatus = res.data.length < that.limit |
|
if (that.page == 1) { |
|
that.bargainHelpList = [] |
|
} |
|
that.page++ |
|
if (res.data) { |
|
that.bargainHelpList.push.apply(that.bargainHelpList, res.data) |
|
} |
|
}) |
|
.catch(err => { |
|
if (!err.msg) { |
|
return |
|
} |
|
uni.showToast({ |
|
title: err.msg || err.response.data.msg || err.response.data.message, |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
}) |
|
}, |
|
// 砍价 砍价帮总人数、剩余金额、进度条、已经砍掉的价格 |
|
getBargainHelpCount: function () { |
|
getBargainHelpCount({ |
|
bargainId: this.bargainId, |
|
bargainUserUid: this.bargainUid, |
|
}) |
|
.then(res => { |
|
// 剩余砍价金额,显示已砍至¥** 使用 = 商品价格 - 已经砍掉的金额 |
|
let remainingPrice = (this.goodsDetail.price - res.data.alreadyPrice).toFixed(2) |
|
this.bargainHelpCount = { |
|
...res.data, |
|
remainingPrice, |
|
} |
|
this.handleButtonStatus() |
|
}) |
|
.catch(err => { |
|
if (!err.msg) { |
|
return |
|
} |
|
uni.showToast({ |
|
title: err.msg || err.response.data.msg || err.response.data.message, |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
}) |
|
}, |
|
// 判断是否可以支付 |
|
handleButtonStatus() { |
|
// 砍价按钮分为 |
|
// 1.参与砍价 ==> 发起人与当前用户为同一人 && 未参与 |
|
if (this.bargainUid === this.userInfo.uid && this.bargainHelpCount.status == 0) { |
|
this.participate = true |
|
} else { |
|
this.participate = false |
|
} |
|
|
|
// 2.邀请好友 ==> 发起人与当前用户同一人 && 已参与未过期 && 剩余金额>0 |
|
if (this.bargainUid === this.userInfo.uid && this.bargainHelpCount.status == 1 && this.bargainHelpCount.price > 0) { |
|
this.inviteFriends = true |
|
} else { |
|
this.inviteFriends = false |
|
} |
|
|
|
// 3.帮好友砍价 ==> 发起人与当前用户非一人 && 未参与未过期 && 剩余金额>0 && 为砍价 |
|
if ( |
|
this.bargainUid != this.userInfo.uid && |
|
this.bargainHelpCount.status == 1 && |
|
// this.bargainHelpCount.userBargainStatus && |
|
this.bargainHelpCount.price > 0 |
|
) { |
|
this.helpFriendsBargain = true |
|
} else { |
|
this.helpFriendsBargain = false |
|
} |
|
|
|
// 4.支付 ==> 发起人与当前用户同一人 && 已参与未过期 && 剩余金额<=0 |
|
if (this.bargainUid === this.userInfo.uid && this.bargainHelpCount.status == 1 && this.bargainHelpCount.price <= 0) { |
|
this.pay = true |
|
} else { |
|
this.pay = false |
|
} |
|
|
|
// 5.砍价人发起新的砍价 ==> 发起人与当前用户非一人 && 未参与 |
|
if (this.bargainUid != this.userInfo.uid) { |
|
this.bargain = true |
|
} else { |
|
this.bargain = false |
|
} |
|
|
|
// 砍价弹窗 |
|
// 1.发起人砍价成功 ==> 发起人与当前用户同一人 && 已参与未过期 |
|
// 2.砍价人砍价成功 ==> 发起人与当前用户非一人 && 已参与未过期 |
|
// 3.已砍价 ==> 已参与 && 砍价状态为 true |
|
}, |
|
// 获取开启砍价用户信息 |
|
// 参与砍价,为同一人发起砍价后 |
|
getBargainStartUser: function () { |
|
var that = this |
|
getBargainStartUser({ |
|
bargainId: that.bargainId, |
|
bargainUserUid: that.bargainUid, |
|
}) |
|
.then(res => { |
|
that.bargainUserInfo = res.data |
|
// that.getBargainHelpList() |
|
}) |
|
.catch(res => { |
|
uni.showToast({ |
|
title: res.msg, |
|
icon: 'none', |
|
duration: 2000, |
|
}) |
|
}) |
|
}, |
|
// 关闭弹窗 |
|
close: function () { |
|
this.active = false; |
|
this.isShowRule = false; |
|
}, |
|
showRule() { |
|
// console.log('asdqwer') |
|
// this.active = true; |
|
this.isShowRule = true; |
|
}, |
|
// 设置微信分享 |
|
// onShareAppMessage: function () { |
|
// return { |
|
// title: this.storeInfo.title, |
|
// imageUrl: this.storeInfo.image, |
|
// path: 'pages/activity/DargainDetails/index?id=' + this.storeInfo.id + '&spread=' + uni.getStorageSync('uid'), |
|
// success(res) { |
|
// uni.showToast({ |
|
// title: '分享成功', |
|
// }) |
|
// }, |
|
// fail(res) { |
|
// uni.showToast({ |
|
// title: '分享失败', |
|
// icon: 'none', |
|
// }) |
|
// }, |
|
// } |
|
// }, |
|
}, |
|
onShareAppMessage() { |
|
return { |
|
title: this.goodsDetail.title, |
|
imageUrl: this.goodsDetail.image, |
|
path: `/pages/activity/DargainDetails/index?id=${this.bargainId}&partake=${this.bargainUid}`, |
|
} |
|
}, |
|
} |
|
</script> |
|
|
|
<style lang="less" scoped> |
|
.header { |
|
.tab-title { |
|
font-size: 32rpx; |
|
font-family: PingFang SC; |
|
font-weight: 600; |
|
color: #2DB5AE; |
|
line-height: 42rpx; |
|
} |
|
.backImg { |
|
width: 88rpx; |
|
height: 62rpx; |
|
padding-left: 26rpx; |
|
image { |
|
width: 100%; |
|
height: 100%; |
|
} |
|
} |
|
} |
|
|
|
.content-box { |
|
margin: 20rpx 32rpx; |
|
width: 686rpx; |
|
// height: 317px; |
|
background: #F5F6F8; |
|
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0,0,0,0.15); |
|
border-radius: 16rpx; |
|
position: relative; |
|
.banner { |
|
width: 100%; |
|
height: 428rpx; |
|
border-radius: 16rpx 16rpx 0rpx 0rpx; |
|
position: relative; |
|
swiper { |
|
width: 100%; |
|
height: 100%; |
|
border-radius: 16rpx 16rpx 0rpx 0rpx; |
|
swiper-item { |
|
border-radius: 16rpx 16rpx 0rpx 0rpx; |
|
image { |
|
width: 100%; |
|
height: 100%; |
|
border-radius: 16rpx 16rpx 0rpx 0rpx; |
|
} |
|
} |
|
} |
|
.dots { |
|
position: absolute; |
|
bottom: 16rpx; |
|
left: 50%; |
|
transform: translateX(-50%); |
|
.dot { |
|
margin: 0rpx 8rpx; |
|
width: 8rpx; |
|
height: 8rpx; |
|
background: #FFFFFF; |
|
border-radius: 50%; |
|
} |
|
.on { |
|
width: 34rpx; |
|
background: #2DB5AE; |
|
border-radius: 6rpx; |
|
} |
|
} |
|
} |
|
.link-icon { |
|
width: 32rpx; |
|
height: 80rpx; |
|
position: absolute; |
|
bottom: -54rpx; |
|
z-index: 2; |
|
} |
|
.left { |
|
left: 54rpx; |
|
} |
|
.right { |
|
right: 54rpx; |
|
} |
|
} |
|
|
|
.content-box .goods-info { |
|
padding: 24rpx 24rpx 42rpx; |
|
.price-box { |
|
font-size: 48rpx; |
|
font-family: Futura; |
|
font-weight: 600; |
|
color: #3A3A3C; |
|
line-height: 64rpx; |
|
.productPrice { |
|
font-size: 30rpx; |
|
color: #999999; |
|
line-height: 40rpx; |
|
padding-left: 16rpx; |
|
padding-top: 18rpx; |
|
} |
|
} |
|
.goods-name { |
|
font-size: 34rpx; |
|
font-family: SourceHanSansSCVF; |
|
font-weight: 600; |
|
color: #3A3A3C; |
|
line-height: 50rpx; |
|
} |
|
.info-text { |
|
font-size: 20rpx; |
|
font-family: SourceHanSansSCVF; |
|
font-weight: 600; |
|
color: #999999; |
|
line-height: 28rpx; |
|
} |
|
} |
|
|
|
.content-box .bargain-state-box { |
|
position: absolute; |
|
top: 0; |
|
right: 24rpx; |
|
width: 126rpx; |
|
// width: 112rpx; |
|
height: 88rpx; |
|
overflow: hidden; |
|
padding: 0rpx 20rpx; |
|
.bargain-state { |
|
width: 100%; |
|
// width: 72rpx; |
|
height: 88rpx; |
|
border-radius: 0rpx 0rpx 20rpx 20rpx; |
|
background: #2DB5AE; |
|
font-size: 18rpx; |
|
font-family: PingFang SC; |
|
font-weight: 600; |
|
color: #F5F6F8; |
|
line-height: 18rpx; |
|
text-align: center; |
|
padding-top: 2rpx; |
|
.iconfont.icon-kanjia { |
|
font-size: 46rpx; |
|
color: #F5F6F8; |
|
font-weight: 500; |
|
line-height: 46rpx; |
|
} |
|
.icon { |
|
width: 46rpx; |
|
height: 46rpx; |
|
margin: 10rpx auto 0rpx; |
|
} |
|
} |
|
.bargain-state::before { |
|
width: 40rpx; |
|
height: 40rpx; |
|
content: ""; |
|
position: absolute; |
|
top: 0rpx; |
|
left: -20rpx; |
|
border-radius: 20rpx; |
|
box-shadow: 20rpx -20rpx 0rpx #2DB5AE; |
|
} |
|
.bargain-state::after { |
|
width: 40rpx; |
|
height: 40rpx; |
|
content: ""; |
|
position: absolute; |
|
top: 0rpx; |
|
right: -20rpx; |
|
border-radius: 20rpx; |
|
box-shadow: -20rpx -20rpx 0rpx #2DB5AE; |
|
} |
|
} |
|
|
|
.content-box { |
|
.bargain-info-box { |
|
position: relative; |
|
.rule-tishi { |
|
width: 42rpx; |
|
height: 42rpx; |
|
position: absolute; |
|
top: 0; |
|
right: 0; |
|
z-index: 2; |
|
} |
|
.circle-info-box { |
|
width: 162rpx; |
|
height: 162rpx; |
|
box-shadow: 0rpx 0rpx 20rpx 6rpx rgba(0,0,0,0.08); |
|
padding: 4rpx; |
|
background: linear-gradient(135deg, rgba(27, 141, 204, 1), rgba(57, 211, 150, 1)); |
|
border-radius: 50%; |
|
.circle-info { |
|
width: 100%; |
|
height: 100%; |
|
background: linear-gradient(135deg, #39D396 0%, #2DB7AD 43%, #1B8DCC 100%); |
|
border-radius: 50%; |
|
.price { |
|
font-size: 42rpx; |
|
// font-size: 60rpx; |
|
font-family: Futura; |
|
font-weight: 500; |
|
color: #F5F6F8; |
|
line-height: 64rpx; |
|
} |
|
.text { |
|
width: 124rpx; |
|
border-top: 2rpx solid #F5F6F8; |
|
font-size: 24rpx; |
|
font-family: PingFang SC; |
|
font-weight: 500; |
|
color: #F5F6F8; |
|
line-height: 32rpx; |
|
text-align: center; |
|
} |
|
} |
|
} |
|
|
|
.right-info-box { |
|
padding-top: 6rpx; |
|
width: 416rpx; |
|
font-size: 34rpx; |
|
font-family: PingFang SC; |
|
font-weight: 600; |
|
color: #3A3A3C; |
|
line-height: 48rpx; |
|
.progress-box { |
|
padding-top: 10rpx; |
|
width: 100%; |
|
font-size: 20rpx; |
|
font-family: PingFang SC; |
|
font-weight: 500; |
|
color: #2DB5AE; |
|
line-height: 26rpx; |
|
.progress { |
|
width: 100%; |
|
height: 12rpx; |
|
margin-top: 12rpx; |
|
background: #D8D8D8; |
|
border-radius: 6rpx; |
|
overflow: hidden; |
|
.on { |
|
height: 100%; |
|
background: #2DB5AE; |
|
border-radius: 6rpx; |
|
transition: width 0.6s ease; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
|
|
.btn-box { |
|
padding-top: 28rpx; |
|
.btn { |
|
width: 290rpx; |
|
height: 70rpx; |
|
background: #98DAD7; |
|
// background: #2DB5AE; |
|
border-radius: 16rpx; |
|
font-size: 26rpx; |
|
font-family: PingFang SC; |
|
font-weight: 600; |
|
color: #F5F6F8; |
|
line-height: 70rpx; |
|
text-align: center; |
|
} |
|
.big { |
|
width: 100%; |
|
} |
|
} |
|
} |
|
|
|
.content-box .help-user-box { |
|
padding-top: 26rpx; |
|
.title { |
|
font-size: 26rpx; |
|
font-family: PingFang SC; |
|
font-weight: 600; |
|
color: #3A3A3C; |
|
line-height: 38rpx; |
|
} |
|
.people { |
|
font-size: 20rpx; |
|
font-family: PingFang SC; |
|
font-weight: 500; |
|
color: #2DB5AE; |
|
line-height: 26rpx; |
|
} |
|
.list-box { |
|
padding: 0rpx 14rpx 24rpx; |
|
width: 600rpx; |
|
min-height: 204rpx; |
|
margin-top: 10rpx; |
|
box-shadow: inset 0rpx 0rpx 10rpx 0rpx rgba(0,0,0,0.15); |
|
border-radius: 16rpx; |
|
.item { |
|
width: 84rpx; |
|
padding-top: 24rpx; |
|
margin: 0rpx 14rpx; |
|
.img-box { |
|
width: 84rpx; |
|
height: 84rpx; |
|
box-shadow: 0rpx 0rpx 20rpx 6rpx rgba(0,0,0,0.08); |
|
padding: 4rpx; |
|
background: linear-gradient(135deg, rgba(27, 141, 204, 1), rgba(57, 211, 150, 1)); |
|
border-radius: 50%; |
|
.avatar { |
|
width: 100%; |
|
height: 100%; |
|
border-radius: 50%; |
|
background-color: #FFFFFF; |
|
} |
|
.noAvatar { |
|
width: 100%; |
|
height: 100%; |
|
border-radius: 50%; |
|
background-color: #FFFFFF; |
|
padding-left: 6rpx; |
|
padding-right: 5rpx; |
|
image { |
|
width: 100%; |
|
} |
|
} |
|
} |
|
.name { |
|
font-size: 20rpx; |
|
font-family: PingFang SC; |
|
font-weight: 500; |
|
color: #3A3A3C; |
|
line-height: 26rpx; |
|
padding: 14rpx 0rpx 8rpx; |
|
text-align: center; |
|
} |
|
.money { |
|
font-size: 24rpx; |
|
font-family: PingFang SC; |
|
font-weight: 600; |
|
color: #3A3A3C; |
|
line-height: 32rpx; |
|
text-align: center; |
|
} |
|
} |
|
} |
|
} |
|
|
|
.bargainTip { |
|
.rule-content { |
|
padding: 24rpx; |
|
min-height: 300rpx; |
|
max-height: 600rpx; |
|
overflow-y: scroll; |
|
font-size: 26rpx; |
|
font-weight: 600; |
|
color: #3A3A3C; |
|
line-height: 38rpx; |
|
} |
|
} |
|
|
|
|
|
.bargain { |
|
&.on { |
|
.bargain-box { |
|
background: #fff; |
|
width: auto; |
|
margin: 0 20rpx; |
|
border: 0; |
|
} |
|
|
|
// .header { |
|
// height: auto; |
|
// text-align: left; |
|
|
|
// .time { |
|
// text-align: left; |
|
// font-size: 24rpx; |
|
|
|
// margin: 0; |
|
// padding: 0; |
|
// padding: 20rpx; |
|
// width: auto; |
|
// height: auto; |
|
// } |
|
// } |
|
} |
|
} |
|
|
|
page { |
|
background-color: #f5f5f5 !important; |
|
} |
|
|
|
.bargainBnt_hui { |
|
font-size: 0.3 * 100rpx; |
|
font-weight: bold; |
|
color: #fff; |
|
width: 6 * 100rpx; |
|
height: 0.8 * 100rpx; |
|
border-radius: 0.4 * 100rpx; |
|
background: #bbb; |
|
text-align: center; |
|
line-height: 0.8 * 100rpx; |
|
margin-top: 0.32 * 100rpx; |
|
} |
|
|
|
.bargain_view { |
|
left: 0; |
|
right: 0; |
|
height: 0.48 * 100rpx; |
|
background: rgba(0, 0, 0, 0.5); |
|
opacity: 1; |
|
border-radius: 0 0 0.06 * 100rpx 0.06 * 100rpx; |
|
position: absolute; |
|
bottom: 0; |
|
font-size: 0.22 * 100rpx; |
|
color: #fff; |
|
text-align: center; |
|
line-height: 0.48 * 100rpx; |
|
} |
|
|
|
.iconfonts { |
|
font-size: 0.22 * 100rpx; |
|
} |
|
</style>
|
|
|