|
|
|
<template>
|
|
|
|
<view class="recycling">
|
|
|
|
<view class="recycling-navbar">
|
|
|
|
<u-navbar title="上门回收" :border-bottom="false" :background="isScroll?background:background1"></u-navbar>
|
|
|
|
</view>
|
|
|
|
<view class="recycling-hd"></view>
|
|
|
|
<view class="recycling-notice">
|
|
|
|
<image :src="$picUrl+'/static/news/icon-volume.png'"></image>
|
|
|
|
<view class="notice">
|
|
|
|
<u-notice-bar mode="horizontal" :volume-icon="false" bg-color="#fff" color="#212121" :list="list"></u-notice-bar>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="recycling-bd">
|
|
|
|
<scroll-view scroll-x class="tab">
|
|
|
|
<view class="item" v-for="(a,i) in list1" :class="tabIndex==i?'item-on':''" @click="tabItem(i,a)">
|
|
|
|
<image :src="a.image_url"></image>
|
|
|
|
{{a.name}}
|
|
|
|
</view>
|
|
|
|
</scroll-view>
|
|
|
|
<view class="list">
|
|
|
|
<view class="item" v-for="(a,i) in list2" :key="i" @click="openPage(a)">
|
|
|
|
<image :src="a.recovery_image"></image>
|
|
|
|
<view class="info">
|
|
|
|
<view class="title">{{a.recovery_name}}</view>
|
|
|
|
<view class="desc">{{a.recovery_category}}</view>
|
|
|
|
<view class="price">
|
|
|
|
<view class="btn">免支付预约</view>
|
|
|
|
<view class="num">已售{{a.sold}}+ 好评{{a.comment_rate}}%</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import * as newFunApi from '@/api/newFun'
|
|
|
|
// import img from "@/static/news/recycling-bg.png"
|
|
|
|
export default {
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
isScroll: true,
|
|
|
|
tabIndex: 0,
|
|
|
|
background: {
|
|
|
|
background: 'transparent',
|
|
|
|
},
|
|
|
|
background1: {
|
|
|
|
background: '#fff',
|
|
|
|
},
|
|
|
|
server_name: "",
|
|
|
|
list: ['欢迎来到这里!'],
|
|
|
|
list1: [],
|
|
|
|
list2: [],
|
|
|
|
}
|
|
|
|
},
|
|
|
|
onLoad(o) {
|
|
|
|
this.tabIndex = o.index?o.index:0
|
|
|
|
this.getList();
|
|
|
|
},
|
|
|
|
onPageScroll(e){
|
|
|
|
if(e.scrollTop <= 44){
|
|
|
|
this.isScroll = true;
|
|
|
|
}else{
|
|
|
|
this.isScroll = false;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
/**
|
|
|
|
* 获取列表
|
|
|
|
*/
|
|
|
|
async getList() {
|
|
|
|
let {status, message, data} = await newFunApi.recoveryCategoryList({});
|
|
|
|
if(status == 200){
|
|
|
|
this.list1 = data.list
|
|
|
|
this.getGoodsList();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 获取商品列表
|
|
|
|
*/
|
|
|
|
async getGoodsList() {
|
|
|
|
let {status, message, data} = await newFunApi.recoveryRecoveryList({
|
|
|
|
server_name: this.server_name,
|
|
|
|
category_id: this.list1.length > 0?this.list1[this.tabIndex].category_id:""
|
|
|
|
});
|
|
|
|
if(status == 200){
|
|
|
|
this.list2 = data.list
|
|
|
|
}
|
|
|
|
},
|
|
|
|
openPage(a) {
|
|
|
|
uni.setStorageSync("getInfo",a)
|
|
|
|
uni.navigateTo({
|
|
|
|
url: "/pages/news/recycling/detail?type=2&id="+a.recovery_id
|
|
|
|
})
|
|
|
|
},
|
|
|
|
tabItem(index){
|
|
|
|
this.tabIndex = index;
|
|
|
|
this.getGoodsList();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.recycling{
|
|
|
|
background: url(https://www.royaum.com.cn/static/news/recycling-bg.png) center top no-repeat;
|
|
|
|
background-size: 100% auto;
|
|
|
|
&-hd{
|
|
|
|
height: 305rpx;
|
|
|
|
}
|
|
|
|
&-notice{
|
|
|
|
background-color: #fff;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
padding: 0 30rpx;
|
|
|
|
image{
|
|
|
|
width: 50rpx;
|
|
|
|
height: 50rpx;
|
|
|
|
display: block;
|
|
|
|
}
|
|
|
|
.notice{
|
|
|
|
width: 500rpx;
|
|
|
|
flex: 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&-bd{
|
|
|
|
padding: 30rpx 0 30rpx 36rpx;
|
|
|
|
overflow: hidden;
|
|
|
|
background-color: #fff;
|
|
|
|
.tab{
|
|
|
|
width: 100%;
|
|
|
|
white-space: nowrap;
|
|
|
|
.item{
|
|
|
|
width: 165rpx;
|
|
|
|
display: inline-block;
|
|
|
|
text-align: center;
|
|
|
|
font-size: 24rpx;
|
|
|
|
font-weight: 500;
|
|
|
|
color: #4F4F4F;
|
|
|
|
position: relative;
|
|
|
|
padding-bottom: 30rpx;
|
|
|
|
image{
|
|
|
|
width: 60rpx;
|
|
|
|
height: 60rpx;
|
|
|
|
display: block;
|
|
|
|
margin: 0 auto;
|
|
|
|
margin-bottom: 12rpx;
|
|
|
|
}
|
|
|
|
&-on{
|
|
|
|
color: #FF4949;
|
|
|
|
&::after{
|
|
|
|
content: "";
|
|
|
|
width: 50rpx;
|
|
|
|
height: 6rpx;
|
|
|
|
background: #FF4949;
|
|
|
|
border-radius: 6rpx;
|
|
|
|
position: absolute;
|
|
|
|
left: 50%;
|
|
|
|
bottom: 10rpx;
|
|
|
|
z-index: 1;
|
|
|
|
margin-left: -25rpx;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.list{
|
|
|
|
width: 100%;
|
|
|
|
overflow: hidden;
|
|
|
|
.item{
|
|
|
|
padding: 28rpx 0;
|
|
|
|
overflow: hidden;
|
|
|
|
display: flex;
|
|
|
|
border-top: 1px solid #F2F2F2;
|
|
|
|
&:first-child{
|
|
|
|
border-top-color: #fff;
|
|
|
|
}
|
|
|
|
image{
|
|
|
|
width: 234rpx;
|
|
|
|
height: 222rpx;
|
|
|
|
border-radius: 12rpx;
|
|
|
|
margin-right: 20rpx;
|
|
|
|
}
|
|
|
|
.info{
|
|
|
|
width: 440rpx;
|
|
|
|
white-space: nowrap;
|
|
|
|
.title{
|
|
|
|
overflow: hidden;
|
|
|
|
font-size: 28rpx;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
font-weight: 600;
|
|
|
|
color: #2C2C2C;
|
|
|
|
}
|
|
|
|
.desc{
|
|
|
|
overflow: hidden;
|
|
|
|
font-size: 28rpx;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
margin-top: 10rpx;
|
|
|
|
color: #888888;
|
|
|
|
height: 110rpx;
|
|
|
|
}
|
|
|
|
.price{
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: space-between;
|
|
|
|
font-size: 24rpx;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #888888;
|
|
|
|
.btn{
|
|
|
|
width: 134rpx;
|
|
|
|
line-height: 44rpx;
|
|
|
|
text-align: center;
|
|
|
|
background: #FFFFFF;
|
|
|
|
border-radius: 8rpx;
|
|
|
|
border: 1px solid #FF4949;
|
|
|
|
font-size: 24rpx;
|
|
|
|
font-weight: 400;
|
|
|
|
color: #FF4949;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</style>
|