Skip to content

Commit

Permalink
feat(tree): add no-cascaded prop
Browse files Browse the repository at this point in the history
  • Loading branch information
qmhc committed Jun 18, 2022
1 parent d82a531 commit fa07fdd
Show file tree
Hide file tree
Showing 6 changed files with 125 additions and 10 deletions.
24 changes: 14 additions & 10 deletions components/tree/tree.vue
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,8 @@ export default defineComponent({
onAsyncLoad: Function as PropType<AsyncLoadFn>,
cacheNode: booleanProp,
rootId: [String, Number],
keyConfig: Object as PropType<NodeKeyConfig>
keyConfig: Object as PropType<NodeKeyConfig>,
noCascaded: booleanProp
},
emits: [
'node-change',
Expand Down Expand Up @@ -163,7 +164,8 @@ export default defineComponent({
},
cacheNode: false,
rootId: null,
keyConfig: () => ({})
keyConfig: () => ({}),
noCascaded: false
})
const prefix = 'vxp-tree'
Expand Down Expand Up @@ -470,16 +472,18 @@ export default defineComponent({
}
function computeCheckedState(originNode: TreeNodeProps, able: boolean) {
const nodeList = [originNode].concat(
// 需要包含被禁用且被勾选的节点
flatData.value.filter(item => item.disabled && item.checked)
)
if (!props.noCascaded) {
const nodeList = [originNode].concat(
// 需要包含被禁用且被勾选的节点
flatData.value.filter(item => item.disabled && item.checked)
)
for (let i = 0, len = nodeList.length; i < len; ++i) {
const item = nodeList[i]
for (let i = 0, len = nodeList.length; i < len; ++i) {
const item = nodeList[i]
updateCheckedUpward(item)
updateCheckedDown(item)
updateCheckedUpward(item)
updateCheckedDown(item)
}
}
emit('node-change', originNode.data, originNode, able)
Expand Down
1 change: 1 addition & 0 deletions docs/demos/tree/demos-meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"basis",
"checkbox",
"suffix-checkbox",
"no-cascaded",
"drag",
"slot"
]
52 changes: 52 additions & 0 deletions docs/demos/tree/no-cascaded/demo.en-US.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<template>
<Tree checkbox no-cascaded :data="data"></Tree>
</template>

<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({
setup() {
return {
data: [
{
id: 1,
label: '动物',
parent: 0,
expanded: true
},
{
id: 2,
label: '鸟类',
parent: 5
},
{
id: 3,
label: '无脊椎动物',
parent: 1
},
{
id: 4,
label: '哺乳动物',
parent: 5
},
{
id: 5,
label: '脊椎动物',
parent: 1
},
{
id: 6,
label: '喜鹊',
parent: 2
},
{
id: 7,
label: '蚯蚓',
parent: 3
}
]
}
}
})
</script>
52 changes: 52 additions & 0 deletions docs/demos/tree/no-cascaded/demo.zh-CN.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<template>
<Tree checkbox no-cascaded :data="data"></Tree>
</template>

<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({
setup() {
return {
data: [
{
id: 1,
label: '动物',
parent: 0,
expanded: true
},
{
id: 2,
label: '鸟类',
parent: 5
},
{
id: 3,
label: '无脊椎动物',
parent: 1
},
{
id: 4,
label: '哺乳动物',
parent: 5
},
{
id: 5,
label: '脊椎动物',
parent: 1
},
{
id: 6,
label: '喜鹊',
parent: 2
},
{
id: 7,
label: '蚯蚓',
parent: 3
}
]
}
}
})
</script>
3 changes: 3 additions & 0 deletions docs/demos/tree/no-cascaded/desc.en-US.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### No Cascaded Nodes

添加 `no-cascaded` 属性可以使父子节点能被独立勾选。
3 changes: 3 additions & 0 deletions docs/demos/tree/no-cascaded/desc.zh-CN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### 非关联节点

添加 `no-cascaded` 属性可以使父子节点能被独立勾选。

0 comments on commit fa07fdd

Please sign in to comment.