uni-app微信小程序,写一个级联查询

//用picker这个标签,mode="multiSelector"
<view class="common room-expense">
						<view class="price">水表类型</view>
						<!-- 请选择水电价> -->
						<view class="promtprice">
							<view class="uni-list">
								<picker mode="multiSelector" @change="waterclassifyChange" @columnchange="watercolumnchange"
									:range="waterclassifyArr" :range-key="'Watertypename'" :value="waterclassifyIndex">
									<view id="watertypestyle" :class="Watertypename == '请选择水表类型'?'default-class':'active-class'">
										{{Watertypename}}
									</view>
								</picker>
							</view>
						</view>
					</view>
//在data中写一个数组嵌套就行,或者直接用接口的数据
waterdataSource: [{
    id: 1,
    Watertypename: '西力',
    child: [{
        id: 2,
        Watertypename: '联通NB远程无阀冷水表',
        waterSortCode: '28',
        waterManufacturer: '1'
    },
            {
                id: 3,
                Watertypename: '联通NB远程阀控冷水表',
                waterSortCode: '29',
                waterManufacturer: '1'
            }]
}],
Watertypename:'请选择水表类型',
waterclassifyArr: [[],[]], // 水表picker - 数据源
waterclassifyIndex: [0,0], // 水表picker - 索引
waterchildArr: [], // 水表二级分类数据源
//在方法中
 methods: {
     // 获取数据源并分出一级二级
			getwaterAllClassify() {
				let waterdata = this.waterdataSource.length;
			
				for (let i = 0; i < waterdata; i++) {
					// 将数据源中的二级分类 push 进 childArr,作为二级分类的数据源
					this.waterchildArr.push(this.waterdataSource[i].child)
				};
			
				// 一级分类的数据源
				this.waterclassifyArr[0] = this.waterdataSource;
			
				// 第一次打开时,默认给一级分类添加它的二级分类
				this.waterclassifyArr[1] = this.waterchildArr[0]
			},
			// 选择商品分类
			waterclassifyChange(e) {
				let value = e.target.value;
				this.waterclassifyIndex = value;
			
				if (this.waterclassifyArr[0].length != 0) {
					this.Watertypename = this.waterclassifyArr[0][this.waterclassifyIndex[0]].Watertypename
				};
				//这里可以拿到你想拿到的字段数据,最后提交到接口就行
				if (this.waterclassifyArr[1].length != 0) {
					this.Watertypename += ',' + this.waterclassifyArr[1][this.waterclassifyIndex[1]].Watertypename
				}
				if (this.waterclassifyArr[1].length != 0) {
					this.waterSortCode = this.waterclassifyArr[1][this.waterclassifyIndex[1]].waterSortCode
					this.waterManufacturer  = this.waterclassifyArr[1][this.waterclassifyIndex[1]].waterManufacturer   
				}
			},
			
			// 获取二级分类
			watercolumnchange(e) {
				// 当滚动切换一级分类时,为当前的一级分类添加它的子类
				if (e.detail.column == 0) {
					// 在小程序中直接赋值无效  H5 可直接赋值
					// this.classifyArr[1] = this.childArr[e.detail.value]
					// 在 H5 环境下 $set 会导致一级分类无法滚动, 小程序正常运行
					this.$set(this.waterclassifyArr, 1, this.waterchildArr[e.detail.value])
				}
			},
 }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值