uniapp 简易的商品分类垂直分类(单项联动)

这是一个关于如何在电商应用中实现单向联动商品分类的示例代码。页面包含左侧的tabs分类,用户点击后会根据所选分类请求并显示对应的右侧cont内容。通过uni-app的API进行页面跳转,并根据条件判断跳转不同页面。
摘要由CSDN通过智能技术生成

商品分类页经常会用到商品的垂直分类 很多是双向联动的 查了查没有太适合的,就自己写一个了

我的是单项联动 ,左边tabs 是一个接口,右侧的conts根据点击选择的tabs请求第二个接口

这里是实例代码

<template>
	<view class="classbox">
		<!-- 左侧tabs -->
		<view class="tabs">
			<view class="tab alldisplay"  :class="item.id==current?'active' :''"   @click="select(item)" v-for="item in tabslist"  :key="item.id" >{{item.name}}</view>
		</view>
		<!-- 右侧cont -->
		<scroll-view  scroll-y="true" style="height: 100vh;">
			<view class="conts">
				<view class="cont" v-for="item in contlist"  :key="item.id"  @click="tz(item.id,item.name,item)">
					<image :src="item.imgUrl" mode=""></image>
				   <view class="name">{{item.name}}</view>
				</view>
			</view>
		</scroll-view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				current:'',
				tabslist:[],
				contlist:[],
			}
		},
		onLoad() {
			this.gettabslist()
			setTimeout(()=>{
				this.getcontlist(this.tabslist[0].id)
				this.current =this.tabslist[0].id
			},500)	
		},
		methods: {
			gettabslist(){
				this.$http.get('/app/goodsTypeCopy/parentList ', {}).then(res=>{
					if(res.code==200){
						console.log(res.data);
						this.tabslist = res.data
					}
				})
			},
			select(item){
				this.current  =item.id
				this.getcontlist(this.current)
				
			},
			getcontlist(id){
				this.$http.get('/app/goodsTypeCopy/moreListById',{id}).then(res=>{
					if(res.code==200){
						this.contlist = res.data
					}
				})
			},
			tz(id,name,item){
				if(this.current!==2){
					uni.navigateTo({
						url:'/pages/index/chuanglian?id=' + id +'&title=' +name
					})
				}else{
					console.log(item.isHaveSeries);
					if(item.isHaveSeries==0){
						uni.navigateTo({
							url:'/pages/index/chuanglian?id=' + id +'&title=' +name
						})
					}else{
						uni.navigateTo({
							url:'/pages/class/class2?id=' + id +'&title=' +name
						})
					}
					
				}
				
			}
		}
	}
</script>

<style>
	page{
		width: 100%;
	}
	.tabs{
		width: 30%;
		min-height: 100vh;
		display: flex;
		flex-direction: column;
		background-color: #f2f2f2;
	}
	.tab{
		width: 100%;
		height: 80rpx;
	}
	.conts{
		width: 100%;
		min-height: 10vh;
		padding: 26rpx;
		box-sizing: border-box;
		font-size: 20rpx;
		display: flex;
		flex-wrap: wrap;
	}
	.active{
		background: #fff;
	}
	.cont{
		width: 150rpx;
		height: 200rpx;
		margin: 0 20rpx 60rpx 0;
	}
	.cont image{
		width: 150rpx;
		height: 160rpx;
	} 
	.classbox{
		display: flex;
	}
	.name{
		font-size: 26rpx;
		text-align: center;
	}

</style>

这个就是我的实例代码

UniApp是一个基于Vue.js的跨平台应用开发框架,它允许开发者构建一次,运行在多个平台上,包括Web、iOS、Android等。关于左右联动商品分类多选功能,这种设计通常用于电商类项目中,用户可以同时选择左侧分类和右侧的具体商品。 在UniApp中实现这样的功能,你可以通过以下几个步骤: 1. **HTML结构**:创建两个下拉框组件(select或picker),分别代表左侧的分类和右侧的商品列表,通过`v-model`绑定数据到对应的变量上。 ```html <template> <div> <el-select v-model="leftCategory" placeholder="请选择左侧分类"> <!-- 左侧分类选项 --> </el-select> <el-picker-column v-model="selectedItems" :options="rightGoods" placement="bottom-end" /> </div> </template> ``` 2. **数据管理**:在data里定义左边分类的数据以及右边商品列表的初始状态,例如 `leftCategoryOptions` 和 `rightGoods`。 ```js export default { data() { return { leftCategory: '', leftCategoryOptions: [ // 分类选项 ], rightGoods: [], // 初始化为空的右侧商品数组 }; } } ``` 3. **联动逻辑**:当左侧分类发生变化时,动态加载或过滤右侧商品,这可以通过计算属性或methods里的函数来实现。 ```js computed: { filteredGoods() { if (this.leftCategory) { return this.rightGoods.filter(good => good.category === this.leftCategory); } else { return this.rightGoods; } }, } methods: { handleLeftChange(value) { this.selectedItems = []; this.rightGoods = this.filteredGoods; // 更新右侧商品 } } ``` 4. **事件监听**:给左侧下拉框添加`change`事件监听,每当用户选择一个新的分类,就会触发`handleLeftChange`方法。 通过上述步骤,你就实现了 UniApp 中左右联动商品分类多选功能。用户可以在左侧选择分类的同时查看相应分类下的商品列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值