@ibiz-template/runtime 0.4.9 → 0.4.11
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/index.esm.js +847 -211
- package/dist/index.system.min.js +2 -2
- package/out/controller/control/form/edit-form/edit-form.controller.d.ts.map +1 -1
- package/out/controller/control/form/edit-form/edit-form.controller.js +27 -16
- package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.d.ts +1 -1
- package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.js +1 -1
- package/out/controller/control/form/form-detail/form-item/form-item.controller.d.ts +8 -0
- package/out/controller/control/form/form-detail/form-item/form-item.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-item/form-item.controller.js +14 -0
- package/out/controller/control/gantt/gantt.controller.d.ts +55 -1
- package/out/controller/control/gantt/gantt.controller.d.ts.map +1 -1
- package/out/controller/control/gantt/gantt.controller.js +150 -0
- package/out/controller/control/gantt/gantt.service.d.ts +69 -6
- package/out/controller/control/gantt/gantt.service.d.ts.map +1 -1
- package/out/controller/control/gantt/gantt.service.js +196 -5
- package/out/controller/control/wizard-panel/wizard-panel.controller.d.ts +8 -1
- package/out/controller/control/wizard-panel/wizard-panel.controller.d.ts.map +1 -1
- package/out/controller/control/wizard-panel/wizard-panel.controller.js +22 -7
- package/out/interface/controller/controller/control/i-drbar.controller.d.ts +7 -0
- package/out/interface/controller/controller/control/i-drbar.controller.d.ts.map +1 -1
- package/out/interface/controller/event/view/i-de-index-view.event.d.ts +12 -0
- package/out/interface/controller/event/view/i-de-index-view.event.d.ts.map +1 -0
- package/out/interface/controller/event/view/i-de-index-view.event.js +1 -0
- package/out/interface/controller/event/view/index.d.ts +1 -0
- package/out/interface/controller/event/view/index.d.ts.map +1 -1
- package/out/interface/controller/event/view/index.js +1 -0
- package/out/interface/controller/state/control/i-drbar.state.d.ts +28 -7
- package/out/interface/controller/state/control/i-drbar.state.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-gantt.state.d.ts +94 -3
- package/out/interface/controller/state/control/i-gantt.state.d.ts.map +1 -1
- package/out/interface/controller/state/view/i-de-index-view.state.d.ts +19 -0
- package/out/interface/controller/state/view/i-de-index-view.state.d.ts.map +1 -0
- package/out/interface/controller/state/view/i-de-index-view.state.js +1 -0
- package/out/interface/controller/state/view/i-edit-view2.state.d.ts +8 -0
- package/out/interface/controller/state/view/i-edit-view2.state.d.ts.map +1 -1
- package/out/interface/controller/state/view/index.d.ts +1 -0
- package/out/interface/controller/state/view/index.d.ts.map +1 -1
- package/out/interface/controller/state/view/index.js +1 -0
- package/out/interface/service/service/i-auth.service.d.ts +8 -0
- package/out/interface/service/service/i-auth.service.d.ts.map +1 -1
- package/out/register/helper/ui-action-register.d.ts.map +1 -1
- package/out/register/helper/ui-action-register.js +6 -1
- package/out/service/service/auth/v7-auth.service.d.ts +1 -0
- package/out/service/service/auth/v7-auth.service.d.ts.map +1 -1
- package/out/service/service/auth/v7-auth.service.js +23 -3
- package/out/service/service/entity/de.service.d.ts.map +1 -1
- package/out/service/service/entity/de.service.js +1 -8
- package/out/service/service/entity/method/de-action.d.ts.map +1 -1
- package/out/service/service/entity/method/de-action.js +5 -5
- package/out/service/utils/de-cache/de-cache.d.ts +19 -0
- package/out/service/utils/de-cache/de-cache.d.ts.map +1 -1
- package/out/service/utils/de-cache/de-cache.js +54 -4
- package/out/service/vo/gantt-node-data/gantt-code-list-node-data.d.ts +19 -0
- package/out/service/vo/gantt-node-data/gantt-code-list-node-data.d.ts.map +1 -0
- package/out/service/vo/gantt-node-data/gantt-code-list-node-data.js +14 -0
- package/out/service/vo/gantt-node-data/gantt-data-set-node-data.d.ts +19 -0
- package/out/service/vo/gantt-node-data/gantt-data-set-node-data.d.ts.map +1 -0
- package/out/service/vo/gantt-node-data/gantt-data-set-node-data.js +14 -0
- package/out/service/vo/gantt-node-data/gantt-node-data-util.d.ts +9 -0
- package/out/service/vo/gantt-node-data/gantt-node-data-util.d.ts.map +1 -0
- package/out/service/vo/gantt-node-data/gantt-node-data-util.js +19 -0
- package/out/service/vo/gantt-node-data/gantt-static-node-data.d.ts +17 -0
- package/out/service/vo/gantt-node-data/gantt-static-node-data.d.ts.map +1 -0
- package/out/service/vo/gantt-node-data/gantt-static-node-data.js +13 -0
- package/out/service/vo/gantt-node-data/index.d.ts +4 -0
- package/out/service/vo/gantt-node-data/index.d.ts.map +1 -0
- package/out/service/vo/gantt-node-data/index.js +3 -0
- package/out/service/vo/index.d.ts +1 -0
- package/out/service/vo/index.d.ts.map +1 -1
- package/out/service/vo/index.js +1 -0
- package/out/ui-action/provider/index.d.ts.map +1 -1
- package/out/ui-action/provider/index.js +4 -0
- package/out/ui-action/provider/loginout-ui-action-provider.d.ts +16 -0
- package/out/ui-action/provider/loginout-ui-action-provider.d.ts.map +1 -0
- package/out/ui-action/provider/loginout-ui-action-provider.js +25 -0
- package/package.json +5 -5
- package/src/controller/control/form/edit-form/edit-form.controller.ts +48 -32
- package/src/controller/control/form/form-detail/form-druipart/form-druipart.controller.ts +1 -1
- package/src/controller/control/form/form-detail/form-item/form-item.controller.ts +15 -0
- package/src/controller/control/gantt/gantt.controller.ts +179 -1
- package/src/controller/control/gantt/gantt.service.ts +305 -6
- package/src/controller/control/wizard-panel/wizard-panel.controller.ts +27 -7
- package/src/interface/controller/controller/control/i-drbar.controller.ts +8 -0
- package/src/interface/controller/event/view/i-de-index-view.event.ts +12 -0
- package/src/interface/controller/event/view/index.ts +1 -0
- package/src/interface/controller/state/control/i-drbar.state.ts +32 -8
- package/src/interface/controller/state/control/i-gantt.state.ts +106 -4
- package/src/interface/controller/state/view/i-de-index-view.state.ts +19 -0
- package/src/interface/controller/state/view/i-edit-view2.state.ts +10 -1
- package/src/interface/controller/state/view/index.ts +1 -0
- package/src/interface/service/service/i-auth.service.ts +9 -0
- package/src/register/helper/ui-action-register.ts +7 -1
- package/src/service/service/auth/v7-auth.service.ts +30 -3
- package/src/service/service/entity/de.service.ts +2 -1
- package/src/service/service/entity/method/de-action.ts +5 -4
- package/src/service/utils/de-cache/de-cache.ts +64 -3
- package/src/service/vo/gantt-node-data/gantt-code-list-node-data.ts +68 -0
- package/src/service/vo/gantt-node-data/gantt-data-set-node-data.ts +68 -0
- package/src/service/vo/gantt-node-data/gantt-node-data-util.ts +26 -0
- package/src/service/vo/gantt-node-data/gantt-static-node-data.ts +50 -0
- package/src/service/vo/gantt-node-data/index.ts +3 -0
- package/src/service/vo/index.ts +1 -0
- package/src/ui-action/provider/index.ts +4 -0
- package/src/ui-action/provider/loginout-ui-action-provider.ts +31 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-form.controller.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/form/edit-form/edit-form.controller.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/D,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;;GAQG;AACH,qBAAa,kBACX,SAAQ,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAClE,YAAW,mBAAmB;IAE9B;;;;;OAKG;IACH,OAAO,EAAG,eAAe,CAAC;IAE1B,IAAI,IAAI,IAAI,eAAe,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAM1E;IAED;;;;;;;OAOG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;cAY1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1C;;;;;OAKG;IACG,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IAiC1D;;;;;;OAMG;cACa,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;IA+CtC;;;;;OAKG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IA4CrD;;;;;OAKG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAqEjD;;;;;;OAMG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4CzD;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;IAe9B;;;;;;;OAOG;IACG,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+
|
|
1
|
+
{"version":3,"file":"edit-form.controller.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/form/edit-form/edit-form.controller.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/D,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;;GAQG;AACH,qBAAa,kBACX,SAAQ,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAClE,YAAW,mBAAmB;IAE9B;;;;;OAKG;IACH,OAAO,EAAG,eAAe,CAAC;IAE1B,IAAI,IAAI,IAAI,eAAe,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAM1E;IAED;;;;;;;OAOG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;cAY1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1C;;;;;OAKG;IACG,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IAiC1D;;;;;;OAMG;cACa,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;IA+CtC;;;;;OAKG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IA4CrD;;;;;OAKG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAqEjD;;;;;;OAMG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4CzD;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;IAe9B;;;;;;;OAOG;IACG,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+D7D;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvD;;;;;;;OAOG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BlD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;CAoBjC"}
|
|
@@ -326,24 +326,35 @@ export class EditFormController extends FormController {
|
|
|
326
326
|
if (!formItemUpdate) {
|
|
327
327
|
throw new RuntimeError(`没找到${formItemUpdateId}表单项更新`);
|
|
328
328
|
}
|
|
329
|
-
const { appDEMethodId, defiupdateDetails, customCode, scriptCode } = formItemUpdate;
|
|
329
|
+
const { appDEMethodId, defiupdateDetails, customCode, scriptCode, showBusyIndicator, } = formItemUpdate;
|
|
330
330
|
const updateItems = defiupdateDetails === null || defiupdateDetails === void 0 ? void 0 : defiupdateDetails.map(item => item.id);
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
331
|
+
try {
|
|
332
|
+
if (showBusyIndicator) {
|
|
333
|
+
this.startLoading();
|
|
334
|
+
}
|
|
335
|
+
let updateData; // 要修改的数据
|
|
336
|
+
if (customCode && scriptCode) {
|
|
337
|
+
// 脚本模式获取修改数据
|
|
338
|
+
updateData = ScriptFactory.execScriptFn(Object.assign(Object.assign({}, this.getEventArgs()), { data: this.data }), scriptCode, {
|
|
339
|
+
isAsync: false,
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
// 后台服务获取修改数据
|
|
344
|
+
const params = Object.assign(Object.assign({}, this.params), this.data.getOrigin());
|
|
345
|
+
const res = await this.service.updateFormItem(appDEMethodId, this.context, params);
|
|
346
|
+
updateData = res.data;
|
|
347
|
+
}
|
|
348
|
+
// 修改表单项更新的值
|
|
349
|
+
if (updateData && (updateItems === null || updateItems === void 0 ? void 0 : updateItems.length)) {
|
|
350
|
+
await Promise.all(updateItems.map(itemName => this.setDataValue(itemName, updateData[itemName])));
|
|
351
|
+
}
|
|
352
|
+
await awaitTimeout(2000);
|
|
337
353
|
}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
updateData = res.data;
|
|
343
|
-
}
|
|
344
|
-
// 修改表单项更新的值
|
|
345
|
-
if (updateData && (updateItems === null || updateItems === void 0 ? void 0 : updateItems.length)) {
|
|
346
|
-
await Promise.all(updateItems.map(itemName => this.setDataValue(itemName, updateData[itemName])));
|
|
354
|
+
finally {
|
|
355
|
+
if (showBusyIndicator) {
|
|
356
|
+
this.endLoading();
|
|
357
|
+
}
|
|
347
358
|
}
|
|
348
359
|
}
|
|
349
360
|
/**
|
|
@@ -64,6 +64,14 @@ export declare class FormItemController extends FormDetailController<IDEFormItem
|
|
|
64
64
|
* @type {(string | undefined)}
|
|
65
65
|
*/
|
|
66
66
|
get valueItemName(): string | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* 标签标题
|
|
69
|
+
* @author lxm
|
|
70
|
+
* @date 2023-12-12 09:48:21
|
|
71
|
+
* @readonly
|
|
72
|
+
* @type {(string | undefined)}
|
|
73
|
+
*/
|
|
74
|
+
get labelCaption(): string | undefined;
|
|
67
75
|
/**
|
|
68
76
|
* Creates an instance of FormItemController.
|
|
69
77
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-item.controller.d.ts","sourceRoot":"","sources":["../../../../../../src/controller/control/form/form-detail/form-item/form-item.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAoB,MAAM,kBAAkB,CAAC;AAIjE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAEL,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,8BAA8B,EAC/B,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOvD,qBAAa,kBACX,SAAQ,oBAAoB,CAAC,WAAW,CACxC,YAAW,0BAA0B;IAE7B,KAAK,EAAE,aAAa,CAAC;IAE7B,SAAS,CAAC,WAAW,IAAI,aAAa;IAItC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,eAAe,CAAC;IAEjC;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS,CAAU;IAE3B;;;;;;OAMG;IACH,KAAK,EAAE,KAAK,EAAE,CAAM;IAEpB;;;;;;OAMG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;OAOG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;;;;;OAMG;IACH,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAKtC;IAED;;;;;;;;OAQG;gBAED,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,cAAc,EACpB,MAAM,CAAC,EAAE,8BAA8B;IAKzC;;;;;;OAMG;IACH,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED;;;;;;OAMG;IACH,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED;;;;;;;OAOG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBvC;;;;;;;OAOG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB1C;;;;;;;OAOG;IACH,cAAc,IAAI,IAAI;IAQhB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B/C,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5D,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI;IAO5E;;;;;;OAMG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAyBlC;;;;;;;OAOG;IACG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAShE;;;;;;OAMG;IACH,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAE,KAAiB,GAAG,IAAI;IAmBjE;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQhC;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQ/B;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAOjC"}
|
|
1
|
+
{"version":3,"file":"form-item.controller.d.ts","sourceRoot":"","sources":["../../../../../../src/controller/control/form/form-detail/form-item/form-item.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAoB,MAAM,kBAAkB,CAAC;AAIjE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAEL,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,8BAA8B,EAC/B,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOvD,qBAAa,kBACX,SAAQ,oBAAoB,CAAC,WAAW,CACxC,YAAW,0BAA0B;IAE7B,KAAK,EAAE,aAAa,CAAC;IAE7B,SAAS,CAAC,WAAW,IAAI,aAAa;IAItC;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,eAAe,CAAC;IAEjC;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS,CAAU;IAE3B;;;;;;OAMG;IACH,KAAK,EAAE,KAAK,EAAE,CAAM;IAEpB;;;;;;OAMG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;OAOG;IACH,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;;;;;;OAMG;IACH,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAKtC;IAED;;;;;;OAMG;IACH,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAMrC;IAED;;;;;;;;OAQG;gBAED,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,cAAc,EACpB,MAAM,CAAC,EAAE,8BAA8B;IAKzC;;;;;;OAMG;IACH,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED;;;;;;OAMG;IACH,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED;;;;;;;OAOG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBvC;;;;;;;OAOG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB1C;;;;;;;OAOG;IACH,cAAc,IAAI,IAAI;IAQhB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B/C,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5D,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI;IAO5E;;;;;;OAMG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAyBlC;;;;;;;OAOG;IACG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAShE;;;;;;OAMG;IACH,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAE,KAAiB,GAAG,IAAI;IAmBjE;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQhC;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQ/B;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAOjC"}
|
|
@@ -47,6 +47,20 @@ export class FormItemController extends FormDetailController {
|
|
|
47
47
|
}
|
|
48
48
|
return undefined;
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* 标签标题
|
|
52
|
+
* @author lxm
|
|
53
|
+
* @date 2023-12-12 09:48:21
|
|
54
|
+
* @readonly
|
|
55
|
+
* @type {(string | undefined)}
|
|
56
|
+
*/
|
|
57
|
+
get labelCaption() {
|
|
58
|
+
const { captionItemName } = this.model;
|
|
59
|
+
if (captionItemName) {
|
|
60
|
+
return this.data[captionItemName];
|
|
61
|
+
}
|
|
62
|
+
return this.model.caption;
|
|
63
|
+
}
|
|
50
64
|
/**
|
|
51
65
|
* Creates an instance of FormItemController.
|
|
52
66
|
*
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { IDEGantt } from '@ibiz/model-core';
|
|
2
|
-
import { IGanttController, IGanttEvent, IGanttState } from '../../../interface';
|
|
2
|
+
import { IGanttController, IGanttEvent, IGanttNodeData, IGanttState, MDCtrlLoadParams } from '../../../interface';
|
|
3
3
|
import { MDControlController } from '../../common';
|
|
4
4
|
import { GanttService } from './gantt.service';
|
|
5
|
+
import { ContextMenuController } from '../context-menu';
|
|
5
6
|
/**
|
|
6
7
|
* 甘特图控制器
|
|
7
8
|
*
|
|
@@ -14,6 +15,59 @@ import { GanttService } from './gantt.service';
|
|
|
14
15
|
*/
|
|
15
16
|
export declare class GanttController extends MDControlController<IDEGantt, IGanttState, IGanttEvent> implements IGanttController {
|
|
16
17
|
service: GanttService;
|
|
18
|
+
/**
|
|
19
|
+
* 上下文菜单控制器
|
|
20
|
+
*
|
|
21
|
+
* @author tony001
|
|
22
|
+
* @date 2023-12-11 16:12:57
|
|
23
|
+
* @type {{ [p: string]: ContextMenuController }}
|
|
24
|
+
*/
|
|
25
|
+
contextMenus: {
|
|
26
|
+
[p: string]: ContextMenuController;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* 是否启用快速搜索
|
|
30
|
+
*
|
|
31
|
+
* @author tony001
|
|
32
|
+
* @date 2023-12-11 16:12:13
|
|
33
|
+
* @type {boolean}
|
|
34
|
+
*/
|
|
35
|
+
enableQuickSearch: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* 初始化状态
|
|
38
|
+
*
|
|
39
|
+
* @author tony001
|
|
40
|
+
* @date 2023-12-11 16:12:20
|
|
41
|
+
* @protected
|
|
42
|
+
*/
|
|
43
|
+
protected initState(): void;
|
|
17
44
|
protected onCreated(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* 加载
|
|
47
|
+
*
|
|
48
|
+
* @author tony001
|
|
49
|
+
* @date 2023-12-12 11:12:08
|
|
50
|
+
* @param {MDCtrlLoadParams} [args={}]
|
|
51
|
+
* @return {*} {Promise<IGanttNodeData[]>}
|
|
52
|
+
*/
|
|
53
|
+
load(args?: MDCtrlLoadParams): Promise<IGanttNodeData[]>;
|
|
54
|
+
/**
|
|
55
|
+
* 获取查询参数
|
|
56
|
+
*
|
|
57
|
+
* @author tony001
|
|
58
|
+
* @date 2023-12-12 11:12:22
|
|
59
|
+
* @param {IParams} [extraParams]
|
|
60
|
+
* @return {*} {Promise<IParams>}
|
|
61
|
+
*/
|
|
62
|
+
getFetchParams(extraParams?: IParams): Promise<IParams>;
|
|
63
|
+
/**
|
|
64
|
+
* 加载节点
|
|
65
|
+
*
|
|
66
|
+
* @author tony001
|
|
67
|
+
* @date 2023-12-12 11:12:33
|
|
68
|
+
* @param {IGanttNodeData} [parentNode]
|
|
69
|
+
* @return {*} {Promise<IGanttNodeData[]>}
|
|
70
|
+
*/
|
|
71
|
+
loadNodes(parentNode?: IGanttNodeData): Promise<IGanttNodeData[]>;
|
|
18
72
|
}
|
|
19
73
|
//# sourceMappingURL=gantt.controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gantt.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/gantt/gantt.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gantt.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/gantt/gantt.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,WAAW,EACX,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;;;;;GASG;AACH,qBAAa,eACX,SAAQ,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAC9D,YAAW,gBAAgB;IAEnB,OAAO,EAAE,YAAY,CAAC;IAE9B;;;;;;OAMG;IACH,YAAY,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAA;KAAE,CAAM;IAE1D;;;;;;OAMG;IACH,iBAAiB,EAAE,OAAO,CAAS;IAEnC;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;cAMX,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAoD1C;;;;;;;OAOG;IACG,IAAI,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAsBlE;;;;;;;OAOG;IACG,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7D;;;;;;;OAOG;IACG,SAAS,CAAC,UAAU,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAqCxE"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
/* eslint-disable no-param-reassign */
|
|
2
|
+
import { recursiveIterate } from '@ibiz-template/core';
|
|
1
3
|
import { MDControlController } from '../../common';
|
|
2
4
|
import { GanttService } from './gantt.service';
|
|
5
|
+
import { ContextMenuController } from '../context-menu';
|
|
3
6
|
/**
|
|
4
7
|
* 甘特图控制器
|
|
5
8
|
*
|
|
@@ -11,9 +14,156 @@ import { GanttService } from './gantt.service';
|
|
|
11
14
|
* @implements {IGanttController}
|
|
12
15
|
*/
|
|
13
16
|
export class GanttController extends MDControlController {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
/**
|
|
20
|
+
* 上下文菜单控制器
|
|
21
|
+
*
|
|
22
|
+
* @author tony001
|
|
23
|
+
* @date 2023-12-11 16:12:57
|
|
24
|
+
* @type {{ [p: string]: ContextMenuController }}
|
|
25
|
+
*/
|
|
26
|
+
this.contextMenus = {};
|
|
27
|
+
/**
|
|
28
|
+
* 是否启用快速搜索
|
|
29
|
+
*
|
|
30
|
+
* @author tony001
|
|
31
|
+
* @date 2023-12-11 16:12:13
|
|
32
|
+
* @type {boolean}
|
|
33
|
+
*/
|
|
34
|
+
this.enableQuickSearch = false;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 初始化状态
|
|
38
|
+
*
|
|
39
|
+
* @author tony001
|
|
40
|
+
* @date 2023-12-11 16:12:20
|
|
41
|
+
* @protected
|
|
42
|
+
*/
|
|
43
|
+
initState() {
|
|
44
|
+
super.initState();
|
|
45
|
+
this.state.size = 0;
|
|
46
|
+
this.state.query = '';
|
|
47
|
+
}
|
|
14
48
|
async onCreated() {
|
|
49
|
+
var _a, _b;
|
|
15
50
|
await super.onCreated();
|
|
51
|
+
// 快速搜索
|
|
52
|
+
if ((_a = this.model.detreeNodes) === null || _a === void 0 ? void 0 : _a[0].enableQuickSearch) {
|
|
53
|
+
this.enableQuickSearch = true;
|
|
54
|
+
}
|
|
55
|
+
// 计算快速搜索占位符
|
|
56
|
+
if (this.dataEntity) {
|
|
57
|
+
const searchFields = (_b = this.dataEntity.appDEFields) === null || _b === void 0 ? void 0 : _b.filter(field => {
|
|
58
|
+
return field.enableQuickSearch;
|
|
59
|
+
});
|
|
60
|
+
const placeHolders = [];
|
|
61
|
+
searchFields === null || searchFields === void 0 ? void 0 : searchFields.forEach(searchField => {
|
|
62
|
+
if ((searchField === null || searchField === void 0 ? void 0 : searchField.lnlanguageRes) && searchField.lnlanguageRes.lanResTag) {
|
|
63
|
+
placeHolders.push(ibiz.i18n.t(searchField.lnlanguageRes.lanResTag, searchField.logicName));
|
|
64
|
+
}
|
|
65
|
+
else if (searchField === null || searchField === void 0 ? void 0 : searchField.logicName) {
|
|
66
|
+
placeHolders.push(searchField.logicName);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
if (placeHolders.length > 0) {
|
|
70
|
+
this.state.placeHolder = placeHolders.join('、');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
16
73
|
this.service = new GanttService(this.model);
|
|
17
74
|
await this.service.init(this.context);
|
|
75
|
+
// 初始化上下文菜单控制器
|
|
76
|
+
this.model.detreeNodes.forEach(node => {
|
|
77
|
+
var _a, _b;
|
|
78
|
+
if ((_b = (_a = node.decontextMenu) === null || _a === void 0 ? void 0 : _a.detoolbarItems) === null || _b === void 0 ? void 0 : _b.length) {
|
|
79
|
+
this.contextMenus[node.decontextMenu.id] = new ContextMenuController(node.decontextMenu, this.context, this.params, this.ctx);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
// 上下文菜单控制器初始化
|
|
83
|
+
await Promise.all(Object.values(this.contextMenus).map(menu => menu.created()));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 加载
|
|
87
|
+
*
|
|
88
|
+
* @author tony001
|
|
89
|
+
* @date 2023-12-12 11:12:08
|
|
90
|
+
* @param {MDCtrlLoadParams} [args={}]
|
|
91
|
+
* @return {*} {Promise<IGanttNodeData[]>}
|
|
92
|
+
*/
|
|
93
|
+
async load(args = {}) {
|
|
94
|
+
const isInitialLoad = args.isInitialLoad === true;
|
|
95
|
+
if (isInitialLoad) {
|
|
96
|
+
await this.startLoading();
|
|
97
|
+
}
|
|
98
|
+
let nodes;
|
|
99
|
+
try {
|
|
100
|
+
nodes = await this.loadNodes();
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
if (isInitialLoad) {
|
|
104
|
+
await this.endLoading();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
await this.afterLoad(args, nodes);
|
|
108
|
+
this.state.isLoaded = true;
|
|
109
|
+
await this.evt.emit('onLoadSuccess', {
|
|
110
|
+
isInitialLoad,
|
|
111
|
+
});
|
|
112
|
+
return nodes;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* 获取查询参数
|
|
116
|
+
*
|
|
117
|
+
* @author tony001
|
|
118
|
+
* @date 2023-12-12 11:12:22
|
|
119
|
+
* @param {IParams} [extraParams]
|
|
120
|
+
* @return {*} {Promise<IParams>}
|
|
121
|
+
*/
|
|
122
|
+
async getFetchParams(extraParams) {
|
|
123
|
+
const params = await super.getFetchParams(extraParams);
|
|
124
|
+
if (this.state.query) {
|
|
125
|
+
params.query = this.state.query;
|
|
126
|
+
}
|
|
127
|
+
return params;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* 加载节点
|
|
131
|
+
*
|
|
132
|
+
* @author tony001
|
|
133
|
+
* @date 2023-12-12 11:12:33
|
|
134
|
+
* @param {IGanttNodeData} [parentNode]
|
|
135
|
+
* @return {*} {Promise<IGanttNodeData[]>}
|
|
136
|
+
*/
|
|
137
|
+
async loadNodes(parentNode) {
|
|
138
|
+
const params = await this.getFetchParams();
|
|
139
|
+
const hasQuery = !!params.query;
|
|
140
|
+
this.state.isLoading = true;
|
|
141
|
+
let nodes;
|
|
142
|
+
try {
|
|
143
|
+
// 请求服务获取子节点数据
|
|
144
|
+
nodes =
|
|
145
|
+
(await this.service.fetchGanttChildNodes(parentNode, {
|
|
146
|
+
context: this.context.clone(),
|
|
147
|
+
params,
|
|
148
|
+
hasQuery,
|
|
149
|
+
defaultExpandedKeys: [],
|
|
150
|
+
})) || [];
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
this.state.isLoading = false;
|
|
154
|
+
}
|
|
155
|
+
// 有父节点绑定到父节点数据上,无父节点替换rootNodes
|
|
156
|
+
if (parentNode) {
|
|
157
|
+
parentNode.children = nodes;
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
this.state.rootNodes = nodes;
|
|
161
|
+
}
|
|
162
|
+
// 更新items
|
|
163
|
+
this.state.items = [];
|
|
164
|
+
recursiveIterate({ children: this.state.rootNodes }, (node) => {
|
|
165
|
+
this.state.items.push(node);
|
|
166
|
+
});
|
|
167
|
+
return nodes;
|
|
18
168
|
}
|
|
19
169
|
}
|
|
@@ -1,14 +1,77 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { IDETreeCodeListNode, IDETreeDataSetNode, IDETreeNode, IDETreeNodeRS } from '@ibiz/model-core';
|
|
2
|
+
import { IGanttNodeData } from '../../../interface';
|
|
3
|
+
import { TreeFetchOpts, TreeService } from '../tree';
|
|
3
4
|
/**
|
|
4
5
|
* 甘特图服务
|
|
5
6
|
*
|
|
6
|
-
* @author
|
|
7
|
-
* @date 2023-12-
|
|
7
|
+
* @author tony001
|
|
8
|
+
* @date 2023-12-11 16:12:57
|
|
8
9
|
* @export
|
|
9
10
|
* @class GanttService
|
|
10
|
-
* @extends {
|
|
11
|
+
* @extends {TreeService}
|
|
11
12
|
*/
|
|
12
|
-
export declare class GanttService extends
|
|
13
|
+
export declare class GanttService extends TreeService {
|
|
14
|
+
/**
|
|
15
|
+
* 获取子节点数据
|
|
16
|
+
*
|
|
17
|
+
* @author tony001
|
|
18
|
+
* @date 2023-12-11 18:12:58
|
|
19
|
+
* @param {(IGanttNodeData | undefined)} parentNodeData
|
|
20
|
+
* @param {TreeFetchOpts} opts
|
|
21
|
+
* @return {*} {(Promise<IGanttNodeData[] | undefined>)}
|
|
22
|
+
*/
|
|
23
|
+
fetchGanttChildNodes(parentNodeData: IGanttNodeData | undefined, opts: TreeFetchOpts): Promise<IGanttNodeData[] | undefined>;
|
|
24
|
+
/**
|
|
25
|
+
* 通过节点类型加载节点数据
|
|
26
|
+
*
|
|
27
|
+
* @author tony001
|
|
28
|
+
* @date 2023-12-11 18:12:35
|
|
29
|
+
* @protected
|
|
30
|
+
* @param {IDETreeNode} nodeModel
|
|
31
|
+
* @param {(IDETreeNodeRS | undefined)} nodeRS
|
|
32
|
+
* @param {(ITreeNodeData | undefined)} parentNodeData
|
|
33
|
+
* @param {TreeFetchOpts} opts
|
|
34
|
+
* @return {*} {Promise<IGanttNodeData[]>}
|
|
35
|
+
*/
|
|
36
|
+
protected fetchGanttNodeDatasByType(nodeModel: IDETreeNode, nodeRS: IDETreeNodeRS | undefined, parentNodeData: IGanttNodeData | undefined, opts: TreeFetchOpts): Promise<IGanttNodeData[]>;
|
|
37
|
+
/**
|
|
38
|
+
* 获取静态节点数据
|
|
39
|
+
*
|
|
40
|
+
* @author tony001
|
|
41
|
+
* @date 2023-12-11 18:12:06
|
|
42
|
+
* @protected
|
|
43
|
+
* @param {IDETreeNode} nodeModel
|
|
44
|
+
* @param {(IDETreeNodeRS | undefined)} nodeRS
|
|
45
|
+
* @param {(IGanttNodeData | undefined)} parentNodeData
|
|
46
|
+
* @param {TreeFetchOpts} opts
|
|
47
|
+
* @return {*} {Promise<IGanttNodeData>}
|
|
48
|
+
*/
|
|
49
|
+
protected getStaticGanttNodeData(nodeModel: IDETreeNode, nodeRS: IDETreeNodeRS | undefined, parentNodeData: IGanttNodeData | undefined, opts: TreeFetchOpts): Promise<IGanttNodeData>;
|
|
50
|
+
/**
|
|
51
|
+
* 获取实体数据集数据
|
|
52
|
+
*
|
|
53
|
+
* @author tony001
|
|
54
|
+
* @date 2023-12-11 18:12:23
|
|
55
|
+
* @protected
|
|
56
|
+
* @param {IDETreeDataSetNode} nodeModel
|
|
57
|
+
* @param {(IDETreeNodeRS | undefined)} nodeRS
|
|
58
|
+
* @param {(IGanttNodeData | undefined)} parentNodeData
|
|
59
|
+
* @param {TreeFetchOpts} opts
|
|
60
|
+
* @return {*} {Promise<IGanttNodeData[]>}
|
|
61
|
+
*/
|
|
62
|
+
protected getDEGanttNodeDatas(nodeModel: IDETreeDataSetNode, nodeRS: IDETreeNodeRS | undefined, parentNodeData: IGanttNodeData | undefined, opts: TreeFetchOpts): Promise<IGanttNodeData[]>;
|
|
63
|
+
/**
|
|
64
|
+
* 获取代码表节点数据
|
|
65
|
+
*
|
|
66
|
+
* @author tony001
|
|
67
|
+
* @date 2023-12-11 18:12:35
|
|
68
|
+
* @protected
|
|
69
|
+
* @param {IDETreeCodeListNode} nodeModel
|
|
70
|
+
* @param {(IDETreeNodeRS | undefined)} nodeRS
|
|
71
|
+
* @param {(IGanttNodeData | undefined)} parentNodeData
|
|
72
|
+
* @param {TreeFetchOpts} opts
|
|
73
|
+
* @return {*} {Promise<IGanttNodeData[]>}
|
|
74
|
+
*/
|
|
75
|
+
protected getCodeListGanttNodeDatas(nodeModel: IDETreeCodeListNode, nodeRS: IDETreeNodeRS | undefined, parentNodeData: IGanttNodeData | undefined, opts: TreeFetchOpts): Promise<IGanttNodeData[]>;
|
|
13
76
|
}
|
|
14
77
|
//# sourceMappingURL=gantt.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gantt.service.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/gantt/gantt.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"gantt.service.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/gantt/gantt.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAOrD;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC3C;;;;;;;;OAQG;IACG,oBAAoB,CACxB,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC;IA8CxC;;;;;;;;;;;OAWG;cACa,yBAAyB,CACvC,SAAS,EAAE,WAAW,EACtB,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC;IAoE5B;;;;;;;;;;;OAWG;cACa,sBAAsB,CACpC,SAAS,EAAE,WAAW,EACtB,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,cAAc,CAAC;IAU1B;;;;;;;;;;;OAWG;cACa,mBAAmB,CACjC,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC;IA6C5B;;;;;;;;;;;OAWG;cACa,yBAAyB,CACvC,SAAS,EAAE,mBAAmB,EAC9B,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC;CAmC7B"}
|
|
@@ -1,12 +1,203 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ModelError } from '@ibiz-template/core';
|
|
2
|
+
import { getChildNodeRSs, getRootNode, getTreeNode } from '../../../model';
|
|
3
|
+
import { handleAllSettled } from '../../../utils';
|
|
4
|
+
import { TreeService } from '../tree';
|
|
5
|
+
import { GanttCodeListNodeData, GanttDataSetNodeData, GanttStaticNodeData, } from '../../../service';
|
|
2
6
|
/**
|
|
3
7
|
* 甘特图服务
|
|
4
8
|
*
|
|
5
|
-
* @author
|
|
6
|
-
* @date 2023-12-
|
|
9
|
+
* @author tony001
|
|
10
|
+
* @date 2023-12-11 16:12:57
|
|
7
11
|
* @export
|
|
8
12
|
* @class GanttService
|
|
9
|
-
* @extends {
|
|
13
|
+
* @extends {TreeService}
|
|
10
14
|
*/
|
|
11
|
-
export class GanttService extends
|
|
15
|
+
export class GanttService extends TreeService {
|
|
16
|
+
/**
|
|
17
|
+
* 获取子节点数据
|
|
18
|
+
*
|
|
19
|
+
* @author tony001
|
|
20
|
+
* @date 2023-12-11 18:12:58
|
|
21
|
+
* @param {(IGanttNodeData | undefined)} parentNodeData
|
|
22
|
+
* @param {TreeFetchOpts} opts
|
|
23
|
+
* @return {*} {(Promise<IGanttNodeData[] | undefined>)}
|
|
24
|
+
*/
|
|
25
|
+
async fetchGanttChildNodes(parentNodeData, opts) {
|
|
26
|
+
const { hasQuery } = opts;
|
|
27
|
+
let childrenNodes = [];
|
|
28
|
+
if (!parentNodeData) {
|
|
29
|
+
// 没有父节点的加载根节点数据
|
|
30
|
+
const rootNode = getRootNode(this.model);
|
|
31
|
+
childrenNodes = await this.fetchGanttNodeDatasByType(rootNode, undefined, undefined, opts);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// 有父节点的计算节点关系查询对应节点数据并合并
|
|
35
|
+
const childNodeRSs = getChildNodeRSs(this.model, {
|
|
36
|
+
parentId: parentNodeData.nodeId,
|
|
37
|
+
hasQuery,
|
|
38
|
+
});
|
|
39
|
+
if (childNodeRSs.length === 0) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const results = await handleAllSettled(childNodeRSs.map(async (childNodeRS) => {
|
|
43
|
+
const childNode = getTreeNode(this.model, childNodeRS.childDETreeNodeId);
|
|
44
|
+
return this.fetchGanttNodeDatasByType(childNode, childNodeRS, parentNodeData, opts);
|
|
45
|
+
}), false);
|
|
46
|
+
results.forEach(result => {
|
|
47
|
+
childrenNodes.push(...result);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return childrenNodes;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 通过节点类型加载节点数据
|
|
54
|
+
*
|
|
55
|
+
* @author tony001
|
|
56
|
+
* @date 2023-12-11 18:12:35
|
|
57
|
+
* @protected
|
|
58
|
+
* @param {IDETreeNode} nodeModel
|
|
59
|
+
* @param {(IDETreeNodeRS | undefined)} nodeRS
|
|
60
|
+
* @param {(ITreeNodeData | undefined)} parentNodeData
|
|
61
|
+
* @param {TreeFetchOpts} opts
|
|
62
|
+
* @return {*} {Promise<IGanttNodeData[]>}
|
|
63
|
+
*/
|
|
64
|
+
async fetchGanttNodeDatasByType(nodeModel, nodeRS, parentNodeData, opts) {
|
|
65
|
+
// 有没有下级
|
|
66
|
+
const leaf = getChildNodeRSs(this.model, {
|
|
67
|
+
parentId: nodeModel.id,
|
|
68
|
+
hasQuery: opts.hasQuery,
|
|
69
|
+
}).length === 0;
|
|
70
|
+
const tempOpts = Object.assign(Object.assign({}, opts), { leaf });
|
|
71
|
+
// 根据类型查询节点数据
|
|
72
|
+
let result = [];
|
|
73
|
+
switch (nodeModel.treeNodeType) {
|
|
74
|
+
case 'STATIC':
|
|
75
|
+
{
|
|
76
|
+
const nodeData = await this.getStaticGanttNodeData(nodeModel, nodeRS, parentNodeData, tempOpts);
|
|
77
|
+
result = [nodeData];
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
case 'DE':
|
|
81
|
+
result = await this.getDEGanttNodeDatas(nodeModel, nodeRS, parentNodeData, tempOpts);
|
|
82
|
+
break;
|
|
83
|
+
case 'CODELIST':
|
|
84
|
+
result = await this.getCodeListGanttNodeDatas(nodeModel, nodeRS, parentNodeData, tempOpts);
|
|
85
|
+
break;
|
|
86
|
+
default:
|
|
87
|
+
throw new ModelError(nodeModel, `${nodeModel.treeNodeType}节点类型未支持`);
|
|
88
|
+
}
|
|
89
|
+
// *查询回来之后,如果有子节点,看默认展开相关配置有时每个节点数据走一遍展开逻辑
|
|
90
|
+
const { expandFirstOnly, expanded, rootNode } = nodeModel;
|
|
91
|
+
const isExpandedRoot = rootNode && !this.model.rootVisible; // root节点不显示的时候默认展开其子节点
|
|
92
|
+
if (!leaf) {
|
|
93
|
+
await Promise.all(result.map(async (childNode, index) => {
|
|
94
|
+
if ((expanded && // 全展开合只展开首节点expanded都为true
|
|
95
|
+
(!expandFirstOnly || (expandFirstOnly && index === 0))) ||
|
|
96
|
+
isExpandedRoot) {
|
|
97
|
+
const subChildrenNodes = await this.fetchGanttChildNodes(childNode, opts);
|
|
98
|
+
childNode.children = subChildrenNodes;
|
|
99
|
+
}
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* 获取静态节点数据
|
|
106
|
+
*
|
|
107
|
+
* @author tony001
|
|
108
|
+
* @date 2023-12-11 18:12:06
|
|
109
|
+
* @protected
|
|
110
|
+
* @param {IDETreeNode} nodeModel
|
|
111
|
+
* @param {(IDETreeNodeRS | undefined)} nodeRS
|
|
112
|
+
* @param {(IGanttNodeData | undefined)} parentNodeData
|
|
113
|
+
* @param {TreeFetchOpts} opts
|
|
114
|
+
* @return {*} {Promise<IGanttNodeData>}
|
|
115
|
+
*/
|
|
116
|
+
async getStaticGanttNodeData(nodeModel, nodeRS, parentNodeData, opts) {
|
|
117
|
+
const nodeData = new GanttStaticNodeData(this.model, nodeModel, parentNodeData, { parentValueLevel: nodeRS === null || nodeRS === void 0 ? void 0 : nodeRS.parentValueLevel, leaf: !!opts.leaf });
|
|
118
|
+
return nodeData;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* 获取实体数据集数据
|
|
122
|
+
*
|
|
123
|
+
* @author tony001
|
|
124
|
+
* @date 2023-12-11 18:12:23
|
|
125
|
+
* @protected
|
|
126
|
+
* @param {IDETreeDataSetNode} nodeModel
|
|
127
|
+
* @param {(IDETreeNodeRS | undefined)} nodeRS
|
|
128
|
+
* @param {(IGanttNodeData | undefined)} parentNodeData
|
|
129
|
+
* @param {TreeFetchOpts} opts
|
|
130
|
+
* @return {*} {Promise<IGanttNodeData[]>}
|
|
131
|
+
*/
|
|
132
|
+
async getDEGanttNodeDatas(nodeModel, nodeRS, parentNodeData, opts) {
|
|
133
|
+
const { appDEDataSetId, appDataEntityId } = nodeModel;
|
|
134
|
+
// 处理查询参数,没有关系的时候不处理参数了
|
|
135
|
+
const { context, params, navContext, navParams } = nodeRS
|
|
136
|
+
? this.getNodeRSFilterParams(nodeRS, parentNodeData, opts)
|
|
137
|
+
: {
|
|
138
|
+
context: opts.context,
|
|
139
|
+
params: opts.params,
|
|
140
|
+
navContext: {},
|
|
141
|
+
navParams: {},
|
|
142
|
+
};
|
|
143
|
+
// 设置查询长度
|
|
144
|
+
params.size = nodeModel.maxSize || 1000;
|
|
145
|
+
// 排序属性
|
|
146
|
+
if (nodeModel.sortAppDEFieldId) {
|
|
147
|
+
Object.assign(params, {
|
|
148
|
+
sort: `${nodeModel.sortAppDEFieldId.toLowerCase()},${nodeModel.sortDir ? nodeModel.sortDir.toLowerCase() : 'asc'}`,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
// 请求实体数据
|
|
152
|
+
const response = await this.app.deService.exec(appDataEntityId, appDEDataSetId, context, params);
|
|
153
|
+
if (response.data.length) {
|
|
154
|
+
const nodeDatas = response.data.map((item) => {
|
|
155
|
+
return new GanttDataSetNodeData(this.model, nodeModel, parentNodeData, {
|
|
156
|
+
data: item,
|
|
157
|
+
leaf: !!opts.leaf,
|
|
158
|
+
navContext,
|
|
159
|
+
navParams,
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
return nodeDatas;
|
|
163
|
+
}
|
|
164
|
+
return [];
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* 获取代码表节点数据
|
|
168
|
+
*
|
|
169
|
+
* @author tony001
|
|
170
|
+
* @date 2023-12-11 18:12:35
|
|
171
|
+
* @protected
|
|
172
|
+
* @param {IDETreeCodeListNode} nodeModel
|
|
173
|
+
* @param {(IDETreeNodeRS | undefined)} nodeRS
|
|
174
|
+
* @param {(IGanttNodeData | undefined)} parentNodeData
|
|
175
|
+
* @param {TreeFetchOpts} opts
|
|
176
|
+
* @return {*} {Promise<IGanttNodeData[]>}
|
|
177
|
+
*/
|
|
178
|
+
async getCodeListGanttNodeDatas(nodeModel, nodeRS, parentNodeData, opts) {
|
|
179
|
+
// 处理查询参数,没有关系的时候不处理参数了
|
|
180
|
+
const { context, params, navContext, navParams } = nodeRS
|
|
181
|
+
? this.getNodeRSFilterParams(nodeRS, parentNodeData, opts)
|
|
182
|
+
: {
|
|
183
|
+
context: opts.context,
|
|
184
|
+
params: opts.params,
|
|
185
|
+
navContext: {},
|
|
186
|
+
navParams: {},
|
|
187
|
+
};
|
|
188
|
+
// 请求实体数据
|
|
189
|
+
const items = await this.app.codeList.get(nodeModel.codeListId, context, params);
|
|
190
|
+
if (items.length) {
|
|
191
|
+
const nodeDatas = items.map(item => {
|
|
192
|
+
return new GanttCodeListNodeData(this.model, nodeModel, parentNodeData, {
|
|
193
|
+
data: item,
|
|
194
|
+
leaf: !!opts.leaf,
|
|
195
|
+
navContext,
|
|
196
|
+
navParams,
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
return nodeDatas;
|
|
200
|
+
}
|
|
201
|
+
return [];
|
|
202
|
+
}
|
|
12
203
|
}
|