zzz-pc-view 0.0.1

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 (71) hide show
  1. package/package.json +29 -0
  2. package/src/api/org/list +96 -0
  3. package/src/api/org/type/list +18 -0
  4. package/src/api/own +3831 -0
  5. package/src/decorators/CurdKey/CurdApi.d.ts +221 -0
  6. package/src/decorators/CurdKey/RequestUtil.d.ts +55 -0
  7. package/src/decorators/CurdKey/index.d.ts +752 -0
  8. package/src/decorators/DeclareType.d.ts +35 -0
  9. package/src/decorators/Decorators.d.ts +5 -0
  10. package/src/decorators/FilterKey/index.d.ts +283 -0
  11. package/src/decorators/Loader/index.d.ts +179 -0
  12. package/src/decorators/NameKey/index.d.ts +68 -0
  13. package/src/decorators/PrimaryKey/index.d.ts +68 -0
  14. package/src/decorators/api.d.ts +21 -0
  15. package/src/decorators/decoratorStoreUtil.d.ts +68 -0
  16. package/src/decorators/index.d.ts +6 -0
  17. package/src/decorators/loadStore.d.ts +6 -0
  18. package/src/decorators/loadUtil.d.ts +25 -0
  19. package/src/decorators/util.d.ts +27 -0
  20. package/src/favicon.ico +0 -0
  21. package/src/index-decorators.d.ts +3 -0
  22. package/src/index.d.ts +10 -0
  23. package/src/index.es.js +10035 -0
  24. package/src/index.umd.js +2 -0
  25. package/src/pcViews/components/curd/CurdTableView.vue.d.ts +18 -0
  26. package/src/pcViews/components/curd/CurdView.vue.d.ts +22 -0
  27. package/src/pcViews/components/curd/CurdViewHandler.d.ts +1208 -0
  28. package/src/pcViews/components/curd/FilterView.vue.d.ts +19 -0
  29. package/src/pcViews/components/curd/FilterViewHandler.d.ts +6 -0
  30. package/src/pcViews/components/curd/index.d.ts +2 -0
  31. package/src/pcViews/components/forms/RadioButtonGroupView.vue.d.ts +19 -0
  32. package/src/pcViews/components/forms/SelectView.vue.d.ts +19 -0
  33. package/src/pcViews/components/forms/VModelView.vue.d.ts +20 -0
  34. package/src/pcViews/components/forms/index.d.ts +3 -0
  35. package/src/pcViews/components/index.d.ts +5 -0
  36. package/src/pcViews/components/layout/DataWrapperView.vue.d.ts +23 -0
  37. package/src/pcViews/components/layout/LayoutHeader.vue.d.ts +2 -0
  38. package/src/pcViews/components/layout/LayoutMainView.vue.d.ts +2 -0
  39. package/src/pcViews/components/layout/index.d.ts +2 -0
  40. package/src/pcViews/components/slots/VSlotView.vue.d.ts +20 -0
  41. package/src/pcViews/components/slots/index.d.ts +1 -0
  42. package/src/pcViews/components/utils.d.ts +33 -0
  43. package/src/pcViews/index.d.ts +1 -0
  44. package/src/utils/Date/ZDate.d.ts +557 -0
  45. package/src/utils/DeclareType.d.ts +39 -0
  46. package/src/utils/class/bind.d.ts +43 -0
  47. package/src/utils/class/combine.d.ts +109 -0
  48. package/src/utils/crypto/index.d.ts +44 -0
  49. package/src/utils/empty/index.d.ts +18 -0
  50. package/src/utils/httpRequest/HttpRequestError.d.ts +14 -0
  51. package/src/utils/httpRequest/httpRequestCreator.d.ts +61 -0
  52. package/src/utils/httpRequest/httpRequestUtil.d.ts +24 -0
  53. package/src/utils/httpRequest/index.d.ts +3 -0
  54. package/src/utils/index.d.ts +11 -0
  55. package/src/utils/math/toFixed.d.ts +11 -0
  56. package/src/utils/math/unitConvertor.d.ts +34 -0
  57. package/src/utils/mock/HttpResponse.d.ts +30 -0
  58. package/src/utils/mock/createDataTimes.d.ts +20 -0
  59. package/src/utils/mock/index.d.ts +2 -0
  60. package/src/utils/reduce/completeByDate.d.ts +51 -0
  61. package/src/utils/reduce/index.d.ts +9 -0
  62. package/src/utils/reduce/mappingBuilder.d.ts +69 -0
  63. package/src/utils/reduce/ratio.d.ts +104 -0
  64. package/src/utils/reduce/sort.d.ts +12 -0
  65. package/src/utils/reduce/sumByGroup.d.ts +53 -0
  66. package/src/utils/reduce/toGroup.d.ts +79 -0
  67. package/src/utils/reduce/tree.d.ts +570 -0
  68. package/src/utils/reduce/util.d.ts +14 -0
  69. package/src/utils/reduce/valueConvertor.d.ts +65 -0
  70. package/src/utils/reduce/verticalToHorizontal.d.ts +80 -0
  71. package/src/zzz-frame.css +7 -0
@@ -0,0 +1,752 @@
1
+ import { httpRequest, CombineClass, CombineInstanceType, KeyMatch, WithoutFirst } from '../../utils';
2
+ import { BasePropertyConfig, ComponentProps, EventHandlerMap, TypeWithPrototype } from '../DeclareType';
3
+ import { FilterHandler } from '../FilterKey';
4
+ import { EditTypeEnum, CurdApi, EditType, PaginationResponseConstructor } from './CurdApi';
5
+ import { Config as PrimaryKeyConfig } from './../PrimaryKey';
6
+ import { Config as NameKeyConfig } from './../NameKey';
7
+ import { RequestUtilResponse } from './RequestUtil';
8
+ export * from './CurdApi';
9
+ /**
10
+ * 基础参数接口,用于定义通用的参数属性。
11
+ */
12
+ export interface BaseParam {
13
+ label?: string;
14
+ show?: boolean;
15
+ orderNo?: number;
16
+ component?: unknown;
17
+ componentProps?: ComponentProps;
18
+ componentOn?: EventHandlerMap;
19
+ }
20
+ /**
21
+ * 表格列参数接口,继承自基础参数接口,用于定义表格列的特定参数。
22
+ */
23
+ export interface TableColumnParam extends BaseParam {
24
+ colProps?: ComponentProps;
25
+ }
26
+ /**
27
+ * 表单项参数接口,继承自基础参数接口,用于定义表单项的特定参数。
28
+ */
29
+ export interface FormItemParam extends BaseParam {
30
+ formItemProps?: ComponentProps;
31
+ stepIndex?: number;
32
+ rowGroup?: string;
33
+ colSpan?: number;
34
+ }
35
+ /**
36
+ * 响应参数接口,用于定义返回数据的结构。
37
+ */
38
+ export interface ResponseParam {
39
+ label?: string;
40
+ tableColumn?: TableColumnParam;
41
+ formItem?: FormItemParam;
42
+ }
43
+ /**
44
+ * 定义一个参数接口,用于创建 CurdHandler 实例时传递参数。
45
+ * @template T - 对象类型,默认为 object。
46
+ * @param {CurdHandler<T>} this - CurdHandler 实例。
47
+ * @returns {ResponseParam} - 返回一个 ResponseParam 对象。
48
+ */
49
+ export interface Param<T extends object = object> {
50
+ (this: CurdHandler<T>): ResponseParam;
51
+ }
52
+ /**
53
+ * 定义一个配置接口,继承自 BasePropertyConfig。
54
+ * @template T - 对象类型,默认为 object。
55
+ * @extends {BasePropertyConfig} - 继承自 BasePropertyConfig。
56
+ * @property {Param<T>} creator - 一个函数,用于创建 ResponseParam 对象。
57
+ */
58
+ export interface Config<T extends object = object> extends BasePropertyConfig {
59
+ creator: Param<T>;
60
+ }
61
+ /**
62
+ * 定义一个接口,用于描述 CURD 操作的配置。
63
+ * 该接口继承自 BasePropertyConfig 并包含 Param 函数的返回类型。
64
+ * @template T - 对象类型,默认为 object。
65
+ * @extends {BasePropertyConfig} - 继承自 BasePropertyConfig。
66
+ * @extends {ReturnType<Param>} - 包含 Param 函数的返回类型。
67
+ */
68
+ interface HandlerConfig extends BasePropertyConfig, ReturnType<Param> {
69
+ }
70
+ /**
71
+ * 定义一个分页请求的接口。
72
+ * @interface PaginationRequest
73
+ * @property {number} currentPage - 当前页码。
74
+ * @property {number} pageSize - 每页显示的记录数。
75
+ */
76
+ export interface PaginationRequest {
77
+ currentPage: number;
78
+ pageSize: number;
79
+ }
80
+ /**
81
+ * 定义一个接口,用于描述组件的参数。
82
+ * @interface ComponentParam
83
+ * @property {ComponentProps} [props] - 组件的属性。
84
+ * @property {EventHandlerMap} [on] - 组件的事件处理函数。
85
+ */
86
+ interface ComponentParam {
87
+ props?: ComponentProps;
88
+ on?: EventHandlerMap;
89
+ }
90
+ /**
91
+ * 定义一个接口,用于描述表格的参数。
92
+ * 该接口继承自 ComponentParam,并包含一个可选的 showIndex 属性,用于控制是否显示行索引,
93
+ * 以及一个可选的 indexColWidth 属性,用于设置行索引列的宽度。
94
+ * @interface TableParam
95
+ * @extends {ComponentParam} - 继承自 ComponentParam。
96
+ * @property {boolean} [showIndex] - 可选的属性,用于控制是否显示行索引。
97
+ * @property {number | string} [indexColWidth] - 可选的属性,用于设置行索引列的宽度。
98
+ */
99
+ interface TableParam extends ComponentParam {
100
+ showIndex?: boolean;
101
+ indexColWidth?: number | string;
102
+ }
103
+ /**
104
+ * 定义一个接口,用于描述表单的步骤。
105
+ * @interface FormStep
106
+ * @property {string} [label] - 步骤的标签,用于显示在步骤标题处。
107
+ * @property {string} [desc] - 步骤的描述,用于显示在步骤标题下方。
108
+ */
109
+ interface FormStep {
110
+ label?: string;
111
+ desc?: string;
112
+ }
113
+ /**
114
+ * 定义一个接口,用于描述表单的参数。
115
+ * 该接口继承自 ComponentParam,并包含一个可选的 steps 属性,用于定义表单的步骤。
116
+ * @interface FormParam
117
+ * @extends {ComponentParam} - 继承自 ComponentParam。
118
+ * @property {FormStep[]} [steps] - 表单的步骤,每个步骤包含一个标签和描述。
119
+ */
120
+ interface FormParam extends ComponentParam {
121
+ steps?: FormStep[];
122
+ }
123
+ /**
124
+ * 定义一个接口,用于描述 CURD 操作的参数。
125
+ * 该接口包含一个标签、一个 CURD API 实例、一个可选的分页请求和一个子键。
126
+ * 它还可以包含一个可选的组件创建器函数,用于创建表格和表单的参数。
127
+ * @template T - 对象类型,默认为 object。
128
+ * @interface CurdHandlerParam
129
+ * @property {string} label - CURD 操作的标签。
130
+ * @property {CurdApi<T>} api - CURD API 实例。
131
+ * @property {PaginationRequest} [pagination] - 可选的分页请求。
132
+ * @property {(this: CurdHandler<T>) => { tableParam?: ComponentParam; formParam?: FormParam }} [componentCreator] - 可选的组件创建器函数,用于创建表格和表单的参数。
133
+ */
134
+ export interface CurdHandlerParam<T extends object = object> {
135
+ label: string;
136
+ api: CurdApi<T>;
137
+ pagination?: PaginationRequest;
138
+ componentCreator?(this: CurdHandler<T>): {
139
+ tableParam?: TableParam;
140
+ formParam?: FormParam;
141
+ };
142
+ }
143
+ /**
144
+ * 定义一个唯一的符号作为键,用于标识类级别的 CURD 配置。
145
+ * 这个键将用于在类的原型上存储和检索 CURD 配置。
146
+ */
147
+ declare const classCurdKey: unique symbol;
148
+ /**
149
+ * 定义一个枚举类型,用于表示不同的 CURD(创建、读取、更新、删除)操作类型。
150
+ * 这个枚举类型将用于在组件中区分不同的操作类型,并根据类型执行相应的逻辑。
151
+ * @enum {number}
152
+ * @description 这个枚举类型是数字类型,每个成员都有一个对应的整数值。
153
+ * @description 它包含了 FILTER、CREATE 和 CONTINUE_CREATE 三个成员,分别表示过滤、创建和继续创建操作。
154
+ */
155
+ export declare enum CreateTypeEnum {
156
+ /**
157
+ * 表示过滤操作,用于查询数据记录。
158
+ * @type {number}
159
+ * @description 这个成员的值是 1。
160
+ * @description 它通常用于在表格中显示过滤条件,或者在表单中显示查询条件。
161
+ */
162
+ FILTER = 1,
163
+ /**
164
+ * 表示创建操作,用于创建新的数据记录。
165
+ * @type {number}
166
+ * @description 这个成员的值是 2。
167
+ * @description 它通常用于在表单中显示创建表单,或者在模态框中显示创建对话框。
168
+ */
169
+ CREATE = 2,
170
+ /**
171
+ * 表示继续创建操作,用于在创建操作完成后继续创建新的数据记录。
172
+ * @type {number}
173
+ * @description 这个成员的值是 6。
174
+ * @description 它通常用于在创建表单中显示继续创建按钮,或者在模态框中显示继续创建对话框。
175
+ */
176
+ CONTINUE_CREATE = 6
177
+ }
178
+ /**
179
+ * 定义一个接口,用于描述 CURD 模型的构造函数。
180
+ * 该接口继承自 TypeWithPrototype 和 CombineClass,并定义了一个新的构造函数签名。
181
+ * @template T - 对象类型,默认为 object。
182
+ * @interface CurdModelConstructor
183
+ * @extends {TypeWithPrototype} - 继承自 TypeWithPrototype。
184
+ * @extends {CombineClass} - 继承自 CombineClass。
185
+ * @property {new (createType: CreateTypeEnum, ...args: any[]): T} - 一个新的构造函数,接受一个 CreateTypeEnum 类型的参数和任意数量的参数,并返回一个 T 类型的实例。
186
+ * @property {CurdHandler<T>} [classCurdKey] - 一个可选的属性,用于存储 CurdHandler 实例。
187
+ */
188
+ export interface CurdModelConstructor<T extends object = object> extends TypeWithPrototype, CombineClass {
189
+ new (createType: CreateTypeEnum, ...args: any[]): T;
190
+ [classCurdKey]?: CurdHandler<T>;
191
+ }
192
+ export declare abstract class CurdHandler<T extends object = object> extends FilterHandler<T> {
193
+ readonly curdTargetPrototype: T;
194
+ /**
195
+ * 定义一个只读属性,用于存储 CURD 操作的目标模型构造函数。
196
+ * 这个属性将用于在组件中创建和操作数据记录。
197
+ * @type {CurdModelConstructor<T>}
198
+ * @description 这个属性是只读的,意味着它不能被直接修改。
199
+ * @description 它会在组件初始化时被设置,并且在组件的整个生命周期中保持不变。
200
+ */
201
+ protected readonly CurdTarget: CurdModelConstructor<T>;
202
+ /**
203
+ * 定义一个只读属性,用于存储表单项的标签。
204
+ * 这个属性将用于在组件中显示表单项的标签。
205
+ * @type {string}
206
+ * @description 这个属性是只读的,意味着它不能被直接修改。
207
+ * @description 它会在组件初始化时被设置,并且在组件的整个生命周期中保持不变。
208
+ */
209
+ readonly label: string;
210
+ /**
211
+ * 创建一个浅引用,用于存储 CURD 操作的配置。
212
+ * 这个引用将用于在组件中存储和更新 CURD 配置。
213
+ * @type {shallowRef<HandlerConfig[]>}
214
+ * @description 这个引用是浅的,意味着它不会递归地观察嵌套对象的变化。
215
+ * @description 这对于性能优化很重要,因为它避免了不必要的更新。
216
+ */
217
+ protected readonly curdConfigsRef: import('vue').ShallowRef<HandlerConfig[] | undefined, HandlerConfig[] | undefined>;
218
+ /**
219
+ * 根据指定的键获取并返回配置项数组。
220
+ * 这个方法从 curdConfigsRef 中获取配置项,并根据 orderNo 对其进行排序。
221
+ * 如果配置项中缺少 label 属性,它会尝试从父配置中继承。
222
+ *
223
+ * @template K - 一个泛型类型,用于匹配 HandlerConfig 中的键,这些键包含 label 和 orderNo 属性。
224
+ * @param {K} key - 要获取配置项的键。
225
+ * @returns {Required<HandlerConfig>[K][]} - 一个包含排序后的配置项的数组。
226
+ */
227
+ protected getItemConfigs<K extends KeyMatch<Required<HandlerConfig>, BaseParam>>(key: K): (Required<HandlerConfig>[K] & {
228
+ propertyKey: KeyMatch<T, unknown>;
229
+ })[];
230
+ /**
231
+ * 创建一个计算属性,用于获取并返回表格列的配置项数组。
232
+ * 这个计算属性依赖于 getItemConfigs 方法,它会根据 'tableColumn' 键获取配置项,并返回一个只读的数组。
233
+ * @type {ComputedRef<Required<HandlerConfig>['tableColumn'][]>}
234
+ * @description 这个计算属性是只读的,意味着它不能被直接修改。
235
+ * @description 它会在依赖项发生变化时自动更新。
236
+ */
237
+ protected readonly tableColumnsComputed: import('vue').ComputedRef<(TableColumnParam & {
238
+ propertyKey: KeyMatch<T, unknown>;
239
+ })[]>;
240
+ /**
241
+ * 创建一个计算属性,用于获取并返回显示的表格列的配置项数组。
242
+ * 这个计算属性依赖于 tableColumnsComputed 计算属性,它会过滤掉 show 属性为 false 的配置项,并返回一个只读的数组。
243
+ * @type {ComputedRef<Required<HandlerConfig>['tableColumn'][]>}
244
+ * @description 这个计算属性是只读的,意味着它不能被直接修改。
245
+ * @description 它会在依赖项发生变化时自动更新。
246
+ */
247
+ protected readonly displayTableColumnsComputed: import('vue').ComputedRef<(TableColumnParam & {
248
+ propertyKey: KeyMatch<T, unknown>;
249
+ })[]>;
250
+ /**
251
+ * 获取显示的表格列的配置项数组。
252
+ * 这个方法返回 displayTableColumnsComputed 计算属性的值,它包含了所有 show 属性不为 false 的表格列配置项。
253
+ * @returns {Required<HandlerConfig>['tableColumn'][]} - 一个包含显示的表格列配置项的数组。
254
+ */
255
+ get displayTableColumns(): (TableColumnParam & {
256
+ propertyKey: KeyMatch<T, unknown>;
257
+ })[];
258
+ /**
259
+ * 创建一个计算属性,用于获取并返回表单项的配置项数组。
260
+ * 这个计算属性依赖于 getItemConfigs 方法,它会根据 'formItem' 键获取配置项,并返回一个只读的数组。
261
+ * @type {ComputedRef<Required<HandlerConfig>['formItem'][]>}
262
+ * @description 这个计算属性是只读的,意味着它不能被直接修改。
263
+ * @description 它会在依赖项发生变化时自动更新。
264
+ */
265
+ protected readonly formItemsComputed: import('vue').ComputedRef<(FormItemParam & {
266
+ propertyKey: KeyMatch<T, unknown>;
267
+ })[]>;
268
+ /**
269
+ * 创建一个计算属性,用于获取并返回显示的表单项的配置项数组。
270
+ * 这个计算属性依赖于 formItemsComputed 计算属性,它会过滤掉 show 属性为 false 的配置项,并返回一个只读的数组。
271
+ * @type {ComputedRef<Required<HandlerConfig>['formItem'][]>}
272
+ * @description 这个计算属性是只读的,意味着它不能被直接修改。
273
+ * @description 它会在依赖项发生变化时自动更新。
274
+ */
275
+ protected readonly displayFormItemsComputed: import('vue').ComputedRef<(FormItemParam & {
276
+ propertyKey: KeyMatch<T, unknown>;
277
+ })[]>;
278
+ /**
279
+ * 创建一个计算属性,用于获取并返回显示的表单项的分组配置。
280
+ * 这个计算属性依赖于 displayFormItemsComputed 计算属性,它会根据 stepIndex 和 steps 配置对表单项进行分组,并返回一个只读的数组。
281
+ * @type {ComputedRef<{ label?: string; desc?: string; index: number; formItems: FormItemParam[] }[]>}
282
+ * @description 这个计算属性是只读的,意味着它不能被直接修改。
283
+ * @description 它会在依赖项发生变化时自动更新。
284
+ */
285
+ protected readonly displayStepFormItemsGroupComputed: import('vue').ComputedRef<{
286
+ label?: string;
287
+ desc?: string;
288
+ index: number;
289
+ formItems: FormItemParam[];
290
+ }[]>;
291
+ /**
292
+ * 获取显示的表单项的分组配置。
293
+ * 这个方法返回 displayStepFormItemsGroupComputed 计算属性的值,它包含了所有 show 属性不为 false 的表单项的分组配置。
294
+ * @returns {{ label?: string; desc?: string; index: number; formItems: FormItemParam[] }[]} - 一个包含表单项分组配置的数组。
295
+ */
296
+ get displayStepFormItemsGroup(): {
297
+ label?: string;
298
+ desc?: string;
299
+ index: number;
300
+ formItems: FormItemParam[];
301
+ }[];
302
+ /**
303
+ * 定义一个只读属性,用于存储 CURD 操作的 API 实例。
304
+ * 这个属性将用于在组件中执行 CURD 操作。
305
+ * @type {CurdApi<T>}
306
+ * @description 这个属性是只读的,意味着它不能被直接修改。
307
+ * @description 它会在组件初始化时被设置,并且在组件的整个生命周期中保持不变。
308
+ */
309
+ protected readonly api: CurdApi<T, PaginationResponseConstructor<T>>;
310
+ /**
311
+ * 定义一个可选的只读属性,用于存储分页配置。
312
+ * 这个属性将用于在组件中控制分页行为。
313
+ * @type {CurdHandlerParam<T>['pagination']}
314
+ * @description 这个属性是可选的,意味着它可以不存在。
315
+ * @description 它会在组件初始化时被设置,并且在组件的整个生命周期中保持不变。
316
+ */
317
+ readonly pagination?: CurdHandlerParam<T>['pagination'];
318
+ /**
319
+ * 重置分页设置。
320
+ * 这个方法用于将分页的当前页码重置为第一页。
321
+ * @description 这个方法通常在刷新列表数据或进行新的搜索时调用。
322
+ */
323
+ resetPagination(): void;
324
+ /**
325
+ * 创建一个浅引用,用于存储表格组件的参数。
326
+ * 这个引用将用于在组件中存储和更新表格组件的参数。
327
+ * @type {shallowRef<TableParam>}
328
+ * @description 这个引用是浅的,意味着它不会递归地观察嵌套对象的变化。
329
+ * @description 这对于性能优化很重要,因为它避免了不必要的更新。
330
+ */
331
+ protected readonly tableParamRef: import('vue').ShallowRef<TableParam | undefined, TableParam | undefined>;
332
+ /**
333
+ * 获取表格组件的参数。
334
+ * 这个方法返回 tableParamRef 引用的值,它包含了表格组件的参数。
335
+ * @returns {TableParam} - 表格组件的参数。
336
+ */
337
+ get tableParam(): TableParam | undefined;
338
+ /**
339
+ * 创建一个浅引用,用于存储表单组件的参数。
340
+ * 这个引用将用于在组件中存储和更新表单组件的参数。
341
+ * @type {shallowRef<FormParam>}
342
+ * @description 这个引用是浅的,意味着它不会递归地观察嵌套对象的变化。
343
+ * @description 这对于性能优化很重要,因为它避免了不必要的更新。
344
+ */
345
+ protected readonly formParamRef: import('vue').ShallowRef<FormParam | undefined, FormParam | undefined>;
346
+ /**
347
+ * 获取表单参数。
348
+ * 这个方法返回 formParamRef 引用的值,它包含了表单组件的参数。
349
+ * @returns {FormParam} - 表单组件的参数。
350
+ */
351
+ get formParam(): FormParam | undefined;
352
+ /**
353
+ * 定义一个可选的只读属性,用于存储主键配置。
354
+ * 这个属性将用于在组件中识别和操作数据记录。
355
+ * @type {PrimaryKeyConfig<T>}
356
+ * @description 这个属性是可选的,意味着它可以不存在。
357
+ * @description 它会在组件初始化时被设置,并且在组件的整个生命周期中保持不变。
358
+ */
359
+ protected readonly primaryKeyConfig?: PrimaryKeyConfig<T>;
360
+ /**
361
+ * 获取主键配置。
362
+ * 这个方法返回 primaryKeyConfig 属性的值,它包含了主键的配置信息。
363
+ * 如果 primaryKeyConfig 不存在,则返回 undefined。
364
+ * @returns {PrimaryKeyConfig<T> | undefined} - 主键配置,如果不存在则返回 undefined。
365
+ */
366
+ getPrimaryKeyConfig(): PrimaryKeyConfig<T> | undefined;
367
+ /**
368
+ * 定义一个可选的只读属性,用于存储名称键配置。
369
+ * 这个属性将用于在组件中显示和操作数据记录的名称。
370
+ * @type {NameKeyConfig<T>}
371
+ * @description 这个属性是可选的,意味着它可以不存在。
372
+ * @description 它会在组件初始化时被设置,并且在组件的整个生命周期中保持不变。
373
+ */
374
+ protected readonly nameKeyConfig?: NameKeyConfig<T>;
375
+ /**
376
+ * 获取数据的名称。
377
+ * 这个方法用于根据配置的名称键获取数据对象中的名称。
378
+ * 如果没有配置名称键,则返回一个空字符串。
379
+ *
380
+ * @param {T} data - 包含名称的对象。
381
+ * @returns {string} - 数据的名称,如果没有配置名称键,则返回一个空字符串。
382
+ */
383
+ getDataName(data: T): "" | T[KeyMatch<T, import('../../utils').KeyValType>];
384
+ /**
385
+ * 获取名称键配置。
386
+ * 这个方法返回 nameKeyConfig 属性的值,它包含了名称键的配置信息。
387
+ * 如果 nameKeyConfig 不存在,则返回 undefined。
388
+ * @returns {NameKeyConfig<T> | undefined} - 名称键配置,如果不存在则返回 undefined。
389
+ */
390
+ getNameKeyConfig(): NameKeyConfig<T> | undefined;
391
+ /**
392
+ * 定义一个只读属性,用于存储请求工具的响应。
393
+ * 这个属性将用于在组件中处理请求的加载状态和取消请求。
394
+ * @type {RequestUtilResponse}
395
+ * @description 这个属性是只读的,意味着它不能被直接修改。
396
+ * @description 它会在组件初始化时被设置,并且在组件的整个生命周期中保持不变。
397
+ */
398
+ protected readonly listRequestUtil: RequestUtilResponse;
399
+ /**
400
+ * 获取列表数据的加载状态。
401
+ * 这个方法返回 listRequestUtil.loadStatus 的值,它表示列表数据是否正在加载。
402
+ * @returns {boolean} - 列表数据的加载状态。
403
+ */
404
+ get listLoadStatus(): boolean;
405
+ /**
406
+ * 创建一个浅引用,用于存储搜索查询参数。
407
+ * 这个引用将用于在组件中存储和更新搜索查询参数。
408
+ * @type {shallowRef<T>}
409
+ * @description 这个引用是浅的,意味着它不会递归地观察嵌套对象的变化。
410
+ * @description 这对于性能优化很重要,因为它避免了不必要的更新。
411
+ */
412
+ protected readonly searchQueryRef: import('vue').ShallowRef<T | undefined, T | undefined>;
413
+ /**
414
+ * 获取搜索查询参数。
415
+ * 这个方法返回 searchQueryRef 引用的值,它表示当前的搜索查询参数。
416
+ * @returns {T} - 当前的搜索查询参数。
417
+ */
418
+ get searchQuery(): T | undefined;
419
+ /**
420
+ * 设置搜索查询参数。
421
+ * 这个方法用于更新 searchQueryRef 引用的值,从而更新搜索查询参数。
422
+ * 它会将当前的查询参数转换为 JSON 字符串,然后再解析回对象,以确保数据的一致性。
423
+ * 最后,它会将解析后的对象绑定到 FilterTarget 上,并将结果赋值给 searchQueryRef。
424
+ */
425
+ protected setSearchQuery(): void;
426
+ /**
427
+ * 创建一个浅引用,用于存储列表数据。
428
+ * 这个引用将用于在组件中存储和更新列表数据。
429
+ * @type {shallowRef<T[]>}
430
+ * @description 这个引用是浅的,意味着它不会递归地观察嵌套对象的变化。
431
+ * @description 这对于性能优化很重要,因为它避免了不必要的更新。
432
+ */
433
+ protected readonly listRef: import('vue').ShallowRef<T[], T[]>;
434
+ /**
435
+ * 定义一个计算属性,用于获取当前显示的列表数据。
436
+ * 这个计算属性会根据分页配置,从列表数据中截取当前页的数据。
437
+ * @returns {T[]} - 当前显示的列表数据。
438
+ * @description 这个计算属性会在分页配置或列表数据发生变化时重新计算。
439
+ * @description 它会根据当前页码和每页显示数量,从列表数据中截取相应的数据。
440
+ * @description 如果没有分页配置,则返回全部列表数据。
441
+ */
442
+ protected readonly displayListComputed: import('vue').ComputedRef<T[]>;
443
+ /**
444
+ * 获取当前显示的列表数据。
445
+ * 这个方法返回 displayListComputed 计算属性的值,它表示当前显示的列表数据。
446
+ * @returns {T[]} - 当前显示的列表数据。
447
+ */
448
+ get displayList(): T[];
449
+ /**
450
+ * 创建一个浅引用,用于存储列表数据的总数。
451
+ * 这个引用将用于在组件中存储和更新列表数据的总数。
452
+ * @type {shallowRef<number>}
453
+ * @description 这个引用是浅的,意味着它不会递归地观察嵌套对象的变化。
454
+ * @description 这对于性能优化很重要,因为它避免了不必要的更新。
455
+ */
456
+ protected readonly totalRef: import('vue').ShallowRef<number, number>;
457
+ /**
458
+ * 设置列表数据和总数。
459
+ * 这个方法用于更新 listRef 和 totalRef 引用的值,从而更新列表数据和总数。
460
+ * @param {T[]} list - 要设置的列表数据。
461
+ * @param {number} total - 列表数据的总数。
462
+ */
463
+ protected setList(list: T[], total: number): void;
464
+ /**
465
+ * 加载列表数据。
466
+ * 这个方法用于从API加载列表数据,并更新列表和总数的引用。
467
+ * @description 这个方法通常在组件初始化或用户触发刷新操作时调用。
468
+ * @description 它会根据API是否支持服务器端分页,调用不同的方法来获取数据。
469
+ * @description 如果API支持服务器端分页,则调用getListByPage方法获取分页数据;否则,调用getList方法获取全部数据。
470
+ * @description 获取到数据后,会调用setList方法更新列表和总数的引用。
471
+ * @returns {Promise<void>} - 返回一个Promise,表示加载操作的结果。
472
+ */
473
+ protected loadList(): Promise<void>;
474
+ /**
475
+ * 获取列表数据。
476
+ * 这个方法用于从API获取列表数据,并更新列表和总数的引用。
477
+ * @description 这个方法通常在组件初始化或用户触发刷新操作时调用。
478
+ * @description 它会先重置分页设置,然后调用 loadList 方法来加载数据。
479
+ */
480
+ protected getList(): void;
481
+ /**
482
+ * 当查询验证成功时调用的方法。
483
+ * 这个方法会检查表格列是否为空,如果不为空,则调用 getList 方法获取列表数据。
484
+ * @description 这个方法通常在查询验证成功后调用。
485
+ * @description 它会检查表格列是否为空,如果为空,则不执行任何操作。
486
+ * @description 如果表格列不为空,则调用 getList 方法获取列表数据。
487
+ * @returns {void}
488
+ */
489
+ protected onValidateQuerySuccess(): void;
490
+ /**
491
+ * 定义一个只读属性,用于处理当前页码改变事件。
492
+ * 这个属性是一个函数,它会在当前页码改变时被调用。
493
+ * 如果 API 支持服务器端分页,则调用 loadList 方法重新加载列表数据。
494
+ * @description 这个属性通常用于监听分页组件的页码改变事件。
495
+ * @returns {void}
496
+ */
497
+ readonly onCurrentPageChange: () => void;
498
+ /**
499
+ * 定义一个只读属性,用于处理每页显示数量改变事件。
500
+ * 这个属性是一个函数,它会在每页显示数量改变时被调用。
501
+ * 如果 API 支持服务器端分页,则调用 getList 方法重新加载列表数据;否则,重置分页设置。
502
+ * @description 这个属性通常用于监听分页组件的每页显示数量改变事件。
503
+ * @returns {void}
504
+ */
505
+ readonly onPageSizeChange: () => void;
506
+ /**
507
+ * 定义一个抽象方法,用于确认删除操作。
508
+ * 这个方法会在删除数据之前被调用,用于确认用户是否真的要删除数据。
509
+ * @param {T} data - 要删除的数据。
510
+ * @returns {Promise<any>} - 返回一个Promise,表示确认删除操作的结果。
511
+ */
512
+ protected abstract confirmDelete(data: T): Promise<any>;
513
+ /**
514
+ * 定义一个抽象方法,用于在删除数据成功后执行的操作。
515
+ * 这个方法会在数据成功删除后被调用,用于执行一些后续操作,例如提示用户删除成功、更新UI等。
516
+ * @description 这个方法通常在数据删除成功后调用。
517
+ * @description 子类必须实现这个方法,否则会抛出错误。
518
+ * @param {T} data - 被删除的数据。
519
+ * @returns {void}
520
+ */
521
+ protected abstract onDeleteSuccess(data: T): void;
522
+ /**
523
+ * 删除指定的数据。
524
+ * 这个方法会调用 confirmDelete 方法来确认删除操作,然后从 API 删除数据,并在删除成功后重新加载列表数据。
525
+ * @param {T} data - 要删除的数据。
526
+ * @returns {void}
527
+ */
528
+ delete(data: T): void;
529
+ /**
530
+ * 导出数据。
531
+ * 这个方法调用API的导出方法,并传递当前的查询参数。
532
+ * @returns {Promise<any>} - 返回一个Promise,表示导出操作的结果。
533
+ */
534
+ export(): httpRequest.HttpRequestPromise<void>;
535
+ /**
536
+ * 创建一个浅引用,用于存储当前步骤的索引。
537
+ * 这个引用将用于在组件中存储和更新当前步骤的索引。
538
+ * @type {shallowRef<number>}
539
+ * @description 这个引用是浅的,意味着它不会递归地观察嵌套对象的变化。
540
+ * @description 这对于性能优化很重要,因为它避免了不必要的更新。
541
+ */
542
+ protected formStepIndexRef: import('vue').ShallowRef<number, number>;
543
+ /**
544
+ * 获取当前步骤的索引。
545
+ * 这个方法返回 formStepIndexRef 引用的值,它表示当前步骤的索引。
546
+ * @returns {number} - 当前步骤的索引。
547
+ */
548
+ get formStepIndex(): number;
549
+ /**
550
+ * 设置当前步骤的索引。
551
+ * 这个方法用于更新当前步骤的索引,并确保其值在有效范围内。
552
+ * @param {number} formStepIndex - 要设置的步骤索引。
553
+ * @description 这个方法会将 formStepIndexRef 引用的值更新为传入的 formStepIndex。
554
+ * @description 它会确保 formStepIndex 的值在 0 和 displayStepFormItemsGroup.length - 1 之间,以防止越界。
555
+ */
556
+ set formStepIndex(formStepIndex: number);
557
+ /**
558
+ * 创建一个浅引用,用于存储编辑类型。
559
+ * 这个引用将用于在组件中存储和更新编辑类型。
560
+ * @type {shallowRef<EditType>}
561
+ * @description 这个引用是浅的,意味着它不会递归地观察嵌套对象的变化。
562
+ * @description 这对于性能优化很重要,因为它避免了不必要的更新。
563
+ */
564
+ protected readonly editTypeRef: import('vue').ShallowRef<EditType, EditType>;
565
+ /**
566
+ * 获取当前编辑类型。
567
+ * 这个方法返回 editTypeRef 引用的值,它表示当前的编辑类型。
568
+ * @returns {EditType} - 当前的编辑类型。
569
+ */
570
+ get editType(): EditType;
571
+ /**
572
+ * 创建一个浅引用,用于存储编辑器的可见性状态。
573
+ * 这个引用将用于在组件中存储和更新编辑器的可见性。
574
+ * @type {shallowRef<boolean>}
575
+ * @description 这个引用是浅的,意味着它不会递归地观察嵌套对象的变化。
576
+ * @description 这对于性能优化很重要,因为它避免了不必要的更新。
577
+ */
578
+ protected readonly editorVisibleRef: import('vue').ShallowRef<boolean, boolean>;
579
+ /**
580
+ * 获取编辑器的可见性状态。
581
+ * 这个方法返回 editorVisibleRef 引用的值,它表示编辑器是否可见。
582
+ * @returns {boolean} - 编辑器的可见性状态。
583
+ */
584
+ get editorVisible(): boolean;
585
+ /**
586
+ * 设置编辑器的可见性状态。
587
+ * 这个方法用于更新编辑器的可见性,并在关闭编辑器时执行一些清理操作。
588
+ * @param {boolean} editorVisible - 编辑器的可见性状态。
589
+ * @description 这个方法会更新 editorVisibleRef 引用的值,从而更新编辑器的可见性。
590
+ * @description 如果编辑器正在关闭(editorVisible 为 false),它会取消正在进行的编辑器数据请求,并调用 afterCloseEditor 方法。
591
+ */
592
+ set editorVisible(editorVisible: boolean);
593
+ /**
594
+ * 在关闭编辑器后执行的抽象方法。
595
+ * 这个方法会在编辑器关闭后被调用,用于执行一些清理操作。
596
+ * @description 这个方法通常在编辑器关闭时调用。
597
+ * @description 子类必须实现这个方法,否则会抛出错误。
598
+ * @returns {void}
599
+ */
600
+ protected abstract afterCloseEditor(): void;
601
+ /**
602
+ * 定义一个只读属性,用于存储编辑器数据的请求工具响应。
603
+ * 这个属性将用于在组件中处理编辑器数据请求的加载状态和取消请求。
604
+ * @type {RequestUtilResponse}
605
+ * @description 这个属性是只读的,意味着它不能被直接修改。
606
+ * @description 它会在组件初始化时被设置,并且在组件的整个生命周期中保持不变。
607
+ */
608
+ protected readonly editorDataRequestUtil: RequestUtilResponse;
609
+ /**
610
+ * 获取编辑器数据的加载状态。
611
+ * 这个方法返回 editorDataRequestUtil.loadStatus 的值,它表示编辑器数据是否正在加载。
612
+ * @returns {boolean} - 编辑器数据的加载状态。
613
+ */
614
+ get editorDataLoadStatus(): boolean;
615
+ /**
616
+ * 创建一个浅引用,用于存储编辑器数据。
617
+ * 这个引用将用于在组件中存储和更新编辑器数据。
618
+ * @type {shallowRef<T>}
619
+ * @description 这个引用是浅的,意味着它不会递归地观察嵌套对象的变化。
620
+ * @description 这对于性能优化很重要,因为它避免了不必要的更新。
621
+ */
622
+ protected readonly editorDataRef: import('vue').ShallowRef<T | undefined, T | undefined>;
623
+ /**
624
+ * 获取编辑器数据。
625
+ * 这个方法返回 editorDataRef 引用的值,它包含了编辑器当前的数据。
626
+ * @returns {T | undefined} - 编辑器数据,如果不存在则返回 undefined。
627
+ */
628
+ get editorData(): T | undefined;
629
+ /**
630
+ * 设置编辑器的数据并准备好后执行的操作。
631
+ * 这个方法用于更新编辑器数据的引用,并在数据准备好后执行一些后续操作。
632
+ * @param {T} editorData - 要设置的编辑器数据。
633
+ * @description 这个方法会更新 editorDataRef 引用的值,从而更新编辑器的数据。
634
+ * @description 在设置数据后,它会调用 afterEditorDataReady 方法,执行一些后续操作,例如初始化编辑器、绑定事件等。
635
+ */
636
+ protected setEditorData(editorData: T): void;
637
+ /**
638
+ * 定义一个抽象方法,用于在编辑器数据准备好后执行的操作。
639
+ * 这个方法会在编辑器数据加载完成后被调用,用于执行一些后续操作,例如初始化编辑器、绑定事件等。
640
+ * @description 这个方法通常在编辑器数据加载完成后调用。
641
+ * @description 子类必须实现这个方法,否则会抛出错误。
642
+ * @returns {void}
643
+ */
644
+ protected abstract afterEditorDataReady(): void;
645
+ /**
646
+ * 打开编辑器并设置编辑类型和数据。
647
+ * 这个方法会根据传入的编辑类型和数据,设置当前的编辑类型、步骤索引和编辑器的可见性。
648
+ * 如果编辑类型是更新,则会通过API获取数据并设置为编辑器的数据。
649
+ * @param {EditTypeEnum} editTypeId - 编辑类型的枚举值。
650
+ * @param {T} data - 要编辑的数据。
651
+ * @returns {void}
652
+ */
653
+ openEditor(editTypeId: EditTypeEnum, data: T): Promise<void>;
654
+ /**
655
+ * 关闭编辑器。
656
+ * 这个方法会将编辑器的可见性设置为 false,从而关闭编辑器。
657
+ * @returns {void}
658
+ */
659
+ closeEditor(): void;
660
+ protected saveEditorDataRequestUtil: RequestUtilResponse;
661
+ /**
662
+ * 抽象方法,用于验证编辑器数据的有效性。
663
+ * 这个方法会在打开编辑器之前被调用,用于执行一些验证逻辑。
664
+ * @description 这个方法通常在打开编辑器之前调用。
665
+ * @description 它会返回一个 Promise,如果验证通过,则继续打开编辑器;否则,抛出错误。
666
+ * @returns {Promise<any>} - 返回一个 Promise,表示验证的结果。
667
+ */
668
+ protected abstract validEditorData(): Promise<any>;
669
+ /**
670
+ * 定义一个抽象方法,用于在保存编辑器数据成功后执行的操作。
671
+ * 这个方法会在编辑器数据成功保存到服务器后被调用,用于执行一些后续操作,例如提示用户保存成功、更新UI等。
672
+ * @description 这个方法通常在编辑器数据保存成功后调用。
673
+ * @description 子类必须实现这个方法,否则会抛出错误。
674
+ * @param {T} data - 保存成功的编辑器数据。
675
+ * @returns {void}
676
+ */
677
+ protected abstract onSaveEditorDataSuccess(data: T): void;
678
+ /**
679
+ * 保存编辑器数据并执行回调函数。
680
+ * 这个方法会验证编辑器数据的有效性,然后将数据发送到服务器进行保存。
681
+ * 如果保存成功,它会重新加载列表数据,并执行传入的回调函数(如果有)。
682
+ * @param {Function} [callback] - 可选的回调函数,在数据保存成功后执行。
683
+ * @returns {void}
684
+ */
685
+ saveEditorData(callback?: (data: T) => void): void;
686
+ /**
687
+ * 保存编辑器数据并继续创建。
688
+ * 这个方法会将当前步骤索引重置为0,然后调用saveEditorData方法保存编辑器数据。
689
+ * 在保存成功后,它会创建一个新的编辑器数据实例,并将其设置为编辑器的数据。
690
+ * @returns {void}
691
+ */
692
+ editorDataSaveAndContinue(): void;
693
+ /**
694
+ * 保存编辑器数据并关闭编辑器。
695
+ * 这个方法会调用 saveEditorData 方法来保存当前的编辑器数据,然后将编辑器的可见性设置为 false,从而关闭编辑器。
696
+ * @returns {void}
697
+ */
698
+ editorDataSaveAndClose(): void;
699
+ /**
700
+ * 在初始化 CURD 配置后执行的钩子函数。
701
+ * 这个抽象方法会在初始化 CURD 配置后调用,用于执行一些后续操作,例如设置默认值、绑定事件等。
702
+ * @description 这个方法通常在组件初始化时调用。
703
+ * @description 子类必须实现这个方法,否则会抛出错误。
704
+ * @returns {void}
705
+ */
706
+ protected abstract afterInitCurdConfigs(): void;
707
+ /**
708
+ * 抽象方法,用于在组件销毁前执行清理操作。
709
+ * 这个方法会在组件销毁前被调用,用于执行一些清理逻辑,例如取消请求、清除定时器等。
710
+ * @description 这个方法通常在组件销毁时调用。
711
+ * @description 子类必须实现这个方法,否则会抛出错误。
712
+ * @returns {void}
713
+ */
714
+ protected abstract onBeforeUnmount(): void;
715
+ /**
716
+ * 创建一个新的CurdHandler实例。
717
+ * 这个构造函数初始化CurdHandler实例,并设置必要的属性和配置。
718
+ * @param {T} curdTargetPrototype - 目标对象的原型。
719
+ * @param {CurdHandlerParam<T>} param - 包含API和分页配置的参数对象。
720
+ * @param {...WithoutFirst<ConstructorParameters<typeof FilterHandler<T>>>} args - 传递给父类构造函数的参数。
721
+ */
722
+ constructor(curdTargetPrototype: T, param: CurdHandlerParam<T>, ...args: WithoutFirst<ConstructorParameters<typeof FilterHandler<T>>>);
723
+ /**
724
+ * 根据目标对象的原型获取对应的 CURD 实例。
725
+ * 这个静态方法会通过目标对象的构造函数来获取其原型上的 CURD 实例。
726
+ * @param {T} curdTargetPrototype - 目标对象的原型。
727
+ * @returns {CurdHandler<T> | undefined} - 返回 CURD 实例,如果不存在则返回 undefined。
728
+ * @template T - 目标对象的类型。
729
+ */
730
+ static getCurdInstance<T extends object>(curdTargetPrototype: T): CurdHandler<T> | undefined;
731
+ }
732
+ /**
733
+ * 定义一个装饰器,用于设置对象原型的配置。
734
+ * 这个装饰器会调用 setConfigsByPrototype 函数来设置配置。
735
+ * @param {Param<T>} param - 配置参数。
736
+ * @returns {(target: T, propertyKey: string | symbol) => void} - 装饰器函数。
737
+ */
738
+ export declare const decorator: <T extends object>(param: Param<T>) => ((target: T, propertyKey: string | symbol) => void);
739
+ /**
740
+ * 根据对象的原型获取配置。
741
+ * 这个函数会调用 getConfigByPrototypeAndKey 函数来获取配置,并将结果转换为 Config<T>[] 类型。
742
+ * @param {T} target - 要获取配置的对象的原型。
743
+ * @returns {undefined | Config<T>[]} - 返回一个 Config<T> 数组,如果没有找到配置则返回 undefined。
744
+ */
745
+ export declare const getConfigsByPrototype: <T extends object>(target: T) => undefined | Config<T>[];
746
+ /**
747
+ * 根据类获取配置。
748
+ * 这个函数会调用 getConfigsByPrototype 函数来获取类的原型的配置,并将结果转换为 Config<CombineInstanceType<T>> 类型。
749
+ * @param {T} Class - 要获取配置的类。
750
+ * @returns {undefined | Config<CombineInstanceType<T>>} - 返回一个 Config<CombineInstanceType<T>> 数组,如果没有找到配置则返回 undefined。
751
+ */
752
+ export declare const getConfigsByClass: <T extends CombineClass>(Class: T) => undefined | Config<CombineInstanceType<T>>;