@juzhenfe/page-model 3.22.3 → 3.22.6
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/buttons-renderer/components/button-item-render/index.vue.d.ts +66 -0
- package/dist/components/buttons-renderer/index.vue.d.ts +40 -0
- package/dist/components/buttons-renderer/utils/index.d.ts +2 -2
- package/dist/components/column-filter-tools/index.vue.d.ts +10 -0
- package/dist/components/column-sort-tools/index.vue.d.ts +10 -0
- package/dist/components/draggable-list/index.vue.d.ts +25 -0
- package/dist/components/editable-table/components/column-tools/index.vue.d.ts +11 -0
- package/dist/components/editable-table/components/column-tools/setting.vue.d.ts +9 -0
- package/dist/components/editable-table/components/table-cell/index.vue.d.ts +16 -0
- package/dist/components/editable-table/index.d.ts +13 -14
- package/dist/components/editable-table/index.vue.d.ts +74 -0
- package/dist/components/form/components/col-container/components/module-container/index.vue.d.ts +30 -0
- package/dist/components/form/components/col-container/components/section-title-els/index.vue.d.ts +24 -0
- package/dist/components/form/components/col-container/components/tabs-mode-container/index.vue.d.ts +32 -0
- package/dist/components/form/components/col-container/index.vue.d.ts +24 -0
- package/dist/components/form/components/column-tools/setting.vue.d.ts +11 -0
- package/dist/components/form/components/column-tools/use-setting.d.ts +14 -14
- package/dist/components/form/components/container-component/index.vue.d.ts +22 -0
- package/dist/components/form/components/section-config/merge.d.ts +3 -3
- package/dist/components/form/components/section-config/use.d.ts +14 -14
- package/dist/components/form/constructor.d.ts +79 -80
- package/dist/components/form/index.d.ts +2 -3
- package/dist/components/form/index.vue.d.ts +19 -0
- package/dist/components/form/type.d.ts +168 -0
- package/dist/components/form/utils/save-columns.d.ts +30 -30
- package/dist/components/form/utils/use-form-els.d.ts +4 -4
- package/dist/components/form-container/components/dialog-mode/index.vue.d.ts +29 -0
- package/dist/components/form-container/components/drawer-mode/index.vue.d.ts +29 -0
- package/dist/components/form-container/components/full-page/index.vue.d.ts +29 -0
- package/dist/components/form-container/index.vue.d.ts +27 -0
- package/dist/components/form-dialog/index.vue.d.ts +30 -0
- package/dist/components/form-dialog/use-move.d.ts +19 -19
- package/dist/components/form-drawer/index.vue.d.ts +35 -0
- package/dist/components/form-item-renderer/index.vue.d.ts +75 -0
- package/dist/components/line-clamp-tools/index.vue.d.ts +9 -0
- package/dist/components/normal-tab/index.vue.d.ts +17 -0
- package/dist/components/normal-tab/type.d.ts +20 -0
- package/dist/components/page-model/components/selectable-operate/index.vue.d.ts +16 -0
- package/dist/components/page-model/components/top-tabs/constructor.d.ts +9 -10
- package/dist/components/page-model/components/top-tabs/index.vue.d.ts +21 -0
- package/dist/components/page-model/components/top-tabs/type.d.ts +11 -0
- package/dist/components/page-model/constructor.d.ts +156 -157
- package/dist/components/page-model/index.d.ts +4 -6
- package/dist/components/page-model/index.vue.d.ts +118 -0
- package/dist/components/page-model/patches/patch-config-urls.d.ts +2 -2
- package/dist/components/page-model/patches/patch-default-config.d.ts +2 -2
- package/dist/components/page-model/patches/patch-selectable.d.ts +2 -2
- package/dist/components/page-model/patches/patch-size.d.ts +2 -2
- package/dist/components/page-model/patches/patch-table-dragable.d.ts +2 -2
- package/dist/components/page-model/patches/patch-user-config.d.ts +2 -2
- package/dist/components/page-model/type.d.ts +345 -0
- package/dist/components/page-model/utils/default-config.d.ts +1 -1
- package/dist/components/page-model/utils/default-excel-export-config.d.ts +1 -1
- package/dist/components/page-model/utils/default-style-config.d.ts +1 -1
- package/dist/components/page-model/utils/default-text-config.d.ts +1 -1
- package/dist/components/page-model/utils/default-user-setting.d.ts +1 -1
- package/dist/components/page-model/utils/error-handler.d.ts +1 -1
- package/dist/components/page-model/utils/manager-controller.d.ts +47 -48
- package/dist/components/page-model/utils/patch-config.d.ts +1 -2
- package/dist/components/page-model/utils/use-auth-buttons.d.ts +7 -8
- package/dist/components/page-model/utils/use-keyboard-event.d.ts +9 -9
- package/dist/components/scenes-tab/index.vue.d.ts +5 -0
- package/dist/components/scenes-tab/type.d.ts +14 -0
- package/dist/components/search-form/components/search-form-full/index.vue.d.ts +16 -0
- package/dist/components/search-form/constructor.d.ts +21 -22
- package/dist/components/search-form/index.vue.d.ts +19 -0
- package/dist/components/search-form/type.d.ts +42 -0
- package/dist/components/search-form/use-detect-item-width.d.ts +5 -6
- package/dist/components/simple-popover/index.vue.d.ts +29 -0
- package/dist/components/table/components/column-tools/index.vue.d.ts +10 -0
- package/dist/components/table/components/column-tools/setting.vue.d.ts +17 -0
- package/dist/components/table/components/column-tools/use-setting.d.ts +14 -14
- package/dist/components/table/components/column-tools/use-user-config.d.ts +14 -14
- package/dist/components/table/components/column-tools/use-user-show-row-config.d.ts +35 -35
- package/dist/components/table/components/column-tools/user-config.vue.d.ts +11 -0
- package/dist/components/table/components/context-column-summary/index.vue.d.ts +13 -0
- package/dist/components/table/components/context-menu/index.vue.d.ts +35 -0
- package/dist/components/table/components/empty-data/index.vue.d.ts +7 -0
- package/dist/components/table/components/export-form/index.vue.d.ts +13 -0
- package/dist/components/table/components/export-form/use.d.ts +16 -17
- package/dist/components/table/components/selections-table/index.vue.d.ts +10 -0
- package/dist/components/table/components/selections-table/use.d.ts +15 -15
- package/dist/components/table/components/table-column/components/filter-zone/index.vue.d.ts +9 -0
- package/dist/components/table/components/table-column/components/filter-zone/utils/index.d.ts +69 -69
- package/dist/components/table/components/table-column/index.vue.d.ts +7 -0
- package/dist/components/table/components/table-v2/index.vue.d.ts +20 -0
- package/dist/components/table/components/table-wrap/index.vue.d.ts +24 -0
- package/dist/components/table/constructor.d.ts +344 -345
- package/dist/components/table/index.vue.d.ts +30 -0
- package/dist/components/table/type.d.ts +366 -0
- package/dist/components/table/utils/save-column-filter.d.ts +2 -2
- package/dist/components/table/utils/save-column-sort.d.ts +2 -2
- package/dist/components/table/utils/save-columns.d.ts +38 -38
- package/dist/components/table/utils/save-config.d.ts +6 -6
- package/dist/components/table/utils/use-column-drag.d.ts +8 -8
- package/dist/components/table/utils/use-listen-scroll.d.ts +5 -6
- package/dist/components/table/utils/use-static-summary.d.ts +11 -12
- package/dist/components/table/utils/use-table-config-change.d.ts +5 -6
- package/dist/components/table/utils/use-table-els.d.ts +4 -5
- package/dist/components/table-cell-renderer/index.vue.d.ts +58 -0
- package/dist/components/table-toolsbox/index.vue.d.ts +24 -0
- package/dist/index.es.js +1809 -1803
- package/dist/index.umd.js +2 -2
- package/dist/main.d.ts +14 -13
- package/dist/types/common.d.ts +485 -0
- package/dist/types/form-item-types/cascader.d.ts +39 -0
- package/dist/types/form-item-types/checkbox-group.d.ts +19 -0
- package/dist/types/form-item-types/color-picker.d.ts +21 -0
- package/dist/types/form-item-types/date-picker.d.ts +46 -0
- package/dist/types/form-item-types/input-number.d.ts +16 -0
- package/dist/types/form-item-types/input.d.ts +18 -0
- package/dist/types/form-item-types/jz-a-map.d.ts +14 -0
- package/dist/types/form-item-types/jz-cascader.d.ts +21 -0
- package/dist/types/form-item-types/jz-city-picker.d.ts +28 -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 +30 -0
- package/dist/types/form-item-types/select-v2.d.ts +48 -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 +15 -0
- package/dist/types/form-item-types/time-picker.d.ts +42 -0
- package/dist/types/form-item-types/time-select.d.ts +31 -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/dist/utils/config-saver.d.ts +51 -51
- package/dist/utils/define-config.d.ts +2 -3
- package/dist/utils/event-chain.d.ts +9 -9
- package/dist/utils/event-emitter.d.ts +7 -7
- package/dist/utils/index.d.ts +101 -102
- package/dist/utils/infinite-table.d.ts +49 -49
- package/dist/utils/manager.d.ts +13 -14
- package/dist/utils/provide-keys.d.ts +20 -20
- package/dist/utils/reflect/index.d.ts +14 -15
- package/dist/utils/reflect/reflect-collector.d.ts +25 -25
- package/dist/utils/resize.d.ts +2 -3
- package/package.json +9 -7
package/dist/main.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference path="./types/common.d.ts" />
|
|
1
2
|
import { InstallOptions } from './components/page-model/type';
|
|
2
3
|
import { default as defineConfig } from './utils/define-config';
|
|
3
4
|
import { App } from 'vue';
|
|
@@ -11,16 +12,16 @@ import { EditableTable, defineEditableTable } from './components/editable-table'
|
|
|
11
12
|
import { default as DraggableList } from './components/draggable-list/index.vue';
|
|
12
13
|
import { default as SimplePopover } from './components/simple-popover/index.vue';
|
|
13
14
|
import { FilterItemTypeEnum, FilterMatchModeEnum, updateCompareOptions, updateCompareNoValueOptions } from './components/table/components/table-column/components/filter-zone/utils';
|
|
14
|
-
|
|
15
|
-
export * from './components/form';
|
|
16
|
-
declare const columnTools: {
|
|
17
|
-
saveTableColumns: any;
|
|
18
|
-
genSaveColumnName: any;
|
|
19
|
-
};
|
|
20
|
-
export { defineConfig, ButtonsRenderer, TableCellRenderer, FormDialog, FormDrawer, EditableTable, defineEditableTable, columnTools, TableColumnSetting, DraggableList, SimplePopover, FilterItemTypeEnum, updateCompareOptions, updateCompareNoValueOptions, FilterMatchModeEnum, Sortable };
|
|
21
|
-
declare const ModelComponent: {
|
|
22
|
-
install: (app: App, options: InstallOptions) => App<any>;
|
|
23
|
-
version: string;
|
|
24
|
-
updateTableColumns(content: any): void;
|
|
25
|
-
};
|
|
26
|
-
export default ModelComponent;
|
|
15
|
+
export type { Config, InstallOptions } from './components/page-model/type';
|
|
16
|
+
export * from './components/form';
|
|
17
|
+
declare const columnTools: {
|
|
18
|
+
saveTableColumns: any;
|
|
19
|
+
genSaveColumnName: any;
|
|
20
|
+
};
|
|
21
|
+
export { defineConfig, ButtonsRenderer, TableCellRenderer, FormDialog, FormDrawer, EditableTable, defineEditableTable, columnTools, TableColumnSetting, DraggableList, SimplePopover, FilterItemTypeEnum, updateCompareOptions, updateCompareNoValueOptions, FilterMatchModeEnum, Sortable };
|
|
22
|
+
declare const ModelComponent: {
|
|
23
|
+
install: (app: App, options: InstallOptions) => App<any>;
|
|
24
|
+
version: string;
|
|
25
|
+
updateTableColumns(content: any): void;
|
|
26
|
+
};
|
|
27
|
+
export default ModelComponent;
|
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
/// <reference path="../components/page-model/type.d.ts" />
|
|
2
|
+
/// <reference path="./form-item-types/cascader.d.ts" />
|
|
3
|
+
/// <reference path="./form-item-types/checkbox-group.d.ts" />
|
|
4
|
+
/// <reference path="./form-item-types/input-number.d.ts" />
|
|
5
|
+
/// <reference path="./form-item-types/input.d.ts" />
|
|
6
|
+
/// <reference path="./form-item-types/no-e-type.d.ts" />
|
|
7
|
+
/// <reference path="./form-item-types/select.d.ts" />
|
|
8
|
+
/// <reference path="./form-item-types/color-picker.d.ts" />
|
|
9
|
+
/// <reference path="./form-item-types/date-picker.d.ts" />
|
|
10
|
+
/// <reference path="./form-item-types/radio-group.d.ts" />
|
|
11
|
+
/// <reference path="./form-item-types/rate.d.ts" />
|
|
12
|
+
/// <reference path="./form-item-types/select-v2.d.ts" />
|
|
13
|
+
/// <reference path="./form-item-types/slider.d.ts" />
|
|
14
|
+
/// <reference path="./form-item-types/switch.d.ts" />
|
|
15
|
+
/// <reference path="./form-item-types/time-picker.d.ts" />
|
|
16
|
+
/// <reference path="./form-item-types/time-select.d.ts" />
|
|
17
|
+
/// <reference path="./form-item-types/jz-a-map.d.ts" />
|
|
18
|
+
/// <reference path="./form-item-types/jz-td-map.d.ts" />
|
|
19
|
+
/// <reference path="./form-item-types/jz-city-picker.d.ts" />
|
|
20
|
+
/// <reference path="./form-item-types/jz-editor.d.ts" />
|
|
21
|
+
/// <reference path="./form-item-types/jz-ck-editor.d.ts" />
|
|
22
|
+
/// <reference path="./form-item-types/jz-img-upload.d.ts" />
|
|
23
|
+
/// <reference path="./form-item-types/jz-file-upload.d.ts" />
|
|
24
|
+
/// <reference path="./form-item-types/jz-cascader.d.ts" />
|
|
25
|
+
|
|
26
|
+
import { ButtonProps } from 'element-plus';
|
|
27
|
+
import { StyleValue, VNode } from 'vue';
|
|
28
|
+
import { JSX } from 'vue/jsx-runtime';
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
declare global {
|
|
32
|
+
type AnyObject = {
|
|
33
|
+
[key: string]: any
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
type ExtendKeys<T> = T & AnyObject
|
|
37
|
+
|
|
38
|
+
type AnyFunction = (...args: any[]) => any
|
|
39
|
+
|
|
40
|
+
type CreateDeType<T, CTX = any> = T | ((this: CTX, ...rest: any[]) => T)
|
|
41
|
+
|
|
42
|
+
type CreateDePromiseResult<FN extends (...rest: any[]) => any> =
|
|
43
|
+
| FN
|
|
44
|
+
| ((
|
|
45
|
+
this: ThisParameterType<FN>,
|
|
46
|
+
...rest: Parameters<FN>
|
|
47
|
+
) => Promise<ReturnType<FN>>)
|
|
48
|
+
|
|
49
|
+
type FilterType = 'string' | 'number' | 'date' | 'boolean' | 'select' | 'list'
|
|
50
|
+
|
|
51
|
+
namespace PageModel {
|
|
52
|
+
type _ButtonProps = Omit<ButtonProps, 'icon'> & {
|
|
53
|
+
icon: any
|
|
54
|
+
title: string
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
type LinkedFormItem<MODEL = any, CTX = any> =
|
|
58
|
+
| ElInput<MODEL, CTX>
|
|
59
|
+
| ElInputNumber<MODEL, CTX>
|
|
60
|
+
| ElCascader<MODEL, CTX>
|
|
61
|
+
| ElCheckboxGroup<MODEL, CTX>
|
|
62
|
+
| ElSelect<MODEL, CTX>
|
|
63
|
+
| ElColorPicker<MODEL, CTX>
|
|
64
|
+
| ElDatePicker<MODEL, CTX>
|
|
65
|
+
| ElRadioboxGroup<MODEL, CTX>
|
|
66
|
+
| ElRate<MODEL, CTX>
|
|
67
|
+
| ElSelectV2<MODEL, CTX>
|
|
68
|
+
| ElSlider<MODEL, CTX>
|
|
69
|
+
| ElSwitch<MODEL, CTX>
|
|
70
|
+
| ElTimePicker<MODEL, CTX>
|
|
71
|
+
| ElTimeSelect<MODEL, CTX>
|
|
72
|
+
| JuzhenAMap<MODEL, CTX>
|
|
73
|
+
| JuzhenTdMap<MODEL, CTX>
|
|
74
|
+
| JuzhenCascader<MODEL, CTX>
|
|
75
|
+
| JuzhenCityPicker<MODEL, CTX>
|
|
76
|
+
| JuzhenEditor<MODEL, CTX>
|
|
77
|
+
| JuzhenCkEditor<MODEL, CTX>
|
|
78
|
+
| JuzhenImgUpload<MODEL, CTX>
|
|
79
|
+
| JuzhenFileUpload<MODEL, CTX>
|
|
80
|
+
| NoEType<MODEL, CTX>
|
|
81
|
+
|
|
82
|
+
type _Badge = {
|
|
83
|
+
count?: number
|
|
84
|
+
maxCount?: number
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
type _Button<MODEL = AnyObject, CTX = any> = {
|
|
88
|
+
/**
|
|
89
|
+
* 按钮的名称
|
|
90
|
+
*/
|
|
91
|
+
text?: string
|
|
92
|
+
/**
|
|
93
|
+
* 自定义事件
|
|
94
|
+
*/
|
|
95
|
+
event?: string
|
|
96
|
+
/**
|
|
97
|
+
* 按钮权限值(作为权限判断的依据)
|
|
98
|
+
*/
|
|
99
|
+
authValue?: string
|
|
100
|
+
isAdd?: boolean
|
|
101
|
+
isEdit?: boolean
|
|
102
|
+
isDel?: boolean
|
|
103
|
+
isCopy?: boolean
|
|
104
|
+
isImport?: boolean
|
|
105
|
+
isShow?:
|
|
106
|
+
| boolean
|
|
107
|
+
| ((this: CTX, self: _Button, data: MODEL, index: number) => boolean)
|
|
108
|
+
isDisabled?: (
|
|
109
|
+
this: CTX,
|
|
110
|
+
self: _Button,
|
|
111
|
+
data: MODEL,
|
|
112
|
+
index: number
|
|
113
|
+
) => boolean
|
|
114
|
+
copyText?: CreateDeType<string>
|
|
115
|
+
props?: Partial<_ButtonProps>
|
|
116
|
+
customProps?: AnyObject
|
|
117
|
+
renderFn?: (this: CTX, data: MODEL, index: number) => JSX.Element
|
|
118
|
+
} & _Badge
|
|
119
|
+
|
|
120
|
+
type Button<MODEL = AnyObject, CTX = any> = _Button<MODEL, CTX> & {
|
|
121
|
+
children?: Omit<_Button, 'props' | 'isCopy' | 'copyText'>[]
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// 表格表单元素
|
|
125
|
+
type BaseElItem<MODEL = AnyObject> = {
|
|
126
|
+
label?: string
|
|
127
|
+
prop?: keyof MODEL extends string ? keyof MODEL : string
|
|
128
|
+
_key?: string
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
interface ElFormItemProps {
|
|
132
|
+
required?: boolean
|
|
133
|
+
rules?: AnyObject
|
|
134
|
+
error?: string
|
|
135
|
+
inlineMessage?: boolean
|
|
136
|
+
showMessage?: boolean
|
|
137
|
+
size?: Size
|
|
138
|
+
labelWidth?: string
|
|
139
|
+
class?: string
|
|
140
|
+
labelPosition?: 'left' | 'top'
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// 表单的元素
|
|
144
|
+
interface FormElBaseItem<MODEL = AnyObject, CTX = any>
|
|
145
|
+
extends BaseElItem<MODEL> {
|
|
146
|
+
/**
|
|
147
|
+
* 当前组件的名称
|
|
148
|
+
*/
|
|
149
|
+
name?: string
|
|
150
|
+
/**
|
|
151
|
+
* 标签宽度
|
|
152
|
+
*/
|
|
153
|
+
labelWidth?: string
|
|
154
|
+
/**
|
|
155
|
+
* 前置文字
|
|
156
|
+
*/
|
|
157
|
+
prefix?: CreateDeType<string, CTX>
|
|
158
|
+
/**
|
|
159
|
+
* 后置文字
|
|
160
|
+
*/
|
|
161
|
+
suffix?: CreateDeType<string, CTX>
|
|
162
|
+
/**
|
|
163
|
+
* 提示文字
|
|
164
|
+
*/
|
|
165
|
+
helpText?: CreateDeType<string, CTX>
|
|
166
|
+
/**
|
|
167
|
+
* 提示文字是否作为弹窗
|
|
168
|
+
*/
|
|
169
|
+
helpTextAsTooltip?: boolean
|
|
170
|
+
/**
|
|
171
|
+
* 是否显示
|
|
172
|
+
*/
|
|
173
|
+
isShow?:
|
|
174
|
+
| boolean
|
|
175
|
+
| ((
|
|
176
|
+
this: CTX,
|
|
177
|
+
self: FormElBaseItem<MODEL, CTX>,
|
|
178
|
+
data: MODEL
|
|
179
|
+
) => boolean)
|
|
180
|
+
/**
|
|
181
|
+
* 值改变时触发
|
|
182
|
+
*/
|
|
183
|
+
change?: (this: CTX, value: any, label: string) => void
|
|
184
|
+
/**
|
|
185
|
+
* 是否禁用
|
|
186
|
+
*/
|
|
187
|
+
isDisabled?: (this: CTX, data: MODEL) => boolean
|
|
188
|
+
/**
|
|
189
|
+
* 自定义渲染
|
|
190
|
+
*/
|
|
191
|
+
renderFn?: (this: CTX, data: MODEL) => JSX.Element
|
|
192
|
+
/**
|
|
193
|
+
* 表单项属性
|
|
194
|
+
*/
|
|
195
|
+
formItemProps?: ElFormItemProps
|
|
196
|
+
/**
|
|
197
|
+
* 模块名称
|
|
198
|
+
*/
|
|
199
|
+
moduleName?: string
|
|
200
|
+
/**
|
|
201
|
+
* 区块名称
|
|
202
|
+
*/
|
|
203
|
+
sectionName?: string
|
|
204
|
+
/**
|
|
205
|
+
* 用户section配置
|
|
206
|
+
*/
|
|
207
|
+
userSectionName?: string
|
|
208
|
+
/**
|
|
209
|
+
* 用户module配置
|
|
210
|
+
*/
|
|
211
|
+
userModuleName?: string
|
|
212
|
+
/**
|
|
213
|
+
* 用户表格配置
|
|
214
|
+
*/
|
|
215
|
+
userConfigShow?: boolean
|
|
216
|
+
/**
|
|
217
|
+
* 用户表头
|
|
218
|
+
*/
|
|
219
|
+
userLabel?: string
|
|
220
|
+
/**
|
|
221
|
+
* 内部更新的propslist
|
|
222
|
+
*/
|
|
223
|
+
_updateProps?: string[]
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// 表格元素
|
|
227
|
+
type TableColumnType = 'selection' | 'index' | 'expand'
|
|
228
|
+
|
|
229
|
+
type SortOrders = 'ascending' | 'descending' | null
|
|
230
|
+
|
|
231
|
+
type SortableType = 'custom'
|
|
232
|
+
|
|
233
|
+
type Align = 'left' | 'center' | 'right'
|
|
234
|
+
|
|
235
|
+
type DateFormat =
|
|
236
|
+
| 'YYYY-MM'
|
|
237
|
+
| 'MM-DD'
|
|
238
|
+
| 'YYYY-MM-DD'
|
|
239
|
+
| 'YYYY-MM-DD HH:mm'
|
|
240
|
+
| 'YYYY-MM-DD HH:mm:ss'
|
|
241
|
+
| 'YYYY/MM'
|
|
242
|
+
| 'MM/DD'
|
|
243
|
+
| 'YYYY/MM/DD'
|
|
244
|
+
| 'YYYY/MM/DD HH:mm'
|
|
245
|
+
| 'YYYY/MM/DD HH:mm:ss'
|
|
246
|
+
|
|
247
|
+
interface TableBaseItemProps {
|
|
248
|
+
type?: TableColumnType
|
|
249
|
+
prop?: string
|
|
250
|
+
className?: string
|
|
251
|
+
labelClassName?: string
|
|
252
|
+
width?: number | string
|
|
253
|
+
minWidth?: number | string
|
|
254
|
+
renderHeader?: ({
|
|
255
|
+
column,
|
|
256
|
+
$index,
|
|
257
|
+
}: {
|
|
258
|
+
column: any
|
|
259
|
+
$index: number
|
|
260
|
+
}) => any
|
|
261
|
+
sortable?: boolean | SortableType
|
|
262
|
+
sortMethod?: (a: any, b: any) => any
|
|
263
|
+
sortBy?: string | ((row: any, index: number) => any) | string[]
|
|
264
|
+
resizable?: boolean
|
|
265
|
+
columnKey?: string
|
|
266
|
+
align?: Align
|
|
267
|
+
headerAlign?: Align
|
|
268
|
+
showTooltipWhenOverflow?: boolean
|
|
269
|
+
showOverflowTooltip?: boolean
|
|
270
|
+
fixed?: true | 'left' | 'right'
|
|
271
|
+
formatter?: (row: any, column: any, cellValue: any, index: number) => any
|
|
272
|
+
selectable?: (row: any, index: number) => any
|
|
273
|
+
reserveSelection?: boolean
|
|
274
|
+
filterMethod?: (value: any, row: any, column: any) => any
|
|
275
|
+
filteredValue?: any[]
|
|
276
|
+
filters?: any[]
|
|
277
|
+
filterPlacement?: string
|
|
278
|
+
filterMultiple?: boolean
|
|
279
|
+
index?: number | ((index: number) => any)
|
|
280
|
+
sortOrders?: SortOrders[]
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
interface AscParams extends AnyObject {}
|
|
284
|
+
interface DescParams extends AnyObject {}
|
|
285
|
+
interface NoParams extends AnyObject {}
|
|
286
|
+
|
|
287
|
+
interface TableBaseItem<MODEL = any, CTX = any> extends BaseElItem<MODEL> {
|
|
288
|
+
/**
|
|
289
|
+
* 表头小组件渲染
|
|
290
|
+
*/
|
|
291
|
+
headerToolRenderFn?: (el: TableBaseItem<MODEL>, index: number) => VNode
|
|
292
|
+
/**
|
|
293
|
+
* 列渲染的唯一key
|
|
294
|
+
*/
|
|
295
|
+
_columnKey?: string
|
|
296
|
+
/**
|
|
297
|
+
* 宽度
|
|
298
|
+
*/
|
|
299
|
+
width?: string | number
|
|
300
|
+
/**
|
|
301
|
+
* 最小宽度
|
|
302
|
+
*/
|
|
303
|
+
minWidth?: string | number
|
|
304
|
+
/**
|
|
305
|
+
* 定位
|
|
306
|
+
*/
|
|
307
|
+
fixed?: 'left' | 'right' | boolean
|
|
308
|
+
/**
|
|
309
|
+
* 是否显示
|
|
310
|
+
*/
|
|
311
|
+
isShow?:
|
|
312
|
+
| boolean
|
|
313
|
+
| ((this: CTX, self: TableBaseItem<MODEL, CTX>) => boolean)
|
|
314
|
+
/**
|
|
315
|
+
* 用户表格配置
|
|
316
|
+
*/
|
|
317
|
+
userConfigShow?: boolean
|
|
318
|
+
/**
|
|
319
|
+
* 用户表头
|
|
320
|
+
*/
|
|
321
|
+
userLabel?: string
|
|
322
|
+
/**
|
|
323
|
+
* 表格排序
|
|
324
|
+
*/
|
|
325
|
+
sortValues?: [AscParams, DescParams] | [AscParams, DescParams, NoParams]
|
|
326
|
+
/**
|
|
327
|
+
* 列属性
|
|
328
|
+
*/
|
|
329
|
+
props?: ConvertFunctionContext<TableBaseItemProps, CTX>
|
|
330
|
+
/**
|
|
331
|
+
* 自定义输入渲染
|
|
332
|
+
*/
|
|
333
|
+
renderFn?: (this: CTX, data: MODEL, index: number) => JSX.Element
|
|
334
|
+
/**
|
|
335
|
+
* 自定义文本渲染
|
|
336
|
+
*/
|
|
337
|
+
textRenderFn?: (this: CTX, data: MODEL, index: number) => JSX.Element
|
|
338
|
+
/**
|
|
339
|
+
* 是否启用过滤
|
|
340
|
+
*/
|
|
341
|
+
filterable?: boolean
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* 过滤的选项
|
|
345
|
+
*/
|
|
346
|
+
filters?: ExtendReflect<{
|
|
347
|
+
/**
|
|
348
|
+
* 过滤类型
|
|
349
|
+
*/
|
|
350
|
+
filterType: FilterType
|
|
351
|
+
/**
|
|
352
|
+
* 复数过滤
|
|
353
|
+
*/
|
|
354
|
+
filterMultiple?: boolean
|
|
355
|
+
/**
|
|
356
|
+
* 过滤表单文本
|
|
357
|
+
*/
|
|
358
|
+
filterLabel?: string
|
|
359
|
+
/**
|
|
360
|
+
* 过滤选项
|
|
361
|
+
*/
|
|
362
|
+
filterOptions?: Array<{
|
|
363
|
+
label: string
|
|
364
|
+
value: string | number | boolean
|
|
365
|
+
}>
|
|
366
|
+
/**
|
|
367
|
+
* 获取过滤选项
|
|
368
|
+
*/
|
|
369
|
+
getFilterOptions?: (this: CTX) => Promise<{
|
|
370
|
+
label: string
|
|
371
|
+
value: string | number | boolean
|
|
372
|
+
}[]>
|
|
373
|
+
}>
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* 是否必填
|
|
377
|
+
*/
|
|
378
|
+
required?: boolean
|
|
379
|
+
/**
|
|
380
|
+
* 是否直接显示编辑组件
|
|
381
|
+
*/
|
|
382
|
+
showEdit?: boolean
|
|
383
|
+
/**
|
|
384
|
+
* 内置编辑组件
|
|
385
|
+
*/
|
|
386
|
+
editData?: FormItem<MODEL, CTX> & {
|
|
387
|
+
api?: string | ((this: CTX, data: MODEL) => string)
|
|
388
|
+
method?: PageModel.AjaxMethod
|
|
389
|
+
beforeSubmit?: CreateDePromiseResult<
|
|
390
|
+
(this: CTX, data: MODEL) => AnyObject | false
|
|
391
|
+
>
|
|
392
|
+
isDisabled?: (this: CTX, data: MODEL) => boolean
|
|
393
|
+
/**
|
|
394
|
+
* 自定义更新请求
|
|
395
|
+
* @param this table
|
|
396
|
+
* @param data 请求的数据
|
|
397
|
+
* @returns 是否成功
|
|
398
|
+
*/
|
|
399
|
+
customUpdate?: (this: CTX, data: MODEL) => Promise<boolean | void>
|
|
400
|
+
/**
|
|
401
|
+
* 触发的弹窗名称
|
|
402
|
+
*/
|
|
403
|
+
triggerPoperClassName?: string
|
|
404
|
+
}
|
|
405
|
+
// 子元素
|
|
406
|
+
children?: Omit<TableBaseItem<MODEL, CTX>, 'children'>[]
|
|
407
|
+
// 自定义属性
|
|
408
|
+
customProps?: AnyObject
|
|
409
|
+
// 帮助文本
|
|
410
|
+
helpText?: string
|
|
411
|
+
// 显示合计
|
|
412
|
+
showSummary?: number | string
|
|
413
|
+
/**
|
|
414
|
+
* 显示的行数
|
|
415
|
+
*/
|
|
416
|
+
showRowNumbers?: number
|
|
417
|
+
/**
|
|
418
|
+
* 图标
|
|
419
|
+
*/
|
|
420
|
+
icon?: any
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
interface TableVirtualBaseItem<MODEL = any, CTX = any>
|
|
424
|
+
extends TableBaseItem<MODEL, CTX> {
|
|
425
|
+
title?: string
|
|
426
|
+
dataKey: string
|
|
427
|
+
key?: string
|
|
428
|
+
cellRenderer?: (opt: { rowData: MODEL; rowIndex: number }) => JSX.Element
|
|
429
|
+
headerCellRenderer?: (opt: {
|
|
430
|
+
rowData: MODEL
|
|
431
|
+
rowIndex: number
|
|
432
|
+
}) => JSX.Element
|
|
433
|
+
children?: TableVirtualBaseItem<MODEL, CTX>[]
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
// 创建eType组件类型
|
|
437
|
+
interface CreateFormItemComponent<
|
|
438
|
+
NAME,
|
|
439
|
+
MODEL,
|
|
440
|
+
CTX,
|
|
441
|
+
PROPS = any,
|
|
442
|
+
EVENTS = any
|
|
443
|
+
> extends FormElBaseItem<MODEL, CTX> {
|
|
444
|
+
eType: NAME
|
|
445
|
+
props?: PROPS
|
|
446
|
+
events?: EVENTS
|
|
447
|
+
style?: StyleValue
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
// 为对象中的函数添加this指向
|
|
451
|
+
type ConvertFunctionContext<T, CTX> = {
|
|
452
|
+
[K in keyof T]: T[K] extends (...rest: any[]) => any
|
|
453
|
+
? (this: CTX, ...rest: Parameters<T[K]>) => any
|
|
454
|
+
: T[K]
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
type CreatePropsFromElement<
|
|
458
|
+
P,
|
|
459
|
+
O extends undefined | keyof P = undefined,
|
|
460
|
+
CTX = any
|
|
461
|
+
> = Partial<
|
|
462
|
+
ConvertFunctionContext<
|
|
463
|
+
O extends string | number | symbol ? Omit<P, O> : P,
|
|
464
|
+
CTX
|
|
465
|
+
>
|
|
466
|
+
>
|
|
467
|
+
|
|
468
|
+
// 扩展对象的reflect提示
|
|
469
|
+
type ExtendReflect<T> = T & {
|
|
470
|
+
_reflect?: string
|
|
471
|
+
_reflectChangeKey?: string
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
type OptionsData = ExtendReflect<{
|
|
475
|
+
list?: any[]
|
|
476
|
+
label?: string
|
|
477
|
+
value?: string
|
|
478
|
+
[key: string]: any
|
|
479
|
+
}>
|
|
480
|
+
|
|
481
|
+
type ExtendOptionsData<T> = T & {
|
|
482
|
+
optionsData: OptionsData
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/// <reference path="../common.d.ts" />
|
|
2
|
+
|
|
3
|
+
import { CascaderProps, CascaderOption } from 'element-plus';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
declare global {
|
|
7
|
+
namespace PageModel {
|
|
8
|
+
|
|
9
|
+
type CascaderComponentProps = {
|
|
10
|
+
options: CascaderOption[];
|
|
11
|
+
props: CascaderProps;
|
|
12
|
+
size: Size;
|
|
13
|
+
placeholder: string;
|
|
14
|
+
disabled: boolean;
|
|
15
|
+
clearable: boolean;
|
|
16
|
+
showAllLevels: boolean;
|
|
17
|
+
collapseTags: boolean;
|
|
18
|
+
separator: string;
|
|
19
|
+
filterable: boolean;
|
|
20
|
+
filterMethod: (node: any, keyword: string) => any;
|
|
21
|
+
debounce: number;
|
|
22
|
+
beforeFilter: boolean | Promise<any>;
|
|
23
|
+
popperClass: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
type ElCascaderProps<CTX> = CreatePropsFromElement<ExtendReflect<CascaderComponentProps>, undefined, CTX>
|
|
27
|
+
|
|
28
|
+
type ElCascaderEvents<CTX> = CreatePropsFromElement<{
|
|
29
|
+
change: (value: any[]) => any;
|
|
30
|
+
expandChange: (value: any[]) => any;
|
|
31
|
+
blur: (event: Event) => any;
|
|
32
|
+
focus: (event: Event) => any;
|
|
33
|
+
visibleChange: (value: boolean) => any;
|
|
34
|
+
removeTag: (value: any) => any;
|
|
35
|
+
}, undefined, CTX>
|
|
36
|
+
|
|
37
|
+
type ElCascader<MODEL = any, CTX = any> = CreateFormItemComponent<'el-cascader', MODEL, CTX, ElCascaderProps<CTX>, ElCascaderEvents<CTX>>
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference path="../common.d.ts" />
|
|
2
|
+
|
|
3
|
+
declare namespace PageModel {
|
|
4
|
+
|
|
5
|
+
type ElCheckboxGroupProps<CTX> = CreatePropsFromElement<{
|
|
6
|
+
size: Size;
|
|
7
|
+
disabled: false;
|
|
8
|
+
min: number;
|
|
9
|
+
max: number;
|
|
10
|
+
textColor: string;
|
|
11
|
+
fill: string;
|
|
12
|
+
}, undefined, CTX>
|
|
13
|
+
|
|
14
|
+
type ElCheckboxGroupEvents<CTX> = CreatePropsFromElement<{
|
|
15
|
+
change: (value: any[]) => void;
|
|
16
|
+
}, undefined, CTX>
|
|
17
|
+
|
|
18
|
+
type ElCheckboxGroup<MODEL = any, CTX = any> = ExtendOptionsData<CreateFormItemComponent<'el-checkbox-group', MODEL, CTX, ElCheckboxGroupProps<CTX>, ElCheckboxGroupEvents<CTX>>>
|
|
19
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
/// <reference path="../common.d.ts" />
|
|
3
|
+
|
|
4
|
+
declare namespace PageModel {
|
|
5
|
+
type ElColorPickerProps<CTX> = CreatePropsFromElement<{
|
|
6
|
+
size: Size;
|
|
7
|
+
disabled: false;
|
|
8
|
+
showAlpha: boolean;
|
|
9
|
+
colorFormat: 'hsl' | 'hsv' | 'hex' | 'rgb';
|
|
10
|
+
popperClass: string;
|
|
11
|
+
predefine: any[];
|
|
12
|
+
}, undefined, CTX>
|
|
13
|
+
|
|
14
|
+
type ElColorPickerEvents<CTX> = CreatePropsFromElement<{
|
|
15
|
+
change: (value: any[]) => any;
|
|
16
|
+
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
17
|
+
"onActive-change"?: ((...args: any[]) => any) | undefined;
|
|
18
|
+
}, undefined, CTX>
|
|
19
|
+
|
|
20
|
+
type ElColorPicker<MODEL = any, CTX = any> = CreateFormItemComponent<'el-color-picker', MODEL, CTX, ElColorPickerProps<CTX>, ElColorPickerEvents<CTX>>
|
|
21
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/// <reference path="../common.d.ts" />
|
|
2
|
+
|
|
3
|
+
import { Component } from 'vue';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
declare global {
|
|
7
|
+
namespace PageModel {
|
|
8
|
+
type ElDatePickerProps<CTX> = CreatePropsFromElement<{
|
|
9
|
+
readonly: boolean;
|
|
10
|
+
disabled: boolean;
|
|
11
|
+
size: Size;
|
|
12
|
+
editable: boolean;
|
|
13
|
+
clearable: boolean;
|
|
14
|
+
placeholder: string;
|
|
15
|
+
startPlaceholder: string;
|
|
16
|
+
endPlaceholder: string;
|
|
17
|
+
type: 'year' | 'month' | 'date' | 'dates' | 'week' | 'datetime' | 'datetimerange' | 'daterange' | 'monthrange';
|
|
18
|
+
format: DateFormat;
|
|
19
|
+
popperClass: string;
|
|
20
|
+
rangeSeparator: string;
|
|
21
|
+
defaultValue: Date;
|
|
22
|
+
defaultTime: Date[];
|
|
23
|
+
valueFormat: DateFormat;
|
|
24
|
+
id: string | string[];
|
|
25
|
+
name: string;
|
|
26
|
+
unlinkPanels: boolean;
|
|
27
|
+
prefixIcon: string | Component;
|
|
28
|
+
clearIcon: string | Component;
|
|
29
|
+
validateEvent: boolean;
|
|
30
|
+
disabledDate: (date: Date) => boolean;
|
|
31
|
+
shortcuts: { text: string, value: Date | Function }[];
|
|
32
|
+
cellClassName: (date: Date) => string;
|
|
33
|
+
}, undefined, CTX>
|
|
34
|
+
|
|
35
|
+
type ElDatePickerEvents<CTX> = CreatePropsFromElement<{
|
|
36
|
+
change: (value: Date | string) => void;
|
|
37
|
+
blur: AnyFunction;
|
|
38
|
+
focus: AnyFunction;
|
|
39
|
+
panelChange: (date: Date | string, mode: string, view: any) => any;
|
|
40
|
+
visibleChange: AnyFunction;
|
|
41
|
+
}, undefined, CTX>
|
|
42
|
+
|
|
43
|
+
type ElDatePicker<MODEL = any, CTX = any> = CreateFormItemComponent<'el-date-picker', MODEL, CTX, ElDatePickerProps<CTX>, ElDatePickerEvents<CTX>>
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/// <reference path="../common.d.ts" />
|
|
2
|
+
|
|
3
|
+
import { inputNumberProps, inputNumberEmits } from 'element-plus';
|
|
4
|
+
import { ExtractPropTypes } from 'vue';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
declare global {
|
|
8
|
+
namespace PageModel {
|
|
9
|
+
|
|
10
|
+
type ElInputNumberProps<CTX> = CreatePropsFromElement<ExtractPropTypes<typeof inputNumberProps>, 'modelValue', CTX>
|
|
11
|
+
|
|
12
|
+
type ElInputNumberEvents<CTX> = CreatePropsFromElement<ExtractPropTypes<typeof inputNumberEmits>, undefined, CTX>
|
|
13
|
+
|
|
14
|
+
type ElInputNumber<MODEL = any, CTX = any> = CreateFormItemComponent<'el-input-number', MODEL, CTX, ElInputNumberProps<CTX>, ElInputEvents<CTX>>
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference path="../common.d.ts" />
|
|
2
|
+
|
|
3
|
+
import { InputProps, InputEmits } from 'element-plus';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
declare global {
|
|
7
|
+
namespace PageModel {
|
|
8
|
+
|
|
9
|
+
type ElInputProps<CTX> = CreatePropsFromElement<InputProps, 'modelValue', CTX> & {
|
|
10
|
+
rows?: number;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
type ElInputEvents<CTX> = CreatePropsFromElement<InputEmits, undefined, CTX>
|
|
14
|
+
|
|
15
|
+
type ElInput<MODEL = any, CTX = any> = CreateFormItemComponent<'el-input', MODEL, CTX, ElInputProps<CTX>, ElInputEvents<CTX>>
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference path="../common.d.ts" />
|
|
2
|
+
|
|
3
|
+
declare namespace PageModel {
|
|
4
|
+
type JuzhenAMapProps<CTX> = CreatePropsFromElement<{
|
|
5
|
+
options: AnyObject;
|
|
6
|
+
height: number | string;
|
|
7
|
+
width: number | string;
|
|
8
|
+
markers: any[];
|
|
9
|
+
search: boolean;
|
|
10
|
+
useCenter: boolean;
|
|
11
|
+
}, undefined, CTX>
|
|
12
|
+
|
|
13
|
+
type JuzhenAMap<MODEL = any, CTX = any> = CreateFormItemComponent<'a-map', MODEL, CTX, JuzhenAMapProps<CTX>>
|
|
14
|
+
}
|