微信小程序-自定義picker選擇器

avatar

github地址

為什么要自定義picker

原生小程序picker不支持自定義樣式,無聯(lián)動。
該自定組件

  • 支持自定義數(shù)據(jù)
  • 支持自定義樣式
  • 支持傳入和返回對象或者基本類型
  • 支持聯(lián)動(改變父列,子列根據(jù)關(guān)聯(lián)自動變化)

使用

  • 直接將picker文件夾拖入工程

  • 在某page的json文件中配置

{
  "usingComponents": {
    "picker": picker.js的相對路徑
  }
}
  • 在page的wxml文件中使用
<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="自定義標(biāo)題"
    cancelText="cancle"
    sureText="sure"
></picker>

  • 更多使用方式,可自行參考demo
參數(shù)說明
name type required default Description
isShowPicker Boolean ? false 顯示隱藏picker,需要在bindsure和bindcancle中手動設(shè)為false
scrollType String ? 'normal' picker類型,'normal':非聯(lián)動picker 'link':聯(lián)動picker
listData Array ? [] picker數(shù)據(jù)源,是一個數(shù)組,scrollType='normal'時,數(shù)組成員也是數(shù)組,數(shù)組成員數(shù)量就是picker列數(shù);scrollType='link'時,listData格式需為固定格式
keyWordsOfShow String ? 'name' 當(dāng)listData的的每一個成員,是由對象組成的數(shù)組時,keyWordsOfShow作為對象的key,其value用于顯示;或者當(dāng)picker='link'時,供顯示的key
defaultPickData Array ? [] 設(shè)置picker默認(rèn)選擇
indicatorStyle String ? '' 設(shè)置選擇器中間選中框的樣式(詳見picker-view)如,每一行的高度 view
maskStyle String ? '' 設(shè)置蒙層的樣式(詳見picker-view) view
titleStyle String ? '' 標(biāo)題欄標(biāo)題樣式 view
sureStyle String ? '' 標(biāo)題欄確定樣式 text
cancelStyle String ? '' 標(biāo)題欄取消樣式 text
chooseItemTextStyle Array ? '' 設(shè)置picker列表文案樣式 text
pickerHeaderStyle String ? '' 標(biāo)題欄樣式 view
titleText String ? '' 標(biāo)題文案
cancelText String ? '' 取消按鈕文案
sureText String ? '' 確定按鈕文案
bindsure EventHandle ? 點擊確定觸發(fā)的事件,event.detail = value
bindcancle EventHandle ? 點擊取消觸發(fā)的事件
注意
  • 必須在bindsure和bindcancle中將isShowPicker設(shè)為false。
  • scrollType='normal'時,listData數(shù)據(jù)結(jié)構(gòu)代碼如下;當(dāng)?shù)诙S數(shù)組的成員為對象時,需指定用于顯示的key(通過keyWordsOfShow屬性),默認(rèn)為'name'。若要設(shè)置默認(rèn)選中,設(shè)置 defaultPickData=[第一選中的列索引,第二選中的列索引,第三選中的列索引,...],如[1,2,1]
//listData數(shù)據(jù)結(jié)構(gòu)
 [ 
   [對象或者普通類型], 
   [對象或者普通類型], 
   [對象或者普通類型], 
   ...
   ]

  • scrollType='link'時,listData數(shù)據(jù)結(jié)構(gòu)代碼如下,"children"字段為必須;'用于顯示的key'對應(yīng)keyWordsOfShow屬性。若要設(shè)置默認(rèn)選中,設(shè)置 defaultPickData = [{第一列選中項對應(yīng)的唯一key:value}, {第二列選中項對應(yīng)的唯一key:value}, {第三列選中項對應(yīng)的唯一key:value},...],如[{id:2},{id:21},{id:213}]
//listData數(shù)據(jù)結(jié)構(gòu)
 [
   {
     用于顯示的key:'',
     children:[
       {
          用于顯示的key:'',
          children:[
            {
              用于顯示的key:'',
              children:[
                      
              ],
              其他屬性...,
             }      
          ],
          其他屬性...,
       },
       ...
     ],
     其他屬性...,
   },
   ...
 ]

更新日志

  • 0.0.1 初始化項目。

組件源碼和demo請參考github地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 每天的學(xué)習(xí)記錄,可能有的地方寫的不對,因為剛學(xué),以后發(fā)現(xiàn)錯的話會回來改掉整體流程 https://develope...
    有點健忘閱讀 5,018評論 0 7
  • ¥開啟¥ 【iAPP實現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,299評論 0 17
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • PersonBuilder.cs PersonFatBuilder.cs PersonThinBuilder.cs...
    Charles2018閱讀 579評論 0 0
  • 我們總是在為了所謂的希望和目標(biāo)去奮斗。 殊不知,那種所謂的自由,常常在不經(jīng)意間就被自己種種無意識蠶食,然后你就失去...
    HelloIamLiLei閱讀 892評論 0 0

友情鏈接更多精彩內(nèi)容