Skip to content

Commit fe46d31

Browse files
authored
Merge pull request #707 from alibaba/dev
feat(fr):v1.9.7
2 parents 09009a7 + 14d9803 commit fe46d31

6 files changed

Lines changed: 59 additions & 7 deletions

File tree

docs/form-render/advanced/display.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ const schema = displayType => ({
3232
bind: 'obj',
3333
description: '这是一个对象类型',
3434
type: 'object',
35+
collapsed: false,
3536
properties: {
3637
input1: {
3738
title: '简单输入框',

docs/form-render/schema/schema.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,33 @@ readOnly=true 的情况,FormRender 默认使用 html 组件渲染。特殊情
456456
}
457457
```
458458

459+
### collapsed
460+
461+
只在嵌套的对象类型组件中使用,用于控制面板是否折叠
462+
463+
- 类型:boolean
464+
- 默认值:false
465+
466+
```json
467+
{
468+
"type": "object",
469+
"properties": {
470+
"objectName": {
471+
"type": "object",
472+
"description": "这是一个对象类型",
473+
"collapsed": false,
474+
"properties": {
475+
"input1": {
476+
"title": "简单输入框",
477+
"type": "string",
478+
"required": true
479+
}
480+
}
481+
}
482+
}
483+
}
484+
```
485+
459486
### enum & enumNames
460487

461488
只在选择类组件中使用,用于描述枚举值的值和文案

packages/form-render/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## 1.9.7
4+
5+
- [+] 对嵌套的`对象类型`组件扩展`schema`,新增`collapsed`属性用于控制面板折叠。
6+
7+
## 1.9.6
8+
9+
- [+] 更新`schema`类型声明
10+
311
## 1.9.5
412

513
- [+] 扩展`watch`的能力

packages/form-render/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "form-render",
3-
"version": "1.9.5",
3+
"version": "1.9.7",
44
"description": "通过 JSON Schema 生成标准 Form,常用于自定义搭建配置界面生成",
55
"keywords": [
66
"Form",

packages/form-render/src/index.d.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
11
import { RuleItem } from 'async-validator';
22
import * as React from 'react';
33

4+
export type SchemaType =
5+
| 'string'
6+
| 'object'
7+
| 'array'
8+
| 'number'
9+
| 'boolean'
10+
| 'void'
11+
| 'date'
12+
| 'datetime'
13+
| (string & {});
14+
415
interface SchemaBase {
5-
type: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'range' | 'html';
16+
type: SchemaType;
617
title: string;
718
description: string;
819
descType: 'text' | 'icon';
@@ -46,7 +57,7 @@ interface SchemaBase {
4657
props: Record<string, any>;
4758
}
4859

49-
type Schema = Partial<SchemaBase>;
60+
export type Schema = Partial<SchemaBase>;
5061

5162
export interface Error {
5263
/** 错误的数据路径 */

packages/form-render/src/widgets/antd/map.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,18 @@ import React, { useEffect, useState } from 'react';
33
// import { useStore2 } from '../../hooks';
44
const { Panel } = Collapse;
55

6-
export default function Map({ children, title, ...rest }) {
6+
export default function Map({ children, title, schema, ...rest }) {
77
const { theme, displayType, allCollapsed } = {}; // TODO!
8-
const [collapsed, setCollapsed] = useState(false);
8+
const [collapsed, setCollapsed] = useState(schema.collapsed || false);
9+
// useEffect(() => {
10+
// setCollapsed(allCollapsed);
11+
// }, [allCollapsed]);
912

1013
useEffect(() => {
11-
setCollapsed(allCollapsed);
12-
}, [allCollapsed]);
14+
if (schema.hasOwnProperty('collapsed')) {
15+
setCollapsed(schema.collapsed);
16+
}
17+
}, [schema.collapsed]);
1318

1419
if (!title) {
1520
return <div className="w-100">{children}</div>;

0 commit comments

Comments
 (0)