Merge branch 'master' of http://git.luyuan.tk/luyuan/deming into zmr
This commit is contained in:
commit
e34c74c303
@ -78,9 +78,10 @@ export default {
|
||||
return vm.$u.post('Goods/getGoodsClassifyList');
|
||||
},
|
||||
// 商品推荐
|
||||
getGoodsRecommend({page}){
|
||||
getGoodsRecommend({page, gc_id}){
|
||||
return vm.$u.post('Goods/getGoodsRecommend', {
|
||||
page: page
|
||||
page: page,
|
||||
gc_id: gc_id,
|
||||
});
|
||||
},
|
||||
// 购物车商品列表
|
||||
@ -135,11 +136,12 @@ export default {
|
||||
});
|
||||
},
|
||||
// 选择地区计算运费
|
||||
getFreight({ freight_hash, city_id, area_id }) {
|
||||
getFreight({ freight_hash, city_id, area_id, delivery }) {
|
||||
return vm.$u.post('Buy/change_addr', {
|
||||
freight_hash: freight_hash,
|
||||
city_id: city_id,
|
||||
area_id: area_id,
|
||||
delivery: delivery,
|
||||
});
|
||||
},
|
||||
// 商品详情
|
||||
@ -186,6 +188,49 @@ export default {
|
||||
page: page
|
||||
});
|
||||
},
|
||||
// 拼团列表
|
||||
getPinTuanList({ page, gc_id }) {
|
||||
return vm.$u.post('Specialci/pintuanList', {
|
||||
page: page,
|
||||
gc_id: gc_id,
|
||||
});
|
||||
},
|
||||
// 拼团商品详情
|
||||
getPinTuanDetails({ pintuan_id }) {
|
||||
return vm.$u.post('Specialci/pintuanInfo', { pintuan_id: pintuan_id });
|
||||
},
|
||||
// pintuanPush
|
||||
getPinTuanPush() {
|
||||
return vm.$u.post('Specialci/pintuanPush');
|
||||
},
|
||||
// 商品分类(拼团分类)
|
||||
getGoodsClass() {
|
||||
return vm.$u.post('Specialci/goodsClass');
|
||||
},
|
||||
// 优惠券列表(要兑换的)
|
||||
getCouponList({ page, store_id, type, gc_id }) {
|
||||
return vm.$u.post('Coupon/CouponList', {
|
||||
page: page,
|
||||
store_id: store_id,
|
||||
type: type,
|
||||
gc_id: gc_id,
|
||||
});
|
||||
},
|
||||
// 领取优惠券
|
||||
getCoupon({ id }) {
|
||||
return vm.$u.post('Coupon/getCoupon', {
|
||||
vouchertemplate_id: id,
|
||||
});
|
||||
},
|
||||
// 我的优惠券(已有的)
|
||||
getMemberCouponList({ store_id, gc_id, type, status }) {
|
||||
return vm.$u.post('Coupon/getMemberCouponList', {
|
||||
store_id: store_id,
|
||||
gc_id: gc_id,
|
||||
type: type,
|
||||
status: status,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4,16 +4,20 @@ Vue.use(Vuex)
|
||||
|
||||
const store = new Vuex.Store({
|
||||
state: {
|
||||
count: 0
|
||||
cartInfo: {}, // 购物车数据
|
||||
orderAddress: {}, // 下单时选择的地址
|
||||
},
|
||||
getters: {
|
||||
doubleCount (state) {
|
||||
return state.count * 2
|
||||
getOrderAddress(state) {
|
||||
return state.orderAddress;
|
||||
}
|
||||
},
|
||||
mutations: {
|
||||
increment (state) {
|
||||
state.count++
|
||||
updateCart(state, cart) {
|
||||
state.cartInfo = cart;
|
||||
},
|
||||
updateAddress(state, address) {
|
||||
state.orderAddress = address;
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="items">
|
||||
<view class="item-top">
|
||||
<view class="item-top" @click="choiceAddress">
|
||||
<view class="user-info">
|
||||
<view class="user-name">{{ item.address_realname }}</view>
|
||||
<view class="user-pnone">{{ item.address_mob_phone | phoneFormat }}</view>
|
||||
@ -35,17 +35,15 @@
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* address
|
||||
* @description 地址
|
||||
* @property {Object} item 地址信息
|
||||
* @property {String} state 是否选择地址 choise
|
||||
*/
|
||||
export default {
|
||||
name: 'address-item',
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
props: ['item', 'current'],
|
||||
mounted() {
|
||||
// console.log(this.item);
|
||||
},
|
||||
props: ['item', 'current', 'state'],
|
||||
filters: {
|
||||
phoneFormat(value) {
|
||||
return value.replace(/^(\d{3})\d*(\d{4})$/, '$1****$2');
|
||||
@ -74,6 +72,15 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
choiceAddress() {
|
||||
if(this.state) {
|
||||
this.$store.commit('updateAddress', this.item);
|
||||
this.$u.route({
|
||||
type: 'navigateBack',
|
||||
url: '/pageC/cart/ConfirmOrder',
|
||||
})
|
||||
}
|
||||
},
|
||||
showToast(message, type) {
|
||||
this.$refs.uToast.show({
|
||||
title: message,
|
||||
|
@ -1,24 +1,24 @@
|
||||
<template>
|
||||
<view class="c-coupon">
|
||||
<view :class="status == 0 ? 'coupon-usable' : 'coupon-unable'">
|
||||
<view :class="type == 1 && status != 0 ? 'coupon-unable' : 'coupon-usable'">
|
||||
<view class="info-type" :style="{ backgroundImage: 'url(' + (status == 0 ? '/static/image/mine/30.png' : '/static/image/mine/31.png') + ')', backgroundSize:'contain', backgroundRepeat: 'no-repeat' }">
|
||||
<div class="wrap_left_top"></div>
|
||||
{{ couponInfo.index&1 ? '店铺优惠券' : '平台优惠券' }}
|
||||
{{ couponInfo.type == 2 ? '店铺优惠券' : '平台优惠券' }}
|
||||
</view>
|
||||
<view class="coupon-info">
|
||||
<view class="info-usable">
|
||||
<view class="price">¥<span>10</span></view>
|
||||
<view class="condition">满100使用</view>
|
||||
<view class="price">¥<span>{{ couponInfo.vouchertemplate_price }}</span></view>
|
||||
<view class="condition">满{{ couponInfo.vouchertemplate_limit }}使用</view>
|
||||
</view>
|
||||
<view class="info-store u-line-1">仅限 nike官方旗舰店 鞋子商品使用</view>
|
||||
<view class="info-integral">兑换积分:200积分</view>
|
||||
<view class="info-date">有效期2018.09.06-2018.10.06</view>
|
||||
<view class="info-store u-line-1">仅限{{ couponInfo.vouchertemplate_storename }}鞋子商品使用</view>
|
||||
<view class="info-integral">兑换积分:{{ couponInfo.vouchertemplate_points }}积分</view>
|
||||
<view class="info-date">有效期{{ couponInfo.vouchertemplate_startdate }}-{{ couponInfo.vouchertemplate_enddate }}</view>
|
||||
</view>
|
||||
<view class="coupon-btn">
|
||||
<text v-if="type == 0 && status == 0" @click="exchange">立即兑换</text>
|
||||
<text v-if="type == 0 && status == 0" @click="exchangeCoupon">立即兑换</text>
|
||||
<text v-if="type == 1 && status == 0" @click="use">立即使用</text>
|
||||
<image v-if="status == 1" src="/static/image/mine/28.png"></image>
|
||||
<image v-if="status == 2" src="/static/image/mine/29.png"></image>
|
||||
<image v-if="type == 1 && status == 1" src="/static/image/mine/28.png"></image>
|
||||
<image v-if="type == 1 && status == 2" src="/static/image/mine/29.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -27,7 +27,7 @@
|
||||
/**
|
||||
* coupon 优惠券
|
||||
* @description 优惠券组件
|
||||
* @property {Number} type 优惠券操作方式(兑换优惠券: 0 / 使用优惠券: 1)
|
||||
* @property {Number} type 优惠券操作方式(可兑换的优惠券: 0 / 自己的优惠券: 1)
|
||||
* @property {Object} coupon-info 优惠券信息
|
||||
* @event {Function} exchange 兑换优惠券
|
||||
* @event {Function} use 使用优惠券
|
||||
@ -41,12 +41,21 @@ export default {
|
||||
type: Number,
|
||||
couponInfo: Object,
|
||||
},
|
||||
created() {
|
||||
console.log(this.couponInfo);
|
||||
},
|
||||
methods: {
|
||||
exchange() {
|
||||
this.$emit('exchange', this.couponInfo.index);
|
||||
this.$emit('exchange', this.couponInfo.vouchertemplate_id);
|
||||
},
|
||||
exchangeCoupon() {
|
||||
this.$u.api.getCoupon({ id: this.couponInfo.vouchertemplate_id }).then(res => {
|
||||
this.$u.toast(res.message);
|
||||
if(res.errCode == 0) {}
|
||||
})
|
||||
},
|
||||
use() {
|
||||
this.$emit('use', this.couponInfo.index);
|
||||
this.$emit('use', this.couponInfo.vouchertemplate_id);
|
||||
},
|
||||
},
|
||||
};
|
||||
|
@ -3,24 +3,83 @@
|
||||
<view class="top">
|
||||
商品推荐
|
||||
</view>
|
||||
<view class="label">
|
||||
<!-- <view class="label">
|
||||
<text v-for="item in classifyList" :key="item.gc_id">{{ item.gc_name }}</text>
|
||||
</view>
|
||||
<view class="item">
|
||||
<item v-for="item in goodsList" :key="item.goods_id" :info="item"></item>
|
||||
</view> -->
|
||||
<view>
|
||||
<u-tabs-swiper ref="uTabs" :list="classifyList" name="gc_name" :is-scroll="true" active-color="#FF780F" :current="current" font-size="24" :show-bar="false" @change="tabsChange" height="60" ></u-tabs-swiper>
|
||||
</view>
|
||||
<swiper :current="swiperCurrent" @transition="transition" @animationfinish="animationfinish" >
|
||||
<swiper-item class="swiper-item" v-for="(_, index) in classifyList" :key="index">
|
||||
<!-- <scroll-view scroll-y style="height: 800rpx;width: 100%;"> -->
|
||||
<view class="item">
|
||||
<item v-for="item in goodsList" :key="item.goods_id" :info="item"></item>
|
||||
</view>
|
||||
<u-empty text="暂无商品" mode="list" color="#000" v-if="!goodsList.length"></u-empty>
|
||||
<!-- </scroll-view> -->
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import item from "./item"
|
||||
export default {
|
||||
name:"list",
|
||||
data() {
|
||||
return {
|
||||
current: Number,
|
||||
swiperCurrent: 0,
|
||||
goodsList: [],
|
||||
}
|
||||
},
|
||||
components:{
|
||||
item
|
||||
},
|
||||
props: {
|
||||
classifyList: Array,
|
||||
goodsList: Array,
|
||||
classifyList: Array
|
||||
},
|
||||
watch: {
|
||||
current(index) {
|
||||
const id = this.classifyList[index].gc_id;
|
||||
this.getGoodsRecommend(id);
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.current = 0;
|
||||
console.log(this.classifyList);
|
||||
},
|
||||
methods: {
|
||||
getGoodsRecommend(gc_id) {
|
||||
this.$u.api.getGoodsRecommend({
|
||||
page: 1,
|
||||
gc_id: gc_id,
|
||||
}).then((res)=>{
|
||||
if (res.errCode == 0) {
|
||||
this.goodsList = res.data.goodsList;
|
||||
console.log(this.goodsList);
|
||||
}
|
||||
})
|
||||
},
|
||||
// tabs通知swiper切换
|
||||
tabsChange(index) {
|
||||
this.swiperCurrent = index;
|
||||
},
|
||||
// swiper-item左右移动,通知tabs的滑块跟随移动
|
||||
transition(e) {
|
||||
let dx = e.detail.dx;
|
||||
this.$refs.uTabs.setDx(dx);
|
||||
},
|
||||
// 由于swiper的内部机制问题,快速切换swiper不会触发dx的连续变化,需要在结束时重置状态
|
||||
// swiper滑动结束,分别设置tabs和swiper的状态
|
||||
animationfinish(e) {
|
||||
let current = e.detail.current;
|
||||
this.$refs.uTabs.setFinishCurrent(current);
|
||||
this.swiperCurrent = current;
|
||||
this.current = current;
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@ -33,21 +92,21 @@ export default {
|
||||
text-align: center;
|
||||
color: #333;
|
||||
}
|
||||
.label{
|
||||
display: flex;
|
||||
color: #999;
|
||||
flex-wrap: wrap;
|
||||
>text{
|
||||
margin-right: 34rpx;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
}
|
||||
.item{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
margin-top: 20rpx;
|
||||
// .label{
|
||||
// display: flex;
|
||||
// color: #999;
|
||||
// flex-wrap: wrap;
|
||||
// >text{
|
||||
// margin-right: 34rpx;
|
||||
// margin-bottom: 10rpx;
|
||||
// }
|
||||
// }
|
||||
// .item{
|
||||
// display: flex;
|
||||
// flex-wrap: wrap;
|
||||
// justify-content: space-between;
|
||||
// margin-top: 20rpx;
|
||||
|
||||
}
|
||||
// }
|
||||
}
|
||||
</style>
|
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="recommend">
|
||||
<view class="top">
|
||||
<text>今日秒杀推荐</text>
|
||||
<text>{{ type == 'spike' ? '今日秒杀推荐' : '今日拼团推荐' }}</text>
|
||||
<text>点击查看更多></text>
|
||||
</view>
|
||||
<view class="connect">
|
||||
@ -10,7 +10,7 @@
|
||||
<text>{{ info.groupbuy_starttime_histime }}</text>
|
||||
</view>
|
||||
<view class="info">
|
||||
<text class="u-line-1">{{ info.groupbuy_name }}</text>
|
||||
<text class="u-line-1">{{ type == 'spike' ? info.groupbuy_name : '' }}</text>
|
||||
<text class="u-line-2">{{ info.goods_name }}</text>
|
||||
<view>
|
||||
<text>¥{{ info.groupbuy_price }}</text>
|
||||
|
@ -4,21 +4,25 @@
|
||||
<view class="title">
|
||||
<view class="name">全部秒杀</view>
|
||||
<view class="time">
|
||||
<text class="num">12</text>
|
||||
<text class="num">{{ time.littleHour }}</text>
|
||||
<text class="mah">:</text>
|
||||
<text class="num">12</text>
|
||||
<text class="num">00</text>
|
||||
<text class="mah">:</text>
|
||||
<text class="num">12</text>
|
||||
<text class="num">00</text>
|
||||
<text>-</text>
|
||||
<text class="num">{{ time.bigHour }}</text>
|
||||
<text class="mah">:</text>
|
||||
<text class="num">00</text>
|
||||
<text class="mah">:</text>
|
||||
<text class="num">00</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="next">
|
||||
<view class="next" @click="viewMore">
|
||||
查看更多>
|
||||
</view>
|
||||
</view>
|
||||
<view class="list">
|
||||
<sitem></sitem>
|
||||
<sitem></sitem>
|
||||
<sitem></sitem>
|
||||
<sitem v-for="(item, index) in list.slice(0, 3)" :key="index" :item="item"></sitem>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@ -28,6 +32,14 @@ export default {
|
||||
name:"seckill",
|
||||
components:{
|
||||
sitem
|
||||
},
|
||||
props: ['list', 'time'],
|
||||
methods: {
|
||||
viewMore() {
|
||||
this.$u.route({
|
||||
url: '/pageC/spike/index',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@ -46,15 +58,17 @@ export default {
|
||||
color: #333;
|
||||
}
|
||||
.time{
|
||||
margin-left: 39rpx;
|
||||
margin-left: 20rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 20rpx;
|
||||
.num{
|
||||
box-sizing: content-box;
|
||||
width: 25rpx;
|
||||
height: 25rpx;
|
||||
background-color: #bfbfbf;
|
||||
margin: 0 10rpx;
|
||||
padding: 2rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,25 +1,33 @@
|
||||
<template>
|
||||
<view class="item">
|
||||
<image class="head"></image>
|
||||
<text class="title">商品名</text>
|
||||
<image class="head" :src="item.groupbuy_image1"></image>
|
||||
<text class="title u-line-2">{{ item.goods_name }}</text>
|
||||
<view class="price">
|
||||
<text>¥99</text>
|
||||
<text>¥299</text>
|
||||
<text>¥{{ item.groupbuy_price }}</text>
|
||||
<text>¥{{ item.goods_price }}</text>
|
||||
</view>
|
||||
<view class="info">
|
||||
<text>剩余21件</text>
|
||||
<text>剩余{{ item.inventory | formatValue }}件</text>
|
||||
<text>立即购买</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name:"item"
|
||||
name:"item",
|
||||
props: ['item'],
|
||||
filters: {
|
||||
formatValue(value) {
|
||||
let temp = Number(value);
|
||||
if(temp > 999) temp = '999+';
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.item{
|
||||
width: 210rpx;
|
||||
width: 220rpx;
|
||||
.head{
|
||||
width: 210rpx;
|
||||
height: 131rpx;
|
||||
@ -43,6 +51,7 @@ export default {
|
||||
>text:last-child{
|
||||
font-size: 24rpx;
|
||||
color: #999;
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
}
|
||||
@ -50,7 +59,7 @@ export default {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
font-size: 22rpx;
|
||||
font-size: 20rpx;
|
||||
margin-top: 19rpx;
|
||||
>text:first-child{
|
||||
color: #666;
|
||||
|
91
components/shop/special-shop/index.vue
Normal file
91
components/shop/special-shop/index.vue
Normal file
@ -0,0 +1,91 @@
|
||||
<template>
|
||||
<view class="special">
|
||||
<image :src="item.groupbuy_image1"></image>
|
||||
<view class="right">
|
||||
<view class="name u-line-1">{{ item.goods_name }}</view>
|
||||
<view class="price" v-if="type == 'spike'">
|
||||
<view class="groupbuy-price">{{ item.groupbuy_price }}</view>
|
||||
<view class="goods-price">{{ item.goods_price }}</view>
|
||||
</view>
|
||||
<view class="buy">
|
||||
<view class="num">剩余{{ item.inventory }}件</view>
|
||||
<view class="btn">立即购买</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
props: {
|
||||
item: Object,
|
||||
type: String,
|
||||
},
|
||||
created() {
|
||||
console.log(this.item);
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.special {
|
||||
margin-bottom: 30rpx;
|
||||
display: flex;
|
||||
width: 690rpx;
|
||||
background: rgba(245,245,245,1);
|
||||
border-radius: 6rpx;
|
||||
> image {
|
||||
flex-shrink: 0;
|
||||
width: 210rpx;
|
||||
height: 170rpx;
|
||||
border-radius: 6rpx 0rpx 0rpx 6rpx;
|
||||
}
|
||||
.right {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
padding: 20rpx;
|
||||
.name {
|
||||
width: 400rpx;
|
||||
font-size: 26rpx;
|
||||
color: rgba(51,51,51,1);
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.price {
|
||||
display: flex;
|
||||
.groupbuy-price {
|
||||
font-size: 26rpx;
|
||||
color: rgba(255,49,49,1);
|
||||
margin-right: 12rpx;
|
||||
}
|
||||
.goods-price {
|
||||
font-size: 24rpx;
|
||||
text-decoration: line-through;
|
||||
color: rgba(153,153,153,1);
|
||||
}
|
||||
}
|
||||
.buy {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.num {
|
||||
font-size: 22rpx;
|
||||
color: rgba(102,102,102,1);
|
||||
}
|
||||
.btn {
|
||||
width: 140rpx;
|
||||
height: 50rpx;
|
||||
background: rgba(255,120,15,1);
|
||||
border-radius: 25rpx;
|
||||
font-size: 22rpx;
|
||||
font-weight: 500;
|
||||
color: rgba(255,255,255,1);
|
||||
line-height: 50rpx;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,72 +1,119 @@
|
||||
<template>
|
||||
<view class="youhq">
|
||||
<view class="coupon-swiper">
|
||||
<view class="top">
|
||||
<text>全部优惠券</text>
|
||||
<text>查看更多></text>
|
||||
<view class="title">全部优惠券</view>
|
||||
<view class="view-more" @click="toCouponPage">查看更多></view>
|
||||
</view>
|
||||
<view class="label">
|
||||
<text>sda</text>
|
||||
<text>asda</text>
|
||||
<text>dsad</text>
|
||||
<text>asdas</text>
|
||||
<u-tabs-swiper ref="coupon" :list="couponGroupList" name="gc_name" :is-scroll="true" active-color="#FF780F" :current="couponCurrent" font-size="24" :show-bar="false" @change="couponTabsChange" height="88" ></u-tabs-swiper>
|
||||
<!-- :style="{ height: swiperHeight }" -->
|
||||
<swiper :current="swiperCouponCurrent" @animationfinish="couponAnimationFinish">
|
||||
<swiper-item class="swiper-coupon-item" v-for="(_, i) in couponGroupList" :key="i">
|
||||
<!-- <scroll-view scroll-y style="height: 100%;"> -->
|
||||
<view v-for="(coupon, index) in couponList.slice(0, 4)" :key="index" class="coupon-item">
|
||||
<Coupon :couponInfo="coupon" :status='0' :type="0"></Coupon>
|
||||
</view>
|
||||
<scroll-view style="width:100%;margin-top: 21rpx;" scroll-x="true">
|
||||
<view class="list">
|
||||
<sitem></sitem>
|
||||
<sitem></sitem>
|
||||
<sitem></sitem>
|
||||
<sitem></sitem>
|
||||
<sitem></sitem>
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
||||
|
||||
<u-empty text="暂无优惠券" mode="coupon" color="#000" v-if="!couponList.length"></u-empty>
|
||||
<!-- </scroll-view> -->
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import sitem from "./item"
|
||||
import Coupon from "@/components/mine/coupon/index";
|
||||
export default {
|
||||
name:"youhq",
|
||||
components:{
|
||||
sitem
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
swiperHeight: '',
|
||||
couponCurrent: 0,
|
||||
swiperCouponCurrent: 0,
|
||||
couponGroupList: [],
|
||||
couponList: [],
|
||||
}
|
||||
},
|
||||
components: {
|
||||
Coupon
|
||||
},
|
||||
watch: {
|
||||
couponCurrent(index) {
|
||||
const id = this.couponGroupList[index].gc_id;
|
||||
this.getCouponList(id);
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.setViewHeight();
|
||||
this.getGoodsClass();
|
||||
},
|
||||
methods: {
|
||||
getGoodsClass() {
|
||||
this.$u.api.getGoodsClass().then(res => {
|
||||
if(res.errCode == 0) {
|
||||
this.couponGroupList = res.data;
|
||||
this.getCouponList(this.couponGroupList[0].gc_id);
|
||||
}
|
||||
})
|
||||
},
|
||||
getCouponList(gc_id) {
|
||||
this.$u.api.getCouponList({
|
||||
page: 0,
|
||||
gc_id: gc_id,
|
||||
}).then(res => {
|
||||
if(res.errCode == 0) {
|
||||
this.couponList = res.data;
|
||||
} else {
|
||||
this.couponList = [];
|
||||
}
|
||||
})
|
||||
},
|
||||
couponTabsChange(index) {
|
||||
this.couponCurrent = index;
|
||||
},
|
||||
couponAnimationFinish(e) {
|
||||
const current = e.detail.current;
|
||||
this.swiperCouponCurrent = current;
|
||||
this.couponCurrent = current;
|
||||
},
|
||||
setViewHeight() {
|
||||
const res = uni.getSystemInfoSync();
|
||||
// this.swiperHeight = res.windowHeight - ((88 + 10 + 88) / 2) + 'px';
|
||||
this.swiperHeight = '450px';
|
||||
},
|
||||
toCouponPage() {
|
||||
this.$u.route({
|
||||
url: '/pageE/mine/MemberServe',
|
||||
params: {
|
||||
current: 1
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.youhq{
|
||||
.coupon-swiper {
|
||||
.top {
|
||||
height: 90rpx;
|
||||
width: 100%;
|
||||
padding-top: 30rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
>text:first-child{
|
||||
.title {
|
||||
font-size: 30rpx;
|
||||
color: #333;
|
||||
font-weight: 500;
|
||||
color: rgba(51,51,51,1);
|
||||
}
|
||||
>text:last-child{
|
||||
.view-more {
|
||||
font-size: 18rpx;
|
||||
color: #999;
|
||||
color: rgba(153,153,153,1);
|
||||
}
|
||||
}
|
||||
.label{
|
||||
display: flex;
|
||||
font-size: 24rpx;
|
||||
color: #999;
|
||||
>text{
|
||||
margin-right: 34rpx;
|
||||
.swiper-coupon-item {
|
||||
box-sizing: border-box;
|
||||
background-color: #ffffff;
|
||||
// padding: 30rpx {
|
||||
// top: 0;
|
||||
// };
|
||||
.coupon-item {
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
}
|
||||
.list{
|
||||
display: flex;
|
||||
// justify-content: space-between;
|
||||
width: auto;
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,83 +0,0 @@
|
||||
<template>
|
||||
<view class="item">
|
||||
<view class="top">
|
||||
<view class="pic">
|
||||
<text>¥</text>
|
||||
<text>12</text>
|
||||
</view>
|
||||
<view class="man">
|
||||
<text></text>
|
||||
<text></text>
|
||||
</view>
|
||||
<text class="button">
|
||||
立即<br />领取
|
||||
</text>
|
||||
</view>
|
||||
<view class="time">
|
||||
使用时间:2020.01.24-2020.05.08
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name:"item"
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.item{
|
||||
padding: 10rpx;
|
||||
|
||||
width: 254rpx;
|
||||
height: 94rpx;
|
||||
border: 2rpx solid #FDD360;
|
||||
border-radius: 20rpx;
|
||||
flex-shrink: 0;
|
||||
margin-right: 16rpx;
|
||||
.top{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.pic{
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
color:#FDD360;
|
||||
>text:first-child{
|
||||
font-size: 24rpx;
|
||||
}
|
||||
>text:last-child{
|
||||
font-size: 48rpx;
|
||||
}
|
||||
}
|
||||
.man{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
color: #FDD360;
|
||||
>text:first-child{
|
||||
font-size: 14rpx;
|
||||
|
||||
}
|
||||
>text:last-child{
|
||||
font-size: 18rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
.button{
|
||||
width: 61rpx;
|
||||
height: 61rpx;
|
||||
border-radius: 50%;
|
||||
font-size: 18rpx;
|
||||
background-color: #FDD360;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
.time{
|
||||
font-size: 12rpx;
|
||||
color: #FDD360;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -37,17 +37,17 @@
|
||||
<view>
|
||||
<view class="title">优惠券折扣</view>
|
||||
<view class="value">
|
||||
<view>-¥10.00</view>
|
||||
<view>{{ index }}</view>
|
||||
<image src="../static/image/1.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view>
|
||||
<view class="title">支付方式</view>
|
||||
<view>
|
||||
<view class="title">运费</view>
|
||||
<view class="value">
|
||||
<view>微信</view>
|
||||
<image src="../static/image/1.png"></image>
|
||||
<view v-if="freight">¥{{ freight | setFreight(index) }}</view>
|
||||
<!-- <image src="../static/image/1.png"></image> -->
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -59,10 +59,10 @@
|
||||
<image src="../static/image/1.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<view @click="showDelivery=true">
|
||||
<view class="title">配送方式</view>
|
||||
<view class="value">
|
||||
<view>快递</view>
|
||||
<view>{{ delivery.text }}</view>
|
||||
<image src="../static/image/1.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
@ -70,36 +70,40 @@
|
||||
<view class="bottom">
|
||||
<view class="left">
|
||||
<view class="title">合计:</view>
|
||||
<view class="price">¥{{ orderInfo.store_goods_total | showTotalPrice }}</view>
|
||||
<view class="price">¥{{ totalPrice }}</view>
|
||||
</view>
|
||||
<view class="right">
|
||||
<view class="num">共件{{ orderInfo.store_cart_list | setTotalNumber }}商品</view>
|
||||
<view class="btn" @click="sendOrder">结算</view>
|
||||
</view>
|
||||
</view>
|
||||
<u-action-sheet :list="deliveryList" @click="setDelivery" border-radius="10" v-model="showDelivery"></u-action-sheet>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
showDelivery: false,
|
||||
orderInfo: {},
|
||||
totalPrice: '0.00',
|
||||
addressInfo: {},
|
||||
freight: '',
|
||||
freight: {}, // 运费
|
||||
isTakeawayer: '', // 是否支持骑手
|
||||
deliveryList: [{
|
||||
text: '快递',
|
||||
value: 'express',
|
||||
}, {
|
||||
text: '骑手',
|
||||
value: 'takeawayer',
|
||||
}],
|
||||
delivery: {
|
||||
text: '快递',
|
||||
value: 'express',
|
||||
}, // 配送方式
|
||||
}
|
||||
},
|
||||
filters: {
|
||||
showTotalPrice(object) {
|
||||
let price = 0;
|
||||
for (const key in object) {
|
||||
if (object.hasOwnProperty(key)) {
|
||||
const element = object[key];
|
||||
price += Number(element);
|
||||
}
|
||||
}
|
||||
return price.toFixed(2);
|
||||
},
|
||||
setTotalNumber(data) {
|
||||
let num = 0;
|
||||
for (const key in data) {
|
||||
@ -112,12 +116,29 @@ export default {
|
||||
}
|
||||
return num;
|
||||
},
|
||||
setFreight(freight, index) {
|
||||
return freight[index];
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
console.log(JSON.parse(option.info));
|
||||
this.orderInfo = JSON.parse(option.info);
|
||||
this.addressInfo = this.orderInfo.address_info;
|
||||
this.orderInfo = this.$store.state.cartInfo;
|
||||
},
|
||||
onShow() {
|
||||
// 判断是不是从选择地址页面返回
|
||||
if(JSON.stringify(this.$store.state.orderAddress) == '{}') {
|
||||
this.$store.commit('updateAddress', this.orderInfo.address_info);
|
||||
} else {
|
||||
this.addressInfo = this.$store.state.orderAddress;
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
this.$store.commit('updateAddress', {});
|
||||
},
|
||||
watch: {
|
||||
'$store.state.orderAddress'(value) {
|
||||
this.addressInfo = value;
|
||||
this.getFreight();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
sendOrder() {
|
||||
@ -156,12 +177,38 @@ export default {
|
||||
freight_hash: this.orderInfo.freight_hash,
|
||||
city_id: this.addressInfo.city_id,
|
||||
area_id: this.addressInfo.area_id,
|
||||
delivery: this.delivery.value,
|
||||
}).then(res => {
|
||||
if(res.errCode == 0) {
|
||||
// this.freight = res.
|
||||
this.freight = res.data.content;
|
||||
this.isTakeawayer = res.data.delivery.takeawayer;
|
||||
this.setTotalPrice(); // 计算总价
|
||||
}
|
||||
})
|
||||
},
|
||||
setTotalPrice(object) {
|
||||
const goods = this.orderInfo.store_goods_total;
|
||||
const freight = this.freight;
|
||||
let price = 0;
|
||||
[goods, freight].forEach(object => {
|
||||
for (const key in object) {
|
||||
if (object.hasOwnProperty(key)) {
|
||||
const element = object[key];
|
||||
price += Number(element);
|
||||
}
|
||||
}
|
||||
})
|
||||
// console.log(price);
|
||||
this.totalPrice = price.toFixed(2);
|
||||
},
|
||||
setDelivery(index) {
|
||||
if(index == 1) {
|
||||
if(!this.isTakeawayer) this.$u.toast('此地区不支持骑手配送');
|
||||
return false;
|
||||
}
|
||||
this.delivery = this.deliveryList[index];
|
||||
this.getFreight();
|
||||
},
|
||||
settlement() {
|
||||
uni.navigateTo({
|
||||
url: '/pageE/order/Details'
|
||||
@ -169,7 +216,7 @@ export default {
|
||||
},
|
||||
changeAddress() {
|
||||
uni.navigateTo({
|
||||
url: '/pageE/more/Address'
|
||||
url: '/pageE/more/Address?type=choose'
|
||||
});
|
||||
}
|
||||
},
|
||||
|
@ -100,11 +100,9 @@ export default {
|
||||
// ifcart 结算方式 1:购物车 0:直接结算(立即购买/拼团/秒杀)
|
||||
this.$u.api.settlementOrder({ ifcart: 1, cart_id: id }).then(res => {
|
||||
if(res.errCode == 0) {
|
||||
this.$store.commit('updateCart', res.data)
|
||||
this.$u.route({
|
||||
url: '/pageC/cart/ConfirmOrder',
|
||||
params: {
|
||||
info: JSON.stringify(res.data),
|
||||
}
|
||||
url: '/pageC/cart/ConfirmOrder'
|
||||
})
|
||||
}
|
||||
})
|
||||
|
63
pageC/groupBuy/index.vue
Normal file
63
pageC/groupBuy/index.vue
Normal file
@ -0,0 +1,63 @@
|
||||
<template>
|
||||
<view class="group">
|
||||
<view>
|
||||
<u-tabs-swiper ref="uTabs" :list="tabList" :current="current" @change="tabsChange" :is-scroll="false"
|
||||
swiperWidth="750"></u-tabs-swiper>
|
||||
</view>
|
||||
<swiper :current="swiperCurrent" @transition="transition" @animationfinish="animationfinish" >
|
||||
<swiper-item class="swiper-item" v-for="(_, index) in tabList" :key="index">
|
||||
<scroll-view scroll-y style="height: 800rpx;width: 100%;" @scrolltolower="onreachBottom">
|
||||
{{ index }}
|
||||
</scroll-view>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import SpecialGoods from "../../components/shop/special-shop/index"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tabList: [{name: '推荐'}, {name: '推荐'}, {name: '推荐'}],
|
||||
current: 0,
|
||||
swiperCurrent: 0,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
SpecialGoods
|
||||
},
|
||||
onShow() {
|
||||
this.getPinTuanList();
|
||||
},
|
||||
methods: {
|
||||
getPinTuanList() {
|
||||
this.$u.api.getPinTuanList().then(res => {
|
||||
|
||||
})
|
||||
},
|
||||
// tabs通知swiper切换
|
||||
tabsChange(index) {
|
||||
this.swiperCurrent = index;
|
||||
},
|
||||
// swiper-item左右移动,通知tabs的滑块跟随移动
|
||||
transition(e) {
|
||||
let dx = e.detail.dx;
|
||||
this.$refs.uTabs.setDx(dx);
|
||||
},
|
||||
// 由于swiper的内部机制问题,快速切换swiper不会触发dx的连续变化,需要在结束时重置状态
|
||||
// swiper滑动结束,分别设置tabs和swiper的状态
|
||||
animationfinish(e) {
|
||||
let current = e.detail.current;
|
||||
this.$refs.uTabs.setFinishCurrent(current);
|
||||
this.swiperCurrent = current;
|
||||
this.current = current;
|
||||
},
|
||||
// scroll-view到底部加载更多
|
||||
onreachBottom() {
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
</style>
|
85
pageC/spike/index.vue
Normal file
85
pageC/spike/index.vue
Normal file
@ -0,0 +1,85 @@
|
||||
<template>
|
||||
<view class="spike">
|
||||
<view class="title">
|
||||
<view class="name">全部秒杀</view>
|
||||
<view class="time">
|
||||
<text class="num">{{ seckillTime.littleHour }}</text>
|
||||
<text class="mah">:</text>
|
||||
<text class="num">00</text>
|
||||
<text class="mah">:</text>
|
||||
<text class="num">00</text>
|
||||
<text>-</text>
|
||||
<text class="num">{{ seckillTime.bigHour }}</text>
|
||||
<text class="mah">:</text>
|
||||
<text class="num">00</text>
|
||||
<text class="mah">:</text>
|
||||
<text class="num">00</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="spike-list">
|
||||
<SpecialGoods v-for="(item, index) in spikeList" :key="index" :item="item" type='spike'></SpecialGoods>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import SpecialGoods from "../../components/shop/special-shop/index"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
spikeList: [],
|
||||
page: 0,
|
||||
seckillTime: {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
SpecialGoods
|
||||
},
|
||||
onShow() {
|
||||
this.getSpikeList();
|
||||
},
|
||||
methods: {
|
||||
// 全部秒杀
|
||||
getSpikeList() {
|
||||
this.$u.api.getSpikeList({ page: this.page }).then(res => {
|
||||
if(res.errCode == 0) {
|
||||
this.spikeList = res.data.list;
|
||||
this.seckillTime = {
|
||||
bigHour: res.data.bigHour,
|
||||
littleHour: res.data.littleHour,
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.spike{
|
||||
min-height: calc(100vh - var(--window-top));
|
||||
padding: 30rpx;
|
||||
border-top: 1rpx solid rgba(236,236,236,1);
|
||||
.title{
|
||||
margin-bottom: 30rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.name{
|
||||
font-size: 30rpx;
|
||||
color: #333;
|
||||
}
|
||||
.time{
|
||||
margin-left: 20rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 20rpx;
|
||||
.num{
|
||||
box-sizing: content-box;
|
||||
width: 25rpx;
|
||||
height: 25rpx;
|
||||
background-color: #bfbfbf;
|
||||
margin: 0 10rpx;
|
||||
padding: 2rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
@ -37,11 +37,11 @@
|
||||
<scroll-view scroll-y class="details">
|
||||
<view v-for="(item, index) in pointslogList" :key="index" class="details-item">
|
||||
<view class="item-left">
|
||||
<view class="item-title">{{ item.pl_desc }}</view>
|
||||
<view class="item-title u-line-1">{{ item.pl_desc }}</view>
|
||||
<view class="item-date">{{ item.pl_addtime }}</view>
|
||||
</view>
|
||||
<view class="item-right" :class="[item.pl_addtime < 0 ? 'negative' : 'positive']">
|
||||
{{ item.pl_addtime > 0 ? item.pl_addtime : '+' + 10.00 }}
|
||||
<view class="item-right" :class="[item.pl_points < 0 ? 'negative' : 'positive']">
|
||||
{{ Number(item.pl_points) > 0 ? '+' + item.pl_points : item.pl_points }}
|
||||
</view>
|
||||
</view>
|
||||
<u-empty text="暂无明细" mode="data" color="#000" v-if="!pointslogList.length"></u-empty>
|
||||
@ -75,6 +75,14 @@ export default {
|
||||
components: {
|
||||
CouponView
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option.current) this.current = option.current;
|
||||
},
|
||||
watch: {
|
||||
current(value) {
|
||||
this.swiperCurrent = value;
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
this.getMemberPointsStat();
|
||||
this.getPointslogList();
|
||||
@ -186,6 +194,7 @@ export default {
|
||||
justify-content: space-between;
|
||||
.item-left {
|
||||
.item-title {
|
||||
width: 450rpx;
|
||||
font-size: 32rpx;
|
||||
color: rgba(51,51,51,1);
|
||||
margin-bottom: 23rpx;
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="coupon-swiper">
|
||||
<u-tabs-swiper ref="coupon" :list="couponGroupList" :is-scroll="true" active-color="#FF780F" :current="couponCurrent" font-size="24" :show-bar="false" @change="couponTabsChange" height="88" ></u-tabs-swiper>
|
||||
<u-tabs-swiper ref="coupon" :list="couponGroupList" name="gc_name" :is-scroll="true" active-color="#FF780F" :current="couponCurrent" font-size="24" :show-bar="false" @change="couponTabsChange" height="88" ></u-tabs-swiper>
|
||||
<swiper :current="swiperCouponCurrent" @animationfinish="couponAnimationFinish" :style="{ height: swiperHeight }">
|
||||
<swiper-item class="swiper-coupon-item" v-for="(_, i) in couponGroupList" :key="i">
|
||||
<scroll-view scroll-y style="height: 100%;">
|
||||
@ -31,43 +31,9 @@ export default {
|
||||
swiperHeight: '',
|
||||
couponCurrent: 0,
|
||||
swiperCouponCurrent: 0,
|
||||
couponGroupList: [
|
||||
{
|
||||
name: '平台'
|
||||
}, {
|
||||
name: '分类名称'
|
||||
}, {
|
||||
name: '分类名称'
|
||||
}, {
|
||||
name: '分类名称'
|
||||
}, {
|
||||
name: '分类名称'
|
||||
}, {
|
||||
name: '分类名称'
|
||||
}, {
|
||||
name: '分类名称'
|
||||
}, {
|
||||
name: '分类名称'
|
||||
}, {
|
||||
name: '分类名称'
|
||||
}, {
|
||||
name: '分类名称'
|
||||
}, {
|
||||
name: '分类名称'
|
||||
}, {
|
||||
name: '分类名称'
|
||||
}, {
|
||||
name: '分类名称'
|
||||
}
|
||||
],
|
||||
couponList: [
|
||||
{
|
||||
index: 0
|
||||
},
|
||||
{
|
||||
index: 1
|
||||
},
|
||||
],
|
||||
couponGroupList: [],
|
||||
couponList: [],
|
||||
page: 0,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
@ -75,8 +41,35 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.setViewHeight();
|
||||
this.getGoodsClass();
|
||||
},
|
||||
watch: {
|
||||
couponCurrent(index) {
|
||||
const id = this.couponGroupList[index].gc_id;
|
||||
this.getCouponList({ gc_id: id });
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getGoodsClass() {
|
||||
this.$u.api.getGoodsClass().then(res => {
|
||||
if(res.errCode == 0) {
|
||||
this.couponGroupList = res.data;
|
||||
this.getCouponList(this.couponGroupList[0].gc_id);
|
||||
}
|
||||
})
|
||||
},
|
||||
getCouponList({ gc_id }) {
|
||||
this.$u.api.getCouponList({
|
||||
page: this.page,
|
||||
gc_id: gc_id,
|
||||
}).then(res => {
|
||||
if(res.errCode == 0) {
|
||||
this.couponList = res.data;
|
||||
} else {
|
||||
this.couponList = [];
|
||||
}
|
||||
})
|
||||
},
|
||||
exchangeCoupon(id) {
|
||||
console.log(id);
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<u-radio-group v-model="current" @change="changeDefault" size="29" active-color="#FF780F">
|
||||
<u-empty text="暂无收货地址" mode="address" color="#000000" img-width="120" margin-top="300" v-if="!addressList.length"></u-empty>
|
||||
<view v-for="(item, index) in addressList" :key="index" class="address-item">
|
||||
<AddressItem :item="item" :current='current' @getAddressList="getAddressList"></AddressItem>
|
||||
<AddressItem :item="item" :current='current' @getAddressList="getAddressList" :state="state"></AddressItem>
|
||||
</view>
|
||||
</u-radio-group>
|
||||
<view class="address-btn" @click="addAddress">添加地址</view>
|
||||
@ -16,12 +16,16 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
current: -1, // radio 标记
|
||||
addressList: []
|
||||
addressList: [],
|
||||
state: '', // 页面状态 是否进页面选择地址
|
||||
}
|
||||
},
|
||||
components: {
|
||||
AddressItem
|
||||
},
|
||||
onLoad(option) {
|
||||
if(option.type) this.state = option.type;
|
||||
},
|
||||
onShow() {
|
||||
this.getAddressList();
|
||||
},
|
||||
|
@ -4,7 +4,7 @@
|
||||
<swiper :current="swiperCurrent" @animationfinish="animationfinish" :style="{ height: swiperHeight }">
|
||||
<swiper-item class="swiper-item" v-for="(_, index) in list" :key="index">
|
||||
<scroll-view scroll-y class="scroll-coupon">
|
||||
<view class="coupon-item" v-for="(coupon, c_index) in test" :key="c_index">
|
||||
<view class="coupon-item" v-for="(coupon, c_index) in couponList" :key="c_index">
|
||||
<Coupon :couponInfo="coupon" :status='index' :type="1" @use="useCoupon($event)"></Coupon>
|
||||
</view>
|
||||
</scroll-view>
|
||||
@ -24,35 +24,10 @@ export default {
|
||||
}, {
|
||||
name: '已过期'
|
||||
}],
|
||||
current: 0,
|
||||
current: Number,
|
||||
swiperCurrent: 0,
|
||||
swiperHeight: '',
|
||||
test: [
|
||||
{
|
||||
index: 0
|
||||
},
|
||||
{
|
||||
index: 1
|
||||
},
|
||||
{
|
||||
index: 2
|
||||
},
|
||||
{
|
||||
index: 3
|
||||
},
|
||||
{
|
||||
index: 4
|
||||
},
|
||||
{
|
||||
index: 5
|
||||
},
|
||||
{
|
||||
index: 6
|
||||
},
|
||||
{
|
||||
index: 7
|
||||
}
|
||||
]
|
||||
couponList: []
|
||||
}
|
||||
},
|
||||
components: {
|
||||
@ -61,7 +36,25 @@ export default {
|
||||
onLoad() {
|
||||
this.setViewHeight();
|
||||
},
|
||||
onShow() {
|
||||
this.current = 0;
|
||||
},
|
||||
watch: {
|
||||
current(value) {
|
||||
let status = value + 1;
|
||||
this.getMemberCouponList(status);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getMemberCouponList(current) {
|
||||
this.$u.api.getMemberCouponList({
|
||||
status: current
|
||||
}).then(res => {
|
||||
if(res.errCode == 0) {
|
||||
this.couponList = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
useCoupon(id) {
|
||||
console.log(id);
|
||||
},
|
||||
|
28
pages.json
28
pages.json
@ -249,7 +249,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "cart/ConfirmOrder",
|
||||
@ -263,7 +262,32 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "spike/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "全部秒杀",
|
||||
"app-plus": {
|
||||
"titleSize": "36px",
|
||||
"titleNView": {
|
||||
"titleColor": "#333333",
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "groupBuy/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "全部拼团",
|
||||
"app-plus": {
|
||||
"titleSize": "36px",
|
||||
"titleNView": {
|
||||
"titleColor": "#333333",
|
||||
"backgroundColor": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -38,16 +38,16 @@
|
||||
</view>
|
||||
<view class="hr" style="margin-top:80rpx"></view>
|
||||
<recommend v-if="JSON.stringify(recommendedSpike) != '{}'" :recommendData="recommendedSpike" type="spike"></recommend>
|
||||
<view class="hr" style="margin-top:40rpx"></view>
|
||||
<seckill v-if="spikeList.length"></seckill>
|
||||
<view v-if="JSON.stringify(recommendedSpike) != '{}'" class="hr" style="margin-top:40rpx"></view>
|
||||
<seckill v-if="spikeList.length" :list="spikeList" :time="seckillTime"></seckill>
|
||||
<view v-if="spikeList.length" class="hr" style="margin-top:40rpx"></view>
|
||||
<recommend v-if="0"></recommend>
|
||||
<view class="hr" style="margin-top:40rpx" v-if="0"></view>
|
||||
<recommend v-if="JSON.stringify(pinTuanPush) != '{}'" :recommendData="pinTuanPush" type='group'></recommend>
|
||||
<view class="hr" style="margin-top:40rpx" v-if="JSON.stringify(pinTuanPush) != '{}'"></view>
|
||||
<group></group>
|
||||
<image class="lingquan"></image>
|
||||
<youhq></youhq>
|
||||
<view class="hr" style="margin-top:40rpx"></view>
|
||||
<list :classifyList="classifyList" :goodsList="goodsList"></list>
|
||||
<list v-if="couponGroupList.length" :classifyList="couponGroupList"></list>
|
||||
<view class="cart" @click="toCartPage">
|
||||
<image src="/static/image/common/3.png"></image>
|
||||
</view>
|
||||
@ -85,18 +85,22 @@ export default {
|
||||
list:[],
|
||||
goodsClassify: [], // 商品分类
|
||||
classifyList: [],
|
||||
goodsList: [],
|
||||
recommendedSpike: {}, // 秒杀推荐
|
||||
spikeList: [], // 全部秒杀列表
|
||||
seckillTime: {}, // 秒杀时间
|
||||
couponGroupList: [], // 优惠券拼团分类
|
||||
pinTuanList: [], // 拼团商品
|
||||
pinTuanPush: {}, // 拼团推荐
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getShopTopList();
|
||||
this.getGoodsRecommend();
|
||||
},
|
||||
onShow() {
|
||||
this.getRecommendedSpike();
|
||||
this.getSpikeList();
|
||||
this.getGoodsClass();
|
||||
this.getPinTuanPush();
|
||||
},
|
||||
methods: {
|
||||
sousuo(){
|
||||
@ -124,25 +128,45 @@ export default {
|
||||
getRecommendedSpike() {
|
||||
this.$u.api.recommendedSpike().then(res => {
|
||||
if(res.errCode == 0) this.recommendedSpike = res.data;
|
||||
console.log(this.recommendedSpike);
|
||||
// console.log(this.recommendedSpike);
|
||||
})
|
||||
},
|
||||
// 拼团推荐
|
||||
getPinTuanPush() {
|
||||
this.$u.api.getPinTuanPush().then(res => {
|
||||
if(res.errCode == 0) {
|
||||
this.pinTuanPush = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取优惠券拼团分类
|
||||
getGoodsClass() {
|
||||
this.$u.api.getGoodsClass().then(res => {
|
||||
if(res.errCode == 0) {
|
||||
this.couponGroupList = res.data;
|
||||
this.getPinTuanList(this.couponGroupList[0].gc_id);
|
||||
}
|
||||
})
|
||||
},
|
||||
// 全部秒杀
|
||||
getSpikeList() {
|
||||
this.$u.api.getSpikeList({ page: 0 }).then(res => {
|
||||
if(res.errCode == 0) this.spikeList = res.data;
|
||||
if(res.errCode == 0) {
|
||||
this.spikeList = res.data.list;
|
||||
this.seckillTime = {
|
||||
bigHour: res.data.bigHour,
|
||||
littleHour: res.data.littleHour,
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
getGoodsRecommend() {
|
||||
this.$u.api.getGoodsRecommend({
|
||||
page: 1,
|
||||
}).then((res)=>{
|
||||
if (res.errCode == 0) {
|
||||
this.classifyList = res.data.classifyList;
|
||||
this.goodsList = res.data.goodsList;
|
||||
// console.log(this.classifyList);
|
||||
|
||||
}
|
||||
// 拼团列表
|
||||
getPinTuanList(id) {
|
||||
this.$u.api.getPinTuanList({
|
||||
page: 0,
|
||||
gc_id: id,
|
||||
}).then(res => {
|
||||
this.pinTuanList = res.data;
|
||||
})
|
||||
},
|
||||
clickImage(index) {
|
||||
|
Loading…
Reference in New Issue
Block a user