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.

1153 lines
31 KiB

7 months ago
<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>
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
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>