1145 lines
30 KiB
Vue
1145 lines
30 KiB
Vue
<template>
|
||
<view :style="viewColor" class="page-container">
|
||
<view class='bargain'>
|
||
<!-- #ifdef H5 -->
|
||
<view class='iconfont icon-xiangzuo' v-if='!$wechat.isWeixin()' @tap='goBack' :style="'top:'+navH+'px'"></view>
|
||
<!-- #endif -->
|
||
<view class="header"
|
||
:style="{ 'background-image': bargainInfo.relation == 10 ? `url(${domain}/static/diy/assist_detail2${keyColor}.png)` : `url(${domain}/static/diy/assist_detail1${keyColor}.png)`}">
|
||
<view class='people'>
|
||
{{bargainInfo.view_num || 0}}人查看 丨 {{bargainInfo.share_num || 0}}人分享 丨 {{bargainInfo.user_count_all || 0}}人参与
|
||
</view>
|
||
<countDown v-if="bargainInfo.relation == 10" :tipText="'倒计时'" :dayText="'天'" :hourText="'时'" :minuteText="'分'"
|
||
:secondText="'秒'" :datatime="datatime" :isView="true" :isDay="true" :bgImage="`${domain}/static/images/assist-time.png`"></countDown>
|
||
<view v-if="bargainInfo.relation == 1" class='pictxt acea-row row-center-wrapper'>
|
||
<view class='pictrue'>
|
||
<image :src='userInfo.avatar ? userInfo.avatar : "/static/images/f.png"'></image>
|
||
</view>
|
||
<view class='text'>
|
||
{{userInfo.nickname || ''}}
|
||
<text>邀请您助力加油</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class='wrapper'>
|
||
<view class='pictxt acea-row row-between-wrapper' @tap="goProduct">
|
||
<view class='pictrue'>
|
||
<image :src='bargainInfo.product && bargainInfo.product.image ? bargainInfo.product.image : ""'></image>
|
||
<view class="bargain_view">
|
||
查看商品
|
||
<text class="iconfont icon-jiantou iconfonts"></text>
|
||
</view>
|
||
</view>
|
||
<view class='text acea-row row-column-around'>
|
||
<view class='line2'>{{bargainData.store_name}}</view>
|
||
<view>
|
||
<text class='money t-color'>
|
||
助力价: ¥
|
||
<text class='num'>{{bargainPrice}}</text>
|
||
</text>
|
||
<text class="old-price">¥{{old_price}}</text>
|
||
</view>
|
||
<view class='successNum'>{{bargainInfo.user_count_product}}人正在参与</view>
|
||
</view>
|
||
</view>
|
||
<!-- 进度条 -->
|
||
<block>
|
||
<view class="cu-progress acea-row row-middle round margin-top">
|
||
<view class='acea-row row-middle bg-red' :style="'width:'+ (bargainInfo.yet_assist_count/bargainInfo.assist_count*100).toFixed(2) +'%;'"></view>
|
||
</view>
|
||
<view class='money acea-row row-between-wrapper'>
|
||
<view v-if="bargainInfo.yet_assist_count != bargainInfo.assist_count">还差{{bargainInfo.assist_count-bargainInfo.yet_assist_count}}人</view>
|
||
</view>
|
||
</block>
|
||
<!-- 帮助助力、助力成功: -->
|
||
<view v-if="bargainInfo.relation == 10">
|
||
<view v-if="bargainInfo.yet_assist_count == bargainInfo.assist_count">
|
||
<view class='bargainSuccess'>
|
||
<text class='iconfont icon-xiaolian'></text>
|
||
恭喜您助力成功,快去支付
|
||
</view>
|
||
<view v-if="bargainInfo.order.paid != 0 && bargainInfo.order.paid != 1" class='bargainBnt' @tap='goPay'>立即支付</view>
|
||
<view v-else class='bargainBnt' @tap='goOrderDetail(bargainInfo.order)'>查看订单</view>
|
||
<view class='bargainBnt on' @tap='goBargainList'>抢更多商品</view>
|
||
</view>
|
||
<view v-else>
|
||
<!-- #ifdef H5 -->
|
||
<button class='bargainBnt' v-if="$wechat.isWeixin()" @click="H5ShareBox = true">邀请好友助力</button>
|
||
<button v-else class='bargainBnt copy-data' :data-clipboard-text="protocol +
|
||
'//' +
|
||
host +
|
||
'/pages/activity/assist_detail/index?id='+
|
||
id+'&spid='+uid">邀请好友助力</button>
|
||
<!-- #endif -->
|
||
<!-- #ifdef MP-->
|
||
<button open-type='share' class='bargainBnt'>邀请好友助力</button>
|
||
<!-- #endif -->
|
||
<!-- #ifdef APP-PLUS -->
|
||
<button class='bargainBnt' @click="listenerActionSheet">邀请好友助力</button>
|
||
<!-- #endif -->
|
||
<view class='tip'>
|
||
已有
|
||
<text class='t-color'>{{bargainInfo.yet_assist_count}}</text>
|
||
位好友成功助力
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view v-if="bargainInfo.relation == 1">
|
||
<view class='bargainBnt' @tap='setBargainHelp' :class="load ? 'disabled' : ''">为好友助力</view>
|
||
</view>
|
||
<view v-if="bargainInfo.relation == -1 || bargainInfo.relation == -2">
|
||
<view>
|
||
<view v-if="bargainInfo.relation == -2" class='bargainSuccess'>
|
||
<text class='iconfont icon-xiaolian'></text>
|
||
已成功助力好友
|
||
</view>
|
||
<view v-else class='bargainSuccess'>
|
||
<text class='iconfont icon-xiaolian' style="color: #999999;"></text>
|
||
商品助力次数上限
|
||
</view>
|
||
<view class='bargainBnt' @tap='currentBargainUser'>我也要发起助力</view>
|
||
</view>
|
||
</view>
|
||
<view class='lock' :style="{ 'background-image': `url(${domain}/static/images/assist-lock.png)`}"></view>
|
||
</view>
|
||
<view class='bargainGang'>
|
||
<view class='title font-color acea-row row-center-wrapper'>
|
||
<view class='pictrue'>
|
||
<image :src="domain+'/static/diy/left'+keyColor+'.png'"></image>
|
||
</view>
|
||
<view class='titleCon'>助力好友</view>
|
||
<view class='pictrue on'>
|
||
<image :src="domain+'/static/diy/left'+keyColor+'.png'"></image>
|
||
</view>
|
||
</view>
|
||
<view class='list'>
|
||
<block v-for="(item,index) in bargainUserHelpList" :key='index'>
|
||
<view class='item acea-row row-between-wrapper'>
|
||
<view class='pictxt acea-row row-between-wrapper'>
|
||
<view class='pictrue'>
|
||
<image :src='item.avatar_img' v-if="item.avatar_img"></image>
|
||
<image src="/static/images/f.png" v-else></image>
|
||
</view>
|
||
<view class='text'>
|
||
<view class='name line1'>{{item.nickname}}</view>
|
||
<view class='line1 t-color'>{{item.create_time}}</view>
|
||
</view>
|
||
</view>
|
||
<view class='money t-color'>
|
||
已助力
|
||
</view>
|
||
</view>
|
||
</block>
|
||
</view>
|
||
<view class='load font-color' v-if="!limitStatus" @tap='getBargainUser'>点击加载更多</view>
|
||
<view class='lock'></view>
|
||
</view>
|
||
<view class='goodsDetails'>
|
||
<view class='title font-color acea-row row-center-wrapper'>
|
||
<view class='pictrue'>
|
||
<image :src="domain+'/static/diy/left'+keyColor+'.png'"></image>
|
||
</view>
|
||
<view class='titleCon'>商品详情</view>
|
||
<view class='pictrue on'>
|
||
<image :src="domain+'/static/diy/left'+keyColor+'.png'"></image>
|
||
</view>
|
||
</view>
|
||
<view v-if="bargainInfo.product && bargainInfo.product.content" class='conter'>
|
||
<jyf-parser :domain='domain' :html="bargainInfo.product.content.content.replace(/<br\/>/ig, '')" ref="article" :tag-style="tagStyle"></jyf-parser>
|
||
</view>
|
||
<view class='lock'></view>
|
||
</view>
|
||
<view class='mask' catchtouchmove="true" v-show='active==true' @tap='close'></view>
|
||
</view>
|
||
<!-- 发送给朋友图片 -->
|
||
<view class="share-box" v-if="H5ShareBox">
|
||
<image :src="`${domain}/static/images/share-info.png`" @click="H5ShareBox = false"></image>
|
||
</view>
|
||
<home></home>
|
||
<!-- 分享按钮 -->
|
||
<view class="generate-posters acea-row row-middle" :class="posters ? 'on' : ''">
|
||
<button class="item" hover-class='none' @tap="goPoster">
|
||
<view class="iconfont icon-haibao"></view>
|
||
<view class="">生成海报</view>
|
||
</button>
|
||
<button class="item" hover-class='none' @click="copyPwd">
|
||
<view class="iconfont icon-fuzhikouling1"></view>
|
||
<view>生成口令</view>
|
||
</button>
|
||
</view>
|
||
<view class="mask" v-if="posters || posterImageStatus" @click="listenerActionClose"></view>
|
||
<!--口令复制结果-->
|
||
<copyPassword :isCopy='isCopy' :copyUrl='copyUrl' @close="closeCopy"></copyPassword>
|
||
<!-- 海报展示 -->
|
||
<view class='poster-pop' v-if="posterImageStatus">
|
||
<image src='../../../static/images/poster-close.png' class='close' @click="posterImageClose"></image>
|
||
<image class="poster-image" :src='posterImage'></image>
|
||
<!-- #ifndef H5 -->
|
||
<view class='save-poster' @click="savePosterPath">保存到手机</view>
|
||
<!-- #endif -->
|
||
<!-- #ifdef H5 -->
|
||
<view class="keep">长按图片可以保存到手机</view>
|
||
<!-- #endif -->
|
||
</view>
|
||
<canvas class="canvas" canvas-id='myCanvas' v-if="canvasStatus"></canvas>
|
||
<!-- #ifndef H5 -->
|
||
<passwordPopup></passwordPopup>
|
||
<!-- #endif -->
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
|
||
import {
|
||
getAssistDetail,
|
||
postAssistHelp,
|
||
assistHelpList,
|
||
initiateAssistApi,
|
||
getAssistUser
|
||
} from '../../../api/activity.js';
|
||
import { HTTP_REQUEST_URL } from '@/config/app';
|
||
import { toLogin } from '@/libs/login.js';
|
||
import { postCartAdd, getProductCode, copyPasswordApi } from '../../../api/store.js';
|
||
import copyPassword from '@/components/copyPassword';
|
||
import util from '../../../utils/util.js';
|
||
import ClipboardJS from "@/plugin/clipboard/clipboard.js";
|
||
import { mapGetters } from "vuex";
|
||
import { configMap } from "@/utils";
|
||
// #ifndef H5
|
||
import passwordPopup from '@/components/passwordPopup';
|
||
// #endif
|
||
import countDown from '@/components/countDown';
|
||
import home from '@/components/home';
|
||
import parser from "@/components/jyf-parser/jyf-parser";
|
||
import { silenceBindingSpread } from "@/utils";
|
||
import { spread, imgToBase } from '@/api/user.js'
|
||
import history from "@/mixins/history";
|
||
import shareScence from "@/libs/spread";
|
||
const app = getApp();
|
||
export default {
|
||
components: {
|
||
// #ifndef H5
|
||
passwordPopup,
|
||
// #endif
|
||
countDown,
|
||
copyPassword,
|
||
home,
|
||
"jyf-parser": parser
|
||
},
|
||
mixins: [history],
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data() {
|
||
return {
|
||
countDownDay: '00',
|
||
countDownHour: '00',
|
||
countDownMinute: '00',
|
||
countDownSecond: '00',
|
||
active: false,
|
||
id: 0, //助力产品编号
|
||
userInfo: {}, //当前用户信息
|
||
bargainUid: 0, //开启助力用户
|
||
bargainUserInfo: {}, //开启助力用户信息
|
||
bargainUserId: 0, //开启助力编号
|
||
bargainInfo: [], //助力产品
|
||
bargainData: {
|
||
assistSku: []
|
||
},
|
||
offset: 0,
|
||
limit: 20,
|
||
limitStatus: false,
|
||
bargainUserHelpList: [],
|
||
bargainUserHelpInfo: [],
|
||
bargainUserBargainPrice: 0,
|
||
status: '', // 0 开启助力 1 朋友帮忙助力 2 朋友帮忙助力成功 3 完成助力 4 助力失败 5已创建订单
|
||
bargainCount: [], //分享人数 浏览人数 参与人数
|
||
old_price: 0,
|
||
retunTop: true,
|
||
bargainPartake: 0,
|
||
interval: null,
|
||
userBargainStatus: 0, //判断自己是否助力
|
||
productStock: 0, //判断是否售罄;
|
||
quota: 0, //判断是否已限量;
|
||
userBargainStatusHelp: true,
|
||
navH: '',
|
||
statusPay: '',
|
||
bargainSumCount: 0,
|
||
bargainPrice: 0,
|
||
datatime: 0,
|
||
offest: '',
|
||
tagStyle: {
|
||
img: 'width:100%;display:block;',
|
||
video: 'width:100%;'
|
||
},
|
||
domain: HTTP_REQUEST_URL,
|
||
H5ShareBox: false, //公众号分享图片
|
||
systemH: 0,
|
||
pages: '',
|
||
protocol: '',
|
||
host: '',
|
||
currSpid: "",
|
||
posters: false,
|
||
actionSheetHidden: true,
|
||
posterImageStatus: false,
|
||
storeImage: '', //海报产品图
|
||
PromotionCode: '', //二维码图片
|
||
canvasStatus: false, //海报绘图标签
|
||
posterImage: '', //海报路径
|
||
posterbackgd: '/static/images/posterbackgd.png',
|
||
isDown: true,
|
||
isCopy: false,
|
||
copyUrl: '',
|
||
load: false,
|
||
}
|
||
},
|
||
computed:{
|
||
...configMap({site_name: '',share_pic: ''}, mapGetters(['isLogin','uid','viewColor','keyColor'])),
|
||
},
|
||
watch: {
|
||
isLogin: {
|
||
handler: function(newV, oldV) {
|
||
if (newV) {
|
||
this.getBargainDetails();
|
||
}
|
||
},
|
||
deep: true
|
||
}
|
||
},
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad: function(options) {
|
||
var that = this;
|
||
if(options.spid){
|
||
app.globalData.spid = options.spid;
|
||
that.currSpid = options.spid
|
||
}
|
||
// #ifdef MP
|
||
uni.getSystemInfo({
|
||
success: function(res) {
|
||
that.systemH = res.statusBarHeight
|
||
that.navH = that.systemH + 10
|
||
}
|
||
})
|
||
// #endif
|
||
var pages = getCurrentPages();
|
||
if (pages.length <= 1) {
|
||
// that.retunTop = false
|
||
}
|
||
//扫码携带参数处理
|
||
// #ifdef MP
|
||
if (options.scene) {
|
||
var value = util.getUrlParams(decodeURIComponent(options.scene));
|
||
if (typeof value === 'object') {
|
||
if (value.id) options.id = value.id;
|
||
if (value.bargain) options.bargain = value.bargain;
|
||
//记录推广人uid
|
||
if (value.spid){
|
||
app.globalData.spid = value.spid;
|
||
that.currSpid = value.spid
|
||
}
|
||
} else {
|
||
app.globalData.spid = value;
|
||
}
|
||
}
|
||
//记录推广人uid
|
||
if (options.spid) app.globalData.spid = options.spid;
|
||
// #endif
|
||
if (options.hasOwnProperty('id')) {
|
||
that.id = options.id;
|
||
that.bargainUid = options.bargain || 0
|
||
}
|
||
if (that.isLogin) {
|
||
console.log(that.bargainUid, 'that.bargainUid')
|
||
if (that.bargainUid == 'undefined') {
|
||
that.bargainUid = that.$store.state.app.uid
|
||
}
|
||
that.getBargainDetails();
|
||
that.downloadFilePromotionCode();
|
||
//#ifdef APP-PLUS
|
||
that.downloadFilePromotionCode();
|
||
// #endif
|
||
// #ifdef MP
|
||
that.getHistory()
|
||
// #endif
|
||
} else {
|
||
toLogin()
|
||
}
|
||
shareScence(that.currSpid,that.isLogin)
|
||
uni.setNavigationBarTitle({
|
||
title: '助力详情'
|
||
})
|
||
},
|
||
onShow: function(){
|
||
// #ifdef H5
|
||
this.protocol = window.location.protocol
|
||
this.host = window.location.host
|
||
//#endif
|
||
},
|
||
onReady: function() {
|
||
// #ifdef H5
|
||
this.$nextTick(function() {
|
||
const clipboard = new ClipboardJS(".copy-data");
|
||
clipboard.on("success", () => {
|
||
this.$util.Tips({
|
||
title: '链接已复制成功,请粘贴分享'
|
||
});
|
||
});
|
||
});
|
||
// #endif
|
||
},
|
||
methods: {
|
||
goBack: function() {
|
||
uni.navigateBack({
|
||
delta: 1
|
||
})
|
||
},
|
||
// 去商品页
|
||
goProduct() {
|
||
uni.navigateTo({
|
||
url: `/pages/goods_details/index?id=${this.bargainInfo.product.old_product_id}`
|
||
})
|
||
},
|
||
/**
|
||
* 生成海报
|
||
*/
|
||
async goPoster() {
|
||
if (this.posterImage) {
|
||
this.posterImageStatus = true
|
||
this.posters = false
|
||
return
|
||
}
|
||
let that = this;
|
||
let arr2
|
||
that.posters = false;
|
||
that.$set(that, 'canvasStatus', true);
|
||
uni.showLoading({
|
||
title: '海报生成中',
|
||
mask: true
|
||
});
|
||
// #ifdef H5
|
||
arr2 = [that.posterbackgd, await that.imgToBase(that.storeImage), await that.imgToBase(that.codeImg), await that.imgToBase(that.share_pic)];
|
||
// #endif
|
||
// #ifdef MP || APP-PLUS
|
||
arr2 = [that.posterbackgd, await that.fileStoreImage(that.storeImage), await that.fileStoreImage(
|
||
that.codeImg), await that.fileStoreImage(that.share_pic)];
|
||
// #endif
|
||
that.$util.goodsPosterCanvas(arr2, that.bargainData.store_name, that.bargainPrice, that.site_name, that.old_price, function(tempFilePath) {
|
||
that.$set(that, 'posterImage', tempFilePath);
|
||
that.$set(that, 'posterImageStatus', true);
|
||
that.$set(that, 'canvasStatus', false);
|
||
that.$set(that, 'actionSheetHidden', !that.actionSheetHidden);
|
||
}, (err) => {
|
||
that.$set(that, 'canvasStatus', false);
|
||
});
|
||
},
|
||
async imgToBase(url) {
|
||
let res = await imgToBase({
|
||
image: url
|
||
})
|
||
return res.data.image
|
||
},
|
||
//图片转符合安全域名路径
|
||
fileStoreImage(url) {
|
||
// #ifdef MP
|
||
let ishttps = url.split('//')[0] == 'https:'
|
||
if (!ishttps) {
|
||
url = 'https://'+url.split('//')[1]
|
||
}
|
||
// #endif
|
||
return new Promise((resolve, reject) => {
|
||
let that = this;
|
||
uni.downloadFile({
|
||
url: url,
|
||
success: function(res) {
|
||
resolve(res.tempFilePath);
|
||
},
|
||
fail: function(error) {
|
||
console.log(error)
|
||
return that.$util.Tips({
|
||
title: `${error}`
|
||
});
|
||
}
|
||
});
|
||
})
|
||
},
|
||
/**
|
||
* 分享打开
|
||
*
|
||
*/
|
||
listenerActionSheet: function() {
|
||
if (this.isLogin == false) {
|
||
toLogin()
|
||
} else {
|
||
this.posters = !this.posters;
|
||
}
|
||
},
|
||
// 分享关闭
|
||
listenerActionClose: function() {
|
||
this.posters = false;
|
||
},
|
||
//隐藏海报
|
||
posterImageClose: function() {
|
||
this.posterImageStatus = false
|
||
},
|
||
downloadFilePromotionCode() {
|
||
let that = this;
|
||
let type;
|
||
// #ifndef MP
|
||
type = 'wechat'
|
||
// #endif
|
||
// #ifdef MP
|
||
type = 'routine'
|
||
// #endif
|
||
getProductCode(that.id, {
|
||
type: type,
|
||
product_type: 3
|
||
}).then(async res => {
|
||
that.codeImg = res.data.url;
|
||
console.log(this.codeImg)
|
||
that.$set(that, 'isDown', false);
|
||
}).catch(err => {
|
||
that.$util.Tips({
|
||
title: err
|
||
});
|
||
that.posters = false;
|
||
that.$set(that, 'isDown', false);
|
||
that.$set(that, 'PromotionCode', '');
|
||
});
|
||
},
|
||
|
||
/*
|
||
* 保存到手机相册
|
||
*/
|
||
|
||
savePosterPath: function() {
|
||
let that = this;
|
||
// #ifdef APP-PLUS
|
||
uni.saveImageToPhotosAlbum({
|
||
filePath: that.posterImage,
|
||
success: function(res) {
|
||
that.posterImageClose();
|
||
that.$util.Tips({
|
||
title: '保存成功',
|
||
icon: 'success'
|
||
});
|
||
},
|
||
fail: function(res) {
|
||
that.$util.Tips({
|
||
title: '保存失败'
|
||
});
|
||
},
|
||
})
|
||
// #endif
|
||
},
|
||
//复制口令
|
||
copyPwd(){
|
||
let that = this;
|
||
copyPasswordApi({
|
||
id: that.id,
|
||
product_type: 30
|
||
}).then(async res => {
|
||
that.copyUrl = res.data.str;
|
||
that.posters = false
|
||
that.isCopy = true;
|
||
})
|
||
},
|
||
closeCopy(){
|
||
this.isCopy = false
|
||
},
|
||
goPay: function() { //立即支付
|
||
var that = this;
|
||
var data = {
|
||
product_id: that.bargainInfo.product_assist_set_id,
|
||
product_attr_unique: that.bargainInfo.product.unique,
|
||
cart_num: 1,
|
||
product_type: 3,
|
||
is_new: 1
|
||
};
|
||
postCartAdd(data).then(res => {
|
||
uni.navigateTo({
|
||
url: '/pages/users/order_confirm/index?new=1&cartId=' + res.data.cart_id
|
||
});
|
||
}).catch(err => {
|
||
return that.$util.Tips({
|
||
title: err
|
||
})
|
||
});
|
||
},
|
||
getBargainDetails: function() { //获取助力产品详情
|
||
var that = this;
|
||
var id = that.id;
|
||
getAssistDetail(id,{type: 2}).then(function(res) {
|
||
that.bargainInfo = res.data;
|
||
that.bargainData = res.data.assist;
|
||
that.bargainPrice = that.bargainData.assistSku[0].assist_price;
|
||
that.old_price = (that.bargainData.assistSku[0].sku && that.bargainData.assistSku[0].sku.price) || 0;
|
||
that.userInfo = res.data.user;
|
||
that.bargainSumCount = res.data.yet_assist_count;
|
||
that.$set(that, 'storeImage', that.bargainInfo.product.image);
|
||
that.datatime = res.data.stopTime;
|
||
that.pages = '/pages/activity/assist_detail/index?id=' + that.id;
|
||
that.bargainUserHelpList = []
|
||
that.getBargainUser();
|
||
//#ifdef H5
|
||
that.setOpenShare();
|
||
//#endif
|
||
}).catch(function(err) {
|
||
that.$util.Tips({
|
||
title: err
|
||
}, {
|
||
tab: 3
|
||
})
|
||
})
|
||
},
|
||
currentBargainUser: function() { //当前用户助力
|
||
let that = this;
|
||
let id = that.bargainInfo.product_assist_id;
|
||
initiateAssistApi(id).then(res => {
|
||
let assist_id = res.data.product_assist_set_id
|
||
uni.hideLoading();
|
||
uni.navigateTo({
|
||
url: '/pages/activity/assist_detail/index?id=' + assist_id
|
||
});
|
||
}).catch((err) => {
|
||
uni.hideLoading();
|
||
that.$util.Tips({
|
||
title: err
|
||
})
|
||
});
|
||
},
|
||
setBargainHelp: function() { //帮好友助力
|
||
var that = this;
|
||
that.load = true
|
||
postAssistHelp(that.bargainInfo.product_assist_set_id).then(res => {
|
||
that.$set(that, 'bargainUserHelpList', []);
|
||
that.getBargainUser();
|
||
that.$util.Tips({
|
||
title: res.message
|
||
})
|
||
that.getBargainDetails();
|
||
that.load = false
|
||
}).catch(err => {
|
||
that.$util.Tips({
|
||
title: err
|
||
})
|
||
that.$set(that, 'bargainUserHelpList', []);
|
||
that.getBargainUser();
|
||
that.load = false
|
||
})
|
||
},
|
||
getBargainUser: function() { //获取助力帮
|
||
var that = this;
|
||
var data = {
|
||
offset: that.offset,
|
||
limit: that.limit,
|
||
};
|
||
assistHelpList(that.id).then(res => {
|
||
var bargainUserHelpListNew = [];
|
||
var bargainUserHelpList = that.bargainUserHelpList;
|
||
var len = res.data.list.length;
|
||
bargainUserHelpListNew = bargainUserHelpList.concat(res.data.list);
|
||
that.$set(that, 'bargainUserHelpList', res.data.list);
|
||
that.$set(that, 'limitStatus', data.limit > len);
|
||
that.$set(that, 'offest', (Number(data.offset) + Number(data.limit)));
|
||
});
|
||
},
|
||
goBargainList: function() {
|
||
uni.navigateTo({
|
||
url: '/pages/activity/assist/index',
|
||
})
|
||
},
|
||
goOrderDetail: function(order) {
|
||
if (order.paid == 1) {
|
||
uni.navigateTo({
|
||
url: '/pages/order_details/index?order_id=' + order.order_id,
|
||
})
|
||
} else {
|
||
uni.navigateTo({
|
||
url: '/pages/order_details/stay?order_id=' + order.group_order_id,
|
||
})
|
||
}
|
||
},
|
||
close: function() {
|
||
this.$set(this, 'active', false);
|
||
},
|
||
addShareAssist: function() { //添加分享次数 获取人数
|
||
var that = this;
|
||
getAssistUser(that.bargainInfo.product_assist_set_id).then(res => {});
|
||
},
|
||
//#ifdef H5
|
||
setOpenShare() {
|
||
let that = this;
|
||
let configTimeline = {
|
||
title: "您的好友" +
|
||
that.userInfo.nickname +
|
||
"邀请您助力" +
|
||
that.bargainInfo.product.store_name,
|
||
desc: that.bargainInfo.product.store_name,
|
||
link: window.location.protocol +
|
||
"//" +
|
||
window.location.host +
|
||
"/pages/activity/assist_detail/index?id=" +
|
||
that.id+'&spid='+that.uid,
|
||
imgUrl: that.bargainInfo.product.image,
|
||
};
|
||
if (this.$wechat.isWeixin()) {
|
||
this.$wechat.wechatEvevt([
|
||
"updateAppMessageShareData",
|
||
"updateTimelineShareData",
|
||
"onMenuShareAppMessage",
|
||
"onMenuShareTimeline"
|
||
],
|
||
configTimeline
|
||
)
|
||
.then(res => {
|
||
console.log(res);
|
||
})
|
||
.catch(res => {
|
||
if (res.is_ready) {
|
||
res.wx.updateAppMessageShareData(configTimeline);
|
||
res.wx.updateTimelineShareData(configTimeline);
|
||
res.wx.onMenuShareAppMessage(configTimeline);
|
||
res.wx.onMenuShareTimeline(configTimeline);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
//#endif
|
||
},
|
||
/** 生命周期函数--监听页面隐藏
|
||
*/
|
||
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.product.store_name + ' 快去帮忙吧!',
|
||
path: '/pages/activity/assist_detail/index?id=' + this.id+'&spread='+that.uid,
|
||
imageUrl: that.bargainInfo.product.image,
|
||
};
|
||
that.close();
|
||
that.addShareAssist();
|
||
return share;
|
||
},
|
||
//#endif
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
.page-container {
|
||
min-height: 100vh;
|
||
background-color: var(--view-theme);
|
||
}
|
||
.canvas {
|
||
z-index: 300;
|
||
width: 750px;
|
||
height: 1190px;
|
||
opacity: 0;
|
||
}
|
||
.poster-pop {
|
||
width: 600rpx;
|
||
height: 897rpx;
|
||
position: fixed;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
z-index: 1000;
|
||
top: 50%;
|
||
margin-top: -446rpx;
|
||
}
|
||
.poster-pop image {
|
||
width: 100%;
|
||
height: 100%;
|
||
display: block;
|
||
}
|
||
.poster-pop .close {
|
||
width: 46rpx;
|
||
height: 75rpx;
|
||
position: fixed;
|
||
right: 0;
|
||
top: -73rpx;
|
||
display: block;
|
||
}
|
||
.poster-pop .save-poster {
|
||
background-color: #df2d0a;
|
||
font-size: :22rpx;
|
||
color: #fff;
|
||
text-align: center;
|
||
height: 76rpx;
|
||
line-height: 76rpx;
|
||
width: 100%;
|
||
border-radius: 43rpx;
|
||
margin-top: 20rpx;
|
||
}
|
||
.poster-pop .keep {
|
||
color: #fff;
|
||
text-align: center;
|
||
font-size: 25rpx;
|
||
margin-top: 10rpx;
|
||
}
|
||
.mask {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
background-color: rgba(0, 0, 0, 0.6);
|
||
z-index: 100;
|
||
}
|
||
.generate-posters {
|
||
width: 100%;
|
||
height: 170rpx;
|
||
background-color: #fff;
|
||
position: fixed;
|
||
left: 0;
|
||
bottom: 0;
|
||
z-index: 999;
|
||
transform: translate3d(0, 100%, 0);
|
||
transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
|
||
border-top: 1px solid #eee;
|
||
}
|
||
.generate-posters.on {
|
||
transform: translate3d(0, 0, 0);
|
||
}
|
||
.generate-posters .item {
|
||
flex: 50%;
|
||
text-align: center;
|
||
font-size: 30rpx;
|
||
}
|
||
.generate-posters .item .iconfont {
|
||
font-size: 80rpx;
|
||
color: #5eae72;
|
||
}
|
||
.generate-posters .item .iconfont.icon-haibao {
|
||
color: #5391f1;
|
||
}
|
||
.generate-posters .item .iconfont.icon-fuzhikouling1 {
|
||
color: #FBB324;
|
||
}
|
||
.bargain .icon-xiangzuo {
|
||
font-size: 40rpx;
|
||
color: #fff;
|
||
position: fixed;
|
||
top: 30rpx;
|
||
left: 30rpx;
|
||
z-index: 99;
|
||
font-size: 36rpx;
|
||
}
|
||
.bargain .header {
|
||
background-repeat: no-repeat;
|
||
background-size: 100% 100%;
|
||
width: 698rpx;
|
||
height: 572rpx;
|
||
margin: 0 auto;
|
||
padding-top: 0.1rpx;
|
||
position: relative;
|
||
}
|
||
.bargain .header .pictxt {
|
||
margin: 330rpx auto 0 auto;
|
||
font-size: 26rpx;
|
||
color: #fff;
|
||
}
|
||
.bargain .header .pictxt .pictrue {
|
||
width: 56rpx;
|
||
height: 56rpx;
|
||
margin-right: 30rpx;
|
||
}
|
||
.bargain .header .pictxt .pictrue image {
|
||
width: 100%;
|
||
height: 100%;
|
||
border-radius: 50%;
|
||
border: 2rpx solid #fff;
|
||
}
|
||
.bargain .header .pictxt .text text {
|
||
margin-left: 20rpx;
|
||
}
|
||
/deep/.bargain .header .time {
|
||
background-repeat: no-repeat;
|
||
background-size: 100% 100%;
|
||
width: 480rpx;
|
||
height: 166rpx;
|
||
font-size: 22rpx;
|
||
text-align: center;
|
||
padding-top: 11rpx;
|
||
box-sizing: border-box;
|
||
position: absolute;
|
||
top: 340rpx;
|
||
left: 50%;
|
||
margin-left: -240rpx;
|
||
align-items: inherit;
|
||
}
|
||
.t-color {
|
||
color: var(--view-theme);
|
||
}
|
||
.b-color {
|
||
background-color: var(--view-theme);
|
||
}
|
||
.bargain .header .people {
|
||
text-align: center;
|
||
color: #fff;
|
||
font-size: 20rpx;
|
||
position: absolute;
|
||
width: 100%;
|
||
/* #ifdef MP || APP-PLUS */
|
||
height: 44px;
|
||
line-height: 44px;
|
||
/* #endif */
|
||
/* #ifdef H5 */
|
||
top: 36rpx;
|
||
/* #endif */
|
||
}
|
||
.bargain .header .time text {
|
||
// color: var(--view-theme);
|
||
}
|
||
.bargain .wrapper,
|
||
.bargain .bargainGang,
|
||
.bargain .goodsDetails {
|
||
width: 660rpx;
|
||
border: 6rpx solid #fc8b42;
|
||
background-color: #fff;
|
||
border-radius: 20rpx;
|
||
margin: -162rpx auto 0 auto;
|
||
box-sizing: border-box;
|
||
padding: 0 24rpx 47rpx 24rpx;
|
||
position: relative;
|
||
}
|
||
.bargain .wrapper .pictxt {
|
||
margin: 26rpx 0 37rpx 0;
|
||
}
|
||
.bargain .wrapper .pictxt .pictrue {
|
||
width: 180rpx;
|
||
height: 180rpx;
|
||
position: relative;
|
||
}
|
||
.bargain .wrapper .pictxt .pictrue image {
|
||
width: 100%;
|
||
height: 100%;
|
||
border-radius: 6rpx;
|
||
}
|
||
.bargain .wrapper .pictxt .text {
|
||
width: 395rpx;
|
||
font-size: 28rpx;
|
||
color: #282828;
|
||
height: 180rpx;
|
||
}
|
||
.bargain .wrapper .pictxt .text .money {
|
||
font-weight: bold;
|
||
font-size: 24rpx;
|
||
color: var(--view-priceColor);
|
||
}
|
||
.bargain .wrapper .pictxt .text .money .num {
|
||
font-size: 36rpx;
|
||
}
|
||
.bargain .wrapper .pictxt .text .old-price{
|
||
text-decoration: line-through;
|
||
color: #999;
|
||
margin-left: 10rpx;
|
||
font-size: 24rpx;
|
||
}
|
||
.bargain .wrapper .pictxt .text .successNum {
|
||
font-size: 22rpx;
|
||
color: #999;
|
||
}
|
||
.bargain .wrapper .cu-progress {
|
||
overflow: hidden;
|
||
height: 12rpx;
|
||
background-color: #eee;
|
||
width: 100%;
|
||
border-radius: 20rpx;
|
||
}
|
||
.bargain .wrapper .cu-progress .bg-red {
|
||
width: 0;
|
||
height: 100%;
|
||
transition: width 0.6s ease;
|
||
border-radius: 20rpx;
|
||
background-image: linear-gradient(to right, var(--view-bntColor11) 0%, var(--view-bntColor12) 100%);
|
||
}
|
||
.bargain .wrapper .money {
|
||
font-size: 22rpx;
|
||
color: #999;
|
||
margin-top: 15rpx;
|
||
}
|
||
.bargain .wrapper .bargainSuccess {
|
||
font-size: 26rpx;
|
||
color: #282828;
|
||
text-align: center;
|
||
}
|
||
.bargain .wrapper .bargainSuccess .iconfont {
|
||
font-size: 45rpx;
|
||
color: #54c762;
|
||
padding-right: 18rpx;
|
||
vertical-align: -5rpx;
|
||
}
|
||
.bargain .wrapper .bargainBnt {
|
||
font-size: 30rpx;
|
||
font-weight: bold;
|
||
color: #fff;
|
||
width: 600rpx;
|
||
height: 80rpx;
|
||
border-radius: 40rpx;
|
||
background-image: linear-gradient(to right, var(--view-bntColor21) 0%, var(--view-bntColor22) 100%);
|
||
text-align: center;
|
||
line-height: 80rpx;
|
||
margin-top: 32rpx;
|
||
&.disabled {
|
||
background: #BFBFBF;
|
||
pointer-events: none;
|
||
}
|
||
}
|
||
.bargain .wrapper .bargainBnt.on {
|
||
border: 2rpx solid var(--view-theme);
|
||
color: var(--view-theme);
|
||
background-image: linear-gradient(to right, #fff 0%, #fff 100%);
|
||
width: 596rpx;
|
||
height: 76rpx;
|
||
}
|
||
.bargain .wrapper .bargainBnt.grey {
|
||
color: #fff;
|
||
background-image: linear-gradient(to right, #BBBBBB 0%, #BBBBBB 100%);
|
||
}
|
||
.bargain .wrapper .tip {
|
||
font-size: 22rpx;
|
||
color: #999;
|
||
text-align: center;
|
||
margin-top: 20rpx;
|
||
}
|
||
.bargain .wrapper .lock,
|
||
.bargain .bargainGang .lock,
|
||
.bargain .goodsDetails .lock {
|
||
background-repeat: no-repeat;
|
||
background-size: 100% 100%;
|
||
width: 548rpx;
|
||
height: 66rpx;
|
||
position: absolute;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
bottom: -43rpx;
|
||
z-index: 5;
|
||
}
|
||
.bargain .bargainGang {
|
||
margin: 13rpx auto 0 auto;
|
||
}
|
||
.bargain .bargainGang .title,
|
||
.bargain .goodsDetails .title {
|
||
font-size: 32rpx;
|
||
font-weight: bold;
|
||
height: 80rpx;
|
||
margin-top: 30rpx;
|
||
}
|
||
.bargain .bargainGang .title .pictrue,
|
||
.bargain .goodsDetails .title .pictrue {
|
||
width: 46rpx;
|
||
height: 24rpx;
|
||
}
|
||
.bargain .bargainGang .title .pictrue.on,
|
||
.bargain .goodsDetails .title .pictrue.on {
|
||
transform: rotate(180deg);
|
||
}
|
||
.bargain .bargainGang .title .pictrue image,
|
||
.bargain .goodsDetails .title .pictrue image {
|
||
width: 100%;
|
||
height: 100%;
|
||
display: block;
|
||
}
|
||
.bargain .bargainGang .title .titleCon,
|
||
.bargain .goodsDetails .title .titleCon {
|
||
margin: 0 20rpx;
|
||
color: var(--view-theme);
|
||
}
|
||
.bargain .bargainGang .list .item {
|
||
border-bottom: 1rpx dashed #ddd;
|
||
height: 112rpx;
|
||
}
|
||
.bargain .bargainGang .list .item .pictxt {
|
||
width: 310rpx;
|
||
}
|
||
.bargain .bargainGang .list .item .pictxt .pictrue {
|
||
width: 70rpx;
|
||
height: 70rpx;
|
||
}
|
||
.bargain .bargainGang .list .item .pictxt .pictrue image {
|
||
width: 100%;
|
||
height: 100%;
|
||
border-radius: 50%;
|
||
}
|
||
.bargain .bargainGang .list .item .pictxt .text {
|
||
width: 225rpx;
|
||
font-size: 20rpx;
|
||
color: #999;
|
||
}
|
||
.bargain .bargainGang .list .item .pictxt .text .name {
|
||
font-size: 25rpx;
|
||
color: #282828;
|
||
margin-bottom: 7rpx;
|
||
}
|
||
.bargain .bargainGang .list .item .money {
|
||
font-size: 25rpx;
|
||
}
|
||
.bargain .bargainGang .list .item .money .iconfont {
|
||
font-size: 35rpx;
|
||
vertical-align: middle;
|
||
margin-right: 10rpx;
|
||
}
|
||
.bargain .bargainGang .load {
|
||
font-size: 24rpx;
|
||
text-align: center;
|
||
line-height: 80rpx;
|
||
height: 80rpx;
|
||
}
|
||
.bargain .goodsDetails {
|
||
margin: 13rpx auto 0 auto;
|
||
}
|
||
.bargain .goodsDetails~.goodsDetails {
|
||
margin-bottom: 50rpx;
|
||
}
|
||
.bargain .goodsDetails .conter {
|
||
margin-top: 20rpx;
|
||
overflow: hidden;
|
||
}
|
||
.bargain_view {
|
||
width: 180rpx;
|
||
height: 48rpx;
|
||
background: rgba(0, 0, 0, 0.5);
|
||
opacity: 1;
|
||
border-radius: 0 0 6rpx 6rpx;
|
||
position: absolute;
|
||
bottom: 0;
|
||
font-size: 22rpx;
|
||
color: #fff;
|
||
text-align: center;
|
||
line-height: 48rpx;
|
||
}
|
||
.iconfonts {
|
||
font-size: 22rpx !important;
|
||
}
|
||
.bargain .mask {
|
||
z-index: 100;
|
||
}
|
||
.share-box {
|
||
z-index: 1000;
|
||
position: fixed;
|
||
left: 0;
|
||
top: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
image {
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
</style>
|