Commit bf3f2d86 authored by 徐光星's avatar 徐光星

Merge branch 'feat/group-buy' into 'master'

Feat/group buy

See merge request !5
parents 23e7529f 905e024b
src/assets/images/defeat.png

12.7 KB | W: | H:

src/assets/images/defeat.png

16.8 KB | W: | H:

src/assets/images/defeat.png
src/assets/images/defeat.png
src/assets/images/defeat.png
src/assets/images/defeat.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/images/success.png

16.2 KB | W: | H:

src/assets/images/success.png

21.4 KB | W: | H:

src/assets/images/success.png
src/assets/images/success.png
src/assets/images/success.png
src/assets/images/success.png
  • 2-up
  • Swipe
  • Onion skin
<template>
<div class="avator-group">
<div
v-for="(item, index) in avators.slice(0, 9)"
:key="index"
class="avator-item"
:style="widthStyle"
>
<div v-for="(item, index) in avators.slice(0, 9)" :key="index" class="avator-item">
<cr-image
class="avator-img"
:class="{ avator: index == 0 }"
......@@ -32,13 +27,12 @@
</div>
</div>
<div
v-for="n in placeholderNum"
:key="`placeholder-${n}`"
v-for="(val, idx) in placeholderNum"
:key="`placeholder-${idx}`"
class="placeholder"
:class="{ leader: avators.length == 0 }"
:style="widthStyle"
>
<template v-if="avators.length == 0 && n == 1">
<template v-if="avators.length == 0 && idx == 0">
<div class="is-leader">
<cr-image class="crown" width="" height="" src="@/assets/images/leaderIcon.png" />
</div>
......@@ -52,9 +46,9 @@
</div>
<div class="border" />
</template>
<div class="content" :class="{ avator: avators.length == 0 && n == 1 }">?</div>
<div class="content" :class="{ avator: avators.length == 0 && idx == 0 }">?</div>
</div>
<div v-if="groupHC >= 10" class="more" :style="widthStyle" @click="showMoreAvator">
<div v-if="groupHC >= 10" class="more" @click="showMoreAvator">
<div class="content" />
</div>
<template v-if="showDialogSlot">
......@@ -71,12 +65,7 @@
justify-content: center;
"
>
<div
v-for="(item, index) in avators"
:key="index"
class="avator-item"
:style="widthStyle"
>
<div v-for="(item, index) in avators" :key="index" class="avator-item">
<cr-image
:key="index"
:class="{ avator: index == 0 }"
......@@ -99,6 +88,7 @@
src="@/assets/images/leader-name.png"
/>
</div>
<div class="border" />
</div>
</div>
</cr-dialog>
......@@ -126,16 +116,18 @@ export default {
computed: {
placeholderNum() {
// 问号头像展位数量
let num = 0;
if (this.groupHC >= 10) {
// 用9去减是因为有个展示更多的按钮
return 9 - this.avators.length < 0 ? 0 : 9 - this.avators.length;
num = 9 - this.avators.length < 0 ? 0 : 9 - this.avators.length;
} else {
return this.groupHC - this.avators.length < 0 ? 0 : this.groupHC - this.avators.length;
num = this.groupHC - this.avators.length < 0 ? 0 : this.groupHC - this.avators.length;
}
},
widthStyle() {
// 用于单个头像不能占一排
return this.avators.length == 6 ? { width: '25%' } : { width: '20%' };
const arr = [];
for (let i = 0; i < num; i++) {
arr.push({});
}
return arr;
}
},
created() {
......@@ -168,14 +160,14 @@ export default {
}
.border {
position: absolute;
top: 0;
top: -1px;
left: 50%;
transform: translateX(-50%);
background: url('../assets/images/leaderBorder.png');
background-size: cover;
z-index: 2;
width: 44px;
height: 100%;
width: 48px;
height: 48px;
}
.avator {
// background: url('../assets/images/leaderBorder.png');
......@@ -201,8 +193,8 @@ export default {
}
.is-leader {
position: absolute;
right: 4px;
top: -9px;
right: 2px;
top: -10px;
z-index: 3;
.crown {
width: 22px;
......
......@@ -170,8 +170,8 @@ export default {
// 获取地址列表
async getAddrList(addrId = '', index = 0) {
const areaData = JSON.parse(JSON.stringify(this.areaData)); // 浅拷贝
const res = await address.zoneList(addrId); // 获取地址列表默认取一级
const addrList = res[0].addrList || [];
const [res] = await address.zoneList(addrId); // 获取地址列表默认取一级
const addrList = res.addrList || [];
areaData[index] = addrList;
if (addrList && addrList.length) {
// 点击最后一级别addrId 所得addrList数据为空
......
......@@ -31,8 +31,8 @@
</template>
</div>
<div
v-for="num in maxCount - avatorList.length"
:key="`placeholder${num}`"
v-for="(val, idx) in placeholderArr"
:key="`placeholder${idx}`"
class="item placeholder"
style="width: 94px;height: 94px;margin: 0 21px;font-size: 34px;"
/>
......@@ -59,8 +59,8 @@
</div>
</div>
<div
v-for="num in maxCount - avatorList.length"
:key="`placeholder${num}`"
v-for="(val, idx) in placeholderArr"
:key="`placeholder${idx}`"
class="item placeholder"
style="width: 94px;height: 94px;margin: 0 21px;font-size: 34px;"
/>
......@@ -143,6 +143,16 @@ export default {
skuName: '' // 兼容safari做的特殊处理,每个文字都加一个span标签
};
},
computed: {
placeholderArr() {
const arr = [];
const num = this.maxCount - this.avatorList.length;
for (let i = 0; i < num; i++) {
arr.push({});
}
return arr;
}
},
methods: {
// 参团人数小于7时,头像全部显示;大于时展示6个头像...
handleAvator(sharePicData) {
......@@ -167,34 +177,55 @@ export default {
}
return n;
},
async prepare(rawData) {
this.sharePicData = rawData;
// async prepare(rawData) {
// this.sharePicData = rawData;
// this.handleAvator(rawData);
this.handleAvator(rawData);
// // 将每个字符套入行内标签,用于解决canvas fillText的不换行问题
// let skuName = '';
// const originSkuName = rawData.skuName || '';
// for (let i = 0; i < originSkuName.length; i++) {
// skuName += `<span>${originSkuName[i]}</span>`;
// }
// this.skuName = skuName;
// const [endTimeYMD, endTimeHMS = ''] = (rawData.endTime && rawData.endTime.split(' ')) || [];
// if (endTimeYMD) {
// const day = new Date(endTimeYMD);
// this.endTime = `${day.getMonth() + 1}月${day.getDate()}日 ${endTimeHMS}`;
// }
// const [qrcodeUrl] = await groupBuyApi.getQrcodeUrl(rawData);
// this.qrcodeUrl = qrcodeUrl;
// },
async createAndUploadPic(sharePicData) {
console.log(JSON.stringify(sharePicData), '分享海报所需数据');
this.$store.dispatch('change_loading_pic', true);
this.sharePicData = sharePicData;
this.handleAvator(sharePicData);
// 将每个字符套入行内标签,用于解决canvas fillText的不换行问题
let skuName = '';
const originSkuName = rawData.skuName || '';
const originSkuName = sharePicData.skuName || '';
for (let i = 0; i < originSkuName.length; i++) {
skuName += `<span>${originSkuName[i]}</span>`;
}
this.skuName = skuName;
const [endTimeYMD, endTimeHMS = ''] = (rawData.endTime && rawData.endTime.split(' ')) || [];
const [endTimeYMD, endTimeHMS = ''] =
(sharePicData.endTime && sharePicData.endTime.split(' ')) || [];
if (endTimeYMD) {
const day = new Date(endTimeYMD);
this.endTime = `${day.getMonth() + 1}${day.getDate()}${endTimeHMS}`;
}
const [qrcodeUrl] = await groupBuyApi.getQrcodeUrl(rawData);
const [qrcodeUrl] = await groupBuyApi.getQrcodeUrl(sharePicData);
this.qrcodeUrl = qrcodeUrl;
},
async createAndUploadPic(sharePicData) {
this.$store.dispatch('change_loading_pic', true);
await this.prepare(sharePicData);
this.$nextTick(() => {
setTimeout(() => {
html2canvas(this.$refs.sharePic, {
width: 1080,
height: 1920,
......@@ -209,6 +240,7 @@ export default {
.catch(error => {
this.errorHandler(error);
});
}, 300);
});
},
// 上传海报到七牛,成功后触发outputPicUr事件,参数是七牛文件地址
......
......@@ -12,6 +12,7 @@ import Raven from 'raven-js';
import RavenVue from 'raven-js/plugins/vue';
import { release } from '../.sentryclirc';
import lazyload from '@qg/cherry-ui/src/lazyload/index';
import 'intersection-observer';
if (process.env.SENTRY_ENV !== 'test' && process.env.NODE_ENV === 'production') {
Raven.config('//8d1b2a5f74bb42ad806e52a11b1173f2@sentry.q-gp.com/80', {
release,
......
......@@ -55,6 +55,7 @@ export default {
const params = {
editAddress: item
};
console.log(params, JSON.stringify(params));
this.$router.push({
name: 'addressManage',
params,
......
......@@ -13,8 +13,6 @@
v-model="address.receiverPhoneNo"
class="address-input"
name="手机号码"
type="tel"
max-length="11"
label="手机号码"
placeholder="请输入收货人手机号码"
/>
......@@ -99,14 +97,16 @@ export default {
firstGroupShare();
this.type = this.$route.query.type || '';
this.order = this.$route.query.type || false;
console.log(this.order);
if (this.type === 'edit') {
console.log(this.$route.params);
const data = { ...this.$route.params.editAddress };
if (data.addrFullName) {
data.addrFullName = data.addrFullName
.substring(0, data.addrFullName.length - data.detail.length)
.replace(/()/g, '');
this.address = data;
}
}
},
methods: {
handlePickerShow(e) {
......
......@@ -50,25 +50,26 @@
</template>
<template v-else>
<cr-button
v-if="info.groupBuyStatus == 1"
class="mutiplie"
shape="circle"
plain
:disabled="disabled"
type="primary"
block
@click="shareTo"
@click="toList"
>
邀请好友
查看活动详情
</cr-button>
<cr-button
v-if="info.groupBuyStatus != 1 && !timeIsOver"
v-if="info.groupBuyStatus == 1"
class="mutiplie"
shape="circle"
plain
:disabled="disabled"
type="primary"
block
@click="toList"
@click="shareTo"
>
查看其他商品
邀请好友
</cr-button>
</template>
</div>
......@@ -110,18 +111,9 @@ export default {
},
data() {
return {
nativeBridge: null,
timeIsOver: false
nativeBridge: null
};
},
created() {
if (this.status == 2) {
// 订单详情页
const currentTime = new Date(this.currentTime.replace(/\-/g, '/')).getTime();
const endTime = new Date(this.endTime.replace(/\-/g, '/')).getTime();
this.timeIsOver = currentTime >= endTime ? true : false;
}
},
methods: {
toList() {
const { activityId } = this.$route.query || '';
......
......@@ -2,11 +2,12 @@
<div class="group-info-desc">
<div class="desc-item">
<template v-if="groupInfo.groupBuyStatus == 1">
<!-- 拼团中状态 -->
<template v-if="!groupInfo.joinGroup && !groupInfo.canJoinGroupBuyAgain">
<!-- 您不符合参与此团的条件 -->
</template>
<template v-else>
<p class="desc">
<p class="desc inProcess">
还差<span>{{ groupInfo.groupBuyNeedUserCount }}</span>成团,距结束仅剩
</p>
<countDown v-if="!!timestemp" :block-no-bg="true" :end-time="timestemp" from="desc" />
......@@ -14,11 +15,16 @@
</template>
<template v-else>
<template v-if="groupInfo.groupBuyStatus != 2">
<p class="desc">
<!-- 拼团非成功状态 -->
<p v-if="groupInfo.groupBuyStatus == 3" class="desc">
{{ groupInfo.failedReason || statusTextMap[groupInfo.groupBuyStatus] }}
</p>
<p v-else class="desc">
{{ statusTextMap[groupInfo.groupBuyStatus] }}
</p>
</template>
<template v-else>
<!-- 拼团成功 -->
<p v-if="groupInfo.joinGroup" class="desc">
{{ statusTextMap[groupInfo.groupBuyStatus] }}
</p>
......@@ -26,36 +32,40 @@
</template>
</template>
</div>
<div class="gourp-rules">
<template v-if="groupInfo.groupBuyStatus == 1 || groupInfo.groupBuyStatus == 0">
<div
v-if="
(groupInfo.groupBuyStatus == 1 || groupInfo.groupBuyStatus == 0) &&
groupInfo.groupBuyNeedNewUserCount
"
class="gourp-rules"
>
<p>成团条件:{{ groupInfo.groupBuyCondition || '' }}</p>
<cr-image src="@/assets/images/flag.png" width="13px" />
</template>
<!-- </template> -->
</div>
<div v-if="showButtonGroup" ref="buttonArea" class="button-area">
<div v-if="groupInfo.groupBuyStatus == 1" class="shareToButton">
<cr-button block shape="circle" type="primary" @click="share">邀请好友</cr-button>
</div>
<div class="toListButton">
<cr-button
v-if="groupInfo.groupBuyStatus == 1"
block
shape="circle"
type="primary"
@click="share"
>邀请好友</cr-button
>
<cr-button
v-if="groupInfo.groupBuyStatus != 1 && !timeIsOver"
plain
block
shape="circle"
type="primary"
@click="toList"
>查看其他商品</cr-button
type="default"
class="toOrderList"
@click="toOrderList"
>查看我的拼团</cr-button
>
<cr-button plain block shape="circle" type="primary" @click="toList"
>返回活动列表</cr-button
>
</div>
</div>
</div>
</template>
<script>
import countDown from '@/components/countDown';
import { saTrackEvent } from '@/service/sa.service';
export default {
components: {
countDown
......@@ -75,11 +85,7 @@ export default {
return {};
}
},
endTime: {
type: String,
default: ''
},
currentTime: {
skuNo: {
type: String,
default: ''
}
......@@ -92,18 +98,16 @@ export default {
2: '恭喜成团!',
3: '哎呀,拼团时间已过,尚未成团!',
4: '已发货'
},
timeIsOver: false
}
};
},
created() {
const currentTime = new Date(this.currentTime.replace(/\-/g, '/')).getTime();
const endTime = new Date(this.endTime.replace(/\-/g, '/')).getTime();
this.timeIsOver = currentTime >= endTime ? true : false;
},
mounted() {
this.$nextTick(() => {
if (this.$refs.buttonArea) {
if (IntersectionObserver) {
this.observer &&
this.observer.unobserve &&
this.observer.unobserve(this.$refs.buttonArea);
this.observer = new IntersectionObserver(entries => {
entries.forEach(item => {
if (item.intersectionRatio == 0) {
......@@ -113,13 +117,14 @@ export default {
}
});
});
}
this.observer.USE_MUTATION_OBSERVER = false;
this.observer.observe(this.$refs.buttonArea);
}
});
},
beforeDestroy() {
if (this.$refs.buttonArea) {
if (this.$refs.buttonArea && this.observer) {
this.observer.unobserve(this.$refs.buttonArea);
}
},
......@@ -130,7 +135,16 @@ export default {
this.$router.push({ name: 'groupBuyList', query: { activityId } });
}
},
toOrderList() {
this.$router.push('/orderList/0');
},
share() {
if (this.skuNo) {
saTrackEvent('H5_GroupDetailPageInviteFriendsBtnClick', {
sku_no: this.skuNo,
group_id: this.groupInfo?.groupId || ''
});
}
this.$emit('share');
}
}
......@@ -141,10 +155,19 @@ export default {
display: flex;
justify-content: center;
align-items: center;
height: 24px;
line-height: 24px;
margin-bottom: @padding-xs;
.desc {
text-align: center;
height: 100%;
line-height: 24px;
font-size: 14px;
&.inProcess {
margin-right: @padding-unit;
}
span {
font-size: 14px;
color: @red-dark;
margin: 0 @padding-unit;
}
......@@ -156,12 +179,23 @@ export default {
align-items: center;
color: @gray-4;
.text-12();
margin-bottom: @padding-md;
margin-bottom: @padding-sm;
}
.button-area {
button {
font-size: 16px;
margin-bottom: @padding-md;
font-size: 16px !important;
margin-bottom: @padding-sm;
}
.toListButton {
display: flex;
flex-direction: row;
justify-content: space-between;
button {
width: 48%;
&.toOrderList {
color: @gray-4;
}
}
}
}
</style>
......@@ -345,7 +345,7 @@ export default {
delete checkParams.activityHundredGroupId;
}
const [checkStatus] = await goods.checkGroupBuyCreateOrder(checkParams);
if (!checkStatus.verifyResult) {
if (checkStatus && !checkStatus.verifyResult) {
// 校验是否允许开团或者参团
this.$dialog({
message: checkStatus.failedReason || '',
......
......@@ -171,12 +171,13 @@
background: @white;
border-radius: @border-radius;
position: relative;
overflow: hidden;
&-status {
width: 80px;
height: 80px;
position: absolute;
right: -13px;
top: -18px;
right: -10px;
top: -20px;
z-index: 2;
}
}
......
......@@ -74,9 +74,8 @@
<group-desc-info
:group-info="detailInfo.groupBuyInfo || {}"
:timestemp="groupTimestemp"
:current-time="detailInfo.currentTime"
:end-time="detailInfo.endTime"
:show-button-group="true"
:sku-no="detailParam.skuNo"
@changeButtonVisible="changeButtonVisible"
@share="setShareData"
/>
......@@ -182,7 +181,7 @@ export default {
methods: {
setShareData() {
const avatorList = [];
if (this.detailInfo.groupBuyInfo.groupBuyValidUserInfoList) {
if (this.detailInfo?.groupBuyInfo?.groupBuyValidUserInfoList) {
this.detailInfo.groupBuyInfo.groupBuyValidUserInfoList.map(v => {
avatorList.push(v.avatar);
});
......@@ -245,6 +244,7 @@ export default {
'https://'
);
const detailImages = await goods.getDetailPic(this.detailInfo.contentDetailUrl);
console.log(detailImages);
// const imgReg = new RegExp('(?<=src=").[^"]*', 'g');
// this.detailImgList = (detailImages || '').match(imgReg);
let imgReg = /<img.*?(?:>|\/>)/gi;
......
......@@ -15,7 +15,9 @@
:show-pivot="false"
:percentage="handleProgressByStatus(goodsItem)"
/>
<div class="group-item-already">已拼{{ goodsItem.groupBuySuccessCount }}</div>
<div class="group-item-already">
已拼{{ topicCfg.hasStart ? goodsItem.groupBuySuccessCount : 0 }}
</div>
<div class="group-item-price">成团价 ¥ <sup class="group-item-sup">0</sup></div>
<div class="group-item-delprice">售价¥{{ goodsItem.activityPrice }}</div>
<!-- 立即开团 -->
......@@ -78,6 +80,10 @@ export default {
},
methods: {
handleProgressByStatus(item) {
if (!this.topicCfg.hasStart) {
// 用于处理活动未开始,虚假数据造成的进度条错误
return 100;
}
if (!item) return 0;
let percentage = 0;
// saleCount / activitySkuTotalCount
......
......@@ -76,8 +76,6 @@ import localStorage from '@/service/localStorage.service';
import goodsCheckMixin from '@/mixins/goodsCheck.mixin';
import { setAppTitleColor, EventBus, firstGroupShare } from '@/service/utils.service';
import { saTrackEvent } from '@/service/sa.service';
// import { isNull } from '@/service/validation.service';
// let topicIndex;
export default {
// eslint-disable-next-line vue/name-property-casing
name: 'groupBuyList',
......@@ -121,15 +119,6 @@ export default {
return +new Date(endTime || 0);
}
},
watch: {
// $route(to) {
// if (to.name !== 'groupBuyList') {
// this.setTitleColor();
// return;
// }
// this.setTitleColor(this.goodsTemp.bgcolor);
// }
},
created() {
this.showLoops = true;
this.reload = true;
......@@ -137,12 +126,6 @@ export default {
beforeDestroy() {
this.setTitleColor();
},
// deactivated() {
// this.showLoops = false;
// },
// activated() {
// this.showLoops = true;
// },
beforeRouteEnter(to, from, next) {
const { activityId } = to.query;
if (!activityId || isNaN(activityId)) {
......@@ -153,17 +136,6 @@ export default {
return;
} else {
getActivityList(to.query, next);
// if (isNull(topicIndex)) {
// getActivityList(to.query, next);
// } else {
// if (localStorage.get('activityId') !== +activityId) {
// getActivityList(to.query, next);
// return;
// }
// next(vm => {
// store.commit('CHANGE_TITLE', vm.goodsTemp.title || '活动页');
// });
// }
}
},
methods: {
......@@ -319,33 +291,6 @@ async function getActivityList(urlQuery, next) {
// t.endTime = '2021-09-23 19:17:20';
t = await computedTemplate(t);
t.groupBuyUserInfoList = (t.groupBuyUserInfoList || []).reverse();
// t.groupBuyUserInfoList = [
// {
// name: '皱眉',
// avatar:
// 'https://img.lkbang.net/avator/0c8c1cfeb1cfdfffd77ac74af83377a17812a3585027-OKt5j9_fw658.jpeg'
// },
// {
// name: '空白人生',
// avatar:
// 'https://img.lkbang.net/avator/e684de0d4db0fcd3a04945ff7ed394abb678ce577dba5-VJbncW_fw658.jpeg'
// },
// {
// name: '逅黄昏',
// avatar:
// 'https://img.lkbang.net/avator/900b3be08740dbe4e38f7c3b7a73b613538a2f2edac3-yXzWfB_fw658.jpeg'
// },
// {
// name: '桑过后正年轻',
// avatar:
// 'https://img.lkbang.net/avator/7ca48321827385f386d0317a40d3f6201f442fddf99a-xXvv37_fw658.jpeg'
// },
// {
// name: '年少就是不服输',
// avatar:
// 'https://img.lkbang.net/avator/e33db7b617e42367d888e3821e1acd89b4b20319cb42-esiOS3_fw658.jpeg'
// }
// ];
store.commit('CHANGE_TITLE', t.title || '活动页');
nextFns(vm => {
// topicIndex = 0;
......
......@@ -32,7 +32,7 @@
</div>
</div>
</div>
<template v-if="orderInfo.calcFeeInfo.totalSkuFee !== '0.00'">
<template v-if="orderInfo.calcFeeInfo && orderInfo.calcFeeInfo.totalSkuFee !== '0.00'">
<FeeInfo :calc-fee-info="orderInfo.calcFeeInfo" />
</template>
<div v-if="orderInfo.invalidSkuList && orderInfo.invalidSkuList.length" class="confirm-body">
......@@ -80,7 +80,6 @@ import localStorage from '@/service/localStorage.service';
import historyRecordMixins from '@/mixins/historyRecord.mixins';
import FeeInfo from './components/feeInfo.vue';
import { HAS_DISCOUNT } from '@/constants/order';
import cookies from '@/service/cookieStorage.service';
import { isApp, isWxMp } from '@/service/validation.service';
import { mapState } from 'vuex';
import { saTrackEvent } from '@/service/sa.service';
......@@ -173,10 +172,13 @@ export default {
invalidSkuList,
shopSkuList: []
};
if (shopSkuList) {
shopSkuList.forEach(item => {
if (!item) return;
orderInfo.shopSkuList = [...orderInfo.shopSkuList, ...item.skuList];
});
}
console.log(orderInfo);
this.$set(this, 'orderInfo', orderInfo);
this.isOutBuy = false;
......@@ -230,7 +232,6 @@ export default {
console.log(params);
const [data] = await order.orderSubmit(params);
if (data && data.orderNo) {
cookies.set('skuID', params.skuList[0].skuNo);
if (isWxMp) {
this.nativeBridge.openNewUrl({
newUrl: `/pages/pay/index?orderNo=${data.orderNo}`
......
<template>
<div>
<div class="pay-result">
<div v-if="isSuccess" class="card">
<div class="info">
<cr-image
......@@ -18,11 +18,21 @@
拼团成功即可退款0元拿,拼团失败立即退款
</p>
<div class="actions">
<cr-button shape="circle" type="default" @click="goPage(1)">我的拼团</cr-button>
<cr-button shape="circle" class="actions__back" :plain="true" type="primary" @click="share"
<cr-button shape="circle" class="actions__share" type="primary" @click="share"
>邀请好友</cr-button
>
</div>
<div class="actions">
<cr-button shape="circle" type="default" @click="goGroupList">返回活动列表</cr-button>
<cr-button
shape="circle"
class="actions__back"
:plain="true"
type="primary"
@click="goPage(1)"
>查看我的拼团</cr-button
>
</div>
</div>
<div v-else class="card">
<div class="info">
......@@ -135,6 +145,10 @@ export default {
this.shareInfo = res;
firstGroupShare(res, 3);
},
goGroupList() {
const { activityId } = this.shareInfo;
this.$router.push(`/groupBuy/list?activityId=${activityId}`);
},
goPage(type) {
if (type == 1) {
this.$router.replace({ path: '/orderList/0' });
......@@ -170,25 +184,31 @@ export default {
};
</script>
<style lang="less" scoped>
.pay-result {
height: 100%;
}
.card {
margin: @padding-sm;
// margin: @padding-sm;
height: 100%;
background-color: @white;
border-radius: @border-radius-sm;
// border-radius: @border-radius-sm;
padding: 28px @padding-sm @padding-sm @padding-sm;
box-sizing: border-box;
.info {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
&__image {
width: 100px;
height: 100px;
margin: @padding-xl 0;
}
&__text {
.text-16;
margin-left: @padding-md;
// margin-left: @padding-md;
}
&__desc {
......@@ -200,6 +220,7 @@ export default {
margin-top: @padding-xs;
}
&__free {
text-align: center;
.text-13;
margin-top: @padding-xs;
color: @font-color-light;
......@@ -209,7 +230,7 @@ export default {
.tips {
.text-12;
text-align: center;
margin-top: @padding-lg;
margin-top: @padding-xs;
color: @font-color-light;
}
......@@ -231,7 +252,11 @@ export default {
button {
// flex: 1;
.text-16;
width: 161px;
width: 170px;
line-height: normal;
}
&__share {
width: 100% !important;
}
}
.info_button {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment