你开心的时候尽管开心,忙碌的时候尽管忙碌,不必随时都在一起,但可以随时联系
如果你问我为什么星宿上没有二级分类目录,我会告诉你:Rest Api过来只有一层,平平无奇;在上周日有大佬提到关于子分类的问题,最终还是妥协
把得到的数据过滤parent为0为一级分类,且存为lefList
点击lefList的数据后传入id,在使用过滤后得到的二级分类存为reghtList
在一级分类v-for渲染的时候使用v-if判断是否为一级菜单
一级分类点击传入id,右侧v-for循环后使用传入的id做为parent ,v-if的判断条件
该方式不用多次存储数据,另外难点在于点击的一级菜单的选项卡切换
<template>
<view>
<view class="scroll-flex">
<scroll-view scroll-y="true" class="left-muen">
<block v-for="(item,index) in lefList" :key='index'>
<view :class="tapIndenx === index ? 'left_view_citve':'left_view'" @tap="tapLeft(index)">
{{item.name}}
</view>
</block>
</scroll-view>
<scroll-view scroll-y="true">
<view class="right-view">
<block v-for="(item,index) in reghtList" :key="index">
<view class="right-list" @tap="tapRightID(item.id)">
<view class="right-list-img">
<image class="fengrui-img" :src="item.cation_img" mode="widthFix"></image>
</view>
<view class="right-list-name">
{{item.name}}
</view>
</view>
</block>
</view>
</scroll-view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
tapIndenx: 0,
lefList: [],
posLists: [],
reghtList: [],
indexID: '',
};
},
onLoad() {
this.postList();
},
methods: {
postList: function() {
var that = this;
uni.request({
url: API + 'https://wwww.写你的域名地址.com/wp-json/wp/v2/categories?per_page=100',
success(res) {
that.posLists = res.data;
that.lefList = res.data.filter(item => item.parent == '0')
that.tapLeft(0);
}
});
},
tapLeft: function(e) {
var that = this;
that.tapIndenx = e;
that.indexID = that.lefList[e].id
console.log(that.indexID)
that.tapRight(that.indexID);
},
tapRight: function(d) {
var that = this;
that.reghtList = that.posLists.filter(item => item.parent == d)
},
tapRightID: function(z) {
var that = this;
console.log(z)
uni.navigateTo({
url: 'categ_lisst?catepos=' + z
})
}
}
}
</script>
<style>
.right-list-name {
text-align: center;
margin-top: 10rpx;
}
.right-list-img {
height: 120rpx;
width: 120rpx;
overflow: hidden;
border-radius: 10rpx;
display: block;
margin: auto;
}
.right-view {
column-count: 3;
column-width: 10rpx;
column-gap: 10rpx;
break-inside: avoid;
}
.scroll-flex {
display: flex;
}
.left-muen {
width: 240rpx;
height: 100%;
}
.left_view {
background-color: #ffffff;
height: 120rpx;
flex-shrink: 0;
width: 100%;
font-size: 30rpx;
text-align: center;
line-height: 120rpx;
}
.left_view_citve {
background-color: #FFFFFF;
height: 120rpx;
width: 100%;
flex-shrink: 0;
font-size: 30rpx;
text-align: center;
line-height: 120rpx;
position: relative;
color: #007AFF;
}
.left_view_citve:before {
content: ' ';
height: 50rpx;
width: 14rpx;
border-radius: 100rpx;
background-color: #007AFF;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
height: 60rpx;
}
page {
background-color: #f7f7f7;
overflow-x: hidden;
}
.fengrui-img {
height: 100%;
width: 100%;
}
</style>
文章评论