chore: mapping 远程字段支持 data 直接返回数组情况 (#7061)

This commit is contained in:
liaoxuezhi 2023-06-05 13:56:25 +08:00 committed by GitHub
parent ca9b8ecc30
commit f745a4ebb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 49 additions and 50 deletions

View File

@ -47,7 +47,8 @@ order: 57
## 渲染其它组件
映射的值也可以是 amis schema渲染其它组件
映射的值也可以是 amis schema渲染其它组件
> 配置了`itemSchema`后,映射值不会再作为`schema`渲染
```schema
@ -81,6 +82,7 @@ order: 57
当映射值是`非object`时,可使用`${item}`获取映射值;
### html 或字符串模板
使用`${item}` 获取映射值
```schema
@ -100,7 +102,8 @@ order: 57
}
```
### SchemaNode模板
### SchemaNode 模板
```schema
{
"type": "page",
@ -189,14 +192,14 @@ order: 57
```json
{
"type": "mapping",
"value": "1",
"map": {
"1": "第一",
"2": "第二",
"3": "第三",
"*": "其他"
}
"type": "mapping",
"value": "1",
"map": {
"1": "第一",
"2": "第二",
"3": "第三",
"*": "其他"
}
}
```
@ -208,45 +211,37 @@ order: 57
```json
{
"type": "mapping",
"value": "1",
"map": [
{"1": "第一"},
{"2": "第二"},
{"3": "第三"},
{"*": "其他"}
]
"type": "mapping",
"value": "1",
"map": [{"1": "第一"}, {"2": "第二"}, {"3": "第三"}, {"*": "其他"}]
}
```
#### 多key对象数组
#### 多 key 对象数组
当映射值有多个key时需要使用`valueField`指定字段作为`mapping`的`key`, 也就是用来匹配`value`的值
当映射值有多个 key 时,需要使用`valueField`指定字段作为`mapping`的`key`, 也就是用来匹配`value`的值
可使用`labelField`指定展示字段,不配置时,默认为`label`
**注意:**配置`labelField`后,映射值无法再作为`schema`渲染
```json
{
"type": "mapping",
"value": "happy",
"valueField": "name",
"map": [
{
"name": "happy",
"label": "开心",
"color": "red"
},
{
"name": "sad",
"label": "悲伤",
"color": "blue"
},
{
"name": "*",
"label": "其他",
"color": "gray"
}
]
"type": "mapping",
"value": "happy",
"valueField": "name",
"map": [
{
"name": "happy",
"label": "开心"
},
{
"name": "sad",
"label": "悲伤"
},
{
"name": "*",
"label": "其他"
}
]
}
```
@ -473,12 +468,12 @@ List 的内容、Card 卡片的内容配置同上
## 属性表
| 属性名 | 类型 | 默认值 | 说明 |
| ----------- | ----------------- | ------ | --------------------------------------------------------------------------------- |
| className | `string` | | 外层 CSS 类名 |
| placeholder | `string` | | 占位文本 |
| map | `object`或`Array<object>` | | 映射配置 |
| source | `string` or `API` | | [API](../../../docs/types/api) 或 [数据映射](../../../docs/concepts/data-mapping) |
| valueField | `string` | value | `2.5.2` map或source为`Array<object>`时,用来匹配映射的字段名 |
| labelField | `string` | label | `2.5.2` map或source为`Array<object>`时,用来展示的字段名<br />注:配置后映射值无法作为`schema`组件渲染 |
| itemSchema | `string`或[SchemaNode](../../docs/types/schemanode) | | `2.5.2` 自定义渲染模板,支持`html`或`schemaNode`<br /> 当映射值是`非object`时,可使用`${item}`获取映射值;<br />当映射值是`object`时,可使用映射语法: `${xxx}`获取`object`的值;<br /> 也可使用数据映射语法:`${xxx}`获取数据域中变量值。|
| 属性名 | 类型 | 默认值 | 说明 |
| ----------- | --------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| className | `string` | | 外层 CSS 类名 |
| placeholder | `string` | | 占位文本 |
| map | `object`或`Array<object>` | | 映射配置 |
| source | `string` or `API` | | [API](../../../docs/types/api) 或 [数据映射](../../../docs/concepts/data-mapping) |
| valueField | `string` | value | `2.5.2` map source 为`Array<object>`时,用来匹配映射的字段名 |
| labelField | `string` | label | `2.5.2` map source 为`Array<object>`时,用来展示的字段名<br />注:配置后映射值无法作为`schema`组件渲染 |
| itemSchema | `string`或[SchemaNode](../../docs/types/schemanode) | | `2.5.2` 自定义渲染模板,支持`html`或`schemaNode`<br /> 当映射值是`非object`时,可使用`${item}`获取映射值;<br />当映射值是`object`时,可使用映射语法: `${xxx}`获取`object`的值;<br /> 也可使用数据映射语法:`${xxx}`获取数据域中变量值。 |

View File

@ -87,7 +87,11 @@ export const Store = StoreNode.named('MappingStore')
const data = normalizeApiResponseData(ret.data);
(self as any).setMap(
Array.isArray(data.options) ? data.options : data
Array.isArray(data.options)
? data.options
: Array.isArray(data.items)
? data.items
: data
);
} else {
throw new Error(ret.msg || 'fetch error');