Form

ListPicker列表下拉

下拉选择器,支持普通选择器、多列选择器、时间选择器、日期选择器和省市区选择器。

下拉选择器,支持普通选择器、多列选择器、时间选择器、日期选择器和省市区选择器。

示例图

基础用法

页面 .json 文件 usingComponents 中引入组件

// json
{
    "usingComponents": {
        "mx-list-picker": "/components/mxwui/list-picker/index"
    }
}

页面 .wxml 文件中使用组件

<mx-list-picker />

更多用法示例

样式类型 styleType

提供3种样式,属性:styleType,可选 horizontal、vertical、web,默认 horizontal。必填。

  • 样式一:horizontal
<mx-list-picker styleType="horizontal" />
  • 样式二:vertical
<mx-list-picker styleType="vertical" />
  • 样式三:web 风格
<mx-list-picker styleType="web" />

下拉类型 mode

属性:mode,可选 selector 普通选择器、multiSelector 多列选择器、time 时间选择器、date 日期选择器、region 省市区选择器,默认 selector 普通选择器。必填。

  • 普通选择器:horizontal
<mx-list-picker mode="selector" />
  • 多列选择器:multiSelector
<mx-list-picker mode="multiSelector" />
  • 时间选择器:time
<mx-list-picker mode="time" />
  • 日期选择器:date
<mx-list-picker mode="date" />
  • 省市区选择器:region
<mx-list-picker mode="region" />

数据项 options

属性:options,数据配置项,必填。

参数:label,选择项名称,必填。

当 mode="selector" 普通选择器时为一维数组。

当 mode="multiSelector" 多列选择器时为二维数组。

  • 普通选择器
// js
data: {
    options: [
        {label: '名称'}
    ]
}
<mx-list-picker mode="selector" options="{{options}}" />
  • 多列选择器
// js
data: {
    options: [
        [
            {label: '第一列'},
        ],
        [
            {label: '第二列'},
        ]
    ]
}
<mx-list-picker mode="multiSelector" options="{{options}}" />

key值 rangeKey

属性:rangeKey,默认 label,建议不要更改。

当选择器类型为 mode="selector" 或 mode="multiSelector" 有效。

<mx-list-picker rangeKey="label" />

普通选择器下标 index

属性:index,从 0 开始的下标值。

当选择器类型为 mode="selector" 有效。

<mx-list-picker index="1" />

多列选择器下标值 multiIndex

属性:multiIndex,每一列都是从 0 开始的下标值,数组形式。

当选择器类型为 mode="multiSelector" 有效。

// js
data: {
    multiIndex: [1, 2]
}
<mx-list-picker multiIndex="{{multiIndex}}" />

时间 time

属性:time,时间值,格式为 hh:mm。

当选择器类型为 mode="time" 有效。

<mx-list-picker time="13:14" />

日期 date

属性:date,日期值,格式为 YYYY-MM-DD。

当选择器类型为 mode="date" 有效。

<mx-list-picker date="2024-05-20" />

开始时间/开始日期 start

  • 时间选择器

属性:start,时间值,格式为 hh:mm。

当选择器类型为 mode="time" 有效。

<mx-list-picker start="13:14" />
  • 日期选择器

属性:start,日期值,格式为 YYYY-MM-DD。

当选择器类型为 mode="date" 有效。

<mx-list-picker start="2024-05-20" />

结束时间/结束日期 end

  • 时间选择器

属性:end,时间值,格式为 hh:mm。

当选择器类型为 mode="time" 有效。

<mx-list-picker end="13:14" />
  • 日期选择器

属性:end,日期值,格式为 YYYY-MM-DD。

当选择器类型为 mode="date" 有效。

<mx-list-picker end="2024-05-20" />

日期选择器粒度 fields

属性:fields,可选 year 年、month 月、day 天,默认 day,默认粒度为天。

  • 年
<mx-list-picker fields="year" />
  • 年月
<mx-list-picker fields="month" />
  • 年月日
<mx-list-picker fields="day" />

省市区选择器值 region

属性:region,数组。

当选择器类型为 mode="region" 有效。

// js
data: {
    region: ['浙江省', '杭州市', '西湖区']
}
<mx-list-picker region="{{region}}" />

省市区选择器层级 level

属性:level,可选 province 省级选择器、city 市级选择器、region 区级选择器、sub-district 街道选择器,默认 region,默认层级为区级。

当选择器类型为 mode="region" 有效。

  • 省级选择器
<mx-list-picker level="province" />
  • 市级选择器
<mx-list-picker level="city" />
  • 区级选择器
<mx-list-picker level="region" />
  • 街道选择器
<mx-list-picker level="sub-district" />

占位文本 placeholder

属性:placeholder,默认 请选择。

<mx-list-picker placeholder="请选择内容" />

占位文本颜色 placeholderColor

属性:placeholderColor,默认 #9AA0B1,支持任何合法的颜色值。

<mx-list-picker placeholderColor="#1677FF" />

文本色 textColor

属性:textColor,默认 #040A23,支持任何合法的颜色值。

<mx-list-picker textColor="#1677FF" />

是否禁用 disabled

属性:disabled,默认 false,默认不禁用。

  • 禁用
<mx-list-picker />

<mx-list-picker disabled="{{true}}" />
  • 不禁用
<mx-list-picker />

<mx-list-picker disabled="{{false}}" />

右侧内容是否居左 isLeft

属性:isLeft,默认 false,默认居右。

当 styleType == 'horizontal' 时有效。

  • 居左
<mx-list-picker isLeft />

<mx-list-picker isLeft="{{true}}" />
  • 居右
<mx-list-picker />

<mx-list-picker isLeft="{{false}}" />

左侧自定义宽度 leftWidth

属性:leftWidth,数字,不带单位,默认使用rpx。

当 styleType == 'horizontal' 和 styleType == 'web' 时有效。

<mx-list-picker leftWidth="200" />

标签文案 label

属性:label,标签内容。

<mx-list-picker label="标签" />

标签文案文本色 labelColor

属性:labelColor,默认 #040A23,支持任何合法的颜色值。

<mx-list-picker labelColor="#1677FF" />

文案对齐方式 labelAlign

属性:labelAlign,可选值:left、center、right,默认 left,左对齐。

需要配合 label 属性一起使用

  • 左对齐
<mx-list-picker />

<mx-list-picker labelAlign="left" />
  • 居中对齐
<mx-list-picker labelAlign="center" />
  • 右对齐
<mx-list-picker labelAlign="right" />

是否显示必填星号 required

属性:required,默认值 false 不显示必填星号。

  • 显示星号
<mx-list-picker required />

<mx-list-picker required="{{true}}" />
  • 不显示星号
<mx-list-picker required="{{false}}" />

<mx-list-picker />

必填星号位置 requiredPosition

属性:requiredPosition,可选值 left、right,默认值 right 在标签文本后面。

  • 星号在标签后
<mx-list-picker required />

<mx-list-picker required requiredPosition />

<mx-list-picker required requiredPosition="right" />
  • 星号在标签前
<mx-list-picker required requiredPosition="left" />

标签前图标 firstIcon

属性:firstIcon,对象,可以自定义图标或图片,自定义图标大小和颜色。

参数:iconName,图标名称,只支持图标库的图标。

参数:iconColor,图标颜色,默认 #040A23,支持任何合法的颜色值。

参数:iconUrl,自定义图片地址,传入则不使用 iconName 和 iconColor。

参数:iconSize,图标/图片支持设置大小,默认 48,不带单位,默认使用 rpx。

事件:bind:list_picker_firstIcon,标签前图标点击事件。

// js
data: {
    firstIcon: {
        iconName: '图标名',
        iconColor: '#1677FF',
        iconUrl: 'https://cdn.mingsixue.com/xcx/MXWUI/hot.png',
        iconSize: 48
    },
}
<mx-list-picker firstIcon="{{firstIcon}}" bind:list_picker_firstIcon="事件函数" />

标签后图标 lastIcon

属性:lastIcon,对象,可以自定义图标或图片,自定义图标大小和颜色。

参数:iconName,图标名称,只支持图标库的图标。

参数:iconColor,图标颜色,默认 #9AA0B1,支持任何合法的颜色值。

参数:iconUrl,自定义图片地址,传入则不使用 iconName 和 iconColor。

参数:iconSize,图标/图片支持设置大小,默认 32,不带单位,默认使用 rpx。

事件:bind:list_picker_lastIcon,标签后图标点击事件。

// js
data: {
    lastIcon: {
        iconName: '图标名',
        iconColor: '#1677FF',
        iconUrl: 'https://cdn.mingsixue.com/xcx/MXWUI/hot.png',
        iconSize: 32
    },
}
<mx-list-picker lastIcon="{{lastIcon}}" bind:list_picker_lastIcon="事件函数" />

是否显示右箭头 arrows

属性:arrows,默认值 true 显示右箭头。

  • 显示右箭头
<mx-list-picker />

<mx-list-picker arrows />

<mx-list-picker arrows="{{true}}" />
  • 不显示右箭头
<mx-list-picker arrows="{{false}}" />

描述或错误文案 desc

属性:desc,描述文案。

<mx-list-picker desc="描述文案" />

描述或错误文案颜色 descColor

属性:descColor,默认 #656979,支持任何合法的颜色值。

<mx-list-picker descColor="#1677FF" />

是否显示分隔线 showLine

属性:showLine,默认值 true 显示分隔线,用于区域之间的分隔。

只在 styleType 为 horizontal 时有效,vertical 和 web 时在样式设计上没有分隔线,所以不需要。

  • 显示分隔线
<mx-list-picker />

<mx-list-picker showLine />

<mx-list-picker showLine="{{true}}" />
  • 不显示分隔线
<mx-list-picker showLine="{{false}}" />

背景色 bgColor

属性:bgColor,默认 #FFFFFF,支持任何合法的颜色值。

当 styleType == 'vertical' 和 styleType == 'web' 时有效。

<mx-list-picker bgColor="#1677FF" />

是否横向布局 horizontal

属性:horizontal,默认值 false,默认纵向布局。

当 styleType == 'web' 时有效。

  • 横向
<mx-list-picker horizontal />

<mx-list-picker horizontal="{{true}}" />
  • 纵向
<mx-list-picker />

<mx-list-picker horizontal="{{false}}" />

自定义事件

事件:bind:list_picker_change,值变更事件,返回值 event.detail.type,普通选择器返回 event.detail.value,多列选择器返回 event.detail.multiIndex,时间选择器返回 event.detail.time,日期选择器返回 event.detail.date,省市区选择器返回 event.detail.region 和 event.detail.value。

事件:bind:list_picker_cancel,取消事件回调。

事件:bind:list_picker_column_change,列值变更事件,返回值 event.detail.column 和 event.detail.value。

事件:bind:list_picker_firstIcon,标签前图标点击事件。

事件:bind:list_picker_lastIcon,标签后图标点击事件。

<mx-list-picker 
    bind:list_picker_change="handleChange" 
    bind:list_picker_cancel="handleCancel" 
    bind:list_picker_column_change="handleColumnChange" 
    bind:list_picker_firstIcon="handleFirstIcon" 
    bind:list_picker_lastIcon="handleLastIcon" 
/>

参数

参数 类型 必填 可选值 默认值 参数描述
styleType String 是 horizontal、vertical、web horizontal 样式类型
mode String 是 selector 普通选择器、multiSelector 多列选择器、time 时间选择器、date 日期选择器、region 省市区选择器 selector 下拉类型
placeholder String 占位文本
placeholderColor String 颜色值 #9AA0B1 占位文本颜色,支持任何合法的颜色值
textColor String 颜色值 #040A23 文本色,支持任何合法的颜色值
disabled Boolean true、false false 是否禁用
label String 标签文案
labelColor String 颜色值 #040A23 标签文案文本色,支持任何合法的颜色值
labelAlign String left、center、right left 标签对齐方式
required Boolean true、false false 是否显示必填星号
requiredPosition String left、right right 必填星号位置
firstIcon Object 标签前图标
lastIcon Object 标签后图标
arrows Boolean true、false true 是否显示右箭头
desc String 描述或错误文案
descColor String 颜色值 #656979 描述或错误文案颜色,支持任何合法的颜色值

styleType="horizontal"

参数 类型 必填 可选值 默认值 参数描述
isLeft Boolean true、false false 右侧内容是否居左
leftWidth Number 数字 左侧自定义宽度,不带单位,默认使用rpx
showLine Boolean true、false true 是否显示分隔线

styleType="vertical"

参数 类型 必填 可选值 默认值 参数描述
bgColor String 颜色值 #FFFFFF 背景色,支持任何合法的颜色值

styleType="web"

参数 类型 必填 可选值 默认值 参数描述
isLeft Boolean true、false false 右侧内容是否居左
leftWidth Number 数字 左侧自定义宽度,不带单位,默认使用rpx
bgColor String 颜色值 #FFFFFF 背景色,支持任何合法的颜色值
horizontal Boolean true、false false 是否横向布局

mode="selector"

参数 类型 必填 可选值 默认值 参数描述
options Array 是 数据项
rangeKey String label 数据项key名称
index Number 数字 普通选择器下标值,下标从0开始的序号

mode="multiSelector"

参数 类型 必填 可选值 默认值 参数描述
options Array 是 数据项
rangeKey String label 数据项key名称
multiIndex Array 数组 多列选择器下标值,每一列的下标,从0开始

mode="time"

参数 类型 必填 可选值 默认值 参数描述
time String hh:mm 时间值
start String hh:mm 开始时间限制
end String hh:mm 结束时间限制

mode="date"

参数 类型 必填 可选值 默认值 参数描述
date String YYYY-MM-DD 日期值
start String YYYY-MM-DD 开始日期限制
end String YYYY-MM-DD 结束日期限制
fields String year、month、day day 日期选择器粒度

mode="region"

参数 类型 必填 可选值 默认值 参数描述
region Array 省市区选择器值
level String province 省级选择器、city 市级选择器、region 区级选择器、sub-district 街道选择器 region 省市区选择器层级

firstIcon

参数 类型 默认值 参数描述
iconName String 图标名称,只支持图标库中图标
iconColor String #040A23 图标颜色,任何合法的颜色值
iconUrl String 图标图片地址,传入则 iconName、iconColor 无效
iconSize Number 48 图标大小,不带单位,默认rpx

lastIcon

参数 类型 默认值 参数描述
iconName String 图标名称,只支持图标库中图标
iconColor String #9AA0B1 图标颜色,任何合法的颜色值
iconUrl String 图标图片地址,传入则 iconName、iconColor 无效
iconSize Number 32 图标大小,不带单位,默认rpx

事件

事件名称 类型 返回值 事件说明
bind:list_picker_change Change event 值变更事件,返回值 event.detail.type,普通选择器返回event.detail.value,多列选择器返回 event.detail.multiIndex,时间选择器返回 event.detail.time,日期选择器返回 event.detail.date,省市区选择器返回 event.detail.region 和 event.detail.value
bind:list_picker_cancel Click 取消事件回调
bind:list_picker_column_change Change event 列值变更事件,返回值 event.detail.column 和 event.detail.value
bind:list_picker_firstIcon Click 标签前图标点击事件
bind:list_picker_lastIcon Click 标签后图标点击事件

其他说明

无