@juzhenfe/page-model 3.12.1 → 3.12.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/page-model/patches/patch-table-dragable.d.ts +2 -0
- package/dist/components/table/type.d.ts +4 -0
- package/dist/components/table/utils/use-column-drag.d.ts +8 -0
- package/dist/index.es.js +97 -26
- package/dist/index.min.css +1 -1
- package/dist/index.umd.js +3 -3
- package/dist/types/common.d.ts +189 -131
- package/package.json +1 -1
package/dist/types/common.d.ts
CHANGED
|
@@ -23,39 +23,43 @@
|
|
|
23
23
|
/// <reference path="./form-item-types/jz-cascader.d.ts" />
|
|
24
24
|
|
|
25
25
|
import { ButtonProps } from 'element-plus'
|
|
26
|
-
import { StyleValue } from 'vue'
|
|
26
|
+
import { StyleValue } from 'vue'
|
|
27
27
|
|
|
28
28
|
declare global {
|
|
29
|
-
|
|
30
29
|
type AnyObject = {
|
|
31
|
-
[key: string]: any
|
|
30
|
+
[key: string]: any
|
|
32
31
|
}
|
|
33
32
|
|
|
34
|
-
type ExtendKeys<T> = T & AnyObject
|
|
33
|
+
type ExtendKeys<T> = T & AnyObject
|
|
35
34
|
|
|
36
|
-
type AnyFunction = (...args: any[]) => any
|
|
35
|
+
type AnyFunction = (...args: any[]) => any
|
|
37
36
|
|
|
38
37
|
type CreateDeType<T, CTX = any> = T | ((this: CTX, ...rest: any[]) => T)
|
|
39
38
|
|
|
40
|
-
type CreateDePromiseResult<FN extends (...rest: any[]) => any> =
|
|
39
|
+
type CreateDePromiseResult<FN extends (...rest: any[]) => any> =
|
|
40
|
+
| FN
|
|
41
|
+
| ((
|
|
42
|
+
this: ThisParameterType<FN>,
|
|
43
|
+
...rest: Parameters<FN>
|
|
44
|
+
) => Promise<ReturnType<FN>>)
|
|
41
45
|
|
|
42
46
|
type FieldType = 'string' | 'number' | 'date'
|
|
43
47
|
|
|
44
48
|
type InnerFilterItem = {
|
|
45
|
-
key: string
|
|
46
|
-
compareFn: (cellValue: string) => boolean
|
|
49
|
+
key: string
|
|
50
|
+
compareFn: (cellValue: string) => boolean
|
|
47
51
|
}
|
|
48
52
|
|
|
49
53
|
namespace PageModel {
|
|
50
54
|
type _ButtonProps = Omit<ButtonProps, 'icon'> & {
|
|
51
|
-
icon: any
|
|
52
|
-
title: string
|
|
55
|
+
icon: any
|
|
56
|
+
title: string
|
|
53
57
|
}
|
|
54
58
|
|
|
55
|
-
type LinkedFormItem<MODEL = any, CTX = any> =
|
|
56
|
-
ElInput<MODEL, CTX>
|
|
57
|
-
| ElInputNumber<MODEL, CTX>
|
|
58
|
-
| ElCascader<MODEL, CTX>
|
|
59
|
+
type LinkedFormItem<MODEL = any, CTX = any> =
|
|
60
|
+
| ElInput<MODEL, CTX>
|
|
61
|
+
| ElInputNumber<MODEL, CTX>
|
|
62
|
+
| ElCascader<MODEL, CTX>
|
|
59
63
|
| ElCheckboxGroup<MODEL, CTX>
|
|
60
64
|
| ElSelect<MODEL, CTX>
|
|
61
65
|
| ElColorPicker<MODEL, CTX>
|
|
@@ -77,34 +81,41 @@ declare global {
|
|
|
77
81
|
| NoEType<MODEL, CTX>
|
|
78
82
|
|
|
79
83
|
type _Badge = {
|
|
80
|
-
count?: number
|
|
81
|
-
maxCount?: number
|
|
84
|
+
count?: number
|
|
85
|
+
maxCount?: number
|
|
82
86
|
}
|
|
83
87
|
|
|
84
88
|
type _Button<MODEL = AnyObject, CTX = any> = {
|
|
85
89
|
/**
|
|
86
90
|
* 按钮的名称
|
|
87
91
|
*/
|
|
88
|
-
text?: string
|
|
92
|
+
text?: string
|
|
89
93
|
/**
|
|
90
94
|
* 自定义事件
|
|
91
95
|
*/
|
|
92
|
-
event?: string
|
|
96
|
+
event?: string
|
|
93
97
|
/**
|
|
94
98
|
* 按钮权限值(作为权限判断的依据)
|
|
95
99
|
*/
|
|
96
|
-
authValue?: string
|
|
97
|
-
isAdd?: boolean
|
|
98
|
-
isEdit?: boolean
|
|
99
|
-
isDel?: boolean
|
|
100
|
-
isCopy?: boolean
|
|
101
|
-
isImport?: boolean
|
|
102
|
-
isShow?:
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
100
|
+
authValue?: string
|
|
101
|
+
isAdd?: boolean
|
|
102
|
+
isEdit?: boolean
|
|
103
|
+
isDel?: boolean
|
|
104
|
+
isCopy?: boolean
|
|
105
|
+
isImport?: boolean
|
|
106
|
+
isShow?:
|
|
107
|
+
| boolean
|
|
108
|
+
| ((this: CTX, self: _Button, data: MODEL, index: number) => boolean)
|
|
109
|
+
isDisabled?: (
|
|
110
|
+
this: CTX,
|
|
111
|
+
self: _Button,
|
|
112
|
+
data: MODEL,
|
|
113
|
+
index: number
|
|
114
|
+
) => boolean
|
|
115
|
+
copyText?: CreateDeType<string>
|
|
116
|
+
props?: Partial<_ButtonProps>
|
|
117
|
+
customProps?: AnyObject
|
|
118
|
+
renderFn?: (this: CTX) => JSX.Element
|
|
108
119
|
} & _Badge
|
|
109
120
|
|
|
110
121
|
type Button<MODEL = AnyObject, CTX = any> = _Button<MODEL, CTX> & {
|
|
@@ -113,47 +124,54 @@ declare global {
|
|
|
113
124
|
|
|
114
125
|
// 表格表单元素
|
|
115
126
|
type BaseElItem<MODEL = AnyObject> = {
|
|
116
|
-
label?: string
|
|
117
|
-
prop?: keyof MODEL extends string ? keyof MODEL : string
|
|
118
|
-
_key?: string
|
|
127
|
+
label?: string
|
|
128
|
+
prop?: keyof MODEL extends string ? keyof MODEL : string
|
|
129
|
+
_key?: string
|
|
119
130
|
}
|
|
120
131
|
|
|
121
132
|
interface ElFormItemProps {
|
|
122
|
-
required?: boolean
|
|
123
|
-
rules?: AnyObject
|
|
124
|
-
error?: string
|
|
125
|
-
inlineMessage?: boolean
|
|
126
|
-
showMessage?: boolean
|
|
127
|
-
size?: Size
|
|
128
|
-
labelWidth?: string
|
|
133
|
+
required?: boolean
|
|
134
|
+
rules?: AnyObject
|
|
135
|
+
error?: string
|
|
136
|
+
inlineMessage?: boolean
|
|
137
|
+
showMessage?: boolean
|
|
138
|
+
size?: Size
|
|
139
|
+
labelWidth?: string
|
|
129
140
|
class?: string
|
|
130
141
|
}
|
|
131
142
|
|
|
132
143
|
// 表单的元素
|
|
133
|
-
interface FormElBaseItem<MODEL = AnyObject, CTX = any>
|
|
144
|
+
interface FormElBaseItem<MODEL = AnyObject, CTX = any>
|
|
145
|
+
extends BaseElItem<MODEL> {
|
|
134
146
|
/**
|
|
135
147
|
* 当前组件的名称
|
|
136
148
|
*/
|
|
137
|
-
name?: string
|
|
138
|
-
labelWidth?: string
|
|
139
|
-
prefix?: CreateDeType<string, CTX
|
|
140
|
-
suffix?: CreateDeType<string, CTX
|
|
141
|
-
helpText?: CreateDeType<string, CTX
|
|
142
|
-
isShow?:
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
+
name?: string
|
|
150
|
+
labelWidth?: string
|
|
151
|
+
prefix?: CreateDeType<string, CTX> // 前置文字
|
|
152
|
+
suffix?: CreateDeType<string, CTX> // 后置文字
|
|
153
|
+
helpText?: CreateDeType<string, CTX> // 提示文字
|
|
154
|
+
isShow?:
|
|
155
|
+
| boolean
|
|
156
|
+
| ((
|
|
157
|
+
this: CTX,
|
|
158
|
+
self: FormElBaseItem<MODEL, CTX>,
|
|
159
|
+
data: MODEL
|
|
160
|
+
) => boolean)
|
|
161
|
+
change?: (this: CTX, value: any, label: string) => void
|
|
162
|
+
isDisabled?: (this: CTX, data: MODEL) => boolean
|
|
163
|
+
renderFn?: (this: CTX, data: MODEL) => JSX.Element
|
|
164
|
+
formItemProps?: ElFormItemProps
|
|
165
|
+
moduleName?: string
|
|
166
|
+
sectionName?: string
|
|
149
167
|
// 用户section配置
|
|
150
|
-
userSectionName?: string
|
|
168
|
+
userSectionName?: string
|
|
151
169
|
// 用户module配置
|
|
152
|
-
userModuleName?: string
|
|
170
|
+
userModuleName?: string
|
|
153
171
|
// 用户表格配置
|
|
154
|
-
userConfigShow?: boolean
|
|
172
|
+
userConfigShow?: boolean
|
|
155
173
|
// 用户表头
|
|
156
|
-
userLabel?: string
|
|
174
|
+
userLabel?: string
|
|
157
175
|
/**
|
|
158
176
|
* 内部更新的propslist
|
|
159
177
|
*/
|
|
@@ -169,36 +187,52 @@ declare global {
|
|
|
169
187
|
|
|
170
188
|
type Align = 'left' | 'center' | 'right'
|
|
171
189
|
|
|
172
|
-
type DateFormat =
|
|
190
|
+
type DateFormat =
|
|
191
|
+
| 'YYYY-MM'
|
|
192
|
+
| 'MM-DD'
|
|
193
|
+
| 'YYYY-MM-DD'
|
|
194
|
+
| 'YYYY-MM-DD HH:mm'
|
|
195
|
+
| 'YYYY-MM-DD HH:mm:ss'
|
|
196
|
+
| 'YYYY/MM'
|
|
197
|
+
| 'MM/DD'
|
|
198
|
+
| 'YYYY/MM/DD'
|
|
199
|
+
| 'YYYY/MM/DD HH:mm'
|
|
200
|
+
| 'YYYY/MM/DD HH:mm:ss'
|
|
173
201
|
|
|
174
202
|
interface TableBaseItemProps {
|
|
175
|
-
type?: TableColumnType
|
|
176
|
-
prop?: string
|
|
177
|
-
className?: string
|
|
178
|
-
labelClassName?: string
|
|
179
|
-
width?: number | string
|
|
180
|
-
minWidth?: number | string
|
|
181
|
-
renderHeader?: ({
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
203
|
+
type?: TableColumnType
|
|
204
|
+
prop?: string
|
|
205
|
+
className?: string
|
|
206
|
+
labelClassName?: string
|
|
207
|
+
width?: number | string
|
|
208
|
+
minWidth?: number | string
|
|
209
|
+
renderHeader?: ({
|
|
210
|
+
column,
|
|
211
|
+
$index,
|
|
212
|
+
}: {
|
|
213
|
+
column: any
|
|
214
|
+
$index: number
|
|
215
|
+
}) => any
|
|
216
|
+
sortable?: boolean | SortableType
|
|
217
|
+
sortMethod?: (a: any, b: any) => any
|
|
218
|
+
sortBy?: string | ((row: any, index: number) => any) | string[]
|
|
219
|
+
resizable?: boolean
|
|
220
|
+
columnKey?: string
|
|
221
|
+
align?: Align
|
|
222
|
+
headerAlign?: Align
|
|
223
|
+
showTooltipWhenOverflow?: boolean
|
|
224
|
+
showOverflowTooltip?: boolean
|
|
225
|
+
fixed?: true | 'left' | 'right'
|
|
226
|
+
formatter?: (row: any, column: any, cellValue: any, index: number) => any
|
|
227
|
+
selectable?: (row: any, index: number) => any
|
|
228
|
+
reserveSelection?: boolean
|
|
229
|
+
filterMethod?: (value: any, row: any, column: any) => any
|
|
230
|
+
filteredValue?: any[]
|
|
231
|
+
filters?: any[]
|
|
232
|
+
filterPlacement?: string
|
|
233
|
+
filterMultiple?: boolean
|
|
234
|
+
index?: number | ((index: number) => any)
|
|
235
|
+
sortOrders?: SortOrders[]
|
|
202
236
|
}
|
|
203
237
|
|
|
204
238
|
interface AscParams extends AnyObject {}
|
|
@@ -207,109 +241,133 @@ declare global {
|
|
|
207
241
|
|
|
208
242
|
interface TableBaseItem<MODEL = any, CTX = any> extends BaseElItem<MODEL> {
|
|
209
243
|
// 宽度属性
|
|
210
|
-
width?: string | number
|
|
211
|
-
minWidth?: string | number
|
|
244
|
+
width?: string | number
|
|
245
|
+
minWidth?: string | number
|
|
212
246
|
// 定位属性
|
|
213
|
-
fixed?: 'left' | 'right' | boolean
|
|
247
|
+
fixed?: 'left' | 'right' | boolean
|
|
214
248
|
// 是否显示
|
|
215
|
-
isShow?:
|
|
249
|
+
isShow?:
|
|
250
|
+
| boolean
|
|
251
|
+
| ((this: CTX, self: TableBaseItem<MODEL, CTX>) => boolean)
|
|
216
252
|
// 用户表格配置
|
|
217
|
-
userConfigShow?: boolean
|
|
253
|
+
userConfigShow?: boolean
|
|
218
254
|
// 用户表头
|
|
219
|
-
userLabel?: string
|
|
255
|
+
userLabel?: string
|
|
220
256
|
// 表格排序
|
|
221
|
-
sortValues?: [AscParams, DescParams] | [AscParams, DescParams, NoParams]
|
|
257
|
+
sortValues?: [AscParams, DescParams] | [AscParams, DescParams, NoParams]
|
|
222
258
|
// 列属性
|
|
223
|
-
props?: ConvertFunctionContext<TableBaseItemProps, CTX
|
|
259
|
+
props?: ConvertFunctionContext<TableBaseItemProps, CTX>
|
|
224
260
|
// 自定义渲染
|
|
225
|
-
renderFn?: (this: CTX, data: MODEL, index: number) => JSX.Element
|
|
261
|
+
renderFn?: (this: CTX, data: MODEL, index: number) => JSX.Element
|
|
226
262
|
// 过滤函数
|
|
227
|
-
filterFn?: (this: CTX, data: MODEL, query: any) => boolean
|
|
263
|
+
filterFn?: (this: CTX, data: MODEL, query: any) => boolean
|
|
228
264
|
// 过滤组件
|
|
229
|
-
getCellText?: (this: CTX, data: MODEL) => string
|
|
265
|
+
getCellText?: (this: CTX, data: MODEL) => string
|
|
230
266
|
// 过滤的自定义组件配置
|
|
231
|
-
filterData?: FormItem<MODEL, CTX
|
|
267
|
+
filterData?: FormItem<MODEL, CTX>
|
|
232
268
|
// 是否直接显示编辑组件
|
|
233
|
-
showEdit?: boolean
|
|
234
|
-
required?: boolean
|
|
269
|
+
showEdit?: boolean
|
|
270
|
+
required?: boolean
|
|
235
271
|
// 内置编辑组件
|
|
236
272
|
editData?: FormItem<MODEL, CTX> & {
|
|
237
|
-
api?: string | ((this: CTX, data: MODEL) => string)
|
|
273
|
+
api?: string | ((this: CTX, data: MODEL) => string)
|
|
238
274
|
method?: PageModel.AjaxMethod
|
|
239
|
-
beforeSubmit?: CreateDePromiseResult<
|
|
240
|
-
|
|
275
|
+
beforeSubmit?: CreateDePromiseResult<
|
|
276
|
+
(this: CTX, data: MODEL) => AnyObject | false
|
|
277
|
+
>
|
|
278
|
+
isDisabled?: (this: CTX, data: MODEL) => boolean
|
|
241
279
|
/**
|
|
242
280
|
* 自定义更新请求
|
|
243
281
|
* @param this table
|
|
244
282
|
* @param data 请求的数据
|
|
245
283
|
* @returns 是否成功
|
|
246
284
|
*/
|
|
247
|
-
customUpdate?: (this: CTX, data: MODEL) => Promise<boolean | void
|
|
285
|
+
customUpdate?: (this: CTX, data: MODEL) => Promise<boolean | void>
|
|
248
286
|
/**
|
|
249
287
|
* 触发的弹窗名称
|
|
250
288
|
*/
|
|
251
|
-
triggerPoperClassName?: string
|
|
252
|
-
}
|
|
289
|
+
triggerPoperClassName?: string
|
|
290
|
+
}
|
|
253
291
|
// 子元素
|
|
254
|
-
children?: Omit<TableBaseItem<MODEL, CTX>, 'children'>[]
|
|
292
|
+
children?: Omit<TableBaseItem<MODEL, CTX>, 'children'>[]
|
|
255
293
|
// 自定义属性
|
|
256
|
-
customProps?: AnyObject
|
|
294
|
+
customProps?: AnyObject
|
|
257
295
|
// 帮助文本
|
|
258
|
-
helpText?: string
|
|
296
|
+
helpText?: string
|
|
259
297
|
// 显示合计
|
|
260
|
-
showSummary?: number | string
|
|
298
|
+
showSummary?: number | string
|
|
261
299
|
// 静态过滤类型
|
|
262
300
|
fieldType?: FieldType
|
|
263
301
|
/**
|
|
264
302
|
* 显示的行数
|
|
265
303
|
*/
|
|
266
|
-
showRowNumbers?: number
|
|
304
|
+
showRowNumbers?: number
|
|
267
305
|
/**
|
|
268
306
|
* 图标
|
|
269
307
|
*/
|
|
270
308
|
icon?: any
|
|
271
309
|
}
|
|
272
310
|
|
|
273
|
-
interface TableVirtualBaseItem<MODEL = any, CTX = any>
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
311
|
+
interface TableVirtualBaseItem<MODEL = any, CTX = any>
|
|
312
|
+
extends TableBaseItem<MODEL, CTX> {
|
|
313
|
+
title?: string
|
|
314
|
+
dataKey: string
|
|
315
|
+
key?: string
|
|
316
|
+
cellRenderer?: (opt: { rowData: MODEL; rowIndex: number }) => JSX.Element
|
|
317
|
+
headerCellRenderer?: (opt: {
|
|
318
|
+
rowData: MODEL
|
|
319
|
+
rowIndex: number
|
|
320
|
+
}) => JSX.Element
|
|
279
321
|
children?: TableVirtualBaseItem<MODEL, CTX>[]
|
|
280
322
|
}
|
|
281
323
|
|
|
282
324
|
// 创建eType组件类型
|
|
283
|
-
interface CreateFormItemComponent<
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
325
|
+
interface CreateFormItemComponent<
|
|
326
|
+
NAME,
|
|
327
|
+
MODEL,
|
|
328
|
+
CTX,
|
|
329
|
+
PROPS = any,
|
|
330
|
+
EVENTS = any
|
|
331
|
+
> extends FormElBaseItem<MODEL, CTX> {
|
|
332
|
+
eType: NAME
|
|
333
|
+
props?: PROPS
|
|
334
|
+
events?: EVENTS
|
|
287
335
|
style?: StyleValue
|
|
288
336
|
}
|
|
289
337
|
|
|
290
338
|
// 为对象中的函数添加this指向
|
|
291
339
|
type ConvertFunctionContext<T, CTX> = {
|
|
292
|
-
[K in keyof T]: T[K] extends (...rest: any[]) => any
|
|
340
|
+
[K in keyof T]: T[K] extends (...rest: any[]) => any
|
|
341
|
+
? (this: CTX, ...rest: Parameters<T[K]>) => any
|
|
342
|
+
: T[K]
|
|
293
343
|
}
|
|
294
344
|
|
|
295
|
-
type CreatePropsFromElement<
|
|
296
|
-
|
|
297
|
-
|
|
345
|
+
type CreatePropsFromElement<
|
|
346
|
+
P,
|
|
347
|
+
O extends undefined | keyof P = undefined,
|
|
348
|
+
CTX = any
|
|
349
|
+
> = Partial<
|
|
350
|
+
ConvertFunctionContext<
|
|
351
|
+
O extends string | number | symbol ? Omit<P, O> : P,
|
|
352
|
+
CTX
|
|
353
|
+
>
|
|
354
|
+
>
|
|
355
|
+
|
|
298
356
|
// 扩展对象的reflect提示
|
|
299
357
|
type ExtendReflect<T> = T & {
|
|
300
|
-
_reflect?: string
|
|
301
|
-
_reflectChangeKey?: string
|
|
358
|
+
_reflect?: string
|
|
359
|
+
_reflectChangeKey?: string
|
|
302
360
|
}
|
|
303
361
|
|
|
304
362
|
type OptionsData = ExtendReflect<{
|
|
305
|
-
list?: any[]
|
|
306
|
-
label?: string
|
|
307
|
-
value?: string
|
|
308
|
-
[key: string]: any
|
|
363
|
+
list?: any[]
|
|
364
|
+
label?: string
|
|
365
|
+
value?: string
|
|
366
|
+
[key: string]: any
|
|
309
367
|
}>
|
|
310
368
|
|
|
311
369
|
type ExtendOptionsData<T> = T & {
|
|
312
|
-
optionsData: OptionsData
|
|
370
|
+
optionsData: OptionsData
|
|
313
371
|
}
|
|
314
372
|
}
|
|
315
373
|
}
|