@ibiz-template/runtime 0.5.3-beta.0 → 0.5.3-beta.10
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 +2191 -1020
- package/dist/index.system.min.js +1 -1
- package/out/app-hub.d.ts +24 -3
- package/out/app-hub.d.ts.map +1 -1
- package/out/app-hub.js +36 -2
- package/out/application.js +1 -1
- package/out/command/app/open-app-view/open-app-view.d.ts.map +1 -1
- package/out/command/app/open-app-view/open-app-view.js +8 -1
- package/out/constant/control-type.d.ts +5 -1
- package/out/constant/control-type.d.ts.map +1 -1
- package/out/constant/control-type.js +4 -0
- package/out/controller/common/editor/editor.controller.d.ts +24 -0
- package/out/controller/common/editor/editor.controller.d.ts.map +1 -1
- package/out/controller/common/editor/editor.controller.js +50 -0
- package/out/controller/common/view/view.controller.d.ts.map +1 -1
- package/out/controller/common/view/view.controller.js +3 -2
- package/out/controller/constant/control/index.d.ts +1 -0
- package/out/controller/constant/control/index.d.ts.map +1 -1
- package/out/controller/constant/control/index.js +1 -0
- package/out/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.d.ts +5 -0
- package/out/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.d.ts.map +1 -0
- package/out/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.js +6 -0
- package/out/controller/control/chart/chart.controller.js +1 -1
- package/out/controller/control/form/form/form.controller.d.ts.map +1 -1
- package/out/controller/control/form/form/form.controller.js +4 -1
- package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-detail/form-detail.controller.js +4 -0
- package/out/controller/control/form/form-detail/form-tab-page/form-tab-page.controller.d.ts +8 -0
- package/out/controller/control/form/form-detail/form-tab-page/form-tab-page.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-tab-page/form-tab-page.controller.js +10 -0
- package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.d.ts +8 -0
- package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.js +15 -0
- package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.state.d.ts +7 -0
- package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.state.d.ts.map +1 -1
- package/out/controller/control/form/form-detail/form-tab-panel/form-tab-panel.state.js +10 -0
- package/out/controller/control/grid/grid/grid.controller.js +1 -1
- package/out/controller/control/grid/grid/grid.service.d.ts.map +1 -1
- package/out/controller/control/grid/grid/grid.service.js +1 -10
- package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts +7 -0
- package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.js +11 -2
- package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.d.ts +0 -7
- package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.d.ts.map +1 -1
- package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.js +0 -9
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts +1 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.d.ts.map +1 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/index.js +1 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.d.ts +10 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.d.ts.map +1 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.js +12 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.d.ts +34 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.d.ts.map +1 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.js +68 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.d.ts +205 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.d.ts.map +1 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.js +345 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.d.ts +3 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.d.ts.map +1 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.js +14 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts +16 -8
- package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.d.ts.map +1 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex-row.state.js +26 -12
- package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts +59 -0
- package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts.map +1 -1
- package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.js +238 -1
- package/out/de-logic/utils/handle-src-val.d.ts +15 -0
- package/out/de-logic/utils/handle-src-val.d.ts.map +1 -1
- package/out/de-logic/utils/handle-src-val.js +10 -1
- package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +16 -4
- package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
- package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts +23 -1
- package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts.map +1 -1
- package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts +17 -0
- package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts.map +1 -1
- package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts +60 -2
- package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts.map +1 -1
- package/out/interface/provider/i-async-action.provider.d.ts +3 -2
- package/out/interface/provider/i-async-action.provider.d.ts.map +1 -1
- package/out/interface/service/i-transaction/i-transaction.d.ts +83 -0
- package/out/interface/service/i-transaction/i-transaction.d.ts.map +1 -0
- package/out/interface/service/index.d.ts +1 -1
- package/out/interface/service/index.d.ts.map +1 -1
- package/out/interface/service/service/i-app-de.service.d.ts +23 -0
- package/out/interface/service/service/i-app-de.service.d.ts.map +1 -1
- package/out/interface/service/service/i-wf.service.d.ts +5 -4
- package/out/interface/service/service/i-wf.service.d.ts.map +1 -1
- package/out/plugin/index.d.ts +1 -1
- package/out/plugin/index.d.ts.map +1 -1
- package/out/plugin/remote-plugin-item/remote-plugin-item.d.ts +46 -0
- package/out/plugin/remote-plugin-item/remote-plugin-item.d.ts.map +1 -1
- package/out/register/helper/app-menu-item-register.d.ts.map +1 -1
- package/out/register/helper/app-menu-item-register.js +1 -6
- package/out/register/helper/panel-item-register.d.ts.map +1 -1
- package/out/register/helper/panel-item-register.js +36 -30
- package/out/service/dto/method.dto.d.ts +1 -22
- package/out/service/dto/method.dto.d.ts.map +1 -1
- package/out/service/dto/method.dto.js +43 -59
- package/out/service/mqtt/mqtt.service.js +2 -2
- package/out/service/service/auth/v7-auth.service.d.ts.map +1 -1
- package/out/service/service/auth/v7-auth.service.js +2 -0
- package/out/service/service/entity/de.service.d.ts +6 -10
- package/out/service/service/entity/de.service.d.ts.map +1 -1
- package/out/service/service/entity/de.service.js +8 -11
- package/out/service/service/entity/method/de-action.d.ts +13 -1
- package/out/service/service/entity/method/de-action.d.ts.map +1 -1
- package/out/service/service/entity/method/de-action.js +169 -61
- package/out/service/service/entity/method/fetch.d.ts.map +1 -1
- package/out/service/service/entity/method/fetch.js +40 -41
- package/out/service/service/entity/method/method-input.d.ts.map +1 -1
- package/out/service/service/entity/method/method-input.js +3 -2
- package/out/service/service/entity/method/method-renturn.d.ts.map +1 -1
- package/out/service/service/entity/method/method-renturn.js +9 -2
- package/out/service/service/work-flow/work-flow.service.d.ts +1 -1
- package/out/service/service/work-flow/work-flow.service.d.ts.map +1 -1
- package/out/service/service/work-flow/work-flow.service.js +2 -2
- package/out/service/utils/de-cache/de-cache.d.ts +11 -11
- package/out/service/utils/de-cache/de-cache.d.ts.map +1 -1
- package/out/service/utils/de-cache/de-cache.js +123 -96
- package/out/service/utils/de-dq-cond/ps-model-cond-engine-base.d.ts.map +1 -1
- package/out/service/utils/de-dq-cond/ps-model-cond-engine-base.js +4 -0
- package/out/service/utils/de-dq-cond-util/de-dq-cond-util.d.ts.map +1 -1
- package/out/service/utils/de-dq-cond-util/de-dq-cond-util.js +16 -9
- package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts +1 -1
- package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts.map +1 -1
- package/out/service/utils/dynamic-code-list/dynamic-code-list.js +25 -26
- package/out/service/utils/res-path/res-path.d.ts +2 -2
- package/out/service/utils/res-path/res-path.d.ts.map +1 -1
- package/out/service/utils/res-path/res-path.js +1 -1
- package/out/service/utils/search-filter/search-filter.d.ts +0 -14
- package/out/service/utils/search-filter/search-filter.d.ts.map +1 -1
- package/out/service/utils/search-filter/search-filter.js +0 -8
- package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts +6 -0
- package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts.map +1 -1
- package/out/service/vo/tree-node-data/tree-data-set-node-data.js +93 -41
- package/out/ui-action/provider/front-ui-action-provider.d.ts +1 -1
- package/out/ui-action/provider/front-ui-action-provider.d.ts.map +1 -1
- package/out/ui-action/provider/front-ui-action-provider.js +5 -1
- package/out/ui-logic/ui-logic-node/debug-param-node/debug-param-node.js +1 -1
- package/out/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.d.ts.map +1 -1
- package/out/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.js +0 -1
- package/out/utils/script/script-function.js +1 -1
- package/out/utils/ui-domain/transaction.d.ts +66 -0
- package/out/utils/ui-domain/transaction.d.ts.map +1 -0
- package/out/utils/ui-domain/transaction.js +94 -0
- package/out/utils/ui-domain/ui-domain.d.ts +54 -10
- package/out/utils/ui-domain/ui-domain.d.ts.map +1 -1
- package/out/utils/ui-domain/ui-domain.js +70 -15
- package/package.json +5 -5
- package/src/app-hub.ts +52 -3
- package/src/application.ts +1 -1
- package/src/command/app/open-app-view/open-app-view.ts +8 -1
- package/src/constant/control-type.ts +5 -0
- package/src/controller/common/editor/editor.controller.ts +54 -0
- package/src/controller/common/view/view.controller.ts +3 -2
- package/src/controller/constant/control/index.ts +1 -0
- package/src/controller/constant/control/tree-grid-ex/tree-grid-ex-notify.state.ts +5 -0
- package/src/controller/control/chart/chart.controller.ts +1 -1
- package/src/controller/control/form/form/form.controller.ts +11 -1
- package/src/controller/control/form/form-detail/form-detail/form-detail.controller.ts +4 -0
- package/src/controller/control/form/form-detail/form-tab-page/form-tab-page.controller.ts +14 -0
- package/src/controller/control/form/form-detail/form-tab-panel/form-tab-panel.controller.ts +16 -0
- package/src/controller/control/form/form-detail/form-tab-panel/form-tab-panel.state.ts +9 -1
- package/src/controller/control/grid/grid/grid.controller.ts +1 -1
- package/src/controller/control/grid/grid/grid.service.ts +1 -11
- package/src/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.ts +12 -2
- package/src/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.ts +0 -10
- package/src/controller/control/tree-grid-ex/tree-grid-ex-column/index.ts +1 -0
- package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-column/tree-grid-ex-column.controller.ts +22 -0
- package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-field-column.controller.ts +88 -2
- package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.ts +522 -0
- package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller.ts +18 -1
- package/src/controller/control/tree-grid-ex/tree-grid-ex-row.state.ts +43 -12
- package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +296 -1
- package/src/de-logic/utils/handle-src-val.ts +29 -1
- package/src/interface/common/i-app-hub-service/i-app-hub-service.ts +21 -4
- package/src/interface/controller/controller/control/i-tree-grid-ex.controller.ts +27 -2
- package/src/interface/controller/event/control/i-tree-grid-ex.event.ts +15 -1
- package/src/interface/controller/state/control/i-tree-grid-ex.state.ts +64 -2
- package/src/interface/provider/i-async-action.provider.ts +3 -2
- package/src/interface/service/i-transaction/i-transaction.ts +88 -0
- package/src/interface/service/index.ts +4 -1
- package/src/interface/service/service/i-app-de.service.ts +28 -0
- package/src/interface/service/service/i-wf.service.ts +5 -4
- package/src/plugin/index.ts +4 -1
- package/src/plugin/remote-plugin-item/remote-plugin-item.ts +43 -0
- package/src/register/helper/app-menu-item-register.ts +1 -5
- package/src/register/helper/panel-item-register.ts +43 -37
- package/src/service/dto/method.dto.ts +55 -65
- package/src/service/mqtt/mqtt.service.ts +2 -2
- package/src/service/service/auth/v7-auth.service.ts +2 -0
- package/src/service/service/entity/de.service.ts +21 -16
- package/src/service/service/entity/method/de-action.ts +188 -66
- package/src/service/service/entity/method/fetch.ts +44 -49
- package/src/service/service/entity/method/method-input.ts +3 -1
- package/src/service/service/entity/method/method-renturn.ts +9 -1
- package/src/service/service/work-flow/work-flow.service.ts +8 -2
- package/src/service/utils/de-cache/de-cache.ts +129 -97
- package/src/service/utils/de-dq-cond/ps-model-cond-engine-base.ts +4 -0
- package/src/service/utils/de-dq-cond-util/de-dq-cond-util.ts +14 -9
- package/src/service/utils/dynamic-code-list/dynamic-code-list.ts +24 -32
- package/src/service/utils/res-path/res-path.ts +2 -2
- package/src/service/utils/search-filter/search-filter.ts +0 -24
- package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +111 -46
- package/src/ui-action/provider/front-ui-action-provider.ts +10 -1
- package/src/ui-logic/ui-logic-node/debug-param-node/debug-param-node.ts +1 -1
- package/src/ui-logic/ui-logic-node/raw-js-code-node/raw-js-code-node.ts +0 -1
- package/src/utils/script/script-function.ts +1 -1
- package/src/utils/ui-domain/transaction.ts +100 -0
- package/src/utils/ui-domain/ui-domain.ts +77 -17
- package/out/interface/service/i-parent-config/i-parent-config.d.ts +0 -67
- package/out/interface/service/i-parent-config/i-parent-config.d.ts.map +0 -1
- package/src/interface/service/i-parent-config/i-parent-config.ts +0 -66
- /package/out/interface/service/{i-parent-config/i-parent-config.js → i-transaction/i-transaction.js} +0 -0
|
@@ -7,9 +7,11 @@ import {
|
|
|
7
7
|
} from '@ibiz-template/core';
|
|
8
8
|
import { IAppDEAction } from '@ibiz/model-core';
|
|
9
9
|
import { isArray, isNil } from 'lodash-es';
|
|
10
|
+
import { ascSort } from 'qx-util';
|
|
11
|
+
import { clone } from 'ramda';
|
|
10
12
|
import { Method } from './method';
|
|
11
13
|
import { IDataEntity } from '../../../../interface';
|
|
12
|
-
import { findDELogic } from '../../../../model';
|
|
14
|
+
import { calcDeCodeNameById, findDELogic } from '../../../../model';
|
|
13
15
|
import { execDELogicAction, execFieldLogics } from '../../../../de-logic';
|
|
14
16
|
|
|
15
17
|
/**
|
|
@@ -48,7 +50,10 @@ export class DEActionMethod extends Method {
|
|
|
48
50
|
data?: IData | IData[],
|
|
49
51
|
params?: IParams,
|
|
50
52
|
): Promise<HttpResponse<IData>> {
|
|
51
|
-
|
|
53
|
+
let result: IHttpResponse<IData>;
|
|
54
|
+
|
|
55
|
+
// 执行变更属性逻辑
|
|
56
|
+
if (data && !['READ', 'GETDRAFT'].includes(this.method.actionMode!)) {
|
|
52
57
|
await execFieldLogics(this.entity, 'change', context, data, params);
|
|
53
58
|
}
|
|
54
59
|
|
|
@@ -58,64 +63,57 @@ export class DEActionMethod extends Method {
|
|
|
58
63
|
if (!deLogic) {
|
|
59
64
|
throw new RuntimeModelError(this.method, '缺少实体处理逻辑');
|
|
60
65
|
}
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (this.method.needResourceKey) {
|
|
108
|
-
let srfkey = context[this.entity.codeName!.toLowerCase()];
|
|
109
|
-
if (isNil(srfkey)) {
|
|
110
|
-
srfkey = isArray(data)
|
|
111
|
-
? null
|
|
112
|
-
: data?.[this.entity.keyAppDEFieldId!];
|
|
66
|
+
result = await execDELogicAction(deLogic, context, data, params);
|
|
67
|
+
} else {
|
|
68
|
+
if (data && !this.isLocalMode) {
|
|
69
|
+
data = await this.inputHandle(context, data);
|
|
70
|
+
}
|
|
71
|
+
switch (this.method.codeName) {
|
|
72
|
+
case 'Create':
|
|
73
|
+
result = await this.create(context, data!, params || {});
|
|
74
|
+
break;
|
|
75
|
+
case 'Get':
|
|
76
|
+
result = await this.get(context, params);
|
|
77
|
+
break;
|
|
78
|
+
case 'GetDraft':
|
|
79
|
+
result = await this.getDraft(context, params);
|
|
80
|
+
break;
|
|
81
|
+
case 'Remove':
|
|
82
|
+
result = await this.remove(context, params);
|
|
83
|
+
break;
|
|
84
|
+
case 'Update':
|
|
85
|
+
result = await this.update(context, data!, params);
|
|
86
|
+
break;
|
|
87
|
+
case 'CreateTemp':
|
|
88
|
+
result = await this.createTemp(context, data!);
|
|
89
|
+
break;
|
|
90
|
+
case 'GetTemp':
|
|
91
|
+
result = await this.getTemp(context, data);
|
|
92
|
+
break;
|
|
93
|
+
case 'GetDraftTemp':
|
|
94
|
+
result = await this.getDraftTemp(context, params);
|
|
95
|
+
break;
|
|
96
|
+
case 'RemoveTemp':
|
|
97
|
+
result = await this.removeTemp(context, data);
|
|
98
|
+
break;
|
|
99
|
+
case 'UpdateTemp':
|
|
100
|
+
result = await this.updateTemp(context, data!);
|
|
101
|
+
break;
|
|
102
|
+
default: {
|
|
103
|
+
let path = this.calcPath(context);
|
|
104
|
+
if (this.method.needResourceKey) {
|
|
105
|
+
let srfkey = context[this.entity.codeName!.toLowerCase()];
|
|
106
|
+
if (isNil(srfkey)) {
|
|
107
|
+
srfkey = isArray(data)
|
|
108
|
+
? null
|
|
109
|
+
: data?.[this.entity.keyAppDEFieldId!];
|
|
110
|
+
}
|
|
111
|
+
path = `${path}/${srfkey}`;
|
|
113
112
|
}
|
|
114
|
-
|
|
113
|
+
const res = await this.request(path, context, data, params);
|
|
114
|
+
res.data = await this.result.handle(context, res.data);
|
|
115
|
+
result = res;
|
|
115
116
|
}
|
|
116
|
-
const res = await this.request(path, context, data, params);
|
|
117
|
-
res.data = await this.result.handle(context, res.data);
|
|
118
|
-
result = res;
|
|
119
117
|
}
|
|
120
118
|
}
|
|
121
119
|
|
|
@@ -342,6 +340,13 @@ export class DEActionMethod extends Method {
|
|
|
342
340
|
if (!key && context) {
|
|
343
341
|
key = context[this.entity.codeName!.toLowerCase()];
|
|
344
342
|
}
|
|
343
|
+
try {
|
|
344
|
+
await this.associationDeletion(key, context, params);
|
|
345
|
+
} catch (error) {
|
|
346
|
+
throw new HttpError({
|
|
347
|
+
response: new HttpResponse(null, 500, (error as IData).message),
|
|
348
|
+
} as unknown as Error);
|
|
349
|
+
}
|
|
345
350
|
const data = this.service.local.delete(context, key)!;
|
|
346
351
|
if (data) {
|
|
347
352
|
return new HttpResponse(data);
|
|
@@ -352,6 +357,124 @@ export class DEActionMethod extends Method {
|
|
|
352
357
|
}
|
|
353
358
|
}
|
|
354
359
|
|
|
360
|
+
/**
|
|
361
|
+
* 关联删除
|
|
362
|
+
*
|
|
363
|
+
* @author chitanda
|
|
364
|
+
* @date 2024-01-17 16:01:47
|
|
365
|
+
* @protected
|
|
366
|
+
* @param {string} key
|
|
367
|
+
* @param {IContext} context
|
|
368
|
+
* @param {IParams} [params]
|
|
369
|
+
* @return {*} {Promise<void>}
|
|
370
|
+
*/
|
|
371
|
+
protected async associationDeletion(
|
|
372
|
+
key: string,
|
|
373
|
+
context: IContext,
|
|
374
|
+
_params?: IParams,
|
|
375
|
+
): Promise<void> {
|
|
376
|
+
// 当前执行界面域
|
|
377
|
+
const uiDomain = ibiz.uiDomainManager.get(context.srfsessionid);
|
|
378
|
+
|
|
379
|
+
// 当前事务
|
|
380
|
+
const t = uiDomain.transaction;
|
|
381
|
+
let selfOpenTransaction = false;
|
|
382
|
+
// 由第一层触发关联删除的位置来打开事务,后续子的关联删除不需要再次打开事务
|
|
383
|
+
if (t.state.isOpen === false) {
|
|
384
|
+
t.open();
|
|
385
|
+
selfOpenTransaction = true;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
try {
|
|
389
|
+
let configs = uiDomain.getDERConfigByMajor(this.entity.id!);
|
|
390
|
+
if (configs.length > 0) {
|
|
391
|
+
// 当前主数据
|
|
392
|
+
const data = this.service.local.get(context, key)!;
|
|
393
|
+
|
|
394
|
+
// 根据删除顺序排序
|
|
395
|
+
configs = ascSort(configs, 'removeOrder');
|
|
396
|
+
|
|
397
|
+
// 根据关系进行关联删除
|
|
398
|
+
for (const config of configs) {
|
|
399
|
+
if (config.rstype !== 'DER1N') {
|
|
400
|
+
throw new RuntimeModelError(
|
|
401
|
+
config,
|
|
402
|
+
'目前只支持[DER1N]关系类型关联删除删除',
|
|
403
|
+
);
|
|
404
|
+
}
|
|
405
|
+
const {
|
|
406
|
+
removeActionType,
|
|
407
|
+
removeRejectMsg,
|
|
408
|
+
minorAppDataEntityId,
|
|
409
|
+
nestedAppDEDataSetId = 'FetchDefault',
|
|
410
|
+
} = config;
|
|
411
|
+
// 获取当前应用域下的子实体服务
|
|
412
|
+
const app = ibiz.hub.getApp(this.entity.appId!);
|
|
413
|
+
const minorService = await app.deService.getService(
|
|
414
|
+
context,
|
|
415
|
+
minorAppDataEntityId!,
|
|
416
|
+
);
|
|
417
|
+
// 克隆上下文,防止污染。并设置当前实体的主键上下文
|
|
418
|
+
const _context = clone(context);
|
|
419
|
+
_context[this.entity.codeName!.toLowerCase()] = key;
|
|
420
|
+
// 查询出关联的子实体数据
|
|
421
|
+
const res = await minorService.exec(nestedAppDEDataSetId, _context);
|
|
422
|
+
const items = (res.data || []) as IDataEntity[];
|
|
423
|
+
switch (removeActionType) {
|
|
424
|
+
// 同时删除
|
|
425
|
+
case 1: {
|
|
426
|
+
for (let i = 0; i < items.length; i++) {
|
|
427
|
+
const item = items[i];
|
|
428
|
+
_context[minorService.model.codeName!.toLowerCase()] =
|
|
429
|
+
item.srfkey;
|
|
430
|
+
const res2 = await minorService.remove(_context, item);
|
|
431
|
+
if (res2.ok === false) {
|
|
432
|
+
throw new Error(res2.statusText);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
break;
|
|
436
|
+
}
|
|
437
|
+
// 置空
|
|
438
|
+
case 2:
|
|
439
|
+
for (let i = 0; i < items.length; i++) {
|
|
440
|
+
const item = items[i];
|
|
441
|
+
_context[minorService.model.codeName!.toLowerCase()] =
|
|
442
|
+
item.srfkey;
|
|
443
|
+
item[config.parentAppDEFieldId!.toLowerCase()] = undefined;
|
|
444
|
+
const res2 = await minorService.updateTemp(_context, item);
|
|
445
|
+
if (res2.ok === false) {
|
|
446
|
+
throw new Error(res2.statusText);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
break;
|
|
450
|
+
// 限制删除
|
|
451
|
+
case 3:
|
|
452
|
+
if (items.length > 0) {
|
|
453
|
+
const msg = items.map(item => item.srfmajortext).join('、');
|
|
454
|
+
const message = `无法删除[${this.entity.logicName}-${data.srfmajortext}], 数据被[${minorService.model.logicName}-${msg}]引用`;
|
|
455
|
+
throw new Error(removeRejectMsg || message);
|
|
456
|
+
}
|
|
457
|
+
break;
|
|
458
|
+
default:
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
// 谁打开的事务,由谁来提交和关闭
|
|
463
|
+
if (selfOpenTransaction && t.state.isOpen) {
|
|
464
|
+
t.commit();
|
|
465
|
+
}
|
|
466
|
+
} catch (error) {
|
|
467
|
+
if (selfOpenTransaction && t.state.isOpen) {
|
|
468
|
+
t.rollback();
|
|
469
|
+
}
|
|
470
|
+
throw error;
|
|
471
|
+
} finally {
|
|
472
|
+
if (selfOpenTransaction && t.state.isOpen) {
|
|
473
|
+
t.close();
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
|
|
355
478
|
/**
|
|
356
479
|
* 更新临时数据
|
|
357
480
|
*
|
|
@@ -412,7 +535,6 @@ export class DEActionMethod extends Method {
|
|
|
412
535
|
key = context[this.entity.codeName!.toLowerCase()];
|
|
413
536
|
}
|
|
414
537
|
const data = this.service.local.get(context, key);
|
|
415
|
-
// await this.executeDEFelidLogic(context, data);
|
|
416
538
|
if (data) {
|
|
417
539
|
return new HttpResponse(data);
|
|
418
540
|
}
|
|
@@ -430,15 +552,14 @@ export class DEActionMethod extends Method {
|
|
|
430
552
|
* @return {*} {Promise<IHttpResponse>}
|
|
431
553
|
*/
|
|
432
554
|
async removeBatchTemp(
|
|
433
|
-
_context:
|
|
555
|
+
_context: IContext,
|
|
434
556
|
_params?: IParams,
|
|
435
557
|
): Promise<IHttpResponse> {
|
|
436
558
|
// if (params) {
|
|
437
559
|
// const keys: string[] = params[this.entity.keyName];
|
|
438
560
|
// if (keys) {
|
|
439
561
|
// try {
|
|
440
|
-
//
|
|
441
|
-
// await s.local.deleteBatch(context, keys);
|
|
562
|
+
// await this.service.local.deleteBatch(context, keys);
|
|
442
563
|
// } catch (err) {
|
|
443
564
|
// return new HttpResponse(err, 500);
|
|
444
565
|
// }
|
|
@@ -463,10 +584,11 @@ export class DEActionMethod extends Method {
|
|
|
463
584
|
const configs = uiDomain.getDERConfig(this.entity.id!);
|
|
464
585
|
if (configs.length > 0) {
|
|
465
586
|
configs.forEach(config => {
|
|
466
|
-
if (config.
|
|
467
|
-
const {
|
|
468
|
-
const
|
|
469
|
-
const
|
|
587
|
+
if (config.parentAppDEFieldId) {
|
|
588
|
+
const { majorAppDataEntityId, parentAppDEFieldId } = config;
|
|
589
|
+
const majorDECodeName = calcDeCodeNameById(majorAppDataEntityId!);
|
|
590
|
+
const majorLowerCodeName = majorDECodeName;
|
|
591
|
+
const pickupLowerDEFName = parentAppDEFieldId.toLowerCase();
|
|
470
592
|
const majorkey = context[majorLowerCodeName];
|
|
471
593
|
// 父主键不能是自身,否则自关系的时候就改错了
|
|
472
594
|
if (majorkey && majorkey !== data.srfkey) {
|
|
@@ -7,7 +7,7 @@ import { IAppDEDataSet } from '@ibiz/model-core';
|
|
|
7
7
|
import { isArray } from 'lodash-es';
|
|
8
8
|
import { clone, isEmpty, isNil } from 'ramda';
|
|
9
9
|
import { ascSort, descSort } from 'qx-util';
|
|
10
|
-
import { PSDEDQCondEngine, SearchFilter } from '../../../utils';
|
|
10
|
+
import { DEDQCondUtil, PSDEDQCondEngine, SearchFilter } from '../../../utils';
|
|
11
11
|
import { Method } from './method';
|
|
12
12
|
import { IDataEntity } from '../../../../interface';
|
|
13
13
|
import { execFieldLogics } from '../../../../de-logic';
|
|
@@ -32,39 +32,38 @@ export class FetchMethod extends Method {
|
|
|
32
32
|
// 过滤参数,必须是对象
|
|
33
33
|
const searchParams = params && !isArray(params) ? params : params2 || {};
|
|
34
34
|
|
|
35
|
-
if (this.isLocalMode) {
|
|
36
|
-
// 临时数据
|
|
37
|
-
const items = await this.searchLocal(
|
|
38
|
-
null,
|
|
39
|
-
new SearchFilter(context, searchParams),
|
|
40
|
-
);
|
|
41
|
-
return new HttpResponse<IDataEntity[]>(items, 200);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
35
|
// 根据数据集合来源查询数据
|
|
45
36
|
let res: HttpResponse<IData[]>;
|
|
46
|
-
switch (this.method.dataSetType) {
|
|
47
|
-
case 'INDEXDE':
|
|
48
|
-
case 'CODELIST':
|
|
49
|
-
case 'MULTIFORM':
|
|
50
|
-
res = await this.fetchCodeListSet(context, searchParams);
|
|
51
|
-
break;
|
|
52
|
-
case 'REMOTE':
|
|
53
|
-
{
|
|
54
|
-
const path = this.calcPath(context);
|
|
55
|
-
res = await this.request(path, context, params, params2);
|
|
56
|
-
}
|
|
57
|
-
break;
|
|
58
|
-
default:
|
|
59
|
-
throw new ModelError(
|
|
60
|
-
this.method,
|
|
61
|
-
`数据来源类型${this.method.dataSetType}暂未支持`,
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
37
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
38
|
+
if (this.isLocalMode) {
|
|
39
|
+
const cond = DEDQCondUtil.getCond(this.method);
|
|
40
|
+
const filter = new SearchFilter(context, searchParams);
|
|
41
|
+
const items = await this.searchLocal(cond, filter);
|
|
42
|
+
res = new HttpResponse<IDataEntity[]>(items, 200);
|
|
43
|
+
} else {
|
|
44
|
+
switch (this.method.dataSetType) {
|
|
45
|
+
case 'INDEXDE':
|
|
46
|
+
case 'CODELIST':
|
|
47
|
+
case 'MULTIFORM':
|
|
48
|
+
res = await this.fetchCodeListSet(context, searchParams);
|
|
49
|
+
break;
|
|
50
|
+
case 'REMOTE':
|
|
51
|
+
{
|
|
52
|
+
const path = this.calcPath(context);
|
|
53
|
+
res = await this.request(path, context, params, params2);
|
|
54
|
+
}
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
throw new ModelError(
|
|
58
|
+
this.method,
|
|
59
|
+
`数据来源类型${this.method.dataSetType}暂未支持`,
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// 转换实体对象
|
|
64
|
+
const items: IData[] = res.data || [];
|
|
65
|
+
res.data = items.map(item => this.createEntity(item));
|
|
66
|
+
}
|
|
68
67
|
|
|
69
68
|
// 计算属性逻辑,每条数据走一遍
|
|
70
69
|
if (res.data) {
|
|
@@ -95,30 +94,26 @@ export class FetchMethod extends Method {
|
|
|
95
94
|
filter: SearchFilter,
|
|
96
95
|
queryParamKeys: string[] = this.entity.quickSearchAppDEFieldIds!,
|
|
97
96
|
): Promise<IDataEntity[]> {
|
|
98
|
-
let list: IDataEntity[] =
|
|
97
|
+
let list: IDataEntity[] = this.service.local.getList();
|
|
99
98
|
// 走查询条件
|
|
100
99
|
if (cond) {
|
|
101
|
-
list = this.service.local.getList();
|
|
102
100
|
if (list.length > 0) {
|
|
103
101
|
list = list.filter(obj => cond.test(obj, filter));
|
|
104
102
|
}
|
|
105
|
-
} else {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
if (reg.test(val)) {
|
|
116
|
-
return true;
|
|
117
|
-
}
|
|
103
|
+
} else if (list.length > 0) {
|
|
104
|
+
if (filter.query && filter.query !== '') {
|
|
105
|
+
if (queryParamKeys) {
|
|
106
|
+
list = list.filter(obj => {
|
|
107
|
+
const reg = new RegExp(filter.query);
|
|
108
|
+
for (let i = 0; i < queryParamKeys.length; i += 1) {
|
|
109
|
+
const key = queryParamKeys[i];
|
|
110
|
+
const val: string = obj[key];
|
|
111
|
+
if (reg.test(val)) {
|
|
112
|
+
return true;
|
|
118
113
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
114
|
+
}
|
|
115
|
+
return false;
|
|
116
|
+
});
|
|
122
117
|
}
|
|
123
118
|
}
|
|
124
119
|
}
|
|
@@ -37,7 +37,9 @@ export class MethodInput {
|
|
|
37
37
|
input.appDEMethodDTOId!,
|
|
38
38
|
);
|
|
39
39
|
if (methodDto) {
|
|
40
|
-
this.dto =
|
|
40
|
+
this.dto = service.createMethodDto(methodDto, {
|
|
41
|
+
isLocalMode: this.isLocalMode,
|
|
42
|
+
});
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
45
|
}
|
|
@@ -39,7 +39,9 @@ export class MethodReturn {
|
|
|
39
39
|
output.appDEMethodDTOId!,
|
|
40
40
|
);
|
|
41
41
|
if (methodDto) {
|
|
42
|
-
this.dto =
|
|
42
|
+
this.dto = service.createMethodDto(methodDto, {
|
|
43
|
+
isLocalMode: this.isLocalMode,
|
|
44
|
+
});
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
47
|
}
|
|
@@ -55,6 +57,12 @@ export class MethodReturn {
|
|
|
55
57
|
*/
|
|
56
58
|
async handle(context: IContext, data: IData): Promise<IDataEntity> {
|
|
57
59
|
if (this.dto) {
|
|
60
|
+
const app = ibiz.hub.getApp(this.entity.appId);
|
|
61
|
+
// 设置之前清理掉当前界面域下的数据缓存
|
|
62
|
+
app.deService.clearTempCache({
|
|
63
|
+
srfappid: app.appId,
|
|
64
|
+
srfsessionid: context.srfsessionid,
|
|
65
|
+
});
|
|
58
66
|
const items = await this.dto.sets(context, [data]);
|
|
59
67
|
return items[0];
|
|
60
68
|
}
|
|
@@ -161,8 +161,14 @@ export class WorkFlowService implements IWorkFlowService {
|
|
|
161
161
|
* @date 2022-09-29 14:09:45
|
|
162
162
|
* @returns {*} {Promise<IHttpResponse<IData>>}
|
|
163
163
|
*/
|
|
164
|
-
async getWFVersion(): Promise<IHttpResponse<IData>> {
|
|
165
|
-
return this.app.net.get(
|
|
164
|
+
async getWFVersion(srfWFTag?: string): Promise<IHttpResponse<IData>> {
|
|
165
|
+
return this.app.net.get(
|
|
166
|
+
`/wfcore/${
|
|
167
|
+
ibiz.appData!.context.srfsystemid
|
|
168
|
+
}-app-${this.app.model.codeName!.toLowerCase()}/${this.model.name!.toLowerCase()}${
|
|
169
|
+
srfWFTag ? `-${srfWFTag}` : ''
|
|
170
|
+
}/process-definitions2`,
|
|
171
|
+
);
|
|
166
172
|
}
|
|
167
173
|
|
|
168
174
|
/**
|