UNPKG

3.83 kBTypeScriptView Raw
1import { VXETableComponent } from './component'
2import { Form } from './form'
3import { RenderParams, RenderOptions, OptionProps, OptionGroupProps } from './v-x-e-table'
4
5/**
6 * 表单 - 项
7 */
8export class FormItem extends VXETableComponent {
9 /**
10 * 标题
11 */
12 title?: string;
13 /**
14 * 字段名
15 */
16 field?: string;
17 /**
18 * 栅格占据的列数(共 24 分栏)
19 */
20 span?: string | number;
21 /**
22 * 内容对齐方式
23 */
24 align?: 'left' | 'center' | 'right';
25 /**
26 * 标题对齐方式
27 */
28 titleAlign?: 'left' | 'center' | 'right';
29 /**
30 * 标题宽度
31 */
32 titleWidth?: string | number;
33 /**
34 * 前缀配置项
35 */
36 titlePrefix?: FormItemTitleOptions;
37 /**
38 * 后缀配置项
39 */
40 titleSuffix?: FormItemTitleOptions;
41 /**
42 * 重置时的默认值
43 */
44 resetValue?: any;
45 /**
46 * 该方法的返回值用来决定该项是否显示
47 */
48 visibleMethod?(params: { data: any, property: string }): boolean;
49 /**
50 * 默认收起
51 */
52 folding?: boolean;
53 /**
54 * 折叠节点
55 */
56 collapseNode?: boolean;
57 /**
58 * 项渲染配置项
59 */
60 itemRender?: FormItemRenderOptions;
61}
62
63export interface FormItemOptions {
64 /**
65 * 标题
66 */
67 title?: string;
68 /**
69 * 字段名
70 */
71 field?: string;
72 /**
73 * 栅格占据的列数(共 24 分栏)
74 */
75 span?: string | number;
76 /**
77 * 内容对齐方式
78 */
79 align?: 'left' | 'center' | 'right';
80 /**
81 * 标题对齐方式
82 */
83 titleAlign?: 'left' | 'center' | 'right';
84 /**
85 * 标题宽度
86 */
87 titleWidth?: string | number;
88 /**
89 * 前缀配置项
90 */
91 titlePrefix?: FormItemTitleOptions;
92 /**
93 * 后缀配置项
94 */
95 titleSuffix?: FormItemTitleOptions;
96 /**
97 * 重置时的默认值
98 */
99 resetValue?: any;
100 /**
101 * 该方法的返回值用来决定该项是否显示
102 */
103 visibleMethod?(params: { data: any, property: string }): boolean;
104 /**
105 * 默认收起
106 */
107 folding?: boolean;
108 /**
109 * 折叠节点
110 */
111 collapseNode?: boolean;
112 /**
113 * 项渲染配置项
114 */
115 itemRender?: FormItemRenderOptions;
116}
117
118export interface FormItemTitleOptions {
119 message?: string;
120 enterable?: boolean;
121 theme?: string;
122 icon?: string;
123}
124
125/**
126 * 项渲染配置项
127 */
128export interface FormItemRenderOptions extends RenderOptions {
129 /**
130 * 下拉选项列表(需要渲染器支持)
131 */
132 options?: { [key: string]: any }[];
133 /**
134 * 下拉选项属性参数配置(需要渲染器支持)
135 */
136 optionProps?: OptionProps;
137 /**
138 * 下拉分组选项列表(需要渲染器支持)
139 */
140 optionGroups?: { [key: string]: any }[];
141 /**
142 * 下拉分组选项属性参数配置(需要渲染器支持)
143 */
144 optionGroupProps?: OptionGroupProps;
145 /**
146 * 渲染组件的内容(需要渲染器支持)
147 */
148 content?: string;
149 /**
150 * 默认值(需要渲染器支持)
151 */
152 defaultValue?: any;
153}
154
155/**
156 * 项渲染参数
157 */
158export interface FormItemRenderParams extends RenderParams {
159 /**
160 * 表单实例对象
161 */
162 $form: Form;
163 /**
164 * 表单数据
165 */
166 data: any;
167 /**
168 * 字段名
169 */
170 property: string;
171}
172
173/**
174 * 项可视方法参数
175 */
176export interface FormItemVisibleParams extends RenderParams {
177 /**
178 * 表单实例对象
179 */
180 $form: Form;
181 /**
182 * 表单数据
183 */
184 data: any;
185 /**
186 * 字段名
187 */
188 property: string;
189}
190
191/**
192 * 项重置方法参数
193 */
194export interface FormItemResetParams extends RenderParams {
195 /**
196 * 表单实例对象
197 */
198 $form: Form;
199 /**
200 * 表单数据
201 */
202 data: any;
203 /**
204 * 字段名
205 */
206 property: string;
207}