@ibiz-template/model-helper 0.7.41-alpha.3 → 0.7.41-alpha.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.
@@ -1 +1 @@
1
- {"version":3,"file":"model-helper.d.ts","sourceRoot":"","sources":["../src/model-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-helper.d.ts","sourceRoot":"","sources":["../src/model-helper.ts"],"names":[],"mappings":"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"}
@@ -389,6 +389,8 @@ export class ModelHelper {
389
389
  this.merge.mergeSubAppGridCloumnActionGroup(view, controls, this.subAppRefs);
390
390
  // 合并树视图部件
391
391
  this.merge.mergeSubAppTreeView(view, controls, this.subAppRefs);
392
+ // 合并子应用表单部件
393
+ this.merge.mergeSubAppForm(view, controls, this.subAppRefs);
392
394
  }
393
395
  /**
394
396
  * 根据应用视图 codeName 获取应用视图模型
@@ -0,0 +1,45 @@
1
+ import { IDEForm } from '@ibiz/model-core';
2
+ /** 默认配置参数 */
3
+ declare const IterateOpts: {
4
+ /** 子集合属性数组 */
5
+ childrenFields: string[];
6
+ };
7
+ /**
8
+ * @description 递归遍历子元素,递归遍历子元素 用法:传入数组和回调函数 无返回值
9
+ * @example
10
+ * ```
11
+ * const parent = {
12
+ * name: 'parent',
13
+ * children: [
14
+ * {
15
+ * name: 'child1',
16
+ * children: [{ name: 'grandchild1' }, { name: 'grandchild2' }],
17
+ * },
18
+ * { name: 'child2', children: [{ name: 'grandchild3' }] },
19
+ * ],
20
+ * };
21
+ *
22
+ * const result: string[] = [];
23
+ *
24
+ * recursiveIterate(parent, item => {
25
+ * result.push(item.name);
26
+ * });
27
+ *
28
+ * result // => ['child1', 'grandchild1', 'grandchild2', 'child2', 'grandchild3']
29
+ * ```
30
+ * @export
31
+ * @param {IData} parent 父元素
32
+ * @param {(item: any) => boolean} callback 每一个子元素的回调
33
+ * @param {Partial<typeof IterateOpts>} [opts]
34
+ */
35
+ export declare function recursiveIterate(parent: IData, callback: (item: any, _parent: any) => boolean | void, opts?: Partial<typeof IterateOpts>): void;
36
+ /**
37
+ * @description 合并子应用表单
38
+ * @export
39
+ * @param {(IDEForm | undefined)} dst 主应用表单模型
40
+ * @param {(IDEForm | undefined)} src 子应用表单模型
41
+ * @returns {*} {void}
42
+ */
43
+ export declare function mergeAppDEForm(dst: IDEForm | undefined, src: IDEForm | undefined): void;
44
+ export {};
45
+ //# sourceMappingURL=merge-de-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-de-form.d.ts","sourceRoot":"","sources":["../../../src/utils/merge-model/merge-de-form.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAU3C,aAAa;AACb,QAAA,MAAM,WAAW;IACf,cAAc;;CAEf,CAAC;AAiCF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,KAAK,EACb,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,GAAG,IAAI,EACrD,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,GACjC,IAAI,CAaN;AAoID;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,GAAG,SAAS,EACxB,GAAG,EAAE,OAAO,GAAG,SAAS,GACvB,IAAI,CAKN"}
@@ -0,0 +1,212 @@
1
+ import { mergeDeepRight } from 'ramda';
2
+ // 表单子属性集合(常量)
3
+ const CHILDRENFIELDS = [
4
+ 'deformPages',
5
+ 'deformTabPages',
6
+ 'deformDetails',
7
+ ];
8
+ /** 默认配置参数 */
9
+ const IterateOpts = {
10
+ /** 子集合属性数组 */
11
+ childrenFields: ['children'],
12
+ };
13
+ /**
14
+ * @description 获取表单成员匹配属性标识
15
+ * @param {IModel} model 指定模型数据
16
+ * @param {string[]} fields 属性集合
17
+ * @returns {*} {(string | undefined)}
18
+ */
19
+ function getFormDetailMatchField(model, fields) {
20
+ var _a;
21
+ for (const field of fields) {
22
+ if ((_a = model[field]) === null || _a === void 0 ? void 0 : _a.length) {
23
+ return field;
24
+ }
25
+ }
26
+ }
27
+ /**
28
+ * @description 获取子属性集合
29
+ * @param {IData} parent
30
+ * @param {string[]} fields 子集合可能的属性名称
31
+ * @returns {*} {(IData[] | undefined)}
32
+ */
33
+ function getChildField(parent, fields) {
34
+ var _a;
35
+ for (const field of fields) {
36
+ if ((_a = parent[field]) === null || _a === void 0 ? void 0 : _a.length) {
37
+ return parent[field];
38
+ }
39
+ }
40
+ }
41
+ /**
42
+ * @description 递归遍历子元素,递归遍历子元素 用法:传入数组和回调函数 无返回值
43
+ * @example
44
+ * ```
45
+ * const parent = {
46
+ * name: 'parent',
47
+ * children: [
48
+ * {
49
+ * name: 'child1',
50
+ * children: [{ name: 'grandchild1' }, { name: 'grandchild2' }],
51
+ * },
52
+ * { name: 'child2', children: [{ name: 'grandchild3' }] },
53
+ * ],
54
+ * };
55
+ *
56
+ * const result: string[] = [];
57
+ *
58
+ * recursiveIterate(parent, item => {
59
+ * result.push(item.name);
60
+ * });
61
+ *
62
+ * result // => ['child1', 'grandchild1', 'grandchild2', 'child2', 'grandchild3']
63
+ * ```
64
+ * @export
65
+ * @param {IData} parent 父元素
66
+ * @param {(item: any) => boolean} callback 每一个子元素的回调
67
+ * @param {Partial<typeof IterateOpts>} [opts]
68
+ */
69
+ export function recursiveIterate(parent, callback, opts) {
70
+ const { childrenFields } = mergeDeepRight(IterateOpts, opts || {});
71
+ const children = getChildField(parent, childrenFields);
72
+ if (children === null || children === void 0 ? void 0 : children.length) {
73
+ for (const child of children) {
74
+ // 递归自身的子成员
75
+ const isBreak = callback(child, parent);
76
+ // 如果回调返回true则不循环子数据
77
+ if (!isBreak) {
78
+ recursiveIterate(child, callback, opts);
79
+ }
80
+ }
81
+ }
82
+ }
83
+ /**
84
+ * @description 计算子应用表单合并项(仅合并类型为用户标记为dynamic_overlay:before|after|inside|replace:formitemname)
85
+ * @param {IDEForm} src 子应用表单模型
86
+ * @returns {*} {Map<string, IData>} key值为关联主表单项标识;value为{position:before|after|inside|replace,model:IModel}对象
87
+ */
88
+ function computeSubAppFormItems(src) {
89
+ const subAppMergeItemsMap = new Map();
90
+ recursiveIterate(src, (item, parent) => {
91
+ // 用户标记为dynamic_overlay:开始的才识别为需覆盖到主应用表单
92
+ if (item.userTag &&
93
+ item.userTag.startsWith('dynamic_overlay:') &&
94
+ item.userTag.split(':').length === 3) {
95
+ // before|after|inside|replace + ':formitemname' 定义附加位置
96
+ const tags = item.userTag.split(':');
97
+ if (tags[1] && tags[2]) {
98
+ if (!subAppMergeItemsMap.get(tags[2])) {
99
+ subAppMergeItemsMap.set(tags[2], []);
100
+ }
101
+ const tempItem = {
102
+ position: tags[1],
103
+ model: item,
104
+ };
105
+ const targetMergeArray = subAppMergeItemsMap.get(tags[2]);
106
+ targetMergeArray.push(tempItem);
107
+ }
108
+ // 退出当前子的循环,父已经合并,无需管子的合并
109
+ return true;
110
+ }
111
+ }, {
112
+ childrenFields: CHILDRENFIELDS,
113
+ });
114
+ return subAppMergeItemsMap;
115
+ }
116
+ /**
117
+ * @description 合并指定表单成员到主表表单指定位置
118
+ * @param {IModel} item 当前表单成员
119
+ * @param {IModel} parent 当前表单成员父成员
120
+ * @param {IData} mergeItem 子应用表单合并项
121
+ * @returns {*} {void}
122
+ */
123
+ function mergeSubAppFormItemToDst(item, parent, mergeItem) {
124
+ const { position, model } = mergeItem;
125
+ const formMatchField = getFormDetailMatchField(parent, CHILDRENFIELDS);
126
+ if (!formMatchField)
127
+ return;
128
+ const curIndex = parent[formMatchField].findIndex((parentItem) => {
129
+ return parentItem.codeName === item.codeName;
130
+ });
131
+ switch (position) {
132
+ // 附加至目标之前(before)
133
+ case 'before':
134
+ if (curIndex !== -1) {
135
+ parent[formMatchField].splice(curIndex, 0, model);
136
+ }
137
+ else {
138
+ parent[formMatchField].push(model);
139
+ }
140
+ break;
141
+ // 附加至目标内部(inside)
142
+ case 'inside':
143
+ const itemMatchField = getFormDetailMatchField(item, CHILDRENFIELDS);
144
+ if (itemMatchField) {
145
+ item[itemMatchField].push(model);
146
+ }
147
+ break;
148
+ // 替换目标(replace)
149
+ case 'replace':
150
+ if (curIndex !== -1) {
151
+ parent[formMatchField].splice(curIndex, 1, model);
152
+ }
153
+ break;
154
+ // 附加至目标之后(after)
155
+ case 'after':
156
+ if (curIndex !== -1) {
157
+ parent[formMatchField].splice(curIndex + 1, 0, model);
158
+ }
159
+ break;
160
+ // 附加至目标之后(默认)
161
+ default:
162
+ if (curIndex !== -1) {
163
+ parent[formMatchField].splice(curIndex + 1, 0, model);
164
+ }
165
+ break;
166
+ }
167
+ }
168
+ /**
169
+ * @description 合并子应用表单表单项
170
+ * @param {IDEForm} dst 目标表单模型
171
+ * @param {Map<string, IData>} subAppMergeItems 子应用需合并项数据
172
+ * @returns {*} {void}
173
+ */
174
+ function mergeSubAppFormItems(dst, subAppMergeItems) {
175
+ if (!dst || !subAppMergeItems)
176
+ return;
177
+ if (subAppMergeItems.size === 0)
178
+ return;
179
+ recursiveIterate(dst, (item, parent) => {
180
+ // 通过关联主表单项标识进行合并
181
+ const mergeItems = subAppMergeItems.get(item.codeName);
182
+ if (mergeItems && mergeItems.length > 0) {
183
+ mergeItems.forEach((mergeItem) => {
184
+ mergeSubAppFormItemToDst(item, parent, mergeItem);
185
+ });
186
+ }
187
+ }, {
188
+ childrenFields: CHILDRENFIELDS,
189
+ });
190
+ // 矫正合并后主表单模型数据
191
+ if (dst.deformPages && dst.deformPages.length > 1) {
192
+ dst.noTabHeader = false;
193
+ }
194
+ else {
195
+ dst.noTabHeader = true;
196
+ }
197
+ }
198
+ /**
199
+ * @description 合并子应用表单
200
+ * @export
201
+ * @param {(IDEForm | undefined)} dst 主应用表单模型
202
+ * @param {(IDEForm | undefined)} src 子应用表单模型
203
+ * @returns {*} {void}
204
+ */
205
+ export function mergeAppDEForm(dst, src) {
206
+ if (!dst || !src)
207
+ return;
208
+ const subAppMergeItems = computeSubAppFormItems(src);
209
+ if (subAppMergeItems.size === 0)
210
+ return;
211
+ mergeSubAppFormItems(dst, subAppMergeItems);
212
+ }
@@ -87,5 +87,13 @@ export declare class MergeSubModelHelper {
87
87
  * @param {ISubAppRef[]} subAppRefs
88
88
  */
89
89
  mergeSubAppGridCloumnActionGroup(view: IAppView, controls: IControl[] | undefined, subAppRefs: ISubAppRef[]): void;
90
+ /**
91
+ * @description 合并子应用表单(实体代码标识和表单代码标识一致)
92
+ * @param {IAppView} view
93
+ * @param {(IControl[] | undefined)} controls
94
+ * @param {ISubAppRef[]} subAppRefs
95
+ * @memberof MergeSubModelHelper
96
+ */
97
+ mergeSubAppForm(view: IAppView, controls: IControl[] | undefined, subAppRefs: ISubAppRef[]): void;
90
98
  }
91
99
  //# sourceMappingURL=merge-model-helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge-model-helper.d.ts","sourceRoot":"","sources":["../../../src/utils/merge-model/merge-model-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,QAAQ,EASR,UAAU,EAEX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAO/C;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAC9B;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,YAAmB;IAEhC;;;;;;;OAOG;IACH,gBAAgB,CACd,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAcP;;;;;;;;OAQG;IACH,uBAAuB,CACrB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAuBP;;;;;;;;OAQG;IACH,iBAAiB,CACf,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAiBP;;;;;;;;OAQG;IACH,6BAA6B,CAC3B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAiDP;;;;;;;;OAQG;IACH,qCAAqC,CACnC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAuEP,mBAAmB,CACjB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAwBP;;;;;;;;OAQG;IACH,0BAA0B,CACxB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAuCP;;;;;;;;OAQG;IACH,gCAAgC,CAC9B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;CAoCR"}
1
+ {"version":3,"file":"merge-model-helper.d.ts","sourceRoot":"","sources":["../../../src/utils/merge-model/merge-model-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,QAAQ,EAUR,UAAU,EAEX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAQ/C;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAC9B;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,YAAmB;IAEhC;;;;;;;OAOG;IACH,gBAAgB,CACd,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAcP;;;;;;;;OAQG;IACH,uBAAuB,CACrB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAuBP;;;;;;;;OAQG;IACH,iBAAiB,CACf,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAiBP;;;;;;;;OAQG;IACH,6BAA6B,CAC3B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAiDP;;;;;;;;OAQG;IACH,qCAAqC,CACnC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAuEP,mBAAmB,CACjB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAwBP;;;;;;;;OAQG;IACH,0BAA0B,CACxB,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAuCP;;;;;;;;OAQG;IACH,gCAAgC,CAC9B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;IAqCP;;;;;;OAMG;IACH,eAAe,CACb,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI;CAmBR"}
@@ -5,6 +5,7 @@ import { mergeAppMenu } from './merge-app-menu';
5
5
  import { mergeDEDrControl } from './merge-de-drcontrol';
6
6
  import { mergeAppDEUIActionGroup } from './merge-app-uiaction-group';
7
7
  import { mergeTreeView } from './merge-treeview';
8
+ import { mergeAppDEForm } from './merge-de-form';
8
9
  /**
9
10
  * 子应用模型合并对象
10
11
  *
@@ -297,4 +298,29 @@ export class MergeSubModelHelper {
297
298
  });
298
299
  }
299
300
  }
301
+ /**
302
+ * @description 合并子应用表单(实体代码标识和表单代码标识一致)
303
+ * @param {IAppView} view
304
+ * @param {(IControl[] | undefined)} controls
305
+ * @param {ISubAppRef[]} subAppRefs
306
+ * @memberof MergeSubModelHelper
307
+ */
308
+ mergeSubAppForm(view, controls, subAppRefs) {
309
+ if (!controls)
310
+ return;
311
+ const forms = controls.filter(item => {
312
+ return item.controlType === 'FORM';
313
+ });
314
+ if (forms.length === 0)
315
+ return;
316
+ forms.forEach(dstForm => {
317
+ const ids = dstForm.id.split('.');
318
+ for (let i = 0; i < subAppRefs.length; i++) {
319
+ const srcForm = ibiz.hub.getSubAppControl(ids[1] + ids[2], subAppRefs[i].appId);
320
+ if (srcForm) {
321
+ mergeAppDEForm(dstForm, srcForm);
322
+ }
323
+ }
324
+ });
325
+ }
300
326
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/model-helper",
3
- "version": "0.7.41-alpha.3",
3
+ "version": "0.7.41-alpha.5",
4
4
  "description": "模型辅助库",
5
5
  "main": "out/index.js",
6
6
  "types": "out/index.d.ts",
@@ -31,13 +31,13 @@
31
31
  "license": "MIT",
32
32
  "dependencies": {
33
33
  "@ibiz-template/core": "^0.7.41-alpha.2",
34
- "@ibiz/model-core": "^0.1.76",
35
- "@ibiz/rt-model-api": "0.2.73",
34
+ "@ibiz/model-core": "^0.1.77",
35
+ "@ibiz/rt-model-api": "0.2.74",
36
36
  "pluralize": "^8.0.0",
37
37
  "ramda": "^0.29.1"
38
38
  },
39
39
  "devDependencies": {
40
- "@ibiz-template/runtime": "^0.7.41-alpha.3",
40
+ "@ibiz-template/runtime": "^0.7.41-alpha.5",
41
41
  "@types/pluralize": "^0.0.33",
42
42
  "@types/ramda": "^0.29.10"
43
43
  },
@@ -45,5 +45,5 @@
45
45
  "@ibiz-template/runtime": "^0.6.0",
46
46
  "ramda": "^0.29.0"
47
47
  },
48
- "gitHead": "50c9ea26dd72a8f40fea518dec9b5da2ab0a26b7"
48
+ "gitHead": "95d8b20bb9c6d513b424e78ed634599b26966801"
49
49
  }