Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_41894708
vue-devtools
提交
c7c1053b
V
vue-devtools
项目概览
qq_41894708
/
vue-devtools
与 Fork 源项目一致
从无法访问的项目Fork
通知
17
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vue-devtools
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
c7c1053b
编写于
10月 29, 2019
作者:
G
Guillaume Chau
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(state inspector): limit number of root fields
上级
fe3d96d2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
112 addition
and
32 deletion
+112
-32
packages/app-frontend/src/components/StateFields.vue
packages/app-frontend/src/components/StateFields.vue
+106
-0
packages/app-frontend/src/components/StateInspector.vue
packages/app-frontend/src/components/StateInspector.vue
+6
-32
未找到文件。
packages/app-frontend/src/components/StateFields.vue
0 → 100644
浏览文件 @
c7c1053b
<
template
>
<div
class=
"data-fields"
>
<template
v-if=
"isFieldsArray"
>
<data-field
v-for=
"field in displayedFields"
:key=
"field.key"
:field=
"field"
:depth=
"0"
:path=
"field.key"
:editable=
"field.editable"
:force-collapse=
"forceCollapse"
:is-state-field=
"isStateField(field)"
/>
</
template
>
<
template
v-else
>
<data-field
v-for=
"(value, key) in displayedFields"
:key=
"key"
:field=
"
{ value, key }"
:depth="0"
:path="key"
:editable="false"
/>
</
template
>
<VueButton
v-if=
"fieldsCount > limit"
v-tooltip=
"'Show more'"
icon-left=
"more_horiz"
class=
"icon-button flat more"
@
click=
"showMore()"
/>
</div>
</template>
<
script
>
import
DataField
from
'
./DataField.vue
'
export
default
{
components
:
{
DataField
},
props
:
{
fields
:
{
type
:
[
Array
,
Object
],
required
:
true
},
forceCollapse
:
String
},
data
()
{
return
{
limit
:
20
}
},
computed
:
{
isFieldsArray
()
{
return
Array
.
isArray
(
this
.
fields
)
},
displayedFields
()
{
if
(
this
.
isFieldsArray
)
{
return
this
.
fields
.
slice
(
0
,
this
.
limit
)
}
else
{
return
Object
.
keys
(
this
.
fields
)
.
slice
(
0
,
this
.
limit
)
.
reduce
((
obj
,
key
)
=>
{
obj
[
key
]
=
this
.
fields
[
key
]
return
obj
},
{})
}
},
fieldsCount
()
{
if
(
this
.
isFieldsArray
)
{
return
this
.
fields
.
length
}
else
{
return
Object
.
keys
(
this
.
fields
).
length
}
}
},
methods
:
{
isStateField
(
field
)
{
return
field
&&
field
.
type
===
'
state
'
},
showMore
()
{
this
.
limit
+=
20
}
}
}
</
script
>
<
style
lang=
"stylus"
scoped
>
.more
width 20px
height @width
>>> .vue-ui-icon
width 16px
height @width
</
style
>
packages/app-frontend/src/components/StateInspector.vue
浏览文件 @
c7c1053b
...
...
@@ -23,40 +23,18 @@
/>
<span
class=
"key"
>
{{
toDisplayType
(
dataType
)
}}
</span>
</div>
<
div
<
StateFields
v-show=
"isExpanded(dataType)"
class=
"data-fields"
>
<template
v-if=
"Array.isArray(state[dataType])"
>
<data-field
v-for=
"field in state[dataType]"
:key=
"field.key"
:field=
"field"
:depth=
"0"
:path=
"field.key"
:editable=
"field.editable"
:force-collapse=
"forceCollapse"
:is-state-field=
"isStateField(field)"
/>
</
template
>
<
template
v-else
>
<data-field
v-for=
"(value, key) in state[dataType]"
:key=
"key"
:field=
"
{ value, key }"
:depth="0"
:path="key"
:editable="false"
/>
</
template
>
</div>
:fields=
"state[dataType]"
:force-collapse=
"forceCollapse"
/>
</div>
</div>
</
template
>
<
script
>
import
Vue
from
'
vue
'
import
DataField
from
'
./DataField
.vue
'
import
StateFields
from
'
./StateFields
.vue
'
const
keyOrder
=
{
props
:
1
,
...
...
@@ -74,7 +52,7 @@ const keyOrder = {
export
default
{
components
:
{
DataField
StateFields
},
props
:
{
...
...
@@ -152,10 +130,6 @@ export default {
this
.
forceCollapse
=
value
?
'
expand
'
:
'
collapse
'
Vue
.
set
(
this
.
expandedState
,
key
,
value
)
})
},
isStateField
(
field
)
{
return
field
&&
field
.
type
===
'
state
'
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录