uniapp 隐藏显示三级联动

uni-app 隐藏显示三级联动

1、js部分
    export default {
	onLoad() {
		this.getList();
	},
	data() {
		return {
			list: [],
			navigateFlag: false,//二级循环class判断 属性,默认为假(隐藏)
			share:false//三级循环class判断  属性,默认为假(隐藏)
		}
	},
	methods: {
		triggerCollapse(e) {//一级控制二级方法
			var that = this;
			var sh = that.navigateFlag;
			if (sh == e) {
				that.navigateFlag=false
			} else {
				that.navigateFlag=e
			}
		},
		goDetailPage(e) {//二级级控制三级方法
			var that = this;
			var sh = that.share;//获取share状态
			if (sh == e) {
				that.share=false
			} else {
				that.share=e
			}
		},
		getList() {
			uni.request({
				url: 'http://127.0.0.1/tp5.0/public/?s=index/index/get',
				method: 'GET',
				responseType: 'json',
				// header: {'content-type': 'application/json'},
				data: {
					id: 1
				},
				success: (res) => {
					this.list = res.data;
					console.log(res);
				}
			});
		}
	}
}
2、html部分
<template>
<view class="uni-container">
	<view class="uni-panel" v-for="(item, index) in list" :key="item.id">
		<view class="uni-panel-h" :class="item.open ? 'uni-panel-h-on' : ''" @click="triggerCollapse(index)">
			<text class="uni-panel-text">{{item.name}}</text>
			<text class="uni-panel-icon uni-icon" :class="item.open ? 'uni-panel-icon-on' : ''">{{item.pages ? '&#xe581;' : '&#xe470;'}}</text>
		</view>
		<view class="uni-panel-c" v-if="item.open">
			<view  :class='navigateFlag==item.id?"show":"hidden"' v-for="(item2,key) in item.child" :key="key">
				<view class="uni-navigate-item" @click="goDetailPage(key)">
					<text class="uni-navigate-text">{{item2.name ? item2.name : item2}}</text>
					<text class="uni-navigate-icon uni-icon">&#xe470;</text>
				</view>
				<view class="uni-navigate-item" :class='share==item2.id?"show":"hidden"' v-for="(item3,key) in item2.child" :key="key">
					<text style="padding-left:2rem;">{{item3.name ? item3.name : item3}}</text>
				</view>
			</view>
		</view>
	</view>
</view></template>
3、css部分
.show{
	display: block;
}
.hidden{
	display: none;
}
4、后端(php)数据结构图

在这里插入图片描述

5、效果图

在这里插入图片描述

6、总结
   :class='navigateFlag==item.id?"show":"hidden"'  前端利用三元运算符判断navigateFlag的状态,当navigateFlag为真时添加show class名,当navigateFlag为假时添加hidden class名,navigateFlag状态值由js控制
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: uniapp是一款跨平台的开发框架,可以让开发者使用Vue.js来开发iOS、Android、H5等多个平台的应用程序。要实现省市区三级联动功能,可以使用uniapp的picker选择器组件结合数据源来实现。 首先,需要准备好省市区的数据源。可以通过网络请求获取数据,也可以在本地定义一个JSON数据文件来存储省市区的信息。 然后,在页面中使用picker选择器组件来展示三级联动的效果。可以使用三个picker组件来分别展示省、市、区的选项,用户通过滑动选择器中的选项来进行选择。 在数据绑定方面,可以通过在data中定义一个变量来存储用户的选择结果。比如,可以定义一个数组变量selected来存储用户选择的省、市、区的信息。通过监听picker的change事件,在事件处理函数中更新selected数组的值。 最后,在页面中展示用户选择的结果。可以使用文本框等组件来展示省、市、区的信息,将selected数组中的值显示出来。 通过上述步骤,就可以实现uniapp省市区三级联动的功能。用户可以通过滑动选择器来选择省、市、区的选项,选择结果会实时更新并展示在页面上。 ### 回答2: uniapp是一款跨平台的开发框架,适用于开发微信小程序、App和H5页面。要实现省市区三级联动,可以采用uniapp的picker组件以及相关的数据处理方法。以下是实现的步骤: 1. 在页面的vue文件中,引入picker组件,并将其放置在需要选择省市区的位置。例如: ``` <template> <view> <picker :value="value" mode="multi-selector" @change="pickerChange"> <view class="picker">选择省市区</view> </picker> </view> </template> ``` 2. 在`data`中定义需要使用的数据,如省市区的数据源,以及选择结果的变量。例如: ``` data() { return { value: [], provinces: ['北京市', '上海市', '广东省', ...], cities: { '北京市': ['北京市'], '上海市': ['上海市'], '广东省': ['广州市', '深圳市', '珠海市', ...], ... }, areas: { '北京市': { '北京市': ['东城区', '西城区', '朝阳区', ...], ... }, '上海市': { '上海市': ['黄浦区', '徐汇区', '长宁区', ...], ... }, ... } }; }, ``` 3. 在`methods`中定义选择器的change事件处理函数,用来更新选择结果的变量。例如: ``` methods: { pickerChange(e) { const value = e.detail.value; const province = this.provinces[value[0]]; const city = this.cities[province][value[1]]; const area = this.areas[province][city][value[2]]; this.value = value; console.log('选择结果:', province, city, area); // 可以在此处理选择结果,如发送请求获取相应的数据等 }, } ``` 以上就是使用uniapp实现省市区三级联动的基本步骤。利用picker组件和相应的数据处理方法,可以实现用户选择省市区的功能,并获取相应的选择结果,方便后续的数据处理和操作。 ### 回答3: Uniapp是一种基于Vue框架的跨平台开发工具,可以方便快捷地开发出同时适用于多个平台的应用程序。要实现省市区三级联动功能,可以通过以下步骤来完成。 首先,我们需要准备好省市区的数据。可以在后端提供接口获取到省市区的数据,然后将数据存储到前端的数据源中。 然后,在前端的页面中布局好三个级别的选择框,用于显示省市区的选择结果。 接着,需要为每个选择框绑定一个change事件,在选择框的change事件中根据选择的值,动态更新下一级选择框的选项。 具体的实现方式是,当省选择框的值发生改变时,根据选择的省份,在数据源中找到对应的市的数据,并更新市选择框的选项。当市选择框的值发生改变时,根据选择的市,再次在数据源中找到对应的区的数据,并更新区选择框的选项。 最后,当三个选择框的值都确定之后,就可以得到最终的选择结果,可以将结果保存到数据源中,或者作为参数传递给后端接口进行相应的操作。 总结起来,实现uniapp省市区三级联动的过程包括准备数据、布局页面、绑定change事件和更新选项。通过这样的实现,用户可以方便地选择省市区信息,并进行相应的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值