picker组件增加搜索item条目的功能
picker组件顶部有搜索框,能搜索条目,如果条目很多的时候,上下翻很麻烦了,而且不容易找到,可以先全查,然后js搜索
wxml
<button bindtap="openFlag">可搜索选择框</button>
<view class="date-background" hidden="{{flag}}">
<view class='date-gray-background' bindtap='hiddeDatePicker'></view>
<view class='date-container'>
<view class="transparent">
<view class='date-confirm'>
<view bindtap='hiddeDatePicker'>取消</view>
<van-search
value="{{searchValue}}"
input-align="center"
placeholder="请输入学生电话号码"
bind:change="searchSchool"
/>
<view bindtap='confirm'>确定</view>
</view>
<picker-view
indicator-class="indicator"
value="{{setValues}}"
bindchange="bindChange"
bindpickend="_bindpickend"
indicator-style="height: 100rpx;"
mask-style="height:900rpx;"
style="width: 100%; height: 90%;position:absolute;bottom:0rpx;text-align:center;background:white"
> <picker-view-column class="pickViewColumn">
<view wx:for="{{items}}" wx:key="id" style="line-height: 104rpx">{{item.userName}}</view>
</picker-view-column>
</picker-view>
</view>
</view>
</view>
wxss
/* pages/newstudents/newstudents.wxss */
.date-background {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
.date-gray-background {
position: absolute;
width: 100%;
top: 0;
background: rgba(0, 0, 0, .5);
height: calc(100% - 500rpx);
}
.date-container {
position: absolute;
width: 100%;
height: 900rpx;
overflow: hidden;
background: #fff;
bottom:0;
z-index: 1000;
}
.date-confirm {
display: flex;
justify-content: space-between;
align-items: center;
padding:0 20rpx;
font-size:34rpx;
line-height: 70rpx;
color:var(--ThemeColor)
}
.pickViewColumn{
height: 900rpx;
margin-top: -300rpx;
}
.indicator{
height: 80rpx;
border: 1rpx solid #E5E8E8;
}
js
const app = getApp();
Page({
data: {
//控制picker的显示与隐藏
flag: false,
// 用户输入的学校关键词
// 滚动选择的学校
setValues: [],
teachers: [{userName:"张三"},{userName:"李四"},{userName:"刘三"},{userName:"王五"},{userName:"不配有名字的五"}],
items:[],
// 滚动选择的学校索引
selectSchoolIndex:'',
searchValue:'',
},
onLoad: function (options) {
console.log('onLoad-----------------:') ;
this.setData({
// 用户赋值
items:this.data.teachers
})
},
searchSchool(e){
// items
console.log("搜索==========",e.detail)
const backendData = this.data.teachers;
console.log("数据====",backendData)
// 定义一个方法来执行模糊查询
function fuzzySearch(keyword) {
// 使用 filter 方法筛选包含关键字的元素
const result = backendData.filter(item => {
// 检查 name 属性是否存在,并且是一个字符串
if (item.userName && typeof item.userName === 'string') {
// 将字符串都转为小写进行比较,实现不区分大小写的模糊查询
return item.userName.toLowerCase().includes(keyword.toLowerCase());
}
return false;
});
return result;
}
const searchResult = fuzzySearch(e.detail);
console.log("搜索==后的结果==",searchResult)
this.setData({
// 用户赋值
items:searchResult
})
},
// 假设模糊查询的关键字为 keyword
//用户滚动picker时,获取滚动选择的索引
bindChange(e){
this.setData({
// 用户选择的学校索引
selectSchoolIndex:e.detail.value[0]
})
console.log("-----------------------选择 :",e.detail.value[0])
},
//确定
confirm(){
console.log("-----------------------选择 确定 ")
this.setData({
flag:true
})
},
//打开弹框
openFlag(){
console.log("打开弹框")
this.setData({
flag:false,
})
},
//取消
hiddeDatePicker(){
console.log("取消")
this.setData({
flag:true
})
},
})
picker组件增加搜索item条目的功能的更多相关文章
- 尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框
尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框 近期正在逐步摸索学习React的用法,尝试着写几个通用型的组件,整体项目还是根据webpack+react+css-me ...
- Picker 组件的设计与实现
前言 今天的主题是 Picker 组件的设计与实现,Picker 组件是 NutUI 的一个拾取器组件,它用于显示一系列的值集合,用户可以滚动选择集合中一项,也可以支持多个系列的值集合供用户分别选择. ...
- 用mint-ui picker组件 实现省市区三级联动
公司上一期项目中新增了省市区滑动三级联动效果,用的是mint-ui的picker组件和popup组件,效果如下:点击确定换地区,点击取消不变 省市区数据是后台给的(根据上一级的id,获取下一级数据列表 ...
- React-Native 之 GD (十八)监听 TabBarItem 点击与传值实现 点击 Item 进行刷新功能
监听 TabBarItem 点击与传值实现 点击 Item 进行刷新功能 原版 APP 中当我们点击 首页和海淘 2个 Item 时,会马上获取最新数据个数然后进行更新,这边来实现一下这个功能. 1. ...
- WeUI Picker组件 源代码分析
前言 由于最近做的一个移动端项目需要使用到类似 WeUI Picker组件 的选择效果, 所以在这里来分析下 WeUI Picker 的实现逻辑.(weui.js项目地址) 之前也做过类似的组件, ...
- 微信小程序优化:实现picker组件中input输入框禁止输入,而只能通过picker组件选择日期
原来的代码如下: <view class="right"> <picker mode="date" value="{{mat ...
- [moka同学笔记]三、Yii2.0课程笔记(魏曦老师教程)关联字段增加搜索
关联字段增加搜索 post表关联adminuser表,通过post.author_id adminuser.id关联,在YII2.0生成搜索,关联字段搜索时,需要输入关联字段author的id才能搜 ...
- Picker组件封装
在开发APP的过程中,我们可能会遇上软件中需要有很多下拉选择样式,就像之前我做的那个<房贷计算器>一样,有很多下拉选择,如果没有将Picker封装起来共用是很麻烦的. 安装插件 在Reac ...
- 微信小程序picker组件关于objectArray数据类型绑定
一.前言: 我发现很多的同学都在抱怨说微信小程序的picker的mode = selector/mode = multiSelector 无法实现Object Array数据类型的绑定,其实很多人就想 ...
- JEECG--去掉(增加)登陆页面验证码功能 - CSDN博客
JEECG--去掉(增加)登陆页面验证码功能 - CSDN博客https://blog.csdn.net/KooKing_L/article/details/79711379
随机推荐
- GO语言基础之基本运算符
GO语言基础之基本运算符 目录 GO语言基础之基本运算符 一.运算符 内置运算符: 二.算术运算符 三.关系运算符 四.逻辑运算符 五.位运算符 六.赋值运算符 一.运算符 作用:运算符用于在程序运行 ...
- 一场3天前的cf
啊 这次的cf其实水的(指前4题) 题面就不给了awaT1其实就是一个贪心,其实手模一下就好了.可以发现,先让小的那个变大,然后在后面一直让小的加上大的统计一下次数就是答案了.因为如果是这样算的话,两 ...
- 算法修养--A*寻路算法
A*寻路算法 广度优先算法 广度优先算法搜索以广度做未优先级进行搜索. 从起点开始,首先遍历起点周围邻近的点,然后再遍历已经遍历过的点邻近的点,逐步的向外扩散,直到找到终点. 这种算法就像洪水(Flo ...
- Window10安装linux子系统及子系统安装1Panel面板
原文地址:Window10安装linux子系统及子系统安装1Panel面板 - Stars-One的杂货小窝 最近看到halo博客发布了2.10.0,终于是新增了个备份功能,于是有了念头想要升级下 但 ...
- 虚拟机和Linux操作系统的安装
虚拟机和Linux操作系统的安装 简述 linux是完全免费的 只要你足够强大,可以对linux系统的源码进行编译 市场上的版本:发行版 Ubantu 红帽 每两年发布一个版本 下面我们开始进行安装 ...
- 监控Mysql数据库
Prometheus(普罗米修斯) 监控Mysql数据库: 这个是基于第一版本环境搭建的,需要部署prometheus: 服务器 IP地址 Prometheus服务器 192.168.1.22 被监控 ...
- meet
以后就放弃csdn了,就来这里记录自己的成长,就当成一个树洞吧,开心与难过,学习与生活,进步与成长,留下时间的痕迹!冲!冲!冲!
- [Python急救站课程]斐波那契数列的计算吧
斐波那契数列的计算 a, b = 0, 1 while a < 1000: # 输出不大于1000 的序列.while表示循环 print(a, end=',') a, b = b, a + b
- Basic concepts of complex number
目录 虚数的引入 复数和虚数的关系 Example - 分辨一个数 判断两个复数是否相等的条件 共轭复数 复数的几何意义.复平面的认识 求复数的模 Reference 虚数的引入 假设有一个数,可以叫 ...
- 大立科技DM63红外相机SDK开发Ⅱ-获取仪器红外图像
目录 1.开发准备 2.导入头文件 3.数据初始化 4.获取红外图像 5.关闭红外图像 6.完整代码 1.开发准备 为了方便发开,需要下载Visual Studio,本开发基于Visual Studi ...