Skip to content

Commit 747d549

Browse files
committed
feat: update tree-select
1 parent 10b9189 commit 747d549

File tree

27 files changed

+386
-195
lines changed

27 files changed

+386
-195
lines changed

build/config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module.exports = {
22
dev: {
3-
componentName: 'upload', // dev components
3+
componentName: 'tree-select', // dev components
44
},
55
};
Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

3-
exports[`renders ./components/tree-select/demo/basic.md correctly 1`] = `<span role="combobox" aria-haspopup="listbox" tabindex="0" class="ant-select ant-select-enabled ant-select-allow-clear" style="width: 300px;"><span class="ant-select-selection ant-select-selection--single"><span class="ant-select-selection__rendered"><span class="ant-select-selection__placeholder">Please select</span></span><span class="ant-select-arrow" style="outline: none;"><i aria-label="icon: down" class="ant-select-arrow-icon anticon anticon-down"><svg viewBox="64 64 896 896" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></i></span></span></span>`;
3+
exports[`renders ./components/tree-select/demo/async.md correctly 1`] = `<span role="combobox" aria-haspopup="listbox" tabindex="0" class="ant-select ant-select-enabled" style="width: 100%;"><span class="ant-select-selection ant-select-selection--single"><span class="ant-select-selection__rendered"><span class="ant-select-selection__placeholder">Please select</span></span><span class="ant-select-arrow" style="outline: none;"><i aria-label="icon: down" class="ant-select-arrow-icon anticon anticon-down"><svg viewBox="64 64 896 896" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></i></span></span></span>`;
4+
5+
exports[`renders ./components/tree-select/demo/basic.md correctly 1`] = `<span role="combobox" aria-haspopup="listbox" tabindex="0" class="ant-select ant-select-enabled ant-select-allow-clear" style="width: 100%;"><span class="ant-select-selection ant-select-selection--single"><span class="ant-select-selection__rendered"><span class="ant-select-selection__placeholder">Please select</span></span><span class="ant-select-arrow" style="outline: none;"><i aria-label="icon: down" class="ant-select-arrow-icon anticon anticon-down"><svg viewBox="64 64 896 896" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></i></span></span></span>`;
46

57
exports[`renders ./components/tree-select/demo/checkable.md correctly 1`] = `
6-
<span role="combobox" aria-haspopup="listbox" tabindex="-1" class="ant-select ant-select-enabled" style="width: 300px;"><span class="ant-select-selection ant-select-selection--multiple"><div class="ant-select-selection__rendered"><li unselectable="unselectable" role="menuitem" title="Node1" class="ant-select-selection__choice" style="user-select: none;"><span class="ant-select-selection__choice__remove"><i aria-label="icon: close" class="ant-select-remove-icon anticon anticon-close"><svg viewBox="64 64 896 896" data-icon="close" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"></path></svg></i></span><span class="ant-select-selection__choice__content">Node1</span></li>
8+
<span role="combobox" aria-haspopup="listbox" tabindex="-1" class="ant-select ant-select-enabled" style="width: 100%;"><span class="ant-select-selection ant-select-selection--multiple"><div class="ant-select-selection__rendered"><li unselectable="unselectable" role="menuitem" title="Node1" class="ant-select-selection__choice" style="user-select: none;"><span class="ant-select-selection__choice__remove"><i aria-label="icon: close" class="ant-select-remove-icon anticon anticon-close"><svg viewBox="64 64 896 896" data-icon="close" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"></path></svg></i></span><span class="ant-select-selection__choice__content">Node1</span></li>
79
<li class="ant-select-search ant-select-search--inline"><span class="ant-select-search__field__wrap"><input type="text" aria-label="filter select" aria-autocomplete="list" aria-multiline="false" class="ant-select-search__field" style="width: 0px;"><span class="ant-select-search__field__mirror">&nbsp;</span></span></li>
810
</div>
911
</span></span>
1012
`;
1113

1214
exports[`renders ./components/tree-select/demo/multiple.md correctly 1`] = `
13-
<span role="combobox" aria-haspopup="listbox" tabindex="-1" class="ant-select ant-select-enabled ant-select-allow-clear" style="width: 300px;"><span class="ant-select-selection ant-select-selection--multiple"><div class="ant-select-selection__rendered"><li class="ant-select-search ant-select-search--inline"><span class="ant-select-search__field__wrap"><input type="text" aria-label="filter select" aria-autocomplete="list" aria-multiline="false" class="ant-select-search__field" style="width: 0px;"><span class="ant-select-search__field__mirror">&nbsp;</span></span></li>
15+
<span role="combobox" aria-haspopup="listbox" tabindex="-1" class="ant-select ant-select-enabled ant-select-allow-clear" style="width: 100%;"><span class="ant-select-selection ant-select-selection--multiple"><div class="ant-select-selection__rendered"><li class="ant-select-search ant-select-search--inline"><span class="ant-select-search__field__wrap"><input type="text" aria-label="filter select" aria-autocomplete="list" aria-multiline="false" class="ant-select-search__field" style="width: 0px;"><span class="ant-select-search__field__mirror">&nbsp;</span></span></li>
1416
</div><span class="ant-select-search__field__placeholder" style="display: block;">Please select</span></span></span>
1517
`;
1618
17-
exports[`renders ./components/tree-select/demo/suffix.md correctly 1`] = `<span role="combobox" aria-haspopup="listbox" tabindex="0" class="ant-select ant-select-enabled ant-select-allow-clear" style="width: 300px;"><span class="ant-select-selection ant-select-selection--single"><span class="ant-select-selection__rendered"><span class="ant-select-selection__placeholder">Please select</span></span><span class="ant-select-arrow" style="outline: none;"><i slot="suffixIcon" aria-label="icon: smile" class="anticon anticon-smile"><svg viewBox="64 64 896 896" data-icon="smile" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 533h-48.1c-4.2 0-7.8 3.2-8.1 7.4C604 589.9 562.5 629 512 629s-92.1-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4z"></path></svg></i></span></span></span>`;
19+
exports[`renders ./components/tree-select/demo/suffix.md correctly 1`] = `<span role="combobox" aria-haspopup="listbox" tabindex="0" class="ant-select ant-select-enabled ant-select-allow-clear" style="width: 100%;"><span class="ant-select-selection ant-select-selection--single"><span class="ant-select-selection__rendered"><span class="ant-select-selection__placeholder">Please select</span></span><span class="ant-select-arrow" style="outline: none;"><i slot="suffixIcon" aria-label="icon: smile" class="anticon anticon-smile"><svg viewBox="64 64 896 896" data-icon="smile" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 533h-48.1c-4.2 0-7.8 3.2-8.1 7.4C604 589.9 562.5 629 512 629s-92.1-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4z"></path></svg></i></span></span></span>`;
1820
19-
exports[`renders ./components/tree-select/demo/treeData.md correctly 1`] = `<span role="combobox" aria-haspopup="listbox" tabindex="0" class="ant-select ant-select-enabled" style="width: 300px;"><span class="ant-select-selection ant-select-selection--single"><span class="ant-select-selection__rendered"><span class="ant-select-selection__placeholder">Please select</span></span><span class="ant-select-arrow" style="outline: none;"><i aria-label="icon: down" class="ant-select-arrow-icon anticon anticon-down"><svg viewBox="64 64 896 896" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></i></span></span></span>`;
21+
exports[`renders ./components/tree-select/demo/treeData.md correctly 1`] = `<span role="combobox" aria-haspopup="listbox" tabindex="0" class="ant-select ant-select-enabled" style="width: 100%;"><span class="ant-select-selection ant-select-selection--single"><span class="ant-select-selection__rendered"><span class="ant-select-selection__placeholder">Please select</span></span><span class="ant-select-arrow" style="outline: none;"><i aria-label="icon: down" class="ant-select-arrow-icon anticon anticon-down"><svg viewBox="64 64 896 896" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></i></span></span></span>`;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import TreeSelect from '..';
22
import focusTest from '../../../tests/shared/focusTest';
3+
import mountTest from '../../../tests/shared/mountTest';
34

45
describe('TreeSelect', () => {
56
focusTest(TreeSelect);
7+
mountTest(TreeSelect);
68
});

components/tree-select/demo/async.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<cn>
2+
#### 异步加载
3+
异步加载树节点。
4+
</cn>
5+
6+
<us>
7+
#### Asynchronous loading
8+
Asynchronous loading tree node.
9+
</us>
10+
11+
```tpl
12+
<template>
13+
<a-tree-select
14+
treeDataSimpleMode
15+
style="width: 100%"
16+
:dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
17+
:treeData="treeData"
18+
placeholder="Please select"
19+
:loadData="onLoadData"
20+
v-model="value"
21+
/>
22+
</template>
23+
24+
<script>
25+
export default {
26+
data() {
27+
return {
28+
value: undefined,
29+
treeData: [
30+
{ id: 1, pId: 0, value: '1', title: 'Expand to load' },
31+
{ id: 2, pId: 0, value: '2', title: 'Expand to load' },
32+
{ id: 3, pId: 0, value: '3', title: 'Tree Node', isLeaf: true },
33+
],
34+
};
35+
},
36+
methods: {
37+
genTreeNode(parentId, isLeaf = false) {
38+
const random = Math.random()
39+
.toString(36)
40+
.substring(2, 6);
41+
return {
42+
id: random,
43+
pId: parentId,
44+
value: random,
45+
title: isLeaf ? 'Tree Node' : 'Expand to load',
46+
isLeaf,
47+
};
48+
},
49+
onLoadData(treeNode) {
50+
return new Promise(resolve => {
51+
const { id } = treeNode.dataRef;
52+
setTimeout(() => {
53+
this.treeData = this.treeData.concat([
54+
this.genTreeNode(id, false),
55+
this.genTreeNode(id, true),
56+
]);
57+
resolve();
58+
}, 300);
59+
});
60+
},
61+
},
62+
watch: {
63+
value(value) {
64+
console.log(value);
65+
},
66+
},
67+
};
68+
</script>
69+
```

components/tree-select/demo/basic.md

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,12 @@ The most basic usage.
1212
<template>
1313
<a-tree-select
1414
showSearch
15-
style="width: 300px"
16-
:value="value"
15+
style="width: 100%"
16+
v-model="value"
1717
:dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
1818
placeholder="Please select"
1919
allowClear
2020
treeDefaultExpandAll
21-
@change="onChange"
2221
>
2322
<a-tree-select-node value="parent 1" title="parent 1" key="0-1">
2423
<a-tree-select-node value="parent 1-0" title="parent 1-0" key="0-1-1">
@@ -42,12 +41,6 @@ The most basic usage.
4241
value: undefined,
4342
};
4443
},
45-
methods: {
46-
onChange(value) {
47-
console.log(value);
48-
this.value = value;
49-
},
50-
},
5144
};
5245
</script>
5346
```

components/tree-select/demo/checkable.md

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ Multiple and checkable.
1111
```tpl
1212
<template>
1313
<a-tree-select
14-
style="width: 300px"
14+
style="width: 100%"
1515
:treeData="treeData"
16-
:value="value"
17-
@change="onChange"
16+
v-model="value"
1817
treeCheckable
1918
:showCheckedStrategy="SHOW_PARENT"
2019
searchPlaceholder="Please select"
@@ -70,12 +69,6 @@ Multiple and checkable.
7069
SHOW_PARENT,
7170
};
7271
},
73-
methods: {
74-
onChange(value) {
75-
console.log('onChange ', value);
76-
this.value = value;
77-
},
78-
},
7972
};
8073
</script>
8174
```

components/tree-select/demo/index.vue

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import Checkable from './checkable';
44
import Multiple from './multiple';
55
import TreeData from './treeData';
66
import Suffix from './suffix';
7+
import Async from './async';
78
89
import CN from '../index.zh-CN.md';
910
import US from '../index.en-US.md';
@@ -28,15 +29,32 @@ export default {
2829
subtitle: '树选择',
2930
type: 'Data Entry',
3031
title: 'TreeSelect',
32+
data() {
33+
return {
34+
show: true,
35+
};
36+
},
3137
render() {
3238
return (
3339
<div>
40+
<button
41+
onClick={() => {
42+
this.show = !this.show;
43+
}}
44+
>
45+
show
46+
</button>
3447
<md cn={md.cn} us={md.us} />
35-
<Basic />
36-
<Checkable />
37-
<Multiple />
38-
<TreeData />
39-
<Suffix />
48+
{this.show ? (
49+
<div>
50+
<Basic />
51+
<Checkable />
52+
<Multiple />
53+
<TreeData />
54+
<Suffix />
55+
<Async />
56+
</div>
57+
) : null}
4058
<api>
4159
<template slot="cn">
4260
<CN />

components/tree-select/demo/multiple.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Multiple selection usage.
1212
<template>
1313
<a-tree-select
1414
showSearch
15-
style="width: 300px"
15+
style="width: 100%"
1616
:value="value"
1717
:dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
1818
placeholder="Please select"

components/tree-select/demo/suffix.md

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,12 @@ The most basic usage.
1212
<template>
1313
<a-tree-select
1414
showSearch
15-
style="width: 300px"
16-
:value="value"
15+
style="width: 100%"
16+
v-model="value"
1717
:dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
1818
placeholder="Please select"
1919
allowClear
2020
treeDefaultExpandAll
21-
@change="onChange"
2221
>
2322
<a-icon slot="suffixIcon" type="smile" />
2423
<a-tree-select-node value="parent 1" title="parent 1" key="0-1">
@@ -42,12 +41,6 @@ The most basic usage.
4241
value: undefined,
4342
};
4443
},
45-
methods: {
46-
onChange(value) {
47-
console.log(value);
48-
this.value = value;
49-
},
50-
},
5144
};
5245
</script>
5346
```

components/tree-select/demo/treeData.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ The tree structure can be populated using `treeData` property. This is a quick a
1111
```tpl
1212
<template>
1313
<a-tree-select
14-
style="width: 300px"
14+
style="width: 100%"
1515
:dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
1616
:treeData="treeData"
1717
placeholder="Please select"

0 commit comments

Comments
 (0)