@yibozhang/pro-table 0.0.4 → 0.0.5
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/bundles/yibozhang-pro-table.umd.js +238 -130
- package/bundles/yibozhang-pro-table.umd.js.map +1 -1
- package/bundles/yibozhang-pro-table.umd.min.js +1 -1
- package/bundles/yibozhang-pro-table.umd.min.js.map +1 -1
- package/esm2015/lib/page-public/array-form.js +202 -131
- package/fesm2015/yibozhang-pro-table.js +201 -130
- package/fesm2015/yibozhang-pro-table.js.map +1 -1
- package/lib/page-public/array-form.d.ts +54 -144
- package/lib/page-public/array-form.d.ts.map +1 -1
- package/package.json +1 -1
- package/yibozhang-pro-table.metadata.json +1 -1
|
@@ -1,186 +1,96 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 字段校验结果类型
|
|
3
|
-
*/
|
|
1
|
+
/** 字段校验结果类型 */
|
|
4
2
|
export declare type ValidationResult = string;
|
|
5
|
-
/**
|
|
6
|
-
* 字段校验方法类型
|
|
7
|
-
*/
|
|
3
|
+
/** 字段校验方法类型 */
|
|
8
4
|
export declare type FieldValidator = (value: any, row: ArrayFormRow, fieldName: string) => ValidationResult;
|
|
9
|
-
/**
|
|
10
|
-
* 字段配置接口
|
|
11
|
-
*/
|
|
5
|
+
/** 字段配置接口 */
|
|
12
6
|
export interface FieldConfig {
|
|
13
7
|
name: string;
|
|
14
8
|
validator?: FieldValidator;
|
|
15
9
|
}
|
|
16
|
-
/**
|
|
17
|
-
* 数组表单行数据接口
|
|
18
|
-
*/
|
|
10
|
+
/** 数组表单行数据接口 */
|
|
19
11
|
export interface ArrayFormRow {
|
|
20
|
-
uid
|
|
12
|
+
uid?: string;
|
|
21
13
|
isEdit: boolean;
|
|
22
14
|
isAdd?: boolean;
|
|
15
|
+
disabled?: boolean;
|
|
23
16
|
[key: string]: any;
|
|
24
17
|
}
|
|
25
|
-
/**
|
|
26
|
-
* 数组表单配置接口
|
|
27
|
-
*/
|
|
18
|
+
/** 数组表单配置接口 */
|
|
28
19
|
export interface ArrayFormConfig {
|
|
29
20
|
fields: FieldConfig[];
|
|
30
21
|
defaultValues?: Record<string, any>;
|
|
31
22
|
targetObject?: Record<string, any>;
|
|
32
23
|
arrayPropertyName?: string;
|
|
33
24
|
}
|
|
34
|
-
/**
|
|
35
|
-
* 表单存储项接口
|
|
36
|
-
*/
|
|
25
|
+
/** 表单存储项接口 */
|
|
37
26
|
export interface ArrayFormStoreItem {
|
|
38
27
|
data: ArrayFormRow[];
|
|
39
28
|
config: ArrayFormConfig;
|
|
40
29
|
validationResults?: Record<string, Record<string, ValidationResult>>;
|
|
30
|
+
/** 初始值快照,用于自动检测字段是否被修改 */
|
|
31
|
+
initialSnapshot: Record<string, Record<string, any>>;
|
|
32
|
+
/** 编辑时快照,用于取消编辑时恢复数据 */
|
|
33
|
+
editingSnapshot: Record<string, Record<string, any>>;
|
|
34
|
+
/** 是否标记所有字段为已触碰(整个表单提交时设为 true) */
|
|
35
|
+
allTouched: boolean;
|
|
36
|
+
/** 每行的 touched 状态(单行保存时设为 true) */
|
|
37
|
+
rowTouched: Record<string, boolean>;
|
|
41
38
|
}
|
|
42
|
-
/**
|
|
43
|
-
* 表单存储接口
|
|
44
|
-
*/
|
|
39
|
+
/** 表单存储接口 */
|
|
45
40
|
export interface ArrayFormStore {
|
|
46
41
|
[formName: string]: ArrayFormStoreItem;
|
|
47
42
|
}
|
|
48
|
-
/**
|
|
49
|
-
* 数组型数据收集基础服务
|
|
50
|
-
*
|
|
51
|
-
* 功能:
|
|
52
|
-
* 1. 支持通过 ngModel 绑定对应行的数据源
|
|
53
|
-
* 2. 自动为数组数据添加 isEdit 和 uid 字段
|
|
54
|
-
* 3. 支持每个字段的自定义校验方法,返回 'success' | 'warning' | 'error'
|
|
55
|
-
* 4. 提供公共方法支持删除、新增、编辑等操作
|
|
56
|
-
*/
|
|
43
|
+
/** 数组型数据收集基础服务 */
|
|
57
44
|
export declare class ArrayFormService {
|
|
58
45
|
private formStore;
|
|
59
46
|
constructor();
|
|
60
|
-
/**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
*/
|
|
47
|
+
/** 深度克隆值 */
|
|
48
|
+
private cloneValue;
|
|
49
|
+
/** 比较两个值是否相等 */
|
|
50
|
+
private isEqual;
|
|
51
|
+
/** 创建行的初始值快照 */
|
|
52
|
+
private createRowSnapshot;
|
|
53
|
+
/** 初始化数组数据,添加 uid 和 isEdit 字段 */
|
|
68
54
|
private initializeData;
|
|
69
|
-
/**
|
|
70
|
-
* 为单行数据添加 uid 和 isEdit 字段
|
|
71
|
-
*
|
|
72
|
-
* @param row 原始行数据
|
|
73
|
-
* @returns 增强后的行数据
|
|
74
|
-
*/
|
|
55
|
+
/** 为单行数据添加 uid 和 isEdit 字段 */
|
|
75
56
|
private enrichRow;
|
|
76
|
-
/**
|
|
77
|
-
* 新增一行数据
|
|
78
|
-
*
|
|
79
|
-
* @param data 数据数组引用
|
|
80
|
-
* @param defaultValues 默认值
|
|
81
|
-
* @returns 新增的行数据
|
|
82
|
-
*/
|
|
57
|
+
/** 新增一行数据 */
|
|
83
58
|
private addRow;
|
|
84
|
-
/**
|
|
85
|
-
* 校验单个字段
|
|
86
|
-
*
|
|
87
|
-
* @param row 行数据
|
|
88
|
-
* @param fieldName 字段名
|
|
89
|
-
* @param config 表单配置
|
|
90
|
-
* @returns 校验结果
|
|
91
|
-
*/
|
|
59
|
+
/** 校验单个字段 */
|
|
92
60
|
private validateField;
|
|
93
|
-
/**
|
|
94
|
-
* 校验整行数据
|
|
95
|
-
*
|
|
96
|
-
* @param row 行数据
|
|
97
|
-
* @param config 表单配置
|
|
98
|
-
* @returns 校验结果对象,key为字段名,value为校验结果
|
|
99
|
-
*/
|
|
61
|
+
/** 校验整行数据 */
|
|
100
62
|
private validateRow;
|
|
101
|
-
/**
|
|
102
|
-
* 校验整个数组
|
|
103
|
-
*
|
|
104
|
-
* @param data 数据数组
|
|
105
|
-
* @param config 表单配置
|
|
106
|
-
* @returns 校验结果对象,key为行的uid,value为该行的校验结果
|
|
107
|
-
*/
|
|
63
|
+
/** 校验整个数组 */
|
|
108
64
|
private validateData;
|
|
109
|
-
/**
|
|
110
|
-
* 注册表单到存储
|
|
111
|
-
* 如果表单已存在,则更新其配置
|
|
112
|
-
*
|
|
113
|
-
* @param formName 表单名称
|
|
114
|
-
* @param data 数据数组
|
|
115
|
-
* @param config 表单配置
|
|
116
|
-
*/
|
|
65
|
+
/** 注册表单到存储 */
|
|
117
66
|
registerForm(formName: string, data: ArrayFormRow[], config: ArrayFormConfig): void;
|
|
118
|
-
/**
|
|
119
|
-
* 从存储中获取表单
|
|
120
|
-
*
|
|
121
|
-
* @param formName 表单名称
|
|
122
|
-
* @returns 表单存储项或undefined
|
|
123
|
-
*/
|
|
67
|
+
/** 从存储中获取表单 */
|
|
124
68
|
getForm(formName: string): ArrayFormStoreItem | undefined;
|
|
125
|
-
/**
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
* @param formName 表单名称
|
|
129
|
-
* @param defaultValues 默认值
|
|
130
|
-
* @returns 新增的行数据或undefined
|
|
131
|
-
*/
|
|
69
|
+
/** 从存储中获取表单数据 */
|
|
70
|
+
getFormData(formName: string): Array<Pick<ArrayFormRow, "uid" | "isEdit" | "isAdd" | keyof ArrayFormRow>> | undefined;
|
|
71
|
+
/** 向表单添加行 */
|
|
132
72
|
addRowToForm(formName: string, defaultValues?: Record<string, any>): ArrayFormRow | undefined;
|
|
133
|
-
/**
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
*
|
|
143
|
-
* @param row 行数据
|
|
144
|
-
*/
|
|
145
|
-
enableEdit(row: ArrayFormRow): void;
|
|
146
|
-
/**
|
|
147
|
-
* 关闭指定行的编辑模式
|
|
148
|
-
*
|
|
149
|
-
* @param row 行数据
|
|
150
|
-
*/
|
|
151
|
-
disableEdit(row: ArrayFormRow): void;
|
|
152
|
-
/**
|
|
153
|
-
* 从表单中删除指定行
|
|
154
|
-
*
|
|
155
|
-
* @param formName 表单名称
|
|
156
|
-
* @param row 行的uid
|
|
157
|
-
* @returns 是否删除成功
|
|
158
|
-
*/
|
|
73
|
+
/** 校验表单,自动标记所有字段为已触碰 */
|
|
74
|
+
validateForm(formName: string): boolean;
|
|
75
|
+
/** 开启编辑模式,保存快照用于取消恢复 */
|
|
76
|
+
enableEdit(formName: string, row: ArrayFormRow): void;
|
|
77
|
+
/** 取消编辑,恢复到编辑前的数据 */
|
|
78
|
+
disableEdit(formName: string, row: ArrayFormRow): void;
|
|
79
|
+
/** 确认编辑,保留修改后的数据 */
|
|
80
|
+
confirmEdit(formName: string, row: ArrayFormRow): void;
|
|
81
|
+
/** 从表单中删除指定行 */
|
|
159
82
|
deleteRowFromForm(formName: string, row: ArrayFormRow): boolean;
|
|
160
|
-
/**
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
* @returns 校验结果
|
|
168
|
-
*/
|
|
169
|
-
validateFieldInRow(formName: string, row: ArrayFormRow, fieldName: string): "success" | "error";
|
|
170
|
-
/**
|
|
171
|
-
* 校验指定行的所有字段
|
|
172
|
-
*
|
|
173
|
-
* @param formName 表单名称
|
|
174
|
-
* @param row 行数据
|
|
175
|
-
* @returns 是否所有字段都通过校验
|
|
176
|
-
*/
|
|
83
|
+
/** 检测字段是否已被触碰 */
|
|
84
|
+
private isFieldTouched;
|
|
85
|
+
/** 校验指定行的指定字段,未修改时不显示校验状态 */
|
|
86
|
+
validateFieldInRow(formName: string, row: ArrayFormRow, fieldName: string): "success" | "error" | "";
|
|
87
|
+
/** 获取指定行指定字段的校验错误信息 */
|
|
88
|
+
getFieldErrorMessage(formName: string, row: ArrayFormRow, fieldName: string): string;
|
|
89
|
+
/** 校验指定行的所有字段 */
|
|
177
90
|
validateRowAllFields(formName: string, row: ArrayFormRow): boolean;
|
|
178
|
-
/**
|
|
179
|
-
* 自动更新外部数组引用(如果配置了)
|
|
180
|
-
* 私有方法,在数据变化时自动调用
|
|
181
|
-
*
|
|
182
|
-
* @param formName 表单名称
|
|
183
|
-
*/
|
|
91
|
+
/** 自动更新外部数组引用 */
|
|
184
92
|
private autoUpdateArrayReference;
|
|
93
|
+
/** 是否有正在编辑的行 */
|
|
94
|
+
hasEditingRow(formName: string): boolean;
|
|
185
95
|
}
|
|
186
96
|
//# sourceMappingURL=array-form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-form.d.ts","sourceRoot":"D:/projects/vps-front/Front/DasPMSWeb/lib/pro-table/src/","sources":["lib/page-public/array-form.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"array-form.d.ts","sourceRoot":"D:/projects/vps-front/Front/DasPMSWeb/lib/pro-table/src/","sources":["lib/page-public/array-form.ts"],"names":[],"mappings":"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"}
|