本文实例为大家分享了微信小程序实现select二级下拉的具体代码,供大家参考,具体内容如下
xiala.wxml
<!-- 列表选择 -->
<view class="list" hover-class="none" hover-stop-propagation="false">
<text class="listText dd">3.请选择门店</text>
<view class="box" hover-class="none" hover-stop-propagation="false">
<view class='select_box'>
<view class='select' catchtap='dianTap'>
<input type="number" class='select_text' disabled="true" adjust-position="flase"
value="{{dian[index]}}" name="lie" />
<image class='select_img {{dianShow&&"select_img_rotate"}}' src='/pages/image/b2.webp'
background-size="contain"></image>
</view>
<view class="option_bbox" hover-class="none" hover-stop-propagation="false">
<view class='option_box' style='height:{{dianShow?(area.length>5?325:dian.length*70):0}}rpx;'>
<text class='option' wx:for='{{area}}' wx:key='this' data-index='{{index}}' data-aid='{{item.id}}' catchtap='areaId'>{{item.name}}</text>
</view>
<view class='option_box' style='height:{{dianShow?(dian.length>5?325:dian.length*70):0}}rpx;'>
<text class='option' wx:for='{{dian}}' wx:key='this' data-index='{{dian}}' catchtap='optionTap'>{{item}}</text>
</view>
</view>
</view>
</view>
</view>
js页面
// pages/xiala/xiala.js
Page({
/**
* 页面的初始数据
*/
data: {
liebiao:[],
price:[],
index:0,
area:[],
areaId:'',
dian:[]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var that = this;
that.area();
},
// 获取区域
area(){
var that = this;
wx.request({
url: 'xxxxxx',
header: {
'content-type': 'application/json' // 默认值
},
success(res) {
console.log(res.data)
let area = res.data.data;
let obMut = [];
let areaId;
for(var i=0; i<area.length;i++){
areaId = area[0].id;
obMut.push({id:area[i].id,name:area[i].name});
}
that.setData({
areaId:areaId,
area:obMut
})
// console.log(that.data.areaId)
that.dian();
}
})
},
// 点击改变区id
areaId(e){
var that = this;
that.setData({
areaId: e.currentTarget.dataset.aid,
})
that.dian();
},
// 获取店
dian:function(){
let that = this;
let idx =that.data.areaId;
let area = that.data.area;
console.log(area)
area.forEach((item, index) => {
if (idx === item.id) {
item.status = true
wx.request({
url: 'xxxxxxx',
dataType: 'json',
method: 'POST',
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: {
aid: item.id
},
success(res) {
// console.log(res)
let fmutA = that.data.fmutA;
if (res.data.status === 1) {
console.log(res.data.shop)
let dian = res.data.shop;
let fDian = [];
for(var i=0; i<dian.length;i++){
fDian[i] = dian[i].name;
}
console.log(fDian)
that.setData({
dian: fDian,
})
}
}
})
}else{
item.status = false
}
})
},
// 点击下拉显示框
dianTap() {
this.setData({
dianShow: !this.data.dianShow
});
},
// 点击下拉列表
optionTap(e) {
let Index = e.currentTarget.dataset.index;//获取点击的下拉列表的下标
this.setData({
index: Index,
dianShow: !this.data.dianShow
});
}
})
wxss页面
/* 列表 */
/* pages/map/map.wxss */
.select_box{
width: 63%;
height:70%;
border-radius: 14rpx;
position: relative;
}
.select_box .select{
box-sizing: border-box;
width: 100%;
height: 100%;
border-radius: 8rpx;
display: flex;
align-items: center;
}
.select_box .select .select_text{
color: #777777;
line-height: 28rpx;
flex: 1;
}
.select_box .select .select_img{
width: 20rpx;
height: 20rpx;
display: block;
transition:transform 0.3s;
position: absolute;
right: 25rpx;
}
.select_box .select .select_img_rotate{
transform:rotate(180deg);
}
.select_box .option_box{
position: absolute;
top: calc(100% - 1px);
width: 100%;
box-sizing: border-box;
height: 0;
overflow-y: auto;
background: #fff;
transition: height 0.3s;
border: 1px solid #efefef;
border-right: 1px solid #efefef;
background: #fcfcfc;
}
.select_box .option_box .option{
display: block;
line-height: 38rpx;
font-size: 9pt;
border-top: 1px solid #efefef;
border-bottom: 1px solid #efefef;
padding: 10rpx;
}
.option_bbox{
display: flex;
justify-content: row;
}
.select_box .option_box {
position: relative;
}
界面比较原始,建议自行美化