W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
用于從一組相關(guān)聯(lián)的數(shù)據(jù)集合中進(jìn)行選擇。
通過以下方式來全局注冊(cè)組件,更多注冊(cè)方式請(qǐng)參考組件注冊(cè)。
import { createApp } from 'vue';
import { TreeSelect } from 'vant';
const app = createApp();
app.use(TreeSelect);
item 為分類顯示所需的數(shù)據(jù),數(shù)據(jù)格式見下方示例。main-active-index 表示左側(cè)高亮選項(xiàng)的索引,active-id 表示右側(cè)高亮選項(xiàng)的 id。
<van-tree-select
v-model:active-id="state.activeId"
v-model:main-active-index="state.activeIndex"
:items="items"
/>
import { reactive } from 'vue';
export default {
setup() {
const state = reactive({
activeId: 1,
activeIndex: 0,
});
const items = [
{
text: '浙江',
children: [
{ text: '杭州', id: 1 },
{ text: '溫州', id: 2 },
],
},
{
text: '江蘇',
children: [
{ text: '南京', id: 5 },
{ text: '無錫', id: 6 },
],
},
];
return {
state,
items,
};
},
};
active-id 為數(shù)組格式時(shí),可以選中多個(gè)右側(cè)選項(xiàng)。
<van-tree-select
v-model:active-id="state.activeIds"
v-model:main-active-index="state.activeIndex"
:items="items"
/>
import { reactive } from 'vue';
export default {
setup() {
const state = reactive({
activeId: [1, 2],
activeIndex: 0,
});
const items = [
{
text: '浙江',
children: [
{ text: '杭州', id: 1 },
{ text: '溫州', id: 2 },
],
},
{
text: '江蘇',
children: [
{ text: '南京', id: 5 },
{ text: '無錫', id: 6 },
],
},
];
return {
state,
items,
};
},
};
通過 content 插槽可以自定義右側(cè)區(qū)域的內(nèi)容。
<van-tree-select
v-model:main-active-index="activeIndex"
height="55vw"
:items="items"
>
<template #content>
<van-image
v-if="activeIndex === 0"
src="https://img.yzcdn.cn/vant/apple-1.jpg" rel="external nofollow"
/>
<van-image
v-if="activeIndex === 1"
src="https://img.yzcdn.cn/vant/apple-2.jpg" rel="external nofollow"
/>
</template>
</van-tree-select>
import { ref } from 'vue';
export default {
setup() {
const activeIndex = ref(0);
return {
activeIndex,
items: [{ text: '分組 1' }, { text: '分組 2' }],
};
},
};
設(shè)置 dot 屬性后,會(huì)在圖標(biāo)右上角展示一個(gè)小紅點(diǎn);設(shè)置 badge 屬性后,會(huì)在圖標(biāo)右上角展示相應(yīng)的徽標(biāo)。
<van-tree-select
v-model:main-active-index="activeIndex"
height="55vw"
:items="items"
/>
import { ref } from 'vue';
export default {
setup() {
const activeIndex = ref(0);
return {
activeIndex,
items: [
{ text: '浙江', children: [], dot: true },
{ text: '江蘇', children: [], badge: 5 },
],
};
},
};
參數(shù) | 說明 | 類型 | 默認(rèn)值 |
---|---|---|---|
items | 分類顯示所需的數(shù)據(jù) | Item[] | []
|
height | 高度,默認(rèn)單位為px
|
number | string | 300
|
main-active-index | 左側(cè)選中項(xiàng)的索引 | number | string | 0
|
active-id | 右側(cè)選中項(xiàng)的 id,支持傳入數(shù)組 | number | string | (number | string)[] |
0
|
max | 右側(cè)項(xiàng)最大選中個(gè)數(shù) | number | string | Infinity
|
selected-icon | 自定義右側(cè)欄選中狀態(tài)的圖標(biāo) | string | success
|
事件名 | 說明 | 回調(diào)參數(shù) |
---|---|---|
click-nav | 點(diǎn)擊左側(cè)導(dǎo)航時(shí)觸發(fā) | index:被點(diǎn)擊的導(dǎo)航的索引 |
click-item | 點(diǎn)擊右側(cè)選擇項(xiàng)時(shí)觸發(fā) | data: 該點(diǎn)擊項(xiàng)的數(shù)據(jù) |
名稱 | 說明 |
---|---|
content | 自定義右側(cè)區(qū)域內(nèi)容 |
items 整體為一個(gè)數(shù)組,數(shù)組內(nèi)包含一系列描述分類的對(duì)象,每個(gè)分類里,text表示當(dāng)前分類的名稱,children表示分類里的可選項(xiàng)。
[
{
// 導(dǎo)航名稱
text: '所有城市',
// 導(dǎo)航名稱右上角徽標(biāo)
badge: 3,
// 是否在導(dǎo)航名稱右上角顯示小紅點(diǎn)
dot: true,
// 導(dǎo)航節(jié)點(diǎn)額外類名
className: 'my-class',
// 該導(dǎo)航下所有的可選項(xiàng)
children: [
{
// 名稱
text: '溫州',
// id,作為匹配選中狀態(tài)的標(biāo)識(shí)符
id: 1,
// 禁用選項(xiàng)
disabled: true,
},
{
text: '杭州',
id: 2,
},
],
},
];
組件提供了下列 CSS 變量,可用于自定義樣式,使用方法請(qǐng)參考 ConfigProvider 組件。
名稱 | 默認(rèn)值 | 描述 |
---|---|---|
--van-tree-select-font-size | var(--van-font-size-md) | - |
--van-tree-select-nav-background-color | var(--van-background-color) | - |
--van-tree-select-content-background-color | var(--van-white) | - |
--van-tree-select-nav-item-padding | 14px var(--van-padding-sm) | - |
--van-tree-select-item-height | 48px | - |
--van-tree-select-item-active-color | var(--van-danger-color) | - |
--van-tree-select-item-disabled-color | var(--van-gray-5) | - |
--van-tree-select-item-selected-size | 16px | - |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: