前端vue uni-app仿美团下拉框下拉筛选组件

2024-03-01 1514阅读

温馨提示:这篇文章已超过388天没有更新,请注意相关的内容是否还可用!

在前端Web开发中,下拉筛选功能是一种非常常见的交互方式,它可以帮助用户快速选择所需的选项。本文将介绍如何利用Vue.js和uni-app框架来实现一个高效的下拉筛选功能。通过使用这两个强大的前端框架,我们可以轻松地创建具有响应式用户操作的下拉筛选组件。

1. 项目设置

首先,我们需要创建一个新的Vue.js项目,并引入uni-app的相关组件和API。这样可以方便地将我们的代码集成到uni-app应用中。在项目中,我们可以使用Vuex来管理数据状态

2. 数据准备

在模板中,我们需要定义一些用于筛选的数据和默认的选择序列。这些数据可以通过v-model指令来实现双向绑定。同时,在methods中,我们需要定义一个方法来处理用户的选择。当用户选择一个新的筛选项时,这个方法会被调用。在这个方法中,我们首先获取用户选择的数据,然后更新res变量的值。最后,我们使用uni-app的showModal方法来显示一个模态框,告诉用户他们选择了哪些数据。

前端vue uni-app仿美团下拉框下拉筛选组件

前端vue uni-app仿美团下拉框下拉筛选组件

前端vue uni-app仿美团下拉框下拉筛选组件

下拉框使用方法

HTML代码部分











export default {
data() {
return {
filterData: [
[{
name: '全省',
value: ''
}],
[{
name: '美食',
value: ''
},
{
name: '湘菜',
value: '1'
},
{
name: '川菜',
value: '2'
},
{
name: '火锅',
value: '3'
}
],
[{
name: '排序',
value: ''
},
{
name: '好评优先',
value: '1'
},
{
name: '销量优先',
value: '2'
},
{
name: '低价优先',
value: '3'
}
],
[{
name: '筛选',
value: ''
},
{
name: '筛选1',
value: '1'
},
{
name: '筛选2',
value: '2'
}
],
],
defaultIndex: [0, 0, 0, 0]
}
},
mounted() {
let cityArr = ['广州市', '深圳市', '佛山市', '东莞市', '中山市', '珠海市', '江门市', '肇庆市', '惠州市', '汕头市', '潮州市', '揭阳市', '汕尾市',
'湛江市', '茂名市', '阳江市', '云浮市', '韶关市', '清远市', '梅州市', '河源市'
]
for (let s of cityArr) {
this.filterData[0].push({
name: s,
value: s
});
}
},
methods: {
onSelected(res) {
console.log('选择res = ' + JSON.stringify(res));
uni.showModal({
title: '下拉筛选选择数据',
content: '所选择数据 = ' + JSON.stringify(res)
})
},
}
}


page {
background-color: '#F6F7FA';
}
.content {
display: flex;
flex-direction: column;
}
.mui-content-padded {
margin: 6px 14px;
}
.lineV {
margin-top: 0px;
margin-left: 15px;
width: calc(100vw - 30px);
height: 1px;
background-color: #F5F5F5;
}
.hotSearchTitV {
margin-left: 14px;
margin-top: 4px;
width: 170px;
height: 22px;
font-size: 14px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #161616;
line-height: 22px;
}
.upView {
display: flex;
flex-direction: row;
height: 26px;
margin-left: 0px;
}
.cellView {
margin-top: 4px;
margin-left: 5.8px;
height: 18px;
line-height: 18px;
text-align: center;
border-radius: 2px;
padding: 0px 4px !important;
font-size: 10px;
background-color: #f5f5f5;
color: #818183;
}
.moreBtn {
height: 30px;
text-align: center;
font-size: 12px;
line-height: 30px;
color: #888888;
}

阅读原文_; 下载完整组件代码请关注微信公众号: 前端组件开发

前端vue uni-app仿美团下拉框下拉筛选组件

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]