跳到主要内容

选择器 Picker

选择器,提供单列、双列、级联能力。

安装使用

import { TiPicker, TiPickerItem } from '@titian-design/mobile-react';

用法示例

单列数据

options 字段数据结构:PickerAcronymColumnPickerColomn

简易属性模式:

const App: React.FC = () => {

const options = ['选项一', '选项二', '选项三', '选项四', '选项五'];
const value = ['选项二'];

return (
<TiPicker options={ options } value={ value } onConfirm={onConfirm} />
);
}

完整属性模式:

const App: React.FC = () => {

const options = {
colAlias: 'a',
column: ['选项一', '选项二', '选项三', '选项四', '选项五'],
};
const value = [
{ colAlias: 'a', value: '选项二' },
];

return (
<TiPicker options={ options } value={ value } onConfirm={onConfirm} />
);
}

多列数据

options 字段数据结构: PickerAcronymColumnPickerColomn

简易属性模式:

const App: React.FC = () => {

const options = [
['选项一', '选项二', '选项三', '选项四', '选项五'],
['选项一', '选项二', '选项三', '选项四', '选项五']
];

const value = ['选项二', '选项三']

return (
<TiPicker options={ options } value={ value } onConfirm={onConfirm} />
);
}

完整属性模式:

const App: React.FC = () => {

const options = [
{
colAlias: 'a',
column: ['选项一', '选项二', '选项三', '选项四', '选项五'],
},
{
colAlias: 'b',
column: ['选项一', '选项二', '选项三', '选项四', '选项五'],
},
];

const value = [
{ colAlias: 'a', value: '选项二' },
{ colAlias: 'b', value: '选项三' },
];

return (
<TiPicker options={ options } value={ value } onConfirm={onConfirm} />
);
}

有禁用项

options 字段数据结构: PickerAcronymColumnPickerColomn

const App: React.FC = () => {

const options = [
{ text: '选项一', disabled: true },
{ text: '选项二' },
{ text: '选项三', disabled: true },
{ text: '选项四' },
{ text: '选项五', disabled: true },
{ text: '选项六' },
];

const value = ['选项二'];

return (
<TiPicker options={ options } value={ value } onConfirm={onConfirm} />
);
}

级联数据

options 字段数据结构: PickerAcronymColumnPickerColomn

const App: React.FC = () => {

const options = [
{
code: '310000',
name: '上海市',
children: [
{
code: '310100',
name: '直辖市',
children: [
{
code: '310101',
name: '黄浦区',
},
],
},
],
},
{
code: '330000',
name: '浙江省',
children: [
{
code: '330100',
name: '杭州市',
children: [
{
code: '330102',
name: '上城区',
},
{
code: '330105',
name: '拱墅区',
},
],
},
],
},
];

const value = ['330105'];

return (
<TiPicker label={'name'} rowAlias={'code'} options={ options } onConfirm={onConfirm} />
);
}

TiPicker API

属性 Properties

名称类型必填默认值说明备注
optionsPickerColumn[] | PickerColumn[][] | PickerAcronymColumn[] | PickerAcronymColumn[][][]列数据;可以使用该字段实现 PickerColumn 列表, 替换使用 <TiPickerColumn /> 元素。-
value--
rowAliasnull | number | stringnull当 option 为对象类型时,指定其中某个字段,作为 value 字段;不填则从0自增;
useRowIndexbooleanfalse是否使用下标
sportsbooleanfalse跳转指定位置是否带有动画-
cascadebooleanfalse级联-
labelstring'label'当 option 为对象类型时,设置某个字段作为展示字段-
visibleItemCountnumber展示项数-
loadingbooleanfalse是否展示加载中-
optionItemHeightstring | number108px单项高度,单位px-
titlebarbooleantrue是否使用 TiPopupTitlebar 组件-
titlestring''标题文案,透传给 TiPopupTitlebar
subTitlestring''副标题文案,透传给 TiPopupTitlebar
confirmTextstring确定确认按钮文案,透传给 TiPopupTitlebar
cancelTextstring取消取消按钮文案,透传给 TiPopupTitlebar
extStylestring''容器样式-
extOptionStylestring''子器样式-

Options 字段类型说明

值类型说明备注
PickerColumn[]完整列,单列数组
PickerColumn[][]完整列,双列数组
PickerAcronymColumn[]简易列,单列数组
PickerAcronymColumn[][]简易列,双列数组

事件 Events

名称参数说明备注
onChangechange | select 事件返回值当前选中项-
onReachTopreachTop/reachBottom事件返回值运动到顶-
onReachBottomreachTop/reachBottom事件返回值运动到底-
onConfirmconfirm/cancel事件返回值titleBar 的确认操作titlebar:true
onCancelconfirm/cancel事件返回值titleBar 的取消操作titlebar:true

插槽 Slots

名称说明备注
defaultpicker-column

外部样式类 External Classes

名称说明备注
extHairlineClass中间线样式-
extMaskClass蒙层样式-
extOptionClass纵列容器样式-
extOptionItemClass纵列单项样式-
extClass容器样式-

CSS 变量 CSS Variables

变量默认值说明
--picker-mask-bg-imagelinear-gradient(180deg, rgba(255, 255, 255, 90%), rgba(255, 255, 255, 40%))蒙层区背景色
--picker-loading-bg-colorvar(--neutral-color-9, #ffffff)loading 区背景色
--picker-row-colorvar(--neutral-color-1, #212121)picker-column 组件 --picker-column-row-color
--picker-row-selected-colorvar(--neutral-color-1, #212121)picker-column 组件 --picker-column-row-selected-color
--picker-row-disabled-colorvar(--neutral-color-1, #212121)picker-column 组件 --picker-column-row-disabled-color

TiPickerColumn API

属性 Properties

名称类型必填默认值说明备注
colAliasstring | numbernullPickerColumn 的别名; 多列时有用-
rowAliasstring''当 option 为对象类型时,指定其中某个字段的值,作为返回值中的 value-
valuestring | numbernull默认选中项-
columnsstring[] | number[] | object[][]列数据-
sportsbooleanfalsecolumns 或者 value 发生变化时候是否展示动画-
labelstringlabel当 option 为对象类型时,指定其中某个字段的值,作为展示文案-
useRowIndexbooleanfalse是否使用下标-
extStylestring''容器样式-

事件 Events

名称参数说明备注
selectchange | select 事件返回值当前选中项-
reachTopreachTop/reachBottom事件返回值运动到顶时触发-
reachBottomreachTop/reachBottom事件返回值运动到底时触发-

外部样式类 External Classes

名称说明备注
extClass容器样式----

CSS 变量 CSS Variables

变量默认值说明
--picker-column-row-colorvar(--picker-row-color, var(--neutral-color-1, #212121))文字颜色
--picker-column--row-selected-colorvar(--picker-column-row-selected-color, @picker-row-selected-color)选中文字颜色
--picker-column--row-disabled-colorvar(--picker-column-row-disabled-color, @picker-row-disabled-color)禁用文字颜色

数据结构 Data Structure

列数据结构 PickerColumn

字段类型必填默认值说明
colAliasstring | number | symbol类型列别名,不填则从0自增
columnPickerAcronymColumn[]类型列数据
idstring默认值id
isTreeboolean默认值是否为树形结构
childrenundefined默认值子数据
columnIdstring默认值唯一id
[key: string]unknownlabel展示文案的字段,与 label 字段的值对应

简易模式 / 列数据结构 PickerAcronymColumn

简易模式下,传入的字段同时作为每一项的 key 和 value。

type PickerAcronymColumn = string | { [key: string]: unknown, disabled?: boolean };

change | select 事件返回值

字段类型说明备注
valueunknow类型-
optionsundefined集合
colIndexstring | number列索引
colAliasstring列别名
rowIndexstring | number行索引
rowAliasboolean行别名

reachTop | reachBottom 事件返回值

字段类型说明备注
colIndexstring | number列索引-
rowIndexstring | number行索引-
colAliasstring列别名-

confirm | cancel 事件返回值

字段类型说明备注
valuePickerAcronymColumn | PickerAcronymColumn[] | PickerColumn | PickerColumn[]返回 value 字段-
optionsPickerAcronymColumn | PickerAcronymColumn[] | PickerColumn | PickerColumn[]返回选中的整个 option-