微信小程序之利用vant-picker实现三级联动

微信小程序之利用vant-picker实现三级联动,第1张

拟设计一个设备故腔销亏障状况选择器,需要三级联动,第一级:设备大类;第二级:设备细类;第三级:故障描述,如下图:

1、需要引入vant-picker,需要定制一个数组,包含三级即[一级,一级内容,子类[二级,二级内容,子类[三级,三级内容]]],如下图

2、在vant-picker的onChange事件中,对上面数组进行分级控制。

3、难点,需要把数组按三级拆分出来,放到picker的三列中,控制不好就会各种报错。

1、json,引入vant-picker

2、wxml

绑定change confirm 2个必须事件

3、js文件

3.1 定义选项内容,需要分成三级

3.2 data 中实现picker3列

3.3 onChange 事件实现

3.4 常见问题

3.4.1 最后一级斗激如果没有内容,vant-picker会报错,所以需要做一个空判断,如果为空,赋值一个常量

3.4.2 是使用value,还是选择使用自己定义的常量,需要调试伍神看。value值已经获取到了三列数据,但是容易出错。我最后还是选择使用原来定义常量proSelectList。

4.1 三级数据齐全的选择

4.2 第三级如果为空,第三列使用默认数据

将 app.json 中的 "style": "v2" 去除,小程序的新版基础组件强行加上了许多样式,难以覆盖,不侍租关闭将造成部分组件样式混乱。

开发者工具创建的项目,miniprogramRoot 默认为 miniprogram,package.json 在其外部,npm 构建无法正常工作。需要手动在 project.config.json 内添加如下配置,使开发者工具可以正确索引到 npm 依赖的位置。

打开微信开发者工具,点击  工具 ->构建 npm ,并勾选  使用 npm 模块  选项,构建完成后,

到 全局配置 app.json 中注册引入组件,详见 快速上手 。

支持default、primary、info、warning、danger五种类型,默认为default。  格式:

通过plain属陆兄性将按钮设置为朴素按钮

设置hairline属性可以开启 0.5px 边框,基于伪类实现。

通过disabled属性来禁用按钮,此时按钮的bind:click事件不会触发。

通过loading属性来设置加载按钮   loading-type="spinner"   loading-text="加载中..."

通过icon属性设置按钮图标,支持 Icon 组件里的所有图标,也可以传入图标 URL。

label     输入框左侧文本

type    可设置为任意原生类型, 如 number   idcard    textarea    digit

readonly  是否只读

custom-style    自定义样式

autosize    是否自适应内容高度,只对 textarea 有效,可传入对象,如 { maxHeight: 100, minHeight: 50 },单位为px

show :是否显示 

onClose 点击其他位置,关闭d出层

position            可以设置为top、bottom、left、right。

Picker 选择器 需要配合d出层使用

<van-picker columns="{{ columns }}" bind:change="onChange" />

columns 对象数组,配置每一列显示的数据

onChange(e)    有默认参数 e 

value-key    选项对象中,文字对应的 key 通常用于对象数组

show-toolbar    是否显示顶部栏

defaultIndex     初始选老悉兆中项的索引,默认为 0  不是双向绑定 需要自己改变defaultIndex  的值  需要渲染两次

官网: https://vant-contrib.gitee.io/vant-weapp/#/intro

Vant 是 有赞前端团队 开源的移动端组件库,于 2017 年开源,已持续维护 4 年时间。Vant 对内承唯漏载了有赞所有核心业务,对外服务十多万开发者,是业界指链烂主流的移动端组件库之一。

目前 Vant 官方提供了 Vue 2 版本 、 Vue 3 版本 和唤芹 微信小程序版本 ,并由社区团队维护 React 版本 和 支付宝小程序版本 。

在小程序根目录打开终端

将 app.json 中的 "style": "v2" 去除,小程序的 新版基础组件 强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱。

在setting选项中,找到"packNpmManually" 和"packNpmRelationList",并修改为

以Picker选择器为例,找到官网相应组件的文档如下


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12540258.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存