|
|
|
@ -12,7 +12,7 @@ |
|
|
|
</view> |
|
|
|
<view class="title-search" :style="{'margin-top': menuButtonInfo.top +'px'}" @tap="goDetail('search')"> |
|
|
|
<uni-icons type="search" size="16" color="#08735d"></uni-icons> |
|
|
|
<swiper class="search-word-swiper" vertical circular :autoplay="true" :interval="2200" :duration="500"> |
|
|
|
<swiper class="search-word-swiper" vertical circular :autoplay="false" :interval="2200" :duration="500"> |
|
|
|
<swiper-item v-for="(word,index) in searchHotWords" :key="index"> |
|
|
|
<view class="search-hot-word">{{word}}</view> |
|
|
|
</swiper-item> |
|
|
|
@ -125,7 +125,7 @@ |
|
|
|
</view> |
|
|
|
<view class="shop-content"> |
|
|
|
<view class="shop-live-row"> |
|
|
|
<text>{{getDormStatus(index)}}</text> |
|
|
|
<text>{{item._dormStatus}}</text> |
|
|
|
<text>{{item.mingchu ? '明厨亮灶' : '速速加入'}}</text> |
|
|
|
</view> |
|
|
|
<view class="shop-name"> |
|
|
|
@ -134,9 +134,9 @@ |
|
|
|
<view class="shop-content-center"> |
|
|
|
<view class="shop-rate"> |
|
|
|
<view class="avatar-stack"> |
|
|
|
<text>{{getLiveAvatar(index)}}</text> |
|
|
|
<text>{{getLiveAvatar(index + 1)}}</text> |
|
|
|
<text>{{getLiveAvatar(index + 2)}}</text> |
|
|
|
<text>{{item._liveAvatars[0]}}</text> |
|
|
|
<text>{{item._liveAvatars[1]}}</text> |
|
|
|
<text>{{item._liveAvatars[2]}}</text> |
|
|
|
</view> |
|
|
|
<view class="shop-rate-text">附近同学正在拼</view> |
|
|
|
</view> |
|
|
|
@ -151,7 +151,7 @@ |
|
|
|
<text v-if="item.subtitle != null"> |
|
|
|
{{item.subtitle}} |
|
|
|
</text> |
|
|
|
<text v-else>{{getGroupTip(index)}}</text> |
|
|
|
<text v-else>{{item._groupTip}}</text> |
|
|
|
</view> |
|
|
|
<view class="shop-deal1"> |
|
|
|
<text>{{item.saleCount != null ? item.saleCount : 0}}</text>人跟拼 |
|
|
|
@ -159,9 +159,9 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="shop-bottom" v-if="item.products != null && item.products.length > 0"> |
|
|
|
<view class="menu-member" v-if='item1.isPush == 1 && item1.delFlag == 1' |
|
|
|
v-for="(item1,index1) in item.products" :key="index1" @tap="goDetail('shop',item)"> |
|
|
|
<view class="shop-bottom" v-if="item._visibleProducts && item._visibleProducts.length > 0"> |
|
|
|
<view class="menu-member" |
|
|
|
v-for="(item1,index1) in item._visibleProducts" :key="index1" @tap="goDetail('shop',item)"> |
|
|
|
<view class="menu-img"> |
|
|
|
<img :src="item1.productPicture" lazy-load alt=""> |
|
|
|
<view class="menu-img-gloss"></view> |
|
|
|
@ -185,7 +185,7 @@ |
|
|
|
<view class="zaixian"> |
|
|
|
<image class="zaixian-gif" src="/static/images/img/loading.gif" mode="aspectFit"></image> |
|
|
|
<view class="zaixian-divider"></view> |
|
|
|
<swiper class="zaixian-swiper" vertical circular :autoplay="onlineWorkerAreaList.length > 1" |
|
|
|
<swiper class="zaixian-swiper" vertical circular :autoplay="false" |
|
|
|
:interval="onlineWorkerInterval" :duration="onlineWorkerDuration"> |
|
|
|
<swiper-item v-if="onlineWorkerAreaList.length === 0"> |
|
|
|
<view class="zaixian-item">宿舍群正在等一个饭搭子</view> |
|
|
|
@ -420,15 +420,6 @@ |
|
|
|
icon: 'none' |
|
|
|
}); |
|
|
|
}, |
|
|
|
getDormStatus(index) { |
|
|
|
return this.groupTags[index % this.groupTags.length] |
|
|
|
}, |
|
|
|
getGroupTip(index) { |
|
|
|
return ['还差1人就成团', '刚下课,大家都在拼', '这口热乎的很适合夜宵', '附近同学想一起点'][index % 4] |
|
|
|
}, |
|
|
|
getLiveAvatar(index) { |
|
|
|
return this.groupAvatars[index % this.groupAvatars.length] |
|
|
|
}, |
|
|
|
toggleCategory() { |
|
|
|
this.categoryExpanded = !this.categoryExpanded |
|
|
|
}, |
|
|
|
@ -511,15 +502,15 @@ |
|
|
|
that.tui.request("/app/shop/getByCondition", "GET", this.searchForm, false, true).then((res) => { |
|
|
|
that.loadStatus = 'nomore'; |
|
|
|
if (res.code == 200) { |
|
|
|
const content = that.prepareShopList(res.result.content || [], that.shopList.length) |
|
|
|
if (that.searchForm.pageNumber == 1) { |
|
|
|
that.shopList = res.result.content |
|
|
|
that.shopList = content |
|
|
|
} else { |
|
|
|
that.shopList = [...that.shopList, ...res.result.content] |
|
|
|
that.shopList = [...that.shopList, ...content] |
|
|
|
} |
|
|
|
that.totalPages = res.result.totalPages |
|
|
|
that.judgeBusinessStatus() |
|
|
|
that.isArea = false |
|
|
|
that.$forceUpdate() |
|
|
|
} else { |
|
|
|
that.tui.toast(res.message); |
|
|
|
return |
|
|
|
@ -527,6 +518,21 @@ |
|
|
|
uni.hideLoading() |
|
|
|
}).catch((res) => {}) |
|
|
|
}, |
|
|
|
prepareShopList(list, offset) { |
|
|
|
return (list || []).map((item, i) => { |
|
|
|
const index = (offset || 0) + i |
|
|
|
const products = Array.isArray(item.products) ? item.products : [] |
|
|
|
item._dormStatus = this.groupTags[index % this.groupTags.length] |
|
|
|
item._groupTip = ['还差1人就成团', '刚下课,大家都在拼', '这口热乎的很适合夜宵', '附近同学想一起点'][index % 4] |
|
|
|
item._liveAvatars = [ |
|
|
|
this.groupAvatars[index % this.groupAvatars.length], |
|
|
|
this.groupAvatars[(index + 1) % this.groupAvatars.length], |
|
|
|
this.groupAvatars[(index + 2) % this.groupAvatars.length] |
|
|
|
] |
|
|
|
item._visibleProducts = products.filter(product => product.isPush == 1 && product.delFlag == 1) |
|
|
|
return item |
|
|
|
}) |
|
|
|
}, |
|
|
|
judgeBusinessStatus() { |
|
|
|
for (let i = 0; i < this.shopList.length; i++) { |
|
|
|
if (this.shopList[i].shopTakeaway != '' && this.shopList[i].shopTakeaway != null) { |
|
|
|
@ -648,7 +654,6 @@ |
|
|
|
height: 420rpx; |
|
|
|
border-radius: 50%; |
|
|
|
background: rgba(167, 255, 194, 0.42); |
|
|
|
filter: blur(8rpx); |
|
|
|
} |
|
|
|
|
|
|
|
.title-sreach { |
|
|
|
@ -695,7 +700,6 @@ |
|
|
|
padding: 0 14rpx 0 18rpx; |
|
|
|
box-sizing: border-box; |
|
|
|
box-shadow: 0 14rpx 34rpx rgba(20, 115, 88, 0.12); |
|
|
|
backdrop-filter: blur(16rpx); |
|
|
|
border: 1rpx solid rgba(255, 255, 255, 0.86); |
|
|
|
} |
|
|
|
|
|
|
|
@ -823,7 +827,6 @@ |
|
|
|
overflow: hidden; |
|
|
|
box-shadow: 0 22rpx 42rpx rgba(66, 121, 81, 0.22); |
|
|
|
transform: rotate(3deg); |
|
|
|
animation: breathe 3.4s ease-in-out infinite; |
|
|
|
|
|
|
|
img { |
|
|
|
width: 100%; |
|
|
|
@ -891,7 +894,6 @@ |
|
|
|
border-radius: 50%; |
|
|
|
border-left: 5rpx solid rgba(255, 255, 255, 0.72); |
|
|
|
opacity: 0; |
|
|
|
animation: steamUp 2.8s ease-in-out infinite; |
|
|
|
} |
|
|
|
|
|
|
|
.steam-one { |
|
|
|
@ -957,7 +959,6 @@ |
|
|
|
background: rgba(255, 255, 255, 0.56); |
|
|
|
border: 1rpx solid rgba(255, 255, 255, 0.8); |
|
|
|
box-shadow: 0 12rpx 28rpx rgba(34, 128, 94, 0.1); |
|
|
|
animation: bubbleFloat 3.8s ease-in-out infinite; |
|
|
|
} |
|
|
|
|
|
|
|
.live-bubble:nth-child(2n) { |
|
|
|
@ -997,7 +998,6 @@ |
|
|
|
background: rgba(255, 255, 255, 0.46); |
|
|
|
border: 1rpx solid rgba(255, 255, 255, 0.72); |
|
|
|
box-shadow: 0 18rpx 42rpx rgba(42, 134, 93, 0.1); |
|
|
|
backdrop-filter: blur(16rpx); |
|
|
|
position: relative; |
|
|
|
z-index: 2; |
|
|
|
} |
|
|
|
@ -1057,7 +1057,6 @@ |
|
|
|
border-radius: 32rpx; |
|
|
|
background: linear-gradient(145deg, rgba(255, 255, 255, 0.86), rgba(217, 255, 172, 0.66)); |
|
|
|
box-shadow: 0 14rpx 28rpx rgba(23, 117, 83, 0.12), inset 0 8rpx 14rpx rgba(255, 255, 255, 0.85); |
|
|
|
animation: iconFloat 4s ease-in-out infinite; |
|
|
|
} |
|
|
|
|
|
|
|
.menu-list:nth-child(2n) .menu-icon-wrap { |
|
|
|
@ -1070,7 +1069,6 @@ |
|
|
|
display: block; |
|
|
|
margin: 0 auto; |
|
|
|
padding-top: 12rpx; |
|
|
|
filter: drop-shadow(0 8rpx 10rpx rgba(0, 70, 42, 0.14)); |
|
|
|
} |
|
|
|
|
|
|
|
.menu-sticker { |
|
|
|
@ -1162,7 +1160,6 @@ |
|
|
|
overflow: hidden; |
|
|
|
box-shadow: 0 18rpx 44rpx rgba(19, 91, 70, 0.12); |
|
|
|
border: 1rpx solid rgba(255, 255, 255, 0.86); |
|
|
|
animation: cardBreath 4.2s ease-in-out infinite; |
|
|
|
} |
|
|
|
|
|
|
|
.shop-card-bg { |
|
|
|
@ -1232,7 +1229,6 @@ |
|
|
|
border-left: 4rpx solid rgba(255, 255, 255, 0.82); |
|
|
|
border-radius: 50%; |
|
|
|
opacity: 0; |
|
|
|
animation: steamUp 2.6s ease-in-out infinite; |
|
|
|
} |
|
|
|
|
|
|
|
.shop-steam-one { |
|
|
|
@ -1430,7 +1426,6 @@ |
|
|
|
height: 160%; |
|
|
|
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.26), transparent); |
|
|
|
transform: rotate(18deg); |
|
|
|
animation: glossMove 3.8s ease-in-out infinite; |
|
|
|
} |
|
|
|
|
|
|
|
.menu-content { |
|
|
|
|