跳到主要内容

选择器 Picker

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

安装使用​

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

用法示例​

备注

options 字段数据结构:PickerAcronymColumn 或 PickerColomn

单列数据​

简易属性模式:

<template>
<TiPicker :options="options" :value="value" @confirm="onConfirm" />
</template>

<script lang="ts" setup>
import { TiPicker, TiPickerColumn } from '@titian-design/mobile-vue';

const options = ['选项一', '选项二', '选项三', '选项四', '选项五'];
const value = ['选项二'];
const onConfirm = (event) => {
console.log('onConfirm', event.detail)
}
</script>

完整属性模式:

<template>
<TiPicker :options="options" :value="value" @confirm="onConfirm" />
</template>

<script lang="ts" setup>
import { TiPicker, TiPickerColumn } from '@titian-design/mobile-vue';

const options = {
colAlias: 'a',
column: ['选项一', '选项二', '选项三', '选项四', '选项五'],
};
const value = [
{ colAlias: 'a', value: '选项二' },
];
const onConfirm = (event) => {
console.log('onConfirm', event.detail)
}
</script>

多列数据​

简易属性模式:

<template>
<TiPicker :options="options" :value="value" @confirm="onConfirm" />
</template>

<script lang="ts" setup>
import { TiPicker, TiPickerColumn } from '@titian-design/mobile-vue';

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

const value = ['选项二', '选项三'];
const onConfirm = (event) => {
console.log('onConfirm', event.detail)
}
</script>

完整属性模式:

<template>
<TiPicker :options="options" :value="value" @confirm="onConfirm" />
</template>

<script lang="ts" setup>
import { TiPicker, TiPickerColumn } from '@titian-design/mobile-vue';

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

const value = [
{ colAlias: 'a', value: '选项二' },
{ colAlias: 'b', value: '选项三' },
];
const onConfirm = (event) => {
console.log('onConfirm', event.detail)
}
</script>

有禁用项​

<template>
<TiPicker :options="options" :value="value" @confirm="onConfirm" />
</template>

<script lang="ts" setup>
import { TiPicker, TiPickerColumn } from '@titian-design/mobile-vue';

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

const value = ['选项二'];
const onConfirm = (event) => {
console.log('onConfirm', event.detail)
}
</script>

级联数据​

<template>
<TiPicker :options="options" :value="value" @confirm="onConfirm" />
</template>

<script lang="ts" setup>
import { TiPicker, TiPickerColumn } from '@titian-design/mobile-vue';

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'];
const onConfirm = (event) => {
console.log('onConfirm', event.detail)
}
</script>

TiPicker API​

属性 Properties​

名称类型必填默认值说明备注
optionsPickerColumn[] | PickerColumn[][] | PickerAcronymColumn[] | PickerAcronymColumn[][]否[]列数据;可以使用该字段实现 PickerColumn 列表, 替换使用 <TiPickerColumn /> 元素。-
value否--
row-aliasnull | number | string否null当 option 为对象类型时,指定其中某个字段,作为返回值字段;不填则从0自增
use-row-indexboolean否false是否使用下标
sportsboolean否false跳转指定位置是否带有动画-
cascadeboolean否false级联-
labelstring否'label'当 option 为对象类型时,设置某个字段作为展示字段-
visible-item-countnumber否展示项数-
loadingboolean否false是否展示加载中-
option-item-heightstring | number否108px单项高度,单位px-
titlebarboolean否true是否使用 TiPopupTitlebar 组件-
titlestring否''标题文案,透传给 TiPopupTitlebar
sub-titlestring否''副标题文案,透传给 TiPopupTitlebar
confirm-textstring否确定确认按钮文案,透传给 TiPopupTitlebar
cancel-textstring否取消取消按钮文案,透传给 TiPopupTitlebar
ext-stylestring否''容器样式-
ext-option-stylestring否''子器样式-

Options 字段类型说明​

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

事件 Events​

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

插槽 Slots​

名称说明备注
defaultpicker-column—

外部样式类 External Classes​

名称说明备注
ext-hairline-class中间线样式-
ext-mask-class蒙层样式-
ext-option-class纵列容器样式-
ext-option-item-class纵列单项样式-
ext-class容器样式-

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​

名称类型必填默认值说明备注
col-aliasstring | number否nullPickerColumn 的别名; 多列时有用-
row-aliasstring否''当 option 为对象类型时,指定其中某个字段的值,作为返回值中的 value-
valuestring | number否null默认选中项-
columnsstring[] | number[] | object[]否[]列数据-
sportsboolean否falsecolumns 或者 value 发生变化时候是否展示动画-
labelstring否label当 option 为对象类型时,指定其中某个字段的值,作为展示文案-
use-row-indexboolean否false是否使用下标-
ext-stylestring否''容器样式-

事件 Events​

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

外部样式类 External Classes​

名称说明备注
ext-class容器样式----

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]unknown否label展示文案的字段,与 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-