@ -9,9 +9,7 @@
<!-- 帮助砍价、帮砍成功:-->
<view class="pictxt acea-row row-center-wrapper ">
<div class="bargain-header">
<view class="pictrue">
<image :src="bargainUserInfo.avatar" />
</view>
<view class="pictrue"><image :src="bargainUserInfo.avatar" /></view>
<view class="text">
{{ bargainUserInfo.nickname }}
<text>邀请您帮忙砍价</text>
@ -21,8 +19,15 @@
</view>
<view class="wrapper bargain-box time on">
<div class="pictxt ">
<count-down :isDay="true" :tipText="'倒计时 '" :dayText="' 天 '" :hourText="' 时 '" :minuteText="' 分 '"
:secondText="' 秒'" :datatime="goodsDetail.stopTime/1000"></count-down>
<count-down
:isDay="true"
:tipText="'倒计时 '"
:dayText="' 天 '"
:hourText="' 时 '"
:minuteText="' 分 '"
:secondText="' 秒'"
:datatime="goodsDetail.stopTime"
></count-down>
</div>
</view>
<view class="wrapper bargain-box bargain-product">
@ -66,7 +71,8 @@
userBargainStatus 砍价状态为
-->
<view class="bargainSuccess" v-if="pay">
<span class="iconfont icon-xiaolian"></span>恭喜您砍价成功,快去支付吧~
<span class="iconfont icon-xiaolian"></span>
恭喜您砍价成功,快去支付吧~
</view>
<!-- 参与砍价按钮 同一人-->
@ -85,26 +91,23 @@
<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="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="@/static/images/left.png" />
</view>
<view class="pictrue"><image src="@/static/images/left.png" /></view>
<view class="titleCon">砍价帮</view>
<view class="pictrue on">
<image src="@/static/images/left.png" />
</view>
<view class="pictrue on"><image src="@/static/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="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 = "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 >
@ -116,42 +119,35 @@
< / view >
< / view >
< / view >
< view class = "load font-color-red" v-if = "!helpListStatus " @click="getBargainHelpList" > 点击加载更多
< / 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 = "@/static/images/left.png" / >
< / view >
< view class = "pictrue" > < image src = "@/static/images/left.png" / > < / view >
< view class = "titleCon" > 商品详情 < / view >
< view class = "pictrue on" >
< image src = "@/static/images/left.png" / >
< / view >
< view class = "pictrue on" > < image src = "@/static/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 = "@/static/images/left.png" / >
< / view >
< view class = "pictrue" > < image src = "@/static/images/left.png" / > < / view >
< view class = "titleCon" > 活动规则 < / view >
< view class = "pictrue on" >
< image src = "@/static/images/left.png" / >
< / view >
< view class = "pictrue on" > < image src = "@/static/images/left.png" / > < / view >
< / view >
< view class = "conter" v-html = "goodsDetail.rule" > < / view >
< / view >
< view class = "bargainTip" : class = "active === true ? 'on' : ''" >
< view class = "cutOff" v-if = "bargainUid === userInfo.uid" >
您已砍掉
< text class = "font-color-red" v-text = "bargainHelpPrice" > < / text > 元 , 听说分享次数越多砍价成功的机会越大哦 !
< 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 class = "help font-color-red" v-text = "'成功帮砍' + bargainHelpPrice + '元'" > < / view >
, 您也可以砍价低价拿哦 , 快去挑选心仪的商品吧 ~
< / view >
< view class = "tipBnt" @click ="goPoster" v-if = "bargainUid === userInfo.uid" > 邀请好友帮砍价 < / view >
< view class = "tipBnt" @click ="getBargainStart" v-else > 我也要参与 < / view >
@ -160,8 +156,8 @@
< / view >
< / template >
< script >
import CountDown from " @/components/CountDown" ;
import {
import CountDown from ' @/components/CountDown' ;
import {
getBargainDetail ,
getBargainShare ,
getBargainStart ,
@ -170,33 +166,25 @@
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" ;
} 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" ;
const NAME = ' DargainDetails' ;
export default {
name : " DargainDetails" ,
export default {
name : ' DargainDetails' ,
components : {
CountDown
} ,
props : { } ,
data : function ( ) {
data : function ( ) {
return {
bargainId : 0 , //砍价编号
bargainSumCount : 0 , //砍价成功人数
activeMsg : "" ,
activeMsg : '' ,
active : false ,
bargainHelpPrice : 0 , //砍掉金额
bargainHelpList : [ ] ,
@ -215,16 +203,16 @@
inviteFriends : false , // 邀请好友
helpFriendsBargain : false , // 帮好友砍
bargainSuccess : false , // 帮好友砍价成功
mainBargainSuccess : false , // 砍价成功
mainBargainSuccess : false // 砍价成功
} ;
} ,
computed : mapGetters ( [ " userInfo" , " isLogin" ] ) ,
mounted : function ( ) {
computed : mapGetters ( [ ' userInfo' , ' isLogin' ] ) ,
mounted : function ( ) {
this . mountedStart ( ) ;
} ,
methods : {
// 开始处理砍价逻辑
mountedStart : function ( ) {
mountedStart : function ( ) {
var that = this ;
let url = handleQrCode ( ) ;
// bargainId 砍价商品id
@ -236,13 +224,13 @@
} else {
// 正常途径进来
that . bargainId = that . $yroute . query . id ;
that . bargainUid = that . $yroute . query . partake
that . bargainUid = that . $yroute . query . partake ;
}
if ( this . bargainUid == 0 || ! this . bargainUid ) {
// url未携带用户uid, 填上登录用户uid, 跳转
that . bargainUid = that . userInfo . uid ;
}
console . log ( this )
console . log ( this ) ;
// 获取商品详情
that . getBargainDetail ( ) ;
@ -265,27 +253,27 @@
this . getBargainHelpCount ( ) ;
} ,
// 查看商品
openAlone : function ( ) {
openAlone : function ( ) {
this . $yrouter . push ( {
path : " /pages/shop/GoodsCon/index" ,
path : ' /pages/shop/GoodsCon/index' ,
query : {
id : this . goodsDetail . productId
}
} ) ;
} ,
// 砍价完成,去支付
goPay : function ( ) {
goPay : function ( ) {
var data = { } ;
var that = this ;
data . productId = that . goodsDetail . productId ;
data . cartNum = that . goodsDetail . num ;
data . uniqueId = "" ;
data . uniqueId = '' ;
data . bargainId = that . bargainId ;
data . new = 1 ;
postCartAdd ( data )
. then ( res => {
that . $yrouter . push ( {
path : " /pages/order/OrderSubmission/index" ,
path : ' /pages/order/OrderSubmission/index' ,
query : {
id : res . data . cartId
}
@ -294,17 +282,17 @@
. catch ( err => {
uni . showToast ( {
title : err . msg || err . response . data . msg || err . response . data . message ,
icon : " none" ,
icon : ' none' ,
duration : 2000
} ) ;
} ) ;
} ,
// 生成海报
goPoster : function ( ) {
goPoster : function ( ) {
var that = this ;
that . getBargainShare ( that . bargainId ) ;
this . $yrouter . push ( {
path : " /pages/activity/Poster/index" ,
path : ' /pages/activity/Poster/index' ,
query : {
id : that . bargainId ,
type : 2
@ -312,55 +300,49 @@
} ) ;
} ,
// 跳转砍价商品列表
goList : function ( ) {
goList : function ( ) {
this . $yrouter . push ( {
path : " /pages/activity/GoodsBargain/index"
path : ' /pages/activity/GoodsBargain/index'
} ) ;
} ,
//砍价分享
//bargainId 0 获取 查看人数 分享人数 参与人数
//bargainId 砍价产品编号 添加分享次数 获取 查看人数 分享人数 参与人数
getBargainShare : function ( bargainId ) {
getBargainShare : function ( bargainId ) {
var that = this ;
getBargainShare ( {
bargainId : bargainId
} ) . then ( res => {
that . bargainShare = res . data
that . bargainShare = res . data ;
} ) ;
} ,
// 获取产品详情
getBargainDetail : function ( ) {
getBargainDetail : function ( ) {
var that = this ;
uni . showLoading ( {
title : " 加载中" ,
title : ' 加载中' ,
mask : true
} ) ;
getBargainDetail ( that . bargainId )
. then ( res => {
uni . hideLoading ( )
uni . hideLoading ( ) ;
that . goodsDetail = res . data . bargain ;
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 . goodsDetail . stopTime = that . goodsDetail . stopTime / 1000
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 . goodsDetail . stopTime = that . goodsDetail . stopTime / 1000 ;
that . getBargainHelpCount ( ) ;
} )
. catch ( res => {
uni . hideLoading ( )
uni . hideLoading ( ) ;
uni . showToast ( {
title : res . msg ,
icon : " none" ,
icon : ' none' ,
duration : 2000
} ) ;
} ) ;
} ,
// 开启砍价-发起人与当前用户非同一人
getBargainStart : function ( ) {
getBargainStart : function ( ) {
var that = this ;
getBargainStart ( {
bargainId : that . bargainId
@ -373,21 +355,18 @@
. catch ( res => {
uni . showToast ( {
title : res . msg ,
icon : " none" ,
icon : ' none' ,
duration : 2000
} ) ;
} ) ;
} ,
// 参与砍价
getBargainHelp : function ( ) {
getBargainHelp : function ( ) {
var that = this ;
if (
this . bargainHelpCount . price === 0 &&
that . bargainUid !== that . userInfo . uid
) {
if ( this . bargainHelpCount . price === 0 && that . bargainUid !== that . userInfo . uid ) {
return uni . showToast ( {
title : " 好友已经砍价成功" ,
icon : " success" ,
title : ' 好友已经砍价成功' ,
icon : ' success' ,
duration : 2000
} ) ;
}
@ -398,10 +377,10 @@
getBargainHelp ( data )
. then ( res => {
that . activeMsg = res . data . status ;
if ( res . data . status === " SUCCESSFUL" && that . bargainUid !== that . userInfo . uid ) {
if ( res . data . status === ' SUCCESSFUL' && that . bargainUid !== that . userInfo . uid ) {
uni . showToast ( {
title : " 您已经砍过了" ,
icon : " none" ,
title : ' 您已经砍过了' ,
icon : ' none' ,
duration : 2000
} ) ;
return ;
@ -414,13 +393,13 @@
. catch ( res => {
uni . showToast ( {
title : res . msg ,
icon : " none" ,
icon : ' none' ,
duration : 2000
} ) ;
} ) ;
} ,
//获取砍掉的金额
getBargainHelpPrice : function ( ) {
getBargainHelpPrice : function ( ) {
var that = this ;
getBargainHelpPrice ( {
bargainId : that . bargainId ,
@ -431,9 +410,9 @@
that . getBargainHelpCount ( ) ;
that . getBargainHelpList ( ) ;
switch ( that . activeMsg ) {
case " SUCCESSFUL" :
case ' SUCCESSFUL' :
break ;
case " SUCCESS" :
case ' SUCCESS' :
that . active = true ;
break ;
}
@ -441,13 +420,13 @@
. catch ( res => {
uni . showToast ( {
title : res . msg ,
icon : " none" ,
icon : ' none' ,
duration : 2000
} ) ;
} ) ;
} ,
// 砍价帮助列表
getBargainHelpList : function ( ) {
getBargainHelpList : function ( ) {
var that = this ;
if ( that . helpListStatus === true ) return ;
getBargainHelpList ( {
@ -465,37 +444,37 @@
} )
. catch ( err => {
if ( ! err . msg ) {
return
return ;
}
uni . showToast ( {
title : err . msg || err . response . data . msg || err . response . data . message ,
icon : " none" ,
icon : ' none' ,
duration : 2000
} ) ;
} ) ;
} ,
// 砍价 砍价帮总人数、剩余金额、进度条、已经砍掉的价格
getBargainHelpCount : function ( ) {
getBargainHelpCount : function ( ) {
getBargainHelpCount ( {
bargainId : this . bargainId ,
bargainUserUid : this . bargainUid
} )
. then ( res => {
// 剩余砍价金额,显示已砍至¥** 使用 = 商品价格 - 已经砍掉的金额
let remainingPrice = ( this . goodsDetail . price - res . data . alreadyPrice ) . toFixed ( 2 )
let remainingPrice = ( this . goodsDetail . price - res . data . alreadyPrice ) . toFixed ( 2 ) ;
this . bargainHelpCount = {
... res . data ,
remainingPrice
}
this . handleButtonStatus ( )
} ;
this . handleButtonStatus ( ) ;
} )
. catch ( err => {
if ( ! err . msg ) {
return
return ;
}
uni . showToast ( {
title : err . msg || err . response . data . msg || err . response . data . message ,
icon : " none" ,
icon : ' none' ,
duration : 2000
} ) ;
} ) ;
@ -504,24 +483,17 @@
handleButtonStatus ( ) {
// 砍价按钮分为
// 1.参与砍价 ==> 发起人与当前用户为同一人 && 未参与
if (
this . b argainUid === this . userInfo . uid &&
this . bargainHelpCount . status == 0
) {
this . participate = true
if ( this . bargainUid === this . userInfo . uid && this . bargainHelpCount . status == 0 ) {
this . p articipate = true ;
} else {
this . participate = false
this . participate = false ;
}
// 2.邀请好友 ==> 发起人与当前用户同一人 && 已参与未过期 && 剩余金额>0
if (
this . bargainUid === this . userInfo . uid &&
this . bargainHelpCount . status == 1 &&
this . bargainHelpCount . price > 0
) {
this . inviteFriends = true
if ( this . bargainUid === this . userInfo . uid && this . bargainHelpCount . status == 1 && this . bargainHelpCount . price > 0 ) {
this . inviteFriends = true ;
} else {
this . inviteFriends = false
this . inviteFriends = false ;
}
// 3.帮好友砍价 ==> 发起人与当前用户非一人 && 未参与未过期 && 剩余金额>0 && 为砍价
@ -531,40 +503,33 @@
// this.bargainHelpCount.userBargainStatus &&
this . bargainHelpCount . price > 0
) {
this . helpFriendsBargain = true
this . helpFriendsBargain = true ;
} else {
this . helpFriendsBargain = false
this . helpFriendsBargain = false ;
}
// 4.支付 ==> 发起人与当前用户同一人 && 已参与未过期 && 剩余金额<=0
if (
this . bargainUid === this . userInfo . uid &&
this . bargainHelpCount . status == 1 &&
this . bargainHelpCount . price <= 0
) {
this . pay = true
if ( this . bargainUid === this . userInfo . uid && this . bargainHelpCount . status == 1 && this . bargainHelpCount . price <= 0 ) {
this . pay = true ;
} else {
this . pay = false
this . pay = false ;
}
// 5.砍价人发起新的砍价 ==> 发起人与当前用户非一人 && 未参与
if (
this . bargainUid ! = this . userInfo . uid
) {
this . bargain = true
if ( this . bargainUid != this . userInfo . uid ) {
this . bargain = true ;
} else {
this . bargain = false
this . bargain = false ;
}
// 砍价弹窗
// 1.发起人砍价成功 ==> 发起人与当前用户同一人 && 已参与未过期
// 2.砍价人砍价成功 ==> 发起人与当前用户非一人 && 已参与未过期
// 3.已砍价 ==> 已参与 && 砍价状态为 true
} ,
// 获取开启砍价用户信息
// 参与砍价,为同一人发起砍价后
getBargainStartUser : function ( ) {
getBargainStartUser : function ( ) {
var that = this ;
getBargainStartUser ( {
bargainId : that . bargainId ,
@ -577,53 +542,51 @@
. catch ( res => {
uni . showToast ( {
title : res . msg ,
icon : " none" ,
icon : ' none' ,
duration : 2000
} ) ;
} ) ;
} ,
// 关闭弹窗
close : function ( ) {
close : function ( ) {
this . active = false ;
} ,
// 设置微信分享
onShareAppMessage : function ( ) {
onShareAppMessage : function ( ) {
return {
title : this . storeInfo . title ,
imageUrl : this . storeInfo . image ,
path : " pages/activity/DargainDetails/index?id=" + this . storeInfo . id + " &spread=" + uni . getStorageSync (
"uid" ) ,
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 {
path : ` /pages/activity/DargainDetails/index/?id= ${ this . $yroute . query . id } &partake= ${ this . userInfo . uid } `
} ;
}
} ;
} ;
< / script >
< style lang = "less" >
. bargain {
. bargain {
& . on {
. bargain - box {
background : # fff ;
width : auto ;
margin : 0 20 rpx ;
border : 0 ;
}
. header {
@ -642,14 +605,13 @@
}
}
}
}
}
page {
page {
background - color : # f5f5f5 ! important ;
}
}
. bargainBnt _hui {
. bargainBnt _hui {
font - size : 0.3 * 100 rpx ;
font - weight : bold ;
color : # fff ;
@ -660,9 +622,9 @@
text - align : center ;
line - height : 0.8 * 100 rpx ;
margin - top : 0.32 * 100 rpx ;
}
}
. bargain _view {
. bargain _view {
left : 0 ;
right : 0 ;
height : 0.48 * 100 rpx ;
@ -675,9 +637,9 @@
color : # fff ;
text - align : center ;
line - height : 0.48 * 100 rpx ;
}
}
. iconfonts {
. iconfonts {
font - size : 0.22 * 100 rpx ;
}
}
< / style >