Browse Source

删除无用组件

master
52643018@qq.com 4 years ago
parent
commit
2e74fb1c6d
  1. 102
      components/big-coffee/big-coffee.less
  2. 74
      components/big-coffee/big-coffee.vue
  3. 55
      components/exclusive-plan/exclusive-plan.less
  4. 58
      components/exclusive-plan/exclusive-plan.vue
  5. 108
      components/health-tips/health-tips.less
  6. 102
      components/health-tips/health-tips.vue
  7. 112
      components/index-call/index-call.less
  8. 114
      components/index-call/index-call.vue
  9. 73
      components/index-category/index-category.less
  10. 69
      components/index-category/index-category.vue
  11. 114
      components/index-cube/index-cube.less
  12. 252
      components/index-cube/index-cube.vue
  13. 166
      components/index-grouping/index-grouping.less
  14. 94
      components/index-grouping/index-grouping.vue
  15. 216
      components/index-groupon/index-groupon.less
  16. 98
      components/index-groupon/index-groupon.vue
  17. 133
      components/index-seckill/index-seckill.less
  18. 160
      components/index-seckill/index-seckill.vue
  19. 260
      components/index-suit/index-suit.less
  20. 77
      components/index-suit/index-suit.vue
  21. 75
      components/waterfalls-flow/waterfalls-flow.less
  22. 99
      components/waterfalls-flow/waterfalls-flow.vue
  23. 185
      pages/index/index/index.vue

102
components/big-coffee/big-coffee.less

@ -1,102 +0,0 @@
.big-coffee{
background-color: #FFFFFF;
padding: 0 15px;
.title{
padding: 10px 0px 0px 0;
display: flex;
justify-content: space-between;
color: #000;
align-items: center;
span:nth-child(1) {
font-size: 24px;
font-weight: bold;
line-height: 33px;
display: inline-block;
//padding-left: 6px;
//border-left: 4px solid #E7031C;
}
i{
margin-left: 5px;
}
span:nth-child(2) {
font-size: 12px;
display: flex;
align-items: center;
text{
font-size: 15px;
font-weight: 700;
margin-top: -8px;
margin-left: 5px;
}
}
}
.ul-list{
.li-item{
padding: 9px 0px;
display: flex;
align-items: center;
.left-info{
width:122px;
height:122px;
image{
width: 100%;
height: 100%;
vertical-align:middle;
}
}
.right-info{
flex: 1;
overflow: hidden;
padding-left: 18px;
.name{
height: 48px;
color:#111111;
font-size: 16px;
line-height: 24px;
margin-bottom:29px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.referrer{
display: flex;
align-items: center;
.avatar{
width: 34px;
height: 34px;
border-radius: 50%;
image{
width: 100%;
height: 100%;
border-radius: 50%;
}
}
.detail{
flex: 1;
overflow: hidden;
padding-left: 7px;
.nick-name{
color:#666666;
font-size: 12px;
line-height: 17px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.sub-intro{
color: #999999;
font-size: 10px;
line-height: 14px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
}
}
}
}

74
components/big-coffee/big-coffee.vue

@ -1,74 +0,0 @@
<template>
<view class="big-coffee" :style="'margin-bottom: ' + meta.margin_bottom + 'px'">
<view class="title" v-if="coffeeTitle && show">
<span>{{coffeeTitle}}</span>
<!--<span data-link="/pages/article/coffeeList/coffeeList?type=1" bindtap="_jumpImg">
更多
<i class="iconfont icon-gengduo"></i>
</span>-->
</view>
<view class="ul-list">
<view class="li-item" v-for="(item, index) in coffeeData" :key="index" :data-link="item.link" @tap="_jumpImg">
<view class="left-info">
<image :src="item.image"></image>
</view>
<view class="right-info">
<view class="name">
{{item.associate.title}}
</view>
<view class="referrer">
<view class="avatar">
<image :src="item.associate.author_avatar"></image>
</view>
<view class="detail">
<view class="nick-name">推荐者{{item.associate.author}}</view>
<view class="sub-intro">{{item.associate.author_title}}</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {};
},
props: {
coffeeData: {
type: Array,
value: ''
},
coffeeTitle: {
type: String,
value: ''
},
show: {
type: Number,
value: ''
},
meta: {
type: Object,
value: ""
}
},
methods: {
_jumpImg(e) {
var link = e.currentTarget.dataset.link;
if (!link || link == 'uto_miniprogram') return;
wx.navigateTo({
url: link
});
},
},
};
</script>
<style rel="stylesheet/less" lang="less">
@import "big-coffee";
</style>

55
components/exclusive-plan/exclusive-plan.less

@ -1,55 +0,0 @@
.exclusive-plan{
background-color: #FFFFFF;
.title{
padding: 10px 15px 5px 15px;
display: flex;
justify-content: space-between;
color: #000;
align-items: center;
span:nth-child(1) {
font-size: 24px;
font-weight: bold;
line-height: 33px;
display: inline-block;
//padding-left: 6px;
//border-left: 4px solid #E7031C;
}
span:nth-child(2) {
font-size: 12px;
display: flex;
align-items: center;
text{
font-size: 15px;
font-weight: 700;
margin-left: 5px;
}
}
}
.content-plans{
//padding:0px 0px 20px 0px;
white-space: nowrap;
overflow: auto;
.item{
display: inline-block;
width:240px;
height: 125px;
margin: 5px;
&:first-child {
margin-left: 15px;
}
&:last-child {
margin-right: 15px;
}
image{
width: 100%;
height: 100%;
}
}
}
}

58
components/exclusive-plan/exclusive-plan.vue

@ -1,58 +0,0 @@
<template>
<view class="exclusive-plan" :style="'margin-bottom: ' + meta.margin_bottom + 'px'">
<view class="title" v-if="planTitle && show">
<span>{{planTitle}}</span>
<span data-link="/pages/article/list/list?type=2" @tap="_jumpImg">更多
<text class="iconfont icon-gengduo"></text>
</span>
</view>
<view class="content-plans">
<view class="item" v-for="(item, index) in planData" :key="index" :data-link="item.link" @tap="_jumpImg">
<image :src="item.image"></image>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {};
},
props: {
planData: {
type: Array,
value: ''
},
planTitle: {
type: String,
value: ''
},
show: {
type: Number,
value: ''
},
meta: {
type: Object,
value: ""
}
},
options: {
addGlobalClass: true
},
methods: {
_jumpImg(e) {
var link = e.currentTarget.dataset.link;
if (!link || link == 'uto_miniprogram') return;
wx.navigateTo({
url: link
});
}
}
};
</script>
<style rel="stylesheet/less" lang="less">
@import "exclusive-plan";
</style>

108
components/health-tips/health-tips.less

@ -1,108 +0,0 @@
.health-tips{
background-color: #FFFFFF;
padding: 0 0px;
//margin-bottom:15px;
.title{
padding: 10px 15px 0px 15px;
display: flex;
justify-content: space-between;
color: #000;
align-items: center;
span:nth-child(1) {
font-size: 24px;
font-weight: bold;
line-height: 33px;
display: inline-block;
//padding-left: 6px;
//border-left: 4px solid #E7031C;
}
span:nth-child(2) {
font-size: 12px;
display: flex;
align-items: center;
text{
font-size: 15px;
font-weight: 700;
margin-top: -8px;
margin-left: 5px;
}
}
}
.ul-content{
.li-item{
.top-box{
padding: 11px 15px 8px 15px;
display: flex;
align-items: center;
justify-content: space-between;
.topic{
color: #111111;
font-size: 14px;
line-height: 24px;
font-weight: 700;
}
.change{
height: 19px;
border-radius:4px;
border: 1px solid #333333;
width: 44px;
text-align: center;
color: #333333;
font-size: 11px;
}
}
.center-box{
padding:0 15px 9px 15px;
color: #999999;
font-size: 12px;
line-height: 19px;
}
.bottom-box{
overflow: auto;
padding:18px 10px;
display: flex;
flex-wrap: nowrap;
.item{
margin: 0 5px;
.info{
.img-box{
width: 100px;
height: 100px;
image{
width: 100%;
height: 100%;
vertical-align: middle;
}
}
.name{
padding:6px 0 3px 0;
color:#333333;
font-size: 12px;
line-height: 19px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.money{
color: #E7031C;
font-size: 11px;
line-height: 16px;
span{
color: #999999;
font-size: 10px;
line-height: 14px;
text-decoration: line-through;
}
}
}
}
}
}
}
}

102
components/health-tips/health-tips.vue

@ -1,102 +0,0 @@
<template>
<view class="health-tips" :style="'margin-bottom: ' + meta.margin_bottom + 'px'">
<view class="title" v-if="title && show">
<span>{{title}}</span>
</view>
<view class="ul-content">
<view class="li-item" v-if="tipsData">
<view class="top-box">
<view class="topic">
{{tipsData.name}}
</view>
<view class="change" @tap="_changeItem">
换一换
</view>
</view>
<view class="center-box">
{{tipsData.meta.subtitle}}
</view>
<view class="bottom-box">
<view class="item" :data-id="item.associate.id" v-for="(item, index) in tipsData.children" :key="index" @tap="_jumpToDetail">
<view class="info">
<view class="img-box">
<image :src="item.associate.img"></image>
</view>
<view class="name">
{{item.associate.name}}
</view>
<view class="money">
{{item.associate.sell_price}}
<span>{{item.associate.market_price}}</span>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
tipsData: '',
tapIndex: 0
};
},
props: {
healthData: {
type: Array,
value: ''
},
title: {
type: String,
value: ''
},
show: {
type: Number,
value: ''
},
meta: {
type: Object,
value: ""
}
},
mounted() {
this.tipsData= this.healthData[0];
} ,
//
methods: {
_changeItem(e) {
var index = this.tapIndex;
if (index == this.healthData.length - 1) {
index = 0;
} else {
index++;
}
this.tipsData= this.healthData[0];
this.tapIndex= index;
},
_jumpToDetail(e) {
var id = e.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/store/detail/detail?id=${id}`
});
},
},
};
</script>
<style rel="stylesheet/less" lang="less">
@import "health-tips";
</style>

112
components/index-call/index-call.less

@ -1,112 +0,0 @@
@import '../../common/css/global';
//dacall
.seckill-box{
background: #FFFFFF;
padding:10px 15px;
.title{
height: 35px;
display: flex;
justify-content: space-between;
color: #000;
line-height: 35px;
span:nth-child(1) {
font-size: 22px;
font-weight: bold;
display: inline-block;
}
span:nth-child(2) {
font-size: 12px;
display: flex;
align-items: center;
text{
&.iconfont{
font-size: 15px;
font-weight: 600;
margin-left: 5px;
}
}
}
}
.seckill-info{
display: flex;
align-items: flex-start;
margin-top: 10px;
.left{
width: 100px;
height: 100px;
image{
width: 100%;
height: 100%;
}
}
.right{
flex: 1;
margin-left: 10px;
overflow: hidden;
.goods-name{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 16px;
}
.price-box {
color: #e50303;
font-size: 18px;
.old{
font-size: 12px;
color: #9c9c9c;
text-decoration: line-through;
}
&.free-money{
font-size: 14px;
color: #9C9C9C;
display: flex;
align-items: center;
justify-content: space-between;
.money{
display: flex;
align-items: center;
.new {
font-size: 18px;
color: @globalColor;
}
.old{
font-size: 10px;
margin-left: 5px;
text-decoration: line-through;
}
}
}
}
.seckill-time{
display: flex;
align-items: flex-end;
justify-content: space-between;
.free{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
flex: 1;
}
.buy{
width: 70px;
height: 25px;
border-radius: 50px;
color: #fff;
background:#FB5054;
font-size: 12px;
line-height: 25px;
text-align: center;
}
}
}
}
}

114
components/index-call/index-call.vue

@ -1,114 +0,0 @@
<template>
<!--打call-->
<view class="seckill-box" :style="'margin-bottom: ' + meta.margin_bottom + 'px'">
<view class="title " data-src="/pages/store/callList/callList" @tap="_jumpImg">
<span>打Call免费领</span>
<span>更多
<text class="iconfont icon-gengduo"></text>
</span>
</view>
<view v-for="(item, index) in callData" :key="index" >
<view class="seckill-info" :data-goods="item.associate.goods.id" :data-id="item.associate_id" @tap="_jumpCall">
<view class="left">
<image :src="item.associate.img"></image>
</view>
<view class="right">
<view class="goods-name">
{{item.associate.label}}
</view>
<view class="price-box free-money">
<view class="money">
<text class="new">{{item.associate.goods.sell_price}}</text>
<text class="old">{{item.associate.goods.market_price}}</text>
</view>
<view class="nun">
限量{{item.associate.limit}}
</view>
</view>
<view class="seckill-time">
<view v-if="item.associate.activity_status == 'NoBegin'">
<seckill :end="item.associate.ends_at" typename="集call" :starts="item.associate.starts_at" :server="server" mold="index"></seckill>
</view>
<view class="free" v-else>
集满{{item.associate.per_count}}个Call即可免费领
</view>
<view :style="'background: ' + config.mainColor" class="buy">
去打Call
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {pageLogin, getUrl,config} from '../../common/js/utils.js';
import seckill from "../seckill/seckill";
export default {
data() {
return {};
},
components: {
seckill
},
props: {
callData: {
type: Array,
value: ''
},
isLogin: {
type: Boolean,
value: ''
},
config: {
type: Object,
value: ''
},
server: {
type: String,
value: ''
},
meta: {
type: Object,
value: ""
}
},
options: {
addGlobalClass: true
},
//
methods: {
_jumpImg(e) {
var src = e.currentTarget.dataset.src;
if (!src || src == 'uto_miniprogram') return;
wx.navigateTo({
url: src
});
},
_jumpCall(e) {
if (this.isLogin) {
var id = e.currentTarget.dataset.id;
wx.navigateTo({
url: '/pages/store/call/call?id=' + id
});
} else {
wx.showModal({
content: '请先登录',
success: res => {
if (res.confirm || !res.cancel && !res.confirm) {
pageLogin(getUrl());
}
}
});
}
}
},
};
</script>
<style rel="stylesheet/less" lang="less">
@import "index-call";
</style>

73
components/index-category/index-category.less

@ -1,73 +0,0 @@
//最佳销售单品
.index-categrory{
.best {
overflow: hidden;
.title {
padding:10px 15px;
display: flex;
justify-content: space-between;
color: #000;
align-items: center;
background: #FFFFFF;
span:nth-child(1) {
font-size: 22px;
font-weight: bold;
display: inline-block;
//padding-left: 6px;
//border-left: 4px solid #E7031C;
}
}
.SalesGoods-box {
.SalesGoods-item {
text-align: center;
display: inline-block;
width: 33.33%;
padding: 0 3px;
box-sizing: border-box;
vertical-align: middle;
margin-bottom: 6px;
.item {
background: #FFFFFF;
}
}
.slider-image {
width: 100%;
}
.goods-name {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding-left: 2px;
}
.money-box {
display: flex;
align-items: center;
padding-left: 7px;
.money-now {
color: red;
font-size: 12px;
}
.money-old {
color: #c7c7c7;
font-size: 13px;
text-decoration: line-through;
}
}
}
.button-box {
width: 100%;
height: 44px;
text-align: center;
line-height: 44px;
background: #FFFFFF;
}
}
}

69
components/index-category/index-category.vue

@ -1,69 +0,0 @@
<template>
<!--最佳销售单品-->
<view>
<view class="index-categrory" v-for="(items, idx) in categoryData" :key="idx" :style="'margin-bottom: ' + meta.margin_bottom + 'px'">
<view class="best">
<view class="title">
<span>{{items.meta.name}}</span>
</view>
<view class="SalesGoods-box">
<view class="SalesGoods-item" :data-id="item.id" v-for="(item, index) in items.goodsList" :key="index" @tap="_jumpToDetail">
<view class="item">
<image mode="widthFix" class="slider-image" :src="item.img" :alt="item.image"></image>
<view class="goods-name">{{item.name}}</view>
<view class="money-box">
<view class="money-now">{{item.sell_price}}</view>
</view>
</view>
</view>
</view>
<view class="button-box" data-src="/pages/store/list/list" @tap="_jumpImg">
查看全部商品
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {};
},
props: {
categoryData: {
type: Array,
value: ''
},
meta: {
type: Object,
value: ""
}
},
//
methods: {
_jumpToDetail(e) {
var id = e.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/store/detail/detail?id=${id}`
});
},
_jumpImg(e) {
var src = e.currentTarget.dataset.src;
if (!src || src == 'uto_miniprogram') return;
wx.navigateTo({
url: src
});
}
},
};
</script>
<style rel="stylesheet/less" lang="less">
@import "index-category";
</style>

114
components/index-cube/index-cube.less

@ -1,114 +0,0 @@
//图片魔方
.picture-cube{
background-color: #FFFFFF;
.title{
color:#111111;
padding: 20px 15px;
font-size:22px;
font-weight: 700;
span{
display: inline-block;
/*padding-left:6px;
border-left:4px solid #E7031C;*/
}
}
//一图模式
.one-mode{
image{
box-sizing: border-box;
width: 100%;
}
}
//二图模式
.two-mode{
// 第一种表现形式
.first-show{
display: flex;
padding: 5px;
.item{
flex: 1;
padding: 5px;
image{
width: 100%;
}
}
}
.common-show{
display: flex;
.item{
flex: 1;
padding: 5px;
image{
width: 100%;
height: 100%;
}
}
.two-item{
flex: 2;
padding: 5px;
image{
width: 100%;
}
}
}
}
// 三图模式
.three-mode{
.first-show{
display: flex;
padding: 5px;
.item{
flex: 1;
padding: 5px;
image{
width: 100%;
}
}
}
.common-show{
display: flex;
.item{
flex: 1;
padding: 5px;
image{
width: 100%;
}
.info{
height: 50%;
padding: 5px;
image{
height: 100%;
}
}
}
}
}
// 四图模式
.four-mode{
.first-show{
display: flex;
flex-wrap: wrap;
padding: 5px;
.item{
width: 50%;
padding: 5px;
image{
width: 100%;
}
}
}
.second-show{
display: flex;
.item{
flex: 1;
padding: 5px;
image{
width: 100%;
}
}
}
}
}

252
components/index-cube/index-cube.vue

@ -1,252 +0,0 @@
<template>
<view class="picture-cube" :style="{marginBottom: meta.margin_bottom + 'px',background: meta.background_color}">
<!--一图模式-->
<view class="one-mode" v-if="showType == '1_1'">
<view class="title" v-if="cubeTitle && show">
<span>{{cubeTitle}}</span>
</view>
<view :style="' padding-left: ' + meta.padding_left + 'px; padding-right: ' + meta.padding_right + 'px; padding-bottom: ' + meta.padding_bottom + 'px; padding-top: ' + meta.padding_top + 'px;'">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[0].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[0].image"></image>
</navigator>
<image mode="widthFix" :src="cubeData[0].image" v-else :data-src="cubeData[0].link" @tap="_jumpLink"></image>
</view>
</view>
<!--二图模式-->
<view class="two-mode" v-if="mode == 2">
<view class="title" v-if="cubeTitle && show">
<span>{{cubeTitle}}</span>
</view>
<!--第一种表现形式-->
<view class="first-show" v-if="showType == '2_1'">
<view class="item">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[0].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[0].image"></image>
</navigator>
<image mode="widthFix" :src="cubeData[0].image" v-else :data-src="cubeData[0].link" @tap="_jumpLink"></image>
</view>
<view class="item">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[1].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[1].image"></image>
</navigator>
<image mode="widthFix" :src="cubeData[1].image" v-else :data-src="cubeData[1].link" @tap="_jumpLink"></image>
</view>
</view>
<!--第二种表现形式-->
<view class="common-show" v-if="showType == '2_2'">
<view class="item">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[0].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[0].image"></image>
</navigator>
<image :src="cubeData[0].image" v-else :data-src="cubeData[0].link" @tap="_jumpLink"></image>
</view>
<view class="two-item">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[1].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[1].image"></image>
</navigator>
<image mode="widthFix" :src="cubeData[1].image" v-else :data-src="cubeData[1].link" @tap="_jumpLink"></image>
</view>
</view>
<!--第三种表现形式-->
<view class="common-show" v-if="showType == '2_3'">
<view class="two-item">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[0].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[0].image"></image>
</navigator>
<image mode="widthFix" :src="cubeData[0].image" v-else :data-src="cubeData[0].link" @tap="_jumpLink"></image>
</view>
<view class="item">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[1].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[1].image"></image>
</navigator>
<image :src="cubeData[1].image" v-else :data-src="cubeData[1].link" @tap="_jumpLink"></image>
</view>
</view>
</view>
<!--三图模式-->
<view class="three-mode" v-if="mode == 3">
<view class="title" v-if="cubeTitle && show">
<span>{{cubeTitle}}</span>
</view>
<!--第一种表现形式-->
<view class="first-show" v-if="showType == '3_1'">
<view class="item">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[0].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[0].image"></image>
</navigator>
<image mode="widthFix" :src="cubeData[0].image" v-else :data-src="cubeData[0].link" @tap="_jumpLink"></image>
</view>
<view class="item">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[1].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[1].image"></image>
</navigator>
<image mode="widthFix" :src="cubeData[1].image" v-else :data-src="cubeData[1].link" @tap="_jumpLink"></image>
</view>
<view class="item">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[2].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[2].image"></image>
</navigator>
<image mode="widthFix" :src="cubeData[2].image" v-else :data-src="cubeData[2].link" @tap="_jumpLink"></image>
</view>
</view>
<!--第二种表现形式-->
<view class="common-show" v-if="showType == '3_2'">
<view class="item">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[0].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[0].image"></image>
</navigator>
<image mode="widthFix" :src="cubeData[0].image" v-else :data-src="cubeData[0].link" @tap="_jumpLink"></image>
</view>
<view class="item">
<view class="info">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[1].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[1].image"></image>
</navigator>
<image :src="cubeData[1].image" v-else :data-src="cubeData[1].link" @tap="_jumpLink"></image>
</view>
<view class="info">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[2].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[2].image"></image>
</navigator>
<image :src="cubeData[2].image" v-else :data-src="cubeData[2].link" @tap="_jumpLink"></image>
</view>
</view>
</view>
<!--第三种表现形式-->
<view class="common-show" v-if="showType == '3_3'">
<view class="item">
<view class="info">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[1].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[1].image"></image>
</navigator>
<image :src="cubeData[1].image" v-else :data-src="cubeData[1].link" @tap="_jumpLink"></image>
</view>
<view class="info">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[2].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[2].image"></image>
</navigator>
<image :src="cubeData[2].image" v-else :data-src="cubeData[2].link" @tap="_jumpLink"></image>
</view>
</view>
<view class="item">
<navigator target="miniProgram" hover-class="none" v-if="cubeData[0].link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="cubeData[0].image"></image>
</navigator>
<image mode="widthFix" :src="cubeData[0].image" v-else :data-src="cubeData[0].link" @tap="_jumpLink"></image>
</view>
</view>
</view>
<!--四图模式-->
<view class="four-mode" v-if="mode == 4">
<view class="title" v-if="cubeTitle && show">
<span>{{cubeTitle}}</span>
</view>
<!--第一种表现形式-->
<view class="first-show" v-if="showType == '4_1'">
<view class="item" v-for="(item, index) in cubeData" :key="index" >
<navigator target="miniProgram" hover-class="none" v-if="item.link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="item.image"></image>
</navigator>
<image mode="widthFix" :src="item.image" v-else :data-src="item.link" @tap="_jumpLink"></image>
</view>
</view>
<!--第二种表现形式-->
<view class="second-show" v-if="showType == '4_2'">
<view class="item" v-for="(item, index) in cubeData" :key="index" >
<navigator target="miniProgram" hover-class="none" v-if="item.link == 'uto_miniprogram'" app-id="wx009e0be72cbf5e80" class="item-navigator">
<image mode="widthFix" :src="item.image"></image>
</navigator>
<image mode="widthFix" :src="item.image" v-else :data-src="item.link" @tap="_jumpLink"></image>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
mode: '',
bottom: ''
};
},
props: {
showType: {
type: String,
value: ''
},
cubeData: {
type: Array,
value: ''
},
cubeTitle: {
type: String,
value: ''
},
show: {
type: Number,
value: ''
},
meta: {
type: Object,
value: ""
} ,
isAgent:{
type:Number,
value:''
}
},
mounted() {
var type = this.showType;
var mode = '';
mode = type.split('_')[0];
this.mode=mode;
},
//
methods: {
//
_jumpLink(e) {
var src = e.currentTarget.dataset.src;
if (!src || src == 'uto_miniprogram') return;
if(src == '/pages/distribution/distributionCenter/distributionCenter'){
var token = this.$cookieStorage.get('user_token');
if(token){
var is_agent = this.isAgent;
//
if(is_agent == 1){
wx.navigateTo({
url:'/pages/distribution/distributionCenter/distributionCenter'
})
} else{
wx.navigateTo({
url:'/pages/distribution/applyDistribution/applyDistribution'
})
}
} else{
var url = 'pages/index/index/index';
wx.navigateTo({
url: '/pages/user/register/register?url=' + url
})
}
} else{
wx.navigateTo({
url: src
});
}
}
},
};
</script>
<style rel="stylesheet/less" lang="less">
@import "index-cube";
</style>

166
components/index-grouping/index-grouping.less

@ -1,166 +0,0 @@
@import '../../common/css/global';
.g-main {
position: relative;
.m-lead {
font-size: 13px;
background: #ffffff;
padding:10px 15px;
.ul-box {
display: flex;
display: -webkit-flex;
flex-direction: row;
justify-content: center;
height: 100%;
.li-box {
position: relative;
flex: 1;
width: 1px;
height: 100%;
span {
display: inline-block;
font-size: 22px;
//padding-left: 6px;
//border-left: 4px solid #E7031C;
font-weight: 700;
}
.hover {
border-bottom: 2px solid #333;
box-sizing: border-box;
}
span.active {
font-size: 17px;
font-weight: bold;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
border-bottom: 2px solid #000000;
}
}
}
}
.grouping-tap-box {
height: 45px;
line-height: 45px;
display: flex;
align-items: center;
background: #FFFFFF;
margin-bottom: 10px;
color: #999999;
.tap-item {
flex: 1;
text-align: center;
&.active {
span {
position: relative;
color: @globalColor;
&:after {
content: '';
position: absolute;
bottom: -12px;
left: -10px;
right: -10px;
height: 2px;
background: @globalColor;
}
}
}
}
}
.m-content {
padding: 10px 15px;
padding-top: 0;
&.g-bg {
background: #F3F3F3;
}
.m-main {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
align-content: space-between;
image {
width: 100%;
box-sizing: border-box;
display: block;
}
.img-box {
position: relative;
width: 100%;
height: 100%;
margin-bottom: 10px;
.description {
position: absolute;
width: 100%;
left: 0;
bottom: 0;
height: 30px;
line-height: 30px;
text-indent: 5px;
color: #fff;
background: rgba(0, 0, 0, .5);
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
white-space: nowrap;
font-size: 14px;
}
&:last-child {
margin-bottom: 0;
}
}
.goods_box {
width: 49%;
background: #ffffff;
margin-bottom: 5px;
box-shadow:0px 1px 4px 0px rgba(210,210,210,0.5);
overflow: hidden;
.goods_image {
position: relative;
padding-top: 100%;
width: 100%;
image {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
object-fit: cover;
object-position: center center;
}
}
.title {
font-size: 13px;
color: #4a4a4a;
padding:0 10px;
height: 36px;
line-height: 18px;
margin-top: 5px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp:2;
overflow: hidden;
}
.price {
color: #ea4448;
font-size: 14px;
padding: 6px 10px;
}
}
}
}
}

94
components/index-grouping/index-grouping.vue

@ -1,94 +0,0 @@
<template>
<view class="g-main" :style="{marginBottom: meta.margin_bottom + 'px',background: meta.background_color}">
<view class="m-lead" style="margin-bottom: 5px" v-if="groupingData.length == 1">
<view class="ul-box">
<view class="li-box" @tap="_changeItem" :data-index="index" v-for="(item, index) in groupingData" :key="index" >
<span>{{item.name}}</span>
</view>
</view>
</view>
<view class="grouping-tap-box" v-else>
<view class="tap-item" :class="tapIndex == index ? 'active' : ''" @tap="_changeItem" :data-index="index" v-for="(item, index) in groupingData" :key="index">
<span>{{item.name}}</span>
</view>
</view>
<view class="m-content" :class="groupingData.length != 1 ? 'g-bg' : ''">
<view class="m-main" v-if="goods_arr.type && goods_arr.type == 'micro_page_componet_goods_group'">
<view class="goods_box" :data-id="item.associate.id" @tap="_jumpToDetail" v-for="(item, index) in goods_arr.children" :key="index" >
<view class="goods_image">
<image :src="item.associate.img"></image>
</view>
<view class="title">{{item.associate.name}}</view>
<view class="price"> {{item.associate.sell_price}}</view>
</view>
</view>
<view class="m-main" v-else>
<view class="img-box" :data-src="item.link" v-for="(item, index) in goods_arr.children" :key="index" @tap="_jumpImg">
<image mode="widthFix" :src="item.image"></image>
<view class="description" v-if="item.name">{{item.name}}</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
currentDesc: 'news',
goods_arr: [],
tapIndex: 0
};
},
props: {
groupingData: {
type: Array,
value: ''
},
meta: {
type: Object,
value: ""
}
},
mounted() {
this.goods_arr=this.groupingData[0]
},
//
methods: {
_changeItem(e) {
var index = e.currentTarget.dataset.index;
if (index == this.tapIndex) return;
this.goods_arr=this.groupingData[index];
this.tapIndex=index;
},
_jumpToDetail(e) {
var id = e.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/store/detail/detail?id=${id}`
});
},
_jumpImg(e) {
var src = e.currentTarget.dataset.src;
if (!src || src == 'uto_miniprogram') return;
wx.navigateTo({
url: src
});
}
}
};
</script>
<style rel="stylesheet/less" lang="less">
@import "index-grouping";
</style>

216
components/index-groupon/index-groupon.less

@ -1,216 +0,0 @@
//拼团
@import '../../common/css/global';
.groupon-item-box {
padding: 10px 15px;
background: #ffffff;
.title{
padding: 10px 0px;
display: flex;
justify-content: space-between;
color: #000;
align-items: center;
span:nth-child(1) {
font-size: 22px;
font-weight: bold;
display: inline-block;
//padding-left: 6px;
//border-left: 4px solid #E7031C;
}
span:nth-child(2) {
font-size: 12px;
display: flex;
align-items: center;
text{
font-size: 15px;
font-weight: 700;
margin-left: 5px;
}
}
}
.item {
display: flex;
/*align-items: center;*/
padding: 10px 0;
margin-bottom: 5px;
background: #ffffff;
overflow: hidden;
.left {
position: relative;
width: 120px;
.num {
font-size: 12px;
position: absolute;
width: 100%;
bottom: 0;
background: @mainColor;
opacity: .8;
text-align: center;
color: @countColor;
}
image {
display: block;
width: 100%;
}
.img-box {
display: flex;
align-items: center;
margin-top: 10px;
box-sizing: border-box;
justify-content: space-between;
image {
width: 47%;
}
}
}
.right {
display: flex;
flex-direction: column;
justify-content: space-between;
font-size: 14px;
margin-left: 12px;
flex: 1;
.price-box {
.old-price {
font-size: 12px;
color: #9B9B9B;
text-decoration: line-through;
}
.marketing-time-box{
width: 100%;
height: 100%;
font-size: 14px;
//兼容首页样式
&.index{
font-size: 12px;
}
/*.seckill-item{
text-align: right;
.no-starts{
display: none;
}
.text{
display: inline-block;
margin: 2px 5px;
}
.tiem{
display: inline-block;
}
.num-item{
display: inline-block;
background: #FFFFFF;
color: #fe4545;
text-align: center;
width: 26px;
border-radius: 3px;
}
.zero{
display: inline-block;
}
.time-out{
display: flex;
align-items: center;
justify-content: space-between;
flex: 1;
.tiem{
color: #ffffff;
span{
color: @countColor;
}
}
}
i{
display: none;
}
}
.seckill {
&.seckill-item{
.tiem{
color: @countColor;
span{
background: @mainColor;
color: @countColor;
}
}
}
.text{
color: @countColor;
}
}*/
.seckill-item {
text-align: right;
color: @countColor;
.time-out {
display: flex;
align-items: center;
justify-content: space-between;
.num-item {
display: inline-block;
text-align: center;
width: 26px;
border-radius: 3px;
background:#FB5054;
}
}
}
}
.seckill-time-box {
.seckill-item {
text-align: left;
.time-out {
color: #000 !important;
display: block;
}
.tiem{
color: #000;
margin: 5px 0;
}
i{
display: none;
}
.my-class{
margin: 5px 0;
color: #EA4448;
}
}
}
.meal-price {
display: flex;
align-items: flex-end;
.price {
flex: 1;
color: #FF2741;
span {
color: #4A4A4A;
}
}
.btn {
color: #ffffff;
background: @mainColor;
padding: 5px 10px;
border-radius: 4px;
._span {
display: flex;
align-items: center;
}
i {
font-size: 12px;
}
&.no-start {
background: #26a96d;
}
}
}
}
}
}
}

98
components/index-groupon/index-groupon.vue

@ -1,98 +0,0 @@
<template>
<view class="groupon-item-box" :style="{marginBottom: meta.margin_bottom + 'px',background: meta.background_color}">
<view class="title" data-src="/pages/store/groups/groups" @tap="_jumpImg">
<span>超值拼团</span>
<span>更多
<text class="iconfont icon-gengduo"></text>
</span>
</view>
<view v-for="(item, index) in indexData" :key="index" >
<view class="item" :data-id="item.associate.goods.id" @tap="_jumpToDetail">
<view class="left">
<image mode="widthFix" :src="item.associate.goods.img" alt></image>
<view :style="'background: ' + config.mainColor + '; color: ' + config.countColor" class="num">
{{item.associate.number}}人团
</view>
</view>
<view class="right">
<view class="name">
{{item.associate.goods.name}}
</view>
<view class="price-box">
<view>
<seckill :end="item.associate.ends_at" :starts="item.associate.starts_at" :server="server" typename="拼团"></seckill>
</view>
<view class="meal-price">
<view class="price">
{{item.associate.price}} <span class="old-price">{{item.associate.goods.sell_price}}</span>
</view>
<view class="btn" :style="'background: ' + config.mainColor">
<span>去拼团 <i class="iconfont icon-Chevron"></i></span>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import seckill from "../seckill/seckill";
export default {
data() {
return {};
},
options: {
addGlobalClass: true
},
components: {
seckill
},
props: {
indexData: {
type: Array,
value: ''
},
config: {
type: Object,
value: ''
},
server: {
type: String,
value: ''
},
meta: {
type: Object,
value: ""
}
},
//
methods: {
_jumpImg(e) {
var src = e.currentTarget.dataset.src;
if (!src || src == 'uto_miniprogram') return;
wx.navigateTo({
url: src
});
},
_jumpToDetail(e) {
var id = e.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/store/detail/detail?id=${id}`
});
}
}
};
</script>
<style rel="stylesheet/less" lang="less">
@import "index-groupon";
</style>

133
components/index-seckill/index-seckill.less

@ -1,133 +0,0 @@
@import '../../common/css/global';
//秒杀
.seckill-box{
background: #FFFFFF;
padding:10px 15px;
.title{
padding: 20px 0px;
display: flex;
justify-content: space-between;
color: #000;
align-items: center;
span:nth-child(1) {
font-size: 22px;
font-weight: bold;
display: inline-block;
//padding-left: 6px;
//border-left: 4px solid #E7031C;
}
span:nth-child(2) {
font-size: 12px;
display: flex;
align-items: center;
text{
&.iconfont{
font-size: 15px;
font-weight: 600;
margin-left: 5px;
}
}
}
}
.seckill-info{
display: flex;
align-items: center;
margin-top: 10px;
.left{
width: 100px;
height: 100px;
image{
width: 100%;
height: 100%;
}
}
.right{
flex: 1;
margin-left: 10px;
overflow: hidden;
.goods-name{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 16px;
}
.price-box {
color: #e50303;
font-size: 18px;
.old{
font-size: 12px;
color: #9c9c9c;
text-decoration: line-through;
}
&.free-money{
font-size: 14px;
color: #9C9C9C;
display: flex;
align-items: center;
justify-content: space-between;
.money{
display: flex;
align-items: center;
.new {
font-size: 18px;
color: @globalColor;
}
.old{
font-size: 10px;
margin-left: 5px;
text-decoration: line-through;
}
}
}
}
.seckill-time{
display: flex;
align-items: flex-end;
justify-content: space-between;
.marketing-time-box {
.seckill-item {
text-align: left !important;
color: #000 !important;
.time-out {
flex-direction: column;
color: #000 !important;
align-items: flex-start !important;
.tiem {
margin: 5px 0;
.num-item {
color: #ffffff !important;
}
}
}
}
}
.free{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
flex: 1;
}
.buy{
width: 70px;
height: 25px;
border-radius: 50px;
color: #fff;
background: @mainColor;
font-size: 12px;
line-height: 25px;
text-align: center;
}
}
}
}
}

160
components/index-seckill/index-seckill.vue

@ -1,160 +0,0 @@
<template>
<view class="seckill-box" :style="{marginBottom: meta.margin_bottom + 'px',background: meta.background_color}" v-if="indexData && indexData.length">
<view class="title" data-src="/pages/store/seckill/seckill" @tap="_jumpImg">
<span>限时秒杀</span>
<span>
更多
<text class="iconfont icon-gengduo"></text>
</span>
</view>
<view v-for="(item, index) in indexData" :key="index" >
<view class="seckill-info" :data-id="item.associate.goods.id" @tap="_jumpToDetail">
<view class="left">
<image :src="item.image"></image>
</view>
<view class="right">
<view class="goods-name">
{{item.associate.goods.name}}
</view>
<view class="price-box">
<text>{{item.associate.seckill_price}}</text>
<text class="old">{{item.associate.goods.sell_price}}</text>
</view>
<view class="seckill-time">
<view>
<seckill :end="item.associate.ends_at" :starts="item.associate.starts_at" :server="server" mold="index" @starts="isStarts" @end="isEnd" :data-index="index" :data-idx="bigIndex"></seckill>
</view>
<view :style="'background: ' + config.mainColor" class="buy">
去抢购
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import seckill from "../seckill/seckill";
export default {
data() {
return {};
},
components: {
seckill
},
options: {
addGlobalClass: true
},
props: {
indexData: {
type: Array,
value: ''
},
config: {
type: null,
value: ''
},
server: {
type: String,
value: ''
},
bigIndex: {
type: Number,
value: ''
},
meta: {
type: Object,
value: ""
}
},
//
methods: {
//
_jumpImg(e) {
var src = e.currentTarget.dataset.src;
if (!src || src == 'uto_miniprogram') return;
wx.navigateTo({
url: src
});
},
_jumpToDetail(e) {
var id = e.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/store/detail/detail?id=${id}`
});
},
//
isEnd(e) {
var index = e.index;
var idx = e.idx;
var myEventDetail = {
index: index,
idx: idx
};
// this.setData({
// [`indexData[${index}].associate.seckill`]: null
// })
this.indexData[index]={associate:{seckill:null}};
this.$emit('endevent', myEventDetail);
},
//
isStarts(e) {
var index = e.index;
var idx = e.idx;
var myEventDetail = {
index: index,
idx: idx
};
if(this.indexData[index]==undefined||
this.indexData[index].associate==undefined ||
this.indexData[index].associate.init_status==undefined ||
this.indexData[index].associate.init_status != 1){
// this.setData({
// [`indexData[${index}].associate.seckill.init_status`]:1
// })
this.indexData[index]={associate:{init_status:1}};
}
this.$emit('startevent', myEventDetail);
},
setData: function (obj) {
let that = this;
let keys = [];
let val, data;
Object.keys(obj).forEach(function (key) {
keys = key.split('.');
val = obj[key];
data = that.$data;
keys.forEach(function (key2, index) {
if (index + 1 == keys.length) {
that.$set(data, key2, val);
} else {
if (!data[key2]) {
that.$set(data, key2, {});
}
}
data = data[key2];
});
});
}
},
};
</script>
<style rel="stylesheet/less" lang="less">
@import "index-seckill";
</style>

260
components/index-suit/index-suit.less

@ -1,260 +0,0 @@
.module-box {
background: #ffffff;
padding: 10px 20px;
.meal-price {
border: 2px solid #979797;
height: 50px;
line-height: 48px;
text-align: center;
font-size: 16px;
text:first-child {
color: #e50303
}
text:last-child {
text-decoration: line-through;
}
}
.module-title {
display: flex;
justify-content: space-between;
color: #000;
align-items: center;
span:nth-child(1) {
font-size: 22px;
font-weight: bold;
display: inline-block;
//padding-left: 6px;
//border-left: 4px solid #E7031C;
}
span:nth-child(2) {
font-size: 12px;
display: flex;
align-items: center;
text{
font-size: 15px;
font-weight: 600;
margin-left: 5px;
}
}
}
.space-btween {
display: flex;
justify-content: space-between;
align-items: center;
}
.module-content {
padding: 10px 0;
position: relative;
//套餐
.meal_list {
overflow: auto;
white-space: nowrap;
width: 100%;
table, image {
width: 100% !important;
height: auto;
}
.store_list {
//top:0;
width: 26.4%;
position: relative;
display: inline-block;
margin-right: 10%;
view {
box-sizing: border-box;
}
image {
width: 100%;
height: 100px;
}
.description {
width: 100%;
margin-top: 5px;
font-size: 14px;
//height: 48px;
overflow: hidden;
word-break: break-all;
//word-spacing: ;
-webkit-line-clamp: 2;
text-overflow: ellipsis;
//display: -webkit-box;
//-webkit-box-orient: vertical;
//white-space: normal;
}
.price {
font-size: 14px;
height: auto;
/*overflow: visible;*/
white-space: normal;
overflow: hidden;
text-overflow: ellipsis;
}
&:last-child {
margin-right: 0;
&:after {
display: none;
/*content: ; */
}
}
&:after {
content: "";
display: block;
position: absolute;
right: -28%;
top: 20%;
width: 18%;
height: 10%;
background: url('https://ibrand-miniprogram.oss-cn-hangzhou.aliyuncs.com/%E5%B0%8F%E7%A8%8B%E5%BA%8F/uploading.png');
background-size: 100% 100%;
}
}
}
.add {
position: relative;
transform: translateY(120%);
width: 18px;
height: 18px;
margin-bottom: auto;
&:last-child {
display: none;
}
.t {
position: absolute;
top: 8px;
left: 0;
width: 100%;
height: 2px;
background: #b2b2b2;
border-radius: 19px
}
.l {
position: absolute;
left: 8px;
top: 0;
height: 100%;
width: 2px;
background: #b2b2b2;
border-radius: 19px
}
}
.meal {
position: relative;
width: 25%;
.goods_image {
position: relative;
width: 100%;
padding-top: 100%;
image {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}
}
.goods_title {
margin-top: 10px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
color: #000;
}
}
.content {
margin-left: 120px;
height: 100%;
.content_title {
padding-right: 30px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 16px;
line-height: 18px;
}
.content_info {
display: flex;
justify-content: space-between;
align-items: baseline;
vertical-align: bottom;
.price {
color: #e50303;
font-size: 18px;
}
.delPrice {
margin-right: auto;
font-size: 12px;
}
.onlyPrice {
color: #9c9c9c;
font-size: 14px;
}
}
.countDown {
margin-top: 7px;
.text {
font-size: 12px;
color: #4a4a4a;
}
.release {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
.time {
display: flex;
align-items: center;
text {
line-height: 19px;
margin: 0 3px;
}
.dot {
display: inline-block;
width: 19px;
height: 19px;
background: #6d6d6d;
font-size: 12px;
line-height: 19px;
text-align: center;
}
}
.btnBuy {
display: inline-block;
width: 70px;
height: 25px;
border-radius: 50px;
color: #ffffff;
background: #ea4448;
font-size: 12px;
line-height: 25px;
text-align: center;
}
}
}
}
}
}

77
components/index-suit/index-suit.vue

@ -1,77 +0,0 @@
<template>
<view class="module-box" :style="'margin-bottom: ' + meta.margin_bottom + 'px'" v-if="suitData && suitData.length">
<view class="module-title" data-src="/pages/store/mealList/mealList" @tap="_jumpImg">
<span>推荐套餐</span>
<span>
更多
<text class="iconfont icon-gengduo"></text>
</span>
</view>
<view v-for="(items, idx) in suitData" :key="idx">
<view class="module-content">
<view class="meal_list">
<view class="store_list" v-for="(item, index) in items.associate.items" :key="index" >
<view @tap="jumpToDetail" :data-id="item.goods.id">
<image class="slide-image" :src="item.goods.img"></image>
<view class="description">{{item.goods.name}}</view>
</view>
</view>
</view>
</view>
<view class="meal-price" :data-suitid="items.associate_id" @tap="_jumpMeal">
搭配套餐价=<text>{{items.associate.total}}</text>/<text>{{items.associate.origin_total}}</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {};
},
options: {
addGlobalClass: true
},
props: {
suitData: {
type: Array,
value: ''
},
show: {
type: Number,
value: ''
},
meta: {
type: Object,
value: ""
},
},
//
methods: {
_jumpImg(e) {
var src = e.currentTarget.dataset.src;
if (!src || src == 'uto_miniprogram') return;
wx.navigateTo({
url: src
});
},
_jumpMeal(e) {
console.log(this.suitData);
var id = e.currentTarget.dataset.suitid;
wx.navigateTo({
url: `/pages/store/meal/meal?id=${id}`
});
}
},
};
</script>
<style rel="stylesheet/less" lang="less">
@import "index-suit";
</style>

75
components/waterfalls-flow/waterfalls-flow.less

@ -1,75 +0,0 @@
.waterfalls-flow{
.title{
padding: 10px 15px 10px 15px;
display: flex;
justify-content: space-between;
color: #000;
align-items: center;
background-color: #FFFFFF;
span:nth-child(1) {
font-size: 22px;
font-weight: bold;
display: inline-block;
//padding-left: 6px;
//border-left: 4px solid #E7031C;
}
span:nth-child(2) {
font-size: 12px;
display: flex;
align-items: center;
text{
font-size: 15px;
font-weight: 700;
margin-left: 5px;
}
}
}
.help-select-contet {
column-count: 2; //分为2列
column-gap: 10px;//列之间间隔为10px
width: 100%;
padding:10px 15px;
}
.help-select-card {
background: #fff;
width:100%;
display: inline-block; /*内部卡片需要设置为inline-block,否则会截断显示,如图一*/
justify-content: center;
flex-direction: column;
align-items: center;
margin-bottom: 10rpx;
image{
width: 100%;
}
.goods-detail{
padding: 10px 8px;
.name{
color:#333333;
font-size: 12px;
height: 38px;
line-height: 18px;
margin-bottom:10px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.money{
color:#E7031C;
font-size: 14px;
line-height: 20px;
span{
color:#999999;
font-size: 12px;
line-height: 17px;
text-decoration: line-through;
display: inline-block;
padding-left: 6px;
}
}
}
}
}

99
components/waterfalls-flow/waterfalls-flow.vue

@ -1,99 +0,0 @@
<template>
<view class="waterfalls-flow" :style="'margin-bottom: ' + meta.margin_bottom + 'px'">
<view class="title" v-if="show && title" @tap="_jumpList">
<span>{{title}}</span>
<span>更多
<text class="iconfont icon-gengduo"></text>
</span>
</view>
<view class="help-select-contet">
<view class="help-select-card" v-for="(item, index) in waterData" :key="index" >
<view v-if="index > 0" @tap="_jumpDeatil" :data-id="item.id">
<image mode="widthFix" :src="item.img"></image>
<view class="goods-detail">
<view class="name">
{{item.name}}
</view>
<view class="money">
{{item.sell_price}}
<span>{{item.market_price}}</span>
</view>
</view>
</view>
<view v-else @tap="_jumpLink" :data-link="item.link">
<image mode="widthFix" class="help-select-iamge" :src="item.image"></image>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {};
},
options: {
addGlobalClass: true
},
props: {
waterData: {
type: Array,
value: ''
},
title: {
type: String,
value: ''
},
show: {
type: Number,
value: ''
},
meta: {
type: Object,
value: ""
}
},
//
methods: {
//线
_jumpLink(e) {
let link = e.currentTarget.dataset.link;
wx.navigateTo({
url: link,
fail: err => {
wx.switchTab({
url: link
});
}
});
},
//
_jumpDeatil(e) {
let id = e.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/store/detail/detail?id=${id}`
});
},
_jumpList() {
wx.navigateTo({
url: '/pages/store/list/list'
});
}
},
};
</script>
<style rel="stylesheet/less" lang="less">
@import "waterfalls-flow";
</style>

185
pages/index/index/index.vue

@ -15,126 +15,57 @@
</view>
</lf-nav>
<view id="microData" :style="{background: microData.micro_page.meta.background_color}">
<!-- #ifdef MP-WEIXIN -->
<!-- <view class="about-program" @tap="changeAbout" v-if="is_show_init">
<image mode="widthFix" v-if="is_show_about" src="https://cdn.ibrand.cc/%E5%85%B3%E4%BA%8E.png"></image>
</view> -->
<!-- #endif -->
<block v-if="microData && microData.pages && microData.pages.length">
<view v-for="(item, index) in microData.pages" :key="index">
<!-- 菜单按钮和搜索按钮 -->
<!-- <view v-if="item.name == 'micro_page_componet_search'">
<view class="banner">
<view class="search">
<div class="menu-box" @tap="jumpMenu"><i class="iconfont icon-fenzu"></i></div>
<view class="search_box" @tap="jumpSearch">
<i class="iconfont icon-sousuo " type="search" size="20"></i>
<input type="text" disabled confirm-type="search" placeholder="搜索"/>
</view>
</view>
</view>
</view> -->
<!--轮播图组件-->
<view v-if="item.name == 'micro_page_componet_slide' && item.value && item.value.length">
<indexBanner :banner-data="item.value" :banner-title="item.title" :screen-width="screenWidth" :show="item.is_show_title" :meta="item.meta"></indexBanner>
</view>
<!--优惠券组件-->
<!-- <view v-if="item.name == 'micro_page_componet_coupon' && item.value && item.value.length">
<indexCoupon :index-coupon="item.value" :config="config" @myGetCoupon="getCoupon" :show="item.is_show_title" :meta="item.meta"></indexCoupon>
</view> -->
<!--快捷导航-->
<view v-if="item.name == 'micro_page_componet_nav' && item.value && item.value.length">
<indexNav :nav-data="item.value" :meta="item.meta"></indexNav>
</view>
<!--套餐-->
<!-- <view v-if="item.name == 'micro_page_componet_suit' && item.value && item.value.length">
<indexSuit :suit-data="item.value" :index-data="indexData" :show="item.is_show_title" :meta="item.meta"></indexSuit>
</view> -->
<!--大咖推荐-->
<!-- <view v-if="item.name == 'micro_page_componet_article_-' && item.value && item.value.length">
<bigCoffee :coffee-data="item.value" :coffee-title="item.title" :show="item.is_show_title" :meta="item.meta"></bigCoffee>
</view> -->
<!--专属方案-->
<!-- <view v-if="item.name == 'micro_page_componet_article_|' && item.value && item.value.length">
<exclusivePlan :plan-data="item.value" :plan-title="item.title" :show="item.is_show_title" :meta="item.meta"></exclusivePlan>
</view> -->
<!--健康美丽Tips-->
<!-- <view v-if="item.name == 'micro_page_componet_goods_group_change' && item.value && item.value.length">
<healthTips :health-data="item.value" :title="item.title" :show="item.is_show_title" :meta="item.meta"></healthTips>
</view> -->
<!--猜你喜欢-->
<!-- <view v-if="item.name == 'micro_page_componet_guess_like' && item.value && item.value.length">
<waterfallsFlow :water-data="item.value" :title="item.title" :show="item.is_show_title" :meta="item.meta"></waterfallsFlow>
</view> -->
<!--拼团-->
<!-- <view v-if="item.name == 'micro_page_componet_groupon' && item.value && item.value.length">
<indexGroupon :index-data="item.value" :config="config" :server="microData.server_time" typename="拼团" :meta="item.meta"></indexGroupon>
</view> -->
<!--秒杀-->
<!-- <view v-if="item.name == 'micro_page_componet_seckill' && item.value && item.value.length">
<indexSeckill :index-data="item.value" :config="config" :server="microData.server_time" :big-index="index" @:startevent="isStarts" @:endevent="isEnd"
:meta="item.meta"></indexSeckill>
</view> -->
<!--打call indexCall-->
<!-- <view v-if="item.name == 'micro_page_componet_free_event' && item.value && item.value.length">
<indexCall :call-data="item.value" :config="config" :is-login="isLogin" :server="microData.server_time" :meta="item.meta"></indexCall>
</view> -->
<!-- 今日头条 -->
<view class="fuwu-tips" v-if="item.name == 'micro_page_componet_tips'">
<view class="fuwu-tips-title">今日头条</view>
<view>
<text class="fuwu-tips-desc1">{{ item.title }}</text>
<!-- <text class="fuwu-tips-desc1">线上商城全场限时包邮</text>
<text class="fuwu-tips-desc2">(部分品牌满额包邮)</text> -->
</view>
</view>
<!-- 活动页入口, 根据旧版魔方修改,一张图 -->
<view class="lf-activity" v-if="item.name == 'micro_page_componet_cube' && item.value && item.value.length && item.type == '1_1'" @click="$url(item.value[0].link)">
<image :src="item.value[0].image" mode="aspectFill"></image>
</view>
<!-- 新做秒杀模块,根据旧版秒杀修改 -->
<view v-if="item.name == 'micro_page_componet_seckill' && item.value && item.value.length">
<lf-seckill :list="item.value" :title="item.title"></lf-seckill>
</view>
<!-- 广告活动模块根据旧版魔方修改,三张图 -->
<view v-if="item.name == 'micro_page_componet_cube' && item.value && item.value.length && item.type == '3_2'">
<lf-multi-column-ad :cube-data="item.value"></lf-multi-column-ad>
</view>
<!-- 首页发现推荐模块 -->
<view v-if="item.name == 'micro_page_componet_discovery' && item.value && item.value.length">
<lf-index-find :list="item.value" :title="item.title" :showTitle="item.is_show_title"></lf-index-find>
</view>
<!-- 大牌不停推模块 - 店铺矩阵 -->
<view v-if="item.name == 'micro_page_componet_brand_supplier' && item.value && item.value.length">
<lf-index-shop-matrix :list="item.value" :showTitle="item.is_show_title" :title="item.title"></lf-index-shop-matrix>
</view>
<!-- 店铺商品展示模块 -->
<view v-if="item.name == 'micro_page_componet_brand_recommended' && item.value && item.value.length">
<view class="lf-module-title" v-if="item.is_show_title" @click="$url('/pages/shop/goodsSpecial')">{{ item.title }}</view>
<lf-shop-goods-card :list="item.value" :main="item.main"></lf-shop-goods-card>
</view>
<!--图片魔方-->
<!-- <view v-if="item.name == 'micro_page_componet_cube' && item.value && item.value.length">
<indexCube :cube-data="item.value" :show-type="item.type" :cube-title="item.title" :show="item.is_show_title" :meta="item.meta" :is-agent="userInfo.is_agent"></indexCube>
</view> -->
<!--分类商品-->
<!-- <view v-if="item.name == 'micro_page_componet_category' && item.value && item.value.length">
<indexCategory :category-data="item.value" :meta="item.meta"></indexCategory>
</view> -->
<!--商品分组-->
<!-- <view v-if="item.name == 'micro_page_componet_goods_group' && item.value && item.value.length">
<indexGrouping :grouping-data="item.value" :meta="item.meta"></indexGrouping>
</view> -->
<!-- 为你推荐模块 -->
<view v-if="item.name == 'micro_page_componet_recommended' && item.value && item.value.length">
<view class="lf-module-title" v-if="item.is_show_title">{{ item.title }}</view>
<view style="padding: 0 11px;">
<lf-waterfall :list="transformList(item.value)"></lf-waterfall>
</view>
</view>
<!--快捷导航-->
<view v-if="item.name == 'micro_page_componet_nav' && item.value && item.value.length">
<indexNav :nav-data="item.value" :meta="item.meta"></indexNav>
</view>
<!-- 今日头条 -->
<view class="fuwu-tips" v-if="item.name == 'micro_page_componet_tips'">
<view class="fuwu-tips-title">今日头条</view>
<view>
<text class="fuwu-tips-desc1">{{ item.title }}</text>
<!-- <text class="fuwu-tips-desc1">线上商城全场限时包邮</text>
<text class="fuwu-tips-desc2">(部分品牌满额包邮)</text> -->
</view>
</view>
<!-- 活动页入口, 根据旧版魔方修改,一张图 -->
<view class="lf-activity" v-if="item.name == 'micro_page_componet_cube' && item.value && item.value.length && item.type == '1_1'" @click="$url(item.value[0].link)">
<image :src="item.value[0].image" mode="aspectFill"></image>
</view>
<!-- 新做秒杀模块,根据旧版秒杀修改 -->
<view v-if="item.name == 'micro_page_componet_seckill' && item.value && item.value.length">
<lf-seckill :list="item.value" :title="item.title"></lf-seckill>
</view>
<!-- 广告活动模块根据旧版魔方修改,三张图 -->
<view v-if="item.name == 'micro_page_componet_cube' && item.value && item.value.length && item.type == '3_2'">
<lf-multi-column-ad :cube-data="item.value"></lf-multi-column-ad>
</view>
<!-- 首页发现推荐模块 -->
<view v-if="item.name == 'micro_page_componet_discovery' && item.value && item.value.length">
<lf-index-find :list="item.value" :title="item.title" :showTitle="item.is_show_title"></lf-index-find>
</view>
<!-- 大牌不停推模块 - 店铺矩阵 -->
<view v-if="item.name == 'micro_page_componet_brand_supplier' && item.value && item.value.length">
<lf-index-shop-matrix :list="item.value" :showTitle="item.is_show_title" :title="item.title"></lf-index-shop-matrix>
</view>
<!-- 店铺商品展示模块 -->
<view v-if="item.name == 'micro_page_componet_brand_recommended' && item.value && item.value.length">
<view class="lf-module-title" v-if="item.is_show_title" @click="$url('/pages/shop/goodsSpecial')">{{ item.title }}</view>
<lf-shop-goods-card :list="item.value" :main="item.main"></lf-shop-goods-card>
</view>
<!-- 为你推荐模块 -->
<view v-if="item.name == 'micro_page_componet_recommended' && item.value && item.value.length">
<view class="lf-module-title" v-if="item.is_show_title">{{ item.title }}</view>
<view style="padding: 0 11px;">
<lf-waterfall :list="transformList(item.value)"></lf-waterfall>
</view>
</view>
</view>
</block>
<view style="height: 20rpx;"></view>
@ -398,20 +329,9 @@
</template>
<script>
import {pageLogin, getUrl,config,isBirthday,autoLogin} from '@/common/js/utils.js';
import indexBanner from '@/components/index-banner/index-banner';
import indexCube from '@/components/index-cube/index-cube';
import indexSuit from '@/components/index-suit/index-suit';
import bigCoffee from '@/components/big-coffee/big-coffee';
import exclusivePlan from "@/components/exclusive-plan/exclusive-plan";
import healthTips from "@/components/health-tips/health-tips";
import waterfallsFlow from "@/components/waterfalls-flow/waterfalls-flow";
import indexGroupon from "@/components/index-groupon/index-groupon";
import indexSeckill from "@/components/index-seckill/index-seckill";
import indexCall from "@/components/index-call/index-call";
import {pageLogin, getUrl,config,isBirthday,autoLogin} from '@/common/js/utils.js';
import indexBanner from '@/components/index-banner/index-banner';
import indexNav from "@/components/index-nav/index-nav";
import indexCategory from "@/components/index-category/index-category";
import indexGrouping from "@/components/index-grouping/index-grouping";
import birthday from '@/components/birthday/birthday.vue';
import lfNav from '@/components/lf-nav/lf-nav.vue';
import lfTabbar from '@/components/lf-tabbar/lf-tabbar.vue';
@ -469,18 +389,7 @@
//
components: {
indexBanner,
indexCube,
indexSuit,
bigCoffee,
exclusivePlan,
healthTips,
waterfallsFlow,
indexGroupon,
indexSeckill,
indexCall,
indexNav,
indexCategory,
indexGrouping,
birthday,
lfNav,
lfTabbar,

Loading…
Cancel
Save