2、购物车列表点击管理 点击收藏功能去掉 3、下单点击积分抵扣没反应 4、待收货 列表查看物流点击没反应,详情查看物流可以点 5、添加地址选择地区无效 6、个人中心我的余额点进去点击账单记录一直正在加载中,点击下全部就出来了,应该你没带默认参数 8、订单点击评价没反应 9、小程序订单核销没上 你那边先根据路径判断隐藏下 10、我的推广,里面样式有问题,点击海报里面空白 11、分类点击 会分类Tab页分类一级比一级低 12、拼团详情客服功能隐藏去掉,其他地方有客服功能的都去掉
519 lines
17 KiB
Vue
519 lines
17 KiB
Vue
<template>
|
||
<view class="bargain">
|
||
<!-- 在header上加 on 为请求支援 -->
|
||
<view :class="[bargainPartake != userInfo.uid ? 'header on' : 'header']">
|
||
<view class="people">{{ lookCount }}人查看 丨 {{ shareCount }}人分享 丨 {{ userCount }}人参与</view>
|
||
<!-- 帮助砍价、帮砍成功:-->
|
||
<view class="pictxt acea-row row-center-wrapper" v-if="bargainPartake != userInfo.uid">
|
||
<view class="pictrue">
|
||
<image :src="bargainUserInfo.avatar" />
|
||
</view>
|
||
<view class="text">
|
||
{{ bargainUserInfo.nickname }}
|
||
<text>邀请您帮忙砍价</text>
|
||
</view>
|
||
</view>
|
||
<count-down
|
||
:is-day="true"
|
||
:tip-text="'倒计时 '"
|
||
:day-text="' 天 '"
|
||
:hour-text="' 时 '"
|
||
:minute-text="' 分 '"
|
||
:second-text="' 秒'"
|
||
:datatime="datatime"
|
||
></count-down>
|
||
</view>
|
||
<view class="wrapper">
|
||
<view class="pictxt acea-row row-between-wrapper">
|
||
<view class="pictrue">
|
||
<image :src="bargain.image" />
|
||
</view>
|
||
<view class="text acea-row row-column-around">
|
||
<view class="line2" v-text="bargain.title"></view>
|
||
<view class="money font-color-red">
|
||
已砍至: ¥
|
||
<text class="num" v-text="price"></text>
|
||
</view>
|
||
<view class="acea-row row-middle">
|
||
<view class="successNum" v-text="'原价' + bargain.price"></view>
|
||
<view class="successNum" v-text="'已有' + bargainSumCount + '人砍价成功'"></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: loading ? pricePercent + '%' : '' }"
|
||
></view>
|
||
</view>
|
||
<view class="balance acea-row row-between-wrapper">
|
||
<view v-text="'已砍' + alreadyPrice + '元'"></view>
|
||
<view v-if="surplusPrice === 0">砍价成功</view>
|
||
<view v-else v-text="'还剩' + surplusPrice + '元'"></view>
|
||
</view>
|
||
<!-- 帮助砍价、帮砍成功:-->
|
||
<!--<view class='bargainSuccess'><text class='iconfont icon-xiaolian'></text>已成功帮助好友砍价</view>-->
|
||
<view class="bargainBnts">
|
||
<view
|
||
class="bargainBnt"
|
||
@click="goPoster"
|
||
v-if="bargainPartake === userInfo.uid && surplusPrice > 0"
|
||
>邀请好友帮砍价</view>
|
||
<view
|
||
class="bargainBnt"
|
||
@click="getBargainHelp"
|
||
v-else-if="bargainPartake != userInfo.uid"
|
||
>帮好友砍一刀</view>
|
||
<view class="bargainBnt" @click="getBargainStart" v-if="bargainPartake != userInfo.uid">开启砍价</view>
|
||
<view
|
||
class="bargainBnt"
|
||
@click="goPay"
|
||
v-if="surplusPrice === 0 && bargainPartake === userInfo.uid && userBargainStatus === 1"
|
||
>立即支付</view>
|
||
<view class="bargainBnt on" @click="goList">抢更多商品</view>
|
||
</view>
|
||
<view class="tip">
|
||
已有
|
||
<text class="font-color-red" v-text="helpCount"></text>位好友成功帮您砍价
|
||
</view>
|
||
<view class="lock"></view>
|
||
</view>
|
||
<view class="bargainGang">
|
||
<view class="title font-color-red acea-row row-center-wrapper">
|
||
<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>
|
||
<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 && !helpListLoading"
|
||
@click="getBargainHelpList"
|
||
>点击加载更多</view>
|
||
<view class="lock"></view>
|
||
</view>
|
||
<view class="goodsDetails">
|
||
<view class="title font-color-red acea-row row-center-wrapper">
|
||
<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>
|
||
<view class="conter" v-html="bargain.description"></view>
|
||
<view class="lock"></view>
|
||
</view>
|
||
<view class="goodsDetails">
|
||
<view class="title font-color-red acea-row row-center-wrapper">
|
||
<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>
|
||
<view class="conter" v-html="bargain.rule"></view>
|
||
</view>
|
||
<view class="bargainTip" :class="active === true ? 'on' : ''">
|
||
<view class="pictrue">
|
||
<image src="@/static/images/bargainBg.jpg" />
|
||
<view class="iconfont icon-guanbi" @click="close"></view>
|
||
</view>
|
||
<view class="cutOff" v-if="bargainPartake === 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>
|
||
<view class="tipBnt" @click="goPoster" v-if="bargainPartake === userInfo.uid">邀请好友帮砍价</view>
|
||
<view class="tipBnt" @click="getBargainStart" v-else>我也要参与</view>
|
||
</view>
|
||
<view class="mask" @touchmove.prevent :hidden="active === false" @click="close"></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 {
|
||
price: 0,
|
||
bargainId: 0, //砍价编号
|
||
bargainPartake: 0, //参与砍价
|
||
bargain: [], //砍价产品信息
|
||
partake: null,
|
||
bargainSumCount: 0, //砍价成功人数
|
||
activeMsg: "",
|
||
active: false,
|
||
loading: false,
|
||
datatime: 0,
|
||
lookCount: 0, //查看人数
|
||
shareCount: 0, //分享人数
|
||
userCount: 0, //参与人数
|
||
bargainHelpPrice: 0, //砍掉金额
|
||
bargainHelpList: [],
|
||
helpListStatus: false, //砍价列表是否获取完成 false 未完成 true 完成
|
||
helpListLoading: false, //当前接口是否请求完成 false 完成 true 未完成
|
||
page: 1, //页码
|
||
limit: 2, //数量
|
||
helpCount: 0, //砍价帮总人数
|
||
surplusPrice: 0, //剩余金额
|
||
alreadyPrice: 0, //已砍掉价格
|
||
pricePercent: 0, //砍价进度条
|
||
bargainUserInfo: [], //砍价 开启砍价用户信息
|
||
userBargainStatus: 2 //砍价状态
|
||
};
|
||
},
|
||
computed: mapGetters(["userInfo", "isLogin"]),
|
||
// watch: {
|
||
// $yroute: function(n) {
|
||
// var that = this;
|
||
// if (n.name === NAME) {
|
||
// that.mountedStart();
|
||
// }
|
||
// }
|
||
// },
|
||
mounted: function() {
|
||
var that = this;
|
||
that.mountedStart();
|
||
setTimeout(function() {
|
||
that.loading = true;
|
||
}, 500);
|
||
},
|
||
methods: {
|
||
mountedStart: function() {
|
||
var that = this;
|
||
let url = handleQrCode();
|
||
if (url) {
|
||
that.bargainId = url.bargainId;
|
||
that.partake = url.uid;
|
||
} else {
|
||
that.bargainId = that.$yroute.query.id;
|
||
that.partake = parseInt(that.$yroute.query.partake);
|
||
}
|
||
if (
|
||
this.partake === undefined ||
|
||
this.partake <= 0 ||
|
||
isNaN(this.partake)
|
||
) {
|
||
that.bargainPartake = that.userInfo.uid;
|
||
// that.$yrouter.push({
|
||
// path: "/pages/activity/DargainDetails/index",
|
||
// query: { id: that.bargainId, partake: that.bargainPartake }
|
||
// });
|
||
} else {
|
||
that.bargainPartake = parseInt(this.partake);
|
||
}
|
||
that.getBargainHelpCountStart();
|
||
that.getBargainDetail();
|
||
that.getBargainShare(0);
|
||
if (that.bargainPartake === that.userInfo.uid) that.getBargainStart();
|
||
else that.getBargainStartUser();
|
||
},
|
||
updateTitle() {
|
||
// document.title = this.bargain.title || this.$yroute.meta.title;
|
||
},
|
||
goPay: function() {
|
||
var data = {};
|
||
var that = this;
|
||
data.productId = that.bargain.productId;
|
||
data.cartNum = that.bargain.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,
|
||
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.lookCount = res.data.lookCount;
|
||
that.shareCount = res.data.shareCount;
|
||
that.userCount = res.data.userCount;
|
||
});
|
||
},
|
||
// 获取产品详情
|
||
getBargainDetail: function() {
|
||
var that = this;
|
||
getBargainDetail(that.bargainId)
|
||
.then(res => {
|
||
that.$set(that, "bargain", res.data.bargain);
|
||
that.updateTitle();
|
||
that.datatime = that.bargain.stopTime;
|
||
that.getBargainHelpCount();
|
||
})
|
||
.catch(res => {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: "none",
|
||
duration: 2000
|
||
});
|
||
});
|
||
},
|
||
//开启砍价
|
||
getBargainStart: function() {
|
||
var that = this;
|
||
getBargainStart({ bargainId: that.bargainId })
|
||
.then(() => {
|
||
that.bargainPartake = that.userInfo.uid;
|
||
that.getBargainHelp();
|
||
})
|
||
.catch(res => {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: "none",
|
||
duration: 2000
|
||
});
|
||
});
|
||
},
|
||
//参与砍价
|
||
getBargainHelp: function() {
|
||
var that = this;
|
||
if (
|
||
that.surplusPrice === 0 &&
|
||
that.bargainPartake !== that.userInfo.uid
|
||
) {
|
||
return uni.showToast({
|
||
title: "好友已经砍价成功",
|
||
icon: "success",
|
||
duration: 2000
|
||
});
|
||
}
|
||
var data = {
|
||
bargainId: that.bargainId,
|
||
bargainUserUid: that.bargainPartake
|
||
};
|
||
getBargainHelp(data)
|
||
.then(res => {
|
||
that.activeMsg = res.data.status;
|
||
if (
|
||
res.data.status === "SUCCESSFUL" &&
|
||
that.bargainPartake !== 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.bargainPartake
|
||
})
|
||
.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.helpListLoading === true) return;
|
||
if (that.helpListStatus === true) return;
|
||
that.helpListLoading = true;
|
||
getBargainHelpList({
|
||
bargainId: that.bargainId,
|
||
bargainUserUid: that.bargainPartake,
|
||
page: that.page,
|
||
limit: that.limit
|
||
})
|
||
.then(res => {
|
||
that.helpListStatus = res.data.length < that.limit;
|
||
that.helpListLoading = false;
|
||
that.page++;
|
||
that.bargainHelpList.push.apply(that.bargainHelpList, res.data);
|
||
})
|
||
.catch(res => {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: "none",
|
||
duration: 2000
|
||
});
|
||
});
|
||
},
|
||
getBargainHelpCountStart: function() {
|
||
var that = this;
|
||
getBargainHelpCount({
|
||
bargainId: that.bargainId,
|
||
bargainUserUid: that.bargainPartake
|
||
})
|
||
.then(() => {})
|
||
.catch(() => {
|
||
// that.$yrouter.push({
|
||
// path: "/pages/activity/DargainDetails/index",
|
||
// query: { id: that.bargainId, partake: that.userInfo.uid }
|
||
// });
|
||
});
|
||
},
|
||
getBargainHelpCount: function() {
|
||
var that = this;
|
||
getBargainHelpCount({
|
||
bargainId: that.bargainId,
|
||
bargainUserUid: that.bargainPartake
|
||
})
|
||
.then(res => {
|
||
that.userBargainStatus = res.data.status;
|
||
that.helpCount = res.data.count;
|
||
that.surplusPrice = res.data.price;
|
||
that.alreadyPrice = res.data.alreadyPrice;
|
||
that.pricePercent = res.data.pricePercent;
|
||
that.price = (that.bargain.price - that.alreadyPrice).toFixed(2);
|
||
})
|
||
.catch(() => {
|
||
that.bargainPartake = that.userInfo.uid;
|
||
// that.$yrouter.push({
|
||
// path: "/pages/activity/DargainDetails/index",
|
||
// query: { id: that.bargainId, partake: that.userInfo.uid }
|
||
// });
|
||
});
|
||
},
|
||
getBargainStartUser: function() {
|
||
var that = this;
|
||
getBargainStartUser({
|
||
bargainId: that.bargainId,
|
||
bargainUserUid: that.bargainPartake
|
||
})
|
||
.then(res => {
|
||
that.bargainUserInfo = res.data;
|
||
that.getBargainHelpList();
|
||
})
|
||
.catch(res => {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: "none",
|
||
duration: 2000
|
||
});
|
||
});
|
||
},
|
||
close: function() {
|
||
this.active = false;
|
||
}
|
||
},
|
||
onShareAppMessage() {
|
||
return {
|
||
path: `/pages/activity/DargainDetails/index/?id=${this.$yroute.query.id}&partake=${this.userInfo.uid}`
|
||
};
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style lang="less">
|
||
.bargain{
|
||
background: #00c17b;
|
||
}
|
||
.bargainBnts {
|
||
display: flex;
|
||
align-items: center;
|
||
flex-direction: column;
|
||
}
|
||
</style>
|