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
随机推荐
- Java多线程笔记全过程(一)
一.多线程最基础的基本概念 一个程序最少需要一个进程,而一个进程最少需要一个线程. 我们常说的高并发,也并不全是线程级别的并发,在很多开发语言中,比如PHP,很常见的都是进程级别的并发.但是在Java ...
- Docker磁盘&内存&CPU资源实战
Docker 资源实战:cpu/内存配置: #查看帮助 docker run --help docker update --help #配置容器使用cpu /内存大小--privileged 给与容器 ...
- KL-Divergence KL散度
KL散度(KL-divergence) 直观解释:KL 散度是一种衡量两个分布(比如两条线)之间的匹配程度的方法. 需要解决的问题:已知数据太大,逍遥使用较小的信息表示已知数据.用某种已知分布来表示真 ...
- shell脚本之语句(条件、循环)
条件语句 1.测试 使用[]时要使用空格,注意格式 格式1:test 条件表达式 格式2:[ 条件表达式 ]#注意空格 注意[]空格,否则会失败 测试 是否成功使用 $?返回值来判断 [ 操 ...
- 字符串小记 II:字符串自动机
OI 中的自动机指的是"有限状态自动机",它是对一串信号进行处理的数学模型,一般由以下三部分构成: 字符集(\(\Sigma\)),能够输入进自动机的字符集合. 状态集合(\(Q\ ...
- 基于Echart的前端可视化
GitHub 上有许多关于低代码自助可视化的项目,前端使用 Vue 和 ECharts 的示例.以下是一些可能符合你要求的项目: DataV: 项目链接:DataV 描述:DataV 是一款基于 Vu ...
- Spring/SpringBoot中的声明式事务和编程式事务源码、区别、优缺点、适用场景、实战
一.前言 在现代软件开发中,事务处理是必不可少的一部分.当多个操作需要作为一个整体来执行时,事务可以确保数据的完整性和一致性,并避免出现异常和错误情况.在SpringBoot框架中,我们可以使用声明式 ...
- [WPF]浅析资源引用(pack URI)
WPF中我们引用资源时常常提到一个概念:pack URI,这是WPF标识和引用资源最常见的方式,但不是唯一的方式.本文将介绍WPF中引用资源的几种方式,并回顾一下pack URI标识引用在不同位置的资 ...
- OpenGL 摄像机视角详解
1. 摄像机 摄像机就好像是我们的眼睛,我们从摄像机的方向观察世界空间中的模型.摄像机远离模型,模型自然就变小了(透视投影下),然而,在GL中事实上并没有摄像机的概念.但是我们可以通过移动世界空间远离 ...
- 推荐一个Node.js多版本管理的可视化工具
关于Node.js的开发者来说,在开发机器上管理多个不同版本的Node.js是一个常见痛点.之前在开发者安全大全专栏中,提到过解决方法:使用nvm,如果对于nvm还不了解的话,可以前往了解. 对于TJ ...