# 基本使用
示例
请选择数据...
代码
<template>
<div class="demo">
<fancy-select :tree-data="data" :normalizer="normalizer"></fancy-select>
</div>
</template>
<script>
import { createTree } from "../../../../src/utils";
export default {
data() {
return {
data: createTree(10, 2),
};
},
methods: {
normalizer(node) {
return {
label: node.name,
children: node.children,
};
},
},
};
</script>
# 限制显示选中的个数
示例
请选择数据...
代码
<template>
<div class="demo">
<fancy-select :tree-data="data" :normalizer="normalizer"></fancy-select>
</div>
</template>
<script>
import { createTree } from "../../../../src/utils";
export default {
data() {
return {
data: createTree(10, 2),
};
},
methods: {
normalizer(node) {
return {
label: node.name,
children: node.children,
};
},
},
};
</script>
# 默认展开层级
示例
请选择数据...
代码
<template>
<div class="demo">
<fancy-select :tree-data="data" :normalizer="normalizer" :limit="3" :limit="3"></fancy-select>
</div>
</template>
<script>
import { createTree } from "../../../../src/utils";
export default {
data() {
return {
data: createTree(10, 2),
};
},
methods: {
normalizer(node) {
return {
label: node.name,
children: node.children,
};
},
},
};
</script>
# 选择包含的值
示例
请选择数据...
代码
<template>
<div class="demo">
<fancy-select
:tree-data="data"
:normalizer="normalizer"
:include-value="includeValue"
></fancy-select>
<template>
<div v-for="value in includeValues" style="display:inline-block">
<input
type="radio"
name="includeValue"
:id="value"
:key="value"
v-model="includeValue"
:value="value"
/>
<label :for="value">{{ value }}</label>
</div>
</template>
</div>
</template>
<script>
import { createTree } from "../../../../src/utils";
export default {
data() {
return {
data: createTree(10, 2),
includeValue: "PARENT",
includeValues: ["PARENT", "LEAF", "ALL", "ALL_WITH_INDETERMINATE"],
};
},
methods: {
normalizer(node) {
return {
label: node.name,
children: node.children,
};
},
},
};
</script>
# 异步加载子节点
示例
请选择数据...
代码
<template>
<div class="demo">
<fancy-select
:tree-data="data"
:normalizer="normalizer"
:limit="3"
:loadOptions="loadOption"
></fancy-select>
</div>
</template>
<script>
export default {
data() {
return {
data: [{ id: "1", name: "1", children: null,isParent:true }],
};
},
methods: {
normalizer(node) {
return {
label: node.name,
children: node.children,
};
},
loadOption({ action, parentNode,callback} ) {
if (action === "LOAD_CHILDREN_OPTIONS") {
if (parentNode.id === "1") {
setTimeout(() => {
parentNode.children = [
{ id: "1-1", name: "1-1", children: [] },
{ id: "1-2", name: "1-2", children: [] },
];
callback();
}, 1000);
}
}
},
},
};
</script>
# 一次性加载并展开大量节点
示例
请选择数据...
代码
<template>
<div class="demo">
<fancy-select
:tree-data="data"
:normalizer="normalizer"
:limit="3"
></fancy-select>
</div>
</template>
<script>
import { createTree } from "../../../../src/utils";
export default {
data() {
return {
data: createTree(10, 3),
};
},
methods: {
normalizer(node) {
return {
label: node.name,
children: node.children,
};
},
},
};
</script>
# 双向绑定
示例
请选择数据...
代码
<template>
<div class="demo">
<fancy-select :tree-data="data" :limit="3" v-model="value"></fancy-select>
{{ value }}
</div>
</template>
<script>
import { createTree } from "../../../../src/utils";
export default {
data() {
return {
data: [
{
label: "中国",
id: "1",
children: [
{
label: "上海",
id: "1-1",
},
{
label: "北京",
id: "1-2",
},
{
label: "广东省",
id: "1-3",
children: [
{ label: "广州", id: "1-3-1" },
{ label: "深圳", id: "1-3-2" },
],
},
],
},
],
value: null,
};
},
};
</script>