amis2/docs/renderers/Field.md

187 lines
5.0 KiB
Markdown
Raw Normal View History

2019-06-04 20:13:40 +08:00
## Field
2019-05-08 22:55:41 +08:00
2019-05-09 21:58:58 +08:00
主要用在 [Table](./Table.md) 的列配置 Column、[List](./List.md) 的内容、[Card](./Card.md) 卡片的内容和表单的[Static-XXX](./Static.md#static-xxx) 中。它主要用来展示数据。
2019-05-08 22:55:41 +08:00
```schema:height="450" scope="body"
{
2019-05-28 11:56:51 +08:00
"type": "crud",
"api": "/api/mock2/crud/list",
2019-05-08 22:55:41 +08:00
"affixHeader": false,
"syncLocation": false,
"columns": [
{
"name": "id",
"label": "ID",
"type": "text"
},
{
"name": "text",
"label": "文本",
"type": "text"
},
{
"type": "image",
"label": "图片",
"name": "image",
"popOver": {
"title": "查看大图",
"body": "<div class=\"w-xxl\"><img class=\"w-full\" src=\"${image}\"/></div>"
}
},
{
"name": "date",
"type": "date",
"label": "日期"
},
{
"name": "progress",
"label": "进度",
"type": "progress"
},
{
"name": "boolean",
"label": "状态",
"type": "status"
},
{
"name": "boolean",
"label": "开关",
"type": "switch"
},
{
"name": "type",
"label": "映射",
"type": "mapping",
"map": {
"1": "<span class='label label-info'>漂亮</span>",
"2": "<span class='label label-success'>开心</span>",
"3": "<span class='label label-danger'>惊吓</span>",
"4": "<span class='label label-warning'>紧张</span>",
"*": "其他:${type}"
}
},
{
"name": "list",
"type": "list",
"label": "List",
"placeholder": "-",
"listItem": {
"title": "${title}",
"subTitle": "${description}"
}
}
]
}
```
2019-05-08 23:26:09 +08:00
2019-06-04 20:13:40 +08:00
### 通用配置
2019-05-08 23:26:09 +08:00
- `name` 绑定变量名。
- `placeholder` 当没有值时的展示内容。
- `popOver` 配置后在内容区增加一个放大按钮,点击后弹出一个详情弹框。
`boolean` 简单的开启或者关闭
`Object` 弹出的内容配置。请参考 [Dialog](./Dialog.md) 配置说明。
2019-05-08 23:26:09 +08:00
- `quickEdit` 配置后在内容区增加一个编辑按钮,点击后弹出一个编辑框。
`boolean` 简单的开启或者关闭
`Object` 快速编辑详情,请参考 [FormItem](./FormItem.md) 配置。
`mode` 模式如果设置为 `inline` 模式,则直接展示输入框,而不需要点击按钮后展示。
`saveImmediately` 开启后,直接保存,而不是等全部操作完后批量保存。
2019-05-08 23:26:09 +08:00
- `copyable` 配置后会在内容区增加一个复制按钮,点击后把内容复制到剪切板。
todo
2019-06-04 20:13:40 +08:00
### Tpl(Field)
2019-05-08 23:26:09 +08:00
请参考[tpl](./Tpl.md)
2019-05-08 23:26:09 +08:00
2019-06-04 20:13:40 +08:00
### Plain(Field)
2019-05-08 23:26:09 +08:00
请参考[Plain](./Plain.md)
2019-05-08 23:26:09 +08:00
2019-06-04 20:13:40 +08:00
### Json(Field)
2019-05-08 23:26:09 +08:00
2019-08-05 11:11:08 +08:00
- `type` 请设置为 `json`
- `levelExpand` 开始展开的层级,默认为 1如设置不展开则设置为 0
2019-05-08 23:26:09 +08:00
2019-06-04 20:13:40 +08:00
### Date(Field)
2019-05-08 23:26:09 +08:00
用来显示日期。
- `type` 请设置为 `date`
2019-07-04 16:24:13 +08:00
- `format` 默认为 `YYYY-MM-DD`,时间格式,请参考 [moment](http://momentjs.com/) 中的格式用法。
- `valueFormat` 默认为 `X`,时间格式,请参考 [moment](http://momentjs.com/) 中的格式用法。
2019-05-08 23:26:09 +08:00
2019-06-04 20:13:40 +08:00
### Mapping(Field)
2019-05-08 23:26:09 +08:00
用来对值做映射显示。
- `type` 请设置为 `date`
- `map` 映射表, 比如
```json
{
"type": "mapping",
"name": "flag",
"map": {
"1": "<span class='label label-default'>One</span>",
"*": "其他 ${flag}"
}
}
```
当值为 1 时,显示 One, 当值为其他时会命中 `*` 所以显示 `其他 flag的值`
2019-06-04 20:13:40 +08:00
### Image(Field)
2019-05-08 23:26:09 +08:00
用来展示图片。
- `type` 请设置为 `image`
- `description` 图片描述。
- `defaultImage` 默认图片地址。
- `className` CSS 类名。
- `src` 图片地址,支持变量。如果想动态显示,请勿配置。
2019-06-04 20:13:40 +08:00
### Progress(Field)
2019-05-08 23:26:09 +08:00
用来展示进度条。
- `type` 请设置为 `progress`
- `showLabel` 是否显示文字
- `map` 等级配置
默认
```json
["bg-danger", "bg-warning", "bg-info", "bg-success", "bg-success"]
```
展示的样式取决于当前值在什么区间段,比如以上的配置,把 100 切成了 5 分,前 1/5, 即 25 以前显示 `bg-danger` 背景。50 ~ 75 显示 `bg-info` 背景。
- `progressClassName` 进度外层 CSS 类名 默认为: `progress-xs progress-striped active m-t-xs m-b-none`
- `progressBarClassName` 进度条 CSS 类名。
2019-06-04 20:13:40 +08:00
### Status(Field)
2019-05-08 23:26:09 +08:00
用来显示状态,用图表展示。
- `type` 请设置为 `status`
- `map` 图标配置
默认:
```json
["fa fa-times text-danger", "fa fa-check text-success"]
```
即如果值 `value % map.length` 等于 0 则显示第一个图标。`value % map.length` 等于 1 则显示第二个图标,无限类推。所以说 map 其实不只是支持 2 个,可以任意个。
这个例子,当值为 0 、2、4 ... 时显示红 `X` 当值为 1, 3, 5 ...  绿 `√`
2019-06-04 20:13:40 +08:00
### Switch(Field)
2019-05-08 23:26:09 +08:00
用来占一个开关。
- `type` 请设置为 `switch`
- `option` 选项说明
- `trueValue` 勾选后的值
- `falseValue` 未勾选的值