amis2/docs/components/json.md
2020-10-20 16:00:02 +08:00

201 lines
4.5 KiB
Markdown
Executable File

---
title: Json
description:
type: 0
group: ⚙ 组件
menuName: Json
icon:
order: 54
---
JSON 展示组件
## 基本用法
可以配置 `value` 展示 `json` 格式数据
```schema:height="200"
{
"type": "page",
"body": {
"type": "json",
"value": {
"a": "a",
"b": "b",
"c": {
"d": "d"
}
}
}
}
```
## 获取数据链值
也可以通过配置 `source` 获取数据链中的值
```schema:height="200"
{
"type": "page",
"data":{
"json":{
"a": "a",
"b": {
"c": "c"
}
}
},
"body": {
"type": "json",
"source": "${json}"
}
}
```
## 用作 Field 时
当用在 Table 的列配置 Column、List 的内容、Card 卡片的内容和表单的 Static-XXX 中时,可以设置`name`属性,映射同名变量
### Table 中的列类型
```schema:height="400" scope="body"
{
"type": "table",
"data": {
"items": [
{
"id": "1",
"json": {
"a": "a1",
"b": {
"c": "c1"
}
}
},
{
"id": "2",
"json": {
"a": "a2",
"b": {
"c": "c2"
}
}
},
{
"id": "3",
"json": {
"a": "a3",
"b": {
"c": "c3"
}
}
}
]
},
"columns": [
{
"name": "id",
"label": "Id"
},
{
"name": "json",
"label": "颜色",
"type": "json"
}
]
}
```
List 的内容、Card 卡片的内容配置同上
### Form 中静态展示
```schema:height="300" scope="body"
{
"type": "form",
"data": {
"json": {
"a": "a",
"b": {
"c": "c"
}
}
},
"controls": [
{
"type": "static-json",
"name": "json",
"label": "颜色"
}
]
}
```
## 主题
可配置`jsonTheme`,指定显示主题,可选`twilight`和`eighties`,默认为`twilight`。
```schema:height="300" scope="body"
[
{
"type": "json",
"value": {
"a": "a",
"b": "b",
"c": {
"d": "d"
}
}
},
{
"type": "divider"
},
{
"type": "json",
"jsonTheme": "eighties",
"value": {
"a": "a",
"b": "b",
"c": {
"d": "d"
}
}
}
]
```
## 配置默认展开层级
```schema:height="300"
{
"type": "page",
"body": {
"type": "json",
"levelExpand": 0,
"value": {
"a": "a",
"b": "b",
"c": {
"d": "d"
}
}
}
}
```
如上,`levelExpand`配置为`0`,则默认不展开。
## 属性表
| 属性名 | 类型 | 默认值 | 说明 |
| ----------- | ----------------- | ---------- | ------------------------------------------------------------------------------------ |
| type | `string` | | 如果在 Table、Card 和 List 中,为`"json"`;在 Form 中用作静态展示,为`"static-json"` |
| className | `string` | | 外层 CSS 类名 |
| value | `object`/`string` | | json 值,如果是 string 会自动 parse |
| source | `string` | `''` | 通过数据映射获取数据链中的值 |
| placeholder | `string` | `-` | 占位文本 |
| levelExpand | `number` | `1` | 默认展开的层级 |
| hideRoot | `boolean` | `false` | 是否隐藏根节点 |
| jsonTheme | `string` | `twilight` | 主题,可选`twilight`和`eighties` |