@ttkj/avue 2.11.1 → 2.11.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,7 @@
1
+ import { ResponsiveColumn } from 'element-ui/types/col';
1
2
  import { PopoverPlacement } from 'element-ui/types/popover';
2
- import { AvueComponentSize, Obj, DicProps as BaseDicProps, DicHttpProps } from '../global';
3
+ import { AvueComponentSize, Obj } from '../global';
4
+ import { DicProps as BaseDicProps, DicHttpProps } from '../variable';
3
5
  import { DynamicFormColumn } from './components/dynamic';
4
6
 
5
7
  /** 表单项字典Props配置 */
@@ -64,18 +66,14 @@ export type ColumnMock =
64
66
  type: 'dic';
65
67
  };
66
68
 
67
- /**
68
- * 表单项事件参数,适用于click|blur|focus
69
- */
70
- export interface FormColumnEventParams<T = Obj, U = Obj> {
69
+ /** 表单事件通用参数 */
70
+ export interface FormColumnEventBaseParams<T = Obj, U = Obj> {
71
71
  /** 表单项值 */
72
72
  value: any;
73
- /** 鼠标点击事件$event */
74
- event: MouseEvent;
75
73
  /** 表单项列配置 */
76
- column: AvueFormColumn;
74
+ column: AvueFormColumn<T>;
77
75
  /** 表单项列配置索引 */
78
- columnIndex: Record<string, AvueFormColumn>;
76
+ columnIndex: Record<string, AvueFormColumn<T>>;
79
77
  /** 表单值 */
80
78
  row: T;
81
79
  /** dic */
@@ -90,12 +88,75 @@ export interface FormColumnEventParams<T = Obj, U = Obj> {
90
88
  index?: number;
91
89
  }
92
90
 
91
+ /**
92
+ * 表单项事件参数,适用于click|blur|focus
93
+ */
94
+ export interface FormColumnEventParams<T = Obj, U = Obj> extends FormColumnEventBaseParams<T, U> {
95
+ /** 鼠标点击事件$event */
96
+ event: MouseEvent;
97
+ }
98
+
99
+ /** 表单项校验规则 */
100
+ export interface ColumnRule {
101
+ /** 值的类型 */
102
+ type?: string;
103
+ /** 是否必填 */
104
+ required?: boolean;
105
+ /** 错误文字说明 */
106
+ message?: string;
107
+ /** 正则校验规则 */
108
+ pattern?: string | RegExp;
109
+ /** 长度校验 */
110
+ len?: number;
111
+ /** 最小值 */
112
+ min?: number;
113
+ /** 最大值 */
114
+ max?: number;
115
+ /** 自定义校验 */
116
+ validator?: (rule: ColumnRule, value: any, callback: (error?: unknown) => void, tableData: FormColumnEventBaseParams) => void;
117
+ /**
118
+ * 触发规则
119
+ * @description blur: 失焦时触发,change: 值改变时触发
120
+ */
121
+ trigger?: 'blur' | 'change';
122
+ }
123
+
93
124
  /** 表单项基本配置属性 */
94
125
  export interface FormBaseColumn {
95
126
  /** 列类型, 默认: 'input' */
96
127
  type?: string;
128
+ /**
129
+ * 新增时列类型, 默认: 'input'
130
+ * @since 2.11.3
131
+ */
132
+ addType?: string;
133
+ /**
134
+ * 编辑时列类型, 默认: 'input'
135
+ * @since 2.11.3
136
+ */
137
+ editType?: string;
138
+ /**
139
+ * 详情时列类型, 默认: 'input'
140
+ * @since 2.11.3
141
+ */
142
+ viewType?: string;
97
143
  /** 组件 */
98
144
  component?: string;
145
+ /**
146
+ * 新增时组件
147
+ * @since 2.11.3
148
+ */
149
+ addComponent?: string;
150
+ /**
151
+ * 编辑时组件
152
+ * @since 2.11.3
153
+ */
154
+ editComponent?: string;
155
+ /**
156
+ * 详情时组件
157
+ * @since 2.11.3
158
+ */
159
+ viewComponent?: string;
99
160
  /**
100
161
  * 组件类型
101
162
  * @description 自定义属性
@@ -137,7 +198,7 @@ export interface FormBaseColumn {
137
198
  /** 是否详情模式, 默认: false */
138
199
  detail?: boolean;
139
200
  /** 校验规则 */
140
- rules?: Obj[];
201
+ rules?: ColumnRule[];
141
202
  /** 控件大小 */
142
203
  size?: AvueComponentSize;
143
204
  /** 是否可见, 默认: true */
@@ -187,22 +248,125 @@ export interface FormBaseColumn {
187
248
  export interface FormColumnColOption {
188
249
  /** 栅列, 默认: 12 */
189
250
  span: number;
251
+ /**
252
+ * 新增时栅列, 默认: 同span
253
+ * @since 2.11.3
254
+ */
255
+ addSpan?: string;
256
+ /**
257
+ * 编辑时栅列, 默认: 同span
258
+ * @since 2.11.3
259
+ */
260
+ editSpan?: string;
261
+ /**
262
+ * 详情时栅列, 默认: 同span
263
+ * @since 2.11.3
264
+ */
265
+ viewSpan?: string;
190
266
  /**
191
267
  * ≥768px 响应式栅格数或者栅格属性对象, 默认: 12
192
268
  * @since 2.8.12
193
269
  */
194
270
  smSpan: ResponsiveColumn;
271
+ /**
272
+ * 新增时响应式栅格数或者栅格属性对象, 默认: 同span
273
+ * @since 2.11.3
274
+ */
275
+ addSmSpan?: string;
276
+ /**
277
+ * 编辑时响应式栅格数或者栅格属性对象, 默认: 同smSpan
278
+ * @since 2.11.3
279
+ */
280
+ editSmSpan?: string;
281
+ /**
282
+ * 详情时响应式栅格数或者栅格属性对象, 默认: 同smSpan
283
+ * @since 2.11.3
284
+ */
285
+ viewSmSpan?: string;
195
286
  /**
196
287
  * <768px 响应式栅格数或者栅格属性对象, 默认: 24
197
288
  * @since 2.8.12
198
289
  */
199
290
  xsSpan: ResponsiveColumn;
291
+ /**
292
+ * 新增时响应式栅格数或者栅格属性对象, 默认: 同xsSpan
293
+ * @since 2.11.3
294
+ */
295
+ addXsSpan?: string;
296
+ /**
297
+ * 编辑时响应式栅格数或者栅格属性对象, 默认: 同xsSpan
298
+ * @since 2.11.3
299
+ */
300
+ editXsSpan?: string;
301
+ /**
302
+ * 详情时响应式栅格数或者栅格属性对象, 默认: 同xsSpan
303
+ * @since 2.11.3
304
+ */
305
+ viewXsSpan?: string;
200
306
  /**
201
307
  * 栅格左侧的间隔格数, 默认: 0
202
308
  * @since 2.8.12
203
309
  */
204
310
  offset: number;
205
- /** 表单项是否单独成行, 默认: false */
311
+ /**
312
+ * 新增时栅格左侧的间隔格数, 默认: 同xsSpan
313
+ * @since 2.11.3
314
+ */
315
+ addOffset?: string;
316
+ /**
317
+ * 编辑时栅格左侧的间隔格数, 默认: 同xsSpan
318
+ * @since 2.11.3
319
+ */
320
+ editOffset?: string;
321
+ /**
322
+ * 详情时栅格左侧的间隔格数, 默认: 同xsSpan
323
+ * @since 2.11.3
324
+ */
325
+ viewOffset?: string;
326
+ /**
327
+ * 栅格向右移动格数, 默认: 0
328
+ * @since 2.8.12
329
+ */
330
+ push: number;
331
+ /**
332
+ * 新增时栅格向右移动格数, 默认: 同xsSpan
333
+ * @since 2.11.3
334
+ */
335
+ addPush?: string;
336
+ /**
337
+ * 编辑时栅格向右移动格数, 默认: 同xsSpan
338
+ * @since 2.11.3
339
+ */
340
+ editPush?: string;
341
+ /**
342
+ * 详情时栅格向右移动格数, 默认: 同xsSpan
343
+ * @since 2.11.3
344
+ */
345
+ viewPush?: string;
346
+ /**
347
+ * 栅格向左移动格数, 默认: 0
348
+ * @since 2.8.12
349
+ */
350
+ pull: number;
351
+ /**
352
+ * 新增时栅格向左移动格数, 默认: 同xsSpan
353
+ * @since 2.11.3
354
+ */
355
+ addPull?: string;
356
+ /**
357
+ * 编辑时栅格向左移动格数, 默认: 同xsSpan
358
+ * @since 2.11.3
359
+ */
360
+ editPull?: string;
361
+ /**
362
+ * 详情时栅格向左移动格数, 默认: 同xsSpan
363
+ * @since 2.11.3
364
+ */
365
+ viewPull?: string;
366
+ /**
367
+ * 表单项是否单独成行, 默认: false
368
+ * @description 暂未实现
369
+ */
206
370
  row: boolean;
207
371
  }
208
372
 
@@ -220,6 +384,8 @@ export interface FormColumnDicOption {
220
384
  dicMethod: 'get' | 'GET' | 'post' | 'POST';
221
385
  /** 字典请求参数,配合dicUrl使用 */
222
386
  dicQuery: Obj;
387
+ /** 远程字典其他配置 */
388
+ dicOptions: Obj,
223
389
  /** 字典数据返回的执行函数,配合dicUrl使用 */
224
390
  dicFormatter: (value: any) => Obj[];
225
391
  /** 参数配置项 */
@@ -235,7 +401,7 @@ export interface FormColumnEvent<T = Obj> {
235
401
  * @example https://avuejs.com/form/form-control.html
236
402
  * @since 2.8.6
237
403
  */
238
- control: (value: any, form: T, tableData: Omit<FormColumnEventParams<T>, 'event'>) => Record<string, Partial<AvueFormColumn>>;
404
+ control: (value: any, form: T, tableData: FormColumnEventBaseParams<T>) => Record<string, Partial<AvueFormColumn<T>>>;
239
405
  /**
240
406
  * 点击事件
241
407
  * @since 2.9.6
@@ -245,7 +411,7 @@ export interface FormColumnEvent<T = Obj> {
245
411
  * 值改变事件
246
412
  * @since 2.9.6
247
413
  */
248
- change: (params: Omit<FormColumnEventParams<T>, 'event'>) => void;
414
+ change: (params: FormColumnEventBaseParams<T>) => void;
249
415
  /**
250
416
  * 聚焦事件
251
417
  * @since 2.9.6
@@ -259,14 +425,14 @@ export interface FormColumnEvent<T = Obj> {
259
425
  /**
260
426
  * 回车事件
261
427
  */
262
- enter: (params: Pick<FormColumnEventParams<T>, 'value' | 'column'>) => void;
428
+ enter: (params: FormColumnEventBaseParams<T>) => void;
263
429
  /**
264
430
  * 事件源码
265
431
  * @since 2.9.12(伪)
266
432
  */
267
433
  _event?: Record<string, string>;
268
434
  /** 事件 */
269
- event: Partial<Omit<FormColumnEvent<T>, 'control' | 'event' | 'enter'>>;
435
+ event: Partial<Pick<FormColumnEvent<T>, 'click' | 'change' | 'focus' | 'blur' | 'enter'>>;
270
436
  }
271
437
 
272
438
  /** 表单项通用参数 */
@@ -1,7 +1,8 @@
1
1
  // 引入定义
2
2
  import { VNode } from 'vue';
3
3
  import { ElForm } from 'element-ui/types/form';
4
- import { AvueComponent, DicHttpProps, Obj } from '../global';
4
+ import { AvueComponent, Obj } from '../global';
5
+ import { DicHttpProps } from '../variable';
5
6
  import { FormOption } from './option';
6
7
  import { DicProps } from './column';
7
8
 
@@ -1,5 +1,6 @@
1
1
  import { ResponsiveColumn } from 'element-ui/types/col';
2
- import { AvueAlignment, AvueComponentSize, DicHttpProps, Obj } from '../global';
2
+ import { AvueAlignment, AvueComponentSize, Obj } from '../global';
3
+ import { DicHttpProps } from '../variable';
3
4
  import { AvueFormColumn } from './column';
4
5
 
5
6
  /** 表单组件基本配置属性 */
@@ -164,4 +165,4 @@ export interface FormEvents {
164
165
  }
165
166
 
166
167
  /** 表单组件配置属性 */
167
- export type FormOption<T = Obj> = Partial<FormBaseOption> & Partial<FormMenuOption> & FormColumnOption<T> & FormEvents;
168
+ export type FormOption<T = Obj> = Partial<FormBaseOption> & Partial<FormMenuOption> & FormColumnOption<T> & FormEvents & Obj;
package/types/global.d.ts CHANGED
@@ -32,50 +32,6 @@ export declare type Obj<T = any> = Record<string, T> & Object;
32
32
  /** log日志类型 */
33
33
  type LogType = 'primary' | 'success' | 'warning' | 'danger' | 'text';
34
34
 
35
- /** 字典Props配置 */
36
- export interface DicProps {
37
- /** 行主键, 默认: 'id' */
38
- rowKey: string;
39
- /** 行上级主键, 默认: 'parentId' */
40
- rowParentKey: string;
41
- /** 节点主键, 默认: 'id' */
42
- nodeKey: string;
43
- /** 名称属性值, 默认: 'label' */
44
- label: string;
45
- /** 值属性值, 默认: 'value' */
46
- value: string;
47
- /** 降序, 默认: 'desc' */
48
- desc: string;
49
- /** 分组, 默认: 'groups' */
50
- groups: string;
51
- /** 标题, 默认: 'title' */
52
- title: string;
53
- /** 是否为叶子节点, 默认: 'leaf' */
54
- leaf: string;
55
- /** 子属性值, 默认: 'children' */
56
- children: string;
57
- /** 是否有子节点, 默认: 'hasChildren' */
58
- hasChildren: string;
59
- /** label文字, 默认: '名称' */
60
- labelText: string;
61
- /** 禁用, 默认: 'disabled' */
62
- disabled: string;
63
- }
64
-
65
- /** 接口请求Props配置 */
66
- export interface DicHttpProps {
67
- /** 文件名Key, 默认: 'name' */
68
- name: string;
69
- /** 文件路径Key, 默认: 'url' */
70
- url: string;
71
- /** 文件上传时的文件字段名Key, 默认: 'file' */
72
- fileName: string;
73
- /** 返回的数据格式, 默认: '' */
74
- res: string;
75
- /** 文件路径前缀, 默认: '' */
76
- home: string;
77
- }
78
-
79
35
  // window属性扩展
80
36
  declare global {
81
37
  interface Window {
@@ -0,0 +1,78 @@
1
+ /** 字典Props配置 */
2
+ export interface DicProps {
3
+ /** 行主键, 默认: 'id' */
4
+ rowKey: string;
5
+ /** 行上级主键, 默认: 'parentId' */
6
+ rowParentKey: string;
7
+ /** 节点主键, 默认: 'id' */
8
+ nodeKey: string;
9
+ /** 名称属性值, 默认: 'label' */
10
+ label: string;
11
+ /** 值属性值, 默认: 'value' */
12
+ value: string;
13
+ /** , 默认: 'type' */
14
+ type: string;
15
+ /** 降序, 默认: 'desc' */
16
+ desc: string;
17
+ /** 分组, 默认: 'groups' */
18
+ groups: string;
19
+ /** 标题, 默认: 'title' */
20
+ title: string;
21
+ /** 是否为叶子节点, 默认: 'leaf' */
22
+ leaf: string;
23
+ /** 子属性值, 默认: 'children' */
24
+ children: string;
25
+ /** 是否有子节点, 默认: 'hasChildren' */
26
+ hasChildren: string;
27
+ /** label文字, 默认: '名称' */
28
+ labelText: string;
29
+ /** 禁用, 默认: 'disabled' */
30
+ disabled: string;
31
+ }
32
+ /** 接口请求Props配置 */
33
+ export interface DicHttpProps {
34
+ /** 文件名Key, 默认: 'name' */
35
+ name: string;
36
+ /** 文件路径Key, 默认: 'url' */
37
+ url: string;
38
+ /** 文件类型, 默认: 'type' */
39
+ fileType: string;
40
+ /** 文件上传时的文件字段名Key, 默认: 'file' */
41
+ fileName: string;
42
+ /** 返回的数据格式, 默认: '' */
43
+ res: string;
44
+ /** 文件路径前缀, 默认: '' */
45
+ home: string;
46
+ }
47
+ export namespace Variable {
48
+ /** 字典Props配置 */
49
+ export const DIC_PROPS: DicProps;
50
+ /** 接口请求Props配置 */
51
+ export const DIC_HTTP_PROPS: Omit<DicHttpProps, 'home'>;
52
+ /** 时间单选类组件类型 */
53
+ export const SINGLE_DATE_LIST: string;
54
+ /** 时间区间类组件类型 */
55
+ export const DATE_ARRAY_LIST = string;
56
+ /** 时间类组件类型 */
57
+ export const DATE_LIST: string;
58
+ /** 含子组件的带值组件类型 */
59
+ export const CHILDREN_LIST: string;
60
+ /** input-开头的组件类型 */
61
+ export const INPUT_LIST: string;
62
+ /** 纯数组的组件类型 */
63
+ export const ARRAY_LIST: string;
64
+ /** 可单选/多选的组件类型 */
65
+ export const MULTIPLE_LIST: string;
66
+ /** 范围组件类型 */
67
+ export const RANGE_LIST: string;
68
+ /** 值为数组的组件类型 */
69
+ export const ARRAY_VALUE_LIST: string;
70
+ /** 选择类的组件类型 */
71
+ export const SELECT_LIST: string;
72
+ /** 数组转展示的分隔字符 */
73
+ export const DIC_SHOW_SPLIT: string;
74
+ /** 数组转字符串的分隔字符 */
75
+ export const DIC_SPLIT: string;
76
+ /** 媒体类型正则索引 */
77
+ export const typeList: Record<string, RegExp>;
78
+ }