@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.
Files changed (145) hide show
  1. package/dist/components/buttons-renderer/components/button-item-render/index.vue.d.ts +66 -0
  2. package/dist/components/buttons-renderer/index.vue.d.ts +40 -0
  3. package/dist/components/buttons-renderer/utils/index.d.ts +2 -2
  4. package/dist/components/column-filter-tools/index.vue.d.ts +10 -0
  5. package/dist/components/column-sort-tools/index.vue.d.ts +10 -0
  6. package/dist/components/draggable-list/index.vue.d.ts +25 -0
  7. package/dist/components/editable-table/components/column-tools/index.vue.d.ts +11 -0
  8. package/dist/components/editable-table/components/column-tools/setting.vue.d.ts +9 -0
  9. package/dist/components/editable-table/components/table-cell/index.vue.d.ts +16 -0
  10. package/dist/components/editable-table/index.d.ts +13 -14
  11. package/dist/components/editable-table/index.vue.d.ts +74 -0
  12. package/dist/components/form/components/col-container/components/module-container/index.vue.d.ts +30 -0
  13. package/dist/components/form/components/col-container/components/section-title-els/index.vue.d.ts +24 -0
  14. package/dist/components/form/components/col-container/components/tabs-mode-container/index.vue.d.ts +32 -0
  15. package/dist/components/form/components/col-container/index.vue.d.ts +24 -0
  16. package/dist/components/form/components/column-tools/setting.vue.d.ts +11 -0
  17. package/dist/components/form/components/column-tools/use-setting.d.ts +14 -14
  18. package/dist/components/form/components/container-component/index.vue.d.ts +22 -0
  19. package/dist/components/form/components/section-config/merge.d.ts +3 -3
  20. package/dist/components/form/components/section-config/use.d.ts +14 -14
  21. package/dist/components/form/constructor.d.ts +79 -80
  22. package/dist/components/form/index.d.ts +2 -3
  23. package/dist/components/form/index.vue.d.ts +19 -0
  24. package/dist/components/form/type.d.ts +168 -0
  25. package/dist/components/form/utils/save-columns.d.ts +30 -30
  26. package/dist/components/form/utils/use-form-els.d.ts +4 -4
  27. package/dist/components/form-container/components/dialog-mode/index.vue.d.ts +29 -0
  28. package/dist/components/form-container/components/drawer-mode/index.vue.d.ts +29 -0
  29. package/dist/components/form-container/components/full-page/index.vue.d.ts +29 -0
  30. package/dist/components/form-container/index.vue.d.ts +27 -0
  31. package/dist/components/form-dialog/index.vue.d.ts +30 -0
  32. package/dist/components/form-dialog/use-move.d.ts +19 -19
  33. package/dist/components/form-drawer/index.vue.d.ts +35 -0
  34. package/dist/components/form-item-renderer/index.vue.d.ts +75 -0
  35. package/dist/components/line-clamp-tools/index.vue.d.ts +9 -0
  36. package/dist/components/normal-tab/index.vue.d.ts +17 -0
  37. package/dist/components/normal-tab/type.d.ts +20 -0
  38. package/dist/components/page-model/components/selectable-operate/index.vue.d.ts +16 -0
  39. package/dist/components/page-model/components/top-tabs/constructor.d.ts +9 -10
  40. package/dist/components/page-model/components/top-tabs/index.vue.d.ts +21 -0
  41. package/dist/components/page-model/components/top-tabs/type.d.ts +11 -0
  42. package/dist/components/page-model/constructor.d.ts +156 -157
  43. package/dist/components/page-model/index.d.ts +4 -6
  44. package/dist/components/page-model/index.vue.d.ts +118 -0
  45. package/dist/components/page-model/patches/patch-config-urls.d.ts +2 -2
  46. package/dist/components/page-model/patches/patch-default-config.d.ts +2 -2
  47. package/dist/components/page-model/patches/patch-selectable.d.ts +2 -2
  48. package/dist/components/page-model/patches/patch-size.d.ts +2 -2
  49. package/dist/components/page-model/patches/patch-table-dragable.d.ts +2 -2
  50. package/dist/components/page-model/patches/patch-user-config.d.ts +2 -2
  51. package/dist/components/page-model/type.d.ts +345 -0
  52. package/dist/components/page-model/utils/default-config.d.ts +1 -1
  53. package/dist/components/page-model/utils/default-excel-export-config.d.ts +1 -1
  54. package/dist/components/page-model/utils/default-style-config.d.ts +1 -1
  55. package/dist/components/page-model/utils/default-text-config.d.ts +1 -1
  56. package/dist/components/page-model/utils/default-user-setting.d.ts +1 -1
  57. package/dist/components/page-model/utils/error-handler.d.ts +1 -1
  58. package/dist/components/page-model/utils/manager-controller.d.ts +47 -48
  59. package/dist/components/page-model/utils/patch-config.d.ts +1 -2
  60. package/dist/components/page-model/utils/use-auth-buttons.d.ts +7 -8
  61. package/dist/components/page-model/utils/use-keyboard-event.d.ts +9 -9
  62. package/dist/components/scenes-tab/index.vue.d.ts +5 -0
  63. package/dist/components/scenes-tab/type.d.ts +14 -0
  64. package/dist/components/search-form/components/search-form-full/index.vue.d.ts +16 -0
  65. package/dist/components/search-form/constructor.d.ts +21 -22
  66. package/dist/components/search-form/index.vue.d.ts +19 -0
  67. package/dist/components/search-form/type.d.ts +42 -0
  68. package/dist/components/search-form/use-detect-item-width.d.ts +5 -6
  69. package/dist/components/simple-popover/index.vue.d.ts +29 -0
  70. package/dist/components/table/components/column-tools/index.vue.d.ts +10 -0
  71. package/dist/components/table/components/column-tools/setting.vue.d.ts +17 -0
  72. package/dist/components/table/components/column-tools/use-setting.d.ts +14 -14
  73. package/dist/components/table/components/column-tools/use-user-config.d.ts +14 -14
  74. package/dist/components/table/components/column-tools/use-user-show-row-config.d.ts +35 -35
  75. package/dist/components/table/components/column-tools/user-config.vue.d.ts +11 -0
  76. package/dist/components/table/components/context-column-summary/index.vue.d.ts +13 -0
  77. package/dist/components/table/components/context-menu/index.vue.d.ts +35 -0
  78. package/dist/components/table/components/empty-data/index.vue.d.ts +7 -0
  79. package/dist/components/table/components/export-form/index.vue.d.ts +13 -0
  80. package/dist/components/table/components/export-form/use.d.ts +16 -17
  81. package/dist/components/table/components/selections-table/index.vue.d.ts +10 -0
  82. package/dist/components/table/components/selections-table/use.d.ts +15 -15
  83. package/dist/components/table/components/table-column/components/filter-zone/index.vue.d.ts +9 -0
  84. package/dist/components/table/components/table-column/components/filter-zone/utils/index.d.ts +69 -69
  85. package/dist/components/table/components/table-column/index.vue.d.ts +7 -0
  86. package/dist/components/table/components/table-v2/index.vue.d.ts +20 -0
  87. package/dist/components/table/components/table-wrap/index.vue.d.ts +24 -0
  88. package/dist/components/table/constructor.d.ts +344 -345
  89. package/dist/components/table/index.vue.d.ts +30 -0
  90. package/dist/components/table/type.d.ts +366 -0
  91. package/dist/components/table/utils/save-column-filter.d.ts +2 -2
  92. package/dist/components/table/utils/save-column-sort.d.ts +2 -2
  93. package/dist/components/table/utils/save-columns.d.ts +38 -38
  94. package/dist/components/table/utils/save-config.d.ts +6 -6
  95. package/dist/components/table/utils/use-column-drag.d.ts +8 -8
  96. package/dist/components/table/utils/use-listen-scroll.d.ts +5 -6
  97. package/dist/components/table/utils/use-static-summary.d.ts +11 -12
  98. package/dist/components/table/utils/use-table-config-change.d.ts +5 -6
  99. package/dist/components/table/utils/use-table-els.d.ts +4 -5
  100. package/dist/components/table-cell-renderer/index.vue.d.ts +58 -0
  101. package/dist/components/table-toolsbox/index.vue.d.ts +24 -0
  102. package/dist/index.es.js +1809 -1803
  103. package/dist/index.umd.js +2 -2
  104. package/dist/main.d.ts +14 -13
  105. package/dist/types/common.d.ts +485 -0
  106. package/dist/types/form-item-types/cascader.d.ts +39 -0
  107. package/dist/types/form-item-types/checkbox-group.d.ts +19 -0
  108. package/dist/types/form-item-types/color-picker.d.ts +21 -0
  109. package/dist/types/form-item-types/date-picker.d.ts +46 -0
  110. package/dist/types/form-item-types/input-number.d.ts +16 -0
  111. package/dist/types/form-item-types/input.d.ts +18 -0
  112. package/dist/types/form-item-types/jz-a-map.d.ts +14 -0
  113. package/dist/types/form-item-types/jz-cascader.d.ts +21 -0
  114. package/dist/types/form-item-types/jz-city-picker.d.ts +28 -0
  115. package/dist/types/form-item-types/jz-ck-editor.d.ts +27 -0
  116. package/dist/types/form-item-types/jz-editor.d.ts +20 -0
  117. package/dist/types/form-item-types/jz-file-upload.d.ts +20 -0
  118. package/dist/types/form-item-types/jz-img-upload.d.ts +23 -0
  119. package/dist/types/form-item-types/jz-long-input.d.ts +10 -0
  120. package/dist/types/form-item-types/jz-td-map.d.ts +13 -0
  121. package/dist/types/form-item-types/no-e-type.d.ts +12 -0
  122. package/dist/types/form-item-types/radio-group.d.ts +17 -0
  123. package/dist/types/form-item-types/rate.d.ts +30 -0
  124. package/dist/types/form-item-types/select-v2.d.ts +48 -0
  125. package/dist/types/form-item-types/select.d.ts +43 -0
  126. package/dist/types/form-item-types/slider.d.ts +31 -0
  127. package/dist/types/form-item-types/switch.d.ts +15 -0
  128. package/dist/types/form-item-types/time-picker.d.ts +42 -0
  129. package/dist/types/form-item-types/time-select.d.ts +31 -0
  130. package/dist/types/renderer.d.ts +10 -0
  131. package/dist/types/shims-vue-property.d.ts +8 -0
  132. package/dist/types/shims-vue.d.ts +7 -0
  133. package/dist/types/window.d.ts +10 -0
  134. package/dist/utils/config-saver.d.ts +51 -51
  135. package/dist/utils/define-config.d.ts +2 -3
  136. package/dist/utils/event-chain.d.ts +9 -9
  137. package/dist/utils/event-emitter.d.ts +7 -7
  138. package/dist/utils/index.d.ts +101 -102
  139. package/dist/utils/infinite-table.d.ts +49 -49
  140. package/dist/utils/manager.d.ts +13 -14
  141. package/dist/utils/provide-keys.d.ts +20 -20
  142. package/dist/utils/reflect/index.d.ts +14 -15
  143. package/dist/utils/reflect/reflect-collector.d.ts +25 -25
  144. package/dist/utils/resize.d.ts +2 -3
  145. 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
+ }