【砍价详情】

1. 基本对接完成
pull/1/MERGE
YunaiV 2023-06-21 23:45:45 +08:00
parent 9199f20de0
commit 4aed2a78e0
4 changed files with 347 additions and 352 deletions

View File

@ -43,3 +43,26 @@ export function getBargainRecordDetail(id, activityId) {
noAuth: true // TODO 芋艿:后续要做调整 noAuth: true // TODO 芋艿:后续要做调整
}); });
} }
// 创建砍价记录(参与拼团活动)
export function createBargainRecord(activityId) {
return request.post("app-api/promotion/bargain-record/create", {
activityId
});
}
// 创建砍价助力(给拼团记录砍一刀)
export function createBargainHelp(recordId) {
return request.post("app-api/promotion/bargain-help/create", {
recordId: recordId
});
}
// 获得砍价助力列表
export function getBargainHelpList(recordId) {
return request.get("app-api/promotion/bargain-help/list", {
recordId: recordId
}, {
noAuth: true // TODO 芋艿:后续要做调整
});
}

View File

@ -40,7 +40,7 @@
<Loading :loaded="status" :loading="loadingList"></Loading> <Loading :loaded="status" :loading="loadingList"></Loading>
</div> </div>
</block> </block>
<block v-if="bargain.length == 0"> <block v-if="bargain.length === 0">
<emptyPage title="暂无砍价记录~"></emptyPage> <emptyPage title="暂无砍价记录~"></emptyPage>
</block> </block>
<home></home> <home></home>
@ -121,7 +121,7 @@
methods: { methods: {
/** /**
* 打开支付组件 * 打开支付组件
* *
*/ */
goPay(pay_price, order_id) { goPay(pay_price, order_id) {
this.$set(this, 'pay_close', true); this.$set(this, 'pay_close', true);
@ -130,7 +130,7 @@
}, },
/** /**
* 事件回调 * 事件回调
* *
*/ */
onChangeFun: function(e) { onChangeFun: function(e) {
let opt = e; let opt = e;
@ -140,14 +140,12 @@
}, },
/** /**
* 关闭支付组件 * 关闭支付组件
*
*/ */
payClose: function() { payClose: function() {
this.pay_close = false; this.pay_close = false;
}, },
/** /**
* 支付成功回调 * 支付成功回调
*
*/ */
pay_complete: function() { pay_complete: function() {
this.status = false; this.status = false;
@ -158,7 +156,6 @@
}, },
/** /**
* 支付失败回调 * 支付失败回调
*
*/ */
pay_fail: function() { pay_fail: function() {
this.pay_close = false; this.pay_close = false;
@ -277,11 +274,11 @@
color: #868686; color: #868686;
justify-content: left !important; justify-content: left !important;
} }
.bargain-record .item .picTxt .text .successTxt{ .bargain-record .item .picTxt .text .successTxt{
font-size:24rpx; font-size:24rpx;
} }
.bargain-record .item .picTxt .text .endTxt{ .bargain-record .item .picTxt .text .endTxt{
font-size:24rpx; font-size:24rpx;
color: #999; color: #999;

View File

@ -1,7 +1,7 @@
<template> <template>
<view> <view>
<view class='bargain'> <view class='bargain'>
<view class="header" :class="startBargainUid != userInfo.uid ? 'on' : ''"> <view class="header" :class="startBargainUid !== userInfo.uid ? 'on' : ''">
<navigator url="/pages/activity/goods_bargain/index" hover-class="none"> <navigator url="/pages/activity/goods_bargain/index" hover-class="none">
<view class="back"> <view class="back">
<text class="iconfont icon-xiangzuo"></text> 返回砍价列表 <text class="iconfont icon-xiangzuo"></text> 返回砍价列表
@ -37,10 +37,8 @@
</view> </view>
</view> </view>
<view class="content"> <view class="content">
<!-- 自己砍价1-可以参与砍价5-砍价中 --> <!-- 砍价中 -->
<!-- 别人砍价5-可以帮砍 --> <block v-if="action === 2">
<block v-if="(startBargainUid === uid && action === 2)
|| (startBargainUid !== uid && bargainStatus==5)">
<view class='money acea-row row-center' <view class='money acea-row row-center'
:class="new Date().getTime() >= bargainUserInfo.expireTime ? 'font_hui': ''"> :class="new Date().getTime() >= bargainUserInfo.expireTime ? 'font_hui': ''">
<view style="margin-right: 40rpx;">已砍<text class="font-color-red" <view style="margin-right: 40rpx;">已砍<text class="font-color-red"
@ -54,7 +52,7 @@
:class="new Date().getTime() >= bargainUserInfo.expireTime ? 'bg_qian': ''"> :class="new Date().getTime() >= bargainUserInfo.expireTime ? 'bg_qian': ''">
<view class='acea-row row-middle bg-red' <view class='acea-row row-middle bg-red'
:class="new Date().getTime() >= bargainUserInfo.expireTime ? 'bg-color-hui': ''" :class="new Date().getTime() >= bargainUserInfo.expireTime ? 'bg-color-hui': ''"
:style="'width:'+ (100 * (bargainUserInfo.price - bargainUserInfo.payPrice) / (bargainUserInfo.price - bargainUserInfo.bargainPrice)) +'%;'" /> :style="'width:'+ bargainUserInfo.pricePercent +'%;'" />
</view> </view>
<view class='tip'> <view class='tip'>
已有{{ bargainInfo.successCount }}位好友砍价成功 已有{{ bargainInfo.successCount }}位好友砍价成功
@ -77,29 +75,26 @@
<!-- #endif --> <!-- #endif -->
</view> </view>
<!-- 别人砍价 TODO --> <!-- 别人砍价 -->
<view <view
v-if="startBargainUid !== uid && bargainStatus==5 && parseFloat(bargainUserInfo.surplusPrice) > 0"> v-if="startBargainUid !== uid && action === 2 && helpAction === 1">
<view class='bargainBnt' @tap='setBargainHelp'>帮好友砍一刀</view> <view class='bargainBnt' @tap='setBargainHelp'>帮好友砍一刀</view>
</view> </view>
<view v-if="startBargainUid !== uid && bargainStatus==4 && parseFloat(bargainUserInfo.surplusPrice) == 0" > <view v-else-if="startBargainUid !== uid && [3, 4, 5].includes(action)" >
<view class='bargainSuccess'> <view class='bargainSuccess'>
<image src="../static/cheng.png"></image> <image src="../static/cheng.png" /> 好友已砍成功
好友已砍成功
</view> </view>
<view class='bargainBnt' @tap='currentBargainUser'>我也要参与</view> <view class='bargainBnt' @tap='currentBargainUser'>我也要参与</view>
</view> </view>
<view v-if="startBargainUid !== uid && bargainStatus === 7"> <view v-else-if="startBargainUid !== uid && helpAction === 2">
<view class='bargainSuccess'> <view class='bargainSuccess'>
<image src="../static/cheng.png"></image> <image src="../static/cheng.png" /> 您已帮其他好友砍过此商品
您已帮其他好友砍过此商品
</view> </view>
<view class='bargainBnt' @tap='currentBargainUser'>我也要参与</view> <view class='bargainBnt' @tap='currentBargainUser'>我也要参与</view>
</view> </view>
<view v-if="startBargainUid !== uid && bargainStatus === 6"> <view v-else-if="startBargainUid !== uid && helpAction === 3">
<view class='bargainSuccess'> <view class='bargainSuccess'>
<image src="../static/chengh.png"></image> <image src="../static/chengh.png" /> 已成功帮助好友砍价
已成功帮助好友砍价
</view> </view>
<view class='bargainBnt' @tap='currentBargainUser'>我也要参与</view> <view class='bargainBnt' @tap='currentBargainUser'>我也要参与</view>
</view> </view>
@ -125,7 +120,6 @@
<view class='buyMore on' @tap='goBargainList' style="margin: 40rpx auto 0 auto;">继续选购</view> <view class='buyMore on' @tap='goBargainList' style="margin: 40rpx auto 0 auto;">继续选购</view>
</view> </view>
</view> </view>
<navigator v-if="new Date().getTime() >= bargainInfo.endTime || bargainInfo.stock === 0" <navigator v-if="new Date().getTime() >= bargainInfo.endTime || bargainInfo.stock === 0"
url="/pages/activity/goods_bargain/index" hover-class="none"> url="/pages/activity/goods_bargain/index" hover-class="none">
<view class="go"> <view class="go">
@ -134,7 +128,7 @@
</navigator> </navigator>
</view> </view>
<!-- 砍价记录 TODO --> <!-- 砍价记录 -->
<view class='title font-color acea-row row-center-wrapper'> <view class='title font-color acea-row row-center-wrapper'>
<view class='pictrue'> <view class='pictrue'>
<image src='../static/zuo2.png'></image> <image src='../static/zuo2.png'></image>
@ -148,30 +142,31 @@
</view> </view>
</view> </view>
<view class='bargainGang borRadius14'> <view class='bargainGang borRadius14'>
<view class='list' v-if="bargainUserHelpList.length>0"> <view class='list' v-if="bargainUserHelpList.length > 0">
<block v-for="(item,index) in bargainUserHelpList" :key='index' <block v-for="(item, index) in bargainUserHelpList" :key='index'
v-if="index<3 || !couponsHidden"> v-if="index < 3 || !couponsHidden">
<view class='item acea-row row-between-wrapper'> <view class='item acea-row row-between-wrapper'>
<view class='pictxt acea-row row-between-wrapper'> <view class='pictxt acea-row row-between-wrapper'>
<view class='pictrue'> <view class='pictrue'>
<image :src='item.avatar'></image> <image :src='item.avatar' />
</view> </view>
<view class='text'> <view class='text'>
<view class='name line1'>{{item.nickname}}</view> <view class='name line1'>{{item.nickname}}</view>
<view class='line1'>{{item.addTimeStr }}</view> <view class='line1'>{{ formatDate(item.createTime) }}</view>
</view> </view>
</view> </view>
<view class='money'> <view class='money'>
已砍 <text class="font-color-red">{{item.price}}</text> 已砍 <text class="font-color-red">{{ fen2yuan(item.reducePrice) }}</text>
</view> </view>
</view> </view>
</block> </block>
<view class="open acea-row row-center-wrapper" @click="openTap" <view class="open acea-row row-center-wrapper" @click="openTap" v-if="bargainUserHelpList.length > 3">
v-if="bargainUserHelpList.length>3">{{couponsHidden?'展开更多':'关闭展开'}}<text class="iconfont" {{couponsHidden?'展开更多':'关闭展开'}}
:class='couponsHidden==true?"icon-xiangxia":"icon-xiangshang"'></text></view> <text class="iconfont" :class='couponsHidden ? "icon-xiangxia":"icon-xiangshang"' />
</view>
</view> </view>
<view v-if="bargainUserHelpList.length===0" class="contentNo"> <view v-if="bargainUserHelpList.length === 0" class="contentNo">
<text class="iconfont icon-xiaolian mr8"></text> <text class="iconfont icon-xiaolian mr8"></text>
暂无助力记录 暂无助力记录
</view> </view>
@ -199,23 +194,24 @@
</view> </view>
</view> </view>
<!-- 砍价助力后的提示弹窗 -->
<view class='bargainTip' :class='active ? "on":""'> <view class='bargainTip' :class='active ? "on":""'>
<view class='pictrue'> <view class='pictrue'>
<image src="../../../static/images/bargainBg.png"></image> <image src="../../../static/images/bargainBg.png"></image>
</view> </view>
<view v-if="startBargainUid == uid"> <view v-if="startBargainUid === uid">
<view class='cutOff'> <view class='cutOff'>
您已砍掉<text class='font-color'>{{bargainUserBargainPrice}}</text> 您已砍掉<text class='font-color'>{{ fen2yuan(bargainUserBargainPrice) }}</text>
</view> </view>
<view class="bubbleBox"> <view class="bubbleBox">
<view class="bubble" <view class="bubble"
:style="'left:'+ (bargainUserInfo.bargainPercent>0?bargainUserInfo.bargainPercent-9:0) +'%;'"> :style="'left:'+ (bargainUserInfo.pricePercent > 0 ? bargainUserInfo.pricePercent - 9 : 0) +'%;'">
<text>{{bargainUserInfo.bargainPercent}}%</text> <text>{{ bargainUserInfo.pricePercent }}%</text>
</view> </view>
</view> </view>
<view class="cu-progress acea-row row-middle round margin-top"> <view class="cu-progress acea-row row-middle round margin-top">
<view class='acea-row row-middle bg-red' <view class='acea-row row-middle bg-red'
:style="'width:'+ bargainUserInfo.bargainPercent +'%;'"></view> :style="'width:'+ bargainUserInfo.pricePercent +'%;'"></view>
</view> </view>
<view class="t1">分享次数越多成功的机会越大哦</view> <view class="t1">分享次数越多成功的机会越大哦</view>
<!-- #ifdef MP --> <!-- #ifdef MP -->
@ -227,21 +223,19 @@
</view> </view>
<view v-else> <view v-else>
<view class='cutOff'> <view class='cutOff'>
帮好友砍掉<text class='font-color'>{{bargainUserBargainPrice}}</text> 帮好友砍掉<text class='font-color'>{{ fen2yuan(bargainUserBargainPrice) }}</text>
</view> </view>
<view class="bubbleBox"> <view class="bubbleBox">
<view class="bubble" <view class="bubble"
:style="'left:'+ (bargainUserInfo.bargainPercent>0?bargainUserInfo.bargainPercent-9:0) +'%;'"> :style="'left:'+ (bargainUserInfo.pricePercent > 0 ? bargainUserInfo.pricePercent - 9 : 0) +'%;'">
<text>{{bargainUserInfo.bargainPercent}}%</text> <text>{{ bargainUserInfo.pricePercent }}%</text>
</view> </view>
</view> </view>
<view class="cu-progress acea-row row-middle round margin-top"> <view class="cu-progress acea-row row-middle round margin-top">
<view class='acea-row row-middle bg-red' <view class='acea-row row-middle bg-red'
:style="'width:'+ bargainUserInfo.bargainPercent +'%;'"></view> :style="'width:'+ bargainUserInfo.pricePercent +'%;'"></view>
</view> </view>
<view class="t1">您也可以砍价低价拿哦快去挑选吧~</view> <view class="t1">您也可以砍价低价拿哦快去挑选吧~</view>
<!-- <view class='help font-color'>成功帮砍{{bargainUserBargainPrice}}</view> -->
<!-- <view class='cutOff on'>您也可以砍价低价拿哦快去挑选心仪的商品吧~</view> -->
<view @tap='currentBargainUser' class='tipBnt'>我也要参与</view> <view @tap='currentBargainUser' class='tipBnt'>我也要参与</view>
</view> </view>
</view> </view>
@ -253,7 +247,6 @@
<view class="share-box" v-if="H5ShareBox"> <view class="share-box" v-if="H5ShareBox">
<image src="/static/images/share-info.png" @click="H5ShareBox = false"></image> <image src="/static/images/share-info.png" @click="H5ShareBox = false"></image>
</view> </view>
<!-- 海报展示 --> <!-- 海报展示 -->
<view class='poster-pop' v-if="canvasStatus"> <view class='poster-pop' v-if="canvasStatus">
<image :src='imagePath'></image> <image :src='imagePath'></image>
@ -274,12 +267,6 @@
</view> </view>
</template> </template>
<script> <script>
import {
getBargainDetail,
postBargainStart,
postBargainHelp,
getBargainUser
} from '../../../api/activity.js';
import { imageBase64 } from "@/api/public"; import { imageBase64 } from "@/api/public";
import uQRCode from '@/js_sdk/Sansnn-uQRCode/uqrcode.js'; import uQRCode from '@/js_sdk/Sansnn-uQRCode/uqrcode.js';
import util from '../../../utils/util.js'; import util from '../../../utils/util.js';
@ -291,8 +278,8 @@
import { silenceBindingSpread } from "@/utils"; import { silenceBindingSpread } from "@/utils";
import * as BargainApi from '@/api/promotion/bargain.js'; import * as BargainApi from '@/api/promotion/bargain.js';
import * as Util from '@/utils/util.js'; import * as Util from '@/utils/util.js';
import {getBargainRecordDetail} from "../../../api/promotion/bargain"; import dayjs from "@/plugin/dayjs/dayjs.min.js";
const app = getApp(); const app = getApp();
export default { export default {
components: { components: {
countDown, countDown,
@ -319,65 +306,61 @@
img: 'width:100%;' img: 'width:100%;'
}, },
// ========== ========== // ========== ==========
storeBargainId: 0, // id storeBargainId: 0, // id
bargainUserInfo: {}, // startBargainUid: 0, // uid
bargainUserInfo: {}, //
action: 0, // action: 0, //
helpAction: 0, //
active: false, //
bargainStatus: 0, // // ========== ==========
// 1- TODO ,2- TODO 3- TODO,4- TODO5- TODO6- TODO,7- TODO,8- TODO9- TODO bargainUserBargainPrice: 0, //
bargainUserHelpList: [], //
couponsHidden: true,
// TODO // ========== ==========
qrcodeSize: 600, //
promotionCode: '', //
imgTop: '', // base64
posters: false, //
canvasStatus: false, //
H5ShareBox: false, //
posterbackgd: '/static/images/canbj.png', //
imagePath: '', //
active: false, // ========== nav + scroll ==========
startBargainUid: 0, // uid navH: '' //
page: 1, }
limit: 5,
bargainUserHelpList: [],
bargainUserHelpInfo: [],
bargainUserBargainPrice: 0, //
retunTop: true,
bargainPartake: 0,
isHelp: false,
interval: null,
productStock: 0, //
userBargainStatusHelp: true,
navH: '',
datatime: 0,
offest: '',
H5ShareBox: false, //
systemH: 0,
pages: '',
couponsHidden: true,
loading: false,
loadend: false,
posters: false,
qrcodeSize: 600,
posterbackgd: '/static/images/canbj.png',
PromotionCode: '', //
canvasStatus: false,
imgTop: '', //base64
imagePath: '' //
}
}, },
computed: mapGetters(['isLogin', 'userInfo', 'uid']), computed: mapGetters(['isLogin', 'userInfo', 'uid']),
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
if (this.isLogin) {
this.getBargainDetails();
}
},
//#ifdef MP
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {
const share = {
title: '您的好友' + this.userInfo.nickname + '邀请您帮他砍' + this.bargainInfo.name + ' 快去帮忙吧!',
path: '/pages/activity/goods_bargain_details/index?id=' + this.id + '&startBargainUid='
+ this.startBargainUid + '&spid=' + this.uid + '&storeBargainId=' + this.storeBargainId,
imageUrl: bargainInfo.picUrl,
};
this.close();
return share;
},
//#endif
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function(options) { onLoad: function(options) {
// #ifdef MP
uni.getSystemInfo({
success: res => {
this.systemH = res.statusBarHeight
this.navH = this.systemH + 10
}
})
// #endif
const pages = getCurrentPages();
if (pages.length <= 1) {
this.retunTop = false
}
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: '砍价详情' title: '砍价详情'
}) })
@ -428,7 +411,7 @@
} }
}, },
methods: { methods: {
// ========== ========== // ========== ==========
/** /**
* 获取砍价产品详情 * 获取砍价产品详情
*/ */
@ -450,13 +433,12 @@
this.getImageBase64(bargainInfo.picUrl); this.getImageBase64(bargainInfo.picUrl);
//#endif //#endif
}).catch(function (err) { }).catch(function (err) {
console.log(err, '====='); this.$util.Tips({
// this.$util.Tips({ title: err
// title: err }, {
// }, { tab: 2,
// tab: 2, url: '/pages/activity/goods_bargain/index'
// url: '/pages/activity/goods_bargain/index' });
// });
}) })
}, },
/** /**
@ -467,34 +449,51 @@
url: `/pages/goods_details/index?id=${this.bargainInfo.spuId}` url: `/pages/goods_details/index?id=${this.bargainInfo.spuId}`
}) })
}, },
// TODO /**
* 前往砍价活动列表
*/
goBargainList: function() {
uni.navigateTo({
url: '/pages/activity/goods_bargain/index',
})
},
/**
* 去支付
*/
goConfirm() { goConfirm() {
// TODO ,
uni.navigateTo({ uni.navigateTo({
url: `/pages/activity/bargain/index` url: `/pages/activity/bargain/index`
}) })
}, },
// ========== ========== // ========== ==========
/** /**
* 获得拼团记录 * 获得拼团记录
*/ */
gobargainUserInfo: function() { gobargainUserInfo: function() {
BargainApi.getBargainRecordDetail(this.bargainId, this.bargainUserId).then(res => { BargainApi.getBargainRecordDetail(this.bargainId, this.id).then(res => {
const bargainUserInfo = res.data; const bargainUserInfo = res.data;
this.bargainUserInfo = bargainUserInfo; this.bargainUserInfo = bargainUserInfo;
this.action = bargainUserInfo.action; this.action = bargainUserInfo.action;
this.helpAction = bargainUserInfo.helpAction;
this.storeBargainId = bargainUserInfo.id || this.storeBargainId; this.storeBargainId = bargainUserInfo.id || this.storeBargainId;
this.buyPrice = this.bargainUserInfo.payPrice || this.buyPrice; this.buyPrice = this.bargainUserInfo.payPrice || this.buyPrice;
if (bargainUserInfo.payPrice >= 0 && bargainUserInfo.bargainPrice >= 0) { if (bargainUserInfo.payPrice >= 0 && bargainUserInfo.bargainPrice >= 0) {
bargainUserInfo.remainPrice = bargainUserInfo.payPrice - bargainUserInfo.bargainPrice; // bargainUserInfo.remainPrice = bargainUserInfo.payPrice - bargainUserInfo.bargainPrice; //
bargainUserInfo.pricePercent = 100 * (bargainUserInfo.price - bargainUserInfo.payPrice) / (bargainUserInfo.price - bargainUserInfo.bargainPrice)
}
//
if (bargainUserInfo.id) {
BargainApi.getBargainHelpList(bargainUserInfo.id).then(res => {
this.bargainUserHelpList = res.data || [];
})
} }
this.bargainStatus = bargainUserInfo.bargainStatus;
// TODO
// this.bargainUserHelpList = bargainUserInfo.userHelpList || [];
//#ifdef H5 //#ifdef H5
if (bargainUserInfo.storeBargainUserId) { if (bargainUserInfo.id) {
this.make(); this.make();
} }
this.setOpenShare(); this.setOpenShare();
@ -509,244 +508,220 @@
}); });
}); });
}, },
/**
* 参与砍价
*/
userBargain: function() {
if (this.uid === this.startBargainUid) {
this.setBargain();
}
},
/**
* 参与砍价
*/
setBargain: function() { //
var that = this;
BargainApi.createBargainRecord(this.id).then(res => {
this.storeBargainId = res.data.storeBargainUserId;
//
this.setBargainHelp();
}, error => {
that.$util.Tips({
title: error
})
})
},
/**
* 跳转当前用户砍价
*/
currentBargainUser: function() { //
uni.navigateTo({
url: '/pages/activity/goods_bargain_details/index?id=' + this.id + '&startBargainUid=' + this.uid
});
},
/**
* 发起订单
*/
goPay: function() {
if (!this.isLogin) {
toLogin();
return
}
// TODO //
uni.navigateTo({
url: '/pages/users/order_confirm/index?skuId=' + this.bargainUserInfo.skuId + '&count=1'
+ '&bargainRecordId=' + this.bargainUserInfo.id
});
},
// ========== ==========
/**
* 帮好友砍价
*/
setBargainHelp: function() {
BargainApi.createBargainHelp(this.storeBargainId).then(res => {
this.$set(this, 'bargainUserHelpList', []);
this.$set(this, 'bargainUserBargainPrice', res.data);
this.$set(this, 'active', true);
//#ifdef H5 //
setOpenShare() { this.gobargainUserInfo();
let that = this; }).catch(err => {
let configTimeline = { this.$util.Tips({
title: "您的好友" + title: err
that.userInfo.nickname + })
"邀请您砍价" + this.$set(this, 'bargainUserHelpList', []);
that.bargainInfo.title, })
desc: that.bargainInfo.info, },
link: window.location.protocol + /**
"//" + * 显示 / 隐藏砍价助力列表的完整列表
window.location.host + */
'/pages/activity/goods_bargain_details/index?id=' + this.id + '&startBargainUid=' + this openTap() {
.uid + '&spid=' + this.uid + '&storeBargainId=' + this.storeBargainId, this.$set(this, 'couponsHidden', !this.couponsHidden);
imgUrl: that.bargainInfo.image },
};
if (this.$wechat.isWeixin()) {
this.$wechat.wechatEvevt([
"updateAppMessageShareData",
"updateTimelineShareData",
"onMenuShareAppMessage",
"onMenuShareTimeline"
],
configTimeline
).catch(res => {
if (res.is_ready) {
res.wx.updateAppMessageShareData(configTimeline);
res.wx.updateTimelineShareData(configTimeline);
res.wx.onMenuShareAppMessage(configTimeline);
res.wx.onMenuShareTimeline(configTimeline);
}
});
}
},
//#endif
openTap() {
this.$set(this, 'couponsHidden', !this.couponsHidden);
},
//
userBargain: function() {
if (this.uid === this.startBargainUid) {
this.setBargain();
}
},
goBack: function() {
uni.navigateBack({
delta: 1
})
},
//
make() {
let href = window.location.protocol +
"//" +
window.location.host +
'/pages/activity/goods_bargain_details/index?id=' + this.id + '&startBargainUid=' + this
.uid + '&spid=' + this.uid + '&storeBargainId=' + this.storeBargainId;
uQRCode.make({
canvasId: 'qrcode',
text: href,
size: this.qrcodeSize,
margin: 10,
success: res => {
this.PromotionCode = res;
},
complete: () => {},
fail: res => {
this.$util.Tips({
title: '海报二维码生成失败!'
});
}
})
},
// base64
getImageBase64: function(images) {
let that = this;
imageBase64({
url: images
}).then(res => {
that.imgTop = res.data.code;
})
},
goPay: function() { // // ========== =========
if (this.isLogin === false) { /**
toLogin(); * 商品图片转base64
} else { *
// * @param images 商品图片
this.$Order.getPreOrder("buyNow", [{ */
"attrValueId": parseFloat(this.bargainInfo.attrValueId), getImageBase64: function(images) {
"bargainId": parseFloat(this.id), imageBase64({
"productNum": 1, url: images
"productId": parseFloat(this.bargainInfo.productId), }).then(res => {
"bargainUserId": parseFloat(this.storeBargainId) this.imgTop = res.data.code;
}]); })
} },
}, /**
currentBargainUser: function() { // * 设置微信分享
this.page = 1; */
uni.navigateTo({ //#ifdef H5
url: '/pages/activity/goods_bargain_details/index?id=' + this.id + '&startBargainUid=' + setOpenShare() {
this.uid if (!this.$wechat.isWeixin()) {
}); return
}, }
setBargain: function() { // let configTimeline = {
var that = this; title: "您的好友" +
postBargainStart(that.id).then(res => { this.userInfo.nickname +
if (res.code === 'subscribe') { "邀请您砍价" +
return; this.bargainInfo.title,
} desc: this.bargainInfo.info,
this.storeBargainId = res.data.storeBargainUserId; link: window.location.protocol +
that.setBargainHelp(); "//" +
that.userBargainStatus = 1; window.location.host +
//#ifdef H5 '/pages/activity/goods_bargain_details/index?id=' + this.id + '&startBargainUid=' + this
that.make(); .uid + '&spid=' + this.uid + '&storeBargainId=' + this.storeBargainId,
//#endif imgUrl: this.bargainInfo.picUrl
}, error => { };
this.startBargainUid = 0; this.$wechat.wechatEvevt([
that.$util.Tips({ "updateAppMessageShareData",
title: error "updateTimelineShareData",
}) "onMenuShareAppMessage",
}) "onMenuShareTimeline"
}, ],
// configTimeline
setBargainHelp: function() { ).catch(res => {
var data = { if (res.is_ready) {
bargainId: this.id, res.wx.updateAppMessageShareData(configTimeline);
bargainUserId: this.storeBargainId, res.wx.updateTimelineShareData(configTimeline);
bargainUserUid: this.startBargainUid res.wx.onMenuShareAppMessage(configTimeline);
}; res.wx.onMenuShareTimeline(configTimeline);
postBargainHelp(data).then(res => { }
this.$set(this, 'bargainUserHelpList', []); });
this.$set(this, 'bargainUserBargainPrice', res.data.bargainPrice); },
this.$set(this, 'active', true); //#endif
this.gobargainUserInfo(); /**
}).catch(err => { * 生成海报
this.$util.Tips({ */
title: err getBargainUserBargainPricePoster: function() {
}) this.active = false
this.$set(this, 'bargainUserHelpList', []); //
}) uni.showLoading({
}, title: '海报生成中',
getBargainUserBargainPricePoster: function() { mask: true
this.active = false });
uni.showLoading({ this.posters = false;
title: '海报生成中', //
mask: true if (!this.promotionCode) {
}); uni.hideLoading();
this.posters = false; this.$util.Tips({
let arrImagesUrlTop = ''; title: this.errT
if (!this.PromotionCode) { });
uni.hideLoading(); return
this.$util.Tips({ }
title: this.errT //
}); setTimeout(() => {
return if (!this.imgTop) {
} uni.hideLoading();
setTimeout(() => { this.$util.Tips({
if (!this.imgTop) { title: '无法生成商品海报!'
uni.hideLoading(); });
this.$util.Tips({ }
title: '无法生成商品海报!' }, 1000);
});
return //
} let arrImagesUrlTop = '';
}, 1000); uni.downloadFile({
uni.downloadFile({ url: this.imgTop,
url: this.imgTop, success: (res) => {
success: (res) => { arrImagesUrlTop = res.tempFilePath;
arrImagesUrlTop = res.tempFilePath; let arrImages = [this.posterbackgd, arrImagesUrlTop, this.promotionCode];
let arrImages = [this.posterbackgd, arrImagesUrlTop, this.PromotionCode]; setTimeout(() => {
setTimeout(() => { this.$util.activityCanvas(arrImages, this.bargainInfo.name,
this.$util.activityCanvas(arrImages, this.bargainInfo.title, this this.fen2yuan(this.buyPrice),
.buyPrice, '已砍至', '还剩' + this.bargainUserInfo '已砍至',
.surplusPrice + '元砍价成功', 0, '还剩' + this.fen2yuan(this.bargainUserInfo.remainPrice) + '元砍价成功', 0,
(tempFilePath) => { (tempFilePath) => {
this.imagePath = tempFilePath; this.imagePath = tempFilePath;
this.canvasStatus = true; this.canvasStatus = true;
uni.hideLoading(); uni.hideLoading();
}); });
}, 500); }, 500);
} }
}); });
}, },
goBargainList: function() { /**
uni.navigateTo({ * 生成二维码
url: '/pages/activity/goods_bargain/index', */
}) make() {
}, let href = window.location.protocol +
close: function() { "//" +
this.$set(this, 'active', false); window.location.host +
this.$set(this, 'posters', false); '/pages/activity/goods_bargain_details/index?id=' + this.id + '&startBargainUid=' + this
this.$set(this, 'canvasStatus', false); .uid + '&spid=' + this.uid + '&storeBargainId=' + this.storeBargainId;
}, uQRCode.make({
canvasId: 'qrcode',
text: href,
size: this.qrcodeSize,
margin: 10,
success: res => {
this.promotionCode = res;
},
fail: res => {
this.$util.Tips({
title: '海报二维码生成失败!'
});
}
})
},
/**
* 关闭海报
*/
close: function() {
this.$set(this, 'active', false);
this.$set(this, 'posters', false);
this.$set(this, 'canvasStatus', false);
},
fen2yuan(price) { fen2yuan(price) {
return Util.fen2yuan(price) return Util.fen2yuan(price)
},
formatDate: function(date) {
return dayjs(date).format("YYYY-MM-DD HH:mm:ss");
} }
}, }
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
if (this.isLogin) this.getBargainDetails();
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
if (this.interval !== null) clearInterval(this.interval);
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
if (this.interval !== null) clearInterval(this.interval);
},
//#ifdef MP
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {
let that = this,
share = {
title: '您的好友' + that.userInfo.nickname + '邀请您帮他砍' + that.bargainInfo.title + ' 快去帮忙吧!',
path: '/pages/activity/goods_bargain_details/index?id=' + this.id + '&startBargainUid=' + this
.startBargainUid + '&spid=' + this.uid + '&storeBargainId=' + this.storeBargainId,
imageUrl: that.bargainInfo.image,
};
that.close();
return share;
},
//#endif
} }
</script> </script>
<style lang="scss"> <style lang="scss">

View File

@ -345,7 +345,7 @@
weixinStatus: false, // weixinStatus: false, //
canvasStatus: false, // canvasStatus: false, //
H5ShareBox: false, // H5ShareBox: false, //
posterbackgd: '/static/images/posterbackgd.png', // posterbackgd: '/static/images/posterbackgd.png', //
storeImage: '', // storeImage: '', //
actionSheetHidden: true, // actionSheetHidden: true, //
posterImage: '', // posterImage: '', //