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条目的功能的更多相关文章

  1. 尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框

    尝试用React写几个通用组件 - 带搜索功能的下拉列表,开关切换按钮,弹出框 近期正在逐步摸索学习React的用法,尝试着写几个通用型的组件,整体项目还是根据webpack+react+css-me ...

  2. Picker 组件的设计与实现

    前言 今天的主题是 Picker 组件的设计与实现,Picker 组件是 NutUI 的一个拾取器组件,它用于显示一系列的值集合,用户可以滚动选择集合中一项,也可以支持多个系列的值集合供用户分别选择. ...

  3. 用mint-ui picker组件 实现省市区三级联动

    公司上一期项目中新增了省市区滑动三级联动效果,用的是mint-ui的picker组件和popup组件,效果如下:点击确定换地区,点击取消不变 省市区数据是后台给的(根据上一级的id,获取下一级数据列表 ...

  4. React-Native 之 GD (十八)监听 TabBarItem 点击与传值实现 点击 Item 进行刷新功能

    监听 TabBarItem 点击与传值实现 点击 Item 进行刷新功能 原版 APP 中当我们点击 首页和海淘 2个 Item 时,会马上获取最新数据个数然后进行更新,这边来实现一下这个功能. 1. ...

  5. WeUI Picker组件 源代码分析

    前言 由于最近做的一个移动端项目需要使用到类似 WeUI Picker组件 的选择效果,  所以在这里来分析下 WeUI Picker 的实现逻辑.(weui.js项目地址) 之前也做过类似的组件, ...

  6. 微信小程序优化:实现picker组件中input输入框禁止输入,而只能通过picker组件选择日期

    原来的代码如下: <view class="right">     <picker mode="date" value="{{mat ...

  7. [moka同学笔记]三、Yii2.0课程笔记(魏曦老师教程)关联字段增加搜索

    关联字段增加搜索 post表关联adminuser表,通过post.author_id  adminuser.id关联,在YII2.0生成搜索,关联字段搜索时,需要输入关联字段author的id才能搜 ...

  8. Picker组件封装

    在开发APP的过程中,我们可能会遇上软件中需要有很多下拉选择样式,就像之前我做的那个<房贷计算器>一样,有很多下拉选择,如果没有将Picker封装起来共用是很麻烦的. 安装插件 在Reac ...

  9. 微信小程序picker组件关于objectArray数据类型绑定

    一.前言: 我发现很多的同学都在抱怨说微信小程序的picker的mode = selector/mode = multiSelector 无法实现Object Array数据类型的绑定,其实很多人就想 ...

  10. JEECG--去掉(增加)登陆页面验证码功能 - CSDN博客

    JEECG--去掉(增加)登陆页面验证码功能 - CSDN博客https://blog.csdn.net/KooKing_L/article/details/79711379

随机推荐

  1. Markdown 包含其他文件静态渲染工具

    1. 前言 在 GitHub 上写文档,很多时候要插入 uml,像 mermaid 这种可以直接在 GitHub/GitLab 中渲染的一般直接写个 code block 进去,但是这样造成一个问题就 ...

  2. Python--乱码转化为中文

    1. \u和\x的含义 \u:代表的是unicode码 \x:代表的是16进制码 2. 代码实现 :\x类型 # \xe4\xb8\xad\xe6\x96\x87 代表的意思是'中文' s = u'\ ...

  3. 21.3 Python 使用DPKT分析数据包

    dpkt项目是一个Python模块,主要用于对网络数据包进行解析和操作.它可以处理多种协议,例如TCP.UDP.IP等,并提供了一些常用的网络操作功能,例如计算校验和.解析DNS数据包等.由于其简单易 ...

  4. Python网页应用开发神器fac 0.2.10版本新功能介绍

    fac项目地址:https://github.com/CNFeffery/feffery-antd-components 欢迎star支持 大家好我是费老师,由我开源维护的Python网页通用组件库f ...

  5. ACL 与NAT

    ACL 概述 acl是由一系列permit或deny语句组成.有序规则的列表. ACL是一个匹配工具,能够对报文进行匹配和区分. 应用 匹配流量 在traffic-filter中备调用 在NAT中被调 ...

  6. idea的git插件,可以显示每一行代码的git版本记录,很好用

    再给大家推荐一款idea的git插件----GitToolBox,可以显示每一行代码的git版本记录,很好用 效果图如下 可以在光标所在行代码的后面显示git的版本记录信息(提交的用户名,提交的时间等 ...

  7. OpenGL 摄像机视角详解

    1. 摄像机 摄像机就好像是我们的眼睛,我们从摄像机的方向观察世界空间中的模型.摄像机远离模型,模型自然就变小了(透视投影下),然而,在GL中事实上并没有摄像机的概念.但是我们可以通过移动世界空间远离 ...

  8. Spring 缓存注解这样用,太香了!

    作者最近在开发公司项目时使用到 Redis 缓存,并在翻看前人代码时,看到了一种关于 @Cacheable 注解的自定义缓存有效期的解决方案,感觉比较实用,因此作者自己拓展完善了一番后分享给各位. S ...

  9. 题解 CF1004C

    题意描述: 给定 \(n\) 个数,从前往后找,看看能和后面的数组成多少个不同的数对. 若两个数对仅仅是位置不同,我们也认为是两个不同的数对. 题目分析: 阅读题目,我们不难看出,若前面有一个数已经出 ...

  10. TypeScript学习小结:基础使用

    TypeScript学习小结:基础使用 某册子买了两年多了,到最近才开始学习TypeScript,拖延症的严重症状了:不过我还是深信人做一件事是需要一个契机的. 学完之后整体感受是:TypeScrip ...