-
+ return () => {
+ return (
+
+
selectToggle()}>
+
+ handleClear(e)} class="devui-tree-select-clear">
+
+
+
+
+
-
-
- )
- }
+
+
+
{renderTree(attributeExtension(treeData))}
+
+
+
+ )
+ }
+ },
})
diff --git a/packages/devui-vue/devui/tree-select/src/utils.ts b/packages/devui-vue/devui/tree-select/src/utils.ts
index 3092da77..30f3136a 100644
--- a/packages/devui-vue/devui/tree-select/src/utils.ts
+++ b/packages/devui-vue/devui/tree-select/src/utils.ts
@@ -1,3 +1,26 @@
+import { TreeData } from '../src/tree-select-types'
+
+export function attributeExtension(data: TreeData): any {
+ data.forEach((el) => {
+ let level = 1
+ el.level = level
+ const nodeQueue = []
+ nodeQueue.push(el)
+ while(nodeQueue.length !== 0) {
+ const node = nodeQueue.shift()
+ if(node.children) {
+ node.children.forEach((el) => {
+ el.level = level + 1
+ el.parent = node
+ nodeQueue.push(el)
+ })
+ }
+ level += 1
+ }
+ })
+ return data
+}
+
/**
* 动态获取class字符串
* @param classStr 是一个字符串,固定的class名
diff --git a/packages/devui-vue/docs/components/tree-select/index.md b/packages/devui-vue/docs/components/tree-select/index.md
index 03a6a904..4e623ddd 100644
--- a/packages/devui-vue/docs/components/tree-select/index.md
+++ b/packages/devui-vue/docs/components/tree-select/index.md
@@ -18,57 +18,36 @@ export default defineComponent({
const value = ref('')
const data = ref([{
label: '一级 1',
- level: 1,
- isOpen: false,
children: [{
label: '二级 1-1',
- level: 2,
- isOpen: false,
children: [{
label: '三级 1-1-1',
- level: 3,
}]
}]
}, {
label: '一级 2',
- level: 1,
- isOpen: false,
children: [{
label: '二级 2-1',
- level: 2,
- isOpen: false,
children: [{
label: '三级 2-1-1',
- level: 3,
}]
}, {
label: '二级 2-2',
- level: 2,
- isOpen: false,
children: [{
label: '三级 2-2-1',
- level: 3,
}]
}]
}, {
label: '一级 3',
- level: 1,
- isOpen: false,
children: [{
label: '二级 3-1',
- level: 2,
- isOpen: false,
children: [{
label: '三级 3-1-1',
- level: 3,
}]
}, {
label: '二级 3-2',
- level: 2,
- isOpen: false,
children: [{
label: '三级 3-2-1',
- level: 3,
}]
}]
}])
@@ -100,57 +79,36 @@ export default defineComponent({
const value = ref('')
const data = ref([{
label: '一级 1',
- level: 1,
- isOpen: false,
children: [{
label: '二级 1-1',
- level: 2,
- isOpen: false,
children: [{
label: '三级 1-1-1',
- level: 3,
}]
}]
}, {
label: '一级 2',
- level: 1,
- isOpen: false,
children: [{
label: '二级 2-1',
- level: 2,
- isOpen: false,
children: [{
label: '三级 2-1-1',
- level: 3,
}]
}, {
label: '二级 2-2',
- level: 2,
- isOpen: false,
children: [{
label: '三级 2-2-1',
- level: 3,
}]
}]
}, {
label: '一级 3',
- level: 1,
- isOpen: false,
children: [{
label: '二级 3-1',
- level: 2,
- isOpen: false,
children: [{
label: '三级 3-1-1',
- level: 3,
}]
}, {
label: '二级 3-2',
- level: 2,
- isOpen: false,
children: [{
label: '三级 3-2-1',
- level: 3,
}]
}]
}])
@@ -182,57 +140,36 @@ export default defineComponent({
const value = ref('')
const data = ref([{
label: '一级 1',
- level: 1,
- isOpen: false,
children: [{
label: '二级 1-1',
- level: 2,
- isOpen: false,
children: [{
label: '三级 1-1-1',
- level: 3,
}]
}]
}, {
label: '一级 2',
- level: 1,
- isOpen: false,
children: [{
label: '二级 2-1',
- level: 2,
- isOpen: false,
children: [{
label: '三级 2-1-1',
- level: 3,
}]
}, {
label: '二级 2-2',
- level: 2,
- isOpen: false,
children: [{
label: '三级 2-2-1',
- level: 3,
}]
}]
}, {
label: '一级 3',
- level: 1,
- isOpen: false,
children: [{
label: '二级 3-1',
- level: 2,
- isOpen: false,
children: [{
label: '三级 3-1-1',
- level: 3,
}]
}, {
label: '二级 3-2',
- level: 2,
- isOpen: false,
children: [{
label: '三级 3-2-1',
- level: 3,
}]
}]
}])
@@ -246,4 +183,126 @@ export default defineComponent({
```
+:::
+
+### 多选
+
+:::demo
+
+```vue
+