Skip to content

Commit 7f0d310

Browse files
author
Daniel
authored
Merge pull request #143 from leezng/dev
2 parents c4a374d + 8ab97d6 commit 7f0d310

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ plugins: [
112112
| ------------------------ | ------ | --------------------------------------------------------------------------------------- | ---------------------------------------------- | -------- |
113113
| data | normal | JSON data | JSON object | - |
114114
| deep | normal | Data depth, data larger than this depth will not be expanded | number | Infinity |
115+
| deepCollapseChildren | normal | Whether children collapsed by `deep` prop should also be collapsed | boolean | false |
115116
| showLength | normal | Whether to show the length when closed | boolean | false |
116117
| showLine | normal | Whether to show the line | boolean | true |
117118
| showDoubleQuotes | normal | Whether to show doublequotes on key | boolean | true |

example/Basic.vue

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,18 @@
3434
<option :value="4">4</option>
3535
</select>
3636
</div>
37+
<div>
38+
<label>deepCollapseChildren</label>
39+
<input v-model="deepCollapseChildren" type="checkbox" />
40+
</div>
3741
</div>
3842
</div>
3943
<div class="block">
4044
<h3>vue-json-pretty:</h3>
4145
<vue-json-pretty
4246
:data="state.data"
4347
:deep="state.deep"
48+
:deepCollapseChildren="deepCollapseChildren"
4449
:show-double-quotes="state.showDoubleQuotes"
4550
:show-length="state.showLength"
4651
:show-line="state.showLine"
@@ -96,6 +101,7 @@ export default defineComponent({
96101
collapsedOnClickBrackets: true,
97102
useCustomLinkFormatter: false,
98103
deep: 3,
104+
deepCollapseChildren: false,
99105
});
100106
101107
const customLinkFormatter = (data, key, path, defaultFormatted) => {

src/components/Tree/index.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ export default defineComponent({
2020
type: Number,
2121
default: Infinity,
2222
},
23+
deepCollapseChildren: {
24+
type: Boolean,
25+
default: false,
26+
},
2327
// Data root path.
2428
path: {
2529
type: String,
@@ -57,9 +61,12 @@ export default defineComponent({
5761
translateY: 0,
5862
visibleData: null as FlatDataType | null,
5963
hiddenPaths: jsonFlatten(props.data, props.path).reduce((acc, item) => {
64+
const depthComparison = this.deepCollapseChildren
65+
? item.level >= this.deep
66+
: item.level === this.deep;
6067
if (
6168
(item.type === 'objectStart' || item.type === 'arrayStart') &&
62-
item.level === props.deep
69+
depthComparison
6370
) {
6471
return {
6572
...acc,

0 commit comments

Comments
 (0)