schema.d.ts
1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import { RuleItem } from 'async-validator';
interface SchemaBase {
type: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'range' | 'html';
title: string;
description: string;
descType: 'text' | 'icon';
format:
| 'image'
| 'textarea'
| 'color'
| 'email'
| 'url'
| 'dateTime'
| 'date'
| 'time'
| 'upload'
| (string & {});
default: any;
/** 是否必填,支持 `'{{ formData.xxx === "" }}'` 形式的表达式 */
required: boolean | string;
placeholder: string | string[];
bind: false | string | string[];
dependencies: string[];
min: number;
max: number;
/** 是否禁用,支持 `'{{ formData.xxx === "" }}'` 形式的表达式 */
disabled: boolean | string;
/** 是否只读,支持 `'{{ formData.xxx === "" }}'` 形式的表达式 */
readOnly: boolean | string;
/** 是否隐藏,隐藏的字段不会在 formData 里透出,支持 `'{{ formData.xxx === "" }}'` 形式的表达式 */
hidden: boolean | string;
displayType: 'row' | 'column';
colon?: boolean;
labelAlign?: 'right' | 'left';
width: string;
labelWidth: number | string;
column: number;
className: string;
widget: string;
readOnlyWidget: string;
extra: string;
properties: Record<string, Schema>;
items: Schema;
enum: Array<string | number>;
enumNames: Array<string | number>;
rules: RuleItem | RuleItem[];
props: Record<string, any>;
}
type Schema = Partial<SchemaBase>;
export = Schema;
export as namespace ISchema;