Skip to content

Commit 277bc33

Browse files
committed
feat: support indent
1 parent 442b013 commit 277bc33

File tree

4 files changed

+18
-4
lines changed

4 files changed

+18
-4
lines changed

example/Basic.vue

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,13 @@
3434
<label>collapsedOnClickBrackets</label>
3535
<input v-model="state.collapsedOnClickBrackets" type="checkbox" />
3636
</div>
37+
<div>
38+
<label>indent</label>
39+
<select v-model="state.indent">
40+
<option :value="2">2</option>
41+
<option :value="4">4</option>
42+
</select>
43+
</div>
3744
<div>
3845
<label>deep</label>
3946
<select v-model="state.deep">
@@ -73,6 +80,7 @@
7380
:theme="localDarkMode"
7481
:data="state.data"
7582
:deep="state.deep"
83+
:indent="state.indent"
7684
:path-collapsible="state.setPathCollapsible ? pathCollapsible : undefined"
7785
:show-double-quotes="state.showDoubleQuotes"
7886
:show-length="state.showLength"
@@ -150,6 +158,7 @@ export default defineComponent({
150158
collapsedOnClickBrackets: true,
151159
useRenderNodeKeySlot: false,
152160
useRenderNodeValueSlot: false,
161+
indent: 2,
153162
deep: 4,
154163
setPathCollapsible: false,
155164
showIcon: false,

src/components/Tree/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
CSSProperties,
1010
} from 'vue';
1111
import TreeNode, { treeNodePropsPass, NodeDataType } from 'src/components/TreeNode';
12-
import { emitError, jsonFlatten, JSONDataType, cloneDeep } from 'src/utils';
12+
import { emitError, jsonFlatten, cloneDeep } from 'src/utils';
1313
import './styles.less';
1414

1515
export default defineComponent({
@@ -280,6 +280,7 @@ export default defineComponent({
280280
key={item.id}
281281
data={props.data}
282282
rootPath={props.rootPath}
283+
indent={props.indent}
283284
node={item}
284285
collapsed={!!state.hiddenPaths[item.path]}
285286
theme={props.theme}

src/components/TreeNode/index.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ export const treeNodePropsPass = {
2222
type: String,
2323
default: 'root',
2424
},
25+
indent: {
26+
type: Number,
27+
default: 2,
28+
},
2529
// Whether to display the length of (array|object).
2630
showLength: {
2731
type: Boolean,
@@ -272,7 +276,9 @@ export default defineComponent({
272276
'vjs-indent-unit': true,
273277
'has-line': props.showLine,
274278
}}
275-
/>
279+
>
280+
{Array.from(Array(props.indent)).map(() => <>&nbsp;</>)}
281+
</div>
276282
))}
277283
{props.showIcon && <Carets nodeType={node.type} onClick={handleIconClick} />}
278284
</div>

src/components/TreeNode/styles.less

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@
3434
}
3535

3636
.@{css-prefix}-indent-unit {
37-
width: 1em;
38-
3937
&.has-line {
4038
border-left: 1px dashed @border-color;
4139
}

0 commit comments

Comments
 (0)