分类选择 TreeSelect
多组数据选择,内置侧边栏组件
使用
API安装使用
import { TiTreeSelect } from '@titian-design/mobile-vue'
用法示例
基础用法
自定义内容
content-a
自定义数据项别名
基础用法
<template>
<TiTreeSelect :options="options" />
</template>
<script lang="ts" setup>
import { TiTreeSelect } from '@titian-design/mobile-vue';
const options = [
{
label: "侧边导航",
value: "a1",
children: [
{ label: "标题文字", value: "a1-1" },
{ label: "标题文字", value: "a1-2" }
]
}
];
</script>
自定义数据项别名
<template>
<TiTreeSelect :options="options" :alias="alias" />
</template>
<script lang="ts" setup>
import { TiTreeSelect } from '@titian-design/mobile-vue';
const alias = { label: 'name', value: 'id', children: 'list' };
const options = [
{
name: "侧边导航",
id: "a1",
list: [
{ name: "标题文字", id: "a1-1" },
{ name: "标题文字", id: "a1-2" }
]
}
];
</script>
自定义右侧内容部分
<template>
<TiTreeSelect :options="options" @changeNav="onChangeNav" />
{{index === 0 && <div>content-a</div>}}
{{index === 1 && <div>content-b</div>}}
</TiTreeSelect>
</template>
<script lang="ts" setup>
import { TiTreeSelect , ref } from '@titian-design/mobile-vue';
const options = [
{ label: "侧边导航1", value: "a1" },
{ label: "侧边导航2", value: "a2" }
];
var index = ref(0);
const onChangeNav = (e: CustomEvent<{index: number, item: Record<string, any>}>) => {
index = e.detail.index
};
</script>
TiTreeSelect API
属性 Properties
名称 | 类型 | 必填 | 默认值 | 说明 | 备注 |
---|---|---|---|---|---|
options | Array<Option> | 是 | - | 选项数据,Option类型,普通模式需包含 children 字段,自定义模式不需要 children 字段 | - |
default-index | number | 否 | 0 | 左侧选中项的索引 | - |
active-value | array | 否 | - | 右侧选中项的 value,对应option 子项 value 值 | - |
disabled-value | array | 否 | - | 禁用项,option 子项 value 值 | - |
height | number | string | 否 | 100% | 高度 | - |
max-count | number | 否 | - | 最多可选项数 | - |
icon | string | 否 | - | 选项右侧 icon | - |
alias | Record<string, string> | 否 | - | 数据项默认字段名label value children 的别名,用于自定义数据 | - |
ext-style | string | Record<string, string> | 否 | - | 根节点样式 | - |
Option
API 属性中的 options 为一个对象数组,数组中的每一个对象有以下 key:
名称 | 类型 | 必填 | 默认值 | 说明 | 备注 |
---|---|---|---|---|---|
label | string | 是 | - | 展示文字 | - |
value | string | 是 | - | 唯一id | - |
children | Array<{label: string, value: string}> | 否 | - | 右侧内容区域列表数据项,其中value值对应activeValue和disabledValue中的值 | - |
事件 Events
名称 | 参数列表 | 描述 | 备注 |
---|---|---|---|
change-nav | (e: CustomEvent<{index: number, item: Record<string, any>}>) => void | 父选项改变是触发 | - |
change-item | (e: CustomEvent<{activeValue: array, current: Record<string, any>, item: Record<string, any>}>) => void | 子选项改变是触发 | - |
插槽 Slots
名称 | 说明 | 备注 |
---|---|---|
default | 默认插槽 | - |
外部样式类 External Classes
名称 | 说明 | 备注 |
---|---|---|
ext-class | 根节点样式类名 | - |
tree-select-sidebar | 左侧 sidebar 样式类名 | - |
tree-select-container | 右侧容器样式类名 | - |
CSS 变量 CSS Variable
变量 | 默认值 | 说明 | 备注 |
---|---|---|---|
--tree-select-active-color | theme.color.brand.1000 | 右侧默认选项内容选中颜色 | - |
--tree-select-disabled-color | theme.color.gray.texticon.250 | 右侧默认选项内容禁用颜色 | - |