MPComponent / mpvue-picker

基于 mpvue 框架的小程序选择控件,支持单列,多列,联动。
MIT License
172 stars 77 forks source link
javascript mpvue picker vue

mpvue-picker

基于 mpvue 框架的小程序选择控件

支持单列、多列以及级联

目前版本为 2.0,1.0 使用请点击

citypicker 已支持,详情点击 mpvue-citypicker

npm version download PRs Welcome license

前言

mpvue开源之初写了 用 vue 写小程序,基于 mpvue 框架重写 weui。当时用的是小程序的原生组件,没有对其进行封装和组件化。而对于现在的前端开发环境,组件化模块化工程化以及自动化已经是一种标配。而mpvue框架又提供了一个很好的组件化开发平台,因此就对小程序中的 picker 组件进行封装,使其在用mpvue开发的时候能够用快速的实现 picker的功能。

:warning:uni-app 插件市场的 mpvue-picker 不是本人在维护,如果要在 uni-app 中使用的话推荐通过 npm 包的方式引入。

为什么封装 picker 组件

使用

* [更多 demo](https://github.com/KuangPF/mpvue-picker/blob/master/src/pages/demo/index.vue)
* 初始化

在父组件中调用 ` mpvuePicker` 实例中的 `show` 方法即可

``` javascript
this.$refs.mpvuePicker.show();

效果

mpvue-picker-demo01 mpvue-picker-demo02 mpvue-picker-demo03 mpvue-picker-demo04

参数说明

mode

pickerValueArray

pickerValueDefault

deepLength

themeColor

onChange

onConfirm

onCancel

相关数据结构说明

单列

点击展开单列数据结构 ``` javascript pickerValueArray: [ { label: '住宿费', value: 1 }, { label: '活动费', value: 2 }, { label: '通讯费', value: 3 }, { label: '补助', value: 4 } ], ```

多列

点击展开多列数据结构 ``` javascript pickerMulArray: [ [ { label: '中国', value: 1 }, { label: '美国', value: 2 }, { label: '日本', value: 3 }, { label: '俄罗斯', value: 4 } ], [ { label: '茶', value: 1 }, { label: '咖啡', value: 2 }, { label: '寿司', value: 3 }, { label: '奶酪', value: 4 } ], [ { label: '歼20', value: 1 }, { label: 'F22', value: 2 }, { label: '秋月级', value: 3 }, { label: 'T50', value: 4 } ] ] ```

二级联动

点击展开二级联动数据结构 ``` javascript pickerValueArray: [ { label: '飞机票', value: 0, children: [{ label: '经济舱', value: 1 }, { label: '商务舱', value: 2 } ] }, { label: '火车票', value: 1, children: [{ label: '卧铺', value: 1 }, { label: '坐票', value: 2 }, { label: '站票', value: 3 } ] }, { label: '汽车票', value: 3, children: [{ label: '快班', value: 1 }, { label: '普通', value: 2 } ] } ] ```

三级联动

点击展开三级联动数据结构 ``` javascript pickerValueArray: [ { label: 'phone', value: 0, children: [ { label: 'iphone', value: 1, children: [{ label: 'iphoneX', value: 1 }, { label: 'iphone8', value: 2 }, { label: 'iphone8 Plus', value: 3 }] }, { label: 'android', value: 1, children: [ { label: 'vivo', value: 1 }, { label: '魅族', value: 2 }, { label: '小米', value: 3 } ] } ] }, { label: 'PC', value: 0, children: [ { label: 'mac', value: 1, children: [ { label: 'macbook Pro', value: 1 }, { label: 'iMac', value: 2 }, { label: 'mackbook', value: 3 }, { label: 'mackbook air', value: 3 } ] }, { label: 'windows', value: 1, children: [ { label: 'dell', value: 1 }, { label: 'surface', value: 2 }, { label: 'thinkpad', value: 3 } ] } ] } ] ```

相关说明

对于多级联动,由于没有动态添加 picker 列数以及动态渲染其值,因此目前只支持 二级联动和三级联动。

版本日志

version logs