@juzhenfe/page-model 3.22.3 → 3.22.4
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/form/type.d.ts +166 -0
- package/dist/components/normal-tab/type.d.ts +18 -0
- package/dist/components/page-model/components/top-tabs/type.d.ts +11 -0
- package/dist/components/page-model/type.d.ts +339 -0
- package/dist/components/scenes-tab/type.d.ts +14 -0
- package/dist/components/search-form/type.d.ts +42 -0
- package/dist/components/table/type.d.ts +364 -0
- package/dist/index.es.js +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/types/common.d.ts +460 -0
- package/dist/types/form-item-types/cascader.d.ts +37 -0
- package/dist/types/form-item-types/checkbox-group.d.ts +19 -0
- package/dist/types/form-item-types/color-picker.d.ts +20 -0
- package/dist/types/form-item-types/date-picker.d.ts +42 -0
- package/dist/types/form-item-types/input-number.d.ts +14 -0
- package/dist/types/form-item-types/input.d.ts +16 -0
- package/dist/types/form-item-types/jz-a-map.d.ts +14 -0
- package/dist/types/form-item-types/jz-cascader.d.ts +18 -0
- package/dist/types/form-item-types/jz-city-picker.d.ts +25 -0
- package/dist/types/form-item-types/jz-ck-editor.d.ts +27 -0
- package/dist/types/form-item-types/jz-editor.d.ts +20 -0
- package/dist/types/form-item-types/jz-file-upload.d.ts +20 -0
- package/dist/types/form-item-types/jz-img-upload.d.ts +23 -0
- package/dist/types/form-item-types/jz-long-input.d.ts +10 -0
- package/dist/types/form-item-types/jz-td-map.d.ts +13 -0
- package/dist/types/form-item-types/no-e-type.d.ts +12 -0
- package/dist/types/form-item-types/radio-group.d.ts +17 -0
- package/dist/types/form-item-types/rate.d.ts +29 -0
- package/dist/types/form-item-types/select-v2.d.ts +46 -0
- package/dist/types/form-item-types/select.d.ts +43 -0
- package/dist/types/form-item-types/slider.d.ts +31 -0
- package/dist/types/form-item-types/switch.d.ts +11 -0
- package/dist/types/form-item-types/time-picker.d.ts +38 -0
- package/dist/types/form-item-types/time-select.d.ts +27 -0
- package/dist/types/renderer.d.ts +10 -0
- package/dist/types/shims-vue-property.d.ts +8 -0
- package/dist/types/shims-vue.d.ts +7 -0
- package/dist/types/window.d.ts +10 -0
- package/package.json +1 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { ColProps, RowProps, CollapseProps, TabsProps, DrawerProps } from 'element-plus';
|
|
2
|
+
import { Component } from 'vue';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
declare global {
|
|
7
|
+
namespace PageModel {
|
|
8
|
+
|
|
9
|
+
type FormMode = 'dialog' | 'fullpage' | 'drawer' | 'custom'
|
|
10
|
+
|
|
11
|
+
type FormStatus = 'add' | 'edit' | 'view'
|
|
12
|
+
|
|
13
|
+
type ContainerMode = 'Col'
|
|
14
|
+
|
|
15
|
+
type ModuleType = 'tabs'
|
|
16
|
+
|
|
17
|
+
type ModuleProps = Partial<CollapseProps & TabsProps>
|
|
18
|
+
|
|
19
|
+
type DialogProps = {
|
|
20
|
+
title: string | ((status: FormStatus) => string);
|
|
21
|
+
width: string | number;
|
|
22
|
+
fullscreen: boolean;
|
|
23
|
+
top: string;
|
|
24
|
+
modal: boolean;
|
|
25
|
+
appendToBody: boolean;
|
|
26
|
+
lockScroll: boolean;
|
|
27
|
+
customClass: string;
|
|
28
|
+
openDelay: number;
|
|
29
|
+
closeDelay: number;
|
|
30
|
+
closeOnClickModal: boolean;
|
|
31
|
+
closeOnPressEscape: boolean;
|
|
32
|
+
showClose: boolean;
|
|
33
|
+
beforeClose: (done: Function) => void;
|
|
34
|
+
draggable: boolean;
|
|
35
|
+
center: boolean;
|
|
36
|
+
destroyOnClose: boolean;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
type FullPageProps = {
|
|
40
|
+
title?: string | ((status: FormStatus) => string);
|
|
41
|
+
show?: boolean;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
type ServerValidateError = {
|
|
45
|
+
errors: { [key: string]: string[] };
|
|
46
|
+
status: number;
|
|
47
|
+
title: string;
|
|
48
|
+
type: string;
|
|
49
|
+
traceId: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
type ServerError = {
|
|
53
|
+
data: ServerValidateError
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
type FormProps = {
|
|
57
|
+
rules: AnyObject;
|
|
58
|
+
inline: boolean;
|
|
59
|
+
labelPosition: 'left' | 'right' | 'top';
|
|
60
|
+
labelWidth: string;
|
|
61
|
+
labelSuffix: string;
|
|
62
|
+
hideRequiredAsterisk: boolean;
|
|
63
|
+
showMessage: boolean;
|
|
64
|
+
inlineMessage: boolean;
|
|
65
|
+
statusIcon: boolean;
|
|
66
|
+
size: Size;
|
|
67
|
+
disabled: boolean;
|
|
68
|
+
validateOnRuleChange: boolean;
|
|
69
|
+
class: string;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
type ColLayout = {
|
|
73
|
+
col?: Partial<ColProps>
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
type FormRowProps = Partial<RowProps>
|
|
77
|
+
|
|
78
|
+
type GridLayout = {}
|
|
79
|
+
|
|
80
|
+
type FormItem<MODEL = AnyObject, CTX = any> = LinkedFormItem<MODEL, CTX> & ColLayout & GridLayout
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
type Form<MODEL = AnyObject, CTX = any> = {
|
|
84
|
+
// 表单容器的显示模式
|
|
85
|
+
mode?: FormMode;
|
|
86
|
+
// 弹窗模式配置参数
|
|
87
|
+
dialogProps?: CreatePropsFromElement<Omit<DrawerProps, 'title'> & { title?: CreateDeType<string, CTX> }, undefined, CTX>;
|
|
88
|
+
// 抽屉的参数
|
|
89
|
+
drawerProps?: CreatePropsFromElement<(Omit<DrawerProps, 'title'>) & { title?: CreateDeType<string, CTX> }, undefined, CTX>;
|
|
90
|
+
// 全屏表单模式参数
|
|
91
|
+
fullpageProps?: FullPageProps;
|
|
92
|
+
// 容器组件
|
|
93
|
+
formContainer?: Component;
|
|
94
|
+
// 容器组件自定义样式
|
|
95
|
+
formContainerProps?: AnyObject;
|
|
96
|
+
// 表单参数
|
|
97
|
+
props?: Partial<FormProps>;
|
|
98
|
+
// 表单模块类型
|
|
99
|
+
moduleConfig?: {
|
|
100
|
+
type: ModuleType;
|
|
101
|
+
props?: ModuleProps;
|
|
102
|
+
};
|
|
103
|
+
// 块级配置
|
|
104
|
+
sectionConfig?: {
|
|
105
|
+
// 模式
|
|
106
|
+
mode?: 'card' | 'collapse';
|
|
107
|
+
// 是否可以折叠
|
|
108
|
+
collapse?: boolean
|
|
109
|
+
// 块的单独默认配置
|
|
110
|
+
sections?: {
|
|
111
|
+
[key: string]: {
|
|
112
|
+
// 是否可以折叠
|
|
113
|
+
collapse?: boolean
|
|
114
|
+
// 默认收缩
|
|
115
|
+
defaultCollapse?: boolean
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// 表单初始数据
|
|
121
|
+
initialData?: AnyObject;
|
|
122
|
+
|
|
123
|
+
// 表单打开
|
|
124
|
+
onFormOpened?: (this: CTX) => void;
|
|
125
|
+
|
|
126
|
+
// 表单隐藏
|
|
127
|
+
onFormClosed?: (this: CTX) => void;
|
|
128
|
+
|
|
129
|
+
// 绑定前的处理函数
|
|
130
|
+
bindData?: CreateDePromiseResult<(this: CTX, data: MODEL) => AnyObject | false>;
|
|
131
|
+
|
|
132
|
+
// 提交前的处理逻辑
|
|
133
|
+
beforeSubmit?: CreateDePromiseResult<(this: CTX, data: MODEL) => AnyObject | false>;
|
|
134
|
+
|
|
135
|
+
// 新增接口完成
|
|
136
|
+
onAdded?: (this: CTX, data: any) => any;
|
|
137
|
+
|
|
138
|
+
// 更新接口完成
|
|
139
|
+
onUpdated?: (this: CTX, data: any) => any;
|
|
140
|
+
|
|
141
|
+
// 表单数据变化回调
|
|
142
|
+
onFormDataChange?: (this: CTX, data: MODEL) => void;
|
|
143
|
+
|
|
144
|
+
// 表单字段校验
|
|
145
|
+
required?: (keyof MODEL)[];
|
|
146
|
+
|
|
147
|
+
// 列表展示的模式
|
|
148
|
+
containerMode?: ContainerMode;
|
|
149
|
+
|
|
150
|
+
// row属性
|
|
151
|
+
rowProps?: FormRowProps;
|
|
152
|
+
|
|
153
|
+
// 表单元素
|
|
154
|
+
els: FormItem<MODEL, CTX>[];
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* 是否离开前判断表单变化
|
|
158
|
+
*/
|
|
159
|
+
leaveConfirm?: boolean;
|
|
160
|
+
/**
|
|
161
|
+
* 离开前提示信息
|
|
162
|
+
*/
|
|
163
|
+
leaveConfirmMessage?: string | ((this: CTX, model: MODEL) => string);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TabsProps } from 'element-plus';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
namespace PageModel {
|
|
6
|
+
type NormalTabItem = {
|
|
7
|
+
label: string;
|
|
8
|
+
value: AnyObject;
|
|
9
|
+
default?: boolean;
|
|
10
|
+
} & _Badge
|
|
11
|
+
|
|
12
|
+
type NormalTab = {
|
|
13
|
+
props?: Partial<TabsProps>;
|
|
14
|
+
panes?: NormalTabItem[];
|
|
15
|
+
refreshOnChange?: boolean;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
import { default as ReflectRelation } from '../../utils/reflect/reflect-collector';
|
|
2
|
+
import { Component, WatchStopHandle } from 'vue';
|
|
3
|
+
import { default as FormManager } from '../form/constructor';
|
|
4
|
+
import { default as SearchFormManager } from '../search-form/constructor';
|
|
5
|
+
import { default as PageModelManager } from './constructor';
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
declare global {
|
|
9
|
+
namespace PageModel {
|
|
10
|
+
|
|
11
|
+
type Size = 'large' | 'default' | 'small'
|
|
12
|
+
|
|
13
|
+
type UrlMode = 'path' | 'params'
|
|
14
|
+
|
|
15
|
+
type AjaxMethod = 'get' | 'post' | 'delete' | 'put' | 'patch' | 'head' | 'options' | 'connect' | 'trace'
|
|
16
|
+
|
|
17
|
+
type ExportMode = 'get' | 'build'
|
|
18
|
+
|
|
19
|
+
type RequestProcessFn<CTX = any> = (this: CTX, ...rest: any[]) => any;
|
|
20
|
+
|
|
21
|
+
type GetReqResultProcessFn<CTX = any> = (this: CTX, ...rest: any[]) => {
|
|
22
|
+
total: number;
|
|
23
|
+
list: any[];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 可能返回promise的函数
|
|
28
|
+
*/
|
|
29
|
+
type MayBeAPromiseFn<T extends (...args: any[]) => any> = T | ((...args: Parameters<T>) => Promise<ReturnType<T>>)
|
|
30
|
+
|
|
31
|
+
type PatchConfigFn = {
|
|
32
|
+
(this: PageModelManager, config: PageModel.Config | PageModel.UConfig): PageModel.Config | PageModel.UConfig
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
type InnerPatchName = 'serverFormErrorHandler'
|
|
36
|
+
|
|
37
|
+
type Patch = InnerPatchName | PatchConfigFn
|
|
38
|
+
|
|
39
|
+
type Reflections = {
|
|
40
|
+
[key: string]: any[];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
type TreeProps = {
|
|
44
|
+
id: string;
|
|
45
|
+
pId: string;
|
|
46
|
+
children?: string;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
type ReflectWatches = WatchStopHandle[] & {
|
|
50
|
+
reflect: ReflectRelation
|
|
51
|
+
}
|
|
52
|
+
type Config<MODEL = AnyObject, EXTENDS = any> = {
|
|
53
|
+
// 模块名称
|
|
54
|
+
name?: string;
|
|
55
|
+
/**
|
|
56
|
+
* 启用按钮权限
|
|
57
|
+
*/
|
|
58
|
+
openAuthButton?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* 是否在config准备完毕后直接获取数据
|
|
61
|
+
*/
|
|
62
|
+
getImmediate?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* 是否开启外置数据反射
|
|
65
|
+
*/
|
|
66
|
+
reflect?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* 全局设置尺寸
|
|
69
|
+
*/
|
|
70
|
+
size?: Size;
|
|
71
|
+
/**
|
|
72
|
+
* 阴影
|
|
73
|
+
*/
|
|
74
|
+
shadow?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* 键盘事件
|
|
77
|
+
*/
|
|
78
|
+
keyboardEvents?: {
|
|
79
|
+
[key: string]: (this: PageModelManager, e: KeyboardEvent) => any;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* 基请求地址,增删改查接口基于此url构建restful风格地址
|
|
84
|
+
*/
|
|
85
|
+
url?: string;
|
|
86
|
+
/**
|
|
87
|
+
* 删除接口、详情接口参数构建方式,path参与路径,params参数请求
|
|
88
|
+
*/
|
|
89
|
+
urlMode?: UrlMode;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* 获取API地址
|
|
93
|
+
*/
|
|
94
|
+
getUrl?: string;
|
|
95
|
+
/**
|
|
96
|
+
* 获取method
|
|
97
|
+
*/
|
|
98
|
+
getMethod?: AjaxMethod;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* 自定义获取器
|
|
102
|
+
*/
|
|
103
|
+
customGetter?: MayBeAPromiseFn<(this: PageModelManager, reqParams: AnyObject) => {
|
|
104
|
+
total: number;
|
|
105
|
+
data: MODEL[];
|
|
106
|
+
}>
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* 获取的其他参数
|
|
110
|
+
*/
|
|
111
|
+
otherParams?: AnyObject;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* 列表接口请求前回调
|
|
115
|
+
*/
|
|
116
|
+
beforeGetRequest?: (this: PageModelManager, reqParams: AnyObject) => void;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* 获取的数据拿取方式(处理不同请求返回数据列表的方法)
|
|
120
|
+
*/
|
|
121
|
+
getReqResultProcessFn?: MayBeAPromiseFn<GetReqResultProcessFn<PageModelManager>>
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* 请求参数回调处理
|
|
125
|
+
* @param this
|
|
126
|
+
* @param data 列表数据
|
|
127
|
+
* @returns 列表数据
|
|
128
|
+
*/
|
|
129
|
+
getDataCallback?: (this: PageModelManager, data: MODEL[]) => ExtendKeys<MODEL>[];
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* 树形数据配置
|
|
133
|
+
*/
|
|
134
|
+
treeProps?: TreeProps;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* 删除地址
|
|
138
|
+
*/
|
|
139
|
+
delUrl?: string;
|
|
140
|
+
/**
|
|
141
|
+
* 从row中获取删除参数的key
|
|
142
|
+
*/
|
|
143
|
+
delKey?: keyof MODEL;
|
|
144
|
+
/**
|
|
145
|
+
* 删除参数的rowKey键名称
|
|
146
|
+
*/
|
|
147
|
+
delParamsKey?: keyof MODEL;
|
|
148
|
+
/**
|
|
149
|
+
* 删除method
|
|
150
|
+
*/
|
|
151
|
+
delMethod?: AjaxMethod;
|
|
152
|
+
/**
|
|
153
|
+
* 删除参数
|
|
154
|
+
*/
|
|
155
|
+
delParams?: AnyObject | ((this: PageModelManager, data: MODEL) => AnyObject);
|
|
156
|
+
/**
|
|
157
|
+
* 删除的参数处理方法
|
|
158
|
+
*/
|
|
159
|
+
delReqDataProcessFn?: RequestProcessFn;
|
|
160
|
+
/**
|
|
161
|
+
* 删除的数据拿取方式
|
|
162
|
+
*/
|
|
163
|
+
delReqResultProcessFn?: RequestProcessFn;
|
|
164
|
+
|
|
165
|
+
// 更新地址
|
|
166
|
+
updUrl?: string;
|
|
167
|
+
// 更新方法
|
|
168
|
+
updMethod?: AjaxMethod;
|
|
169
|
+
// 更新的数据拿取方式
|
|
170
|
+
updReqResultProcessFn?: RequestProcessFn;
|
|
171
|
+
|
|
172
|
+
// 新增地址
|
|
173
|
+
addUrl?: string;
|
|
174
|
+
// 新增方法
|
|
175
|
+
addMethod?: AjaxMethod;
|
|
176
|
+
// 新增的数据拿取方式
|
|
177
|
+
addReqResultProcessFn?: RequestProcessFn;
|
|
178
|
+
// 新增按钮的样式
|
|
179
|
+
addButton?: Pick<Button, 'text' | 'props'>;
|
|
180
|
+
// 新增按钮是否放置在多选操作
|
|
181
|
+
addButtonInSelectButtonsArea?: boolean;
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* 详情地址
|
|
185
|
+
*/
|
|
186
|
+
detailUrl?: string;
|
|
187
|
+
/**
|
|
188
|
+
* 提取详情参数的rowKey键名称
|
|
189
|
+
*/
|
|
190
|
+
detailKey?: keyof MODEL;
|
|
191
|
+
/**
|
|
192
|
+
* 详情请求参数的rowKey键名称
|
|
193
|
+
*/
|
|
194
|
+
detailParamsKey?: keyof MODEL;
|
|
195
|
+
/**
|
|
196
|
+
* 详情method
|
|
197
|
+
*/
|
|
198
|
+
detailMethod?: string;
|
|
199
|
+
// 详情的参数获取方式
|
|
200
|
+
detailReqDataProcessFn?: RequestProcessFn;
|
|
201
|
+
// 详情的数据拿取方式
|
|
202
|
+
detailReqResultProcessFn?: RequestProcessFn;
|
|
203
|
+
// 详情是否显示记载中
|
|
204
|
+
detailLoading?: boolean;
|
|
205
|
+
// 是否使用详情
|
|
206
|
+
useDetail?: boolean;
|
|
207
|
+
|
|
208
|
+
// 导入地址
|
|
209
|
+
importUrl?: string;
|
|
210
|
+
// 导入方法
|
|
211
|
+
importMethod?: AjaxMethod;
|
|
212
|
+
// 导入文件名称
|
|
213
|
+
importFileKey?: string;
|
|
214
|
+
// 导入参数
|
|
215
|
+
importParams?: AnyObject | ((this: any, data: MODEL) => AnyObject);
|
|
216
|
+
|
|
217
|
+
// 导出地址
|
|
218
|
+
exportUrl?: string;
|
|
219
|
+
// 导出的模式 后端构建 get 或者 前端构建 build
|
|
220
|
+
exportMode?: ExportMode;
|
|
221
|
+
// 导出参数
|
|
222
|
+
exportParams?: AnyObject | ((this: any, data: MODEL) => AnyObject);
|
|
223
|
+
|
|
224
|
+
// 补丁,可以对config进行处理
|
|
225
|
+
patches?: Patch[];
|
|
226
|
+
|
|
227
|
+
// 顶部布局参数,包含tab栏等
|
|
228
|
+
tabs?: Tabs;
|
|
229
|
+
|
|
230
|
+
// config事件
|
|
231
|
+
events?: {
|
|
232
|
+
[key: string]: (this: PageModelManager, ...rest: any[]) => any;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// 搜索表单
|
|
236
|
+
searchForm?: SearchForm<MODEL, SearchFormManager>;
|
|
237
|
+
|
|
238
|
+
// 表格
|
|
239
|
+
table: Table<MODEL, TableManager>;
|
|
240
|
+
|
|
241
|
+
// 是否存在表单
|
|
242
|
+
hasForm?: boolean;
|
|
243
|
+
|
|
244
|
+
// 表单配置
|
|
245
|
+
form?: Form<MODEL, FormManager<MODEL>>;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// 使用配置
|
|
249
|
+
type UConfig<T = AnyObject, K = any> = Config<T, K> & {
|
|
250
|
+
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// 注册时候的配置
|
|
254
|
+
type InstallOptions = {
|
|
255
|
+
// 请求对象 必须实现
|
|
256
|
+
request: IRequest;
|
|
257
|
+
// 捕获错误
|
|
258
|
+
errorHandler?: ErrorHandler;
|
|
259
|
+
// 默认配置
|
|
260
|
+
config?: Config<any, any>;
|
|
261
|
+
// patches
|
|
262
|
+
patches?: PatchConfigFn[];
|
|
263
|
+
// 文本配置
|
|
264
|
+
textConfig: TextConfig;
|
|
265
|
+
// 样式
|
|
266
|
+
style?: GlobalStyle;
|
|
267
|
+
// 导出excel的配置
|
|
268
|
+
excelExportConfig?: ExcelExportConfig;
|
|
269
|
+
// 保存配置
|
|
270
|
+
userSetting?: UserSetting
|
|
271
|
+
// 空内容组件
|
|
272
|
+
emptyData?: Component
|
|
273
|
+
/**
|
|
274
|
+
* 获取zIndex
|
|
275
|
+
*/
|
|
276
|
+
getZIndex?: () => number;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
type ErrorHandler = {
|
|
281
|
+
(error: any): void;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
type IRquestRquestMethods<T extends string, K> = {
|
|
285
|
+
[key in T]: K;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
type IRequest = IRquestRquestMethods<AjaxMethod, (url: string, ...rest: any[]) => Promise<any>>
|
|
289
|
+
|
|
290
|
+
type TextConfig = {
|
|
291
|
+
delTitle?: string;
|
|
292
|
+
delText?: string;
|
|
293
|
+
delSuccessText?: string;
|
|
294
|
+
addSuccessText?: string;
|
|
295
|
+
updSuccessText?: string;
|
|
296
|
+
importSuccessText?: string;
|
|
297
|
+
leaveConfirmTitle?: string;
|
|
298
|
+
leaveConfirmText?: string;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
type GlobalStyle = {
|
|
302
|
+
searchFormItemWidth?: string;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
type ExcelExportConfig = {
|
|
306
|
+
fontFamily?: string;
|
|
307
|
+
fontSize?: number;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
type PageModelUserConfig = {
|
|
311
|
+
/**
|
|
312
|
+
* 显示的行数,超出隐藏
|
|
313
|
+
*/
|
|
314
|
+
showRowNumbers?: number;
|
|
315
|
+
/**
|
|
316
|
+
* 改变即刻搜索
|
|
317
|
+
*/
|
|
318
|
+
searchOnValueChange?: boolean;
|
|
319
|
+
/**
|
|
320
|
+
* enter监听搜索
|
|
321
|
+
*/
|
|
322
|
+
enterSearch?: boolean;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
type userSettingMode = 'user' | 'server'
|
|
326
|
+
|
|
327
|
+
type UserSetting = {
|
|
328
|
+
// 配置的模式 本地 、服务端
|
|
329
|
+
mode?: userSettingMode;
|
|
330
|
+
// 提交的方法
|
|
331
|
+
serverUpdateFn?: (key: string, val: string) => Promise<boolean>;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
export type Config<MODEL, EXTEND> = PageModel.Config<MODEL, EXTEND>
|
|
338
|
+
|
|
339
|
+
export type InstallOptions = PageModel.InstallOptions
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/// <reference path="../../types/common.d.ts" />
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
declare namespace PageModel {
|
|
5
|
+
|
|
6
|
+
type SearchFormExpandMode = 'dialog' | 'expanded'
|
|
7
|
+
|
|
8
|
+
type SearchForm<MODEL = any, CTX = any> = {
|
|
9
|
+
// 更多的扩展形式
|
|
10
|
+
expandMode?: SearchFormExpandMode;
|
|
11
|
+
// 尺寸
|
|
12
|
+
size?: Size;
|
|
13
|
+
// label宽度
|
|
14
|
+
labelWidth?: string;
|
|
15
|
+
// 初始表单数据
|
|
16
|
+
initialData?: Partial<MODEL>;
|
|
17
|
+
// 成员
|
|
18
|
+
els: LinkedFormItem<MODEL, CTX>[];
|
|
19
|
+
// 处理函数
|
|
20
|
+
beforeSubmit?: (this: any, data: ExtendKeys<MODEL>) => ExtendKeys<MODEL> | false;
|
|
21
|
+
|
|
22
|
+
// 表单数据变化回调
|
|
23
|
+
onFormDataChange?: (this: CTX, data: MODEL) => void;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 是否值变化检索
|
|
27
|
+
*/
|
|
28
|
+
searchOnValueChange?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* 是否设置私人配置
|
|
31
|
+
*/
|
|
32
|
+
searchOnValueChangeSetted?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* 是否静态enter检索
|
|
35
|
+
*/
|
|
36
|
+
enterSearch?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* 是否设置私人配置
|
|
39
|
+
*/
|
|
40
|
+
enterSearchSetted?: boolean;
|
|
41
|
+
}
|
|
42
|
+
}
|