@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
package/src/app-hub.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { IAppDataEntity, IAppView, IApplication } from '@ibiz/model-core';
|
|
2
2
|
import { RuntimeError } from '@ibiz-template/core';
|
|
3
3
|
import { Application } from './application';
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
IAppDEService,
|
|
6
|
+
IAppHubService,
|
|
7
|
+
IAppService,
|
|
8
|
+
ModelLoaderProvider,
|
|
9
|
+
} from './interface';
|
|
5
10
|
import { AppConfigService, Convert } from './hub';
|
|
6
11
|
import { HubController } from './controller';
|
|
7
12
|
import { ConfigService } from './service';
|
|
@@ -61,6 +66,16 @@ export class AppHub implements IAppHubService {
|
|
|
61
66
|
*/
|
|
62
67
|
protected view2appMap: Map<string, string> = new Map();
|
|
63
68
|
|
|
69
|
+
/**
|
|
70
|
+
* 当前注册的应用视图优先级
|
|
71
|
+
*
|
|
72
|
+
* @author chitanda
|
|
73
|
+
* @date 2024-01-15 15:01:57
|
|
74
|
+
* @protected
|
|
75
|
+
* @type {Map<string, number>}
|
|
76
|
+
*/
|
|
77
|
+
protected view2appPriorityMap: Map<string, number> = new Map();
|
|
78
|
+
|
|
64
79
|
/**
|
|
65
80
|
* 实例化的应用视图模型
|
|
66
81
|
*
|
|
@@ -171,13 +186,28 @@ export class AppHub implements IAppHubService {
|
|
|
171
186
|
* 设置应用视图所属应用
|
|
172
187
|
*
|
|
173
188
|
* @author chitanda
|
|
174
|
-
* @date
|
|
189
|
+
* @date 2024-01-15 15:01:41
|
|
175
190
|
* @param {string} tag 视图 codeName 或者视图 id
|
|
176
191
|
* @param {string} [appId=ibiz.env.appId]
|
|
192
|
+
* @param {number} [priority=-1] 视图的优先级,值越小优先级越高。1为最高优先级
|
|
177
193
|
*/
|
|
178
|
-
setAppView(
|
|
194
|
+
setAppView(
|
|
195
|
+
tag: string,
|
|
196
|
+
appId: string = ibiz.env.appId,
|
|
197
|
+
priority: number = -1,
|
|
198
|
+
): void {
|
|
179
199
|
const id = this.calcAppViewId(tag);
|
|
200
|
+
if (this.view2appMap.has(id)) {
|
|
201
|
+
const _priority = this.view2appPriorityMap.get(id);
|
|
202
|
+
// 已经存在优先级高的视图直接跳过,若优先级相同或更高则覆盖
|
|
203
|
+
if (_priority && _priority < priority) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
180
207
|
this.view2appMap.set(id, appId);
|
|
208
|
+
if (priority !== -1) {
|
|
209
|
+
this.view2appPriorityMap.set(id, priority);
|
|
210
|
+
}
|
|
181
211
|
}
|
|
182
212
|
|
|
183
213
|
/**
|
|
@@ -372,6 +402,25 @@ export class AppHub implements IAppHubService {
|
|
|
372
402
|
return [];
|
|
373
403
|
}
|
|
374
404
|
|
|
405
|
+
/**
|
|
406
|
+
* 获取应用实体服务
|
|
407
|
+
*
|
|
408
|
+
* @author chitanda
|
|
409
|
+
* @date 2024-01-10 13:01:01
|
|
410
|
+
* @param {string} appId
|
|
411
|
+
* @param {string} entityId
|
|
412
|
+
* @param {IContext} context
|
|
413
|
+
* @return {*} {Promise<IAppDEService>}
|
|
414
|
+
*/
|
|
415
|
+
async getAppDEService(
|
|
416
|
+
appId: string,
|
|
417
|
+
entityId: string,
|
|
418
|
+
context: IContext,
|
|
419
|
+
): Promise<IAppDEService> {
|
|
420
|
+
const app = await this.getAppAsync(appId);
|
|
421
|
+
return app.deService.getService(context, entityId);
|
|
422
|
+
}
|
|
423
|
+
|
|
375
424
|
reset(): void {
|
|
376
425
|
this.appMap.clear();
|
|
377
426
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
package/src/application.ts
CHANGED
|
@@ -130,7 +130,7 @@ export class Application implements IAppService {
|
|
|
130
130
|
async init(): Promise<void> {
|
|
131
131
|
await this.authority.init();
|
|
132
132
|
await this.loadAppModelStyle();
|
|
133
|
-
if (ibiz.env.enableMqtt && ibiz.appData) {
|
|
133
|
+
if (ibiz.env.enableMqtt && ibiz.appData && ibiz.auth.isAnonymous !== true) {
|
|
134
134
|
this.mqtt = new MqttService(
|
|
135
135
|
ibiz.appData.mqtttopic,
|
|
136
136
|
getToken()!,
|
|
@@ -71,7 +71,14 @@ export class OpenAppViewCommand {
|
|
|
71
71
|
);
|
|
72
72
|
}
|
|
73
73
|
const { openMode = 'INDEXVIEWTAB' } = appView;
|
|
74
|
-
|
|
74
|
+
const viewOpenMode = opts.openMode || openMode;
|
|
75
|
+
if (viewOpenMode !== undefined && viewOpenMode !== 'INDEXVIEWTAB') {
|
|
76
|
+
// 除了走路由的,其他情况toRouteDepth转为undefined,避免影响后续操作
|
|
77
|
+
if (context.toRouteDepth) {
|
|
78
|
+
context.toRouteDepth = undefined;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
switch (viewOpenMode) {
|
|
75
82
|
case 'INDEXVIEWTAB':
|
|
76
83
|
if (opts.noWaitRoute) {
|
|
77
84
|
this.openIndexViewTab(appView, context, params);
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import { IEditor, INavigateParamContainer } from '@ibiz/model-core';
|
|
3
|
+
import { DataTypes } from '@ibiz-template/core';
|
|
4
|
+
import dayjs from 'dayjs';
|
|
3
5
|
import { convertNavData } from '../../../utils';
|
|
4
6
|
import {
|
|
5
7
|
IEditorContainerController,
|
|
6
8
|
IEditorController,
|
|
7
9
|
} from '../../../interface/controller';
|
|
10
|
+
import { ValueExUtil } from '../../utils';
|
|
8
11
|
|
|
9
12
|
/**
|
|
10
13
|
* 编辑器控制器基类
|
|
@@ -88,6 +91,28 @@ export class EditorController<T extends IEditor = IEditor>
|
|
|
88
91
|
return !!this.model.readOnly;
|
|
89
92
|
}
|
|
90
93
|
|
|
94
|
+
/**
|
|
95
|
+
* 值格式化
|
|
96
|
+
* @author lxm
|
|
97
|
+
* @date 2024-01-11 10:18:33
|
|
98
|
+
* @readonly
|
|
99
|
+
* @type {(string | undefined)}
|
|
100
|
+
*/
|
|
101
|
+
get valueFormat(): string | undefined {
|
|
102
|
+
return this.parent.valueFormat;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* 数据类型
|
|
107
|
+
* @author lxm
|
|
108
|
+
* @date 2024-01-11 10:18:55
|
|
109
|
+
* @readonly
|
|
110
|
+
* @type {(number | undefined)}
|
|
111
|
+
*/
|
|
112
|
+
get dataType(): number | undefined {
|
|
113
|
+
return this.parent.dataType;
|
|
114
|
+
}
|
|
115
|
+
|
|
91
116
|
/**
|
|
92
117
|
* Creates an instance of EditorController.
|
|
93
118
|
* @author lxm
|
|
@@ -195,4 +220,33 @@ export class EditorController<T extends IEditor = IEditor>
|
|
|
195
220
|
toBoolean(value: string): boolean {
|
|
196
221
|
return Object.is('true', value);
|
|
197
222
|
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* 值格式化
|
|
226
|
+
* @author lxm
|
|
227
|
+
* @date 2023-08-25 05:18:11
|
|
228
|
+
* @param {unknown} value
|
|
229
|
+
* @return {*} {string}
|
|
230
|
+
*/
|
|
231
|
+
formatValue(value: unknown = ''): string {
|
|
232
|
+
// 根据数据类型增强转换显示文本
|
|
233
|
+
if (this.model.valueType !== 'SIMPLE') {
|
|
234
|
+
return ValueExUtil.toText(this.model, value);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// 根据格式化配置格式化显示
|
|
238
|
+
const strVal = `${value}`;
|
|
239
|
+
if (!this.valueFormat) {
|
|
240
|
+
return strVal;
|
|
241
|
+
}
|
|
242
|
+
const isDate = DataTypes.isDate(this.dataType!);
|
|
243
|
+
if (isDate) {
|
|
244
|
+
const formatVal = dayjs(strVal).format(this.valueFormat);
|
|
245
|
+
if (formatVal !== 'Invalid Date') {
|
|
246
|
+
return formatVal;
|
|
247
|
+
}
|
|
248
|
+
return strVal;
|
|
249
|
+
}
|
|
250
|
+
return ibiz.util.text.format(strVal, this.valueFormat);
|
|
251
|
+
}
|
|
198
252
|
}
|
|
@@ -314,6 +314,7 @@ export class ViewController<
|
|
|
314
314
|
}
|
|
315
315
|
|
|
316
316
|
protected async onDestroyed(): Promise<void> {
|
|
317
|
+
const srfSessionId = this.context.srfsessionid;
|
|
317
318
|
await super.onDestroyed();
|
|
318
319
|
// 执行视图引擎的doDestroyed
|
|
319
320
|
if (this.engines.length) {
|
|
@@ -325,8 +326,8 @@ export class ViewController<
|
|
|
325
326
|
this.scheduler.destroy();
|
|
326
327
|
}
|
|
327
328
|
// 销毁界面域,谁创建谁销毁
|
|
328
|
-
if (this.id ===
|
|
329
|
-
ibiz.uiDomainManager.destroy(
|
|
329
|
+
if (this.id === srfSessionId) {
|
|
330
|
+
ibiz.uiDomainManager.destroy(srfSessionId);
|
|
330
331
|
}
|
|
331
332
|
this.context.destroy();
|
|
332
333
|
ibiz.log.debug(`视图[${this.model.name}](${this.model.id})销毁`);
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/* eslint-disable no-param-reassign */
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
RuntimeModelError,
|
|
4
|
+
debounceAndAsyncMerge,
|
|
5
|
+
recursiveIterate,
|
|
6
|
+
} from '@ibiz-template/core';
|
|
3
7
|
import { IControlLogic, IDEForm, IDEFormDetail } from '@ibiz/model-core';
|
|
4
8
|
import {
|
|
5
9
|
IFormState,
|
|
@@ -177,6 +181,12 @@ export abstract class FormController<
|
|
|
177
181
|
if (!detailProvider) {
|
|
178
182
|
return;
|
|
179
183
|
}
|
|
184
|
+
if (form.details[detail.id!]) {
|
|
185
|
+
throw new RuntimeModelError(
|
|
186
|
+
detail,
|
|
187
|
+
`初始化异常: 表单成员[${detail.id}](${detail.detailType})已存在,表单项标识重复请检查配置`,
|
|
188
|
+
);
|
|
189
|
+
}
|
|
180
190
|
form.providers[detail.id!] = detailProvider;
|
|
181
191
|
const detailController = await detailProvider.createController(
|
|
182
192
|
detail,
|
|
@@ -389,6 +389,10 @@ export class FormDetailController<T extends IDEFormDetail = IDEFormDetail>
|
|
|
389
389
|
* @date 2023-10-11 05:03:26
|
|
390
390
|
*/
|
|
391
391
|
async onClick(event?: MouseEvent): Promise<void> {
|
|
392
|
+
if (event) {
|
|
393
|
+
// 阻止冒泡
|
|
394
|
+
event.stopPropagation();
|
|
395
|
+
}
|
|
392
396
|
this.form.evt.emit('onFormDetailEvent', {
|
|
393
397
|
formDetailName: this.model.id!,
|
|
394
398
|
formDetailEventName: FormDetailEventName.CLICK,
|
|
@@ -2,6 +2,7 @@ import { IDEFormTabPage } from '@ibiz/model-core';
|
|
|
2
2
|
import { IFormDetailContainerController } from '../../../../../interface';
|
|
3
3
|
import { FormDetailController } from '../form-detail';
|
|
4
4
|
import { FormTabPageState } from './form-tab-page.state';
|
|
5
|
+
import { FormTabPanelController } from '../form-tab-panel';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* 表单分页部件分页控制器
|
|
@@ -21,4 +22,17 @@ export class FormTabPageController
|
|
|
21
22
|
protected createState(): FormTabPageState {
|
|
22
23
|
return new FormTabPageState(this.parent?.state);
|
|
23
24
|
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 是否激活的分页
|
|
28
|
+
* @author lxm
|
|
29
|
+
* @date 2024-01-17 03:16:24
|
|
30
|
+
* @readonly
|
|
31
|
+
* @type {boolean}
|
|
32
|
+
*/
|
|
33
|
+
get isActive(): boolean {
|
|
34
|
+
return (
|
|
35
|
+
(this.parent as FormTabPanelController).state.activeTab === this.model.id
|
|
36
|
+
);
|
|
37
|
+
}
|
|
24
38
|
}
|
|
@@ -21,4 +21,20 @@ export class FormTabPanelController
|
|
|
21
21
|
protected createState(): FormTabPanelState {
|
|
22
22
|
return new FormTabPanelState(this.parent?.state);
|
|
23
23
|
}
|
|
24
|
+
|
|
25
|
+
protected async onInit(): Promise<void> {
|
|
26
|
+
await super.onInit();
|
|
27
|
+
// 初始化默认的激活分页
|
|
28
|
+
this.state.activeTab = this.model.deformTabPages?.[0].id || '';
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 分页点击切换处理
|
|
33
|
+
* @author lxm
|
|
34
|
+
* @date 2024-01-17 02:59:38
|
|
35
|
+
* @param {string} tabId
|
|
36
|
+
*/
|
|
37
|
+
onTabChange(tabId: string): void {
|
|
38
|
+
this.state.activeTab = tabId;
|
|
39
|
+
}
|
|
24
40
|
}
|
|
@@ -6,4 +6,12 @@ import { FormDetailState } from '../form-detail';
|
|
|
6
6
|
* @author: zhujiamin
|
|
7
7
|
* @Date: 2023-01-04 10:26:34
|
|
8
8
|
*/
|
|
9
|
-
export class FormTabPanelState extends FormDetailState {
|
|
9
|
+
export class FormTabPanelState extends FormDetailState {
|
|
10
|
+
/**
|
|
11
|
+
* 当前激活的分页
|
|
12
|
+
* @author lxm
|
|
13
|
+
* @date 2024-01-17 02:05:58
|
|
14
|
+
* @type {string}
|
|
15
|
+
*/
|
|
16
|
+
activeTab: string = '';
|
|
17
|
+
}
|
|
@@ -724,7 +724,7 @@ export class GridController<
|
|
|
724
724
|
this.state.columnStates.push({
|
|
725
725
|
key: column.codeName!,
|
|
726
726
|
caption: column.caption!,
|
|
727
|
-
hidden: !!column.hideDefault,
|
|
727
|
+
hidden: !!column.hideDefault || !!column.hiddenDataItem,
|
|
728
728
|
uaColumn: column.columnType === 'UAGRIDCOLUMN',
|
|
729
729
|
});
|
|
730
730
|
}
|
|
@@ -21,7 +21,7 @@ export class GridService extends MDControlService<IDEGrid> {
|
|
|
21
21
|
super.initUIDataMap();
|
|
22
22
|
if (this.model.degridColumns) {
|
|
23
23
|
const dataItems = this.model.degridDataItems || [];
|
|
24
|
-
//
|
|
24
|
+
// *初始化表格属性列和实体数据的属性映射
|
|
25
25
|
this.model.degridColumns?.forEach((column: IDEGridFieldColumn) => {
|
|
26
26
|
const uiKey = column.id!.toLowerCase();
|
|
27
27
|
// 列映射应用实体属性
|
|
@@ -51,16 +51,6 @@ export class GridService extends MDControlService<IDEGrid> {
|
|
|
51
51
|
this.dataUIMap.set(uiKey, mapField);
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
-
|
|
55
|
-
//* 如果属性列和表格数据列名称不一致,补充不一致的属性列的名称映射
|
|
56
|
-
// this.model.fieldColumns.forEach(fieldColumn => {
|
|
57
|
-
// if (fieldColumn.source.dataItemName !== fieldColumn.codeName) {
|
|
58
|
-
// const value = this.dataUIMap.get(fieldColumn.source.dataItemName);
|
|
59
|
-
// if (value) {
|
|
60
|
-
// this.dataUIMap.set(fieldColumn.codeName, value);
|
|
61
|
-
// }
|
|
62
|
-
// }
|
|
63
|
-
// });
|
|
64
54
|
}
|
|
65
55
|
|
|
66
56
|
/**
|
package/src/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.ts
CHANGED
|
@@ -68,6 +68,16 @@ export class GridFieldColumnController extends GridColumnController<IDEGridField
|
|
|
68
68
|
return !!this.model.deuiactionId;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
/**
|
|
72
|
+
* 属性列对应值在数据里的属性字段名称
|
|
73
|
+
* @author lxm
|
|
74
|
+
* @date 2023-06-25 09:26:04
|
|
75
|
+
* @readonly
|
|
76
|
+
*/
|
|
77
|
+
get fieldName(): string {
|
|
78
|
+
return this.model.id!.toLowerCase();
|
|
79
|
+
}
|
|
80
|
+
|
|
71
81
|
protected async onInit(): Promise<void> {
|
|
72
82
|
await super.onInit();
|
|
73
83
|
|
|
@@ -116,7 +126,7 @@ export class GridFieldColumnController extends GridColumnController<IDEGridField
|
|
|
116
126
|
* @readonly
|
|
117
127
|
*/
|
|
118
128
|
clickable(row: GridRowState): boolean {
|
|
119
|
-
const value = row.data[this.
|
|
129
|
+
const value = row.data[this.fieldName!];
|
|
120
130
|
return (this.isLinkColumn || this.hasAction) && value;
|
|
121
131
|
}
|
|
122
132
|
|
|
@@ -160,7 +170,7 @@ export class GridFieldColumnController extends GridColumnController<IDEGridField
|
|
|
160
170
|
* @returns {*} {Promise<void>}
|
|
161
171
|
*/
|
|
162
172
|
async openLinkView(row: GridRowState, event: MouseEvent): Promise<void> {
|
|
163
|
-
const curValue = row.data[this.
|
|
173
|
+
const curValue = row.data[this.fieldName!];
|
|
164
174
|
if (!curValue) {
|
|
165
175
|
// 当前值不存在,不继续走打开链接视图逻辑
|
|
166
176
|
return;
|
|
@@ -109,16 +109,6 @@ export class GridFieldEditColumnController
|
|
|
109
109
|
return undefined;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
/**
|
|
113
|
-
* 列数据属性字段名称
|
|
114
|
-
* @author lxm
|
|
115
|
-
* @date 2023-06-25 09:26:04
|
|
116
|
-
* @readonly
|
|
117
|
-
*/
|
|
118
|
-
get fieldName(): string {
|
|
119
|
-
return this.model.dataItemName!;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
112
|
/**
|
|
123
113
|
* 初始化方法,生成表格编辑项控制器
|
|
124
114
|
*
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { TreeGridExColumnController } from './tree-grid-ex-column/tree-grid-ex-column.controller';
|
|
2
2
|
export { TreeGridExFieldColumnController } from './tree-grid-ex-field-column/tree-grid-ex-field-column.controller';
|
|
3
|
+
export { TreeGridExNodeColumnController } from './tree-grid-ex-field-column/tree-grid-ex-node-column.controller';
|
|
3
4
|
export { TreeGridExUAColumnController } from './tree-grid-ex-ua-column/tree-grid-ex-ua-column.controller';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { IDETreeColumn } from '@ibiz/model-core';
|
|
2
2
|
import { TreeGridExController } from '../../tree-grid-ex.controller';
|
|
3
|
+
import { TreeGridExNotifyState } from '../../../../constant';
|
|
4
|
+
import { TreeGridExRowState } from '../../tree-grid-ex-row.state';
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* 树表格(增强)列控制器
|
|
@@ -118,4 +120,24 @@ export class TreeGridExColumnController<
|
|
|
118
120
|
protected async onInit(): Promise<void> {
|
|
119
121
|
// 初始化操作
|
|
120
122
|
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* 表格状态变更通知
|
|
126
|
+
*
|
|
127
|
+
* @author lxm
|
|
128
|
+
* @date 2022-09-20 18:09:07
|
|
129
|
+
*/
|
|
130
|
+
gridStateNotify(
|
|
131
|
+
_row: TreeGridExRowState,
|
|
132
|
+
_state: TreeGridExNotifyState,
|
|
133
|
+
): void {
|
|
134
|
+
// 子类实现具体逻辑
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
async dataChangeNotify(
|
|
138
|
+
_row: TreeGridExRowState,
|
|
139
|
+
_names: string[],
|
|
140
|
+
): Promise<void> {
|
|
141
|
+
// 子类实现具体逻辑
|
|
142
|
+
}
|
|
121
143
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
-
import { IDETreeDEFColumn } from '@ibiz/model-core';
|
|
2
|
+
import { IDETreeDEFColumn, IDETreeNodeColumn } from '@ibiz/model-core';
|
|
3
3
|
import { TreeGridExColumnController } from '../tree-grid-ex-column/tree-grid-ex-column.controller';
|
|
4
|
+
import { TreeGridExNodeColumnController } from './tree-grid-ex-node-column.controller';
|
|
5
|
+
import { TreeGridExNotifyState } from '../../../../constant';
|
|
6
|
+
import { ITreeGridExRowState } from '../../../../../interface';
|
|
4
7
|
|
|
5
8
|
/**
|
|
6
9
|
* 树表格(增强)属性列控制器
|
|
@@ -10,4 +13,87 @@ import { TreeGridExColumnController } from '../tree-grid-ex-column/tree-grid-ex-
|
|
|
10
13
|
* @class TreeGridExFieldColumnController
|
|
11
14
|
* @extends {TreeGridExColumnController<IDETreeDEFColumn>}
|
|
12
15
|
*/
|
|
13
|
-
export class TreeGridExFieldColumnController extends TreeGridExColumnController<IDETreeDEFColumn> {
|
|
16
|
+
export class TreeGridExFieldColumnController extends TreeGridExColumnController<IDETreeDEFColumn> {
|
|
17
|
+
/**
|
|
18
|
+
* 树表格列标识(用于取数和各种比较判断)
|
|
19
|
+
* @author lxm
|
|
20
|
+
* @date 2024-01-09 11:33:37
|
|
21
|
+
* @readonly
|
|
22
|
+
* @type {string}
|
|
23
|
+
*/
|
|
24
|
+
get name(): string {
|
|
25
|
+
return this.model.id!;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 该树表格列对应不同节点模型的节点列控制器
|
|
30
|
+
* @author lxm
|
|
31
|
+
* @date 2024-01-08 05:40:56
|
|
32
|
+
* @type {Map<string, IDETreeNodeColumn>}
|
|
33
|
+
*/
|
|
34
|
+
nodeColumnControllerMap: Map<string, TreeGridExNodeColumnController> =
|
|
35
|
+
new Map();
|
|
36
|
+
|
|
37
|
+
async init(): Promise<void> {
|
|
38
|
+
await this.onInit();
|
|
39
|
+
await this.initNodeColumnController();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* 解析模型并初始化相关属性
|
|
44
|
+
* @author lxm
|
|
45
|
+
* @date 2024-01-08 05:59:12
|
|
46
|
+
* @return {*} {Promise<void>}
|
|
47
|
+
*/
|
|
48
|
+
async initNodeColumnController(): Promise<void> {
|
|
49
|
+
this.treeGrid.model.detreeNodes?.forEach(node => {
|
|
50
|
+
if (node.treeNodeType !== 'DE') {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const nodeColumn = node.detreeNodeColumns?.find(
|
|
54
|
+
(column: IDETreeNodeColumn) => {
|
|
55
|
+
return column.detreeColumnId === this.model.id;
|
|
56
|
+
},
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
// 没有指定树表格列的不创建
|
|
60
|
+
if (nodeColumn) {
|
|
61
|
+
this.nodeColumnControllerMap.set(
|
|
62
|
+
node.id!,
|
|
63
|
+
new TreeGridExNodeColumnController(this, node),
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// 都走一遍初始化
|
|
69
|
+
await Promise.all(
|
|
70
|
+
Array.from(this.nodeColumnControllerMap.values()).map(controller =>
|
|
71
|
+
controller.init(),
|
|
72
|
+
),
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* 初始化属性列界面行为组按钮状态
|
|
78
|
+
* @author lxm
|
|
79
|
+
* @date 2024-01-11 01:48:38
|
|
80
|
+
* @param {ITreeGridExRowState} row
|
|
81
|
+
*/
|
|
82
|
+
initActionStates(row: ITreeGridExRowState): void {
|
|
83
|
+
const nodeColumn = this.nodeColumnControllerMap.get(row.data._nodeId);
|
|
84
|
+
if (nodeColumn) {
|
|
85
|
+
nodeColumn.initActionStates(row);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
gridStateNotify(
|
|
90
|
+
row: ITreeGridExRowState,
|
|
91
|
+
state: TreeGridExNotifyState,
|
|
92
|
+
): void {
|
|
93
|
+
super.gridStateNotify(row, state);
|
|
94
|
+
const nodeColumn = this.nodeColumnControllerMap.get(row.data._nodeId);
|
|
95
|
+
if (nodeColumn) {
|
|
96
|
+
nodeColumn.gridStateNotify(row, state);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|