zhy #144

Merged
hansu merged 2 commits from zhy into master 2020-08-10 09:47:32 +00:00
19 changed files with 358 additions and 20 deletions

View File

@ -339,7 +339,11 @@ export default {
page, page,
name_search: name_search name_search: name_search
}) })
} },
// 是否弹出新人优惠券
isNewmembervoucher() {
return vm.$u.post('Coupon/isNewmembervoucher')
},
} }
} }

253
pageB/coupon/details.vue Normal file
View File

@ -0,0 +1,253 @@
<template>
<view class="coupon-details">
<view class="coupon-container">
<view class="title">新人专享好礼</view>
<view class="coupon-main">
<image src="/static/image/common/29.png" class="bg"></image>
<view class="left">
<view class="price"><text class="sign"></text><text class="value">{{ price }}</text></view>
<view class="label">专属优惠券</view>
</view>
<view class="btn" @click="exchangeCoupon">立即领取</view>
</view>
<view class="tag">
<view>
<image src="/static/image/common/25.png"></image>
<text>全场包邮</text>
</view>
<view>
<image src="/static/image/common/26.png"></image>
<text>延误必赔</text>
</view>
<view>
<image src="/static/image/common/27.png"></image>
<text>免费上门取件</text>
</view>
<view>
<image src="/static/image/common/28.png"></image>
<text>退货免运费</text>
</view>
</view>
</view>
<view class="title-container">
<image src="/static/image/common/22.png" class="bg"></image>
<view class="title">首席搭配师</view>
</view>
<view class="content-container">
<image src="/static/image/common/23.png" class="people"></image>
<view class="tag">
<view class="">双十一成交破亿</view>
<view class="">单场千万级大咖</view>
<view class="">品牌特卖TOP1</view>
</view>
<view class="btn">
<view class="bg-view"></view>
<view>我们有万能穿搭公式</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
price: 0
}
},
onLoad(option) {
this.price = option.price;
// this.isNewmembervoucher();
},
methods: {
//
isNewmembervoucher() {
this.$u.api.isNewmembervoucher().then(res => {
if(res.errCode == 0) {
this.price = res.data.price;
}
})
},
exchangeCoupon() {
this.$u.api.getCoupon({ id: 1 }).then(res => {
this.$u.toast(res.message);
if(res.errCode == 0) {}
})
},
}
};
</script>
<style lang="scss" scoped>
.coupon-details {
min-height: calc(100vh - var(--window-top));
background-color: #FFDFAC;
padding-top: 30rpx;
.coupon-container {
width: 690rpx;
height: 368rpx;
background: linear-gradient(-87deg, rgba(247,162,30,1), rgba(255,120,15,1));
box-shadow: 0rpx 4rpx 2rpx 0rpx rgba(102,102,102,0.2);
border-radius: 20rpx;
margin: 0 auto 70rpx;
padding: 22rpx {
top: 40rpx
};
.title {
font-size: 48rpx;
font-weight: bold;
color: rgba(255,255,255,1);
line-height: 34rpx;
text-shadow: 0rpx 4rpx 2rpx rgba(102,102,102,0.2);
text-align: center;
}
.coupon-main {
margin: 26rpx auto 20rpx;
width: 665rpx;
height: 194rpx;
position: relative;
.bg {
position: absolute;
top: 0;
left: 0;
width: 665rpx;
height: 194rpx;
z-index: 1;
}
.left {
z-index: 2;
position: absolute;
top: 40rpx;
left: 122rpx;
.price {
margin-bottom: 16rpx;
display: flex;
align-items: flex-end;
line-height: 80rpx;
> text {
font-weight: bold;
color: rgba(255,120,15,1);
}
.sign {
font-size: 54rpx;
}
.value {
font-size: 102rpx;
}
}
.label {
font-size: 32rpx;
font-weight: 500;
color: rgba(255,120,15,1);
}
}
.btn {
z-index: 2;
position: absolute;
top: 62rpx;
right: 60rpx;
width: 192rpx;
height: 70rpx;
background: linear-gradient(-87deg, rgba(247,162,30,1), rgba(255,120,15,1));
border-radius: 20rpx;
line-height: 70rpx;
text-align: center;
font-size: 27rpx;
font-weight: bold;
color: rgba(255,255,255,1);
}
}
.tag {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 20rpx;
font-weight: 500;
color: rgba(255,255,255,1);
> view {
> image {
width: 20rpx;
height: 20rpx;
margin-right: 10rpx;
}
}
}
}
.title-container {
position: relative;
height: 124rpx;
.bg {
position: absolute;
width: 504rpx;
height: 124rpx;
z-index: 1;
top: 50%;
left: 50%;
transform: translate(-50%, -75%);
}
.title {
position: absolute;
z-index: 2;
width: 750rpx;
height: 59rpx;
background: rgba(255,255,255,0.27);
font-size: 60rpx;
font-weight: 800;
color: rgba(255,122,16,1);
text-align: center;
top: 0;
left: 0;
}
}
.content-container {
height: 684rpx;
position: relative;
.people {
width: 348rpx;
height: 684rpx;
position: absolute;
top: 0;
left: 50%;
transform: translate(-50%, 0%);
}
.tag {
> view {
position: absolute;
height: 48rpx;
background: rgba(229,0,79,0.36);
border-radius: 20rpx;
font-size: 24rpx;
font-weight: bold;
color: rgba(255,255,255,1);
line-height: 48rpx;
padding: 0 24rpx;
&:nth-child(1) {
top: 104rpx;
right: 71rpx;
}
&:nth-child(2) {
top: 271rpx;
left: 30rpx;
}
&:nth-child(3) {
top: 373rpx;
right: 33rpx;
}
}
}
.btn {
position: absolute;
top: 459rpx;
left: 50%;
transform: translate(-50%, 0%);
width: 581rpx;
height: 86rpx;
background: linear-gradient(-87deg,rgba(247,162,30,1),rgba(255,120,15,1));
border-radius: 20rpx;
font-size: 40rpx;
font-weight: bold;
color: rgba(255,255,255,1);
line-height: 86rpx;
text-align: center;
}
}
}
</style>

View File

@ -4,10 +4,10 @@
<view class="spike-view" v-if="type == 3"> <view class="spike-view" v-if="type == 3">
<view class="left"> <view class="left">
<view class="price"> <view class="price">
<view class="now-price">{{ groupbuyInfo.groupbuy_price }}</view> <view class="now-price">{{ groupbuyInfo.groupbuy_price || '0.00' }}</view>
<view class="origin-price">{{ groupbuyInfo.goods_price }}</view> <view class="origin-price">{{ groupbuyInfo.goods_price || '0.00' }}</view>
</view> </view>
<view class="num">剩余数量{{ groupbuyInfo.inventory - groupbuyInfo.groupbuy_buy_quantity }}</view> <view class="num">剩余数量{{ groupbuyInfo.inventory - groupbuyInfo.groupbuy_buy_quantity || '0' }}</view>
</view> </view>
<view class="right" v-if="!isSrartSpike || !isEndSpike"> <view class="right" v-if="!isSrartSpike || !isEndSpike">
<view class="title">{{ isSrartSpike ? '结束倒计时' : '秒杀倒计时' }}</view> <view class="title">{{ isSrartSpike ? '结束倒计时' : '秒杀倒计时' }}</view>
@ -24,8 +24,8 @@
</view> </view>
<view class="price-collect"> <view class="price-collect">
<view class="pic" v-if="type != 3"> <view class="pic" v-if="type != 3">
<text>{{ goodsInfo.goods_price }}</text> <text>{{ goodsInfo.pintuan_price || '0.00' }}</text>
<s>{{ goodsInfo.goods_marketprice }}</s> <s>{{ goodsInfo.goods_price || '0.00' }}</s>
</view> </view>
<view class="collect" @click="switchCollect(goodsInfo.goods_collect)"> <view class="collect" @click="switchCollect(goodsInfo.goods_collect)">
<u-icon name="star" color="#474747" size="28" v-if="!goodsInfo.goods_collect"></u-icon> <u-icon name="star" color="#474747" size="28" v-if="!goodsInfo.goods_collect"></u-icon>
@ -369,7 +369,7 @@ export default {
// //
ordinaryDetails(id) { ordinaryDetails(id) {
this.$u.api.getGoodsDetails({ id: id }).then((res)=>{ this.$u.api.getGoodsDetails({ id: id }).then((res)=>{
console.log(res) // console.log(res)
if (res.errCode == 0) { if (res.errCode == 0) {
this.evaluate = res.data.goods_evaluate_info; this.evaluate = res.data.goods_evaluate_info;
this.goodsInfo = res.data.goods; this.goodsInfo = res.data.goods;
@ -527,7 +527,7 @@ export default {
xuanze(id){ xuanze(id){
// console.log(id) // console.log(id)
// type = 1 // type = 1
this.type = 1; // this.type = 1;
this.getGoodsDetails(this.glist[id]) this.getGoodsDetails(this.glist[id])
this.id = this.glist[id]; this.id = this.glist[id];
}, },

View File

@ -80,11 +80,11 @@ export default {
this.value = option.value; this.value = option.value;
this.setViewHeight(); this.setViewHeight();
this.ShopSearch() this.ShopSearch()
this.setNavSearchInput(); this.setNavSearchInput(this.value);
}, },
onNavigationBarSearchInputConfirmed(value) { onNavigationBarSearchInputConfirmed(value) {
this.value = value.text this.value = value.text
console.log(this.value) // console.log(this.value)
this.ShopSearch() this.ShopSearch()
}, },
methods: { methods: {

View File

@ -26,7 +26,7 @@
<view class="info"> <view class="info">
<view class="name u-line-2">{{ goods.goods_name }}</view> <view class="name u-line-2">{{ goods.goods_name }}</view>
<view class="cart-info"> <view class="cart-info">
<view class="price">{{ goods.goods_price }}</view> <view class="price">{{ goods.goods_total }}</view>
<view>×{{ goods.goods_num }}</view> <view>×{{ goods.goods_num }}</view>
</view> </view>
</view> </view>

View File

@ -154,6 +154,9 @@ export default {
case 4: case 4:
state = '2'; state = '2';
break; break;
case 5:
state = '3';
break;
case 6: case 6:
state = '7'; state = '7';
break; break;

View File

@ -259,6 +259,16 @@ export default {
this.getAreaData(); this.getAreaData();
this.getClothesTypeList(); this.getClothesTypeList();
}, },
watch: {
swiperCurrent() {
this.goodsStatus = '';
this.type = {};
this.name = '';
this.phone = '';
this.area = '';
this.address = '';
}
},
methods: { methods: {
getClothesTypeList() { getClothesTypeList() {
this.$u.api.getClothesTypeList().then(res => { this.$u.api.getClothesTypeList().then(res => {
@ -424,12 +434,6 @@ export default {
}) })
}, },
animationfinish(e) { animationfinish(e) {
this.goodsStatus = '';
this.type = {};
this.name = '';
this.phone = '';
this.area = '';
this.address = '';
// //
this.debounce = true; this.debounce = true;
let current = e.detail.current; let current = e.detail.current;

View File

@ -237,6 +237,18 @@
"softinputMode": "adjustResize" "softinputMode": "adjustResize"
} }
} }
},
{
"path": "coupon/details",
"style": {
"navigationBarTitleText": "优惠券介绍",
"app-plus": {
"titleNView": {
"titleColor": "#333333",
"backgroundColor": "#FFFFFF"
}
}
}
} }
] ]
}, },

View File

@ -87,6 +87,13 @@
</swiper-item> </swiper-item>
</swiper> </swiper>
</view> </view>
<u-popup v-model="showCoupon" mode="center" class="u-coupon-popup">
<view class="coupon">
<view class="price">{{ newMemberCoupon.price }}</view>
<image src="/static/image/common/30.png" class="coupon-image" @click="viewCoupon"></image>
<image src="/static/image/common/24.png" class="close-image" @click="showCoupon=false"></image>
</view>
</u-popup>
</view> </view>
</template> </template>
@ -198,6 +205,42 @@
margin: 200rpx auto 0; margin: 200rpx auto 0;
text-align: center; text-align: center;
} }
.u-coupon-popup {
/deep/ .u-mode-center-box {
background-color: transparent;
}
.coupon {
width: 750rpx;
height: 583rpx;
position: relative;
.price {
z-index: 3;
color: #EBB36E;
position: absolute;
font-size: 108rpx;
font-weight: bold;
top: 200rpx;
left: 50%;
transform: translate(-68%, 0);
}
.coupon-image {
width: 568rpx;
height: 583rpx;
position: absolute;
top: 0;
left: 50%;
transform: translate(-60%, 0);
}
.close-image {
position: absolute;
top: 0;
right: 155rpx;
width: 60rpx;
height: 60rpx;
}
}
}
</style> </style>
<script> <script>
@ -237,7 +280,9 @@
loadmore: '轻轻上拉', loadmore: '轻轻上拉',
loading: '努力加载中', loading: '努力加载中',
nomore: '实在没有了' nomore: '实在没有了'
} },
showCoupon: false,
newMemberCoupon: {},
} }
}, },
components: { components: {
@ -254,6 +299,7 @@
}, },
onLoad(){ onLoad(){
if(this.$store.state.hasLogin){ if(this.$store.state.hasLogin){
this.isNewmembervoucher();
const user = uni.getStorageSync('user_info'); const user = uni.getStorageSync('user_info');
console.log(user) console.log(user)
this.imService.login(user.member.member_id,user.member.member_nickname,user.member.member_avatar) this.imService.login(user.member.member_id,user.member.member_nickname,user.member.member_avatar)
@ -445,6 +491,22 @@
this.$u.route("/pageB/search/index", { this.$u.route("/pageB/search/index", {
type: 2, type: 2,
}); });
},
//
isNewmembervoucher() {
this.$u.api.isNewmembervoucher().then(res => {
if(res.errCode == 0) {
this.newMemberCoupon = res.data;
this.showCoupon = true;
} else {
this.showCoupon = false;
}
})
},
viewCoupon() {
this.$u.route('/pageB/coupon/details', {
price: this.newMemberCoupon.price
});
} }
}, },
} }

BIN
static/image/common/21.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 KiB

BIN
static/image/common/22.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
static/image/common/23.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 KiB

BIN
static/image/common/24.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
static/image/common/25.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
static/image/common/26.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
static/image/common/27.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
static/image/common/28.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
static/image/common/29.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
static/image/common/30.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB