微信小程序-自定义picker选择器

2018-12-02  本文已影响0人  huanghaodong
avatar

github地址

为什么要自定义picker

原生小程序picker不支持自定义样式,无联动。
该自定组件

使用

{
  "usingComponents": {
    "picker": picker.js的相对路径
  }
}
<picker
    isShowPicker="{{isShow_02}}"
    bind:sure="sureCallBack_02"
    bind:cancle="cancleCallBack_02"
    scrollType="normal"
    listData="{{listData_02}}"
    indicatorStyle="height:80px"
    maskStyle=""
    titleStyle=""
    sureStyle="color:blue;font-size:16px;"
    cancelStyle="color:red;font-size:16px;"
    chooseItemTextStyle="color:green;"
    pickerHeaderStyle="background:#eee;"
    titleText="自定义标题"
    cancelText="cancle"
    sureText="sure"
></picker>

参数说明
name type required default Description
isShowPicker Boolean false 显示隐藏picker,需要在bindsure和bindcancle中手动设为false
scrollType String 'normal' picker类型,'normal':非联动picker 'link':联动picker
listData Array [] picker数据源,是一个数组,scrollType='normal'时,数组成员也是数组,数组成员数量就是picker列数;scrollType='link'时,listData格式需为固定格式
keyWordsOfShow String 'name' 当listData的的每一个成员,是由对象组成的数组时,keyWordsOfShow作为对象的key,其value用于显示;或者当picker='link'时,供显示的key
defaultPickData Array [] 设置picker默认选择
indicatorStyle String '' 设置选择器中间选中框的样式(详见picker-view)如,每一行的高度 view
maskStyle String '' 设置蒙层的样式(详见picker-view) view
titleStyle String '' 标题栏标题样式 view
sureStyle String '' 标题栏确定样式 text
cancelStyle String '' 标题栏取消样式 text
chooseItemTextStyle Array '' 设置picker列表文案样式 text
pickerHeaderStyle String '' 标题栏样式 view
titleText String '' 标题文案
cancelText String '' 取消按钮文案
sureText String '' 确定按钮文案
bindsure EventHandle 点击确定触发的事件,event.detail = value
bindcancle EventHandle 点击取消触发的事件
注意
//listData数据结构
 [ 
   [对象或者普通类型], 
   [对象或者普通类型], 
   [对象或者普通类型], 
   ...
   ]

//listData数据结构
 [
   {
     用于显示的key:'',
     children:[
       {
          用于显示的key:'',
          children:[
            {
              用于显示的key:'',
              children:[
                      
              ],
              其他属性...,
             }      
          ],
          其他属性...,
       },
       ...
     ],
     其他属性...,
   },
   ...
 ]

更新日志

组件源码和demo请参考github地址

上一篇下一篇

猜你喜欢

热点阅读